Merge branch 'MDL-70780-39' of git://github.com/andrewnicols/moodle into MOODLE_39_STABLE
This commit is contained in:
Vendored
+1
-1
@@ -1,2 +1,2 @@
|
||||
define ("core_customfield/form",["jquery","core/str","core/notification","core/ajax","core/templates","core/sortable_list","core/inplace_editable"],function(a,b,c,d,e,f){var g=function(f,g,h,i,j){b.get_strings([{key:"confirm"},{key:"confirmdelete"+g,component:"core_customfield"},{key:"yes"},{key:"no"}]).done(function(b){c.confirm(b[0],b[1],b[2],b[3],function(){var b="field"===g?"core_customfield_delete_field":"core_customfield_delete_category";d.call([{methodname:b,args:{id:f}},{methodname:"core_customfield_reload_template",args:{component:h,area:i,itemid:j}}])[1].then(function(a){return e.render("core_customfield/list",a)}).then(function(b,c){e.replaceNode(a("[data-region=\"list-page\"]"),b,c);return null}).fail(c.exception)})}).fail(c.exception)},h=function(b,f,g){var h=d.call([{methodname:"core_customfield_create_category",args:{component:b,area:f,itemid:g}},{methodname:"core_customfield_reload_template",args:{component:b,area:f,itemid:g}}]),i;h[0].then(function(a){i=a;return null}).fail(c.exception);h[1].then(function(a){return e.render("core_customfield/list",a)}).then(function(b,c){e.replaceNode(a("[data-region=\"list-page\"]"),b,c);window.location.href="#category-"+i;return null}).fail(c.exception)};return{init:function init(){var e=a("#customfield_catlist"),i=e.attr("data-component"),j=e.attr("data-area"),k=e.attr("data-itemid");a("[data-role=deletefield]").on("click",function(b){g(a(this).attr("data-id"),"field",i,j,k);b.preventDefault()});a("[data-role=deletecategory]").on("click",function(b){g(a(this).attr("data-id"),"category",i,j,k);b.preventDefault()});a("[data-role=addnewcategory]").on("click",function(){h(i,j,k)});var l=function(a){return a.closest("[data-category-id]").find("[data-inplaceeditable][data-itemtype=category][data-component=core_customfield]").attr("data-value")},m=new f(a("#customfield_catlist .categorieslist"),{moveHandlerSelector:".movecategory [data-drag-type=move]"});m.getElementName=function(b){return a.Deferred().resolve(l(b))};a("[data-category-id]").on("sortablelist-drop",function(a,b){if(b.positionChanged){var e=d.call([{methodname:"core_customfield_move_category",args:{id:b.element.data("category-id"),beforeid:b.targetNextElement.data("category-id")}}]);e[0].fail(c.exception)}a.stopPropagation()});var n=new f(a("#customfield_catlist .fieldslist tbody"),{moveHandlerSelector:".movefield [data-drag-type=move]"});n.getDestinationName=function(c,d){if(!d.length){return b.get_string("totopofcategory","customfield",l(c))}else if(d.attr("data-field-name")){return b.get_string("afterfield","customfield",d.attr("data-field-name"))}else{return a.Deferred().resolve("")}};a("[data-field-name]").on("sortablelist-drop",function(a,b){a.stopPropagation();if(b.positionChanged){var e=d.call([{methodname:"core_customfield_move_field",args:{id:b.element.data("field-id"),beforeid:b.targetNextElement.data("field-id"),categoryid:+b.targetList.closest("[data-category-id]").attr("data-category-id")}}]);e[0].fail(c.exception)}}).on("sortablelist-drag",function(d){d.stopPropagation();b.get_string("therearenofields","core_customfield").then(function(b){a("#customfield_catlist .categorieslist").children().each(function(){var c=a(this).find(a(".field")),d=a(this).find(a(".nofields"));if(!c.length&&!d.length){a(this).find("tbody").append("<tr class=\"nofields\"><td colspan=\"5\">"+b+"</td></tr>")}if(c.length&&d.length){d.remove()}});return null}).fail(c.exception)});a("[data-category-id], [data-field-name]").on("sortablelist-dragstart",function(b,c){setTimeout(function(){a(".sortable-list-is-dragged").width(c.element.width())},501)})}}});
|
||||
define ("core_customfield/form",["jquery","core/str","core/notification","core/ajax","core/templates","core/sortable_list","core/pending","core/inplace_editable"],function(a,b,c,d,e,f,g){var h=function(f,h,i,j,k){var l=new g("core_customfield/form:confirmDelete");b.get_strings([{key:"confirm"},{key:"confirmdelete"+h,component:"core_customfield"},{key:"yes"},{key:"no"}]).then(function(b){c.confirm(b[0],b[1],b[2],b[3],function(){var b=new g("core_customfield/form:confirmDelete"),l="field"===h?"core_customfield_delete_field":"core_customfield_delete_category";d.call([{methodname:l,args:{id:f}},{methodname:"core_customfield_reload_template",args:{component:i,area:j,itemid:k}}])[1].then(function(a){return e.render("core_customfield/list",a)}).then(function(b,c){e.replaceNode(a("[data-region=\"list-page\"]"),b,c);return null}).then(b.resolve).catch(c.exception)})}).then(l.resolve).catch(c.exception)},i=function(b,f,h){var i=new g("core_customfield/form:confirmDelete"),j=d.call([{methodname:"core_customfield_create_category",args:{component:b,area:f,itemid:h}},{methodname:"core_customfield_reload_template",args:{component:b,area:f,itemid:h}}]),k;j[0].then(function(a){k=a;return null}).catch(c.exception);j[1].then(function(a){return e.render("core_customfield/list",a)}).then(function(b,c){e.replaceNode(a("[data-region=\"list-page\"]"),b,c);window.location.href="#category-"+k;return null}).catch(c.exception);Promise.all(j).then(i.resolve).catch()};return{init:function init(){var e=a("#customfield_catlist"),j=e.attr("data-component"),k=e.attr("data-area"),l=e.attr("data-itemid");a("[data-role=deletefield]").on("click",function(b){h(a(this).attr("data-id"),"field",j,k,l);b.preventDefault()});a("[data-role=deletecategory]").on("click",function(b){h(a(this).attr("data-id"),"category",j,k,l);b.preventDefault()});a("[data-role=addnewcategory]").on("click",function(){i(j,k,l)});var m=function(a){return a.closest("[data-category-id]").find("[data-inplaceeditable][data-itemtype=category][data-component=core_customfield]").attr("data-value")},n=new f(a("#customfield_catlist .categorieslist"),{moveHandlerSelector:".movecategory [data-drag-type=move]"});n.getElementName=function(b){return a.Deferred().resolve(m(b))};a("[data-category-id]").on("sortablelist-drop",function(a,b){if(b.positionChanged){var e=new g("core_customfield/form:categoryid:on:sortablelist-drop");d.call([{methodname:"core_customfield_move_category",args:{id:b.element.data("category-id"),beforeid:b.targetNextElement.data("category-id")}}])[0].then(e.resolve).catch(c.exception)}a.stopPropagation()});var o=new f(a("#customfield_catlist .fieldslist tbody"),{moveHandlerSelector:".movefield [data-drag-type=move]"});o.getDestinationName=function(c,d){if(!d.length){return b.get_string("totopofcategory","customfield",m(c))}else if(d.attr("data-field-name")){return b.get_string("afterfield","customfield",d.attr("data-field-name"))}else{return a.Deferred().resolve("")}};a("[data-field-name]").on("sortablelist-drop",function(a,b){a.stopPropagation();if(b.positionChanged){var e=new g("core_customfield/form:fieldname:on:sortablelist-drop");d.call([{methodname:"core_customfield_move_field",args:{id:b.element.data("field-id"),beforeid:b.targetNextElement.data("field-id"),categoryid:+b.targetList.closest("[data-category-id]").attr("data-category-id")}}])[0].then(e.resolve).catch(c.exception)}});a("[data-field-name]").on("sortablelist-drag",function(d){var e=new g("core_customfield/form:fieldname:on:sortablelist-drag");d.stopPropagation();b.get_string("therearenofields","core_customfield").then(function(b){a("#customfield_catlist .categorieslist").children().each(function(){var c=a(this).find(a(".field")),d=a(this).find(a(".nofields"));if(!c.length&&!d.length){a(this).find("tbody").append("<tr class=\"nofields\"><td colspan=\"5\">"+b+"</td></tr>")}if(c.length&&d.length){d.remove()}});return null}).then(e.resolve).catch(c.exception)});a("[data-category-id], [data-field-name]").on("sortablelist-dragstart",function(b,c){setTimeout(function(){a(".sortable-list-is-dragged").width(c.element.width())},501)})}}});
|
||||
//# sourceMappingURL=form.min.js.map
|
||||
|
||||
File diff suppressed because one or more lines are too long
+66
-27
@@ -21,9 +21,16 @@
|
||||
* @copyright 2018 Toni Barbera
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates', 'core/sortable_list', 'core/inplace_editable'],
|
||||
function(
|
||||
$, Str, Notification, Ajax, Templates, SortableList) {
|
||||
define([
|
||||
'jquery',
|
||||
'core/str',
|
||||
'core/notification',
|
||||
'core/ajax',
|
||||
'core/templates',
|
||||
'core/sortable_list',
|
||||
'core/pending',
|
||||
'core/inplace_editable',
|
||||
], function($, Str, Notification, Ajax, Templates, SortableList, Pending) {
|
||||
|
||||
/**
|
||||
* Display confirmation dialogue
|
||||
@@ -35,25 +42,36 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
* @param {Number} itemid
|
||||
*/
|
||||
var confirmDelete = function(id, type, component, area, itemid) {
|
||||
var pendingPromise = new Pending('core_customfield/form:confirmDelete');
|
||||
Str.get_strings([
|
||||
{'key': 'confirm'},
|
||||
{'key': 'confirmdelete' + type, component: 'core_customfield'},
|
||||
{'key': 'yes'},
|
||||
{'key': 'no'},
|
||||
]).done(function(s) {
|
||||
])
|
||||
.then(function(s) {
|
||||
Notification.confirm(s[0], s[1], s[2], s[3], function() {
|
||||
var pendingDeletePromise = new Pending('core_customfield/form:confirmDelete');
|
||||
var func = (type === 'field') ? 'core_customfield_delete_field' : 'core_customfield_delete_category';
|
||||
Ajax.call([
|
||||
{methodname: func, args: {id: id}},
|
||||
{methodname: 'core_customfield_reload_template', args: {component: component, area: area, itemid: itemid}}
|
||||
])[1].then(function(response) {
|
||||
])[1]
|
||||
.then(function(response) {
|
||||
return Templates.render('core_customfield/list', response);
|
||||
}).then(function(html, js) {
|
||||
})
|
||||
.then(function(html, js) {
|
||||
Templates.replaceNode($('[data-region="list-page"]'), html, js);
|
||||
return null;
|
||||
}).fail(Notification.exception);
|
||||
})
|
||||
.then(pendingDeletePromise.resolve)
|
||||
.catch(Notification.exception);
|
||||
});
|
||||
}).fail(Notification.exception);
|
||||
|
||||
return;
|
||||
})
|
||||
.then(pendingPromise.resolve)
|
||||
.catch(Notification.exception);
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -64,24 +82,31 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
* @param {Number} itemid
|
||||
*/
|
||||
var createNewCategory = function(component, area, itemid) {
|
||||
var pendingPromise = new Pending('core_customfield/form:confirmDelete');
|
||||
var promises = Ajax.call([
|
||||
{methodname: 'core_customfield_create_category', args: {component: component, area: area, itemid: itemid}},
|
||||
{methodname: 'core_customfield_reload_template', args: {component: component, area: area, itemid: itemid}}
|
||||
]),
|
||||
categoryid;
|
||||
{methodname: 'core_customfield_create_category', args: {component: component, area: area, itemid: itemid}},
|
||||
{methodname: 'core_customfield_reload_template', args: {component: component, area: area, itemid: itemid}}
|
||||
]);
|
||||
var categoryid;
|
||||
|
||||
promises[0].then(function(response) {
|
||||
categoryid = response;
|
||||
return null;
|
||||
}).fail(Notification.exception);
|
||||
}).catch(Notification.exception);
|
||||
|
||||
promises[1].then(function(response) {
|
||||
return Templates.render('core_customfield/list', response);
|
||||
}).then(function(html, js) {
|
||||
})
|
||||
.then(function(html, js) {
|
||||
Templates.replaceNode($('[data-region="list-page"]'), html, js);
|
||||
window.location.href = '#category-' + categoryid;
|
||||
return null;
|
||||
}).fail(Notification.exception);
|
||||
})
|
||||
.catch(Notification.exception);
|
||||
|
||||
Promise.all(promises)
|
||||
.then(pendingPromise.resolve)
|
||||
.catch();
|
||||
};
|
||||
|
||||
return {
|
||||
@@ -89,18 +114,21 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
* Initialise the custom fields manager
|
||||
*/
|
||||
init: function() {
|
||||
var mainlist = $('#customfield_catlist'),
|
||||
component = mainlist.attr('data-component'),
|
||||
area = mainlist.attr('data-area'),
|
||||
itemid = mainlist.attr('data-itemid');
|
||||
var mainlist = $('#customfield_catlist');
|
||||
var component = mainlist.attr('data-component');
|
||||
var area = mainlist.attr('data-area');
|
||||
var itemid = mainlist.attr('data-itemid');
|
||||
|
||||
$("[data-role=deletefield]").on('click', function(e) {
|
||||
confirmDelete($(this).attr('data-id'), 'field', component, area, itemid);
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$("[data-role=deletecategory]").on('click', function(e) {
|
||||
confirmDelete($(this).attr('data-id'), 'category', component, area, itemid);
|
||||
e.preventDefault();
|
||||
});
|
||||
|
||||
$('[data-role=addnewcategory]').on('click', function() {
|
||||
createNewCategory(component, area, itemid);
|
||||
});
|
||||
@@ -124,7 +152,8 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
|
||||
$('[data-category-id]').on('sortablelist-drop', function(evt, info) {
|
||||
if (info.positionChanged) {
|
||||
var promises = Ajax.call([
|
||||
var pendingPromise = new Pending('core_customfield/form:categoryid:on:sortablelist-drop');
|
||||
Ajax.call([
|
||||
{
|
||||
methodname: 'core_customfield_move_category',
|
||||
args: {
|
||||
@@ -133,8 +162,9 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
}
|
||||
|
||||
},
|
||||
]);
|
||||
promises[0].fail(Notification.exception);
|
||||
])[0]
|
||||
.then(pendingPromise.resolve)
|
||||
.catch(Notification.exception);
|
||||
}
|
||||
evt.stopPropagation(); // Important for nested lists to prevent multiple targets.
|
||||
});
|
||||
@@ -158,7 +188,8 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
$('[data-field-name]').on('sortablelist-drop', function(evt, info) {
|
||||
evt.stopPropagation(); // Important for nested lists to prevent multiple targets.
|
||||
if (info.positionChanged) {
|
||||
var promises = Ajax.call([
|
||||
var pendingPromise = new Pending('core_customfield/form:fieldname:on:sortablelist-drop');
|
||||
Ajax.call([
|
||||
{
|
||||
methodname: 'core_customfield_move_field',
|
||||
args: {
|
||||
@@ -167,11 +198,17 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
categoryid: Number(info.targetList.closest('[data-category-id]').attr('data-category-id'))
|
||||
},
|
||||
},
|
||||
]);
|
||||
promises[0].fail(Notification.exception);
|
||||
])[0]
|
||||
.then(pendingPromise.resolve)
|
||||
.catch(Notification.exception);
|
||||
}
|
||||
}).on('sortablelist-drag', function(evt) {
|
||||
});
|
||||
|
||||
$('[data-field-name]').on('sortablelist-drag', function(evt) {
|
||||
var pendingPromise = new Pending('core_customfield/form:fieldname:on:sortablelist-drag');
|
||||
|
||||
evt.stopPropagation(); // Important for nested lists to prevent multiple targets.
|
||||
|
||||
// Refreshing fields tables.
|
||||
Str.get_string('therearenofields', 'core_customfield').then(function(s) {
|
||||
$('#customfield_catlist .categorieslist').children().each(function() {
|
||||
@@ -187,7 +224,9 @@ define(['jquery', 'core/str', 'core/notification', 'core/ajax', 'core/templates'
|
||||
}
|
||||
});
|
||||
return null;
|
||||
}).fail(Notification.exception);
|
||||
})
|
||||
.then(pendingPromise.resolve)
|
||||
.catch(Notification.exception);
|
||||
});
|
||||
|
||||
$('[data-category-id], [data-field-name]').on('sortablelist-dragstart',
|
||||
|
||||
Reference in New Issue
Block a user