src/pyams_skin/resources/js/myams-form.min.js
changeset 566 a1707c607eec
parent 565 318533413200
child 567 bca1726b1d85
--- a/src/pyams_skin/resources/js/myams-form.min.js	Sun Jul 19 02:02:20 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-!function(e,t){var a=t.MyAMS;a.form={init:function(t){e("FORM",t).each((function(){var t=e(this);e('INPUT.select2[type="hidden"]',t).each((function(){var t=e(this);t.data("ams-select2-input-value",t.val())}))})),(a.warnOnFormChange?e('FORM[data-ams-warn-on-change!="false"]',t):e('FORM[data-ams-warn-on-change="true"]',t)).each((function(){var t=e(this);e('INPUT[type="text"], INPUT[type="checkbox"], INPUT[type="radio"], SELECT, TEXTAREA, [data-ams-changed-event]',t).each((function(){var t=e(this);if(!0!==t.data("ams-ignore-change")){var r=t.data("ams-changed-event")||"change";t.on(r,(function(){a.form.setChanged(e(this).parents("FORM"))}))}})),t.on("reset",(function(){a.form.resetChanged(e(this))}))}))},setFocus:function(t){var a=e("[data-ams-focus-target]",t).first();a.exists()||(a=e("input, select",t).first()),a.exists()&&(a.hasClass("select2-input")&&(a=a.parents(".select2")),a.hasClass("select2")?setTimeout((function(){a.select2("focus"),!0===a.data("ams-focus-open")&&a.select2("open")}),100):a.focus())},checkBeforeUnload:function(){if(e('FORM[data-ams-form-changed="true"]').exists())return a.i18n.FORM_CHANGED_WARNING},confirmChangedForm:function(r,s,i){"function"==typeof r&&(s=r,r=void 0),e('FORM[data-ams-form-changed="true"]',r).exists()?i?t.confirm(a.i18n.FORM_CHANGED_WARNING,a.i18n.WARNING)?s.call(r):i.call(r):a.skin&&a.skin.bigBox({title:a.i18n.WARNING,content:'<i class="text-danger fa fa-2x fa-bell shake animated"></i>&nbsp; '+a.i18n.FORM_CHANGED_WARNING,buttons:a.i18n.BTN_OK_CANCEL},(function(e){e===a.i18n.BTN_OK&&s.call(r)})):s.call(r)},setChanged:function(e){e.attr("data-ams-form-changed",!0)},resetChanged:function(t){void 0!==t&&e(t).removeAttr("data-ams-form-changed")},submit:function(r,s,i){if(!(r=e(r)).exists())return!1;if("object"==typeof s&&(i=s,s=void 0),r.data("submitted"))return r.data("ams-form-hide-submitted")||a.skin&&a.skin.messageBox("warning",{title:a.i18n.WAIT,content:a.i18n.FORM_SUBMITTED,icon:"fa fa-save shake animated",timeout:r.data("ams-form-alert-timeout")||5e3}),!1;if(a.form&&!a.form._checkSubmitValidators(r))return!1;e(".alert-danger, SPAN.state-error",r).not(".persistent").remove(),e(".state-error",r).removeClassPrefix("state-");var n=e(r.data("ams-submit-button"));return n&&!n.data("ams-form-hide-loading")&&(n.data("ams-progress-content",n.html()),n.button("loading")),a.ajax&&a.ajax.check(e.fn.ajaxSubmit,a.baseURL+"ext/jquery-form-3.49"+a.devext+".js",(function(){function n(r,n){var o,m,u,f,l,c,d,g,b,h,v=r.data(),p=v.amsFormOptions;if(i&&(l=i.formDataInitCallback),l?delete i.formDataInitCallback:l=v.amsFormDataInitCallback,l){var x={};if(f=a.executeFunctionByName(l,r,x),x.veto)return(o=r.data("ams-submit-button"))&&o.button("reset"),a.form.finalizeSubmitFooter.call(r),!1}else f=v.amsFormData||{};(o=e(r.data("ams-submit-button")))&&o.exists()?u=(m=o.data()).amsFormSubmitTarget:m={};var C=s||m.amsFormHandler||v.amsFormHandler||"";if(C.startsWith(window.location.protocol))h=C;else{var S=m.amsFormAction||r.attr("action").replace(/#/,"");h=S.startsWith(window.location.protocol)?S:a.ajax&&a.ajax.getAddr()+S,h+=C}c=m.amsProgressHandler||v.amsProgressHandler||"",d=m.amsProgressInterval||v.amsProgressInterval||1e3,g=m.amsProgressCallback||v.amsProgressCallback,b=m.amsProgressEndCallback||v.amsProgressEndCallback;var F,y=null;i&&i.initSubmitTarget?a.executeFunctionByName(i.initSubmitTarget,r):v.amsFormInitSubmitTarget?(y=e(u||v.amsFormSubmitTarget||"#content"),a.executeFunctionByName(v.amsFormInitSubmit||"MyAMS.form.initSubmit",r,y)):v.amsFormHideSubmitFooter||a.executeFunctionByName(v.amsFormInitSubmit||"MyAMS.form.initSubmitFooter",r),i&&(f=e.extend({},f,i.form_data)),c?f.progress_id=a.generateUUID():(F=void 0!==n.uuid)&&(h.indexOf("X-Progress-ID")<0&&(h+="?X-Progress-ID="+n.uuid),delete n.uuid);var R={url:h,type:"post",cache:!1,data:f,dataType:v.amsFormDatatype,beforeSerialize:function(){r.trigger("myams.form.before-serialize"),void 0!==t.tinyMCE&&t.tinyMCE.triggerSave()},beforeSubmit:function(e,t){t.trigger("myams.form.before-submit",[e]),t.data("submitted",!0),t.data("ams-form-reset-before-submit")&&setTimeout((function(){a.form.resetAfterSubmit(t)}),250)},error:function(e,t,r,s){s.trigger("myams.form.submit-error",[e,t,r]),y&&a.executeFunctionByName(v.amsFormSubmitError||"MyAMS.form.finalizeSubmitOnError",s,y),a.form.resetAfterSubmit(s)},iframe:F},k=i&&i.downloadTarget||v.amsFormDownloadTarget;if(k){var N=e('iframe[name="'+k+'"]');N.exists()||(N=e("<iframe></iframe>").hide().attr("name",k).appendTo(e("body"))),R=e.extend({},R,{iframe:!0,iframeTarget:N,success:function(t,r,s,i){if(i.trigger("myams.form.after-submit",[t,r,s]),e(i).parents(".modal-dialog").exists())a.dialog&&a.dialog.close(i);else{var n,o=i.data("ams-submit-button");o&&(n=o.data("ams-form-submit-callback")),n||(n=a.getFunctionByName(v.amsFormSubmitCallback)||a.form._submitCallback);try{n.call(i,t,r,s,i)}finally{a.form.resetAfterSubmit(i),a.form.resetChanged(i)}}}})}else R=e.extend({},R,{error:function(e,t,r,s){y&&a.executeFunctionByName(v.amsFormSubmitError||"MyAMS.form.finalizeSubmitOnError",s,y),a.form.resetAfterSubmit(s)},success:function(e,t,r,s){s.trigger("myams.form.after-submit",[e,t,r]);var i,n=s.data("ams-submit-button");n&&(i=n.data("ams-form-submit-callback")),i||(i=a.getFunctionByName(v.amsFormSubmitCallback)||a.form._submitCallback);try{i.call(s,e,t,r,s)}finally{a.form.resetAfterSubmit(s),a.form.resetChanged(s)}},iframe:F});var O=e.extend({},R,n,p,i);if(c&&function(e,t){var s;function i(){clearTimeout(s),a.form.resetAfterSubmit(r,o),o.html(o.data("ams-progress-content")),a.executeFunctionByName(b,r,o),a.form.resetChanged(r)}o.button("loading"),s=setTimeout((function r(){a.ajax&&a.ajax.post(e,{progress_id:t},{error:i},a.getFunctionByName(g)||function(e,t){if("success"===t)if("running"===e.status){if(e.message)o.text(e.message);else{var n=o.data("ams-progress-text")||a.i18n.PROGRESS;e.current?n+=": "+e.current+"/ "+(e.length||100):n+="...",o.text(n)}s=setTimeout(r,d)}else"finished"===e.status&&i();else i()})}),d)}(c,f.progress_id),e(r).ajaxSubmit(O),k){var E=e(r).parents(".modal-dialog"),A=E.exists()&&o.exists()&&o.data("ams-keep-modal");E.exists()&&!0!==A?a.dialog&&a.dialog.close(r):c||setTimeout((function(){a.form.resetAfterSubmit(r,o),a.form.resetChanged(r)}),o.data("ams-form-reset-timeout")||2e3)}}if(!0!==r.data("ams-form-ignore-uploads")&&e('INPUT[type="file"]',r).length>0){a.ajax&&a.ajax.check(e.progressBar,a.baseURL+"ext/jquery-progressbar"+a.devext+".js");var o=e.extend({},{uuid:e.progressBar.submit(r)});n(r,o)}else n(r,{})})),!1},initSubmit:function(t,a){var r=e(this),s='<i class="fa fa-3x fa-gear fa-spin"></i>';a||(a=r.data("ams-form-submit-message")),a&&(s+="<strong>"+a+"</strong>"),e(t).html('<div class="row margin-20"><div class="text-center">'+s+"</div></div>"),e(t).parents(".hidden").removeClass("hidden")},resetAfterSubmit:function(e){if(e.data("submitted")){if(e.is(":visible")){var t=e.data("ams-submit-button");t&&t.button("reset"),a.form.finalizeSubmitFooter.call(e)}e.data("submitted",!1),e.removeData("ams-submit-button"),e.trigger("myams.form.after-reset")}},finalizeSubmitOnError:function(t){e("i",t).removeClass("fa-spin").removeClass("fa-gear").addClass("fa-ambulance")},initSubmitFooter:function(t){var a=e(this),r='<i class="fa fa-3x fa-gear fa-spin"></i>';t||(t=e(this).data("ams-form-submit-message")),t&&(r+='<strong class="submit-message align-top padding-left-10 margin-top-10">'+t+"</strong>");var s=e("footer",a);e("button",s).hide(),s.append('<div class="row"><div class="text-center">'+r+"</div></div>")},finalizeSubmitFooter:function(){var t=e(this),a=e("footer",t);a&&(e(".row",a).remove(),e("button",a).show())},_submitCallback:function(t,r,s,i){var n;i.is(":visible")&&(a.form.finalizeSubmitFooter.call(i),(n=i.data("ams-submit-button"))&&n.button("reset"));var o,m,u=i.data();if(u.amsFormDatatype)o=u.amsFormDatatype;else{var f=a.ajax&&a.ajax.getResponse(s);f&&(o=f.contentType,t=f.data)}switch(m=e(n?n.data("ams-form-submit-target")||u.amsFormSubmitTarget||"#content":u.amsFormSubmitTarget||"#content"),o){case"json":a.ajax&&a.ajax.handleJSON(t,i,m);break;case"script":case"xml":break;case"html":case"text":default:a.form.resetChanged(i),n&&!0!==n.data("ams-keep-modal")&&a.dialog&&a.dialog.close(i),m.exists()||(m=e("body")),m.parents(".hidden").removeClass("hidden"),e(".alert",m.parents(".alerts-container")).remove(),m.css({opacity:"0.0"}).html(t).delay(50).animate({opacity:"1.0"},300),a.initContent&&a.initContent(m),a.form.setFocus(m)}var l=s.getResponseHeader("X-AMS-Callback");if(l){var c=s.getResponseHeader("X-AMS-Callback-Options");a.executeFunctionByName(l,i,void 0===c?{}:JSON.parse(c),s)}},_getSubmitValidators:function(t){var a=[],r=t.data("ams-form-validator");return r&&a.push([t,r]),e("[data-ams-form-validator]",t).each((function(){var t=e(this);a.push([t,t.data("ams-form-validator")])})),a},_checkSubmitValidators:function(e){var t=a.form._getSubmitValidators(e);if(!t.length)return!0;for(var r=[],s=!0,i=0;i<t.length;i++){var n=t[i],o=n[0],m=n[1],u=a.executeFunctionByName(m,e,o);!1===u?s=!1:"string"==typeof u?r.push(u):s.length&&s.length>0&&(r=r.concat(s))}if(r.length>0){var f=1===r.length?a.i18n.ERROR_OCCURED:a.i18n.ERRORS_OCCURED;return a.skin&&a.skin.alert(e,"danger",f,r),!1}return s},showErrors:function(t,r){var s;if("string"==typeof r)a.skin&&a.skin.alert(t,"error",a.i18n.ERROR_OCCURED,r);else if(r instanceof Array)s=1===r.length?a.i18n.ERROR_OCCURED:a.i18n.ERRORS_OCCURED,a.skin&&a.skin.alert(t,"error",s,r);else{e(".state-error",t).removeClass("state-error"),s=r.error_header||(r.widgets&&r.widgets.length>1?a.i18n.ERRORS_OCCURED:a.i18n.ERROR_OCCURED);var i,n=[];if(r.messages)for(i=0;i<r.messages.length;i++){var o=r.messages[i];o.header?n.push("<strong>"+o.header+"</strong><br />"+o.message):n.push(o.message||o)}if(r.widgets)for(i=0;i<r.widgets.length;i++){var m=r.widgets[i],u=e('[name="'+m.name+'"]',t);u.exists()||(u=e('[name="'+m.name+':list"]',t)),u.exists()?u.parents("label, .input").first().removeClassPrefix("state-").addClass("state-error").after('<span for="name" class="state-error">'+m.message+"</span>"):m.label&&n.push(m.label+" : "+m.message);var f=u.parents(".tab-pane").index()+1;if(f>0){var l=e(".nav-tabs",e(u).parents(".tabforms"));e("li:nth-child("+f+")",l).removeClassPrefix("state-").addClass("state-error"),e("li.state-error:first a",t).click()}}a.skin&&a.skin.alert(e(".form-group:first",t),r.error_level||"error",s,n,r.error_message)}}}}(jQuery,this);