hiddifypanel 9.0.0.dev82__py3-none-any.whl → 9.0.0.dev92__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hiddifypanel/VERSION +1 -1
- hiddifypanel/VERSION.py +2 -2
- hiddifypanel/base.py +2 -2
- hiddifypanel/hutils/encode.py +5 -0
- hiddifypanel/models/proxy.py +4 -0
- hiddifypanel/models/user.py +2 -1
- hiddifypanel/models/utils.py +0 -2
- hiddifypanel/panel/admin/AdminstratorAdmin.py +1 -0
- hiddifypanel/panel/admin/DomainAdmin.py +3 -3
- hiddifypanel/panel/admin/ProxyAdmin.py +8 -2
- hiddifypanel/panel/admin/SettingAdmin.py +5 -2
- hiddifypanel/panel/admin/UserAdmin.py +36 -29
- hiddifypanel/panel/admin/adminlte.py +2 -2
- hiddifypanel/panel/admin/fix_flaskadmin_babel.py +1 -2
- hiddifypanel/panel/admin/templates/configfake.html +1 -0
- hiddifypanel/panel/commercial/ProxyDetailsAdmin.py +14 -2
- hiddifypanel/panel/commercial/restapi/v2/user/info_api.py +3 -2
- hiddifypanel/panel/hiddify.py +1 -1
- hiddifypanel/panel/init_db.py +2 -2
- hiddifypanel/panel/user/link_maker.py +2 -2
- hiddifypanel/panel/user/user.py +1 -1
- hiddifypanel/static/js/custom-rtl.js +8 -4
- hiddifypanel/static/js/custom.js +1 -1
- hiddifypanel/static/plugins/bootstrap4-editable/js/bootstrap-editable.js +3106 -3106
- hiddifypanel/static/plugins/bootstrap4-editable/js/bootstrap-editable.min.js +15 -3
- hiddifypanel/templates/admin-layout.html +2 -2
- hiddifypanel/templates/flaskadmin-layout.html +104 -80
- hiddifypanel/templates/master.html +4 -1
- hiddifypanel/translations/en/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/en/LC_MESSAGES/messages.po +8 -6
- hiddifypanel/translations/fa/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/fa/LC_MESSAGES/messages.po +7 -3
- hiddifypanel/translations/pt/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/pt/LC_MESSAGES/messages.po +40 -28
- hiddifypanel/translations/ru/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/ru/LC_MESSAGES/messages.po +41 -27
- hiddifypanel/translations/zh/LC_MESSAGES/messages.mo +0 -0
- hiddifypanel/translations/zh/LC_MESSAGES/messages.po +22 -12
- hiddifypanel/translations.i18n/en.json +3 -1
- hiddifypanel/translations.i18n/fa.json +3 -1
- hiddifypanel/translations.i18n/pt.json +30 -28
- hiddifypanel/translations.i18n/ru.json +30 -28
- hiddifypanel/translations.i18n/zh.json +14 -12
- {hiddifypanel-9.0.0.dev82.dist-info → hiddifypanel-9.0.0.dev92.dist-info}/METADATA +1 -1
- {hiddifypanel-9.0.0.dev82.dist-info → hiddifypanel-9.0.0.dev92.dist-info}/RECORD +49 -49
- {hiddifypanel-9.0.0.dev82.dist-info → hiddifypanel-9.0.0.dev92.dist-info}/LICENSE.md +0 -0
- {hiddifypanel-9.0.0.dev82.dist-info → hiddifypanel-9.0.0.dev92.dist-info}/WHEEL +0 -0
- {hiddifypanel-9.0.0.dev82.dist-info → hiddifypanel-9.0.0.dev92.dist-info}/entry_points.txt +0 -0
- {hiddifypanel-9.0.0.dev82.dist-info → hiddifypanel-9.0.0.dev92.dist-info}/top_level.txt +0 -0
@@ -2,6 +2,18 @@
|
|
2
2
|
* In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
|
3
3
|
* http://github.com/vitalets/x-editable
|
4
4
|
* Copyright (c) 2018 Vitaliy Potapov; Licensed MIT */
|
5
|
-
!function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),this.options.scope||(this.options.scope=this)};b.prototype={constructor:b,initInput:function(){this.input=this.options.input,this.value=this.input.str2value(this.options.value),this.input.prerender()},initTemplate:function(){this.$form=a(a.fn.editableform.template)},initButtons:function(){var b=this.$form.find(".editable-buttons");b.append(a.fn.editableform.buttons),"bottom"===this.options.showbuttons&&b.addClass("editable-buttons-bottom")},render:function(){this.$loading=a(a.fn.editableform.loading),this.$div.empty().append(this.$loading),this.initTemplate(),this.options.showbuttons?this.initButtons():this.$form.find(".editable-buttons").remove(),this.showLoading(),this.isSaving=!1,this.$div.triggerHandler("rendering"),this.initInput(),this.$form.find("div.editable-input").append(this.input.$tpl),this.$div.append(this.$form),a.when(this.input.render()).then(a.proxy(function(){if(this.options.showbuttons||this.input.autosubmit(),this.$form.find(".editable-cancel").click(a.proxy(this.cancel,this)),this.input.error)this.error(this.input.error),this.$form.find(".editable-submit").attr("disabled",!0),this.input.$input.attr("disabled",!0),this.$form.submit(function(a){a.preventDefault()});else{this.error(!1),this.input.$input.removeAttr("disabled"),this.$form.find(".editable-submit").removeAttr("disabled");var b=null===this.value||void 0===this.value||""===this.value?this.options.defaultValue:this.value;this.input.value2input(b),this.$form.submit(a.proxy(this.submit,this))}this.$div.triggerHandler("rendered"),this.showForm(),this.input.postrender&&this.input.postrender()},this))},cancel:function(){this.$div.triggerHandler("cancel")},showLoading:function(){var a,b;this.$form?(a=this.$form.outerWidth(),b=this.$form.outerHeight(),a&&this.$loading.width(a),b&&this.$loading.height(b),this.$form.hide()):(a=this.$loading.parent().width(),a&&this.$loading.width(a)),this.$loading.show()},showForm:function(a){this.$loading.hide(),this.$form.show(),a!==!1&&this.input.activate(),this.$div.triggerHandler("show")},error:function(b){var c,d=this.$form.find(".control-group"),e=this.$form.find(".editable-error-block");if(b===!1)d.removeClass(a.fn.editableform.errorGroupClass),e.removeClass(a.fn.editableform.errorBlockClass).empty().hide();else{if(b){c=(""+b).split("\n");for(var f=0;f<c.length;f++)c[f]=a("<div>").text(c[f]).html();b=c.join("<br>")}d.addClass(a.fn.editableform.errorGroupClass),e.addClass(a.fn.editableform.errorBlockClass).html(b).show()}},submit:function(b){b.stopPropagation(),b.preventDefault();var c=this.input.input2value(),d=this.validate(c);if("object"===a.type(d)&&void 0!==d.newValue){if(c=d.newValue,this.input.value2input(c),"string"==typeof d.msg)return this.error(d.msg),void this.showForm()}else if(d)return this.error(d),void this.showForm();if(!this.options.savenochange&&this.input.value2str(c)===this.input.value2str(this.value))return void this.$div.triggerHandler("nochange");var e=this.input.value2submit(c);this.isSaving=!0,a.when(this.save(e)).done(a.proxy(function(a){this.isSaving=!1;var b="function"==typeof this.options.success?this.options.success.call(this.options.scope,a,c):null;return b===!1?(this.error(!1),void this.showForm(!1)):"string"==typeof b?(this.error(b),void this.showForm()):(b&&"object"==typeof b&&b.hasOwnProperty("newValue")&&(c=b.newValue),this.error(!1),this.value=c,void this.$div.triggerHandler("save",{newValue:c,submitValue:e,response:a}))},this)).fail(a.proxy(function(a){this.isSaving=!1;var b;b="function"==typeof this.options.error?this.options.error.call(this.options.scope,a,c):"string"==typeof a?a:a.responseText||a.statusText||"Unknown error!",this.error(b),this.showForm()},this))},save:function(b){this.options.pk=a.fn.editableutils.tryParseJson(this.options.pk,!0);var c,d="function"==typeof this.options.pk?this.options.pk.call(this.options.scope):this.options.pk,e=!!("function"==typeof this.options.url||this.options.url&&("always"===this.options.send||"auto"===this.options.send&&null!==d&&void 0!==d));return e?(this.showLoading(),c={name:this.options.name||"",value:b,pk:d},"function"==typeof this.options.params?c=this.options.params.call(this.options.scope,c):(this.options.params=a.fn.editableutils.tryParseJson(this.options.params,!0),a.extend(c,this.options.params)),"function"==typeof this.options.url?this.options.url.call(this.options.scope,c):a.ajax(a.extend({url:this.options.url,data:c,type:"POST"},this.options.ajaxOptions))):void 0},validate:function(a){return void 0===a&&(a=this.value),"function"==typeof this.options.validate?this.options.validate.call(this.options.scope,a):void 0},option:function(a,b){a in this.options&&(this.options[a]=b),"value"===a&&this.setValue(b)},setValue:function(a,b){b?this.value=this.input.str2value(a):this.value=a,this.$form&&this.$form.is(":visible")&&this.input.value2input(this.value)}},a.fn.editableform=function(c){var d=arguments;return this.each(function(){var e=a(this),f=e.data("editableform"),g="object"==typeof c&&c;f||e.data("editableform",f=new b(this,g)),"string"==typeof c&&f[c].apply(f,Array.prototype.slice.call(d,1))})},a.fn.editableform.Constructor=b,a.fn.editableform.defaults={type:"text",url:null,params:null,name:null,pk:null,value:null,defaultValue:null,send:"auto",validate:null,success:null,error:null,ajaxOptions:null,showbuttons:!0,scope:null,savenochange:!1},a.fn.editableform.template='<form class="form-inline editableform"><div class="control-group"><div><div class="editable-input"></div><div class="editable-buttons"></div></div><div class="editable-error-block"></div></div></form>',a.fn.editableform.loading='<div class="editableform-loading"></div>',a.fn.editableform.buttons='<button type="submit" class="editable-submit">ok</button><button type="button" class="editable-cancel">cancel</button>',a.fn.editableform.errorGroupClass=null,a.fn.editableform.errorBlockClass="editable-error",a.fn.editableform.engine="jquery"}(window.jQuery),function(a){"use strict";a.fn.editableutils={inherit:function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a,a.superclass=b.prototype},setCursorPosition:function(a,b){if(a.setSelectionRange)try{a.setSelectionRange(b,b)}catch(c){}else if(a.createTextRange){var d=a.createTextRange();d.collapse(!0),d.moveEnd("character",b),d.moveStart("character",b),d.select()}},tryParseJson:function(a,b){if("string"==typeof a&&a.length&&a.match(/^[\{\[].*[\}\]]$/))if(b)try{a=new Function("return "+a)()}catch(c){}finally{return a}else a=new Function("return "+a)();return a},sliceObj:function(b,c,d){var e,f,g={};if(!a.isArray(c)||!c.length)return g;for(var h=0;h<c.length;h++)e=c[h],b.hasOwnProperty(e)&&(g[e]=b[e]),d!==!0&&(f=e.toLowerCase(),b.hasOwnProperty(f)&&(g[e]=b[f]));return g},getConfigData:function(b){var c={};return a.each(b[0].dataset,function(a,b){("object"!=typeof b||b&&"object"==typeof b&&(b.constructor===Object||b.constructor===Array))&&(c[a]=b)}),c},objectKeys:function(a){if(Object.keys)return Object.keys(a);if(a!==Object(a))throw new TypeError("Object.keys called on a non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c},escape:function(b){return a("<div>").text(b).html()},itemsByValue:function(b,c,d){if(!c||null===b)return[];if("function"!=typeof d){var e=d||"value";d=function(a){return a[e]}}var f=a.isArray(b),g=[],h=this;return a.each(c,function(c,e){if(e.children)g=g.concat(h.itemsByValue(b,e.children,d));else if(f)a.grep(b,function(a){return a==(e&&"object"==typeof e?d(e):e)}).length&&g.push(e);else{var i=e&&"object"==typeof e?d(e):e;b==i&&g.push(e)}}),g},createInput:function(b){var c,d,e,f=b.type;return"date"===f&&("inline"===b.mode?a.fn.editabletypes.datefield?f="datefield":a.fn.editabletypes.dateuifield&&(f="dateuifield"):a.fn.editabletypes.date?f="date":a.fn.editabletypes.dateui&&(f="dateui"),"date"!==f||a.fn.editabletypes.date||(f="combodate")),"datetime"===f&&"inline"===b.mode&&(f="datetimefield"),"wysihtml5"!==f||a.fn.editabletypes[f]||(f="textarea"),"function"==typeof a.fn.editabletypes[f]?(c=a.fn.editabletypes[f],d=this.sliceObj(b,this.objectKeys(c.defaults)),e=new c(d)):(a.error("Unknown type: "+f),!1)},supportsTransitions:function(){var a=document.body||document.documentElement,b=a.style,c="transition",d=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof b[c])return!0;c=c.charAt(0).toUpperCase()+c.substr(1);for(var e=0;e<d.length;e++)if("string"==typeof b[d[e]+c])return!0;return!1}}}(window.jQuery),function(a){"use strict";var b=function(a,b){this.init(a,b)},c=function(a,b){this.init(a,b)};b.prototype={containerName:null,containerDataName:null,innerCss:null,containerClass:"editable-container editable-popup",defaults:{},init:function(c,d){this.$element=a(c),this.options=a.extend({},a.fn.editableContainer.defaults,d),this.splitOptions(),this.formOptions.scope=this.$element[0],this.initContainer(),this.delayedHide=!1,this.$element.on("destroyed",a.proxy(function(){this.destroy()},this)),a(document).data("editable-handlers-attached")||(a(document).on("keyup.editable",function(b){27===b.which&&a(".editable-open").editableContainer("hide","cancel")}),a(document).on("click.editable",function(c){var d,e=a(c.target),f=[".editable-container",".ui-datepicker-header",".datepicker",".modal-backdrop",".bootstrap-wysihtml5-insert-image-modal",".bootstrap-wysihtml5-insert-link-modal"];if(!a(".select2-drop-mask").is(":visible")&&a.contains(document.documentElement,c.target)&&!e.is(document)){for(d=0;d<f.length;d++)if(e.is(f[d])||e.parents(f[d]).length)return;b.prototype.closeOthers(c.target)}}),a(document).data("editable-handlers-attached",!0))},splitOptions:function(){if(this.containerOptions={},this.formOptions={},!a.fn[this.containerName])throw new Error(this.containerName+" not found. Have you included corresponding js file?");for(var b in this.options)b in this.defaults?this.containerOptions[b]=this.options[b]:this.formOptions[b]=this.options[b]},tip:function(){return this.container()?this.container().$tip:null},container:function(){var a;return this.containerDataName&&(a=this.$element.data(this.containerDataName))?a:a=this.$element.data(this.containerName)},call:function(){this.$element[this.containerName].apply(this.$element,arguments)},initContainer:function(){this.call(this.containerOptions)},renderForm:function(){this.$form.editableform(this.formOptions).on({save:a.proxy(this.save,this),nochange:a.proxy(function(){this.hide("nochange")},this),cancel:a.proxy(function(){this.hide("cancel")},this),show:a.proxy(function(){this.delayedHide?(this.hide(this.delayedHide.reason),this.delayedHide=!1):this.setPosition()},this),rendering:a.proxy(this.setPosition,this),resize:a.proxy(this.setPosition,this),rendered:a.proxy(function(){this.$element.triggerHandler("shown",a(this.options.scope).data("editable"))},this)}).editableform("render")},show:function(b){this.$element.addClass("editable-open"),b!==!1&&this.closeOthers(this.$element[0]),this.innerShow(),this.tip().addClass(this.containerClass),this.$form,this.$form=a("<div>"),this.tip().is(this.innerCss)?this.tip().append(this.$form):this.tip().find(this.innerCss).append(this.$form),this.renderForm()},hide:function(a){if(this.tip()&&this.tip().is(":visible")&&this.$element.hasClass("editable-open")){if(this.$form.data("editableform").isSaving)return void(this.delayedHide={reason:a});this.delayedHide=!1,this.$element.removeClass("editable-open"),this.innerHide(),this.$element.triggerHandler("hidden",a||"manual")}},innerShow:function(){},innerHide:function(){},toggle:function(a){this.container()&&this.tip()&&this.tip().is(":visible")?this.hide():this.show(a)},setPosition:function(){},save:function(a,b){this.$element.triggerHandler("save",b),this.hide("save")},option:function(a,b){this.options[a]=b,a in this.containerOptions?(this.containerOptions[a]=b,this.setContainerOption(a,b)):(this.formOptions[a]=b,this.$form&&this.$form.editableform("option",a,b))},setContainerOption:function(a,b){this.call("option",a,b)},destroy:function(){this.hide(),this.innerDestroy(),this.$element.off("destroyed"),this.$element.removeData("editableContainer")},innerDestroy:function(){},closeOthers:function(b){a(".editable-open").each(function(c,d){if(d!==b&&!a(d).find(b).length){var e=a(d),f=e.data("editableContainer");f&&("cancel"===f.options.onblur?e.data("editableContainer").hide("onblur"):"submit"===f.options.onblur&&e.data("editableContainer").tip().find("form").submit())}})},activate:function(){this.tip&&this.tip().is(":visible")&&this.$form&&this.$form.data("editableform").input.activate()}},a.fn.editableContainer=function(d){var e=arguments;return this.each(function(){var f=a(this),g="editableContainer",h=f.data(g),i="object"==typeof d&&d,j="inline"===i.mode?c:b;h||f.data(g,h=new j(this,i)),"string"==typeof d&&h[d].apply(h,Array.prototype.slice.call(e,1))})},a.fn.editableContainer.Popup=b,a.fn.editableContainer.Inline=c,a.fn.editableContainer.defaults={value:null,placement:"top",autohide:!0,onblur:"cancel",anim:!1,mode:"popup"},jQuery.event.special.destroyed={remove:function(a){a.handler&&a.handler()}}}(window.jQuery),function(a){"use strict";a.extend(a.fn.editableContainer.Inline.prototype,a.fn.editableContainer.Popup.prototype,{containerName:"editableform",innerCss:".editable-inline",containerClass:"editable-container editable-inline",initContainer:function(){this.$tip=a("<span></span>"),this.options.anim||(this.options.anim=0)},splitOptions:function(){this.containerOptions={},this.formOptions=this.options},tip:function(){return this.$tip},innerShow:function(){this.$element.hide(),this.tip().insertAfter(this.$element).show()},innerHide:function(){this.$tip.hide(this.options.anim,a.proxy(function(){this.$element.show(),this.innerDestroy()},this))},innerDestroy:function(){this.tip()&&this.tip().empty().remove()}})}(window.jQuery),function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.editable.defaults,c,a.fn.editableutils.getConfigData(this.$element)),this.options.selector?this.initLive():this.init(),this.options.highlight&&!a.fn.editableutils.supportsTransitions()&&(this.options.highlight=!1)};b.prototype={constructor:b,init:function(){var b,c=!1;if(this.options.name=this.options.name||this.$element.attr("id"),this.options.scope=this.$element[0],this.input=a.fn.editableutils.createInput(this.options),this.input){switch(void 0===this.options.value||null===this.options.value?(this.value=this.input.html2value(a.trim(this.$element.html())),c=!0):(this.options.value=a.fn.editableutils.tryParseJson(this.options.value,!0),"string"==typeof this.options.value?this.value=this.input.str2value(this.options.value):this.value=this.options.value),this.$element.addClass("editable"),"textarea"===this.input.type&&this.$element.addClass("editable-pre-wrapped"),"manual"!==this.options.toggle?(this.$element.addClass("editable-click"),this.$element.on(this.options.toggle+".editable",a.proxy(function(a){if(this.options.disabled||a.preventDefault(),"mouseenter"===this.options.toggle)this.show();else{var b="click"!==this.options.toggle;this.toggle(b)}},this))):this.$element.attr("tabindex",-1),"function"==typeof this.options.display&&(this.options.autotext="always"),this.options.autotext){case"always":b=!0;break;case"auto":b=!a.trim(this.$element.text()).length&&null!==this.value&&void 0!==this.value&&!c;break;default:b=!1}a.when(b?this.render():!0).then(a.proxy(function(){this.options.disabled?this.disable():this.enable(),this.$element.triggerHandler("init",this)},this))}},initLive:function(){var b=this.options.selector;this.options.selector=!1,this.options.autotext="never",this.$element.on(this.options.toggle+".editable",b,a.proxy(function(c){var d=a(c.target).closest(b);d.data("editable")||(d.hasClass(this.options.emptyclass)&&d.empty(),d.editable(this.options).trigger(c))},this))},render:function(a){return this.options.display!==!1?this.input.value2htmlFinal?this.input.value2html(this.value,this.$element[0],this.options.display,a):"function"==typeof this.options.display?this.options.display.call(this.$element[0],this.value,a):this.input.value2html(this.value,this.$element[0]):void 0},enable:function(){this.options.disabled=!1,this.$element.removeClass("editable-disabled"),this.handleEmpty(this.isEmpty),"manual"!==this.options.toggle&&"-1"===this.$element.attr("tabindex")&&this.$element.removeAttr("tabindex")},disable:function(){this.options.disabled=!0,this.hide(),this.$element.addClass("editable-disabled"),this.handleEmpty(this.isEmpty),this.$element.attr("tabindex",-1)},toggleDisabled:function(){this.options.disabled?this.enable():this.disable()},option:function(b,c){return b&&"object"==typeof b?void a.each(b,a.proxy(function(b,c){this.option(a.trim(b),c)},this)):(this.options[b]=c,"disabled"===b?c?this.disable():this.enable():("value"===b&&this.setValue(c),this.container&&this.container.option(b,c),void(this.input.option&&this.input.option(b,c))))},handleEmpty:function(b){this.options.display!==!1&&(void 0!==b?this.isEmpty=b:"function"==typeof this.input.isEmpty?this.isEmpty=this.input.isEmpty(this.$element):this.isEmpty=""===a.trim(this.$element.html()),this.options.disabled?this.isEmpty&&(this.$element.empty(),this.options.emptyclass&&this.$element.removeClass(this.options.emptyclass)):this.isEmpty?(this.$element.html(this.options.emptytext),this.options.emptyclass&&this.$element.addClass(this.options.emptyclass)):this.options.emptyclass&&this.$element.removeClass(this.options.emptyclass))},show:function(b){if(!this.options.disabled){if(this.container){if(this.container.tip().is(":visible"))return}else{var c=a.extend({},this.options,{value:this.value,input:this.input});this.$element.editableContainer(c),this.$element.on("save.internal",a.proxy(this.save,this)),this.container=this.$element.data("editableContainer")}this.container.show(b)}},hide:function(){this.container&&this.container.hide()},toggle:function(a){this.container&&this.container.tip().is(":visible")?this.hide():this.show(a)},save:function(a,b){if(this.options.unsavedclass){var c=!1;c=c||"function"==typeof this.options.url,c=c||this.options.display===!1,c=c||void 0!==b.response,c=c||this.options.savenochange&&this.input.value2str(this.value)!==this.input.value2str(b.newValue),c?this.$element.removeClass(this.options.unsavedclass):this.$element.addClass(this.options.unsavedclass)}if(this.options.highlight){var d=this.$element,e=d.css("background-color");d.css("background-color",this.options.highlight),setTimeout(function(){"transparent"===e&&(e=""),d.css("background-color",e),d.addClass("editable-bg-transition"),setTimeout(function(){d.removeClass("editable-bg-transition")},1700)},10)}this.setValue(b.newValue,!1,b.response)},validate:function(){return"function"==typeof this.options.validate?this.options.validate.call(this,this.value):void 0},setValue:function(b,c,d){c?this.value=this.input.str2value(b):this.value=b,this.container&&this.container.option("value",this.value),a.when(this.render(d)).then(a.proxy(function(){this.handleEmpty()},this))},activate:function(){this.container&&this.container.activate()},destroy:function(){this.disable(),this.container&&this.container.destroy(),this.input.destroy(),"manual"!==this.options.toggle&&(this.$element.removeClass("editable-click"),this.$element.off(this.options.toggle+".editable")),this.$element.off("save.internal"),this.$element.removeClass("editable editable-open editable-disabled"),this.$element.removeData("editable")}},a.fn.editable=function(c){var d={},e=arguments,f="editable";switch(c){case"validate":return this.each(function(){var b,c=a(this),e=c.data(f);e&&(b=e.validate())&&(d[e.options.name]=b)}),d;case"getValue":return 2===arguments.length&&arguments[1]===!0?d=this.eq(0).data(f).value:this.each(function(){var b=a(this),c=b.data(f);c&&void 0!==c.value&&null!==c.value&&(d[c.options.name]=c.input.value2submit(c.value))}),d;case"submit":var g=arguments[1]||{},h=this,i=this.editable("validate");if(a.isEmptyObject(i)){var j={};if(1===h.length){var k=h.data("editable"),l={name:k.options.name||"",value:k.input.value2submit(k.value),pk:"function"==typeof k.options.pk?k.options.pk.call(k.options.scope):k.options.pk};"function"==typeof k.options.params?l=k.options.params.call(k.options.scope,l):(k.options.params=a.fn.editableutils.tryParseJson(k.options.params,!0),a.extend(l,k.options.params)),j={url:k.options.url,data:l,type:"POST"},g.success=g.success||k.options.success,g.error=g.error||k.options.error}else{var m=this.editable("getValue");j={url:g.url,data:m,type:"POST"}}j.success="function"==typeof g.success?function(a){g.success.call(h,a,g)}:a.noop,j.error="function"==typeof g.error?function(){g.error.apply(h,arguments)}:a.noop,g.ajaxOptions&&a.extend(j,g.ajaxOptions),g.data&&a.extend(j.data,g.data),a.ajax(j)}else"function"==typeof g.error&&g.error.call(h,i);return this}return this.each(function(){var d=a(this),g=d.data(f),h="object"==typeof c&&c;return h&&h.selector?void(g=new b(this,h)):(g||d.data(f,g=new b(this,h)),void("string"==typeof c&&g[c].apply(g,Array.prototype.slice.call(e,1))))})},a.fn.editable.defaults={type:"text",disabled:!1,toggle:"click",emptytext:"Empty",autotext:"auto",value:null,display:null,emptyclass:"editable-empty",unsavedclass:"editable-unsaved",selector:null,highlight:"#FFFF80"}}(window.jQuery),function(a){"use strict";a.fn.editabletypes={};var b=function(){};b.prototype={init:function(b,c,d){this.type=b,this.options=a.extend({},d,c)},prerender:function(){this.$tpl=a(this.options.tpl),this.$input=this.$tpl,this.$clear=null,this.error=null},render:function(){},value2html:function(b,c){a(c)[this.options.escape?"text":"html"](a.trim(b))},html2value:function(b){return a("<div>").html(b).text()},value2str:function(a){return String(a)},str2value:function(a){return a},value2submit:function(a){return a},value2input:function(a){this.$input.val(a)},input2value:function(){return this.$input.val()},activate:function(){this.$input.is(":visible")&&this.$input.focus()},clear:function(){this.$input.val(null)},escape:function(b){return a("<div>").text(b).html()},autosubmit:function(){},destroy:function(){},setClass:function(){this.options.inputclass&&this.$input.addClass(this.options.inputclass)},setAttr:function(a){void 0!==this.options[a]&&null!==this.options[a]&&this.$input.attr(a,this.options[a])},option:function(a,b){this.options[a]=b}},b.defaults={tpl:"",inputclass:null,escape:!0,scope:null,showbuttons:!0},a.extend(a.fn.editabletypes,{abstractinput:b})}(window.jQuery),function(a){"use strict";var b=function(a){};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){var b=a.Deferred();return this.error=null,this.onSourceReady(function(){this.renderList(),b.resolve()},function(){this.error=this.options.sourceError,b.resolve()}),b.promise()},html2value:function(a){return null},value2html:function(b,c,d,e){var f=a.Deferred(),g=function(){"function"==typeof d?d.call(c,b,this.sourceData,e):this.value2htmlFinal(b,c),f.resolve()};return null===b?g.call(this):this.onSourceReady(g,function(){f.resolve()}),f.promise()},onSourceReady:function(b,c){var d;if(a.isFunction(this.options.source)?(d=this.options.source.call(this.options.scope),this.sourceData=null):d=this.options.source,this.options.sourceCache&&a.isArray(this.sourceData))return void b.call(this);try{d=a.fn.editableutils.tryParseJson(d,!1)}catch(e){return void c.call(this)}if("string"==typeof d){if(this.options.sourceCache){var f,g=d;if(a(document).data(g)||a(document).data(g,{}),f=a(document).data(g),f.loading===!1&&f.sourceData)return this.sourceData=f.sourceData,this.doPrepend(),void b.call(this);if(f.loading===!0)return f.callbacks.push(a.proxy(function(){this.sourceData=f.sourceData,this.doPrepend(),b.call(this)},this)),void f.err_callbacks.push(a.proxy(c,this));f.loading=!0,f.callbacks=[],f.err_callbacks=[]}var h=a.extend({url:d,type:"get",cache:!1,dataType:"json",success:a.proxy(function(d){f&&(f.loading=!1),this.sourceData=this.makeArray(d),a.isArray(this.sourceData)?(f&&(f.sourceData=this.sourceData,a.each(f.callbacks,function(){this.call()})),this.doPrepend(),b.call(this)):(c.call(this),f&&a.each(f.err_callbacks,function(){this.call()}))},this),error:a.proxy(function(){c.call(this),f&&(f.loading=!1,a.each(f.err_callbacks,function(){this.call()}))},this)},this.options.sourceOptions);a.ajax(h)}else this.sourceData=this.makeArray(d),a.isArray(this.sourceData)?(this.doPrepend(),b.call(this)):c.call(this)},doPrepend:function(){null!==this.options.prepend&&void 0!==this.options.prepend&&(a.isArray(this.prependData)||(a.isFunction(this.options.prepend)&&(this.options.prepend=this.options.prepend.call(this.options.scope)),this.options.prepend=a.fn.editableutils.tryParseJson(this.options.prepend,!0),"string"==typeof this.options.prepend&&(this.options.prepend={"":this.options.prepend}),this.prependData=this.makeArray(this.options.prepend)),a.isArray(this.prependData)&&a.isArray(this.sourceData)&&(this.sourceData=this.prependData.concat(this.sourceData)))},renderList:function(){},value2htmlFinal:function(a,b){},makeArray:function(b){var c,d,e,f,g=[];if(!b||"string"==typeof b)return null;if(a.isArray(b)){f=function(a,b){return d={value:a,text:b},c++>=2?!1:void 0};for(var h=0;h<b.length;h++)e=b[h],"object"==typeof e?(c=0,a.each(e,f),1===c?g.push(d):c>1&&(e.children&&(e.children=this.makeArray(e.children)),g.push(e))):g.push({value:e,text:e})}else a.each(b,function(a,b){g.push({value:a,text:b})});return g},option:function(a,b){this.options[a]=b,"source"===a&&(this.sourceData=null),"prepend"===a&&(this.prependData=null)}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{source:null,prepend:!1,sourceError:"Error when loading list",sourceCache:!0,sourceOptions:null}),a.fn.editabletypes.list=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("text",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.renderClear(),this.setClass(),this.setAttr("placeholder")},activate:function(){this.$input.is(":visible")&&(this.$input.focus(),this.$input.is("input,textarea")&&!this.$input.is('[type="checkbox"],[type="range"]')&&a.fn.editableutils.setCursorPosition(this.$input.get(0),this.$input.val().length),this.toggleClear&&this.toggleClear())},renderClear:function(){this.options.clear&&(this.$clear=a('<span class="editable-clear-x"></span>'),this.$input.after(this.$clear).css("padding-right",24).keyup(a.proxy(function(b){if(!~a.inArray(b.keyCode,[40,38,9,13,27])){clearTimeout(this.t);var c=this;this.t=setTimeout(function(){c.toggleClear(b)},100)}},this)).parent().css("position","relative"),this.$clear.click(a.proxy(this.clear,this)))},postrender:function(){},toggleClear:function(a){if(this.$clear){var b=this.$input.val().length,c=this.$clear.is(":visible");b&&!c&&this.$clear.show(),!b&&c&&this.$clear.hide()}},clear:function(){this.$clear.hide(),this.$input.val("").focus()}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="text">',placeholder:null,clear:!0}),a.fn.editabletypes.text=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("textarea",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.setClass(),this.setAttr("placeholder"),this.setAttr("rows"),this.$input.keydown(function(b){b.ctrlKey&&13===b.which&&a(this).closest("form").submit()})},activate:function(){a.fn.editabletypes.text.prototype.activate.call(this)}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:"<textarea></textarea>",inputclass:"input-large",placeholder:null,rows:7}),a.fn.editabletypes.textarea=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("select",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.list),a.extend(b.prototype,{renderList:function(){this.$input.empty();var b=this.options.escape,c=function(d,e){var f;if(a.isArray(e))for(var g=0;g<e.length;g++)if(f={},e[g].children)f.label=e[g].text,d.append(c(a("<optgroup>",f),e[g].children));else{f.value=e[g].value,e[g].disabled&&(f.disabled=!0);var h=a("<option>",f);h[b?"text":"html"](e[g].text),d.append(h)}return d};c(this.$input,this.sourceData),this.setClass(),this.$input.on("keydown.editable",function(b){13===b.which&&a(this).closest("form").submit()})},value2htmlFinal:function(b,c){var d="",e=a.fn.editableutils.itemsByValue(b,this.sourceData);e.length&&(d=e[0].text),a.fn.editabletypes.abstractinput.prototype.value2html.call(this,d,c)},autosubmit:function(){this.$input.off("keydown.editable").on("change.editable",function(){a(this).closest("form").submit()})}}),b.defaults=a.extend({},a.fn.editabletypes.list.defaults,{tpl:"<select></select>"}),a.fn.editabletypes.select=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("checklist",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.list),a.extend(b.prototype,{renderList:function(){var b;if(this.$tpl.empty(),a.isArray(this.sourceData)){for(var c=0;c<this.sourceData.length;c++){b=a("<label>").append(a("<input>",{type:"checkbox",value:this.sourceData[c].value}));var d=a("<span>");d[this.options.escape?"text":"html"](" "+this.sourceData[c].text),b.append(d),a("<div>").append(b).appendTo(this.$tpl)}this.$input=this.$tpl.find('input[type="checkbox"]'),this.setClass()}},value2str:function(b){return a.isArray(b)?b.sort().join(a.trim(this.options.separator)):""},str2value:function(b){var c,d=null;return"string"==typeof b&&b.length?(c=new RegExp("\\s*"+a.trim(this.options.separator)+"\\s*"),d=b.split(c)):d=a.isArray(b)?b:[b],d},value2input:function(b){this.$input.prop("checked",!1),a.isArray(b)&&b.length&&this.$input.each(function(c,d){var e=a(d);a.each(b,function(a,b){e.val()==b&&e.prop("checked",!0)})})},input2value:function(){var b=[];return this.$input.filter(":checked").each(function(c,d){b.push(a(d).val())}),b},value2htmlFinal:function(b,c){var d=[],e=a.fn.editableutils.itemsByValue(b,this.sourceData),f=this.options.escape;e.length?(a.each(e,function(b,c){var e=f?a.fn.editableutils.escape(c.text):c.text;d.push(e)}),a(c).html(d.join("<br>"))):a(c).empty()},activate:function(){this.$input.first().focus()},autosubmit:function(){this.$input.on("keydown",function(b){13===b.which&&a(this).closest("form").submit()})}}),b.defaults=a.extend({},a.fn.editabletypes.list.defaults,{tpl:'<div class="editable-checklist"></div>',inputclass:null,separator:","}),a.fn.editabletypes.checklist=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("password",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),a.extend(b.prototype,{value2html:function(b,c){b?a(c).text("[hidden]"):a(c).empty()},html2value:function(a){return null}}),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="password">'}),a.fn.editabletypes.password=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("email",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="email">'}),a.fn.editabletypes.email=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("url",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="url">'}),a.fn.editabletypes.url=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("tel",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="tel">'}),a.fn.editabletypes.tel=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("number",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),a.extend(b.prototype,{render:function(){b.superclass.render.call(this),
|
6
|
-
this.setAttr("min"),this.setAttr("max"),this.setAttr("step")},postrender:function(){this.$clear&&this.$clear.css({right:24})}}),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="number">',inputclass:"input-mini",min:null,max:null,step:null}),a.fn.editabletypes.number=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("range",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.number),a.extend(b.prototype,{render:function(){this.$input=this.$tpl.filter("input"),this.setClass(),this.setAttr("min"),this.setAttr("max"),this.setAttr("step"),this.$input.on("input",function(){a(this).siblings("output").text(a(this).val())})},activate:function(){this.$input.focus()}}),b.defaults=a.extend({},a.fn.editabletypes.number.defaults,{tpl:'<input type="range"><output style="width: 30px; display: inline-block"></output>',inputclass:"input-medium"}),a.fn.editabletypes.range=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("time",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.setClass()}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="time">'}),a.fn.editabletypes.time=b}(window.jQuery),function(a){"use strict";var b=function(c){if(this.init("select2",c,b.defaults),c.select2=c.select2||{},this.sourceData=null,c.placeholder&&(c.select2.placeholder=c.placeholder),!c.select2.tags&&c.source){var d=c.source;a.isFunction(c.source)&&(d=c.source.call(c.scope)),"string"==typeof d?(c.select2.ajax=c.select2.ajax||{},c.select2.ajax.data||(c.select2.ajax.data=function(a){return{query:a}}),c.select2.ajax.results||(c.select2.ajax.results=function(a){return{results:a}}),c.select2.ajax.url=d):(this.sourceData=this.convertSource(d),c.select2.data=this.sourceData)}if(this.options.select2=a.extend({},b.defaults.select2,c.select2),this.isMultiple=this.options.select2.tags||this.options.select2.multiple,this.isRemote="ajax"in this.options.select2,this.idFunc=this.options.select2.id,"function"!=typeof this.idFunc){var e=this.idFunc||"id";this.idFunc=function(a){return a[e]}}this.formatSelection=this.options.select2.formatSelection,"function"!=typeof this.formatSelection&&(this.formatSelection=function(a){return a.text})};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.setClass(),this.isRemote&&this.$input.on("select2-loaded",a.proxy(function(a){this.sourceData=a.items.results},this)),this.isMultiple&&this.$input.on("change",function(){a(this).closest("form").parent().triggerHandler("resize")})},value2html:function(c,d){var e,f="",g=this;this.options.select2.tags?e=c:this.sourceData&&(e=a.fn.editableutils.itemsByValue(c,this.sourceData,this.idFunc)),a.isArray(e)?(f=[],a.each(e,function(a,b){f.push(b&&"object"==typeof b?g.formatSelection(b):b)})):e&&(f=g.formatSelection(e)),f=a.isArray(f)?f.join(this.options.viewseparator):f,b.superclass.value2html.call(this,f,d)},html2value:function(a){return this.options.select2.tags?this.str2value(a,this.options.viewseparator):null},value2input:function(b){if(a.isArray(b)&&(b=b.join(this.getSeparator())),this.$input.data("select2")?this.$input.val(b).trigger("change",!0):(this.$input.val(b),this.$input.select2(this.options.select2)),this.isRemote&&!this.isMultiple&&!this.options.select2.initSelection){var c=this.options.select2.id,d=this.options.select2.formatSelection;if(!c&&!d){var e=a(this.options.scope);if(!e.data("editable").isEmpty){var f={id:b,text:e.text()};this.$input.select2("data",f)}}}},input2value:function(){return this.$input.select2("val")},str2value:function(b,c){if("string"!=typeof b||!this.isMultiple)return b;c=c||this.getSeparator();var d,e,f;if(null===b||b.length<1)return null;for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(d[e]);return d},autosubmit:function(){this.$input.on("change",function(b,c){c||a(this).closest("form").submit()})},getSeparator:function(){return this.options.select2.separator||a.fn.select2.defaults.separator},convertSource:function(b){if(a.isArray(b)&&b.length&&void 0!==b[0].value)for(var c=0;c<b.length;c++)void 0!==b[c].value&&(b[c].id=b[c].value,delete b[c].value);return b},activate:function(){this.$input.select2("open")},destroy:function(){this.$input&&this.$input.data("select2")&&this.$input.select2("destroy")}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="hidden">',select2:null,placeholder:null,source:null,viewseparator:", "}),a.fn.editabletypes.select2=b}(window.jQuery),function(a){var b=function(b,c){return this.$element=a(b),this.$element.is("input")?(this.options=a.extend({},a.fn.combodate.defaults,c,this.$element.data()),void this.init()):void a.error("Combodate should be applied to INPUT element")};b.prototype={constructor:b,init:function(){this.map={day:["D","date"],month:["M","month"],year:["Y","year"],hour:["[Hh]","hours"],minute:["m","minutes"],second:["s","seconds"],ampm:["[Aa]",""]},this.$widget=a('<span class="combodate"></span>').html(this.getTemplate()),this.initCombos(),this.datetime=null,this.$widget.on("change","select",a.proxy(function(b){this.$element.val(this.getValue()).change(),this.options.smartDays&&(a(b.target).is(".month")||a(b.target).is(".year"))&&this.fillCombo("day")},this)),this.$widget.find("select").css("width","auto"),this.$element.hide().after(this.$widget),this.setValue(this.$element.val()||this.options.value)},getTemplate:function(){var b=this.options.template,c=this.$element.prop("disabled"),d=this.options.customClass;return a.each(this.map,function(a,c){c=c[0];var d=new RegExp(c+"+"),e=c.length>1?c.substring(1,2):c;b=b.replace(d,"{"+e+"}")}),b=b.replace(/ /g," "),a.each(this.map,function(a,e){e=e[0];var f=e.length>1?e.substring(1,2):e;b=b.replace("{"+f+"}",'<select class="'+a+" "+d+'"'+(c?' disabled="disabled"':"")+"></select>")}),b},initCombos:function(){for(var a in this.map){var b=this.$widget.find("."+a);this["$"+a]=b.length?b:null,this.fillCombo(a)}},fillCombo:function(a){var b=this["$"+a];if(b){var c="fill"+a.charAt(0).toUpperCase()+a.slice(1),d=this[c](),e=b.val();b.empty();for(var f=0;f<d.length;f++)b.append('<option value="'+d[f][0]+'">'+d[f][1]+"</option>");b.val(e)}},fillCommon:function(a){var b,c=[];if("name"===this.options.firstItem){b=moment.localeData?moment.localeData()._relativeTime:moment.relativeTime||moment.langData()._relativeTime;var d="function"==typeof b[a]?b[a](1,!0,a,!1):b[a];d=d.split(" ").reverse()[0],c.push(["",d])}else"empty"===this.options.firstItem&&c.push(["",""]);return c},fillDay:function(){var a,b,c=this.fillCommon("d"),d=-1!==this.options.template.indexOf("DD"),e=31;if(this.options.smartDays&&this.$month&&this.$year){var f=parseInt(this.$month.val(),10),g=parseInt(this.$year.val(),10);isNaN(f)||isNaN(g)||(e=moment([g,f]).daysInMonth())}for(b=1;e>=b;b++)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillMonth:function(){var a,b,c=this.fillCommon("M"),d=-1!==this.options.template.indexOf("MMMMMM"),e=-1!==this.options.template.indexOf("MMMMM"),f=-1!==this.options.template.indexOf("MMMM"),g=-1!==this.options.template.indexOf("MMM"),h=-1!==this.options.template.indexOf("MM");for(b=0;11>=b;b++)a=d?moment().date(1).month(b).format("MM - MMMM"):e?moment().date(1).month(b).format("MM - MMM"):f?moment().date(1).month(b).format("MMMM"):g?moment().date(1).month(b).format("MMM"):h?this.leadZero(b+1):b+1,c.push([b,a]);return c},fillYear:function(){var a,b,c=[],d=-1!==this.options.template.indexOf("YYYY");for(b=this.options.maxYear;b>=this.options.minYear;b--)a=d?b:(b+"").substring(2),c[this.options.yearDescending?"push":"unshift"]([b,a]);return c=this.fillCommon("y").concat(c)},fillHour:function(){var a,b,c=this.fillCommon("h"),d=-1!==this.options.template.indexOf("h"),e=(-1!==this.options.template.indexOf("H"),-1!==this.options.template.toLowerCase().indexOf("hh")),f=d?1:0,g=d?12:23;for(b=f;g>=b;b++)a=e?this.leadZero(b):b,c.push([b,a]);return c},fillMinute:function(){var a,b,c=this.fillCommon("m"),d=-1!==this.options.template.indexOf("mm");for(b=0;59>=b;b+=this.options.minuteStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillSecond:function(){var a,b,c=this.fillCommon("s"),d=-1!==this.options.template.indexOf("ss");for(b=0;59>=b;b+=this.options.secondStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillAmpm:function(){var a=-1!==this.options.template.indexOf("a"),b=(-1!==this.options.template.indexOf("A"),[["am",a?"am":"AM"],["pm",a?"pm":"PM"]]);return b},getValue:function(b){var c,d={},e=this,f=!1;return a.each(this.map,function(a,b){if("ampm"!==a){if(e["$"+a])d[a]=parseInt(e["$"+a].val(),10);else{var c;c=e.datetime?e.datetime[b[1]]():"day"===a?1:0,d[a]=c}return isNaN(d[a])?(f=!0,!1):void 0}}),f?"":(this.$ampm&&(12===d.hour?d.hour="am"===this.$ampm.val()?0:12:d.hour="am"===this.$ampm.val()?d.hour:d.hour+12),c=moment([d.year,d.month,d.day,d.hour,d.minute,d.second]),this.highlight(c),b=void 0===b?this.options.format:b,null===b?c.isValid()?c:null:c.isValid()?c.format(b):"")},setValue:function(b){function c(b,c){var d={};return b.children("option").each(function(b,e){var f,g=a(e).attr("value");""!==g&&(f=Math.abs(g-c),("undefined"==typeof d.distance||f<d.distance)&&(d={value:g,distance:f}))}),d.value}if(b){var d="string"==typeof b?moment(b,this.options.format,!0):moment(b),e=this,f={};d.isValid()?(a.each(this.map,function(a,b){"ampm"!==a&&(f[a]=d[b[1]]())}),this.$ampm&&(f.hour>=12?(f.ampm="pm",f.hour>12&&(f.hour-=12)):(f.ampm="am",0===f.hour&&(f.hour=12))),a.each(f,function(a,b){e["$"+a]&&("minute"===a&&e.options.minuteStep>1&&e.options.roundTime&&(b=c(e["$"+a],b)),"second"===a&&e.options.secondStep>1&&e.options.roundTime&&(b=c(e["$"+a],b)),e["$"+a].val(b))}),this.options.smartDays&&this.fillCombo("day"),this.$element.val(d.format(this.options.format)).change(),this.datetime=d):this.datetime=null}},highlight:function(a){a.isValid()?this.options.errorClass?this.$widget.removeClass(this.options.errorClass):this.$widget.find("select").css("border-color",this.borderColor):this.options.errorClass?this.$widget.addClass(this.options.errorClass):(this.borderColor||(this.borderColor=this.$widget.find("select").css("border-color")),this.$widget.find("select").css("border-color","red"))},leadZero:function(a){return 9>=a?"0"+a:a},destroy:function(){this.$widget.remove(),this.$element.removeData("combodate").show()}},a.fn.combodate=function(c){var d,e=Array.apply(null,arguments);return e.shift(),"getValue"===c&&this.length&&(d=this.eq(0).data("combodate"))?d.getValue.apply(d,e):this.each(function(){var d=a(this),f=d.data("combodate"),g="object"==typeof c&&c;f||d.data("combodate",f=new b(this,g)),"string"==typeof c&&"function"==typeof f[c]&&f[c].apply(f,e)})},a.fn.combodate.defaults={format:"DD-MM-YYYY HH:mm",template:"D / MMM / YYYY H : mm",value:null,minYear:1970,maxYear:(new Date).getFullYear(),yearDescending:!0,minuteStep:5,secondStep:1,firstItem:"empty",errorClass:null,customClass:"",roundTime:!0,smartDays:!1}}(window.jQuery),function(a){"use strict";var b=function(c){this.init("combodate",c,b.defaults),this.options.viewformat||(this.options.viewformat=this.options.format),c.combodate=a.fn.editableutils.tryParseJson(c.combodate,!0),this.options.combodate=a.extend({},b.defaults.combodate,c.combodate,{format:this.options.format,template:this.options.template})};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.$input.combodate(this.options.combodate),"bs3"===a.fn.editableform.engine&&this.$input.siblings().find("select").addClass("form-control"),this.options.inputclass&&this.$input.siblings().find("select").addClass(this.options.inputclass)},value2html:function(a,c){var d=a?a.format(this.options.viewformat):"";b.superclass.value2html.call(this,d,c)},html2value:function(a){return a?moment(a,this.options.viewformat):null},value2str:function(a){return a?a.format(this.options.format):""},str2value:function(a){return a?moment(a,this.options.format):null},value2submit:function(a){return this.value2str(a)},value2input:function(a){this.$input.combodate("setValue",a)},input2value:function(){return this.$input.combodate("getValue",null)},activate:function(){this.$input.siblings(".combodate").find("select").eq(0).focus()},autosubmit:function(){}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="text">',inputclass:null,format:"YYYY-MM-DD",viewformat:null,template:"D / MMM / YYYY",combodate:null}),a.fn.editabletypes.combodate=b}(window.jQuery),function(a){"use strict";var b=a.fn.editableform.Constructor.prototype.initInput;a.extend(a.fn.editableform.Constructor.prototype,{initTemplate:function(){this.$form=a(a.fn.editableform.template),this.$form.find(".control-group").addClass("form-group"),this.$form.find(".editable-error-block").addClass("help-block")},initInput:function(){b.apply(this);var c=null===this.input.options.inputclass||this.input.options.inputclass===!1,d="form-control-sm",e="text,select,textarea,password,email,url,tel,number,range,time,typeaheadjs".split(",");~a.inArray(this.input.type,e)&&(this.input.$input.addClass("form-control"),c&&(this.input.options.inputclass=d,this.input.$input.addClass(d)));for(var f=this.$form.find(".editable-buttons"),g=c?[d]:this.input.options.inputclass.split(" "),h=0;h<g.length;h++)"input-lg"===g[h].toLowerCase()&&f.find("button").removeClass("btn-sm").addClass("btn-lg")}}),a.fn.editableform.buttons='<button type="submit" class="btn btn-primary btn-sm editable-submit"><i class="fa fa-check" aria-hidden="true"></i></button><button type="button" class="btn btn-default btn-sm editable-cancel"><i class="fa fa-times" aria-hidden="true"></i></button>',a.fn.editableform.errorGroupClass="has-error",a.fn.editableform.errorBlockClass=null,a.fn.editableform.engine="bs4"}(window.jQuery),function(a){"use strict";a.extend(a.fn.editableContainer.Popup.prototype,{containerName:"popover",containerDataName:"bs.popover",innerCss:".popover-body",defaults:a.fn.popover.Constructor.DEFAULTS,initContainer:function(){a.extend(this.containerOptions,{trigger:"manual",selector:!1,content:" ",template:this.defaults.template});var b;this.$element.data("template")&&(b=this.$element.data("template"),this.$element.removeData("template")),this.call(this.containerOptions),b&&this.$element.data("template",b)},innerShow:function(){this.call("show")},innerHide:function(){this.call("hide")},innerDestroy:function(){this.call("dispose")},setContainerOption:function(a,b){this.container().options[a]=b},setPosition:function(){(function(){}).call(this.container())},tip:function(){return this.container()?a(this.container().tip):null}})}(window.jQuery),function(a){function b(){return new Date(Date.UTC.apply(Date,arguments))}function c(b,c){var d,e=a(b).data(),f={},g=new RegExp("^"+c.toLowerCase()+"([A-Z])"),c=new RegExp("^"+c.toLowerCase());for(var h in e)c.test(h)&&(d=h.replace(g,function(a,b){return b.toLowerCase()}),f[d]=e[h]);return f}function d(b){var c={};if(k[b]||(b=b.split("-")[0],k[b])){var d=k[b];return a.each(j,function(a,b){b in d&&(c[b]=d[b])}),c}}var e=function(b,c){this._process_options(c),this.element=a(b),this.isInline=!1,this.isInput=this.element.is("input"),this.component=this.element.is(".date")?this.element.find(".add-on, .btn"):!1,this.hasInput=this.component&&this.element.find("input").length,this.component&&0===this.component.length&&(this.component=!1),this.picker=a(l.template),this._buildEvents(),this._attachEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&(this.picker.addClass("datepicker-rtl"),this.picker.find(".prev i, .next i").toggleClass("icon-arrow-left icon-arrow-right")),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("tfoot th.today").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this.o.startDate),this.setEndDate(this.o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};e.prototype={constructor:e,_process_options:function(b){this._o=a.extend({},this._o,b);var c=this.o=a.extend({},this._o),d=c.language;switch(k[d]||(d=d.split("-")[0],k[d]||(d=i.language)),c.language=d,c.startView){case 2:case"decade":c.startView=2;break;case 1:case"year":c.startView=1;break;default:c.startView=0}switch(c.minViewMode){case 1:case"months":c.minViewMode=1;break;case 2:case"years":c.minViewMode=2;break;default:c.minViewMode=0}c.startView=Math.max(c.startView,c.minViewMode),c.weekStart%=7,c.weekEnd=(c.weekStart+6)%7;var e=l.parseFormat(c.format);c.startDate!==-(1/0)&&(c.startDate=l.parseDate(c.startDate,e,c.language)),c.endDate!==1/0&&(c.endDate=l.parseDate(c.endDate,e,c.language)),c.daysOfWeekDisabled=c.daysOfWeekDisabled||[],a.isArray(c.daysOfWeekDisabled)||(c.daysOfWeekDisabled=c.daysOfWeekDisabled.split(/[,\s]*/)),c.daysOfWeekDisabled=a.map(c.daysOfWeekDisabled,function(a){return parseInt(a,10)})},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var b,c,d=0;d<a.length;d++)b=a[d][0],c=a[d][1],b.on(c)},_unapplyEvents:function(a){for(var b,c,d=0;d<a.length;d++)b=a[d][0],c=a[d][1],b.off(c)},_buildEvents:function(){this.isInput?this._events=[[this.element,{focus:a.proxy(this.show,this),keyup:a.proxy(this.update,this),keydown:a.proxy(this.keydown,this)}]]:this.component&&this.hasInput?this._events=[[this.element.find("input"),{focus:a.proxy(this.show,this),keyup:a.proxy(this.update,this),keydown:a.proxy(this.keydown,this)}],[this.component,{click:a.proxy(this.show,this)}]]:this.element.is("div")?this.isInline=!0:this._events=[[this.element,{click:a.proxy(this.show,this)}]],this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{mousedown:a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).size()||this.picker.is(a.target)||this.picker.find(a.target).size()||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.date,e=new Date(d.getTime()+6e4*d.getTimezoneOffset());this.element.trigger({type:b,date:e,format:a.proxy(function(a){var b=a||this.o.format;return l.formatDate(d,b,this.o.language)},this)})},show:function(a){this.isInline||this.picker.appendTo("body"),this.picker.show(),this.height=this.component?this.component.outerHeight():this.element.outerHeight(),this.place(),this._attachSecondaryEvents(),a&&a.preventDefault(),this._trigger("show")},hide:function(a){this.isInline||this.picker.is(":visible")&&(this.picker.hide().detach(),this._detachSecondaryEvents(),this.viewMode=this.o.startView,this.showMode(),this.o.forceParse&&(this.isInput&&this.element.val()||this.hasInput&&this.element.find("input").val())&&this.setValue(),this._trigger("hide"))},remove:function(){this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date},getDate:function(){var a=this.getUTCDate();return new Date(a.getTime()+6e4*a.getTimezoneOffset())},getUTCDate:function(){return this.date},setDate:function(a){this.setUTCDate(new Date(a.getTime()-6e4*a.getTimezoneOffset()))},setUTCDate:function(a){this.date=a,this.setValue()},setValue:function(){var a=this.getFormattedDate();this.isInput?this.element.val(a):this.component&&this.element.find("input").val(a)},getFormattedDate:function(a){return void 0===a&&(a=this.o.format),l.formatDate(this.date,a,this.o.language)},setStartDate:function(a){this._process_options({startDate:a}),this.update(),this.updateNavArrows()},setEndDate:function(a){this._process_options({endDate:a}),this.update(),this.updateNavArrows()},setDaysOfWeekDisabled:function(a){this._process_options({daysOfWeekDisabled:a}),this.update(),this.updateNavArrows()},place:function(){if(!this.isInline){var b=parseInt(this.element.parents().filter(function(){return"auto"!=a(this).css("z-index")}).first().css("z-index"))+10,c=this.component?this.component.parent().offset():this.element.offset(),d=this.component?this.component.outerHeight(!0):this.element.outerHeight(!0);this.picker.css({top:c.top+d,left:c.left,zIndex:b})}},_allow_update:!0,update:function(){if(this._allow_update){var a,b=!1;arguments&&arguments.length&&("string"==typeof arguments[0]||arguments[0]instanceof Date)?(a=arguments[0],b=!0):(a=this.isInput?this.element.val():this.element.data("date")||this.element.find("input").val(),delete this.element.data().date),this.date=l.parseDate(a,this.o.format,this.o.language),b&&this.setValue(),this.date<this.o.startDate?this.viewDate=new Date(this.o.startDate):this.date>this.o.endDate?this.viewDate=new Date(this.o.endDate):this.viewDate=new Date(this.date),this.fill()}},fillDow:function(){var a=this.o.weekStart,b="<tr>";if(this.o.calendarWeeks){var c='<th class="cw"> </th>';b+=c,this.picker.find(".datepicker-days thead tr:first-child").prepend(c)}for(;a<this.o.weekStart+7;)b+='<th class="dow">'+k[this.o.language].daysMin[a++%7]+"</th>";b+="</tr>",this.picker.find(".datepicker-days thead").append(b)},fillMonths:function(){for(var a="",b=0;12>b;)a+='<span class="month">'+k[this.o.language].monthsShort[b++]+"</span>";this.picker.find(".datepicker-months td").html(a)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),f=this.date.valueOf(),g=new Date;return b.getUTCFullYear()<d||b.getUTCFullYear()==d&&b.getUTCMonth()<e?c.push("old"):(b.getUTCFullYear()>d||b.getUTCFullYear()==d&&b.getUTCMonth()>e)&&c.push("new"),this.o.todayHighlight&&b.getUTCFullYear()==g.getFullYear()&&b.getUTCMonth()==g.getMonth()&&b.getUTCDate()==g.getDate()&&c.push("today"),f&&b.valueOf()==f&&c.push("active"),(b.valueOf()<this.o.startDate||b.valueOf()>this.o.endDate||-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled))&&c.push("disabled"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),-1!=a.inArray(b.valueOf(),this.range)&&c.push("selected")),c},fill:function(){var c,d=new Date(this.viewDate),e=d.getUTCFullYear(),f=d.getUTCMonth(),g=this.o.startDate!==-(1/0)?this.o.startDate.getUTCFullYear():-(1/0),h=this.o.startDate!==-(1/0)?this.o.startDate.getUTCMonth():-(1/0),i=this.o.endDate!==1/0?this.o.endDate.getUTCFullYear():1/0,j=this.o.endDate!==1/0?this.o.endDate.getUTCMonth():1/0;this.date&&this.date.valueOf();this.picker.find(".datepicker-days thead th.datepicker-switch").text(k[this.o.language].months[f]+" "+e),this.picker.find("tfoot th.today").text(k[this.o.language].today).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot th.clear").text(k[this.o.language].clear).toggle(this.o.clearBtn!==!1),this.updateNavArrows(),this.fillMonths();var m=b(e,f-1,28,0,0,0,0),n=l.getDaysInMonth(m.getUTCFullYear(),m.getUTCMonth());m.setUTCDate(n),m.setUTCDate(n-(m.getUTCDay()-this.o.weekStart+7)%7);var o=new Date(m);o.setUTCDate(o.getUTCDate()+42),o=o.valueOf();for(var p,q=[];m.valueOf()<o;){if(m.getUTCDay()==this.o.weekStart&&(q.push("<tr>"),this.o.calendarWeeks)){var r=new Date(+m+(this.o.weekStart-m.getUTCDay()-7)%7*864e5),s=new Date(+r+(11-r.getUTCDay())%7*864e5),t=new Date(+(t=b(s.getUTCFullYear(),0,1))+(11-t.getUTCDay())%7*864e5),u=(s-t)/864e5/7+1;q.push('<td class="cw">'+u+"</td>")}p=this.getClassNames(m),p.push("day");var v=this.o.beforeShowDay(m);void 0===v?v={}:"boolean"==typeof v?v={enabled:v}:"string"==typeof v&&(v={classes:v}),v.enabled===!1&&p.push("disabled"),v.classes&&(p=p.concat(v.classes.split(/\s+/))),v.tooltip&&(c=v.tooltip),p=a.unique(p),q.push('<td class="'+p.join(" ")+'"'+(c?' title="'+c+'"':"")+">"+m.getUTCDate()+"</td>"),m.getUTCDay()==this.o.weekEnd&&q.push("</tr>"),m.setUTCDate(m.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(q.join(""));var w=this.date&&this.date.getUTCFullYear(),x=this.picker.find(".datepicker-months").find("th:eq(1)").text(e).end().find("span").removeClass("active");w&&w==e&&x.eq(this.date.getUTCMonth()).addClass("active"),(g>e||e>i)&&x.addClass("disabled"),e==g&&x.slice(0,h).addClass("disabled"),e==i&&x.slice(j+1).addClass("disabled"),q="",e=10*parseInt(e/10,10);var y=this.picker.find(".datepicker-years").find("th:eq(1)").text(e+"-"+(e+9)).end().find("td");e-=1;for(var z=-1;11>z;z++)q+='<span class="year'+(-1==z?" old":10==z?" new":"")+(w==e?" active":"")+(g>e||e>i?" disabled":"")+'">'+e+"</span>",e+=1;y.html(q)},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:case 2:this.o.startDate!==-(1/0)&&b<=this.o.startDate.getUTCFullYear()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),this.o.endDate!==1/0&&b>=this.o.endDate.getUTCFullYear()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"})}}},click:function(c){c.preventDefault();var d=a(c.target).closest("span, td, th");if(1==d.length)switch(d[0].nodeName.toLowerCase()){case"th":switch(d[0].className){case"datepicker-switch":this.showMode(1);break;case"prev":case"next":var e=l.modes[this.viewMode].navStep*("prev"==d[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveMonth(this.viewDate,e);break;case 1:case 2:this.viewDate=this.moveYear(this.viewDate,e)}this.fill();break;case"today":var f=new Date;f=b(f.getFullYear(),f.getMonth(),f.getDate(),0,0,0),this.showMode(-2);var g="linked"==this.o.todayBtn?null:"view";this._setDate(f,g);break;case"clear":var h;this.isInput?h=this.element:this.component&&(h=this.element.find("input")),h&&h.val("").change(),this._trigger("changeDate"),this.update(),this.o.autoclose&&this.hide()}break;case"span":if(!d.is(".disabled")){if(this.viewDate.setUTCDate(1),d.is(".month")){var i=1,j=d.parent().find("span").index(d),k=this.viewDate.getUTCFullYear();this.viewDate.setUTCMonth(j),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode&&this._setDate(b(k,j,i,0,0,0,0))}else{var k=parseInt(d.text(),10)||0,i=1,j=0;this.viewDate.setUTCFullYear(k),this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(b(k,j,i,0,0,0,0))}this.showMode(-1),this.fill()}break;case"td":if(d.is(".day")&&!d.is(".disabled")){var i=parseInt(d.text(),10)||1,k=this.viewDate.getUTCFullYear(),j=this.viewDate.getUTCMonth();d.is(".old")?0===j?(j=11,k-=1):j-=1:d.is(".new")&&(11==j?(j=0,k+=1):j+=1),this._setDate(b(k,j,i,0,0,0,0))}}},_setDate:function(a,b){b&&"date"!=b||(this.date=new Date(a)),b&&"view"!=b||(this.viewDate=new Date(a)),this.fill(),this.setValue(),this._trigger("changeDate");var c;this.isInput?c=this.element:this.component&&(c=this.element.find("input")),c&&(c.change(),!this.o.autoclose||b&&"date"!=b||this.hide())},moveMonth:function(a,b){if(!b)return a;var c,d,e=new Date(a.valueOf()),f=e.getUTCDate(),g=e.getUTCMonth(),h=Math.abs(b);if(b=b>0?1:-1,1==h)d=-1==b?function(){return e.getUTCMonth()==g}:function(){return e.getUTCMonth()!=c},c=g+b,e.setUTCMonth(c),(0>c||c>11)&&(c=(c+12)%12);else{for(var i=0;h>i;i++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!=e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(this.picker.is(":not(:visible)"))return void(27==a.keyCode&&this.show());var b,c,d,e=!1;switch(a.keyCode){case 27:this.hide(),a.preventDefault();break;case 37:case 39:if(!this.o.keyboardNavigation)break;b=37==a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.date,b),d=this.moveYear(this.viewDate,b)):a.shiftKey?(c=this.moveMonth(this.date,b),d=this.moveMonth(this.viewDate,b)):(c=new Date(this.date),c.setUTCDate(this.date.getUTCDate()+b),d=new Date(this.viewDate),d.setUTCDate(this.viewDate.getUTCDate()+b)),this.dateWithinRange(c)&&(this.date=c,this.viewDate=d,this.setValue(),this.update(),a.preventDefault(),e=!0);break;case 38:case 40:if(!this.o.keyboardNavigation)break;b=38==a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.date,b),d=this.moveYear(this.viewDate,b)):a.shiftKey?(c=this.moveMonth(this.date,b),d=this.moveMonth(this.viewDate,b)):(c=new Date(this.date),c.setUTCDate(this.date.getUTCDate()+7*b),d=new Date(this.viewDate),d.setUTCDate(this.viewDate.getUTCDate()+7*b)),this.dateWithinRange(c)&&(this.date=c,this.viewDate=d,this.setValue(),this.update(),a.preventDefault(),e=!0);break;case 13:this.hide(),a.preventDefault();break;case 9:this.hide()}if(e){this._trigger("changeDate");var f;this.isInput?f=this.element:this.component&&(f=this.element.find("input")),f&&f.change()}},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(2,this.viewMode+a))),this.picker.find(">div").hide().filter(".datepicker-"+l.modes[this.viewMode].clsName).css("display","block"),this.updateNavArrows()}};var f=function(b,c){this.element=a(b),this.inputs=a.map(c.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,a(this.inputs).datepicker(c).bind("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};f.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.date}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){var c=a(b.target).data("datepicker"),d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=this.inputs.length;if(-1!=e){if(d<this.dates[e])for(;e>=0&&d<this.dates[e];)this.pickers[e--].setUTCDate(d);else if(d>this.dates[e])for(;f>e&&d>this.dates[e];)this.pickers[e++].setUTCDate(d);this.updateDates()}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var g=a.fn.datepicker,h=a.fn.datepicker=function(b){var g=Array.apply(null,arguments);g.shift();var h;return this.each(function(){var j=a(this),k=j.data("datepicker"),l="object"==typeof b&&b;if(!k){var m=c(this,"date"),n=a.extend({},i,m,l),o=d(n.language),p=a.extend({},i,o,m,l);if(j.is(".input-daterange")||p.inputs){var q={inputs:p.inputs||j.find("input").toArray()};j.data("datepicker",k=new f(this,a.extend(p,q)))}else j.data("datepicker",k=new e(this,p))}return"string"==typeof b&&"function"==typeof k[b]&&(h=k[b].apply(k,g),void 0!==h)?!1:void 0}),void 0!==h?h:this},i=a.fn.datepicker.defaults={autoclose:!1,beforeShowDay:a.noop,calendarWeeks:!1,clearBtn:!1,daysOfWeekDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,rtl:!1,startDate:-(1/0),startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0},j=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=e;var k=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:["Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],
|
7
|
-
monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear"}},l={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(a){return a%4===0&&a%100!==0||a%400===0},getDaysInMonth:function(a,b){return[31,l.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,parseFormat:function(a){var b=a.replace(this.validParts,"\x00").split("\x00"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,d,f){if(c instanceof Date)return c;if("string"==typeof d&&(d=l.parseFormat(d)),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(c)){var g,h,i=/([\-+]\d+)([dmwy])/,j=c.match(/([\-+]\d+)([dmwy])/g);c=new Date;for(var m=0;m<j.length;m++)switch(g=i.exec(j[m]),h=parseInt(g[1]),g[2]){case"d":c.setUTCDate(c.getUTCDate()+h);break;case"m":c=e.prototype.moveMonth.call(e.prototype,c,h);break;case"w":c.setUTCDate(c.getUTCDate()+7*h);break;case"y":c=e.prototype.moveYear.call(e.prototype,c,h)}return b(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate(),0,0,0)}var n,o,g,j=c&&c.match(this.nonpunctuation)||[],c=new Date,p={},q=["yyyy","yy","M","MM","m","mm","d","dd"],r={yyyy:function(a,b){return a.setUTCFullYear(b)},yy:function(a,b){return a.setUTCFullYear(2e3+b)},m:function(a,b){for(b-=1;0>b;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!=b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};r.M=r.MM=r.mm=r.m,r.dd=r.d,c=b(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0);var s=d.parts.slice();if(j.length!=s.length&&(s=a(s).filter(function(b,c){return-1!==a.inArray(c,q)}).toArray()),j.length==s.length){for(var m=0,t=s.length;t>m;m++){if(n=parseInt(j[m],10),g=s[m],isNaN(n))switch(g){case"MM":o=a(k[f].months).filter(function(){var a=this.slice(0,j[m].length),b=j[m].slice(0,a.length);return a==b}),n=a.inArray(o[0],k[f].months)+1;break;case"M":o=a(k[f].monthsShort).filter(function(){var a=this.slice(0,j[m].length),b=j[m].slice(0,a.length);return a==b}),n=a.inArray(o[0],k[f].monthsShort)+1}p[g]=n}for(var u,m=0;m<q.length;m++)u=q[m],u in p&&!isNaN(p[u])&&r[u](c,p[u])}return c},formatDate:function(b,c,d){"string"==typeof c&&(c=l.parseFormat(c));var e={d:b.getUTCDate(),D:k[d].daysShort[b.getUTCDay()],DD:k[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:k[d].monthsShort[b.getUTCMonth()],MM:k[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m;for(var b=[],f=a.extend([],c.separators),g=0,h=c.parts.length;h>=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th class="prev"><i class="icon-arrow-left"/></th><th colspan="5" class="datepicker-switch"></th><th class="next"><i class="icon-arrow-right"/></th></tr></thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};l.template='<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">'+l.headTemplate+"<tbody></tbody>"+l.footTemplate+'</table></div><div class="datepicker-months"><table class="table-condensed">'+l.headTemplate+l.contTemplate+l.footTemplate+'</table></div><div class="datepicker-years"><table class="table-condensed">'+l.headTemplate+l.contTemplate+l.footTemplate+"</table></div></div>",a.fn.datepicker.DPGlobal=l,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=g,this},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),h.call(c,"show"))}),a(function(){h.call(a('[data-provide="datepicker-inline"]'))})}(window.jQuery),function(a){"use strict";a.fn.bdatepicker=a.fn.datepicker.noConflict(),a.fn.datepicker||(a.fn.datepicker=a.fn.bdatepicker);var b=function(a){this.init("date",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{initPicker:function(b,c){this.options.viewformat||(this.options.viewformat=this.options.format),b.datepicker=a.fn.editableutils.tryParseJson(b.datepicker,!0),this.options.datepicker=a.extend({},c.datepicker,b.datepicker,{format:this.options.viewformat}),this.options.datepicker.language=this.options.datepicker.language||"en",this.dpg=a.fn.bdatepicker.DPGlobal,this.parsedFormat=this.dpg.parseFormat(this.options.format),this.parsedViewFormat=this.dpg.parseFormat(this.options.viewformat)},render:function(){this.$input.bdatepicker(this.options.datepicker),this.options.clear&&(this.$clear=a('<a href="#"></a>').html(this.options.clear).click(a.proxy(function(a){a.preventDefault(),a.stopPropagation(),this.clear()},this)),this.$tpl.parent().append(a('<div class="editable-clear">').append(this.$clear)))},value2html:function(a,c){var d=a?this.dpg.formatDate(a,this.parsedViewFormat,this.options.datepicker.language):"";b.superclass.value2html.call(this,d,c)},html2value:function(a){return this.parseDate(a,this.parsedViewFormat)},value2str:function(a){return a?this.dpg.formatDate(a,this.parsedFormat,this.options.datepicker.language):""},str2value:function(a){return this.parseDate(a,this.parsedFormat)},value2submit:function(a){return this.value2str(a)},value2input:function(a){this.$input.bdatepicker("update",a)},input2value:function(){return this.$input.data("datepicker").date},activate:function(){},clear:function(){this.$input.data("datepicker").date=null,this.$input.find(".active").removeClass("active"),this.options.showbuttons||this.$input.closest("form").submit()},autosubmit:function(){this.$input.on("mouseup",".day",function(b){if(!a(b.currentTarget).is(".old")&&!a(b.currentTarget).is(".new")){var c=a(this).closest("form");setTimeout(function(){c.submit()},200)}})},parseDate:function(a,b){var c,d=null;return a&&(d=this.dpg.parseDate(a,b,this.options.datepicker.language),"string"==typeof a&&(c=this.dpg.formatDate(d,b,this.options.datepicker.language),a!==c&&(d=null))),d}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<div class="editable-date well"></div>',inputclass:null,format:"yyyy-mm-dd",viewformat:null,datepicker:{weekStart:0,startView:0,minViewMode:0,autoclose:!1},clear:"× clear"}),a.fn.editabletypes.date=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("datefield",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.date),a.extend(b.prototype,{render:function(){this.$input=this.$tpl.find("input"),this.setClass(),this.setAttr("placeholder"),this.$input.bdatepicker(this.options.datepicker),this.$input.off("focus keydown"),this.$input.keyup(a.proxy(function(){this.$tpl.removeData("date"),this.$tpl.bdatepicker("update")},this))},value2input:function(a){this.$input.val(a?this.dpg.formatDate(a,this.parsedViewFormat,this.options.datepicker.language):""),this.$tpl.bdatepicker("update")},input2value:function(){return this.html2value(this.$input.val())},activate:function(){a.fn.editabletypes.text.prototype.activate.call(this)},autosubmit:function(){}}),b.defaults=a.extend({},a.fn.editabletypes.date.defaults,{tpl:'<div class="input-append date"><input type="text"/><span class="add-on"><i class="icon-th"></i></span></div>',inputclass:"input-small",datepicker:{weekStart:0,startView:0,minViewMode:0,autoclose:!0}}),a.fn.editabletypes.datefield=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("datetime",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{initPicker:function(b,c){this.options.viewformat||(this.options.viewformat=this.options.format),b.datetimepicker=a.fn.editableutils.tryParseJson(b.datetimepicker,!0),this.options.datetimepicker=a.extend({},c.datetimepicker,b.datetimepicker,{format:this.options.viewformat}),this.options.datetimepicker.language=this.options.datetimepicker.language||"en",this.dpg=a.fn.datetimepicker.DPGlobal,this.parsedFormat=this.dpg.parseFormat(this.options.format,this.options.formatType),this.parsedViewFormat=this.dpg.parseFormat(this.options.viewformat,this.options.formatType)},render:function(){this.$input.datetimepicker(this.options.datetimepicker),this.$input.on("changeMode",function(b){var c=a(this).closest("form").parent();setTimeout(function(){c.triggerHandler("resize")},0)}),this.options.clear&&(this.$clear=a('<a href="#"></a>').html(this.options.clear).click(a.proxy(function(a){a.preventDefault(),a.stopPropagation(),this.clear()},this)),this.$tpl.parent().append(a('<div class="editable-clear">').append(this.$clear)))},value2html:function(a,c){var d=a?this.dpg.formatDate(this.toUTC(a),this.parsedViewFormat,this.options.datetimepicker.language,this.options.formatType):"";return c?void b.superclass.value2html.call(this,d,c):d},html2value:function(a){var b=this.parseDate(a,this.parsedViewFormat);return b?this.fromUTC(b):null},value2str:function(a){return a?this.dpg.formatDate(this.toUTC(a),this.parsedFormat,this.options.datetimepicker.language,this.options.formatType):""},str2value:function(a){var b=this.parseDate(a,this.parsedFormat);return b?this.fromUTC(b):null},value2submit:function(a){return this.value2str(a)},value2input:function(a){a&&this.$input.data("datetimepicker").setDate(a)},input2value:function(){var a=this.$input.data("datetimepicker");return a.date?a.getDate():null},activate:function(){},clear:function(){this.$input.data("datetimepicker").date=null,this.$input.find(".active").removeClass("active"),this.options.showbuttons||this.$input.closest("form").submit()},autosubmit:function(){this.$input.on("mouseup",".minute",function(b){var c=a(this).closest("form");setTimeout(function(){c.submit()},200)})},toUTC:function(a){return a?new Date(a.valueOf()-6e4*a.getTimezoneOffset()):a},fromUTC:function(a){return a?new Date(a.valueOf()+6e4*a.getTimezoneOffset()):a},parseDate:function(a,b){var c,d=null;return a&&(d=this.dpg.parseDate(a,b,this.options.datetimepicker.language,this.options.formatType),"string"==typeof a&&(c=this.dpg.formatDate(d,b,this.options.datetimepicker.language,this.options.formatType),a!==c&&(d=null))),d}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<div class="editable-date well"></div>',inputclass:null,format:"yyyy-mm-dd hh:ii",formatType:"standard",viewformat:null,datetimepicker:{todayHighlight:!1,autoclose:!1},clear:"× clear"}),a.fn.editabletypes.datetime=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("datetimefield",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.datetime),a.extend(b.prototype,{render:function(){this.$input=this.$tpl.find("input"),this.setClass(),this.setAttr("placeholder"),this.$tpl.datetimepicker(this.options.datetimepicker),this.$input.off("focus keydown"),this.$input.keyup(a.proxy(function(){this.$tpl.removeData("date"),this.$tpl.datetimepicker("update")},this))},value2input:function(a){this.$input.val(this.value2html(a)),this.$tpl.datetimepicker("update")},input2value:function(){return this.html2value(this.$input.val())},activate:function(){a.fn.editabletypes.text.prototype.activate.call(this)},autosubmit:function(){}}),b.defaults=a.extend({},a.fn.editabletypes.datetime.defaults,{tpl:'<div class="input-append date"><input type="text"/><span class="add-on"><i class="icon-th"></i></span></div>',inputclass:"input-medium",datetimepicker:{todayHighlight:!1,autoclose:!0}}),a.fn.editabletypes.datetimefield=b}(window.jQuery);
|
5
|
+
!function (a) { "use strict"; var b = function (b, c) { this.options = a.extend({}, a.fn.editableform.defaults, c), this.$div = a(b), this.options.scope || (this.options.scope = this) }; b.prototype = { constructor: b, initInput: function () { this.input = this.options.input, this.value = this.input.str2value(this.options.value), this.input.prerender() }, initTemplate: function () { this.$form = a(a.fn.editableform.template) }, initButtons: function () { var b = this.$form.find(".editable-buttons"); b.append(a.fn.editableform.buttons), "bottom" === this.options.showbuttons && b.addClass("editable-buttons-bottom") }, render: function () { this.$loading = a(a.fn.editableform.loading), this.$div.empty().append(this.$loading), this.initTemplate(), this.options.showbuttons ? this.initButtons() : this.$form.find(".editable-buttons").remove(), this.showLoading(), this.isSaving = !1, this.$div.triggerHandler("rendering"), this.initInput(), this.$form.find("div.editable-input").append(this.input.$tpl), this.$div.append(this.$form), a.when(this.input.render()).then(a.proxy(function () { if (this.options.showbuttons || this.input.autosubmit(), this.$form.find(".editable-cancel").click(a.proxy(this.cancel, this)), this.input.error) this.error(this.input.error), this.$form.find(".editable-submit").attr("disabled", !0), this.input.$input.attr("disabled", !0), this.$form.submit(function (a) { a.preventDefault() }); else { this.error(!1), this.input.$input.removeAttr("disabled"), this.$form.find(".editable-submit").removeAttr("disabled"); var b = null === this.value || void 0 === this.value || "" === this.value ? this.options.defaultValue : this.value; this.input.value2input(b), this.$form.submit(a.proxy(this.submit, this)) } this.$div.triggerHandler("rendered"), this.showForm(), this.input.postrender && this.input.postrender() }, this)) }, cancel: function () { this.$div.triggerHandler("cancel") }, showLoading: function () { var a, b; this.$form ? (a = this.$form.outerWidth(), b = this.$form.outerHeight(), a && this.$loading.width(a), b && this.$loading.height(b), this.$form.hide()) : (a = this.$loading.parent().width(), a && this.$loading.width(a)), this.$loading.show() }, showForm: function (a) { this.$loading.hide(), this.$form.show(), a !== !1 && this.input.activate(), this.$div.triggerHandler("show") }, error: function (b) { var c, d = this.$form.find(".control-group"), e = this.$form.find(".editable-error-block"); if (b === !1) d.removeClass(a.fn.editableform.errorGroupClass), e.removeClass(a.fn.editableform.errorBlockClass).empty().hide(); else { if (b) { c = ("" + b).split("\n"); for (var f = 0; f < c.length; f++)c[f] = a("<div>").text(c[f]).html(); b = c.join("<br>") } d.addClass(a.fn.editableform.errorGroupClass), e.addClass(a.fn.editableform.errorBlockClass).html(b).show() } }, submit: function (b) { b.stopPropagation(), b.preventDefault(); var c = this.input.input2value(), d = this.validate(c); if ("object" === a.type(d) && void 0 !== d.newValue) { if (c = d.newValue, this.input.value2input(c), "string" == typeof d.msg) return this.error(d.msg), void this.showForm() } else if (d) return this.error(d), void this.showForm(); if (!this.options.savenochange && this.input.value2str(c) === this.input.value2str(this.value)) return void this.$div.triggerHandler("nochange"); var e = this.input.value2submit(c); this.isSaving = !0, a.when(this.save(e)).done(a.proxy(function (a) { this.isSaving = !1; var b = "function" == typeof this.options.success ? this.options.success.call(this.options.scope, a, c) : null; return b === !1 ? (this.error(!1), void this.showForm(!1)) : "string" == typeof b ? (this.error(b), void this.showForm()) : (b && "object" == typeof b && b.hasOwnProperty("newValue") && (c = b.newValue), this.error(!1), this.value = c, void this.$div.triggerHandler("save", { newValue: c, submitValue: e, response: a })) }, this)).fail(a.proxy(function (a) { this.isSaving = !1; var b; b = "function" == typeof this.options.error ? this.options.error.call(this.options.scope, a, c) : "string" == typeof a ? a : a.responseText || a.statusText || "Unknown error!", this.error(b), this.showForm() }, this)) }, save: function (b) { this.options.pk = a.fn.editableutils.tryParseJson(this.options.pk, !0); var c, d = "function" == typeof this.options.pk ? this.options.pk.call(this.options.scope) : this.options.pk, e = !!("function" == typeof this.options.url || this.options.url && ("always" === this.options.send || "auto" === this.options.send && null !== d && void 0 !== d)); return e ? (this.showLoading(), c = { name: this.options.name || "", value: b, pk: d }, "function" == typeof this.options.params ? c = this.options.params.call(this.options.scope, c) : (this.options.params = a.fn.editableutils.tryParseJson(this.options.params, !0), a.extend(c, this.options.params)), "function" == typeof this.options.url ? this.options.url.call(this.options.scope, c) : a.ajax(a.extend({ url: this.options.url, data: c, type: "POST" }, this.options.ajaxOptions))) : void 0 }, validate: function (a) { return void 0 === a && (a = this.value), "function" == typeof this.options.validate ? this.options.validate.call(this.options.scope, a) : void 0 }, option: function (a, b) { a in this.options && (this.options[a] = b), "value" === a && this.setValue(b) }, setValue: function (a, b) { b ? this.value = this.input.str2value(a) : this.value = a, this.$form && this.$form.is(":visible") && this.input.value2input(this.value) } }, a.fn.editableform = function (c) { var d = arguments; return this.each(function () { var e = a(this), f = e.data("editableform"), g = "object" == typeof c && c; f || e.data("editableform", f = new b(this, g)), "string" == typeof c && f[c].apply(f, Array.prototype.slice.call(d, 1)) }) }, a.fn.editableform.Constructor = b, a.fn.editableform.defaults = { type: "text", url: null, params: null, name: null, pk: null, value: null, defaultValue: null, send: "auto", validate: null, success: null, error: null, ajaxOptions: null, showbuttons: !0, scope: null, savenochange: !1 }, a.fn.editableform.template = '<form class="form-inline editableform"><div class="control-group"><div><div class="editable-input"></div><div class="editable-buttons"></div></div><div class="editable-error-block"></div></div></form>', a.fn.editableform.loading = '<div class="editableform-loading"></div>', a.fn.editableform.buttons = '<button type="submit" class="editable-submit">ok</button><button type="button" class="editable-cancel">cancel</button>', a.fn.editableform.errorGroupClass = null, a.fn.editableform.errorBlockClass = "editable-error", a.fn.editableform.engine = "jquery" }(window.jQuery), function (a) { "use strict"; a.fn.editableutils = { inherit: function (a, b) { var c = function () { }; c.prototype = b.prototype, a.prototype = new c, a.prototype.constructor = a, a.superclass = b.prototype }, setCursorPosition: function (a, b) { if (a.setSelectionRange) try { a.setSelectionRange(b, b) } catch (c) { } else if (a.createTextRange) { var d = a.createTextRange(); d.collapse(!0), d.moveEnd("character", b), d.moveStart("character", b), d.select() } }, tryParseJson: function (a, b) { if ("string" == typeof a && a.length && a.match(/^[\{\[].*[\}\]]$/)) if (b) try { a = new Function("return " + a)() } catch (c) { } finally { return a } else a = new Function("return " + a)(); return a }, sliceObj: function (b, c, d) { var e, f, g = {}; if (!a.isArray(c) || !c.length) return g; for (var h = 0; h < c.length; h++)e = c[h], b.hasOwnProperty(e) && (g[e] = b[e]), d !== !0 && (f = e.toLowerCase(), b.hasOwnProperty(f) && (g[e] = b[f])); return g }, getConfigData: function (b) { var c = {}; return a.each(b[0].dataset, function (a, b) { ("object" != typeof b || b && "object" == typeof b && (b.constructor === Object || b.constructor === Array)) && (c[a] = b) }), c }, objectKeys: function (a) { if (Object.keys) return Object.keys(a); if (a !== Object(a)) throw new TypeError("Object.keys called on a non-object"); var b, c = []; for (b in a) Object.prototype.hasOwnProperty.call(a, b) && c.push(b); return c }, escape: function (b) { return a("<div>").text(b).html() }, itemsByValue: function (b, c, d) { if (!c || null === b) return []; if ("function" != typeof d) { var e = d || "value"; d = function (a) { return a[e] } } var f = a.isArray(b), g = [], h = this; return a.each(c, function (c, e) { if (e.children) g = g.concat(h.itemsByValue(b, e.children, d)); else if (f) a.grep(b, function (a) { return a == (e && "object" == typeof e ? d(e) : e) }).length && g.push(e); else { var i = e && "object" == typeof e ? d(e) : e; b == i && g.push(e) } }), g }, createInput: function (b) { var c, d, e, f = b.type; return "date" === f && ("inline" === b.mode ? a.fn.editabletypes.datefield ? f = "datefield" : a.fn.editabletypes.dateuifield && (f = "dateuifield") : a.fn.editabletypes.date ? f = "date" : a.fn.editabletypes.dateui && (f = "dateui"), "date" !== f || a.fn.editabletypes.date || (f = "combodate")), "datetime" === f && "inline" === b.mode && (f = "datetimefield"), "wysihtml5" !== f || a.fn.editabletypes[f] || (f = "textarea"), "function" == typeof a.fn.editabletypes[f] ? (c = a.fn.editabletypes[f], d = this.sliceObj(b, this.objectKeys(c.defaults)), e = new c(d)) : (a.error("Unknown type: " + f), !1) }, supportsTransitions: function () { var a = document.body || document.documentElement, b = a.style, c = "transition", d = ["Moz", "Webkit", "Khtml", "O", "ms"]; if ("string" == typeof b[c]) return !0; c = c.charAt(0).toUpperCase() + c.substr(1); for (var e = 0; e < d.length; e++)if ("string" == typeof b[d[e] + c]) return !0; return !1 } } }(window.jQuery), function (a) { "use strict"; var b = function (a, b) { this.init(a, b) }, c = function (a, b) { this.init(a, b) }; b.prototype = { containerName: null, containerDataName: null, innerCss: null, containerClass: "editable-container editable-popup", defaults: {}, init: function (c, d) { this.$element = a(c), this.options = a.extend({}, a.fn.editableContainer.defaults, d), this.splitOptions(), this.formOptions.scope = this.$element[0], this.initContainer(), this.delayedHide = !1, this.$element.on("destroyed", a.proxy(function () { this.destroy() }, this)), a(document).data("editable-handlers-attached") || (a(document).on("keyup.editable", function (b) { 27 === b.which && a(".editable-open").editableContainer("hide", "cancel") }), a(document).on("click.editable", function (c) { var d, e = a(c.target), f = [".editable-container", ".ui-datepicker-header", ".datepicker", ".modal-backdrop", ".bootstrap-wysihtml5-insert-image-modal", ".bootstrap-wysihtml5-insert-link-modal"]; if (!a(".select2-drop-mask").is(":visible") && a.contains(document.documentElement, c.target) && !e.is(document)) { for (d = 0; d < f.length; d++)if (e.is(f[d]) || e.parents(f[d]).length) return; b.prototype.closeOthers(c.target) } }), a(document).data("editable-handlers-attached", !0)) }, splitOptions: function () { if (this.containerOptions = {}, this.formOptions = {}, !a.fn[this.containerName]) throw new Error(this.containerName + " not found. Have you included corresponding js file?"); for (var b in this.options) b in this.defaults ? this.containerOptions[b] = this.options[b] : this.formOptions[b] = this.options[b] }, tip: function () { return this.container() ? this.container().$tip : null }, container: function () { var a; return this.containerDataName && (a = this.$element.data(this.containerDataName)) ? a : a = this.$element.data(this.containerName) }, call: function () { this.$element[this.containerName].apply(this.$element, arguments) }, initContainer: function () { this.call(this.containerOptions) }, renderForm: function () { this.$form.editableform(this.formOptions).on({ save: a.proxy(this.save, this), nochange: a.proxy(function () { this.hide("nochange") }, this), cancel: a.proxy(function () { this.hide("cancel") }, this), show: a.proxy(function () { this.delayedHide ? (this.hide(this.delayedHide.reason), this.delayedHide = !1) : this.setPosition() }, this), rendering: a.proxy(this.setPosition, this), resize: a.proxy(this.setPosition, this), rendered: a.proxy(function () { this.$element.triggerHandler("shown", a(this.options.scope).data("editable")) }, this) }).editableform("render") }, show: function (b) { this.$element.addClass("editable-open"), b !== !1 && this.closeOthers(this.$element[0]), this.innerShow(), this.tip().addClass(this.containerClass), this.$form, this.$form = a("<div>"), this.tip().is(this.innerCss) ? this.tip().append(this.$form) : this.tip().find(this.innerCss).append(this.$form), this.renderForm() }, hide: function (a) { if (this.tip() && this.tip().is(":visible") && this.$element.hasClass("editable-open")) { if (this.$form.data("editableform").isSaving) return void (this.delayedHide = { reason: a }); this.delayedHide = !1, this.$element.removeClass("editable-open"), this.innerHide(), this.$element.triggerHandler("hidden", a || "manual") } }, innerShow: function () { }, innerHide: function () { }, toggle: function (a) { this.container() && this.tip() && this.tip().is(":visible") ? this.hide() : this.show(a) }, setPosition: function () { }, save: function (a, b) { this.$element.triggerHandler("save", b), this.hide("save") }, option: function (a, b) { this.options[a] = b, a in this.containerOptions ? (this.containerOptions[a] = b, this.setContainerOption(a, b)) : (this.formOptions[a] = b, this.$form && this.$form.editableform("option", a, b)) }, setContainerOption: function (a, b) { this.call("option", a, b) }, destroy: function () { this.hide(), this.innerDestroy(), this.$element.off("destroyed"), this.$element.removeData("editableContainer") }, innerDestroy: function () { }, closeOthers: function (b) { a(".editable-open").each(function (c, d) { if (d !== b && !a(d).find(b).length) { var e = a(d), f = e.data("editableContainer"); f && ("cancel" === f.options.onblur ? e.data("editableContainer").hide("onblur") : "submit" === f.options.onblur && e.data("editableContainer").tip().find("form").submit()) } }) }, activate: function () { this.tip && this.tip().is(":visible") && this.$form && this.$form.data("editableform").input.activate() } }, a.fn.editableContainer = function (d) { var e = arguments; return this.each(function () { var f = a(this), g = "editableContainer", h = f.data(g), i = "object" == typeof d && d, j = "inline" === i.mode ? c : b; h || f.data(g, h = new j(this, i)), "string" == typeof d && h[d].apply(h, Array.prototype.slice.call(e, 1)) }) }, a.fn.editableContainer.Popup = b, a.fn.editableContainer.Inline = c, a.fn.editableContainer.defaults = { value: null, placement: "top", autohide: !0, onblur: "cancel", anim: !1, mode: "popup" }, jQuery.event.special.destroyed = { remove: function (a) { a.handler && a.handler() } } }(window.jQuery), function (a) { "use strict"; a.extend(a.fn.editableContainer.Inline.prototype, a.fn.editableContainer.Popup.prototype, { containerName: "editableform", innerCss: ".editable-inline", containerClass: "editable-container editable-inline", initContainer: function () { this.$tip = a("<span></span>"), this.options.anim || (this.options.anim = 0) }, splitOptions: function () { this.containerOptions = {}, this.formOptions = this.options }, tip: function () { return this.$tip }, innerShow: function () { this.$element.hide(), this.tip().insertAfter(this.$element).show() }, innerHide: function () { this.$tip.hide(this.options.anim, a.proxy(function () { this.$element.show(), this.innerDestroy() }, this)) }, innerDestroy: function () { this.tip() && this.tip().empty().remove() } }) }(window.jQuery), function (a) { "use strict"; var b = function (b, c) { this.$element = a(b), this.options = a.extend({}, a.fn.editable.defaults, c, a.fn.editableutils.getConfigData(this.$element)), this.options.selector ? this.initLive() : this.init(), this.options.highlight && !a.fn.editableutils.supportsTransitions() && (this.options.highlight = !1) }; b.prototype = { constructor: b, init: function () { var b, c = !1; if (this.options.name = this.options.name || this.$element.attr("id"), this.options.scope = this.$element[0], this.input = a.fn.editableutils.createInput(this.options), this.input) { switch (void 0 === this.options.value || null === this.options.value ? (this.value = this.input.html2value(a.trim(this.$element.html())), c = !0) : (this.options.value = a.fn.editableutils.tryParseJson(this.options.value, !0), "string" == typeof this.options.value ? this.value = this.input.str2value(this.options.value) : this.value = this.options.value), this.$element.addClass("editable"), "textarea" === this.input.type && this.$element.addClass("editable-pre-wrapped"), "manual" !== this.options.toggle ? (this.$element.addClass("editable-click"), this.$element.on(this.options.toggle + ".editable", a.proxy(function (a) { if (this.options.disabled || a.preventDefault(), "mouseenter" === this.options.toggle) this.show(); else { var b = "click" !== this.options.toggle; this.toggle(b) } }, this))) : this.$element.attr("tabindex", -1), "function" == typeof this.options.display && (this.options.autotext = "always"), this.options.autotext) { case "always": b = !0; break; case "auto": b = !a.trim(this.$element.text()).length && null !== this.value && void 0 !== this.value && !c; break; default: b = !1 }a.when(b ? this.render() : !0).then(a.proxy(function () { this.options.disabled ? this.disable() : this.enable(), this.$element.triggerHandler("init", this) }, this)) } }, initLive: function () { var b = this.options.selector; this.options.selector = !1, this.options.autotext = "never", this.$element.on(this.options.toggle + ".editable", b, a.proxy(function (c) { var d = a(c.target).closest(b); d.data("editable") || (d.hasClass(this.options.emptyclass) && d.empty(), d.editable(this.options).trigger(c)) }, this)) }, render: function (a) { return this.options.display !== !1 ? this.input.value2htmlFinal ? this.input.value2html(this.value, this.$element[0], this.options.display, a) : "function" == typeof this.options.display ? this.options.display.call(this.$element[0], this.value, a) : this.input.value2html(this.value, this.$element[0]) : void 0 }, enable: function () { this.options.disabled = !1, this.$element.removeClass("editable-disabled"), this.handleEmpty(this.isEmpty), "manual" !== this.options.toggle && "-1" === this.$element.attr("tabindex") && this.$element.removeAttr("tabindex") }, disable: function () { this.options.disabled = !0, this.hide(), this.$element.addClass("editable-disabled"), this.handleEmpty(this.isEmpty), this.$element.attr("tabindex", -1) }, toggleDisabled: function () { this.options.disabled ? this.enable() : this.disable() }, option: function (b, c) { return b && "object" == typeof b ? void a.each(b, a.proxy(function (b, c) { this.option(a.trim(b), c) }, this)) : (this.options[b] = c, "disabled" === b ? c ? this.disable() : this.enable() : ("value" === b && this.setValue(c), this.container && this.container.option(b, c), void (this.input.option && this.input.option(b, c)))) }, handleEmpty: function (b) { this.options.display !== !1 && (void 0 !== b ? this.isEmpty = b : "function" == typeof this.input.isEmpty ? this.isEmpty = this.input.isEmpty(this.$element) : this.isEmpty = "" === a.trim(this.$element.html()), this.options.disabled ? this.isEmpty && (this.$element.empty(), this.options.emptyclass && this.$element.removeClass(this.options.emptyclass)) : this.isEmpty ? (this.$element.html(this.options.emptytext), this.options.emptyclass && this.$element.addClass(this.options.emptyclass)) : this.options.emptyclass && this.$element.removeClass(this.options.emptyclass)) }, show: function (b) { if (!this.options.disabled) { if (this.container) { if (this.container.tip().is(":visible")) return } else { var c = a.extend({}, this.options, { value: this.value, input: this.input }); this.$element.editableContainer(c), this.$element.on("save.internal", a.proxy(this.save, this)), this.container = this.$element.data("editableContainer") } this.container.show(b) } }, hide: function () { this.container && this.container.hide() }, toggle: function (a) { this.container && this.container.tip().is(":visible") ? this.hide() : this.show(a) }, save: function (a, b) { if (this.options.unsavedclass) { var c = !1; c = c || "function" == typeof this.options.url, c = c || this.options.display === !1, c = c || void 0 !== b.response, c = c || this.options.savenochange && this.input.value2str(this.value) !== this.input.value2str(b.newValue), c ? this.$element.removeClass(this.options.unsavedclass) : this.$element.addClass(this.options.unsavedclass) } if (this.options.highlight) { var d = this.$element, e = d.css("background-color"); d.css("background-color", this.options.highlight), setTimeout(function () { "transparent" === e && (e = ""), d.css("background-color", e), d.addClass("editable-bg-transition"), setTimeout(function () { d.removeClass("editable-bg-transition") }, 1700) }, 10) } this.setValue(b.newValue, !1, b.response) }, validate: function () { return "function" == typeof this.options.validate ? this.options.validate.call(this, this.value) : void 0 }, setValue: function (b, c, d) { c ? this.value = this.input.str2value(b) : this.value = b, this.container && this.container.option("value", this.value), a.when(this.render(d)).then(a.proxy(function () { this.handleEmpty() }, this)) }, activate: function () { this.container && this.container.activate() }, destroy: function () { this.disable(), this.container && this.container.destroy(), this.input.destroy(), "manual" !== this.options.toggle && (this.$element.removeClass("editable-click"), this.$element.off(this.options.toggle + ".editable")), this.$element.off("save.internal"), this.$element.removeClass("editable editable-open editable-disabled"), this.$element.removeData("editable") } }, a.fn.editable = function (c) { var d = {}, e = arguments, f = "editable"; switch (c) { case "validate": return this.each(function () { var b, c = a(this), e = c.data(f); e && (b = e.validate()) && (d[e.options.name] = b) }), d; case "getValue": return 2 === arguments.length && arguments[1] === !0 ? d = this.eq(0).data(f).value : this.each(function () { var b = a(this), c = b.data(f); c && void 0 !== c.value && null !== c.value && (d[c.options.name] = c.input.value2submit(c.value)) }), d; case "submit": var g = arguments[1] || {}, h = this, i = this.editable("validate"); if (a.isEmptyObject(i)) { var j = {}; if (1 === h.length) { var k = h.data("editable"), l = { name: k.options.name || "", value: k.input.value2submit(k.value), pk: "function" == typeof k.options.pk ? k.options.pk.call(k.options.scope) : k.options.pk }; "function" == typeof k.options.params ? l = k.options.params.call(k.options.scope, l) : (k.options.params = a.fn.editableutils.tryParseJson(k.options.params, !0), a.extend(l, k.options.params)), j = { url: k.options.url, data: l, type: "POST" }, g.success = g.success || k.options.success, g.error = g.error || k.options.error } else { var m = this.editable("getValue"); j = { url: g.url, data: m, type: "POST" } } j.success = "function" == typeof g.success ? function (a) { g.success.call(h, a, g) } : a.noop, j.error = "function" == typeof g.error ? function () { g.error.apply(h, arguments) } : a.noop, g.ajaxOptions && a.extend(j, g.ajaxOptions), g.data && a.extend(j.data, g.data), a.ajax(j) } else "function" == typeof g.error && g.error.call(h, i); return this }return this.each(function () { var d = a(this), g = d.data(f), h = "object" == typeof c && c; return h && h.selector ? void (g = new b(this, h)) : (g || d.data(f, g = new b(this, h)), void ("string" == typeof c && g[c].apply(g, Array.prototype.slice.call(e, 1)))) }) }, a.fn.editable.defaults = { type: "text", disabled: !1, toggle: "click", emptytext: "...", autotext: "auto", value: null, display: null, emptyclass: "editable-empty", unsavedclass: "editable-unsaved", selector: null, highlight: "#FFFF80" } }(window.jQuery), function (a) { "use strict"; a.fn.editabletypes = {}; var b = function () { }; b.prototype = { init: function (b, c, d) { this.type = b, this.options = a.extend({}, d, c) }, prerender: function () { this.$tpl = a(this.options.tpl), this.$input = this.$tpl, this.$clear = null, this.error = null }, render: function () { }, value2html: function (b, c) { a(c)[this.options.escape ? "text" : "html"](a.trim(b)) }, html2value: function (b) { return a("<div>").html(b).text() }, value2str: function (a) { return String(a) }, str2value: function (a) { return a }, value2submit: function (a) { return a }, value2input: function (a) { this.$input.val(a) }, input2value: function () { return this.$input.val() }, activate: function () { this.$input.is(":visible") && this.$input.focus() }, clear: function () { this.$input.val(null) }, escape: function (b) { return a("<div>").text(b).html() }, autosubmit: function () { }, destroy: function () { }, setClass: function () { this.options.inputclass && this.$input.addClass(this.options.inputclass) }, setAttr: function (a) { void 0 !== this.options[a] && null !== this.options[a] && this.$input.attr(a, this.options[a]) }, option: function (a, b) { this.options[a] = b } }, b.defaults = { tpl: "", inputclass: null, escape: !0, scope: null, showbuttons: !0 }, a.extend(a.fn.editabletypes, { abstractinput: b }) }(window.jQuery), function (a) { "use strict"; var b = function (a) { }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { render: function () { var b = a.Deferred(); return this.error = null, this.onSourceReady(function () { this.renderList(), b.resolve() }, function () { this.error = this.options.sourceError, b.resolve() }), b.promise() }, html2value: function (a) { return null }, value2html: function (b, c, d, e) { var f = a.Deferred(), g = function () { "function" == typeof d ? d.call(c, b, this.sourceData, e) : this.value2htmlFinal(b, c), f.resolve() }; return null === b ? g.call(this) : this.onSourceReady(g, function () { f.resolve() }), f.promise() }, onSourceReady: function (b, c) { var d; if (a.isFunction(this.options.source) ? (d = this.options.source.call(this.options.scope), this.sourceData = null) : d = this.options.source, this.options.sourceCache && a.isArray(this.sourceData)) return void b.call(this); try { d = a.fn.editableutils.tryParseJson(d, !1) } catch (e) { return void c.call(this) } if ("string" == typeof d) { if (this.options.sourceCache) { var f, g = d; if (a(document).data(g) || a(document).data(g, {}), f = a(document).data(g), f.loading === !1 && f.sourceData) return this.sourceData = f.sourceData, this.doPrepend(), void b.call(this); if (f.loading === !0) return f.callbacks.push(a.proxy(function () { this.sourceData = f.sourceData, this.doPrepend(), b.call(this) }, this)), void f.err_callbacks.push(a.proxy(c, this)); f.loading = !0, f.callbacks = [], f.err_callbacks = [] } var h = a.extend({ url: d, type: "get", cache: !1, dataType: "json", success: a.proxy(function (d) { f && (f.loading = !1), this.sourceData = this.makeArray(d), a.isArray(this.sourceData) ? (f && (f.sourceData = this.sourceData, a.each(f.callbacks, function () { this.call() })), this.doPrepend(), b.call(this)) : (c.call(this), f && a.each(f.err_callbacks, function () { this.call() })) }, this), error: a.proxy(function () { c.call(this), f && (f.loading = !1, a.each(f.err_callbacks, function () { this.call() })) }, this) }, this.options.sourceOptions); a.ajax(h) } else this.sourceData = this.makeArray(d), a.isArray(this.sourceData) ? (this.doPrepend(), b.call(this)) : c.call(this) }, doPrepend: function () { null !== this.options.prepend && void 0 !== this.options.prepend && (a.isArray(this.prependData) || (a.isFunction(this.options.prepend) && (this.options.prepend = this.options.prepend.call(this.options.scope)), this.options.prepend = a.fn.editableutils.tryParseJson(this.options.prepend, !0), "string" == typeof this.options.prepend && (this.options.prepend = { "": this.options.prepend }), this.prependData = this.makeArray(this.options.prepend)), a.isArray(this.prependData) && a.isArray(this.sourceData) && (this.sourceData = this.prependData.concat(this.sourceData))) }, renderList: function () { }, value2htmlFinal: function (a, b) { }, makeArray: function (b) { var c, d, e, f, g = []; if (!b || "string" == typeof b) return null; if (a.isArray(b)) { f = function (a, b) { return d = { value: a, text: b }, c++ >= 2 ? !1 : void 0 }; for (var h = 0; h < b.length; h++)e = b[h], "object" == typeof e ? (c = 0, a.each(e, f), 1 === c ? g.push(d) : c > 1 && (e.children && (e.children = this.makeArray(e.children)), g.push(e))) : g.push({ value: e, text: e }) } else a.each(b, function (a, b) { g.push({ value: a, text: b }) }); return g }, option: function (a, b) { this.options[a] = b, "source" === a && (this.sourceData = null), "prepend" === a && (this.prependData = null) } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { source: null, prepend: !1, sourceError: "Error when loading list", sourceCache: !0, sourceOptions: null }), a.fn.editabletypes.list = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("text", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { render: function () { this.renderClear(), this.setClass(), this.setAttr("placeholder") }, activate: function () { this.$input.is(":visible") && (this.$input.focus(), this.$input.is("input,textarea") && !this.$input.is('[type="checkbox"],[type="range"]') && a.fn.editableutils.setCursorPosition(this.$input.get(0), this.$input.val().length), this.toggleClear && this.toggleClear()) }, renderClear: function () { this.options.clear && (this.$clear = a('<span class="editable-clear-x"></span>'), this.$input.after(this.$clear).css("padding-right", 24).keyup(a.proxy(function (b) { if (!~a.inArray(b.keyCode, [40, 38, 9, 13, 27])) { clearTimeout(this.t); var c = this; this.t = setTimeout(function () { c.toggleClear(b) }, 100) } }, this)).parent().css("position", "relative"), this.$clear.click(a.proxy(this.clear, this))) }, postrender: function () { }, toggleClear: function (a) { if (this.$clear) { var b = this.$input.val().length, c = this.$clear.is(":visible"); b && !c && this.$clear.show(), !b && c && this.$clear.hide() } }, clear: function () { this.$clear.hide(), this.$input.val("").focus() } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: '<input type="text">', placeholder: null, clear: !0 }), a.fn.editabletypes.text = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("textarea", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { render: function () { this.setClass(), this.setAttr("placeholder"), this.setAttr("rows"), this.$input.keydown(function (b) { b.ctrlKey && 13 === b.which && a(this).closest("form").submit() }) }, activate: function () { a.fn.editabletypes.text.prototype.activate.call(this) } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: "<textarea></textarea>", inputclass: "input-large", placeholder: null, rows: 7 }), a.fn.editabletypes.textarea = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("select", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.list), a.extend(b.prototype, { renderList: function () { this.$input.empty(); var b = this.options.escape, c = function (d, e) { var f; if (a.isArray(e)) for (var g = 0; g < e.length; g++)if (f = {}, e[g].children) f.label = e[g].text, d.append(c(a("<optgroup>", f), e[g].children)); else { f.value = e[g].value, e[g].disabled && (f.disabled = !0); var h = a("<option>", f); h[b ? "text" : "html"](e[g].text), d.append(h) } return d }; c(this.$input, this.sourceData), this.setClass(), this.$input.on("keydown.editable", function (b) { 13 === b.which && a(this).closest("form").submit() }) }, value2htmlFinal: function (b, c) { var d = "", e = a.fn.editableutils.itemsByValue(b, this.sourceData); e.length && (d = e[0].text), a.fn.editabletypes.abstractinput.prototype.value2html.call(this, d, c) }, autosubmit: function () { this.$input.off("keydown.editable").on("change.editable", function () { a(this).closest("form").submit() }) } }), b.defaults = a.extend({}, a.fn.editabletypes.list.defaults, { tpl: "<select></select>" }), a.fn.editabletypes.select = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("checklist", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.list), a.extend(b.prototype, { renderList: function () { var b; if (this.$tpl.empty(), a.isArray(this.sourceData)) { for (var c = 0; c < this.sourceData.length; c++) { b = a("<label>").append(a("<input>", { type: "checkbox", value: this.sourceData[c].value })); var d = a("<span>"); d[this.options.escape ? "text" : "html"](" " + this.sourceData[c].text), b.append(d), a("<div>").append(b).appendTo(this.$tpl) } this.$input = this.$tpl.find('input[type="checkbox"]'), this.setClass() } }, value2str: function (b) { return a.isArray(b) ? b.sort().join(a.trim(this.options.separator)) : "" }, str2value: function (b) { var c, d = null; return "string" == typeof b && b.length ? (c = new RegExp("\\s*" + a.trim(this.options.separator) + "\\s*"), d = b.split(c)) : d = a.isArray(b) ? b : [b], d }, value2input: function (b) { this.$input.prop("checked", !1), a.isArray(b) && b.length && this.$input.each(function (c, d) { var e = a(d); a.each(b, function (a, b) { e.val() == b && e.prop("checked", !0) }) }) }, input2value: function () { var b = []; return this.$input.filter(":checked").each(function (c, d) { b.push(a(d).val()) }), b }, value2htmlFinal: function (b, c) { var d = [], e = a.fn.editableutils.itemsByValue(b, this.sourceData), f = this.options.escape; e.length ? (a.each(e, function (b, c) { var e = f ? a.fn.editableutils.escape(c.text) : c.text; d.push(e) }), a(c).html(d.join("<br>"))) : a(c).empty() }, activate: function () { this.$input.first().focus() }, autosubmit: function () { this.$input.on("keydown", function (b) { 13 === b.which && a(this).closest("form").submit() }) } }), b.defaults = a.extend({}, a.fn.editabletypes.list.defaults, { tpl: '<div class="editable-checklist"></div>', inputclass: null, separator: "," }), a.fn.editabletypes.checklist = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("password", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.text), a.extend(b.prototype, { value2html: function (b, c) { b ? a(c).text("[hidden]") : a(c).empty() }, html2value: function (a) { return null } }), b.defaults = a.extend({}, a.fn.editabletypes.text.defaults, { tpl: '<input type="password">' }), a.fn.editabletypes.password = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("email", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.text), b.defaults = a.extend({}, a.fn.editabletypes.text.defaults, { tpl: '<input type="email">' }), a.fn.editabletypes.email = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("url", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.text), b.defaults = a.extend({}, a.fn.editabletypes.text.defaults, { tpl: '<input type="url">' }), a.fn.editabletypes.url = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("tel", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.text), b.defaults = a.extend({}, a.fn.editabletypes.text.defaults, { tpl: '<input type="tel">' }), a.fn.editabletypes.tel = b }(window.jQuery), function (a) {
|
6
|
+
"use strict"; var b = function (a) { this.init("number", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.text), a.extend(b.prototype, {
|
7
|
+
render: function () {
|
8
|
+
b.superclass.render.call(this),
|
9
|
+
this.setAttr("min"), this.setAttr("max"), this.setAttr("step")
|
10
|
+
}, postrender: function () { this.$clear && this.$clear.css({ right: 24 }) }
|
11
|
+
}), b.defaults = a.extend({}, a.fn.editabletypes.text.defaults, { tpl: '<input type="number">', inputclass: "input-mini", min: null, max: null, step: null }), a.fn.editabletypes.number = b
|
12
|
+
}(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("range", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.number), a.extend(b.prototype, { render: function () { this.$input = this.$tpl.filter("input"), this.setClass(), this.setAttr("min"), this.setAttr("max"), this.setAttr("step"), this.$input.on("input", function () { a(this).siblings("output").text(a(this).val()) }) }, activate: function () { this.$input.focus() } }), b.defaults = a.extend({}, a.fn.editabletypes.number.defaults, { tpl: '<input type="range"><output style="width: 30px; display: inline-block"></output>', inputclass: "input-medium" }), a.fn.editabletypes.range = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("time", a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { render: function () { this.setClass() } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: '<input type="time">' }), a.fn.editabletypes.time = b }(window.jQuery), function (a) { "use strict"; var b = function (c) { if (this.init("select2", c, b.defaults), c.select2 = c.select2 || {}, this.sourceData = null, c.placeholder && (c.select2.placeholder = c.placeholder), !c.select2.tags && c.source) { var d = c.source; a.isFunction(c.source) && (d = c.source.call(c.scope)), "string" == typeof d ? (c.select2.ajax = c.select2.ajax || {}, c.select2.ajax.data || (c.select2.ajax.data = function (a) { return { query: a } }), c.select2.ajax.results || (c.select2.ajax.results = function (a) { return { results: a } }), c.select2.ajax.url = d) : (this.sourceData = this.convertSource(d), c.select2.data = this.sourceData) } if (this.options.select2 = a.extend({}, b.defaults.select2, c.select2), this.isMultiple = this.options.select2.tags || this.options.select2.multiple, this.isRemote = "ajax" in this.options.select2, this.idFunc = this.options.select2.id, "function" != typeof this.idFunc) { var e = this.idFunc || "id"; this.idFunc = function (a) { return a[e] } } this.formatSelection = this.options.select2.formatSelection, "function" != typeof this.formatSelection && (this.formatSelection = function (a) { return a.text }) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { render: function () { this.setClass(), this.isRemote && this.$input.on("select2-loaded", a.proxy(function (a) { this.sourceData = a.items.results }, this)), this.isMultiple && this.$input.on("change", function () { a(this).closest("form").parent().triggerHandler("resize") }) }, value2html: function (c, d) { var e, f = "", g = this; this.options.select2.tags ? e = c : this.sourceData && (e = a.fn.editableutils.itemsByValue(c, this.sourceData, this.idFunc)), a.isArray(e) ? (f = [], a.each(e, function (a, b) { f.push(b && "object" == typeof b ? g.formatSelection(b) : b) })) : e && (f = g.formatSelection(e)), f = a.isArray(f) ? f.join(this.options.viewseparator) : f, b.superclass.value2html.call(this, f, d) }, html2value: function (a) { return this.options.select2.tags ? this.str2value(a, this.options.viewseparator) : null }, value2input: function (b) { if (a.isArray(b) && (b = b.join(this.getSeparator())), this.$input.data("select2") ? this.$input.val(b).trigger("change", !0) : (this.$input.val(b), this.$input.select2(this.options.select2)), this.isRemote && !this.isMultiple && !this.options.select2.initSelection) { var c = this.options.select2.id, d = this.options.select2.formatSelection; if (!c && !d) { var e = a(this.options.scope); if (!e.data("editable").isEmpty) { var f = { id: b, text: e.text() }; this.$input.select2("data", f) } } } }, input2value: function () { return this.$input.select2("val") }, str2value: function (b, c) { if ("string" != typeof b || !this.isMultiple) return b; c = c || this.getSeparator(); var d, e, f; if (null === b || b.length < 1) return null; for (d = b.split(c), e = 0, f = d.length; f > e; e += 1)d[e] = a.trim(d[e]); return d }, autosubmit: function () { this.$input.on("change", function (b, c) { c || a(this).closest("form").submit() }) }, getSeparator: function () { return this.options.select2.separator || a.fn.select2.defaults.separator }, convertSource: function (b) { if (a.isArray(b) && b.length && void 0 !== b[0].value) for (var c = 0; c < b.length; c++)void 0 !== b[c].value && (b[c].id = b[c].value, delete b[c].value); return b }, activate: function () { this.$input.select2("open") }, destroy: function () { this.$input && this.$input.data("select2") && this.$input.select2("destroy") } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: '<input type="hidden">', select2: null, placeholder: null, source: null, viewseparator: ", " }), a.fn.editabletypes.select2 = b }(window.jQuery), function (a) { var b = function (b, c) { return this.$element = a(b), this.$element.is("input") ? (this.options = a.extend({}, a.fn.combodate.defaults, c, this.$element.data()), void this.init()) : void a.error("Combodate should be applied to INPUT element") }; b.prototype = { constructor: b, init: function () { this.map = { day: ["D", "date"], month: ["M", "month"], year: ["Y", "year"], hour: ["[Hh]", "hours"], minute: ["m", "minutes"], second: ["s", "seconds"], ampm: ["[Aa]", ""] }, this.$widget = a('<span class="combodate"></span>').html(this.getTemplate()), this.initCombos(), this.datetime = null, this.$widget.on("change", "select", a.proxy(function (b) { this.$element.val(this.getValue()).change(), this.options.smartDays && (a(b.target).is(".month") || a(b.target).is(".year")) && this.fillCombo("day") }, this)), this.$widget.find("select").css("width", "auto"), this.$element.hide().after(this.$widget), this.setValue(this.$element.val() || this.options.value) }, getTemplate: function () { var b = this.options.template, c = this.$element.prop("disabled"), d = this.options.customClass; return a.each(this.map, function (a, c) { c = c[0]; var d = new RegExp(c + "+"), e = c.length > 1 ? c.substring(1, 2) : c; b = b.replace(d, "{" + e + "}") }), b = b.replace(/ /g, " "), a.each(this.map, function (a, e) { e = e[0]; var f = e.length > 1 ? e.substring(1, 2) : e; b = b.replace("{" + f + "}", '<select class="' + a + " " + d + '"' + (c ? ' disabled="disabled"' : "") + "></select>") }), b }, initCombos: function () { for (var a in this.map) { var b = this.$widget.find("." + a); this["$" + a] = b.length ? b : null, this.fillCombo(a) } }, fillCombo: function (a) { var b = this["$" + a]; if (b) { var c = "fill" + a.charAt(0).toUpperCase() + a.slice(1), d = this[c](), e = b.val(); b.empty(); for (var f = 0; f < d.length; f++)b.append('<option value="' + d[f][0] + '">' + d[f][1] + "</option>"); b.val(e) } }, fillCommon: function (a) { var b, c = []; if ("name" === this.options.firstItem) { b = moment.localeData ? moment.localeData()._relativeTime : moment.relativeTime || moment.langData()._relativeTime; var d = "function" == typeof b[a] ? b[a](1, !0, a, !1) : b[a]; d = d.split(" ").reverse()[0], c.push(["", d]) } else "empty" === this.options.firstItem && c.push(["", ""]); return c }, fillDay: function () { var a, b, c = this.fillCommon("d"), d = -1 !== this.options.template.indexOf("DD"), e = 31; if (this.options.smartDays && this.$month && this.$year) { var f = parseInt(this.$month.val(), 10), g = parseInt(this.$year.val(), 10); isNaN(f) || isNaN(g) || (e = moment([g, f]).daysInMonth()) } for (b = 1; e >= b; b++)a = d ? this.leadZero(b) : b, c.push([b, a]); return c }, fillMonth: function () { var a, b, c = this.fillCommon("M"), d = -1 !== this.options.template.indexOf("MMMMMM"), e = -1 !== this.options.template.indexOf("MMMMM"), f = -1 !== this.options.template.indexOf("MMMM"), g = -1 !== this.options.template.indexOf("MMM"), h = -1 !== this.options.template.indexOf("MM"); for (b = 0; 11 >= b; b++)a = d ? moment().date(1).month(b).format("MM - MMMM") : e ? moment().date(1).month(b).format("MM - MMM") : f ? moment().date(1).month(b).format("MMMM") : g ? moment().date(1).month(b).format("MMM") : h ? this.leadZero(b + 1) : b + 1, c.push([b, a]); return c }, fillYear: function () { var a, b, c = [], d = -1 !== this.options.template.indexOf("YYYY"); for (b = this.options.maxYear; b >= this.options.minYear; b--)a = d ? b : (b + "").substring(2), c[this.options.yearDescending ? "push" : "unshift"]([b, a]); return c = this.fillCommon("y").concat(c) }, fillHour: function () { var a, b, c = this.fillCommon("h"), d = -1 !== this.options.template.indexOf("h"), e = (-1 !== this.options.template.indexOf("H"), -1 !== this.options.template.toLowerCase().indexOf("hh")), f = d ? 1 : 0, g = d ? 12 : 23; for (b = f; g >= b; b++)a = e ? this.leadZero(b) : b, c.push([b, a]); return c }, fillMinute: function () { var a, b, c = this.fillCommon("m"), d = -1 !== this.options.template.indexOf("mm"); for (b = 0; 59 >= b; b += this.options.minuteStep)a = d ? this.leadZero(b) : b, c.push([b, a]); return c }, fillSecond: function () { var a, b, c = this.fillCommon("s"), d = -1 !== this.options.template.indexOf("ss"); for (b = 0; 59 >= b; b += this.options.secondStep)a = d ? this.leadZero(b) : b, c.push([b, a]); return c }, fillAmpm: function () { var a = -1 !== this.options.template.indexOf("a"), b = (-1 !== this.options.template.indexOf("A"), [["am", a ? "am" : "AM"], ["pm", a ? "pm" : "PM"]]); return b }, getValue: function (b) { var c, d = {}, e = this, f = !1; return a.each(this.map, function (a, b) { if ("ampm" !== a) { if (e["$" + a]) d[a] = parseInt(e["$" + a].val(), 10); else { var c; c = e.datetime ? e.datetime[b[1]]() : "day" === a ? 1 : 0, d[a] = c } return isNaN(d[a]) ? (f = !0, !1) : void 0 } }), f ? "" : (this.$ampm && (12 === d.hour ? d.hour = "am" === this.$ampm.val() ? 0 : 12 : d.hour = "am" === this.$ampm.val() ? d.hour : d.hour + 12), c = moment([d.year, d.month, d.day, d.hour, d.minute, d.second]), this.highlight(c), b = void 0 === b ? this.options.format : b, null === b ? c.isValid() ? c : null : c.isValid() ? c.format(b) : "") }, setValue: function (b) { function c(b, c) { var d = {}; return b.children("option").each(function (b, e) { var f, g = a(e).attr("value"); "" !== g && (f = Math.abs(g - c), ("undefined" == typeof d.distance || f < d.distance) && (d = { value: g, distance: f })) }), d.value } if (b) { var d = "string" == typeof b ? moment(b, this.options.format, !0) : moment(b), e = this, f = {}; d.isValid() ? (a.each(this.map, function (a, b) { "ampm" !== a && (f[a] = d[b[1]]()) }), this.$ampm && (f.hour >= 12 ? (f.ampm = "pm", f.hour > 12 && (f.hour -= 12)) : (f.ampm = "am", 0 === f.hour && (f.hour = 12))), a.each(f, function (a, b) { e["$" + a] && ("minute" === a && e.options.minuteStep > 1 && e.options.roundTime && (b = c(e["$" + a], b)), "second" === a && e.options.secondStep > 1 && e.options.roundTime && (b = c(e["$" + a], b)), e["$" + a].val(b)) }), this.options.smartDays && this.fillCombo("day"), this.$element.val(d.format(this.options.format)).change(), this.datetime = d) : this.datetime = null } }, highlight: function (a) { a.isValid() ? this.options.errorClass ? this.$widget.removeClass(this.options.errorClass) : this.$widget.find("select").css("border-color", this.borderColor) : this.options.errorClass ? this.$widget.addClass(this.options.errorClass) : (this.borderColor || (this.borderColor = this.$widget.find("select").css("border-color")), this.$widget.find("select").css("border-color", "red")) }, leadZero: function (a) { return 9 >= a ? "0" + a : a }, destroy: function () { this.$widget.remove(), this.$element.removeData("combodate").show() } }, a.fn.combodate = function (c) { var d, e = Array.apply(null, arguments); return e.shift(), "getValue" === c && this.length && (d = this.eq(0).data("combodate")) ? d.getValue.apply(d, e) : this.each(function () { var d = a(this), f = d.data("combodate"), g = "object" == typeof c && c; f || d.data("combodate", f = new b(this, g)), "string" == typeof c && "function" == typeof f[c] && f[c].apply(f, e) }) }, a.fn.combodate.defaults = { format: "DD-MM-YYYY HH:mm", template: "D / MMM / YYYY H : mm", value: null, minYear: 1970, maxYear: (new Date).getFullYear(), yearDescending: !0, minuteStep: 5, secondStep: 1, firstItem: "empty", errorClass: null, customClass: "", roundTime: !0, smartDays: !1 } }(window.jQuery), function (a) { "use strict"; var b = function (c) { this.init("combodate", c, b.defaults), this.options.viewformat || (this.options.viewformat = this.options.format), c.combodate = a.fn.editableutils.tryParseJson(c.combodate, !0), this.options.combodate = a.extend({}, b.defaults.combodate, c.combodate, { format: this.options.format, template: this.options.template }) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { render: function () { this.$input.combodate(this.options.combodate), "bs3" === a.fn.editableform.engine && this.$input.siblings().find("select").addClass("form-control"), this.options.inputclass && this.$input.siblings().find("select").addClass(this.options.inputclass) }, value2html: function (a, c) { var d = a ? a.format(this.options.viewformat) : ""; b.superclass.value2html.call(this, d, c) }, html2value: function (a) { return a ? moment(a, this.options.viewformat) : null }, value2str: function (a) { return a ? a.format(this.options.format) : "" }, str2value: function (a) { return a ? moment(a, this.options.format) : null }, value2submit: function (a) { return this.value2str(a) }, value2input: function (a) { this.$input.combodate("setValue", a) }, input2value: function () { return this.$input.combodate("getValue", null) }, activate: function () { this.$input.siblings(".combodate").find("select").eq(0).focus() }, autosubmit: function () { } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: '<input type="text">', inputclass: null, format: "YYYY-MM-DD", viewformat: null, template: "D / MMM / YYYY", combodate: null }), a.fn.editabletypes.combodate = b }(window.jQuery), function (a) { "use strict"; var b = a.fn.editableform.Constructor.prototype.initInput; a.extend(a.fn.editableform.Constructor.prototype, { initTemplate: function () { this.$form = a(a.fn.editableform.template), this.$form.find(".control-group").addClass("form-group"), this.$form.find(".editable-error-block").addClass("help-block") }, initInput: function () { b.apply(this); var c = null === this.input.options.inputclass || this.input.options.inputclass === !1, d = "form-control-sm", e = "text,select,textarea,password,email,url,tel,number,range,time,typeaheadjs".split(","); ~a.inArray(this.input.type, e) && (this.input.$input.addClass("form-control"), c && (this.input.options.inputclass = d, this.input.$input.addClass(d))); for (var f = this.$form.find(".editable-buttons"), g = c ? [d] : this.input.options.inputclass.split(" "), h = 0; h < g.length; h++)"input-lg" === g[h].toLowerCase() && f.find("button").removeClass("btn-sm").addClass("btn-lg") } }), a.fn.editableform.buttons = '<button type="submit" class="btn btn-primary btn-sm editable-submit"><i class="fa fa-check" aria-hidden="true"></i></button><button type="button" class="btn btn-default btn-sm editable-cancel"><i class="fa fa-times" aria-hidden="true"></i></button>', a.fn.editableform.errorGroupClass = "has-error", a.fn.editableform.errorBlockClass = null, a.fn.editableform.engine = "bs4" }(window.jQuery), function (a) { "use strict"; a.extend(a.fn.editableContainer.Popup.prototype, { containerName: "popover", containerDataName: "bs.popover", innerCss: ".popover-body", defaults: a.fn.popover.Constructor.DEFAULTS, initContainer: function () { a.extend(this.containerOptions, { trigger: "manual", selector: !1, content: " ", template: this.defaults.template }); var b; this.$element.data("template") && (b = this.$element.data("template"), this.$element.removeData("template")), this.call(this.containerOptions), b && this.$element.data("template", b) }, innerShow: function () { this.call("show") }, innerHide: function () { this.call("hide") }, innerDestroy: function () { this.call("dispose") }, setContainerOption: function (a, b) { this.container().options[a] = b }, setPosition: function () { (function () { }).call(this.container()) }, tip: function () { return this.container() ? a(this.container().tip) : null } }) }(window.jQuery), function (a) {
|
13
|
+
function b() { return new Date(Date.UTC.apply(Date, arguments)) } function c(b, c) { var d, e = a(b).data(), f = {}, g = new RegExp("^" + c.toLowerCase() + "([A-Z])"), c = new RegExp("^" + c.toLowerCase()); for (var h in e) c.test(h) && (d = h.replace(g, function (a, b) { return b.toLowerCase() }), f[d] = e[h]); return f } function d(b) { var c = {}; if (k[b] || (b = b.split("-")[0], k[b])) { var d = k[b]; return a.each(j, function (a, b) { b in d && (c[b] = d[b]) }), c } } var e = function (b, c) { this._process_options(c), this.element = a(b), this.isInline = !1, this.isInput = this.element.is("input"), this.component = this.element.is(".date") ? this.element.find(".add-on, .btn") : !1, this.hasInput = this.component && this.element.find("input").length, this.component && 0 === this.component.length && (this.component = !1), this.picker = a(l.template), this._buildEvents(), this._attachEvents(), this.isInline ? this.picker.addClass("datepicker-inline").appendTo(this.element) : this.picker.addClass("datepicker-dropdown dropdown-menu"), this.o.rtl && (this.picker.addClass("datepicker-rtl"), this.picker.find(".prev i, .next i").toggleClass("icon-arrow-left icon-arrow-right")), this.viewMode = this.o.startView, this.o.calendarWeeks && this.picker.find("tfoot th.today").attr("colspan", function (a, b) { return parseInt(b) + 1 }), this._allow_update = !1, this.setStartDate(this.o.startDate), this.setEndDate(this.o.endDate), this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled), this.fillDow(), this.fillMonths(), this._allow_update = !0, this.update(), this.showMode(), this.isInline && this.show() }; e.prototype = { constructor: e, _process_options: function (b) { this._o = a.extend({}, this._o, b); var c = this.o = a.extend({}, this._o), d = c.language; switch (k[d] || (d = d.split("-")[0], k[d] || (d = i.language)), c.language = d, c.startView) { case 2: case "decade": c.startView = 2; break; case 1: case "year": c.startView = 1; break; default: c.startView = 0 }switch (c.minViewMode) { case 1: case "months": c.minViewMode = 1; break; case 2: case "years": c.minViewMode = 2; break; default: c.minViewMode = 0 }c.startView = Math.max(c.startView, c.minViewMode), c.weekStart %= 7, c.weekEnd = (c.weekStart + 6) % 7; var e = l.parseFormat(c.format); c.startDate !== -(1 / 0) && (c.startDate = l.parseDate(c.startDate, e, c.language)), c.endDate !== 1 / 0 && (c.endDate = l.parseDate(c.endDate, e, c.language)), c.daysOfWeekDisabled = c.daysOfWeekDisabled || [], a.isArray(c.daysOfWeekDisabled) || (c.daysOfWeekDisabled = c.daysOfWeekDisabled.split(/[,\s]*/)), c.daysOfWeekDisabled = a.map(c.daysOfWeekDisabled, function (a) { return parseInt(a, 10) }) }, _events: [], _secondaryEvents: [], _applyEvents: function (a) { for (var b, c, d = 0; d < a.length; d++)b = a[d][0], c = a[d][1], b.on(c) }, _unapplyEvents: function (a) { for (var b, c, d = 0; d < a.length; d++)b = a[d][0], c = a[d][1], b.off(c) }, _buildEvents: function () { this.isInput ? this._events = [[this.element, { focus: a.proxy(this.show, this), keyup: a.proxy(this.update, this), keydown: a.proxy(this.keydown, this) }]] : this.component && this.hasInput ? this._events = [[this.element.find("input"), { focus: a.proxy(this.show, this), keyup: a.proxy(this.update, this), keydown: a.proxy(this.keydown, this) }], [this.component, { click: a.proxy(this.show, this) }]] : this.element.is("div") ? this.isInline = !0 : this._events = [[this.element, { click: a.proxy(this.show, this) }]], this._secondaryEvents = [[this.picker, { click: a.proxy(this.click, this) }], [a(window), { resize: a.proxy(this.place, this) }], [a(document), { mousedown: a.proxy(function (a) { this.element.is(a.target) || this.element.find(a.target).size() || this.picker.is(a.target) || this.picker.find(a.target).size() || this.hide() }, this) }]] }, _attachEvents: function () { this._detachEvents(), this._applyEvents(this._events) }, _detachEvents: function () { this._unapplyEvents(this._events) }, _attachSecondaryEvents: function () { this._detachSecondaryEvents(), this._applyEvents(this._secondaryEvents) }, _detachSecondaryEvents: function () { this._unapplyEvents(this._secondaryEvents) }, _trigger: function (b, c) { var d = c || this.date, e = new Date(d.getTime() + 6e4 * d.getTimezoneOffset()); this.element.trigger({ type: b, date: e, format: a.proxy(function (a) { var b = a || this.o.format; return l.formatDate(d, b, this.o.language) }, this) }) }, show: function (a) { this.isInline || this.picker.appendTo("body"), this.picker.show(), this.height = this.component ? this.component.outerHeight() : this.element.outerHeight(), this.place(), this._attachSecondaryEvents(), a && a.preventDefault(), this._trigger("show") }, hide: function (a) { this.isInline || this.picker.is(":visible") && (this.picker.hide().detach(), this._detachSecondaryEvents(), this.viewMode = this.o.startView, this.showMode(), this.o.forceParse && (this.isInput && this.element.val() || this.hasInput && this.element.find("input").val()) && this.setValue(), this._trigger("hide")) }, remove: function () { this.hide(), this._detachEvents(), this._detachSecondaryEvents(), this.picker.remove(), delete this.element.data().datepicker, this.isInput || delete this.element.data().date }, getDate: function () { var a = this.getUTCDate(); return new Date(a.getTime() + 6e4 * a.getTimezoneOffset()) }, getUTCDate: function () { return this.date }, setDate: function (a) { this.setUTCDate(new Date(a.getTime() - 6e4 * a.getTimezoneOffset())) }, setUTCDate: function (a) { this.date = a, this.setValue() }, setValue: function () { var a = this.getFormattedDate(); this.isInput ? this.element.val(a) : this.component && this.element.find("input").val(a) }, getFormattedDate: function (a) { return void 0 === a && (a = this.o.format), l.formatDate(this.date, a, this.o.language) }, setStartDate: function (a) { this._process_options({ startDate: a }), this.update(), this.updateNavArrows() }, setEndDate: function (a) { this._process_options({ endDate: a }), this.update(), this.updateNavArrows() }, setDaysOfWeekDisabled: function (a) { this._process_options({ daysOfWeekDisabled: a }), this.update(), this.updateNavArrows() }, place: function () { if (!this.isInline) { var b = parseInt(this.element.parents().filter(function () { return "auto" != a(this).css("z-index") }).first().css("z-index")) + 10, c = this.component ? this.component.parent().offset() : this.element.offset(), d = this.component ? this.component.outerHeight(!0) : this.element.outerHeight(!0); this.picker.css({ top: c.top + d, left: c.left, zIndex: b }) } }, _allow_update: !0, update: function () { if (this._allow_update) { var a, b = !1; arguments && arguments.length && ("string" == typeof arguments[0] || arguments[0] instanceof Date) ? (a = arguments[0], b = !0) : (a = this.isInput ? this.element.val() : this.element.data("date") || this.element.find("input").val(), delete this.element.data().date), this.date = l.parseDate(a, this.o.format, this.o.language), b && this.setValue(), this.date < this.o.startDate ? this.viewDate = new Date(this.o.startDate) : this.date > this.o.endDate ? this.viewDate = new Date(this.o.endDate) : this.viewDate = new Date(this.date), this.fill() } }, fillDow: function () { var a = this.o.weekStart, b = "<tr>"; if (this.o.calendarWeeks) { var c = '<th class="cw"> </th>'; b += c, this.picker.find(".datepicker-days thead tr:first-child").prepend(c) } for (; a < this.o.weekStart + 7;)b += '<th class="dow">' + k[this.o.language].daysMin[a++ % 7] + "</th>"; b += "</tr>", this.picker.find(".datepicker-days thead").append(b) }, fillMonths: function () { for (var a = "", b = 0; 12 > b;)a += '<span class="month">' + k[this.o.language].monthsShort[b++] + "</span>"; this.picker.find(".datepicker-months td").html(a) }, setRange: function (b) { b && b.length ? this.range = a.map(b, function (a) { return a.valueOf() }) : delete this.range, this.fill() }, getClassNames: function (b) { var c = [], d = this.viewDate.getUTCFullYear(), e = this.viewDate.getUTCMonth(), f = this.date.valueOf(), g = new Date; return b.getUTCFullYear() < d || b.getUTCFullYear() == d && b.getUTCMonth() < e ? c.push("old") : (b.getUTCFullYear() > d || b.getUTCFullYear() == d && b.getUTCMonth() > e) && c.push("new"), this.o.todayHighlight && b.getUTCFullYear() == g.getFullYear() && b.getUTCMonth() == g.getMonth() && b.getUTCDate() == g.getDate() && c.push("today"), f && b.valueOf() == f && c.push("active"), (b.valueOf() < this.o.startDate || b.valueOf() > this.o.endDate || -1 !== a.inArray(b.getUTCDay(), this.o.daysOfWeekDisabled)) && c.push("disabled"), this.range && (b > this.range[0] && b < this.range[this.range.length - 1] && c.push("range"), -1 != a.inArray(b.valueOf(), this.range) && c.push("selected")), c }, fill: function () { var c, d = new Date(this.viewDate), e = d.getUTCFullYear(), f = d.getUTCMonth(), g = this.o.startDate !== -(1 / 0) ? this.o.startDate.getUTCFullYear() : -(1 / 0), h = this.o.startDate !== -(1 / 0) ? this.o.startDate.getUTCMonth() : -(1 / 0), i = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCFullYear() : 1 / 0, j = this.o.endDate !== 1 / 0 ? this.o.endDate.getUTCMonth() : 1 / 0; this.date && this.date.valueOf(); this.picker.find(".datepicker-days thead th.datepicker-switch").text(k[this.o.language].months[f] + " " + e), this.picker.find("tfoot th.today").text(k[this.o.language].today).toggle(this.o.todayBtn !== !1), this.picker.find("tfoot th.clear").text(k[this.o.language].clear).toggle(this.o.clearBtn !== !1), this.updateNavArrows(), this.fillMonths(); var m = b(e, f - 1, 28, 0, 0, 0, 0), n = l.getDaysInMonth(m.getUTCFullYear(), m.getUTCMonth()); m.setUTCDate(n), m.setUTCDate(n - (m.getUTCDay() - this.o.weekStart + 7) % 7); var o = new Date(m); o.setUTCDate(o.getUTCDate() + 42), o = o.valueOf(); for (var p, q = []; m.valueOf() < o;) { if (m.getUTCDay() == this.o.weekStart && (q.push("<tr>"), this.o.calendarWeeks)) { var r = new Date(+m + (this.o.weekStart - m.getUTCDay() - 7) % 7 * 864e5), s = new Date(+r + (11 - r.getUTCDay()) % 7 * 864e5), t = new Date(+(t = b(s.getUTCFullYear(), 0, 1)) + (11 - t.getUTCDay()) % 7 * 864e5), u = (s - t) / 864e5 / 7 + 1; q.push('<td class="cw">' + u + "</td>") } p = this.getClassNames(m), p.push("day"); var v = this.o.beforeShowDay(m); void 0 === v ? v = {} : "boolean" == typeof v ? v = { enabled: v } : "string" == typeof v && (v = { classes: v }), v.enabled === !1 && p.push("disabled"), v.classes && (p = p.concat(v.classes.split(/\s+/))), v.tooltip && (c = v.tooltip), p = a.unique(p), q.push('<td class="' + p.join(" ") + '"' + (c ? ' title="' + c + '"' : "") + ">" + m.getUTCDate() + "</td>"), m.getUTCDay() == this.o.weekEnd && q.push("</tr>"), m.setUTCDate(m.getUTCDate() + 1) } this.picker.find(".datepicker-days tbody").empty().append(q.join("")); var w = this.date && this.date.getUTCFullYear(), x = this.picker.find(".datepicker-months").find("th:eq(1)").text(e).end().find("span").removeClass("active"); w && w == e && x.eq(this.date.getUTCMonth()).addClass("active"), (g > e || e > i) && x.addClass("disabled"), e == g && x.slice(0, h).addClass("disabled"), e == i && x.slice(j + 1).addClass("disabled"), q = "", e = 10 * parseInt(e / 10, 10); var y = this.picker.find(".datepicker-years").find("th:eq(1)").text(e + "-" + (e + 9)).end().find("td"); e -= 1; for (var z = -1; 11 > z; z++)q += '<span class="year' + (-1 == z ? " old" : 10 == z ? " new" : "") + (w == e ? " active" : "") + (g > e || e > i ? " disabled" : "") + '">' + e + "</span>", e += 1; y.html(q) }, updateNavArrows: function () { if (this._allow_update) { var a = new Date(this.viewDate), b = a.getUTCFullYear(), c = a.getUTCMonth(); switch (this.viewMode) { case 0: this.o.startDate !== -(1 / 0) && b <= this.o.startDate.getUTCFullYear() && c <= this.o.startDate.getUTCMonth() ? this.picker.find(".prev").css({ visibility: "hidden" }) : this.picker.find(".prev").css({ visibility: "visible" }), this.o.endDate !== 1 / 0 && b >= this.o.endDate.getUTCFullYear() && c >= this.o.endDate.getUTCMonth() ? this.picker.find(".next").css({ visibility: "hidden" }) : this.picker.find(".next").css({ visibility: "visible" }); break; case 1: case 2: this.o.startDate !== -(1 / 0) && b <= this.o.startDate.getUTCFullYear() ? this.picker.find(".prev").css({ visibility: "hidden" }) : this.picker.find(".prev").css({ visibility: "visible" }), this.o.endDate !== 1 / 0 && b >= this.o.endDate.getUTCFullYear() ? this.picker.find(".next").css({ visibility: "hidden" }) : this.picker.find(".next").css({ visibility: "visible" }) } } }, click: function (c) { c.preventDefault(); var d = a(c.target).closest("span, td, th"); if (1 == d.length) switch (d[0].nodeName.toLowerCase()) { case "th": switch (d[0].className) { case "datepicker-switch": this.showMode(1); break; case "prev": case "next": var e = l.modes[this.viewMode].navStep * ("prev" == d[0].className ? -1 : 1); switch (this.viewMode) { case 0: this.viewDate = this.moveMonth(this.viewDate, e); break; case 1: case 2: this.viewDate = this.moveYear(this.viewDate, e) }this.fill(); break; case "today": var f = new Date; f = b(f.getFullYear(), f.getMonth(), f.getDate(), 0, 0, 0), this.showMode(-2); var g = "linked" == this.o.todayBtn ? null : "view"; this._setDate(f, g); break; case "clear": var h; this.isInput ? h = this.element : this.component && (h = this.element.find("input")), h && h.val("").change(), this._trigger("changeDate"), this.update(), this.o.autoclose && this.hide() }break; case "span": if (!d.is(".disabled")) { if (this.viewDate.setUTCDate(1), d.is(".month")) { var i = 1, j = d.parent().find("span").index(d), k = this.viewDate.getUTCFullYear(); this.viewDate.setUTCMonth(j), this._trigger("changeMonth", this.viewDate), 1 === this.o.minViewMode && this._setDate(b(k, j, i, 0, 0, 0, 0)) } else { var k = parseInt(d.text(), 10) || 0, i = 1, j = 0; this.viewDate.setUTCFullYear(k), this._trigger("changeYear", this.viewDate), 2 === this.o.minViewMode && this._setDate(b(k, j, i, 0, 0, 0, 0)) } this.showMode(-1), this.fill() } break; case "td": if (d.is(".day") && !d.is(".disabled")) { var i = parseInt(d.text(), 10) || 1, k = this.viewDate.getUTCFullYear(), j = this.viewDate.getUTCMonth(); d.is(".old") ? 0 === j ? (j = 11, k -= 1) : j -= 1 : d.is(".new") && (11 == j ? (j = 0, k += 1) : j += 1), this._setDate(b(k, j, i, 0, 0, 0, 0)) } } }, _setDate: function (a, b) { b && "date" != b || (this.date = new Date(a)), b && "view" != b || (this.viewDate = new Date(a)), this.fill(), this.setValue(), this._trigger("changeDate"); var c; this.isInput ? c = this.element : this.component && (c = this.element.find("input")), c && (c.change(), !this.o.autoclose || b && "date" != b || this.hide()) }, moveMonth: function (a, b) { if (!b) return a; var c, d, e = new Date(a.valueOf()), f = e.getUTCDate(), g = e.getUTCMonth(), h = Math.abs(b); if (b = b > 0 ? 1 : -1, 1 == h) d = -1 == b ? function () { return e.getUTCMonth() == g } : function () { return e.getUTCMonth() != c }, c = g + b, e.setUTCMonth(c), (0 > c || c > 11) && (c = (c + 12) % 12); else { for (var i = 0; h > i; i++)e = this.moveMonth(e, b); c = e.getUTCMonth(), e.setUTCDate(f), d = function () { return c != e.getUTCMonth() } } for (; d();)e.setUTCDate(--f), e.setUTCMonth(c); return e }, moveYear: function (a, b) { return this.moveMonth(a, 12 * b) }, dateWithinRange: function (a) { return a >= this.o.startDate && a <= this.o.endDate }, keydown: function (a) { if (this.picker.is(":not(:visible)")) return void (27 == a.keyCode && this.show()); var b, c, d, e = !1; switch (a.keyCode) { case 27: this.hide(), a.preventDefault(); break; case 37: case 39: if (!this.o.keyboardNavigation) break; b = 37 == a.keyCode ? -1 : 1, a.ctrlKey ? (c = this.moveYear(this.date, b), d = this.moveYear(this.viewDate, b)) : a.shiftKey ? (c = this.moveMonth(this.date, b), d = this.moveMonth(this.viewDate, b)) : (c = new Date(this.date), c.setUTCDate(this.date.getUTCDate() + b), d = new Date(this.viewDate), d.setUTCDate(this.viewDate.getUTCDate() + b)), this.dateWithinRange(c) && (this.date = c, this.viewDate = d, this.setValue(), this.update(), a.preventDefault(), e = !0); break; case 38: case 40: if (!this.o.keyboardNavigation) break; b = 38 == a.keyCode ? -1 : 1, a.ctrlKey ? (c = this.moveYear(this.date, b), d = this.moveYear(this.viewDate, b)) : a.shiftKey ? (c = this.moveMonth(this.date, b), d = this.moveMonth(this.viewDate, b)) : (c = new Date(this.date), c.setUTCDate(this.date.getUTCDate() + 7 * b), d = new Date(this.viewDate), d.setUTCDate(this.viewDate.getUTCDate() + 7 * b)), this.dateWithinRange(c) && (this.date = c, this.viewDate = d, this.setValue(), this.update(), a.preventDefault(), e = !0); break; case 13: this.hide(), a.preventDefault(); break; case 9: this.hide() }if (e) { this._trigger("changeDate"); var f; this.isInput ? f = this.element : this.component && (f = this.element.find("input")), f && f.change() } }, showMode: function (a) { a && (this.viewMode = Math.max(this.o.minViewMode, Math.min(2, this.viewMode + a))), this.picker.find(">div").hide().filter(".datepicker-" + l.modes[this.viewMode].clsName).css("display", "block"), this.updateNavArrows() } }; var f = function (b, c) { this.element = a(b), this.inputs = a.map(c.inputs, function (a) { return a.jquery ? a[0] : a }), delete c.inputs, a(this.inputs).datepicker(c).bind("changeDate", a.proxy(this.dateUpdated, this)), this.pickers = a.map(this.inputs, function (b) { return a(b).data("datepicker") }), this.updateDates() }; f.prototype = { updateDates: function () { this.dates = a.map(this.pickers, function (a) { return a.date }), this.updateRanges() }, updateRanges: function () { var b = a.map(this.dates, function (a) { return a.valueOf() }); a.each(this.pickers, function (a, c) { c.setRange(b) }) }, dateUpdated: function (b) { var c = a(b.target).data("datepicker"), d = c.getUTCDate(), e = a.inArray(b.target, this.inputs), f = this.inputs.length; if (-1 != e) { if (d < this.dates[e]) for (; e >= 0 && d < this.dates[e];)this.pickers[e--].setUTCDate(d); else if (d > this.dates[e]) for (; f > e && d > this.dates[e];)this.pickers[e++].setUTCDate(d); this.updateDates() } }, remove: function () { a.map(this.pickers, function (a) { a.remove() }), delete this.element.data().datepicker } }; var g = a.fn.datepicker, h = a.fn.datepicker = function (b) { var g = Array.apply(null, arguments); g.shift(); var h; return this.each(function () { var j = a(this), k = j.data("datepicker"), l = "object" == typeof b && b; if (!k) { var m = c(this, "date"), n = a.extend({}, i, m, l), o = d(n.language), p = a.extend({}, i, o, m, l); if (j.is(".input-daterange") || p.inputs) { var q = { inputs: p.inputs || j.find("input").toArray() }; j.data("datepicker", k = new f(this, a.extend(p, q))) } else j.data("datepicker", k = new e(this, p)) } return "string" == typeof b && "function" == typeof k[b] && (h = k[b].apply(k, g), void 0 !== h) ? !1 : void 0 }), void 0 !== h ? h : this }, i = a.fn.datepicker.defaults = { autoclose: !1, beforeShowDay: a.noop, calendarWeeks: !1, clearBtn: !1, daysOfWeekDisabled: [], endDate: 1 / 0, forceParse: !0, format: "mm/dd/yyyy", keyboardNavigation: !0, language: "en", minViewMode: 0, rtl: !1, startDate: -(1 / 0), startView: 0, todayBtn: !1, todayHighlight: !1, weekStart: 0 }, j = a.fn.datepicker.locale_opts = ["format", "rtl", "weekStart"]; a.fn.datepicker.Constructor = e; var k = a.fn.datepicker.dates = {
|
14
|
+
en: {
|
15
|
+
days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"], daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"], months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
|
16
|
+
monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], today: "Today", clear: "Clear"
|
17
|
+
}
|
18
|
+
}, l = { modes: [{ clsName: "days", navFnc: "Month", navStep: 1 }, { clsName: "months", navFnc: "FullYear", navStep: 1 }, { clsName: "years", navFnc: "FullYear", navStep: 10 }], isLeapYear: function (a) { return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0 }, getDaysInMonth: function (a, b) { return [31, l.isLeapYear(a) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][b] }, validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g, nonpunctuation: /[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g, parseFormat: function (a) { var b = a.replace(this.validParts, "\x00").split("\x00"), c = a.match(this.validParts); if (!b || !b.length || !c || 0 === c.length) throw new Error("Invalid date format."); return { separators: b, parts: c } }, parseDate: function (c, d, f) { if (c instanceof Date) return c; if ("string" == typeof d && (d = l.parseFormat(d)), /^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(c)) { var g, h, i = /([\-+]\d+)([dmwy])/, j = c.match(/([\-+]\d+)([dmwy])/g); c = new Date; for (var m = 0; m < j.length; m++)switch (g = i.exec(j[m]), h = parseInt(g[1]), g[2]) { case "d": c.setUTCDate(c.getUTCDate() + h); break; case "m": c = e.prototype.moveMonth.call(e.prototype, c, h); break; case "w": c.setUTCDate(c.getUTCDate() + 7 * h); break; case "y": c = e.prototype.moveYear.call(e.prototype, c, h) }return b(c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate(), 0, 0, 0) } var n, o, g, j = c && c.match(this.nonpunctuation) || [], c = new Date, p = {}, q = ["yyyy", "yy", "M", "MM", "m", "mm", "d", "dd"], r = { yyyy: function (a, b) { return a.setUTCFullYear(b) }, yy: function (a, b) { return a.setUTCFullYear(2e3 + b) }, m: function (a, b) { for (b -= 1; 0 > b;)b += 12; for (b %= 12, a.setUTCMonth(b); a.getUTCMonth() != b;)a.setUTCDate(a.getUTCDate() - 1); return a }, d: function (a, b) { return a.setUTCDate(b) } }; r.M = r.MM = r.mm = r.m, r.dd = r.d, c = b(c.getFullYear(), c.getMonth(), c.getDate(), 0, 0, 0); var s = d.parts.slice(); if (j.length != s.length && (s = a(s).filter(function (b, c) { return -1 !== a.inArray(c, q) }).toArray()), j.length == s.length) { for (var m = 0, t = s.length; t > m; m++) { if (n = parseInt(j[m], 10), g = s[m], isNaN(n)) switch (g) { case "MM": o = a(k[f].months).filter(function () { var a = this.slice(0, j[m].length), b = j[m].slice(0, a.length); return a == b }), n = a.inArray(o[0], k[f].months) + 1; break; case "M": o = a(k[f].monthsShort).filter(function () { var a = this.slice(0, j[m].length), b = j[m].slice(0, a.length); return a == b }), n = a.inArray(o[0], k[f].monthsShort) + 1 }p[g] = n } for (var u, m = 0; m < q.length; m++)u = q[m], u in p && !isNaN(p[u]) && r[u](c, p[u]) } return c }, formatDate: function (b, c, d) { "string" == typeof c && (c = l.parseFormat(c)); var e = { d: b.getUTCDate(), D: k[d].daysShort[b.getUTCDay()], DD: k[d].days[b.getUTCDay()], m: b.getUTCMonth() + 1, M: k[d].monthsShort[b.getUTCMonth()], MM: k[d].months[b.getUTCMonth()], yy: b.getUTCFullYear().toString().substring(2), yyyy: b.getUTCFullYear() }; e.dd = (e.d < 10 ? "0" : "") + e.d, e.mm = (e.m < 10 ? "0" : "") + e.m; for (var b = [], f = a.extend([], c.separators), g = 0, h = c.parts.length; h >= g; g++)f.length && b.push(f.shift()), b.push(e[c.parts[g]]); return b.join("") }, headTemplate: '<thead><tr><th class="prev"><i class="icon-arrow-left"/></th><th colspan="5" class="datepicker-switch"></th><th class="next"><i class="icon-arrow-right"/></th></tr></thead>', contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>', footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>' }; l.template = '<div class="datepicker"><div class="datepicker-days"><table class=" table-condensed">' + l.headTemplate + "<tbody></tbody>" + l.footTemplate + '</table></div><div class="datepicker-months"><table class="table-condensed">' + l.headTemplate + l.contTemplate + l.footTemplate + '</table></div><div class="datepicker-years"><table class="table-condensed">' + l.headTemplate + l.contTemplate + l.footTemplate + "</table></div></div>", a.fn.datepicker.DPGlobal = l, a.fn.datepicker.noConflict = function () { return a.fn.datepicker = g, this }, a(document).on("focus.datepicker.data-api click.datepicker.data-api", '[data-provide="datepicker"]', function (b) { var c = a(this); c.data("datepicker") || (b.preventDefault(), h.call(c, "show")) }), a(function () { h.call(a('[data-provide="datepicker-inline"]')) })
|
19
|
+
}(window.jQuery), function (a) { "use strict"; a.fn.bdatepicker = a.fn.datepicker.noConflict(), a.fn.datepicker || (a.fn.datepicker = a.fn.bdatepicker); var b = function (a) { this.init("date", a, b.defaults), this.initPicker(a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { initPicker: function (b, c) { this.options.viewformat || (this.options.viewformat = this.options.format), b.datepicker = a.fn.editableutils.tryParseJson(b.datepicker, !0), this.options.datepicker = a.extend({}, c.datepicker, b.datepicker, { format: this.options.viewformat }), this.options.datepicker.language = this.options.datepicker.language || "en", this.dpg = a.fn.bdatepicker.DPGlobal, this.parsedFormat = this.dpg.parseFormat(this.options.format), this.parsedViewFormat = this.dpg.parseFormat(this.options.viewformat) }, render: function () { this.$input.bdatepicker(this.options.datepicker), this.options.clear && (this.$clear = a('<a href="#"></a>').html(this.options.clear).click(a.proxy(function (a) { a.preventDefault(), a.stopPropagation(), this.clear() }, this)), this.$tpl.parent().append(a('<div class="editable-clear">').append(this.$clear))) }, value2html: function (a, c) { var d = a ? this.dpg.formatDate(a, this.parsedViewFormat, this.options.datepicker.language) : ""; b.superclass.value2html.call(this, d, c) }, html2value: function (a) { return this.parseDate(a, this.parsedViewFormat) }, value2str: function (a) { return a ? this.dpg.formatDate(a, this.parsedFormat, this.options.datepicker.language) : "" }, str2value: function (a) { return this.parseDate(a, this.parsedFormat) }, value2submit: function (a) { return this.value2str(a) }, value2input: function (a) { this.$input.bdatepicker("update", a) }, input2value: function () { return this.$input.data("datepicker").date }, activate: function () { }, clear: function () { this.$input.data("datepicker").date = null, this.$input.find(".active").removeClass("active"), this.options.showbuttons || this.$input.closest("form").submit() }, autosubmit: function () { this.$input.on("mouseup", ".day", function (b) { if (!a(b.currentTarget).is(".old") && !a(b.currentTarget).is(".new")) { var c = a(this).closest("form"); setTimeout(function () { c.submit() }, 200) } }) }, parseDate: function (a, b) { var c, d = null; return a && (d = this.dpg.parseDate(a, b, this.options.datepicker.language), "string" == typeof a && (c = this.dpg.formatDate(d, b, this.options.datepicker.language), a !== c && (d = null))), d } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: '<div class="editable-date well"></div>', inputclass: null, format: "yyyy-mm-dd", viewformat: null, datepicker: { weekStart: 0, startView: 0, minViewMode: 0, autoclose: !1 }, clear: "× clear" }), a.fn.editabletypes.date = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("datefield", a, b.defaults), this.initPicker(a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.date), a.extend(b.prototype, { render: function () { this.$input = this.$tpl.find("input"), this.setClass(), this.setAttr("placeholder"), this.$input.bdatepicker(this.options.datepicker), this.$input.off("focus keydown"), this.$input.keyup(a.proxy(function () { this.$tpl.removeData("date"), this.$tpl.bdatepicker("update") }, this)) }, value2input: function (a) { this.$input.val(a ? this.dpg.formatDate(a, this.parsedViewFormat, this.options.datepicker.language) : ""), this.$tpl.bdatepicker("update") }, input2value: function () { return this.html2value(this.$input.val()) }, activate: function () { a.fn.editabletypes.text.prototype.activate.call(this) }, autosubmit: function () { } }), b.defaults = a.extend({}, a.fn.editabletypes.date.defaults, { tpl: '<div class="input-append date"><input type="text"/><span class="add-on"><i class="icon-th"></i></span></div>', inputclass: "input-small", datepicker: { weekStart: 0, startView: 0, minViewMode: 0, autoclose: !0 } }), a.fn.editabletypes.datefield = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("datetime", a, b.defaults), this.initPicker(a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.abstractinput), a.extend(b.prototype, { initPicker: function (b, c) { this.options.viewformat || (this.options.viewformat = this.options.format), b.datetimepicker = a.fn.editableutils.tryParseJson(b.datetimepicker, !0), this.options.datetimepicker = a.extend({}, c.datetimepicker, b.datetimepicker, { format: this.options.viewformat }), this.options.datetimepicker.language = this.options.datetimepicker.language || "en", this.dpg = a.fn.datetimepicker.DPGlobal, this.parsedFormat = this.dpg.parseFormat(this.options.format, this.options.formatType), this.parsedViewFormat = this.dpg.parseFormat(this.options.viewformat, this.options.formatType) }, render: function () { this.$input.datetimepicker(this.options.datetimepicker), this.$input.on("changeMode", function (b) { var c = a(this).closest("form").parent(); setTimeout(function () { c.triggerHandler("resize") }, 0) }), this.options.clear && (this.$clear = a('<a href="#"></a>').html(this.options.clear).click(a.proxy(function (a) { a.preventDefault(), a.stopPropagation(), this.clear() }, this)), this.$tpl.parent().append(a('<div class="editable-clear">').append(this.$clear))) }, value2html: function (a, c) { var d = a ? this.dpg.formatDate(this.toUTC(a), this.parsedViewFormat, this.options.datetimepicker.language, this.options.formatType) : ""; return c ? void b.superclass.value2html.call(this, d, c) : d }, html2value: function (a) { var b = this.parseDate(a, this.parsedViewFormat); return b ? this.fromUTC(b) : null }, value2str: function (a) { return a ? this.dpg.formatDate(this.toUTC(a), this.parsedFormat, this.options.datetimepicker.language, this.options.formatType) : "" }, str2value: function (a) { var b = this.parseDate(a, this.parsedFormat); return b ? this.fromUTC(b) : null }, value2submit: function (a) { return this.value2str(a) }, value2input: function (a) { a && this.$input.data("datetimepicker").setDate(a) }, input2value: function () { var a = this.$input.data("datetimepicker"); return a.date ? a.getDate() : null }, activate: function () { }, clear: function () { this.$input.data("datetimepicker").date = null, this.$input.find(".active").removeClass("active"), this.options.showbuttons || this.$input.closest("form").submit() }, autosubmit: function () { this.$input.on("mouseup", ".minute", function (b) { var c = a(this).closest("form"); setTimeout(function () { c.submit() }, 200) }) }, toUTC: function (a) { return a ? new Date(a.valueOf() - 6e4 * a.getTimezoneOffset()) : a }, fromUTC: function (a) { return a ? new Date(a.valueOf() + 6e4 * a.getTimezoneOffset()) : a }, parseDate: function (a, b) { var c, d = null; return a && (d = this.dpg.parseDate(a, b, this.options.datetimepicker.language, this.options.formatType), "string" == typeof a && (c = this.dpg.formatDate(d, b, this.options.datetimepicker.language, this.options.formatType), a !== c && (d = null))), d } }), b.defaults = a.extend({}, a.fn.editabletypes.abstractinput.defaults, { tpl: '<div class="editable-date well"></div>', inputclass: null, format: "yyyy-mm-dd hh:ii", formatType: "standard", viewformat: null, datetimepicker: { todayHighlight: !1, autoclose: !1 }, clear: "× clear" }), a.fn.editabletypes.datetime = b }(window.jQuery), function (a) { "use strict"; var b = function (a) { this.init("datetimefield", a, b.defaults), this.initPicker(a, b.defaults) }; a.fn.editableutils.inherit(b, a.fn.editabletypes.datetime), a.extend(b.prototype, { render: function () { this.$input = this.$tpl.find("input"), this.setClass(), this.setAttr("placeholder"), this.$tpl.datetimepicker(this.options.datetimepicker), this.$input.off("focus keydown"), this.$input.keyup(a.proxy(function () { this.$tpl.removeData("date"), this.$tpl.datetimepicker("update") }, this)) }, value2input: function (a) { this.$input.val(this.value2html(a)), this.$tpl.datetimepicker("update") }, input2value: function () { return this.html2value(this.$input.val()) }, activate: function () { a.fn.editabletypes.text.prototype.activate.call(this) }, autosubmit: function () { } }), b.defaults = a.extend({}, a.fn.editabletypes.datetime.defaults, { tpl: '<div class="input-append date"><input type="text"/><span class="add-on"><i class="icon-th"></i></span></div>', inputclass: "input-medium", datetimepicker: { todayHighlight: !1, autoclose: !0 } }), a.fn.editabletypes.datetimefield = b }(window.jQuery);
|
@@ -121,8 +121,8 @@
|
|
121
121
|
{% if hconfig(ConfigEnum.license) %}
|
122
122
|
{% else %}
|
123
123
|
{% if false %}
|
124
|
-
{{ render_nav_item('admin.CommercialInfo:index', icon('solid','dumpster','nav-icon')+
|
125
|
-
use'),_use_li=True) }}
|
124
|
+
{{ render_nav_item('admin.CommercialInfo:index', icon('solid','dumpster','nav-icon')+
|
125
|
+
_('Commercial use'),_use_li=True) }}
|
126
126
|
{% endif %}
|
127
127
|
{% endif %}
|
128
128
|
{% set action_active = True if request.endpoint and "Actions:" in request.endpoint else False %}
|