All Downloads are FREE. Search and download functionalities are using the official Maven repository.

root.libs.composum.nodes.commons.components.js.dialogs.min.js Maven / Gradle / Ivy

There is a newer version: 4.3.4
Show newest version
(function(){CPM.namespace("core.components");(function(f,d){f.const=f.const||{};f.const.dialog={alert:{type:{error:"danger",warn:"warning"}},translate:{uri:{object:"/bin/cpm/core/translate.object.json",status:"/bin/cpm/core/translate.status.json"}},load:{base:d.const.composumBase+"composum/nodes/commons/components/dialogs",_path:".path-select.html"}};f.Dialog=Backbone.View.extend({initialize:function(a){this.isLoaded=a.loaded||!1;this.$alert=this.$(".alert");this.$messageHead=this.$(".messages .panel-heading");
this.$messageBody=this.$(".messages .panel-body");this.setUpWidgets(this.el);this.$el.on("shown.bs.modal",_.bind(this.onShown,this));if(this.isLoaded)this.$el.on("hidden.bs.modal",_.bind(this.destroy,this));this.$lock=this.$(".lock-curtain");1>this.$lock.length&&(this.$el.prepend('\x3cdiv class\x3d"lock-curtain"\x3e\x3ci class\x3d"fa fa-spinner fa-pulse"\x3e\x3c/i\x3e\x3c/div\x3e'),this.$lock=this.$(".lock-curtain"));this.$lock.click(function(a){a.preventDefault();return!1})},setUpWidgets:function(a){CPM.widgets.setUp(a)},
widgetOf:function(a){return d.widgetOf(a)},show:function(a,b){this.initView=a;this.callback=b;this.$el.modal("show");this.unlock()},onShown:function(){this.resetOnShown();_.isFunction(this.initView)&&this.initView(this)},resetOnShown:function(){this.isLoaded||this.reset()},hide:function(){this.$el.modal("hide");_.isFunction(this.callback)&&this.callback(this);this.reset()},lock:function(){this.$el.addClass("dialog-locked");this.busyTimeout||(this.busyTimeout=window.setTimeout(_.bind(function(){this.busyTimeout=
void 0;this.$el.addClass("dialog-busy")},this),500))},unlock:function(){this.busyTimeout&&(window.clearTimeout(this.busyTimeout),this.busyTimeout=void 0);this.$el.removeClass("dialog-busy").removeClass("dialog-locked")},reset:function(){this.unlock();this.alert();this.$(".widget").each(function(){this.view&&_.isFunction(this.view.reset)&&this.view.reset.apply(this.view)})},destroy:function(a){this.$el.remove()},alert:function(a,b,c){b?(a=f.const.dialog.alert.type[a]||a,d.isRestricted(c)&&(b=d.getRestrictedMessage(),
c=void 0),1===this.$messageBody.length?(this.$messageHead.html(c?d.resultMessage(c,b):b),this.$messageHead.removeClass("hidden"),this.$messageBody.html(""),this.$messageBody.addClass("hidden"),this.$messageBody.parent().removeClass().addClass("panel").addClass("panel-"+a)):(this.$alert.html(c?d.resultMessage(c,b):b),this.$alert.removeClass().addClass("alert").addClass("alert-"+a))):1===this.$messageBody.length?(this.$messageBody.parent().removeClass().addClass("hidden"),this.$messageHead.html(""),
this.$messageBody.html("")):(this.$alert.html(""),this.$alert.removeClass().addClass("alert").addClass("hidden"))},messages:function(a,b,c){if(1===this.$messageBody.length)if(a=f.const.dialog.alert.type[a]||a,this.$messageBody.parent().removeClass(),b?(this.$messageHead.html(b),this.$messageHead.removeClass("hidden"),this.$messageBody.parent().addClass("panel").addClass("panel-"+a)):this.$messageHead.addClass("hidden"),this.$messageBody.html(""),_.isArray(c)&&0b.status)if(200===b.status&&_.isFunction(e))e(b),this.hide();else{var c=b.responseJSON;200!==b.status&&
_.isObject(c)&&c.messages?(this.unlock(),this.onError(b,a)):this.hide()}else this.unlock(),this.onError(b,a)},this))},onError:function(a,b){a.responseJSON&&a.responseJSON.messages?(a=a.responseJSON,this.messages(a.success?a.warning?"warn":"info":"error",a.title||b,a.messages)):this.errorMessage(b?b:"Error",a)},errorMessage:function(a,b){var c=b.responseJSON;_.isObject(c)&&c.response?this.messages(c.response.level,c.response.text,c.messages):this.alert(300<=b.status&&399>b.status?"info":"danger",a,
b)}});f.StackableDialog=f.Dialog.extend({initialize:function(a){d.components.Dialog.prototype.initialize.call(this,a)},show:function(a,b){d.components.Dialog.prototype.show.call(this,a,b)},hide:function(){d.components.Dialog.prototype.hide.call(this)}});f.AbstractPathSelectDialog=f.StackableDialog.extend({initialize:function(a){f.StackableDialog.prototype.initialize.call(this,a);this.$title=this.$(".modal-title");this.$label=this.$(".path-input-label");this.input=d.getView(this.$(a.inputSelector||
"input.path-input"),a.inputType||d.components.PathWidget);this.input.$el.on("change",_.bind(this.inputChanged,this))},onShown:function(){f.StackableDialog.prototype.onShown.call(this);this.inputChanged()},hide:function(){this.$el.modal("hide");this.reset()},setTitle:function(a){this.$title.text(a?a:this.$title.data("default"))},setLabel:function(a){this.$label.text(a?a:this.$label.data("default"))},setRootPath:function(a){this.input.setRootPath(a)},setFilter:function(a){this.input.setFilter(a)},getValue:function(){return this.input.getValue()},
setValue:function(a){this.input.setValue(a);this.inputChanged()},inputChanged:function(){}});f.SelectPathDialog=f.AbstractPathSelectDialog.extend({initialize:function(a){f.AbstractPathSelectDialog.prototype.initialize.apply(this,[a]);this.busy=!1;this.tree=d.getView(this.$(".path-select-tree"),f.Tree);this.tree.onNodeSelected=_.bind(this.onNodeSelected,this);this.$("button.select").click(_.bind(function(){_.isFunction(this.callback)&&this.callback(this.getValue());this.hide()},this))},setRootPath:function(a){f.AbstractPathSelectDialog.prototype.setRootPath.call(this,
a);this.tree.setRootPath(a)},setFilter:function(a){f.AbstractPathSelectDialog.prototype.setFilter.call(this,a);this.tree.setFilter(a)},inputChanged:function(){if(!this.busy){this.busy=!0;var a=this.getValue();0===a.indexOf("/")&&d.getJson("/bin/cpm/nodes/node.tree.json"+d.encodePath(a),_.bind(function(a){this.tree.selectNode.apply(this.tree,[a.path])},this));this.busy=!1}},onNodeSelected:function(a){this.busy||(this.busy=!0,this.setValue(a),this.busy=!1)},reset:function(){f.AbstractPathSelectDialog.prototype.reset.apply(this);
this.tree.reset.apply(this.tree)}});f.LoadedDialog=f.Dialog.extend({initialize:function(a){d.components.Dialog.prototype.initialize.call(this,_.extend({loaded:!0},a))}});d.addLoadedDialog=function(a,b,c){var e=$("body");e.append(b);b=e.children(":last-child");return d.getWidget(e,b[0],a,c?_.extend({loaded:!0},c):{loaded:!0})};d.showLoadedDialog=function(a,b,c,e,f){(a=d.addLoadedDialog(a,b,c))&&a.show(e,f)};d.openLoadedDialog=function(a,b,c,e,f){d.getHtml(a,function(a){d.showLoadedDialog(b,a,c,e,f)})};
f.FormDialog=f.LoadedDialog.extend({initialize:function(a){this.form=d.getWidget(this.el,"form",a?a.formType||d.components.FormWidget:d.components.FormWidget);d.components.LoadedDialog.prototype.initialize.call(this,a);this.validationHints=[];this.initView();this.initSubmit()},getConfig:function(){return this.config},dialogData:function(){return{}},initSubmit:function(){this.$("form").on("submit",_.bind(this.onSubmit,this))},initView:function(){},validationReset:function(){this.$alert.addClass("alert-hidden");
this.$alert.html("");this.validationHints=[];this.form.validationReset()},onValidationFault:function(){this.form.onValidationFault()},message:function(a,b,c,d){c&&this.alert(a,'\x3cdiv class\x3d"text-danger"\x3e\x3cspan class\x3d"label"\x3e'+b+'\x3c/span\x3e\x3cspan class\x3d"message"\x3e'+c+(d?" ("+d+")":"")+"\x3c/span\x3e\x3c/div\x3e")},hintsMessage:function(a){this.messages(a?a:"warning",1>this.validationHints.length?"validation error":void 0,this.validationHints)},validationHint:function(a,b,
c,d){c&&this.validationHints.push({level:a,label:b,text:c,hint:d})},validateForm:function(){this.validationReset();return this.form.validate(_.bind(this.validationHint,this))},validationData:function(){return{dialog:this.dialogData(),messages:this.validationHints}},doValidate:function(a,b){var c=this.validateForm(),e=this.getConfig();e&&e.validationUrl?(c=_.isFunction(e.validationUrl)?e.validationUrl():e.validationUrl,e=this.validationData(),d.ajaxPut(c,JSON.stringify(e),{dataType:"json"},void 0,
void 0,_.bind(function(c){var d=c.responseJSON;if(d)d.messages&&(this.validationHints=d.messages),d.success?a():b();else this.onError(c)},this))):c?a():b()},doSubmit:function(){this.submitForm()},onSubmit:function(a){a&&a.preventDefault();this.form.prepare();this.doValidate(_.bind(function(){this.form.finalize();this.doSubmit(_.bind(function(a){this.showResult(a)},this))},this),_.bind(function(){1>this.validationHints.length?d.i18n.get("Validation error",_.bind(function(a){this.messages("warning",
a,this.validationHints)},this)):this.messages("warning",void 0,this.validationHints);this.onValidationFault()},this));return!1},showResult:function(a){if(_.isObject(a)&&_.isObject(a.response)){var b=a.response;a=a.messages;_.isArray(a)&&0




© 2015 - 2025 Weber Informatics LLC | Privacy Policy