diff --git a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js index 9b61ed9b3e3..f7eb56944a4 100644 --- a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js +++ b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-debug.js @@ -198,8 +198,11 @@ M.core_availability.form = { // If the groupmode and grouping id aren't set, disable it. var groupmode = Y.one('#id_groupmode'); var groupingid = Y.one('#id_groupingid'); - if ((!groupmode || Number(groupmode.get('value')) === 0) && - (!groupingid || Number(groupingid.get('value')) === 0)) { + var groupavailability = Number(this.restrictByGroup.getData('groupavailability')) === 1; + var groupingavailability = Number(this.restrictByGroup.getData('groupingavailability')) === 1; + + if ((!groupmode || Number(groupmode.get('value')) === 0 || !groupavailability) && + (!groupingid || Number(groupingid.get('value')) === 0 || !groupingavailability)) { this.restrictByGroup.set('disabled', true); return; } @@ -220,22 +223,28 @@ M.core_availability.form = { e.preventDefault(); // Add the condition. + var groupmode = Y.one('#id_groupmode'); var groupingid = Y.one('#id_groupingid'); + var groupavailability = Number(this.restrictByGroup.getData('groupavailability')) === 1; + var groupingavailability = Number(this.restrictByGroup.getData('groupingavailability')) === 1; + var newChild; - if (groupingid && Number(groupingid.get('value')) !== 0) { + if (groupingid && Number(groupingid.get('value')) !== 0 && groupingavailability) { // Add a grouping restriction if one is specified. newChild = new M.core_availability.Item( {type: 'grouping', id: Number(groupingid.get('value'))}, true); - } else { + } else if (groupmode && groupavailability) { // Otherwise just add a group restriction. newChild = new M.core_availability.Item({type: 'group'}, true); } // Refresh HTML. - this.rootList.addChild(newChild); - this.update(); - this.rootList.renumber(); - this.rootList.updateHtml(); + if (newChild !== null) { + this.rootList.addChild(newChild); + this.update(); + this.rootList.renumber(); + this.rootList.updateHtml(); + } } }; diff --git a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js index 5041b64d0a0..88010289440 100644 --- a/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js +++ b/availability/yui/build/moodle-core_availability-form/moodle-core_availability-form-min.js @@ -1,3 +1,3 @@ -YUI.add("moodle-core_availability-form",function(c,i){M.core_availability=M.core_availability||{},M.core_availability.form={plugins:{},field:null,mainDiv:null,rootList:null,idCounter:0,restrictByGroup:null,init:function(i){var t,e,a,l,n,o,s;for(t in i)e=i[t],(a=M[e[0]].form).init.apply(a,e);if(this.field=c.one("#id_availabilityconditionsjson"),this.field.setAttribute("aria-hidden","true"),this.mainDiv=c.Node.create('
'),this.field.insert(this.mainDiv,"after"),n=null,""!==(l=this.field.get("value")))try{n=c.JSON.parse(l)}catch(r){this.field.set("value","")}this.rootList=new M.core_availability.List(n,!0),this.mainDiv.appendChild(this.rootList.node),this.update(),this.rootList.renumber(),this.mainDiv.setAttribute("aria-live","polite"),this.field.ancestor("form").on("submit",function(){this.mainDiv.all("input,textarea,select").set("disabled",!0)},this),this.restrictByGroup=c.one("#restrictbygroup"),this.restrictByGroup&&(this.restrictByGroup.on("click",this.addRestrictByGroup,this),o=c.one("#id_groupmode"),s=c.one("#id_groupingid"),o&&o.on("change",this.updateRestrictByGroup,this),s&&s.on("change",this.updateRestrictByGroup,this),this.updateRestrictByGroup())},update:function(){var i=this.rootList.getValue(),t=[];this.rootList.fillErrors(t),0!==t.length&&(i.errors=t),this.field.set("value",c.JSON.stringify(i)),this.updateRestrictByGroup()},updateRestrictByGroup:function(){var i,t;this.restrictByGroup&&("&"!==this.rootList.getValue().op||(this.rootList.hasItemOfType("group")||this.rootList.hasItemOfType("grouping"))?this.restrictByGroup.set("disabled",!0):(i=c.one("#id_groupmode"),t=c.one("#id_groupingid"),i&&0!==Number(i.get("value"))||t&&0!==Number(t.get("value"))?this.restrictByGroup.set("disabled",!1):this.restrictByGroup.set("disabled",!0)))},addRestrictByGroup:function(i){var t,e;i.preventDefault(),e=(t=c.one("#id_groupingid"))&&0!==Number(t.get("value"))?new M.core_availability.Item({type:"grouping",id:Number(t.get("value"))},!0):new M.core_availability.Item({type:"group"},!0),this.rootList.addChild(e),this.update(),this.rootList.renumber(),this.rootList.updateHtml()}},M.core_availability.plugin={allowAdd:!1,init:function(i,t,e){var a=i.replace(/^availability_/,"");this.allowAdd=t,(M.core_availability.form.plugins[a]=this).initInner.apply(this,e)},initInner:function(){},getNode:function(){throw"getNode not implemented"},fillValue:function(){throw"fillValue not implemented"},fillErrors:function(){},focusAfterAdd:function(i){i.one("input:not([disabled]),select:not([disabled])").focus()}},M.core_availability.List=function(i,t,e){var a,l,n,o,s,r,d;if(this.children=[],t!==undefined&&(this.root=t),this.node=c.Node.create('