/
var
/
www
/
html
/
lgpd
/
lib
/
form
/
amd
/
build
/
Upload File
HOME
define ("core_form/filetypes",["jquery","core/log","core/str","core/modal_factory","core/modal_events","core/ajax","core/templates","core/tree"],function(a,b,c,d,e,f,g,h){"use strict";var i=function(c,d,e,f){this.elementId=c;this.elementLabel=d;this.onlyTypes=e;this.allowAll=f;this.inputField=a("#"+c);this.wrapperBrowserTrigger=a("[data-filetypesbrowser=\""+c+"\"]");this.wrapperDescriptions=a("[data-filetypesdescriptions=\""+c+"\"]");if(!this.wrapperBrowserTrigger.length){return}if(!this.inputField.length||!this.wrapperDescriptions.length){b.error("core_form/filetypes: Unexpected DOM structure, unable to enhance filetypes field "+c);return}this.prepareBrowserTrigger().then(function(){return this.prepareBrowserModal()}.bind(this)).then(function(){return this.prepareBrowserTree()}.bind(this))};i.prototype.prepareBrowserTrigger=function(){return g.render("core_form/filetypes-trigger",{}).then(function(a){this.wrapperBrowserTrigger.html(a);this.browserTrigger=this.wrapperBrowserTrigger.find("[data-filetypeswidget=\"browsertrigger\"]")}.bind(this))};i.prototype.prepareBrowserModal=function(){return d.create({type:d.types.SAVE_CANCEL,title:this.elementLabel}).then(function(a){this.browserModal=a}.bind(this)).then(function(){this.browserModal.getRoot().on(e.hidden,function(){this.browserTrigger.focus()}.bind(this));this.browserModal.getRoot().on(e.save,function(){this.saveBrowserModal()}.bind(this))}.bind(this))};i.prototype.prepareBrowserTree=function(){this.browserTrigger.on("click",function(b){b.preventDefault();if(this.inputField.is("[disabled]")){return}var c=this.loadBrowserModalBody();c.then(function(){this.browserTree=new h(this.browserModal.getBody());this.browserTree.handleKeyDown=function(a,b){if(b.keyCode==this.browserTree.keys.enter||b.keyCode==this.browserTree.keys.space){b.preventDefault();b.stopPropagation();this.toggleCheckbox(a.attr("data-filetypesbrowserkey"))}else{h.prototype.handleKeyDown.call(this.browserTree,a,b)}}.bind(this);if(this.allowAll){this.hideOrShowItemsDependingOnAllowAll(this.browserModal.getRoot().find("input[type=\"checkbox\"][data-filetypesbrowserkey=\"*\"]:first"));this.browserModal.getRoot().on("change","input[type=\"checkbox\"][data-filetypesbrowserkey=\"*\"]",function(b){this.hideOrShowItemsDependingOnAllowAll(a(b.currentTarget))}.bind(this))}this.browserModal.getRoot().on("change","input[type=\"checkbox\"][data-filetypesbrowserkey]",function(b){var c=a(b.currentTarget),d=c.attr("data-filetypesbrowserkey");this.browserModal.getRoot().find("input[type=\"checkbox\"][data-filetypesbrowserkey=\""+d+"\"]").prop("checked",c.prop("checked"))}.bind(this))}.bind(this)).then(function(){this.browserModal.show()}.bind(this));this.browserModal.setBody(c)}.bind(this));return a.when()};i.prototype.loadBrowserModalBody=function(){var a={onlytypes:this.onlyTypes.join(),allowall:this.allowAll,current:this.inputField.val()};return f.call([{methodname:"core_form_get_filetypes_browser_data",args:a}])[0].then(function(a){return g.render("core_form/filetypes-browser",{elementid:this.elementId,groups:a.groups})}.bind(this))};i.prototype.toggleCheckbox=function(a){var b=this.browserModal.getRoot().find("input[type=\"checkbox\"][data-filetypesbrowserkey=\""+a+"\"]:first");b.prop("checked",!b.prop("checked"))};i.prototype.saveBrowserModal=function(){if(this.allowAll){var b=this.browserModal.getRoot().find("input[type=\"checkbox\"][data-filetypesbrowserkey=\"*\"]");if(b.length&&b.prop("checked")){this.inputField.val("*");this.updateDescriptions(["*"]);return}}var c=[];this.browserModal.getRoot().find("input[type=\"checkbox\"]").each(function(){var b=a(this),d=b.attr("data-filetypesbrowserkey");if(b.prop("checked")){c.push(d)}});c=c.filter(function(b,c,d){return d.indexOf(b)==c});this.inputField.val(c.join(" "));this.updateDescriptions(c)};i.prototype.updateDescriptions=function(a){var b=[];a.forEach(function(a){b.push({description:this.browserModal.getRoot().find("[data-filetypesname=\""+a+"\"]:first").text().trim(),extensions:this.browserModal.getRoot().find("[data-filetypesextensions=\""+a+"\"]:first").text().trim()})}.bind(this));var c={hasdescriptions:0<b.length,descriptions:b};return g.render("core_form/filetypes-descriptions",c).then(function(a){this.wrapperDescriptions.html(a)}.bind(this))};i.prototype.hideOrShowItemsDependingOnAllowAll=function(a){var b=this.browserModal.getRoot().find("[role=\"treeitem\"][data-filetypesbrowserkey!=\"*\"]");if(a.prop("checked")){b.hide()}else{b.show()}};return{init:function init(a,b,c,d){new i(a,b,c,d)}}}); //# sourceMappingURL=filetypes.min.js.map