diff --git a/media/com_fabrik/js/dist/form.js b/media/com_fabrik/js/dist/form.js index 255f94e44d8..99340349504 100644 --- a/media/com_fabrik/js/dist/form.js +++ b/media/com_fabrik/js/dist/form.js @@ -1,3 +1,3 @@ /*! Fabrik */ -define(["jquery","fab/encoder","fab/fabrik","lib/debounce/jquery.ba-throttle-debounce"],function(G,r,S,t){var n=new Class({Implements:[Options,Events],options:{rowid:"",admin:!1,ajax:!1,primaryKey:null,error:"",submitOnEnter:!1,updatedMsg:"Form saved",pages:[],start_page:0,multipage_save:0,ajaxValidation:!1,showLoader:!1,customJsAction:"",plugins:[],ajaxmethod:"post",inlineMessage:!0,print:!1,toggleSubmit:!1,toggleSubmitTip:"must validate",mustValidate:!1,lang:!1,debounceDelay:500,images:{alert:"",action_check:"",ajax_loader:""}},initialize:function(t,e){"null"===typeOf(e.rowid)&&(e.rowid=""),this.id=t,this.result=!0,this.setOptions(e),this.plugins=this.options.plugins,this.options.pages=$H(this.options.pages),this.subGroups=$H({}),this.currentPage=this.options.start_page,this.formElements=$H({}),this.hasErrors=$H({}),this.mustValidateEls=$H({}),this.toggleSubmitTipAdded=!1,this.elements=this.formElements,this.duplicatedGroups=$H({}),this.addingOrDeletingGroup=!1,this.addedGroups=[],this.watchRepeatNumsDone=!1,this.fx={},this.fx.elements=[],this.fx.hidden=[],this.fx.validations={},this.setUpAll(),this._setMozBoxWidths(),function(){this.duplicateGroupsToMin()}.bind(this).delay(1e3),this.events={},this.submitBroker=new FbFormSubmit,this.scrollTips(),S.fireEvent("fabrik.form.loaded",[this])},_setMozBoxWidths:function(){Browser.firefox&&this.getForm()&&this.getForm().getElements(".fabrikElementContainer > .displayBox").each(function(t){var e=t.getParent().getComputedSize(),i=t.getParent().getSize().x-(e.computedLeft+e.computedRight),o=0===t.getParent().getSize().x?400:i;t.setStyle("width",o+"px");var n=t.getElement(".fabrikElement");"null"!==typeOf(n)&&(i=0,t.getChildren().each(function(t){t!==n&&(i+=t.getSize().x)}),n.setStyle("width",o-i-10+"px"))})},setUpAll:function(){if(this.setUp(),this.options.ajaxValidation&&this.options.toggleSubmit&&""!==this.options.toggleSubmitTip){var t=this._getButton("Submit");"null"!==typeOf(t)&&G(t).wrap('
div>')}this.winScroller=new Fx.Scroll(window),this.form&&((this.options.ajax||!1===this.options.submitOnEnter)&&this.stopEnterSubmitting(),this.watchAddOptions()),$H(this.options.hiddenGroup).each(function(t,e){if(!0===t&&"null"!==typeOf(document.id("group"+e))){var i=document.id("group"+e).getElement(".fabrikSubGroup");this.subGroups.set(e,i.cloneWithIds()),this.hideLastGroup(e,i)}}.bind(this)),this.repeatGroupMarkers=$H({}),this.form&&(this.form.getElements(".fabrikGroup").each(function(t){var e=t.id.replace("group",""),i=t.getElements(".fabrikSubGroup").length;1===i&&"none"===t.getElement(".fabrikSubGroupElements").getStyle("display")&&(i=0),this.repeatGroupMarkers.set(e,i)}.bind(this)),this.watchGoBackButton()),this.watchPrintButton(),this.watchPdfButton(),this.watchTabs(),this.watchRepeatNums()},watchRepeatNums:function(){S.addEvent("fabrik.form.elements.added",function(t){t.id!==this.id||this.watchRepeatNumsDone||(Object.each(this.options.numRepeatEls,function(t,i){if(""!==t){var o=this.formElements.get(t);o&&o.addNewEventAux(o.getChangeEvent(),function(t){var e=o.getValue();this.options.minRepeat[i]=e.toInt(),this.options.maxRepeat[i]=e.toInt(),this.duplicateGroupsToMin()}.bind(this,o,i))}}.bind(t)),this.watchRepeatNumsDone=!0)}.bind(this))},watchPrintButton:function(){this.form.getElements("a[data-fabrik-print]").addEvent("click",function(t){if(t.stop(),this.options.print)window.print();else{var e=G(t.target).prop("href");e=e.replace(/&rowid=\d+/,"&rowid="+this.options.rowid),!1!==this.options.lang&&(e.test(/\?/)?e+="&lang="+this.options.lang:e+="?lang="+this.options.lang),window.open(e,"win2","status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=400,height=350,directories=no,location=no;")}}.bind(this))},watchPdfButton:function(){this.form.getElements('*[data-role="open-form-pdf"]').addEvent("click",function(t){t.stop();var e=t.event.currentTarget.href.replace(/(rowid=\d*)/,"rowid="+this.options.rowid);!1!==this.options.lang&&(e.test(/\?/)?e+="&lang="+this.options.lang:e+="?lang="+this.options.lang),window.location=e}.bind(this))},watchGoBackButton:function(){if(this.options.ajax){var t=this._getButton("Goback");if("null"===typeOf(t))return;t.addEvent("click",function(t){t.stop(),S.Windows[this.options.fabrik_window_id]?S.Windows[this.options.fabrik_window_id].close():window.history.back()}.bind(this))}},watchAddOptions:function(){this.fx.addOptions=[],this.getForm().getElements(".addoption").each(function(t){var e=t.getParent(".fabrikElementContainer").getElement(".toggle-addoption"),i=new Fx.Slide(t,{duration:500});i.hide(),e.addEvent("click",function(t){t.stop(),i.toggle()})})},setUp:function(){this.form=this.getForm(),this.watchGroupButtons(),this.watchSubmit(),this.createPages(),this.watchClearSession()},getForm:function(){return"null"===typeOf(this.form)&&(this.form=document.id(this.getBlock())),this.form},getBlock:function(){return"null"===typeOf(this.block)&&(this.block=!0===this.options.editable?"form_"+this.id:"details_"+this.id,""!==this.options.rowid&&(this.block+="_"+this.options.rowid)),this.block},addElementFX:function(t,e){var i,o,n;if("group_"===(t=t.replace("fabrik_trigger_","")).slice(0,6)){if(o=t=t.slice(6,t.length),!(i=document.id(t)))return fconsole('Fabrik form::addElementFX: Group "'+t+'" does not exist.'),!1}else{if("element_"!==t.slice(0,8))return fconsole("Fabrik form::addElementFX: Not an element or group: "+t),!1;if(o="element"+(t=t.slice(8,t.length)),!(i=document.id(t)))return fconsole('Fabrik form::addElementFX: Element "'+t+'" does not exist.'),!1;if(!(i=i.getParent(".fabrikElementContainer")))return fconsole('Fabrik form::addElementFX: Element "'+t+'.fabrikElementContainer" does not exist.'),!1}if(i){var r=i.get("tag");"li"===r||"td"===r?(n=new Element("div",{style:"width:100%"}).adopt(i.getChildren()),i.empty(),n.inject(i)):n=i;var s={duration:800,transition:Fx.Transitions.Sine.easeInOut};return"null"===typeOf(this.fx.elements[o])&&(this.fx.elements[o]={}),this.fx.elements[o].css=new Fx.Morph(n,s),"null"===typeOf(n)||"slide in"!==e&&"slide out"!==e&&"slide toggle"!==e||(this.fx.elements[o].slide=new Fx.Slide(n,s)),this.fx.elements[o]}return!1},doElementFX:function(t,e,i){var o,n,r,s,a=this.formElements.get(t.replace("fabrik_trigger_element_","")),l=!0;if(a&&(l=a.options.inRepeatGroup),n="fabrik_trigger_group_"===t.slice(0,21),i&&l&&!n&&i.options.inRepeatGroup){var u=t.split("_");u[u.length-1]=i.options.repeatCounter,t=u.join("_")}if("group_"===(t=t.replace("fabrik_trigger_","")).slice(0,6)?("group_"===(t=t.slice(6,t.length)).slice(0,6)&&(t=t.slice(6,t.length)),o=t):o="element"+(t=t.slice(8,t.length)),(r=this.fx.elements[o])||(r=this.addElementFX("element_"+t,e))){switch("td"===(s=n||r.css.element.hasClass("fabrikElementContainer")?r.css.element:r.css.element.getParent(".fabrikElementContainer")).get("tag")&&(s=s.getChildren()[0]),e){case"show":s.fade("show").removeClass("fabrikHide"),n&&(document.id(t).getElements(".fabrikinput").setStyle("opacity","1"),this.showGroupTab(t),s.show());break;case"hide":s.fade("hide").addClass("fabrikHide"),n&&this.hideGroupTab(t);break;case"fadein":s.removeClass("fabrikHide"),"fadein"!==r.css.lastMethod&&(r.css.element.show(),r.css.start({opacity:[0,1]})),n&&(this.showGroupTab(t),s.show());break;case"fadeout":"fadeout"!==r.css.lastMethod&&r.css.start({opacity:[1,0]}).chain(function(){r.css.element.hide(),s.addClass("fabrikHide")}),n&&this.hideGroupTab(t);break;case"slide in":r.slide.slideIn();break;case"slide out":r.slide.slideOut(),s.removeClass("fabrikHide");break;case"slide toggle":r.slide.toggle();break;case"clear":this.formElements.get(t).clear();break;case"disable":n||G("#"+t).prop("disabled",!0);break;case"enable":n||G("#"+t).prop("disabled",!1);break;case"readonly":n||("SELECT"===G("#"+t).prop("tagName")?G("#"+t+" option:not(:selected)").attr("disabled",!0):G("#"+t).prop("readonly",!0));break;case"notreadonly":n||("SELECT"===G("#"+t).prop("tagName")?G("#"+t+" option").attr("disabled",!1):G("#"+t).prop("readonly",!1))}r.lastMethod=e,S.fireEvent("fabrik.form.doelementfx",[this,e,t,n])}},getGroupTab:function(t){if(t.test(/^group/)||(t="group"+t),document.id(t).getParent().hasClass("tab-pane")){var e=document.id(t).getParent().id;return this.form.getElement("a[href=#"+e+"]").getParent()}return!1},hideGroupTab:function(t){var e=this.getGroupTab(t);!1!==e&&(G(e).hide(),e.hasClass("active")&&(e.getPrevious()?G(e.getPrevious().getFirst()).tab("show"):e.getNext()&&G(e.getNext().getFirst()).tab("show")))},selectGroupTab:function(t){var e=this.getGroupTab(t);!1!==e&&(e.hasClass("active")||G(e.getFirst()).tab("show"))},showGroupTab:function(t){var e=this.getGroupTab(t);!1!==e&&G(e).show()},watchTabs:function(){var i=this;G(this.form).on("click","*[data-role=fabrik_tab]",function(t){var e=t.target.id.match(/group(\d+)_tab/);1")),""!==o?(r=this._showElementError(n.errors[e],e),!1===a&&(a=r)):i.setErrorMessage("","")}n.modified[e]&&i&&i.update(n.modified[e])}}}.bind(this)),a},_showElementError:function(t,e){var i="";"null"!==typeOf(t)&&(i=t.flatten().join("
"));var o=""===i?"fabrikSuccess":"fabrikError";return""===i?(delete this.hasErrors[e],i=Joomla.JText._("COM_FABRIK_SUCCESS")):this.hasErrors.set(e,!0),i=" "+i+"",this.formElements.get(e).setErrorMessage(i,o),"fabrikSuccess"!==o},updateMainError:function(){var t;"null"!==typeOf(this.form.getElement(".fabrikMainError"))&&this.form.getElement(".fabrikMainError").set("html",this.options.error),0<(t=this.form.getElements(".fabrikError").filter(function(t,e){return!t.hasClass("fabrikMainError")})).length&&this.form.getElement(".fabrikMainError").hasClass("fabrikHide")&&this.showMainError(this.options.error),0===t.length&&this.hideMainError()},hideMainError:function(){if("null"!==typeOf(this.form.getElement(".fabrikMainError"))){var t=this.form.getElement(".fabrikMainError");myfx=new Fx.Tween(t,{property:"opacity",duration:500,onComplete:function(){t.addClass("fabrikHide")}}).start(1,0)}},showMainError:function(t){if(!(S.bootstrapped&&this.options.ajaxValidation||"null"===typeOf(this.form.getElement(".fabrikMainError")))){var e=this.form.getElement(".fabrikMainError");e.set("html",t),e.removeClass("fabrikHide"),myfx=new Fx.Tween(e,{property:"opacity",duration:500}).start(0,1)}},_getButton:function(t){if(this.getForm()){var e=this.form.getElement("input[type=button][name="+t+"]");return e||(e=this.form.getElement("input[type=submit][name="+t+"]")),e||(e=this.form.getElement("button[type=button][name="+t+"]")),e||(e=this.form.getElement("button[type=submit][name="+t+"]")),e}},watchSubmit:function(){var t=this._getButton("Submit"),e=this._getButton("apply");if(t||e){var i=this._getButton("delete"),o=this._getButton("Copy");i&&i.addEvent("click",function(t){if(!window.confirm(Joomla.JText._("COM_FABRIK_CONFIRM_DELETE_1")))return!1;var e=S.fireEvent("fabrik.form.delete",[this,this.options.rowid]).eventResults;if("null"!==typeOf(e)&&0!==e.length&&e.contains(!1))return t.stop(),!1;this.form.getElement("input[name=task]").value="form.delete",this.doSubmit(t,i)}.bind(this)),this.form.getElements("button[type=submit]").combine([e,t,o]).each(function(e){"null"!==typeOf(e)&&e.addEvent("click",function(t){this.doSubmit(t,e)}.bind(this))}.bind(this)),this.form.addEvent("submit",function(t){this.doSubmit(t)}.bind(this))}},mockSubmit:function(t){t=void 0!==t?t:"Submit";var e=this._getButton(t);e||(e=new Element("button",{name:t,type:"submit"})),this.doSubmit(new Event.Mock(e,"click"),e)},doSubmit:function(h,d){if(this.submitBroker.enabled())return h.stop(),!1;this.toggleSubmit(!1),this.submitBroker.submit(function(){if(this.options.showLoader&&S.loader.start(this.getBlock(),Joomla.JText._("COM_FABRIK_LOADING")),S.fireEvent("fabrik.form.submit.start",[this,h,d]),!1===this.result)return this.result=!0,h.stop(),S.loader.stop(this.getBlock()),this.updateMainError(),void this.toggleSubmit(!0);if(1=this.options.maxRepeat[i]&&0!==this.options.maxRepeat[i]){if(""!==this.options.minMaxErrMsg[i]){var s=this.options.minMaxErrMsg[i];s=(s=s.replace(/\{min\}/,this.options.minRepeat[i])).replace(/\{max\}/,this.options.maxRepeat[i]),window.alert(s)}}else if(document.id("fabrik_repeat_group_"+i+"_counter").value=r+1,this.isFirstRepeatSubGroup(n)){var h=n.getElements(".fabrikSubGroup"),d=h[0].getElement(".fabrikSubGroupElements");"null"===typeOf(d)?(n.getElement(".fabrikNotice").dispose(),d=h[0],n.getElement(".addGroup").inject(d.getElement("td.fabrikGroupRepeater")),d.setStyle("display","")):(h[0].getElement(".fabrikNotice").dispose(),h[0].getElement(".fabrikSubGroupElements").show()),this.repeatGroupMarkers.set(i,this.repeatGroupMarkers.get(i)+1)}else{var p=this.getSubGroupToClone(i),f=this.repeatGetChecked(n),m=n.getElement("table.repeatGroupTable");m?(m.getElement("tbody")&&(m=m.getElement("tbody")),m.appendChild(p)):n.appendChild(p),f.each(function(t){t.setProperty("checked",!0)}),this.subelementCounter=0;var c=[],g=!1,b=p.getElements(".fabrikinput"),E=null;this.formElements.each(function(r){var s=!1;a=null;if(b.each(function(t){g=r.hasSubElements(),l=t.getParent(".fabrikSubElementContainer");var e=g&&l?l.id:t.id,i=r.getCloneName();if(e===i||e===i+"-auto-complete"){if(E=t,s=!0,g)0,a=t.getParent(".fabrikSubElementContainer"),document.id(e).getElement("input")&&t.cloneEvents(document.id(e).getElement("input"));else{t.cloneEvents(r.element);var o=Array.from(r.element.id.split("_"));o.splice(o.length-1,1,u),t.id=o.join("_");var n=t.getParent(".fabrikElementContainer").getElement("label");n&&n.setProperty("for",t.id)}"null"!==typeOf(t.name)&&(t.name=t.name.replace("[0]","["+u+"]"))}}.bind(this)),s){if(g&&"null"!==typeOf(a)){var t=Array.from(r.options.element.split("_"));t.splice(t.length-1,1,u),a.id=t.join("_")}r.options.element;var e=r.unclonableProperties(),i=new CloneObject(r,!0,e);i.container=null,i.options.repeatCounter=u,g&&"null"!==typeOf(a)?(i.element=document.id(a),i.cloneUpdateIds(a.id),i.options.element=a.id,i._getSubElements()):i.cloneUpdateIds(E.id),c.push(i)}}.bind(this)),c.each(function(t){t.cloned(u);var e=new RegExp(this.options.group_pk_ids[o]);!this.options.group_copy_element_values[o]||this.options.group_copy_element_values[o]&&t.element.name&&t.element.name.test(e)?t.reset():t.resetEvents()}.bind(this));var v={};if(v[i]=c,this.addElements(v),e){var k=G(window).height(),_=document.id(window).getScroll().y,y=p.getCoordinates();if(y.bottom>_+k){var w=y.bottom-k;this.winScroller.start(0,w)}}new Fx.Tween(p,{property:"opacity",duration:500}).set(0);p.fade(1),S.fireEvent("fabrik.form.group.duplicate.end",[this,t,i,u]),this.setRepeatGroupIntro(n,i),this.repeatGroupMarkers.set(i,this.repeatGroupMarkers.get(i)+1),this.addedGroups.push("group"+i)}}else this.result=!0},setRepeatGroupIntro:function(t,e){var i=this.options.group_repeat_intro[e],o="";t.getElements('*[data-role="group-repeat-intro"]').each(function(t,e){o=i.replace("{i}",e+1),this.formElements.each(function(t){if(!t.options.inRepeatGroup){var e=new RegExp("{"+t.element.id+"}");o=o.replace(e,t.getValue())}}),t.set("html",o)}.bind(this))},update:function(i){if(S.fireEvent("fabrik.form.update",[this,i.data]),!1!==this.result){var o=arguments[1]||!1,n=i.data;if(this.getForm(),this.form){var t=this.form.getElement("input[name=rowid]");t&&n.rowid&&(t.value=n.rowid)}this.formElements.each(function(t,e){"null"===typeOf(n[e])&&"_ro"===e.substring(e.length-3,e.length)&&(e=e.substring(0,e.length-3)),"null"===typeOf(n[e])?i.id!==this.id||o||t.update(""):t.update(n[e])}.bind(this))}else this.result=!0},reset:function(){this.addedGroups.each(function(t){var e=document.id(t).findClassUp("fabrikGroup").id.replace("group","");document.id("fabrik_repeat_group_"+e+"_counter").value=document.id("fabrik_repeat_group_"+e+"_counter").get("value").toInt()-1,t.remove()}),this.addedGroups=[],S.fireEvent("fabrik.form.reset",[this]),!1!==this.result?this.formElements.each(function(t,e){t.reset()}.bind(this)):this.result=!0},showErrors:function(t){if(t.id===this.id){var e=new Hash(t.errors);0 .displayBox").each(function(t){var e=t.getParent().getComputedSize(),i=t.getParent().getSize().x-(e.computedLeft+e.computedRight),o=0===t.getParent().getSize().x?400:i;t.setStyle("width",o+"px");var n=t.getElement(".fabrikElement");"null"!==typeOf(n)&&(i=0,t.getChildren().each(function(t){t!==n&&(i+=t.getSize().x)}),n.setStyle("width",o-i-10+"px"))})},setUpAll:function(){if(this.setUp(),this.options.ajaxValidation&&this.options.toggleSubmit&&""!==this.options.toggleSubmitTip){var t=this._getButton("Submit");"null"!==typeOf(t)&&G(t).wrap('
div>')}this.winScroller=new Fx.Scroll(window),this.form&&((this.options.ajax||!1===this.options.submitOnEnter)&&this.stopEnterSubmitting(),this.watchAddOptions()),$H(this.options.hiddenGroup).each(function(t,e){if(!0===t&&"null"!==typeOf(document.id("group"+e))){var i=document.id("group"+e).getElement(".fabrikSubGroup");this.subGroups.set(e,i.cloneWithIds()),this.hideLastGroup(e,i)}}.bind(this)),this.repeatGroupMarkers=$H({}),this.form&&(this.form.getElements(".fabrikGroup").each(function(t){var e=t.id.replace("group",""),i=t.getElements(".fabrikSubGroup").length;1===i&&"none"===t.getElement(".fabrikSubGroupElements").getStyle("display")&&(i=0),this.repeatGroupMarkers.set(e,i)}.bind(this)),this.watchGoBackButton()),this.watchPrintButton(),this.watchPdfButton(),this.watchTabs(),this.watchRepeatNums()},watchRepeatNums:function(){S.addEvent("fabrik.form.elements.added",function(t){t.id!==this.id||this.watchRepeatNumsDone||(Object.each(this.options.numRepeatEls,function(t,i){if(""!==t){var o=this.formElements.get(t);o&&o.addNewEventAux(o.getChangeEvent(),function(t){var e=o.getValue();this.options.minRepeat[i]=e.toInt(),this.options.maxRepeat[i]=e.toInt(),this.duplicateGroupsToMin()}.bind(this,o,i))}}.bind(t)),this.watchRepeatNumsDone=!0)}.bind(this))},watchPrintButton:function(){this.form.getElements("a[data-fabrik-print]").addEvent("click",function(t){if(t.stop(),this.options.print)window.print();else{var e=G(t.target).prop("href");e=e.replace(/&rowid=\d+/,"&rowid="+this.options.rowid),!1!==this.options.lang&&(e.test(/\?/)?e+="&lang="+this.options.lang:e+="?lang="+this.options.lang),window.open(e,"win2","status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=400,height=350,directories=no,location=no;")}}.bind(this))},watchPdfButton:function(){this.form.getElements('*[data-role="open-form-pdf"]').addEvent("click",function(t){t.stop();var e=t.event.currentTarget.href.replace(/(rowid=\d*)/,"rowid="+this.options.rowid);!1!==this.options.lang&&(e.test(/\?/)?e+="&lang="+this.options.lang:e+="?lang="+this.options.lang),window.location=e}.bind(this))},watchGoBackButton:function(){if(this.options.ajax){var t=this._getButton("Goback");if("null"===typeOf(t))return;t.addEvent("click",function(t){t.stop(),S.Windows[this.options.fabrik_window_id]?S.Windows[this.options.fabrik_window_id].close():window.history.back()}.bind(this))}},watchAddOptions:function(){this.fx.addOptions=[],this.getForm().getElements(".addoption").each(function(t){var e=t.getParent(".fabrikElementContainer").getElement(".toggle-addoption"),i=new Fx.Slide(t,{duration:500});i.hide(),e.addEvent("click",function(t){t.stop(),i.toggle()})})},setUp:function(){this.form=this.getForm(),this.watchGroupButtons(),this.watchSubmit(),this.createPages(),this.watchClearSession()},getForm:function(){return"null"===typeOf(this.form)&&(this.form=document.id(this.getBlock())),this.form},getBlock:function(){return"null"===typeOf(this.block)&&(this.block=!0===this.options.editable?"form_"+this.id:"details_"+this.id,""!==this.options.rowid&&(this.block+="_"+this.options.rowid)),this.block},addElementFX:function(t,e){var i,o,n;if("group_"===(t=t.replace("fabrik_trigger_","")).slice(0,6)){if(o=t=t.slice(6,t.length),!(i=document.id(t)))return fconsole('Fabrik form::addElementFX: Group "'+t+'" does not exist.'),!1}else{if("element_"!==t.slice(0,8))return fconsole("Fabrik form::addElementFX: Not an element or group: "+t),!1;if(o="element"+(t=t.slice(8,t.length)),!(i=document.id(t)))return fconsole('Fabrik form::addElementFX: Element "'+t+'" does not exist.'),!1;if(!(i=i.getParent(".fabrikElementContainer")))return fconsole('Fabrik form::addElementFX: Element "'+t+'.fabrikElementContainer" does not exist.'),!1}if(i){var r=i.get("tag");"li"===r||"td"===r?(n=new Element("div",{style:"width:100%"}).adopt(i.getChildren()),i.empty(),n.inject(i)):n=i;var s={duration:800,transition:Fx.Transitions.Sine.easeInOut};return"null"===typeOf(this.fx.elements[o])&&(this.fx.elements[o]={}),this.fx.elements[o].css=new Fx.Morph(n,s),"null"===typeOf(n)||"slide in"!==e&&"slide out"!==e&&"slide toggle"!==e||(this.fx.elements[o].slide=new Fx.Slide(n,s)),this.fx.elements[o]}return!1},doElementFX:function(t,e,i){var o,n,r,s,a=this.formElements.get(t.replace("fabrik_trigger_element_","")),l=!0;if(a&&(l=a.options.inRepeatGroup),n="fabrik_trigger_group_"===t.slice(0,21),i&&l&&!n&&i.options.inRepeatGroup){var u=t.split("_");u[u.length-1]=i.options.repeatCounter,t=u.join("_")}if("group_"===(t=t.replace("fabrik_trigger_","")).slice(0,6)?("group_"===(t=t.slice(6,t.length)).slice(0,6)&&(t=t.slice(6,t.length)),o=t):o="element"+(t=t.slice(8,t.length)),(r=this.fx.elements[o])||(r=this.addElementFX("element_"+t,e))){switch("td"===(s=n||r.css.element.hasClass("fabrikElementContainer")?r.css.element:r.css.element.getParent(".fabrikElementContainer")).get("tag")&&(s=s.getChildren()[0]),e){case"show":s.fade("show").removeClass("fabrikHide"),n&&(document.id(t).getElements(".fabrikinput").setStyle("opacity","1"),this.showGroupTab(t),s.show());break;case"hide":s.fade("hide").addClass("fabrikHide"),n&&this.hideGroupTab(t);break;case"fadein":s.removeClass("fabrikHide"),"fadein"!==r.css.lastMethod&&(r.css.element.show(),r.css.start({opacity:[0,1]})),n&&(this.showGroupTab(t),s.show());break;case"fadeout":"fadeout"!==r.css.lastMethod&&r.css.start({opacity:[1,0]}).chain(function(){r.css.element.hide(),s.addClass("fabrikHide")}),n&&this.hideGroupTab(t);break;case"slide in":r.slide.slideIn();break;case"slide out":r.slide.slideOut(),s.removeClass("fabrikHide");break;case"slide toggle":r.slide.toggle();break;case"clear":this.formElements.get(t).clear();break;case"disable":n||G("#"+t).prop("disabled",!0);break;case"enable":n||G("#"+t).prop("disabled",!1);break;case"readonly":n||("SELECT"===G("#"+t).prop("tagName")?G("#"+t+" option:not(:selected)").attr("disabled",!0):G("#"+t).prop("readonly",!0));break;case"notreadonly":n||("SELECT"===G("#"+t).prop("tagName")?G("#"+t+" option").attr("disabled",!1):G("#"+t).prop("readonly",!1))}r.lastMethod=e,S.fireEvent("fabrik.form.doelementfx",[this,e,t,n])}},getGroupTab:function(t){if(t.test(/^group/)||(t="group"+t),document.id(t).getParent().hasClass("tab-pane")){var e=document.id(t).getParent().id;return this.form.getElement("a[href=#"+e+"]").getParent()}return!1},hideGroupTab:function(t){var e=this.getGroupTab(t);!1!==e&&(G(e).hide(),e.hasClass("active")&&(e.getPrevious()?G(e.getPrevious().getFirst()).tab("show"):e.getNext()&&G(e.getNext().getFirst()).tab("show")))},selectGroupTab:function(t){var e=this.getGroupTab(t);!1!==e&&(e.hasClass("active")||G(e.getFirst()).tab("show"))},showGroupTab:function(t){var e=this.getGroupTab(t);!1!==e&&G(e).show()},watchTabs:function(){var i=this;G(this.form).on("click","*[data-role=fabrik_tab]",function(t){var e=t.target.id.match(/group(\d+)_tab/);1")),""!==n?(s=this._showElementError(t,i),!1===a&&(a=s)):o.setErrorMessage("","")}.bind(this));else{var i="";"null"!==typeOf(o.errors[r])&&(i=o.errors[r].flatten().join("
")),""!==i?(s=this._showElementError(o.errors[r],r),!1===a&&(a=s)):e.setErrorMessage("","")}o.modified[r]&&e&&e.update(o.modified[r])}}}.bind(this)),a},_showElementError:function(t,e){var i="";"null"!==typeOf(t)&&(i=t.flatten().join("
"));var o=""===i?"fabrikSuccess":"fabrikError";return""===i?(delete this.hasErrors[e],i=Joomla.JText._("COM_FABRIK_SUCCESS")):this.hasErrors.set(e,!0),i=" "+i+"",this.formElements.get(e).setErrorMessage(i,o),"fabrikSuccess"!==o},updateMainError:function(){var t;"null"!==typeOf(this.form.getElement(".fabrikMainError"))&&this.form.getElement(".fabrikMainError").set("html",this.options.error),0<(t=this.form.getElements(".fabrikError").filter(function(t,e){return!t.hasClass("fabrikMainError")})).length&&this.form.getElement(".fabrikMainError").hasClass("fabrikHide")&&this.showMainError(this.options.error),0===t.length&&this.hideMainError()},hideMainError:function(){if("null"!==typeOf(this.form.getElement(".fabrikMainError"))){var t=this.form.getElement(".fabrikMainError");myfx=new Fx.Tween(t,{property:"opacity",duration:500,onComplete:function(){t.addClass("fabrikHide")}}).start(1,0)}},showMainError:function(t){if(!(S.bootstrapped&&this.options.ajaxValidation||"null"===typeOf(this.form.getElement(".fabrikMainError")))){var e=this.form.getElement(".fabrikMainError");e.set("html",t),e.removeClass("fabrikHide"),myfx=new Fx.Tween(e,{property:"opacity",duration:500}).start(0,1)}},_getButton:function(t){if(this.getForm()){var e=this.form.getElement("input[type=button][name="+t+"]");return e||(e=this.form.getElement("input[type=submit][name="+t+"]")),e||(e=this.form.getElement("button[type=button][name="+t+"]")),e||(e=this.form.getElement("button[type=submit][name="+t+"]")),e}},watchSubmit:function(){var t=this._getButton("Submit"),e=this._getButton("apply");if(t||e){var i=this._getButton("delete"),o=this._getButton("Copy");i&&i.addEvent("click",function(t){if(!window.confirm(Joomla.JText._("COM_FABRIK_CONFIRM_DELETE_1")))return!1;var e=S.fireEvent("fabrik.form.delete",[this,this.options.rowid]).eventResults;if("null"!==typeOf(e)&&0!==e.length&&e.contains(!1))return t.stop(),!1;this.form.getElement("input[name=task]").value="form.delete",this.doSubmit(t,i)}.bind(this)),this.form.getElements("button[type=submit]").combine([e,t,o]).each(function(e){"null"!==typeOf(e)&&e.addEvent("click",function(t){this.doSubmit(t,e)}.bind(this))}.bind(this)),this.form.addEvent("submit",function(t){this.doSubmit(t)}.bind(this))}},mockSubmit:function(t){t=void 0!==t?t:"Submit";var e=this._getButton(t);e||(e=new Element("button",{name:t,type:"submit"})),this.doSubmit(new Event.Mock(e,"click"),e)},doSubmit:function(h,d){if(this.submitBroker.enabled())return h.stop(),!1;this.toggleSubmit(!1),this.submitBroker.submit(function(){if(this.options.showLoader&&S.loader.start(this.getBlock(),Joomla.JText._("COM_FABRIK_LOADING")),S.fireEvent("fabrik.form.submit.start",[this,h,d]),!1===this.result)return this.result=!0,h.stop(),S.loader.stop(this.getBlock()),this.updateMainError(),void this.toggleSubmit(!0);if(1=this.options.maxRepeat[i]&&0!==this.options.maxRepeat[i]){if(""!==this.options.minMaxErrMsg[i]){var s=this.options.minMaxErrMsg[i];s=(s=s.replace(/\{min\}/,this.options.minRepeat[i])).replace(/\{max\}/,this.options.maxRepeat[i]),window.alert(s)}}else if(document.id("fabrik_repeat_group_"+i+"_counter").value=r+1,this.isFirstRepeatSubGroup(n)){var h=n.getElements(".fabrikSubGroup"),d=h[0].getElement(".fabrikSubGroupElements");"null"===typeOf(d)?(n.getElement(".fabrikNotice").dispose(),d=h[0],n.getElement(".addGroup").inject(d.getElement("td.fabrikGroupRepeater")),d.setStyle("display","")):(h[0].getElement(".fabrikNotice").dispose(),h[0].getElement(".fabrikSubGroupElements").show()),this.repeatGroupMarkers.set(i,this.repeatGroupMarkers.get(i)+1)}else{var p=this.getSubGroupToClone(i),f=this.repeatGetChecked(n),m=n.getElement("table.repeatGroupTable");m?(m.getElement("tbody")&&(m=m.getElement("tbody")),m.appendChild(p)):n.appendChild(p),f.each(function(t){t.setProperty("checked",!0)}),this.subelementCounter=0;var c=[],g=!1,b=p.getElements(".fabrikinput"),E=null;this.formElements.each(function(r){var s=!1;a=null;if(b.each(function(t){g=r.hasSubElements(),l=t.getParent(".fabrikSubElementContainer");var e=g&&l?l.id:t.id,i=r.getCloneName();if(e===i||e===i+"-auto-complete"){if(E=t,s=!0,g)0,a=t.getParent(".fabrikSubElementContainer"),document.id(e).getElement("input")&&t.cloneEvents(document.id(e).getElement("input"));else{t.cloneEvents(r.element);var o=Array.from(r.element.id.split("_"));o.splice(o.length-1,1,u),t.id=o.join("_");var n=t.getParent(".fabrikElementContainer").getElement("label");n&&n.setProperty("for",t.id)}"null"!==typeOf(t.name)&&(t.name=t.name.replace("[0]","["+u+"]"))}}.bind(this)),s){if(g&&"null"!==typeOf(a)){var t=Array.from(r.options.element.split("_"));t.splice(t.length-1,1,u),a.id=t.join("_")}r.options.element;var e=r.unclonableProperties(),i=new CloneObject(r,!0,e);i.container=null,i.options.repeatCounter=u,g&&"null"!==typeOf(a)?(i.element=document.id(a),i.cloneUpdateIds(a.id),i.options.element=a.id,i._getSubElements()):i.cloneUpdateIds(E.id),c.push(i)}}.bind(this)),c.each(function(t){t.cloned(u);var e=new RegExp(this.options.group_pk_ids[o]);!this.options.group_copy_element_values[o]||this.options.group_copy_element_values[o]&&t.element.name&&t.element.name.test(e)?t.reset():t.resetEvents()}.bind(this));var v={};if(v[i]=c,this.addElements(v),e){var k=G(window).height(),_=document.id(window).getScroll().y,y=p.getCoordinates();if(y.bottom>_+k){var w=y.bottom-k;this.winScroller.start(0,w)}}new Fx.Tween(p,{property:"opacity",duration:500}).set(0);p.fade(1),S.fireEvent("fabrik.form.group.duplicate.end",[this,t,i,u]),this.setRepeatGroupIntro(n,i),this.repeatGroupMarkers.set(i,this.repeatGroupMarkers.get(i)+1),this.addedGroups.push("group"+i)}}else this.result=!0},setRepeatGroupIntro:function(t,e){var i=this.options.group_repeat_intro[e],o="";t.getElements('*[data-role="group-repeat-intro"]').each(function(t,e){o=i.replace("{i}",e+1),this.formElements.each(function(t){if(!t.options.inRepeatGroup){var e=new RegExp("{"+t.element.id+"}");o=o.replace(e,t.getValue())}}),t.set("html",o)}.bind(this))},update:function(i){if(S.fireEvent("fabrik.form.update",[this,i.data]),!1!==this.result){var o=arguments[1]||!1,n=i.data;if(this.getForm(),this.form){var t=this.form.getElement("input[name=rowid]");t&&n.rowid&&(t.value=n.rowid)}this.formElements.each(function(t,e){"null"===typeOf(n[e])&&"_ro"===e.substring(e.length-3,e.length)&&(e=e.substring(0,e.length-3)),"null"===typeOf(n[e])?i.id!==this.id||o||t.update(""):t.update(n[e])}.bind(this))}else this.result=!0},reset:function(){this.addedGroups.each(function(t){var e=document.id(t).findClassUp("fabrikGroup").id.replace("group","");document.id("fabrik_repeat_group_"+e+"_counter").value=document.id("fabrik_repeat_group_"+e+"_counter").get("value").toInt()-1,t.remove()}),this.addedGroups=[],S.fireEvent("fabrik.form.reset",[this]),!1!==this.result?this.formElements.each(function(t,e){t.reset()}.bind(this)):this.result=!0},showErrors:function(t){if(t.id===this.id){var e=new Hash(t.errors);0'); + var msg = ''; + if (typeOf(v2) !== 'null') { + msg = v2.flatten().join('
'); + } + if (msg !== '') { + tmperr = this._showElementError(v2, k3); + if (err === false) { + err = tmperr; + } + } else { + rEl.setErrorMessage('', ''); + } + }.bind(this)); } - if (msg !== '') { - tmperr = this._showElementError(r.errors[k], k); - if (err === false) { - err = tmperr; + else { + // prepare error so that it only triggers for real errors and not success + // msgs + + var msg = ''; + if (typeOf(r.errors[k]) !== 'null') { + msg = r.errors[k].flatten().join('
'); + } + if (msg !== '') { + tmperr = this._showElementError(r.errors[k], k); + if (err === false) { + err = tmperr; + } + } else { + el.setErrorMessage('', ''); } - } else { - el.setErrorMessage('', ''); } } if (r.modified[k]) {