Index: lams_central/web/includes/javascript/authoring/authoringProperty.js =================================================================== diff -u -r73b16b1e6ae040974e8ba89abf3497abceb9420f -rfed966f6fa037176ba35f543628f33396a4076fa --- lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision 73b16b1e6ae040974e8ba89abf3497abceb9420f) +++ lams_central/web/includes/javascript/authoring/authoringProperty.js (.../authoringProperty.js) (revision fed966f6fa037176ba35f543628f33396a4076fa) @@ -222,8 +222,25 @@ activity.offsetDay = +$('.propertiesContentFieldOffsetDay', content).val(); activity.offsetHour = +$('.propertiesContentFieldOffsetHour', content).val(); activity.offsetMinute = +$('.propertiesContentFieldOffsetMinute', content).val(); + + // both of these options must not be on at the same time + // stop-at-preceding-activity may prevent preceding activity from completion, + // meaning that timer-from-previous-activity-completion will never start activity.gateActivityCompletionBased = $('.propertiesContentFieldActivityCompletionBased', content).is(':checked'); - activity.gateStopAtPrecedingActivity = $('.propertiesContentFieldStopAtPrecedingActivity', content).is(':checked'); + if (activity.gateActivityCompletionBased) { + activity.gateStopAtPrecedingActivity = false; + $('.propertiesContentFieldStopAtPrecedingActivity', content).prop('disabled', true).prop('checked', false); + } else { + activity.gateStopAtPrecedingActivity = $('.propertiesContentFieldStopAtPrecedingActivity', content).is(':checked'); + $('.propertiesContentFieldStopAtPrecedingActivity', content).prop('disabled', false); + } + + if (activity.gateStopAtPrecedingActivity) { + activity.gateActivityCompletionBased = false; + $('.propertiesContentFieldActivityCompletionBased', content).prop('disabled', true).prop('checked', false); + } else { + $('.propertiesContentFieldActivityCompletionBased', content).prop('disabled', false); + } } if (activity.gateType == 'password') {