diff --git a/admin/tool/dataprivacy/tests/behat/manage_categories.feature b/admin/tool/dataprivacy/tests/behat/manage_categories.feature index c6f7f0ebaa0..8384b2e6e4b 100644 --- a/admin/tool/dataprivacy/tests/behat/manage_categories.feature +++ b/admin/tool/dataprivacy/tests/behat/manage_categories.feature @@ -12,7 +12,7 @@ Feature: Manage data categories And I press "Add category" And I set the field "Name" to "Category 1" And I set the field "Description" to "Category 1 description" - When I click on "Save" "button" in the "Delete category" "dialogue" + When I click on "Save" "button" in the "Add category" "dialogue" Then I should see "Category 1" in the "List of data categories" "table" And I should see "Category 1 description" in the "Category 1" "table_row" @@ -30,5 +30,5 @@ Feature: Manage data categories And I choose "Delete" in the open action menu And I should see "Delete category" And I should see "Are you sure you want to delete the category 'Category 1'?" - When I click on "Delete" "button" in the "Confirm" "dialogue" + When I click on "Delete" "button" in the "Delete category" "dialogue" Then I should not see "Category 1" in the "List of data categories" "table" diff --git a/admin/tool/dataprivacy/tests/behat/manage_purposes.feature b/admin/tool/dataprivacy/tests/behat/manage_purposes.feature index 772c590bce8..dcd0c2a7ae3 100644 --- a/admin/tool/dataprivacy/tests/behat/manage_purposes.feature +++ b/admin/tool/dataprivacy/tests/behat/manage_purposes.feature @@ -52,5 +52,5 @@ Feature: Manage data storage purposes And I choose "Delete" in the open action menu And I should see "Delete purpose" And I should see "Are you sure you want to delete the purpose 'Purpose 1'?" - When I click on "Delete" "button" in the "Confirm" "dialogue" + When I click on "Delete" "button" in the "Delete purpose" "dialogue" Then I should not see "Purpose 1" in the "List of data purposes" "table" diff --git a/analytics/tests/behat/manage_models.feature b/analytics/tests/behat/manage_models.feature index 9064a0b7944..816a25369bc 100644 --- a/analytics/tests/behat/manage_models.feature +++ b/analytics/tests/behat/manage_models.feature @@ -158,5 +158,5 @@ Feature: Manage analytics models Scenario: Delete model When I open the action menu in "Students at risk of not meeting the course completion conditions" "table_row" And I choose "Delete" in the open action menu - And I click on "Delete" "button" in the "Confirm" "dialogue" + And I click on "Delete" "button" in the "Delete" "dialogue" Then I should not see "Students at risk of not meeting the course completion conditions" diff --git a/lib/amd/build/tag.min.js b/lib/amd/build/tag.min.js index 603a1497a4d..ba37d4e82f8 100644 --- a/lib/amd/build/tag.min.js +++ b/lib/amd/build/tag.min.js @@ -1,2 +1,2 @@ -define ("core/tag",["jquery","core/ajax","core/templates","core/notification","core/str","core/modal_factory","core/modal_events","core/pending"],function(a,b,c,d,f,g,h,i){return{initTagindexPage:function initTagindexPage(){a("body").delegate(".tagarea[data-ta] a[data-quickload=1]","click",function(f){var e=new i("core/tag:initTagindexPage");f.preventDefault();var g=a(this),h=g[0].search.replace(/^\?/,""),j=g.closest(".tagarea[data-ta]"),k=h.split("&").reduce(function(a,b){var c=b.split("=");a[c[0]]=decodeURIComponent(c[1]);return a},{});b.call([{methodname:"core_tag_get_tagindex",args:{tagindex:k}}])[0].then(function(a){return c.render("core_tag/index",a)}).then(function(a,b){c.replaceNode(j,a,b)}).always(e.resolve).catch(d.exception)})},initManagePage:function initManagePage(){a("body").on("updated","[data-inplaceeditable]",function(b){var c=new i("core/tag:initManagePage");f.get_strings([{key:"selecttag",component:"core_tag"},{key:"now",component:"core"}]).then(function(c){a("label[for=\"tagselect"+b.ajaxreturn.itemid+"\"]").html(c[0]);a(b.target).closest("tr").find("td.col-timemodified").html(c[1])}).always(c.resolve).catch(d.exception);if("tagflag"===b.ajaxreturn.itemtype){var e=a(b.target).closest("tr");if("0"===b.ajaxreturn.value){e.removeClass("flagged-tag")}else{e.addClass("flagged-tag")}}});a(".tag-management-table").delegate("a.tagdelete","click",function(b){var c=new i("core/tag:tagdelete");b.preventDefault();var e=a(this).attr("href");f.get_strings([{key:"delete",component:"core"},{key:"confirmdeletetag",component:"tag"},{key:"yes",component:"core"},{key:"no",component:"core"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){window.location.href=e})}).always(c.resolve).catch(d.exception)});a("#tag-management-delete").click(function(b){var c=a(this).closest("form").get(0),e=a(c).find("input[type=checkbox]:checked").length;if(!e){return}var g=new i("core/tag:tag-management-delete"),h=a("").attr("name",this.name);b.preventDefault();f.get_strings([{key:"delete",component:"core"},{key:"confirmdeletetags",component:"tag"},{key:"yes",component:"core"},{key:"no",component:"core"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){h.appendTo(c);c.submit()})}).always(g.resolve).catch(d.exception)});a("#tag-management-combine").click(function(b){var e=new i("core/tag:tag-management-combine");b.preventDefault();var j=a(this).closest("form").get(0),k=a(j).find("input[type=checkbox]:checked");if(1>=k.length){f.get_strings([{key:"combineselected",component:"tag"},{key:"selectmultipletags",component:"tag"},{key:"ok"}]).then(function(a){return d.alert(a[0],a[1],a[2])}).always(e.resolve).catch(d.exception);return}var l=a("").attr("name",this.name),m="",n=[];k.each(function(){var b=a(this).val(),c=a(".inplaceeditable[data-itemtype=tagname][data-itemid="+b+"]").attr("data-value");n.push({id:b,name:c})});f.get_strings([{key:"combineselected",component:"tag"},{key:"continue",component:"core"}]).then(function(a){var b=a[0];m=a[1];return g.create({title:b,body:c.render("core_tag/combine_tags",{tags:n}),type:g.types.SAVE_CANCEL})}).then(function(a){a.setSaveButtonText(m);return a}).then(function(b){b.getRoot().on(h.save,function(b){b.preventDefault();l.appendTo(j);var c=a("input[name=maintag]:checked","#combinetags_form").val();a("").attr("name","maintag").attr("value",c).appendTo(j);j.submit()});b.getRoot().on(h.hidden,function(){b.destroy()});b.show();a("#combinetags_form input[type=radio]").first().focus().prop("checked",!0)}).always(e.resolve).catch(d.exception)});a("body").on("updatefailed","[data-inplaceeditable][data-itemtype=tagname]",function(b){var c=b.exception,e=b.newvalue,g=a(b.target).attr("data-itemid");if("namesalreadybeeingused"===c.errorcode){var h=new i("core/tag:updatefailed");b.preventDefault();f.get_strings([{key:"nameuseddocombine",component:"tag"},{key:"yes"},{key:"cancel"}]).then(function(a){return d.confirm(b.message,a[0],a[1],a[2],function(){window.location.href=window.location.href+"&newname="+encodeURIComponent(e)+"&tagid="+encodeURIComponent(g)+"&action=renamecombine&sesskey="+M.cfg.sesskey})}).always(h.resolve).catch(d.exception)}});a("body").on("click","a[data-action=addstandardtag]",function(b){var e=new i("core/tag:addstandardtag");b.preventDefault();return g.create({title:f.get_string("addotags","tag"),body:c.render("core_tag/add_tags",{actionurl:window.location.href,sesskey:M.cfg.sesskey}),type:g.types.SAVE_CANCEL}).then(function(b){b.setSaveButtonText(f.get_string("continue","core"));b.getRoot().on(h.save,function(b){var c=a(b.currentTarget).find("#id_tagslist"),d=c.val().trim();c.val(d);var e=a("#addtags_form");e.on("submit",function(b){var c=a("#addtags_form");if(!1===c[0].checkValidity()){b.preventDefault();b.stopPropagation()}c.addClass("was-validated");a("[data-region=\"tagslistinput\"]").addClass("error");var d=a("#id_tagslist_error_message");d.removeAttr("hidden");d.addClass("help-block")});e.submit();return!1});b.getRoot().on(h.hidden,function(){b.destroy()});b.show()}).always(e.resolve).catch(d.exception)})},initManageCollectionsPage:function initManageCollectionsPage(){a("body").on("updated","[data-inplaceeditable]",function(b){var c=new i("core/tag:initManageCollectionsPage-updated"),d=b.ajaxreturn,e,f,g;if("core_tag"===d.component&&"tagareaenable"===d.itemtype){e=a(this).attr("data-itemid");a(".tag-collections-table ul[data-collectionid] li[data-areaid="+e+"]").hide();g=d.value;if("1"===g){a(this).closest("tr").removeClass("dimmed_text");f=a(this).closest("tr").find("[data-itemtype=\"tagareacollection\"]").attr("data-value");a(".tag-collections-table ul[data-collectionid="+f+"] li[data-areaid="+e+"]").show()}else{a(this).closest("tr").addClass("dimmed_text")}}if("core_tag"===d.component&&"tagareacollection"===d.itemtype){e=a(this).attr("data-itemid");a(".tag-collections-table ul[data-collectionid] li[data-areaid="+e+"]").hide();f=a(this).attr("data-value");g=a(this).closest("tr").find("[data-itemtype=\"tagareaenable\"]").attr("data-value");if("1"===g){a(".tag-collections-table ul[data-collectionid="+f+"] li[data-areaid="+e+"]").show()}}c.resolve()});a("body").on("click",".addtagcoll > a",function(b){var e=new i("core/tag:initManageCollectionsPage-addtagcoll");b.preventDefault();var j=a(this).attr("data-url"),k="";f.get_strings([{key:"addtagcoll",component:"tag"},{key:"create",component:"core"}]).then(function(a){var b=a[0];k=a[1];var d={actionurl:j,sesskey:M.cfg.sesskey};return g.create({title:b,body:c.render("core_tag/add_tag_collection",d),type:g.types.SAVE_CANCEL})}).then(function(b){b.setSaveButtonText(k);b.getRoot().on(h.save,function(b){var c=a(b.currentTarget).find("#addtagcoll_name"),d=c.val().trim();c.val(d);var f=a("#addtagcoll_form");f.on("submit",function(b){if(!1===f[0].checkValidity()){b.preventDefault();b.stopPropagation()}f.addClass("was-validated");a("[data-region=\"addtagcoll_nameinput\"]").addClass("error");var c=a("#id_addtagcoll_name_error_message");c.removeAttr("hidden");c.addClass("help-block")});f.submit();return!1});b.getRoot().on(h.hidden,function(){b.destroy()});b.show();return b}).always(e.resolve).catch(d.exception)});a("body").on("click",".tag-collections-table .action_delete",function(b){var c=new i("core/tag:initManageCollectionsPage-action_delete");b.preventDefault();var e=a(this).attr("data-url")+"&sesskey="+M.cfg.sesskey;f.get_strings([{key:"delete"},{key:"suredeletecoll",component:"tag",param:a(this).attr("data-collname")},{key:"yes"},{key:"no"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){window.location.href=e})}).always(c.resolve).catch(d.exception)})}}}); +define ("core/tag",["jquery","core/ajax","core/templates","core/notification","core/str","core/modal_factory","core/modal_events","core/pending"],function(a,b,c,d,f,g,h,i){return{initTagindexPage:function initTagindexPage(){a("body").delegate(".tagarea[data-ta] a[data-quickload=1]","click",function(f){var e=new i("core/tag:initTagindexPage");f.preventDefault();var g=a(this),h=g[0].search.replace(/^\?/,""),j=g.closest(".tagarea[data-ta]"),k=h.split("&").reduce(function(a,b){var c=b.split("=");a[c[0]]=decodeURIComponent(c[1]);return a},{});b.call([{methodname:"core_tag_get_tagindex",args:{tagindex:k}}])[0].then(function(a){return c.render("core_tag/index",a)}).then(function(a,b){c.replaceNode(j,a,b)}).always(e.resolve).catch(d.exception)})},initManagePage:function initManagePage(){a("body").on("updated","[data-inplaceeditable]",function(b){var c=new i("core/tag:initManagePage");f.get_strings([{key:"selecttag",component:"core_tag"},{key:"now",component:"core"}]).then(function(c){a("label[for=\"tagselect"+b.ajaxreturn.itemid+"\"]").html(c[0]);a(b.target).closest("tr").find("td.col-timemodified").html(c[1])}).always(c.resolve).catch(d.exception);if("tagflag"===b.ajaxreturn.itemtype){var e=a(b.target).closest("tr");if("0"===b.ajaxreturn.value){e.removeClass("flagged-tag")}else{e.addClass("flagged-tag")}}});a(".tag-management-table").delegate("a.tagdelete","click",function(b){var c=new i("core/tag:tagdelete");b.preventDefault();var e=a(this).attr("href");f.get_strings([{key:"delete",component:"core"},{key:"confirmdeletetag",component:"tag"},{key:"yes",component:"core"},{key:"no",component:"core"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){window.location.href=e})}).always(c.resolve).catch(d.exception)});a("#tag-management-delete").click(function(b){var c=a(this).closest("form").get(0),e=a(c).find("input[type=checkbox]:checked").length;if(!e){return}var g=new i("core/tag:tag-management-delete"),h=a("").attr("name",this.name);b.preventDefault();f.get_strings([{key:"delete",component:"core"},{key:"confirmdeletetags",component:"tag"},{key:"yes",component:"core"},{key:"no",component:"core"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){h.appendTo(c);c.submit()})}).always(g.resolve).catch(d.exception)});a("#tag-management-combine").click(function(b){var e=new i("core/tag:tag-management-combine");b.preventDefault();var j=a(this).closest("form").get(0),k=a(j).find("input[type=checkbox]:checked");if(1>=k.length){f.get_strings([{key:"combineselected",component:"tag"},{key:"selectmultipletags",component:"tag"},{key:"ok"}]).then(function(a){return d.alert(a[0],a[1],a[2])}).always(e.resolve).catch(d.exception);return}var l=a("").attr("name",this.name),m="",n=[];k.each(function(){var b=a(this).val(),c=a(".inplaceeditable[data-itemtype=tagname][data-itemid="+b+"]").attr("data-value");n.push({id:b,name:c})});f.get_strings([{key:"combineselected",component:"tag"},{key:"continue",component:"core"}]).then(function(a){var b=a[0];m=a[1];return g.create({title:b,body:c.render("core_tag/combine_tags",{tags:n}),type:g.types.SAVE_CANCEL})}).then(function(a){a.setSaveButtonText(m);return a}).then(function(b){b.getRoot().on(h.save,function(b){b.preventDefault();l.appendTo(j);var c=a("input[name=maintag]:checked","#combinetags_form").val();a("").attr("name","maintag").attr("value",c).appendTo(j);j.submit()});b.getRoot().on(h.hidden,function(){b.destroy()});b.show();a("#combinetags_form input[type=radio]").first().focus().prop("checked",!0)}).always(e.resolve).catch(d.exception)});a("body").on("updatefailed","[data-inplaceeditable][data-itemtype=tagname]",function(b){var c=b.exception,e=b.newvalue,g=a(b.target).attr("data-itemid");if("namesalreadybeeingused"===c.errorcode){var h=new i("core/tag:updatefailed");b.preventDefault();f.get_strings([{key:"confirm",component:"core"},{key:"nameuseddocombine",component:"tag"},{key:"yes",component:"core"},{key:"cancel",component:"core"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){window.location.href=window.location.href+"&newname="+encodeURIComponent(e)+"&tagid="+encodeURIComponent(g)+"&action=renamecombine&sesskey="+M.cfg.sesskey})}).always(h.resolve).catch(d.exception)}});a("body").on("click","a[data-action=addstandardtag]",function(b){var e=new i("core/tag:addstandardtag");b.preventDefault();return g.create({title:f.get_string("addotags","tag"),body:c.render("core_tag/add_tags",{actionurl:window.location.href,sesskey:M.cfg.sesskey}),type:g.types.SAVE_CANCEL}).then(function(b){b.setSaveButtonText(f.get_string("continue","core"));b.getRoot().on(h.save,function(b){var c=a(b.currentTarget).find("#id_tagslist"),d=c.val().trim();c.val(d);var e=a("#addtags_form");e.on("submit",function(b){var c=a("#addtags_form");if(!1===c[0].checkValidity()){b.preventDefault();b.stopPropagation()}c.addClass("was-validated");a("[data-region=\"tagslistinput\"]").addClass("error");var d=a("#id_tagslist_error_message");d.removeAttr("hidden");d.addClass("help-block")});e.submit();return!1});b.getRoot().on(h.hidden,function(){b.destroy()});b.show()}).always(e.resolve).catch(d.exception)})},initManageCollectionsPage:function initManageCollectionsPage(){a("body").on("updated","[data-inplaceeditable]",function(b){var c=new i("core/tag:initManageCollectionsPage-updated"),d=b.ajaxreturn,e,f,g;if("core_tag"===d.component&&"tagareaenable"===d.itemtype){e=a(this).attr("data-itemid");a(".tag-collections-table ul[data-collectionid] li[data-areaid="+e+"]").hide();g=d.value;if("1"===g){a(this).closest("tr").removeClass("dimmed_text");f=a(this).closest("tr").find("[data-itemtype=\"tagareacollection\"]").attr("data-value");a(".tag-collections-table ul[data-collectionid="+f+"] li[data-areaid="+e+"]").show()}else{a(this).closest("tr").addClass("dimmed_text")}}if("core_tag"===d.component&&"tagareacollection"===d.itemtype){e=a(this).attr("data-itemid");a(".tag-collections-table ul[data-collectionid] li[data-areaid="+e+"]").hide();f=a(this).attr("data-value");g=a(this).closest("tr").find("[data-itemtype=\"tagareaenable\"]").attr("data-value");if("1"===g){a(".tag-collections-table ul[data-collectionid="+f+"] li[data-areaid="+e+"]").show()}}c.resolve()});a("body").on("click",".addtagcoll > a",function(b){var e=new i("core/tag:initManageCollectionsPage-addtagcoll");b.preventDefault();var j=a(this).attr("data-url"),k="";f.get_strings([{key:"addtagcoll",component:"tag"},{key:"create",component:"core"}]).then(function(a){var b=a[0];k=a[1];var d={actionurl:j,sesskey:M.cfg.sesskey};return g.create({title:b,body:c.render("core_tag/add_tag_collection",d),type:g.types.SAVE_CANCEL})}).then(function(b){b.setSaveButtonText(k);b.getRoot().on(h.save,function(b){var c=a(b.currentTarget).find("#addtagcoll_name"),d=c.val().trim();c.val(d);var f=a("#addtagcoll_form");f.on("submit",function(b){if(!1===f[0].checkValidity()){b.preventDefault();b.stopPropagation()}f.addClass("was-validated");a("[data-region=\"addtagcoll_nameinput\"]").addClass("error");var c=a("#id_addtagcoll_name_error_message");c.removeAttr("hidden");c.addClass("help-block")});f.submit();return!1});b.getRoot().on(h.hidden,function(){b.destroy()});b.show();return b}).always(e.resolve).catch(d.exception)});a("body").on("click",".tag-collections-table .action_delete",function(b){var c=new i("core/tag:initManageCollectionsPage-action_delete");b.preventDefault();var e=a(this).attr("data-url")+"&sesskey="+M.cfg.sesskey;f.get_strings([{key:"delete"},{key:"suredeletecoll",component:"tag",param:a(this).attr("data-collname")},{key:"yes"},{key:"no"}]).then(function(a){return d.confirm(a[0],a[1],a[2],a[3],function(){window.location.href=e})}).always(c.resolve).catch(d.exception)})}}}); //# sourceMappingURL=tag.min.js.map diff --git a/lib/amd/build/tag.min.js.map b/lib/amd/build/tag.min.js.map index 974956862bd..7db6808b675 100644 --- a/lib/amd/build/tag.min.js.map +++ b/lib/amd/build/tag.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/tag.js"],"names":["define","$","ajax","templates","notification","str","ModalFactory","ModalEvents","Pending","initTagindexPage","delegate","e","pendingPromise","preventDefault","target","query","search","replace","tagarea","closest","args","split","reduce","s","c","t","decodeURIComponent","call","methodname","tagindex","then","data","render","html","js","replaceNode","always","resolve","catch","exception","initManagePage","on","get_strings","key","component","result","ajaxreturn","itemid","find","itemtype","row","value","removeClass","addClass","href","attr","confirm","window","location","click","form","get","cnt","length","tempElement","name","appendTo","submit","tags","alert","saveButtonText","tagOptions","each","tagid","val","tagname","push","id","langStrings","modalTitle","create","title","body","type","types","SAVE_CANCEL","modal","setSaveButtonText","getRoot","save","maintag","hidden","destroy","show","first","focus","prop","newvalue","errorcode","message","encodeURIComponent","M","cfg","sesskey","get_string","actionurl","tagsInput","currentTarget","trim","tagsForm","checkValidity","stopPropagation","errorMessage","removeAttr","initManageCollectionsPage","areaid","collid","isenabled","hide","templateContext","collectionInput","param"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see .\n\n/**\n * AJAX helper for the tag management page.\n *\n * @module core/tag\n * @package core_tag\n * @copyright 2015 Marina Glancy\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 3.0\n */\ndefine([\n 'jquery',\n 'core/ajax',\n 'core/templates',\n 'core/notification',\n 'core/str',\n 'core/modal_factory',\n 'core/modal_events',\n 'core/pending',\n], function(\n $,\n ajax,\n templates,\n notification,\n str,\n ModalFactory,\n ModalEvents,\n Pending\n) {\n return /** @alias module:core/tag */ {\n\n /**\n * Initialises tag index page.\n *\n * @method initTagindexPage\n */\n initTagindexPage: function() {\n // Click handler for changing tag type.\n $('body').delegate('.tagarea[data-ta] a[data-quickload=1]', 'click', function(e) {\n var pendingPromise = new Pending('core/tag:initTagindexPage');\n\n e.preventDefault();\n var target = $(this);\n var query = target[0].search.replace(/^\\?/, '');\n var tagarea = target.closest('.tagarea[data-ta]');\n var args = query.split('&').reduce(function(s, c) {\n var t = c.split('=');\n s[t[0]] = decodeURIComponent(t[1]);\n return s;\n }, {});\n\n ajax.call([{\n methodname: 'core_tag_get_tagindex',\n args: {tagindex: args}\n }])[0]\n .then(function(data) {\n return templates.render('core_tag/index', data);\n })\n .then(function(html, js) {\n templates.replaceNode(tagarea, html, js);\n return;\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n },\n\n /**\n * Initialises tag management page.\n *\n * @method initManagePage\n */\n initManagePage: function() {\n // Set cell 'time modified' to 'now' when any of the element is updated in this row.\n $('body').on('updated', '[data-inplaceeditable]', function(e) {\n var pendingPromise = new Pending('core/tag:initManagePage');\n\n str.get_strings([\n {\n key: 'selecttag',\n component: 'core_tag',\n },\n {\n key: 'now',\n component: 'core',\n },\n ])\n .then(function(result) {\n $('label[for=\"tagselect' + e.ajaxreturn.itemid + '\"]').html(result[0]);\n $(e.target).closest('tr').find('td.col-timemodified').html(result[1]);\n\n return;\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n\n if (e.ajaxreturn.itemtype === 'tagflag') {\n var row = $(e.target).closest('tr');\n if (e.ajaxreturn.value === '0') {\n row.removeClass('flagged-tag');\n } else {\n row.addClass('flagged-tag');\n }\n }\n });\n\n // Confirmation for single tag delete link.\n $('.tag-management-table').delegate('a.tagdelete', 'click', function(e) {\n var pendingPromise = new Pending('core/tag:tagdelete');\n\n e.preventDefault();\n var href = $(this).attr('href');\n str.get_strings([\n {key: 'delete', component: 'core'},\n {key: 'confirmdeletetag', component: 'tag'},\n {key: 'yes', component: 'core'},\n {key: 'no', component: 'core'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n window.location.href = href;\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n // Confirmation for bulk tag delete button.\n $(\"#tag-management-delete\").click(function(e) {\n var form = $(this).closest('form').get(0);\n\n var cnt = $(form).find(\"input[type=checkbox]:checked\").length;\n if (!cnt) {\n return;\n }\n\n var pendingPromise = new Pending('core/tag:tag-management-delete');\n var tempElement = $(\"\").attr('name', this.name);\n e.preventDefault();\n str.get_strings([\n {key: 'delete', component: 'core'},\n {key: 'confirmdeletetags', component: 'tag'},\n {key: 'yes', component: 'core'},\n {key: 'no', component: 'core'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n tempElement.appendTo(form);\n form.submit();\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n // Confirmation for bulk tag combine button.\n $(\"#tag-management-combine\").click(function(e) {\n var pendingPromise = new Pending('core/tag:tag-management-combine');\n\n e.preventDefault();\n var form = $(this).closest('form').get(0);\n var tags = $(form).find(\"input[type=checkbox]:checked\");\n\n if (tags.length <= 1) {\n str.get_strings([\n {key: 'combineselected', component: 'tag'},\n {key: 'selectmultipletags', component: 'tag'},\n {key: 'ok'},\n ])\n .then(function(s) {\n return notification.alert(s[0], s[1], s[2]);\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n\n return;\n }\n\n var tempElement = $(\"\").attr('name', this.name);\n var saveButtonText = '';\n var tagOptions = [];\n tags.each(function() {\n var tagid = $(this).val(),\n tagname = $('.inplaceeditable[data-itemtype=tagname][data-itemid=' + tagid + ']').attr('data-value');\n tagOptions.push({\n id: tagid,\n name: tagname\n });\n });\n\n str.get_strings([\n {key: 'combineselected', component: 'tag'},\n {key: 'continue', component: 'core'}\n ])\n .then(function(langStrings) {\n var modalTitle = langStrings[0];\n saveButtonText = langStrings[1];\n var templateContext = {\n tags: tagOptions\n };\n return ModalFactory.create({\n title: modalTitle,\n body: templates.render('core_tag/combine_tags', templateContext),\n type: ModalFactory.types.SAVE_CANCEL\n });\n })\n .then(function(modal) {\n modal.setSaveButtonText(saveButtonText);\n\n return modal;\n })\n .then(function(modal) {\n\n // Handle save event.\n modal.getRoot().on(ModalEvents.save, function(e) {\n e.preventDefault();\n\n // Append this temp element in the form in the tags list, not the form in the modal. Confusing, right?!?\n tempElement.appendTo(form);\n // Get the selected tag from the modal.\n var maintag = $('input[name=maintag]:checked', '#combinetags_form').val();\n // Append this in the tags list form.\n $(\"\").attr('name', 'maintag').attr('value', maintag).appendTo(form);\n // Submit the tags list form.\n form.submit();\n });\n\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n modal.show();\n // Tick the first option.\n $('#combinetags_form input[type=radio]').first().focus().prop('checked', true);\n\n return;\n\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n // When user changes tag name to some name that already exists suggest to combine the tags.\n $('body').on('updatefailed', '[data-inplaceeditable][data-itemtype=tagname]', function(e) {\n var exception = e.exception; // The exception object returned by the callback.\n var newvalue = e.newvalue; // The value that user tried to udpated the element to.\n var tagid = $(e.target).attr('data-itemid');\n if (exception.errorcode === 'namesalreadybeeingused') {\n var pendingPromise = new Pending('core/tag:updatefailed');\n\n e.preventDefault(); // This will prevent default error dialogue.\n str.get_strings([\n {key: 'nameuseddocombine', component: 'tag'},\n {key: 'yes'},\n {key: 'cancel'},\n ])\n .then(function(s) {\n return notification.confirm(e.message, s[0], s[1], s[2], function() {\n window.location.href = window.location.href + \"&newname=\" + encodeURIComponent(newvalue) +\n \"&tagid=\" + encodeURIComponent(tagid) +\n '&action=renamecombine&sesskey=' + M.cfg.sesskey;\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n }\n });\n\n // Form for adding standard tags.\n $('body').on('click', 'a[data-action=addstandardtag]', function(e) {\n var pendingPromise = new Pending('core/tag:addstandardtag');\n e.preventDefault();\n\n return ModalFactory.create({\n title: str.get_string('addotags', 'tag'),\n body: templates.render('core_tag/add_tags', {\n actionurl: window.location.href,\n sesskey: M.cfg.sesskey\n }),\n type: ModalFactory.types.SAVE_CANCEL\n })\n .then(function(modal) {\n modal.setSaveButtonText(str.get_string('continue', 'core'));\n\n // Handle save event.\n modal.getRoot().on(ModalEvents.save, function(e) {\n var tagsInput = $(e.currentTarget).find('#id_tagslist');\n var name = tagsInput.val().trim();\n\n // Set the text field's value to the trimmed value.\n tagsInput.val(name);\n\n // Add submit event listener to the form.\n var tagsForm = $('#addtags_form');\n tagsForm.on('submit', function(e) {\n // Validate the form.\n var form = $('#addtags_form');\n if (form[0].checkValidity() === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n form.addClass('was-validated');\n\n // BS2 compatibility.\n $('[data-region=\"tagslistinput\"]').addClass('error');\n var errorMessage = $('#id_tagslist_error_message');\n errorMessage.removeAttr('hidden');\n errorMessage.addClass('help-block');\n });\n\n // Try to submit the form.\n tagsForm.submit();\n\n return false;\n });\n\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n modal.show();\n\n return;\n\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n },\n\n /**\n * Initialises tag collection management page.\n *\n * @method initManageCollectionsPage\n */\n initManageCollectionsPage: function() {\n $('body').on('updated', '[data-inplaceeditable]', function(e) {\n var pendingPromise = new Pending('core/tag:initManageCollectionsPage-updated');\n\n var ajaxreturn = e.ajaxreturn,\n areaid, collid, isenabled;\n if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareaenable') {\n areaid = $(this).attr('data-itemid');\n $(\".tag-collections-table ul[data-collectionid] li[data-areaid=\" + areaid + \"]\").hide();\n isenabled = ajaxreturn.value;\n if (isenabled === '1') {\n $(this).closest('tr').removeClass('dimmed_text');\n collid = $(this).closest('tr').find('[data-itemtype=\"tagareacollection\"]').attr(\"data-value\");\n $(\".tag-collections-table ul[data-collectionid=\" + collid + \"] li[data-areaid=\" + areaid + \"]\").show();\n } else {\n $(this).closest('tr').addClass('dimmed_text');\n }\n }\n if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareacollection') {\n areaid = $(this).attr('data-itemid');\n $(\".tag-collections-table ul[data-collectionid] li[data-areaid=\" + areaid + \"]\").hide();\n collid = $(this).attr('data-value');\n isenabled = $(this).closest('tr').find('[data-itemtype=\"tagareaenable\"]').attr(\"data-value\");\n if (isenabled === \"1\") {\n $(\".tag-collections-table ul[data-collectionid=\" + collid + \"] li[data-areaid=\" + areaid + \"]\").show();\n }\n }\n\n pendingPromise.resolve();\n });\n\n $('body').on('click', '.addtagcoll > a', function(e) {\n var pendingPromise = new Pending('core/tag:initManageCollectionsPage-addtagcoll');\n\n e.preventDefault();\n var keys = [\n {\n key: 'addtagcoll',\n component: 'tag'\n },\n {\n key: 'create',\n component: 'core'\n }\n ];\n\n var href = $(this).attr('data-url');\n var saveButtonText = '';\n str.get_strings(keys)\n .then(function(langStrings) {\n var modalTitle = langStrings[0];\n saveButtonText = langStrings[1];\n var templateContext = {\n actionurl: href,\n sesskey: M.cfg.sesskey\n };\n return ModalFactory.create({\n title: modalTitle,\n body: templates.render('core_tag/add_tag_collection', templateContext),\n type: ModalFactory.types.SAVE_CANCEL\n });\n })\n .then(function(modal) {\n modal.setSaveButtonText(saveButtonText);\n\n // Handle save event.\n modal.getRoot().on(ModalEvents.save, function(e) {\n var collectionInput = $(e.currentTarget).find('#addtagcoll_name');\n var name = collectionInput.val().trim();\n // Set the text field's value to the trimmed value.\n collectionInput.val(name);\n\n // Add submit event listener to the form.\n var form = $('#addtagcoll_form');\n form.on('submit', function(e) {\n // Validate the form.\n if (form[0].checkValidity() === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n form.addClass('was-validated');\n\n // BS2 compatibility.\n $('[data-region=\"addtagcoll_nameinput\"]').addClass('error');\n var errorMessage = $('#id_addtagcoll_name_error_message');\n errorMessage.removeAttr('hidden');\n errorMessage.addClass('help-block');\n });\n\n // Try to submit the form.\n form.submit();\n\n return false;\n });\n\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n modal.show();\n\n return modal;\n\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n $('body').on('click', '.tag-collections-table .action_delete', function(e) {\n var pendingPromise = new Pending('core/tag:initManageCollectionsPage-action_delete');\n\n e.preventDefault();\n var href = $(this).attr('data-url') + '&sesskey=' + M.cfg.sesskey;\n str.get_strings([\n {key: 'delete'},\n {key: 'suredeletecoll', component: 'tag', param: $(this).attr('data-collname')},\n {key: 'yes'},\n {key: 'no'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n window.location.href = href;\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n }\n };\n});\n"],"file":"tag.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/tag.js"],"names":["define","$","ajax","templates","notification","str","ModalFactory","ModalEvents","Pending","initTagindexPage","delegate","e","pendingPromise","preventDefault","target","query","search","replace","tagarea","closest","args","split","reduce","s","c","t","decodeURIComponent","call","methodname","tagindex","then","data","render","html","js","replaceNode","always","resolve","catch","exception","initManagePage","on","get_strings","key","component","result","ajaxreturn","itemid","find","itemtype","row","value","removeClass","addClass","href","attr","confirm","window","location","click","form","get","cnt","length","tempElement","name","appendTo","submit","tags","alert","saveButtonText","tagOptions","each","tagid","val","tagname","push","id","langStrings","modalTitle","create","title","body","type","types","SAVE_CANCEL","modal","setSaveButtonText","getRoot","save","maintag","hidden","destroy","show","first","focus","prop","newvalue","errorcode","encodeURIComponent","M","cfg","sesskey","get_string","actionurl","tagsInput","currentTarget","trim","tagsForm","checkValidity","stopPropagation","errorMessage","removeAttr","initManageCollectionsPage","areaid","collid","isenabled","hide","templateContext","collectionInput","param"],"mappings":"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","sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see .\n\n/**\n * AJAX helper for the tag management page.\n *\n * @module core/tag\n * @package core_tag\n * @copyright 2015 Marina Glancy\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 3.0\n */\ndefine([\n 'jquery',\n 'core/ajax',\n 'core/templates',\n 'core/notification',\n 'core/str',\n 'core/modal_factory',\n 'core/modal_events',\n 'core/pending',\n], function(\n $,\n ajax,\n templates,\n notification,\n str,\n ModalFactory,\n ModalEvents,\n Pending\n) {\n return /** @alias module:core/tag */ {\n\n /**\n * Initialises tag index page.\n *\n * @method initTagindexPage\n */\n initTagindexPage: function() {\n // Click handler for changing tag type.\n $('body').delegate('.tagarea[data-ta] a[data-quickload=1]', 'click', function(e) {\n var pendingPromise = new Pending('core/tag:initTagindexPage');\n\n e.preventDefault();\n var target = $(this);\n var query = target[0].search.replace(/^\\?/, '');\n var tagarea = target.closest('.tagarea[data-ta]');\n var args = query.split('&').reduce(function(s, c) {\n var t = c.split('=');\n s[t[0]] = decodeURIComponent(t[1]);\n return s;\n }, {});\n\n ajax.call([{\n methodname: 'core_tag_get_tagindex',\n args: {tagindex: args}\n }])[0]\n .then(function(data) {\n return templates.render('core_tag/index', data);\n })\n .then(function(html, js) {\n templates.replaceNode(tagarea, html, js);\n return;\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n },\n\n /**\n * Initialises tag management page.\n *\n * @method initManagePage\n */\n initManagePage: function() {\n // Set cell 'time modified' to 'now' when any of the element is updated in this row.\n $('body').on('updated', '[data-inplaceeditable]', function(e) {\n var pendingPromise = new Pending('core/tag:initManagePage');\n\n str.get_strings([\n {\n key: 'selecttag',\n component: 'core_tag',\n },\n {\n key: 'now',\n component: 'core',\n },\n ])\n .then(function(result) {\n $('label[for=\"tagselect' + e.ajaxreturn.itemid + '\"]').html(result[0]);\n $(e.target).closest('tr').find('td.col-timemodified').html(result[1]);\n\n return;\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n\n if (e.ajaxreturn.itemtype === 'tagflag') {\n var row = $(e.target).closest('tr');\n if (e.ajaxreturn.value === '0') {\n row.removeClass('flagged-tag');\n } else {\n row.addClass('flagged-tag');\n }\n }\n });\n\n // Confirmation for single tag delete link.\n $('.tag-management-table').delegate('a.tagdelete', 'click', function(e) {\n var pendingPromise = new Pending('core/tag:tagdelete');\n\n e.preventDefault();\n var href = $(this).attr('href');\n str.get_strings([\n {key: 'delete', component: 'core'},\n {key: 'confirmdeletetag', component: 'tag'},\n {key: 'yes', component: 'core'},\n {key: 'no', component: 'core'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n window.location.href = href;\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n // Confirmation for bulk tag delete button.\n $(\"#tag-management-delete\").click(function(e) {\n var form = $(this).closest('form').get(0);\n\n var cnt = $(form).find(\"input[type=checkbox]:checked\").length;\n if (!cnt) {\n return;\n }\n\n var pendingPromise = new Pending('core/tag:tag-management-delete');\n var tempElement = $(\"\").attr('name', this.name);\n e.preventDefault();\n str.get_strings([\n {key: 'delete', component: 'core'},\n {key: 'confirmdeletetags', component: 'tag'},\n {key: 'yes', component: 'core'},\n {key: 'no', component: 'core'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n tempElement.appendTo(form);\n form.submit();\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n // Confirmation for bulk tag combine button.\n $(\"#tag-management-combine\").click(function(e) {\n var pendingPromise = new Pending('core/tag:tag-management-combine');\n\n e.preventDefault();\n var form = $(this).closest('form').get(0);\n var tags = $(form).find(\"input[type=checkbox]:checked\");\n\n if (tags.length <= 1) {\n str.get_strings([\n {key: 'combineselected', component: 'tag'},\n {key: 'selectmultipletags', component: 'tag'},\n {key: 'ok'},\n ])\n .then(function(s) {\n return notification.alert(s[0], s[1], s[2]);\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n\n return;\n }\n\n var tempElement = $(\"\").attr('name', this.name);\n var saveButtonText = '';\n var tagOptions = [];\n tags.each(function() {\n var tagid = $(this).val(),\n tagname = $('.inplaceeditable[data-itemtype=tagname][data-itemid=' + tagid + ']').attr('data-value');\n tagOptions.push({\n id: tagid,\n name: tagname\n });\n });\n\n str.get_strings([\n {key: 'combineselected', component: 'tag'},\n {key: 'continue', component: 'core'}\n ])\n .then(function(langStrings) {\n var modalTitle = langStrings[0];\n saveButtonText = langStrings[1];\n var templateContext = {\n tags: tagOptions\n };\n return ModalFactory.create({\n title: modalTitle,\n body: templates.render('core_tag/combine_tags', templateContext),\n type: ModalFactory.types.SAVE_CANCEL\n });\n })\n .then(function(modal) {\n modal.setSaveButtonText(saveButtonText);\n\n return modal;\n })\n .then(function(modal) {\n\n // Handle save event.\n modal.getRoot().on(ModalEvents.save, function(e) {\n e.preventDefault();\n\n // Append this temp element in the form in the tags list, not the form in the modal. Confusing, right?!?\n tempElement.appendTo(form);\n // Get the selected tag from the modal.\n var maintag = $('input[name=maintag]:checked', '#combinetags_form').val();\n // Append this in the tags list form.\n $(\"\").attr('name', 'maintag').attr('value', maintag).appendTo(form);\n // Submit the tags list form.\n form.submit();\n });\n\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n modal.show();\n // Tick the first option.\n $('#combinetags_form input[type=radio]').first().focus().prop('checked', true);\n\n return;\n\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n // When user changes tag name to some name that already exists suggest to combine the tags.\n $('body').on('updatefailed', '[data-inplaceeditable][data-itemtype=tagname]', function(e) {\n var exception = e.exception; // The exception object returned by the callback.\n var newvalue = e.newvalue; // The value that user tried to udpated the element to.\n var tagid = $(e.target).attr('data-itemid');\n if (exception.errorcode === 'namesalreadybeeingused') {\n var pendingPromise = new Pending('core/tag:updatefailed');\n\n e.preventDefault(); // This will prevent default error dialogue.\n str.get_strings([\n {key: 'confirm', component: 'core'},\n {key: 'nameuseddocombine', component: 'tag'},\n {key: 'yes', component: 'core'},\n {key: 'cancel', component: 'core'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n window.location.href = window.location.href + \"&newname=\" + encodeURIComponent(newvalue) +\n \"&tagid=\" + encodeURIComponent(tagid) +\n '&action=renamecombine&sesskey=' + M.cfg.sesskey;\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n }\n });\n\n // Form for adding standard tags.\n $('body').on('click', 'a[data-action=addstandardtag]', function(e) {\n var pendingPromise = new Pending('core/tag:addstandardtag');\n e.preventDefault();\n\n return ModalFactory.create({\n title: str.get_string('addotags', 'tag'),\n body: templates.render('core_tag/add_tags', {\n actionurl: window.location.href,\n sesskey: M.cfg.sesskey\n }),\n type: ModalFactory.types.SAVE_CANCEL\n })\n .then(function(modal) {\n modal.setSaveButtonText(str.get_string('continue', 'core'));\n\n // Handle save event.\n modal.getRoot().on(ModalEvents.save, function(e) {\n var tagsInput = $(e.currentTarget).find('#id_tagslist');\n var name = tagsInput.val().trim();\n\n // Set the text field's value to the trimmed value.\n tagsInput.val(name);\n\n // Add submit event listener to the form.\n var tagsForm = $('#addtags_form');\n tagsForm.on('submit', function(e) {\n // Validate the form.\n var form = $('#addtags_form');\n if (form[0].checkValidity() === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n form.addClass('was-validated');\n\n // BS2 compatibility.\n $('[data-region=\"tagslistinput\"]').addClass('error');\n var errorMessage = $('#id_tagslist_error_message');\n errorMessage.removeAttr('hidden');\n errorMessage.addClass('help-block');\n });\n\n // Try to submit the form.\n tagsForm.submit();\n\n return false;\n });\n\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n modal.show();\n\n return;\n\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n },\n\n /**\n * Initialises tag collection management page.\n *\n * @method initManageCollectionsPage\n */\n initManageCollectionsPage: function() {\n $('body').on('updated', '[data-inplaceeditable]', function(e) {\n var pendingPromise = new Pending('core/tag:initManageCollectionsPage-updated');\n\n var ajaxreturn = e.ajaxreturn,\n areaid, collid, isenabled;\n if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareaenable') {\n areaid = $(this).attr('data-itemid');\n $(\".tag-collections-table ul[data-collectionid] li[data-areaid=\" + areaid + \"]\").hide();\n isenabled = ajaxreturn.value;\n if (isenabled === '1') {\n $(this).closest('tr').removeClass('dimmed_text');\n collid = $(this).closest('tr').find('[data-itemtype=\"tagareacollection\"]').attr(\"data-value\");\n $(\".tag-collections-table ul[data-collectionid=\" + collid + \"] li[data-areaid=\" + areaid + \"]\").show();\n } else {\n $(this).closest('tr').addClass('dimmed_text');\n }\n }\n if (ajaxreturn.component === 'core_tag' && ajaxreturn.itemtype === 'tagareacollection') {\n areaid = $(this).attr('data-itemid');\n $(\".tag-collections-table ul[data-collectionid] li[data-areaid=\" + areaid + \"]\").hide();\n collid = $(this).attr('data-value');\n isenabled = $(this).closest('tr').find('[data-itemtype=\"tagareaenable\"]').attr(\"data-value\");\n if (isenabled === \"1\") {\n $(\".tag-collections-table ul[data-collectionid=\" + collid + \"] li[data-areaid=\" + areaid + \"]\").show();\n }\n }\n\n pendingPromise.resolve();\n });\n\n $('body').on('click', '.addtagcoll > a', function(e) {\n var pendingPromise = new Pending('core/tag:initManageCollectionsPage-addtagcoll');\n\n e.preventDefault();\n var keys = [\n {\n key: 'addtagcoll',\n component: 'tag'\n },\n {\n key: 'create',\n component: 'core'\n }\n ];\n\n var href = $(this).attr('data-url');\n var saveButtonText = '';\n str.get_strings(keys)\n .then(function(langStrings) {\n var modalTitle = langStrings[0];\n saveButtonText = langStrings[1];\n var templateContext = {\n actionurl: href,\n sesskey: M.cfg.sesskey\n };\n return ModalFactory.create({\n title: modalTitle,\n body: templates.render('core_tag/add_tag_collection', templateContext),\n type: ModalFactory.types.SAVE_CANCEL\n });\n })\n .then(function(modal) {\n modal.setSaveButtonText(saveButtonText);\n\n // Handle save event.\n modal.getRoot().on(ModalEvents.save, function(e) {\n var collectionInput = $(e.currentTarget).find('#addtagcoll_name');\n var name = collectionInput.val().trim();\n // Set the text field's value to the trimmed value.\n collectionInput.val(name);\n\n // Add submit event listener to the form.\n var form = $('#addtagcoll_form');\n form.on('submit', function(e) {\n // Validate the form.\n if (form[0].checkValidity() === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n form.addClass('was-validated');\n\n // BS2 compatibility.\n $('[data-region=\"addtagcoll_nameinput\"]').addClass('error');\n var errorMessage = $('#id_addtagcoll_name_error_message');\n errorMessage.removeAttr('hidden');\n errorMessage.addClass('help-block');\n });\n\n // Try to submit the form.\n form.submit();\n\n return false;\n });\n\n // Handle hidden event.\n modal.getRoot().on(ModalEvents.hidden, function() {\n // Destroy when hidden.\n modal.destroy();\n });\n\n modal.show();\n\n return modal;\n\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n\n $('body').on('click', '.tag-collections-table .action_delete', function(e) {\n var pendingPromise = new Pending('core/tag:initManageCollectionsPage-action_delete');\n\n e.preventDefault();\n var href = $(this).attr('data-url') + '&sesskey=' + M.cfg.sesskey;\n str.get_strings([\n {key: 'delete'},\n {key: 'suredeletecoll', component: 'tag', param: $(this).attr('data-collname')},\n {key: 'yes'},\n {key: 'no'},\n ])\n .then(function(s) {\n return notification.confirm(s[0], s[1], s[2], s[3], function() {\n window.location.href = href;\n });\n })\n .always(pendingPromise.resolve)\n .catch(notification.exception);\n });\n }\n };\n});\n"],"file":"tag.min.js"} \ No newline at end of file diff --git a/lib/amd/src/tag.js b/lib/amd/src/tag.js index 2527032ad6f..603cc9fef51 100644 --- a/lib/amd/src/tag.js +++ b/lib/amd/src/tag.js @@ -266,12 +266,13 @@ define([ e.preventDefault(); // This will prevent default error dialogue. str.get_strings([ + {key: 'confirm', component: 'core'}, {key: 'nameuseddocombine', component: 'tag'}, - {key: 'yes'}, - {key: 'cancel'}, + {key: 'yes', component: 'core'}, + {key: 'cancel', component: 'core'}, ]) .then(function(s) { - return notification.confirm(e.message, s[0], s[1], s[2], function() { + return notification.confirm(s[0], s[1], s[2], s[3], function() { window.location.href = window.location.href + "&newname=" + encodeURIComponent(newvalue) + "&tagid=" + encodeURIComponent(tagid) + '&action=renamecombine&sesskey=' + M.cfg.sesskey; diff --git a/lib/behat/classes/partial_named_selector.php b/lib/behat/classes/partial_named_selector.php index 87c602e85f4..a1825a6a7e5 100644 --- a/lib/behat/classes/partial_named_selector.php +++ b/lib/behat/classes/partial_named_selector.php @@ -161,7 +161,7 @@ XPATH .//div[ contains(concat(' ', normalize-space(@class), ' '), ' modal ') and - normalize-space(descendant::*[contains(concat(' ', normalize-space(@class), ' '), ' modal-header ')] = %locator%) + normalize-space(descendant::*[contains(concat(' ', normalize-space(@class), ' '), ' modal-header ')]) = %locator% ] XPATH , 'group_message' => <<