Index: lams_central/web/includes/javascript/authoring/authoringGeneral.js =================================================================== diff -u -rdd450a6db30beecdeebc977983e635f64cb51a71 -r8db7b91664e9d8cdb4348ab9e44c747033ac5831 --- lams_central/web/includes/javascript/authoring/authoringGeneral.js (.../authoringGeneral.js) (revision dd450a6db30beecdeebc977983e635f64cb51a71) +++ lams_central/web/includes/javascript/authoring/authoringGeneral.js (.../authoringGeneral.js) (revision 8db7b91664e9d8cdb4348ab9e44c747033ac5831) @@ -1754,22 +1754,6 @@ activity = this.activity; if (activity) { - if (activityData.applyGrouping) { - $.each(layout.activities, function(){ - if (this instanceof ActivityDefs.GroupingActivity - && this.groupingID == activityData.groupingID) { - // add reference and redraw the grouped activity - if (activity instanceof ActivityDefs.BranchingEdgeActivity) { - activity.branchingActivity.grouping = this; - } else { - activity.grouping = this; - activity.draw(); - } - return false; - } - }); - } - if (layout.floatingActivity && layout.floatingActivity.id == activityData.parentActivityID) { // add a Tool Activity as a Floating Activity element if (!layout.floatingActivity.childActivities) { @@ -1808,6 +1792,35 @@ } }); + // apply existing groupings + $.each(ld.activities, function(){ + var activityData = this, + activity = this.activity; + + if (activity && activityData.applyGrouping) { + $.each(layout.activities, function(){ + if (this instanceof ActivityDefs.GroupingActivity + && this.groupingID == activityData.groupingID) { + var grouping = this; + // add reference and redraw the grouped activity + if (activity instanceof ActivityDefs.BranchingEdgeActivity) { + activity.branchingActivity.grouping = grouping; + } else if (activity instanceof ActivityDefs.ParallelActivity) { + $.each(activity.childActivities, function(){ + this.grouping = grouping; + }); + activity.grouping = grouping; + activity.draw(); + } else { + activity.grouping = grouping; + activity.draw(); + } + return false; + } + }); + } + }); + // apply group -> branch mappings $.each(ld.branchMappings, function(){ var entry = this, Index: lams_central/web/includes/javascript/authoring/authoringProperty.js =================================================================== diff -u -re7040e79289ad35781781fb6d5058a307e35a11b -r8db7b91664e9d8cdb4348ab9e44c747033ac5831 --- lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision e7040e79289ad35781781fb6d5058a307e35a11b) +++ lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision 8db7b91664e9d8cdb4348ab9e44c747033ac5831) @@ -537,6 +537,9 @@ .data('grouping'); if (newGroupingValue != activity.grouping) { activity.grouping = newGroupingValue; + $.each(activity.childActivities, function(){ + this.grouping = newGroupingValue; + }); redrawNeeded = true; } @@ -615,17 +618,16 @@ */ toolProperties : function() { var activity = this, - content = activity.propertiesContent, - allowsGrouping = !this.parentActivity || !(this.parentActivity instanceof ActivityDefs.ParallelActivity); - + content = activity.propertiesContent; + if (!content) { // first run, create the content content = activity.propertiesContent = $('#propertiesContentTool').clone().attr('id', null) .show().data('parentObject', activity); $('.propertiesContentFieldTitle', content).val(activity.title); - if (!allowsGrouping) { - // parts of Parallel Activity can not be grouped - $('.propertiesContentFieldGrouping', content).closest('tr').remove(); + if (activity.parentActivity && (activity.parentActivity instanceof ActivityDefs.ParallelActivity)) { + // parts of Parallel Activity are grouped as the parent activity + $('.propertiesContentFieldGrouping', content).attr('disabled', 'disabled'); } if (activity.outputDefinitions) { @@ -674,9 +676,7 @@ }); } - if (allowsGrouping){ - PropertyLib.fillGroupingDropdown(activity, activity.grouping); - } + PropertyLib.fillGroupingDropdown(activity, activity.grouping); },