var FormComponents = function() { var modalBody = ''; var a = function() { if ($.fn.autosize) { $(modalBody+" textarea.auto").autosize() } }; var c = function() { if ($.fn.inputlimiter) { $.extend(true, $.fn.inputlimiter.defaults, { boxAttach: false, boxId: "limit-text", remText: "%n character%s remaining.", limitText: "Field limited to %n character%s.", zeroPlural: true }); $(modalBody+" textarea.limited").each(function(m, n) { var o = $(this).attr("name"); var l = $.fn.inputlimiter.defaults.limitText; var p = $(this).data("limit"); l = l.replace(/\%n/g, p); l = l.replace(/\%s/g, (p <= 1 ? "" : "s")); $.extend(true, $.fn.inputlimiter.defaults, { boxId: "limit-text-" + o, }); $(this).parent().find("#limit-text-" + o).html(l); $(this).inputlimiter({ limit: p }) }) } }; var b = function() { if ($.fn.uniform) { $(modalBody+" :radio.uniform, :checkbox.uniform").uniform() } }; var e = function() { if ($.fn.tagsInput) { $(modalBody+" .tags").tagsInput({ width: "100%", height: "auto", defaultText: "add a tag" }) } }; var i = function() { if ($.fn.select2) { $.extend(true, $.fn.select2.defaults, { width: "", allowClear: true, }); // $(modalBody+" .select2").each(function() { // var l = $(this); // $(l).select2(l.data()) // }); $(modalBody+" .dataTables_length select").select2({ width: "resolve", allowClear: true, minimumResultsForSearch: "-1" }) } }; var k = function($parent) { $parent = $parent || null; if ($parent == null ){ $parent = $(document); } if ($.fn.fileInput) { $parent.find('[data-style="fileinput"]').each(function() { if ($(this).attr('data-type') == 'gs-uploadFile'){ $.extend(true, $.fn.fileInput.defaults, FormComponents.initOption.fileInput()); //** oscar upgrade var _this = $(this); var data = {isJson:true, isThumb: (typeof _this.data('is-image') !== 'undefined')}; var destination = (typeof _this.data('destination') !== 'undefined'); if (destination == 'media'){ data.isCryptPath = true; } _this.fileInput(_this.data()); _this.closest('.fileinput-holder').find('.fileinput-preview').addClass('hidden').addClass('d-none'); _this.change(function(e){ onShowWait('Caricamento... '); var _file = null; var $ui = $(this).parent(); $(this).simpleUpload("/phplets/uploadFile", { data: data, start: function(file){ _file = file; var ss = _this.data('callback-start'); if(!!ss){ eval(ss+'()'); } }, progress: function(progress){ setShowWaitLabel('Caricamento... '+Math.round(progress) + '%'); }, success: function(data){ onHideWait(); if (data.errorMessage != ''){ var ff = _this.data('callback-fault'); if(!!ff){ eval(ff+'("'+data.errorMessage+'")'); } }else{ CommonUi.onSuccessAllegato($ui.parent(), data.path, _file.name, data, destination); } }, error: function(error){ onHideWait(); var ff = _this.data('callback-fault'); if(!!ff){ eval(ff+'('+error.name + ": " + error.message+')'); } } }); }); }else if ($(this).attr('data-type') == 'gs-img-uploadFile'){ $.extend(true, $.fn.fileInput.defaults, {buttontext:'Allega'}); //** oscar upgrade var _this = $(this); _this.fileInput(_this.data()); _this.closest('.fileinput-holder').find('.fileinput-preview').addClass('hidden').addClass('d-none'); _this.change(function(e){ onShowWait('Caricamento... '); var _file = null; var $ui = $(this).parent(); $(this).simpleUpload("/phplets/uploadFile", { data: {isJson:true}, start: function(file){ _file = file; var ss = _this.data('callback-start'); if(!!ss){ eval(ss+'()'); } }, progress: function(progress){ setShowWaitLabel('Caricamento... '+Math.round(progress) + '%'); }, success: function(data){ onHideWait(); $ui = $ui.parent(); var inputFile = $ui.find('input[type="file"]'); var ss = inputFile.data('callback-success'); $ui.tooltip(); if(!!ss){ eval(ss+'(data, $ui)'); } }, error: function(error){ onHideWait(); var ff = _this.data('callback-fault'); if(!!ff){ eval(ff+'('+error.name + ": " + error.message+')'); } } }); }); }else{ var l = $(this); l.fileInput(l.data()) } }); } }; var j = function() { if ($.fn.spinner) { $(modalBody+" .spinner").each(function() { $(this).spinner() }) } }; var f = function() { if ($.configureBoxes) { $.configureBoxes() } }; var d = function() { if ($.validator) { $.extend($.validator.defaults, { errorClass: "has-error", validClass: "has-success", highlight: function(o, m, n) { if (o.type === "radio") { this.findByName(o.name).addClass(m).removeClass(n) } else { $(o).addClass(m).removeClass(n) } if ($(o).closest("form").hasClass("form-vertical")) { var p = "*[class^=col-]" } else { var p = ".form-group" } $(o).closest(p).addClass(m).removeClass(n) }, unhighlight: function(o, m, n) { if (o.type === "radio") { this.findByName(o.name).removeClass(m).addClass(n) } else { $(o).removeClass(m).addClass(n) } if ($(o).closest("form").hasClass("form-vertical")) { var p = "*[class^=col-]" } else { var p = ".form-group" } $(o).closest(p).removeClass(m).addClass(n); $(o).closest(p).find('label[generated="true"]').html("") } }); var l = $.validator.prototype.resetForm; $.extend($.validator.prototype, { resetForm: function() { var m = this; l.call(this); $(this.currentForm).find(".form-group").each(function() { $(this).removeClass(m.settings.errorClass + " " + m.settings.validClass) }); $(this.currentForm).find(".select2-container").removeClass(m.settings.errorClass + " " + m.settings.validClass); $(this.currentForm).find('label[generated="true"]').html("") }, showLabel: function(n, o) { var m = this.errorsFor(n); if (m.length) { m.removeClass(this.settings.validClass).addClass(this.settings.errorClass); if (m.attr("generated")) { m.html(o) } } else { m = $("<" + this.settings.errorElement + "/>").attr({ "for": this.idOrName(n), generated: true }).addClass(this.settings.errorClass).addClass("help-block").html(o || ""); if (this.settings.wrapper) { m = m.hide().show().wrap("<" + this.settings.wrapper + "/>").parent() } if (!this.labelContainer.append(m).length) { if (this.settings.errorPlacement) { this.settings.errorPlacement(m, $(n)) } else { m.insertAfter(n) } } } if (!o && this.settings.success) { m.text(""); if (typeof this.settings.success === "string") { m.addClass(this.settings.success) } else { this.settings.success(m, n) } } this.toShow = this.toShow.add(m) } }) } }; var g = function() { if ($.fn.multiselect) { $(modalBody+" .multiselect").each(function() { $(this).multiselect(FormComponents.initOption.multiselectOption()); }) } }; return { initOption:{ fileInput:function(){ return{ buttontext: "Sfoglia", placeholder: "Nessun file selezionato...", } }, multiselectOption:function(){ return { isForceShowSelected:false, buttonWidth:'100%', enableFiltering: true, enableCaseInsensitiveFiltering: true, includeSelectAllOption: true, enableClickableOptGroups:true, selectAllText: 'Seleziona tutti', allSelectedText: 'Tutti selezionati', nSelectedText: 'selezionati', filterPlaceholder: 'Cerca', onDropdownHide: function(event) {console.log('Dropdown closed') alert('Dropdown closed.'); }, buttonText: function(options, select) { if (this.disabledText.length > 0 && (select.prop('disabled') || (options.length == 0 && this.disableIfEmpty))) { return this.disabledText; } else if (options.length === 0) { var isFemminile = !!$(select).attr('is-femminile'); if (!!$(select).attr('placeholder')){ return (isFemminile ? 'Nessuna ' : 'Nessuno ') +$(select).attr('placeholder'); }else{ return 'Nessuno'; } } else if (this.allSelectedText && !this.isForceShowSelected && options.length === $('option', $(select)).length && $('option', $(select)).length !== 1 && this.multiple) { if (this.selectAllNumber) { return this.allSelectedText + ' (' + options.length + ')'; } else { return this.allSelectedText; } } else if (options.length > this.numberDisplayed && !this.isForceShowSelected) { return options.length + ' ' + this.nSelectedText; } else { var selected = ''; var delimiter = this.delimiterText; options.each(function() { var label = ($(this).attr('label') !== undefined) ? $(this).attr('label') : $(this).text(); selected += label + delimiter; }); return selected.substr(0, selected.length - this.delimiterText.length); } } } } }, initDialog: function (){ console.log('init dialog') $(".modal-body select.select2-select-00 option:selected").parent().select2({ allowClear: true }); $(".modal-body select.select2-select-00 option:selected[value='']").parent().val(null).select2({ allowClear: true }); modalBody = '.modal-body'; FormComponents.init(); }, initUploadFile: function($parent){ k($parent); }, init: function() { a(); c(); b(); e(); i(); k(); j(); f(); d(); g(); } } }();