{"version":3,"names":["PF","Form","operation","Request","constructor","formElement","optionsObj","super","this","options","response","status","alert","console","error","Error","ec","waiterLockId","_findElements","prototype","elmContainer","elmForm","$","get","push","addEventListener","_onSubmit","bind","getRequestValues","values","getFormValues","getActionUrl","action","e","elm","preventDefault","ui","Waiter","getInstance","acquireLock","send","onSendFinished","call","releaseLock","getInputElements","inputElements","find","each","name","type","checked","formValues","elms","i","length","value","onValidationFailed","callback","self","signals","Dispatcher","addListener","event","apply","onSuccess"],"sources":["pf.form.js"],"sourcesContent":["PF.Form = class extends PF.operation.Request {\r\n\tconstructor(formElement, optionsObj) {\r\n\t\tsuper(optionsObj);\r\n\t\t\r\n\t\tif (optionsObj['onSubmit']) {\r\n\t\t\tthis.options['onSend'] = optionsObj['onSubmit'];\r\n\t\t}\r\n\t\tif (optionsObj['onFinished']) {\r\n\t\t\tthis.options['onFinished'] = optionsObj['onFinished'];\r\n\t\t}\r\n\t\tif (optionsObj['onError']) {\r\n\t\t\tthis.options['onError'] = optionsObj['onError'];\r\n\t\t}\r\n\t\tif (!this.options['onError']) {\r\n\t\t\tthis.options['onError'] = function(response, status) {\r\n\t\t\t\talert('Internal server error');\r\n\t\t\t\tconsole.error(response);\r\n\t\t\t\tthrow Error('Internal server error');\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (optionsObj['noLock']) {\r\n\t\t\tthis.options['noLock'] = true;\r\n\t\t}\r\n\t\t\t\r\n\t\tthis.ec = [];\r\n\t\t\r\n\t\tif (typeof formElement == typeof '') {\r\n\t\t\tformElement = '#' + formElement;\r\n\t\t}\r\n\t\tthis.formElement = formElement;\r\n\r\n\t\tthis.waiterLockId = null;\r\n\t\t\r\n\t\tthis._findElements();\r\n\t}\r\n}\r\n\r\n\r\n\r\n\r\n/**\r\n* Finds elements\r\n*/\r\nPF.Form.prototype._findElements = function(elmContainer)\r\n{\r\n\tvar elms;\r\n\t\r\n\tthis.elmForm = $(this.formElement).get(0);\r\n\t\r\n\tthis.ec.push(this.elmForm.addEventListener(\"submit\", this._onSubmit.bind(this)));\r\n}\r\n\r\n\r\nPF.Form.prototype.getRequestValues = function() {\r\n\tvar values = this.getFormValues();\r\n\tvalues['__form'] = 1;\r\n\t\r\n\treturn values;\r\n}\r\n\r\nPF.Form.prototype.getActionUrl = function() {\r\n\treturn this.elmForm.action;\r\n}\r\n\r\nPF.Form.prototype._onSubmit = function(e, elm) {\r\n\t// zrusit defaultni akci\r\n\te.preventDefault();\r\n\t\r\n\tif (!this.options['noLock']) {\r\n\t\tthis.waiterLockId = PF.ui.Waiter.getInstance().acquireLock();\r\n\t}\r\n\r\n\tthis.send();\r\n}\r\n\r\nPF.Form.prototype.onSendFinished = function(response, status) {\r\n\tPF.operation.Request.prototype.onSendFinished.call(this, response, status);\r\n\r\n\tif (this.waiterLockId) {\r\n\t\tPF.ui.Waiter.getInstance().releaseLock(this.waiterLockId);\r\n\t\tthis.waiterLockId = null;\r\n\t}\r\n}\r\n\r\n/**\r\n* Returns form values\r\n*/\r\nPF.Form.prototype.getInputElements = function() {\r\n\tvar inputElements = [];\r\n\t\r\n\t// najit inputy s platnym name\r\n\t$(this.elmForm).find('input, select, textarea').each(function() {\r\n\t\tif (this.name) {\r\n\t\t\tif (this.type == 'checkbox' || this.type == 'radio') {\r\n\t\t\t\tif (this.checked) {\r\n\t\t\t\t\tinputElements.push(this);\r\n\t\t\t\t}\r\n\t\t\t}else {\r\n\t\t\t\tinputElements.push(this);\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\t\r\n\treturn inputElements;\r\n}\r\n\r\n\r\n/**\r\n* Returns form values\r\n*/\r\nPF.Form.prototype.getFormValues = function() {\r\n\tvar formValues = {};\r\n\t\r\n\tvar elms = this.getInputElements();\r\n\tfor (var i = 0; i < elms.length; i++) {\r\n\t\tformValues[elms[i].name] = elms[i].value;\r\n\t}\r\n\t\r\n\treturn formValues;\r\n}\r\n\r\n\r\n/**\r\n* Returns form values\r\n*/\r\nPF.Form.prototype.onValidationFailed = function(callback) {\r\n\tvar self = this;\r\n\r\n\tPF.signals.Dispatcher.getInstance().addListener(this, 'PF.Form.ValidationFailed', function(event) {\r\n\t\tcallback.apply(self, [event, self, self.elmForm]);\r\n\t});\r\n\t\r\n\treturn this;\r\n}\r\n\r\n\r\n/**\r\n* Returns form values\r\n*/\r\nPF.Form.prototype.onSuccess = function(callback) {\r\n\tvar self = this;\r\n\t\r\n\tPF.signals.Dispatcher.getInstance().addListener(this, 'PF.Form.Success', function(event) {\r\n\t\tcallback.apply(self, [event, self, self.elmForm]);\r\n\t});\r\n\t\r\n\treturn this;\r\n}\r\n\r\n"],"mappings":"AAAAA,GAAGC,KAAO,cAAcD,GAAGE,UAAUC,QACpCC,YAAYC,EAAaC,GACxBC,MAAMD,GAEFA,EAAqB,WACxBE,KAAKC,QAAgB,OAAIH,EAAqB,UAE3CA,EAAuB,aAC1BE,KAAKC,QAAoB,WAAIH,EAAuB,YAEjDA,EAAoB,UACvBE,KAAKC,QAAiB,QAAIH,EAAoB,SAE1CE,KAAKC,QAAiB,UAC1BD,KAAKC,QAAiB,QAAI,SAASC,EAAUC,GAG5C,MAFAC,MAAM,yBACNC,QAAQC,MAAMJ,GACRK,MAAM,wBACb,GAEGT,EAAmB,SACtBE,KAAKC,QAAgB,QAAI,GAG1BD,KAAKQ,GAAK,GAEgB,iBAAfX,IACVA,EAAc,IAAMA,GAErBG,KAAKH,YAAcA,EAEnBG,KAAKS,aAAe,KAEpBT,KAAKU,eACN,GASDlB,GAAGC,KAAKkB,UAAUD,cAAgB,SAASE,GAI1CZ,KAAKa,QAAUC,EAAEd,KAAKH,aAAakB,IAAI,GAEvCf,KAAKQ,GAAGQ,KAAKhB,KAAKa,QAAQI,iBAAiB,SAAUjB,KAAKkB,UAAUC,KAAKnB,OAC1E,EAGAR,GAAGC,KAAKkB,UAAUS,iBAAmB,WACpC,IAAIC,EAASrB,KAAKsB,gBAGlB,OAFAD,EAAe,OAAI,EAEZA,CACR,EAEA7B,GAAGC,KAAKkB,UAAUY,aAAe,WAChC,OAAOvB,KAAKa,QAAQW,MACrB,EAEAhC,GAAGC,KAAKkB,UAAUO,UAAY,SAASO,EAAGC,GAEzCD,EAAEE,iBAEG3B,KAAKC,QAAgB,SACzBD,KAAKS,aAAejB,GAAGoC,GAAGC,OAAOC,cAAcC,eAGhD/B,KAAKgC,MACN,EAEAxC,GAAGC,KAAKkB,UAAUsB,eAAiB,SAAS/B,EAAUC,GACrDX,GAAGE,UAAUC,QAAQgB,UAAUsB,eAAeC,KAAKlC,KAAME,EAAUC,GAE/DH,KAAKS,eACRjB,GAAGoC,GAAGC,OAAOC,cAAcK,YAAYnC,KAAKS,cAC5CT,KAAKS,aAAe,KAEtB,EAKAjB,GAAGC,KAAKkB,UAAUyB,iBAAmB,WACpC,IAAIC,EAAgB,GAepB,OAZAvB,EAAEd,KAAKa,SAASyB,KAAK,2BAA2BC,MAAK,WAChDvC,KAAKwC,OACS,YAAbxC,KAAKyC,MAAmC,SAAbzC,KAAKyC,KAC/BzC,KAAK0C,SACRL,EAAcrB,KAAKhB,MAGpBqC,EAAcrB,KAAKhB,MAGtB,IAEOqC,CACR,EAMA7C,GAAGC,KAAKkB,UAAUW,cAAgB,WAIjC,IAHA,IAAIqB,EAAa,CAAC,EAEdC,EAAO5C,KAAKoC,mBACPS,EAAI,EAAGA,EAAID,EAAKE,OAAQD,IAChCF,EAAWC,EAAKC,GAAGL,MAAQI,EAAKC,GAAGE,MAGpC,OAAOJ,CACR,EAMAnD,GAAGC,KAAKkB,UAAUqC,mBAAqB,SAASC,GAC/C,IAAIC,EAAOlD,KAMX,OAJAR,GAAG2D,QAAQC,WAAWtB,cAAcuB,YAAYrD,KAAM,4BAA4B,SAASsD,GAC1FL,EAASM,MAAML,EAAM,CAACI,EAAOJ,EAAMA,EAAKrC,SACzC,IAEOb,IACR,EAMAR,GAAGC,KAAKkB,UAAU6C,UAAY,SAASP,GACtC,IAAIC,EAAOlD,KAMX,OAJAR,GAAG2D,QAAQC,WAAWtB,cAAcuB,YAAYrD,KAAM,mBAAmB,SAASsD,GACjFL,EAASM,MAAML,EAAM,CAACI,EAAOJ,EAAMA,EAAKrC,SACzC,IAEOb,IACR"}