Index: lams_central/web/includes/javascript/authoring/authoringGeneral.js =================================================================== diff -u -rb73636820750c23aa0a3feb17c8cb5201d29332a -r3223802379916b7bb9eef32a8c9c3519b4c19acf --- lams_central/web/includes/javascript/authoring/authoringGeneral.js (.../authoringGeneral.js) (revision b73636820750c23aa0a3feb17c8cb5201d29332a) +++ lams_central/web/includes/javascript/authoring/authoringGeneral.js (.../authoringGeneral.js) (revision 3223802379916b7bb9eef32a8c9c3519b4c19acf) @@ -1653,6 +1653,8 @@ activityData.readOnly); // for later reference activityData.activity = activity; + // for later reference + activityData.activity = activity; break; // Optional Activity @@ -1799,22 +1801,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) { @@ -1853,6 +1839,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 -r07865c855b32c77613ed72dd81cd499033dca4dd -r3223802379916b7bb9eef32a8c9c3519b4c19acf --- lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision 07865c855b32c77613ed72dd81cd499033dca4dd) +++ lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision 3223802379916b7bb9eef32a8c9c3519b4c19acf) @@ -543,6 +543,9 @@ .data('grouping'); if (newGroupingValue != activity.grouping) { activity.grouping = newGroupingValue; + $.each(activity.childActivities, function(){ + this.grouping = newGroupingValue; + }); redrawNeeded = true; } @@ -621,17 +624,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) { @@ -680,9 +682,7 @@ }); } - if (allowsGrouping){ - PropertyLib.fillGroupingDropdown(activity, activity.grouping); - } + PropertyLib.fillGroupingDropdown(activity, activity.grouping); },