var Ite = new (function Ite() { var private = {}; var public = this; private.helper = {}; private.ajax = new IteAjax(public, private); private.route = new IteRoute(private.helper); private.validator = new IteValidatorManager(private.helper); private.storage = new IteStorage(); private.elementModules = {}; private.currentObjectId = 1; private.helper.config = new IteConfig(); private.objects = []; private.helper.createObjectId = function () { return private.currentObjectId++; } private.helper.getObject = function (htmlElement) { var element; if (htmlElement._ite) return htmlElement._ite; var parent = htmlElement.parentNode; var iteObject = null; for (var objectName in private.objects) { var item = private.objects[objectName]; var elements = new IteArray(parent.querySelectorAll(item.getSelector())); elements.each(function (element) { if (element == htmlElement) { iteObject = objectName; return true; } }); } element = new private.objects[iteObject](private.helper, htmlElement); if (private.elementModules[iteObject]) { for (var method in private.elementModules[iteObject]) { var func = private.elementModules[iteObject][method]; element[method] = func; } } htmlElement._ite = element; return element; } private.helper.extend = function (base, extend, htmlElement, scope) {//FIXME trzeba poprawić jakoś proces dziedziczenia if (typeof extend === 'string') extend = new private.objects[extend](private.helper, htmlElement, scope); for (var method in extend) { base[method] = extend[method]; } } public.setScrollPosition = function (top, left) { public.getDOMElement().scrollTo(top, left); } public.openWindow = function (URL, name, specs, replace) { return window.open(URL, name, specs, replace); } public.getStorage = function () { return private.storage; } public.createObject = function (html) { if (html.substring(0, 3) == ' 1) throw new InvalidHtmlStructureException(); return private.helper.getObject(nodes[0]); } public.reload = function () { location.reload(); } public.getAll = function () { var result = new IteArray(); for (var i = 0; i < arguments.length; i++) { var objects = document.querySelectorAll(arguments[i]); for (var j = 0; j < objects.length; j++) { result.push(private.helper.getObject(objects[j])); } } return result } public.get = function (pattern) { var object = document.querySelector(pattern); if (object == null) { throw new ObjectNotFoundException(pattern); } return private.helper.getObject(object); } public.ajax = function () { return private.ajax; } public.validator = function () { return private.validator; } public.addModule = function (name, func) { var module = new func(public, private); public[name] = function () { return module; }; } public.addElementModule = function (elementClassName, name, func) { if (!private.elementModules[elementClassName]) private.elementModules[elementClassName] = {}; private.elementModules[elementClassName][name] = func; } public.addObject = function (name, selector, implements) { implements.getSelector = function () { return selector; } private.objects[name] = implements; } public.route = function () { return private.route; } public.blur = function () { document.activeElement.blur(); } public.setCursor = function (cursor) { document.body.style.cursor = cursor; } public.getDOMElement = function () { return window; } public.escapeHtml = function (text) { text = text + ''; var map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; text = text || ''; return text.replace(/[&<>"']/g, function (m) { return map[m]; }); } public.run = function (callback) { callback.call(public, private.helper.config); private.route.init(); } //events private.helper.addEvent = function (component, eventName) { return function (callback) { var element = component.getDOMElement(); var initEpoch = new Date().getTime(); if (element.addEventListener) { element.addEventListener(eventName, function (e) { //fixed Webkit history push if (eventName == 'popstate' && new Date().getTime() - initEpoch < 500) //if requested on bind then ignore event return; var event = new IteEvent(e); var result = false; var error = undefined; try { result = callback.call(component, event); } catch (e) { error = e; } if (result || !event.isSystemHandle()) { e.preventDefault(); } if (!event.isPropagation()) { e.stopPropagation(); } if (error) throw error; }); } else if (element.attachEvent) { if (eventName == 'DOMSubtreeModified') { //emulate event var currentData = ''; var observerCallback = function () { if (component.getHtml() != currentData) { currentData = component.getHtml(); var event = new IteEvent(); var error = undefined; try { callback.call(component, event); } catch (e) { error = e; } if (error) throw error; ; } setTimeout(observerCallback, 500); }; observerCallback(); } else { if (eventName == 'change') //FIXBUG IE eventName = 'propertychange'; element.attachEvent("on" + eventName, function (e) { var event = new IteEvent(e); var result = false; var error = undefined; try { result = callback.call(component, event); } catch (e) { error = e; } if (result || !event.isSystemHandle()) { e.returnValue = false; } if (!event.isPropagation()) { e.stopPropagation(); } if (error) throw error; }); } } else { throw new NotSupportedException(); } }; } public.addEventHashChange = private.helper.addEvent(this, 'hashchange'); public.addEventClick = private.helper.addEvent(this, 'click'); public.addEventPopState = private.helper.addEvent(this, 'popstate'); })(); function IteConfig() { var private = {}; var public = this; private.route = new IteConfigRoute(); public.getRoute = function () { return private.route; } } function IteStorage() { var private = {}; var public = this; private.localStorage = window.localStorage; private.sessionStorage = window.sessionStorage; public.set = function (name, value, onlySession) { if (onlySession) private.sessionStorage.setItem(name, value); else private.localStorage.setItem(name, value); } public.get = function (name) { var value = private.sessionStorage.getItem(name); if (value) return value; else return private.localStorage.getItem(name); } public.remove = function (name) { private.localStorage.removeItem(name); private.sessionStorage.removeItem(name); } } Ite.addObject('IteObject', '*', function (helper, htmlElement, parent) { var private = {}; var public = this; private.helper = helper; private.element = htmlElement; private.objectId = private.helper.createObjectId(); private.scope = (parent != undefined ? parent : public); public.getObjectId = function () { return private.objectId; } public.getDOMElement = function () { return private.element; } public.getHtml = function () { return public.getDOMElement().innerHTML; } public.toHtml = function () { return public.getDOMElement().outerHTML; } public.setHtml = function (html) { public.getDOMElement().innerHTML = html; } public.setText = function (text) { public.getDOMElement().innerText = text; } public.getText = function () { return public.getDOMElement().innerText; } public.getPositionX = function () { return public.getDOMElement().style.left || 0; } public.getPositionY = function () { return public.getDOMElement().style.top || 0; } public.setPositionX = function (x) { public.getDOMElement().style.left = x + 'px'; } public.setPositionY = function (y) { public.getDOMElement().style.top = y + 'px'; } public.setRotateX = function (x) { public.getDOMElement().style.transform = 'rotateX(' + x + 'deg)'; public.getDOMElement().style.webkitTransform = 'rotateX(' + x + 'deg)'; } public.setRotateY = function (y) { public.getDOMElement().style.transform = 'rotateY(' + y + 'deg)'; public.getDOMElement().style.webkitTransform = 'rotateY(' + y + 'deg)'; } public.setRotate = function (deg) { public.getDOMElement().style.transform = 'rotate(' + deg + 'deg)'; public.getDOMElement().style.webkitTransform = 'rotate(' + deg + 'deg)'; } public.setBackgroundSize = function (x, y) { public.getDOMElement().style.backgroundSize = x + 'px ' + y + 'px'; } public.getWidth = function () { return public.getDOMElement().offsetWidth; } public.setWidth = function (width) { public.getDOMElement().style.width = width + 'px'; } public.getHeight = function () { return public.getDOMElement().offsetHeight; } public.setHeight = function (height) { public.getDOMElement().style.height = height + 'px'; } public.setZIndex = function (index) { public.getDOMElement().style.zIndex = index; } public.getDisplay = function () { return public.getDOMElement().style.display; } public.getOffsetX = function () { var curleft = 0; var curtop = 0; var obj = public.getDOMElement(); if (obj.offsetParent) { do { curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); } return curleft; } public.getOffsetY = function () { var curleft = 0; var curtop = 0; var obj = public.getDOMElement(); if (obj.offsetParent) { do { curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); } return curtop; } public.remove = function () { public.getDOMElement().parentNode.removeChild(public.getDOMElement()); } public.getChildren = function () { var array = new IteArray(); var children = public.getDOMElement().childNodes; for (var i = 0; i < children.length; i++) { if (children[i].tagName != undefined) array.push(private.helper.getObject(children[i])); } return array; } public.getParent = function (pattern) { if (pattern) { var all = document.querySelectorAll(pattern); var cur = public.getDOMElement(); while (cur != null && !private.collectionHas(all, cur)) { cur = cur.parentNode; } if (cur) return private.helper.getObject(cur); else throw new ObjectNotFoundException(pattern); } else { return private.helper.getObject(public.getDOMElement().parentNode); } } public.replace = function (object) { public.getParent().getDOMElement().replaceChild(object.getDOMElement(), public.getDOMElement()); private.element = object.getDOMElement(); public = object; } public.appendAfter = function (object) { var nextElement = public.next(); public.getParent().getDOMElement().insertBefore(object.getDOMElement(), nextElement.getDOMElement()); } public.next = function () { var nextSibling = public.getDOMElement().nextSibling; while (nextSibling && nextSibling.nodeType != 1) { nextSibling = nextSibling.nextSibling; } return private.helper.getObject(nextSibling); } public.prev = function () { var previousSibling = public.getDOMElement().previousSibling; while (previousSibling && previousSibling.nodeType != 1) { previousSibling = previousSibling.previousSibling; } return private.helper.getObject(previousSibling); } public.append = function (object, position) { position = (position == undefined ? -1 : position); var beforeChild = undefined; var children = public.getDOMElement().childNodes; var childrenLength = children.length; if (position < 0) { childrenLength += position; } if (position + 1 < childrenLength) beforeChild = children[position]; if (typeof object == 'object') { if (beforeChild) public.getDOMElement().insertBefore(object.getDOMElement(), beforeChild); else public.getDOMElement().appendChild(object.getDOMElement()); } else { var contener = document.createElement('div'); contener.innerHTML = object; var nodes = contener.childNodes; for (var i = 0; i < nodes.length; i++) { if (beforeChild) public.getDOMElement().insertBefore(nodes[i], beforeChild); else public.getDOMElement().appendChild(nodes[i]); } } } public.getTag = function () { return public.getDOMElement().tagName; } public.clearClass = function () { public.getDOMElement().className = ''; } public.addClass = function (className) { if (public.getDOMElement().classList) public.getDOMElement().classList.add(className); else { var currentClassName = public.getDOMElement().className; public.getDOMElement().className += (currentClassName != '' ? ' ' : '') + className; } } public.removeClass = function (className) { if (public.getDOMElement().classList) public.getDOMElement().classList.remove(className); else { var classString = ''; new IteArray(public.getDOMElement().className.split(' ')).each(function (value, key) { if (className != value) { if (key != 0) classString += ' '; classString += value; } }); public.getDOMElement().className = classString; } } public.getClass = function () { return new IteArray(public.getDOMElement().className.split(' ')); } public.isClass = function (className) { var finded = 0; var classes = public.getClass().each(function (item) { if (className == item) return true; }); return classes || false; } public.getId = function () { return public.getDOMElement().id; } public.setId = function (id) { public.getDOMElement().id = id; } public.getAttribute = function (name) { return public.getDOMElement().getAttribute(name); } public.setAttribute = function (name, value) { return public.getDOMElement().setAttribute(name, value); } public.removeAttribute = function (name) { return public.getDOMElement().removeAttribute(name); } public.focus = function () { public.getDOMElement().focus(); } public.isFocus = function () { return document.activeElement == public.getDOMElement(); } public.blur = function () { public.getDOMElement().blur(); } public.click = function () { public.getDOMElement().click(); } public.getAll = function (pattern) { var result = new IteArray(); for (var i = 0; i < arguments.length; i++) { var objects = public.getDOMElement().querySelectorAll(arguments[i]); for (var j = 0; j < objects.length; j++) { result.push(private.helper.getObject(objects[j])); } } return result } public.get = function (pattern) { var object = public.getDOMElement().querySelector(pattern); if (object == null) { throw new ObjectNotFoundException(pattern); } return private.helper.getObject(object); } public.fireEvent = function (eventName) { if (!public.isDisabled || !public.isDisabled()) { if (document.createEvent) { var evt = document.createEvent("HTMLEvents"); evt.initEvent(eventName, false, true); public.getDOMElement().dispatchEvent(evt); } else element.fireEvent('on' + eventName); } } public.getObjectName = function () { var funcNameRegex = /function (.{1,})\(/; var results = (funcNameRegex).exec((public).constructor.toString()); return (results && results.length > 1) ? results[1] : ""; } //css public.setDisplay = function (value) { public.getDOMElement().style.display = value; } //events public.addEventClick = private.helper.addEvent(private.scope, 'click'); public.addEventChange = private.helper.addEvent(private.scope, 'change'); public.addEventKeyPress = private.helper.addEvent(private.scope, 'keypress'); public.addEventKeyDown = private.helper.addEvent(private.scope, 'keydown'); public.addKeyUp = private.helper.addEvent(private.scope, 'keyup'); public.addEventMouseDown = private.helper.addEvent(private.scope, 'mousedown'); public.addEventMouseUp = private.helper.addEvent(private.scope, 'mouseup'); public.addEventDOMModified = private.helper.addEvent(private.scope, 'DOMSubtreeModified'); public.toString = function () { return 'IteObject';//FIXME tutaj muszą być odczytywane odpowiednie wartości z klas potomnych } public.getSelector = function () { return '*'; } private.collectionHas = function (a, b) { for (var i = 0, len = a.length; i < len; i++) { if (a[i] == b) return true; } return false; } }); Ite.addObject('IteFormObject', 'form', function (helper, htmlElement, parent) { var private = {}; var public = this; private.helper = helper; private.isDirty = false; private.scope = (parent != undefined ? parent : public); //extend private.helper.extend(public, 'IteObject', htmlElement, private.scope); public.getValues = function () { var values = {}; public.getAll('input', 'select', 'textarea').each(function (field) { var fieldName = field.getName(); if (fieldName != '' && !field.isDisabled() && field.getValue() != null && (field.getType() != 'radio' || field.isChecked())) { contenerBranch = values; var nameParts = new RegExp('^([^\\[]+)(\\[(.*)\\]){0,1}$', 'g').exec(fieldName); var deep = [nameParts[1]]; if (nameParts[2] != undefined) { var reArray = new RegExp('\\[([^\\[]*)\\]', 'g'); while (match = reArray.exec(fieldName)) { deep.push(match[1]); } } for (var i = 0; i < deep.length; i++) { if (contenerBranch[deep[i]] == undefined) { if (deep[i + 1] == '') contenerBranch[deep[i]] = []; else contenerBranch[deep[i]] = {}; } if (deep.length - 1 == i) { if (deep[i] == '') {//obsługa name[] - bez numerowania contenerBranch.push(field.getValue()); } else { contenerBranch[deep[i]] = field.getValue(); } } else { contenerBranch = contenerBranch[deep[i]]; //FIXME nie wiem czy tutaj też nie powinno odbywać się przez push gdy deep jest pusty } } } }); return values; } public.setValue = function (data) { for (var i in data) { if (typeof data[i] == 'object') { private.setValueDeep(data[i], i); } public.get('[name="' + i + '"]').setValue(data[i]); } } private.setValueDeep = function (data, key) { for (var i in data) { if (typeof data[i] == 'object') { private.setValueDeep(data[i], key + '[' + i + ']'); } public.get('[name="' + key + '[' + i + ']"]').setValue(data[i]); } }; //validator public.isDirty = function () { return private.isDirty; } public.setDirty = function (flag) { private.isDirty = flag; } public.getValidator = function () { if (!private.validator) { private.validator = new IteValidator(public); var validatorHelper = private.helper.validator; var defaultRules = validatorHelper.defaultRules; for (var kRule in defaultRules) { try { private.validator.addRule(kRule, defaultRules[kRule]); } catch (e) { //ignore } } private.validator.setFieldListener(validatorHelper.fieldListener); private.validator.setFormListener(validatorHelper.formListener); } return private.validator; } public.isValid = function (name) { if (private.validator == undefined) { throw new ValidatorNotFoundException(); } return private.validator.isValid(name); } public.checkFieldsValid = function () { private.validator.checkFieldsValid(); } public.setAction = function (action) { public.getDOMElement().action = action; } public.setMethod = function (method) { public.getDOMElement().method = method; } public.setTarget = function (target) { public.getDOMElement().target = target; } public.submit = function () { public.getDOMElement().submit(); } //events public.addEventSubmit = private.helper.addEvent(private.scope, 'submit'); //construct public.addEventSubmit(function () { public.setDirty(true) }); }); Ite.addObject('IteFieldObject', 'input,textarea,button,select', function (helper, htmlElement, parent) { var private = {}; var public = this; private.helper = helper; private.scope = (parent != undefined ? parent : public); //extend private.helper.extend(public, 'IteObject', htmlElement, private.scope); public.getForm = function () { return private.helper.getObject(public.getDOMElement().form); } public.getValue = function () { if (public.getType() == 'select' && public.isMultiple()) { var result = []; new IteArray(public.getDOMElement().options).each(function (option) { if (option.selected) result.push(option.value); }); return result; } else if (public.getType() == 'file') { return new IteArray(public.getDOMElement().files); } else if (public.getType() == 'radio') { var fieldSelected; Ite.getAll("[name='" + public.getName() + "']").each(function (item) { if (item.isChecked()) { fieldSelected = item; return true; } }); if (fieldSelected) return public.getDOMElement().value; return false; } else if (public.getType() != 'checkbox' || public.isChecked()) return public.getDOMElement().value; return null; } public.getCursorPosition = function () { if (public.getDOMElement().selectionStart == public.getDOMElement().selectionEnd) return public.getDOMElement().selectionStart; else return null; } public.isMultiple = function () { if (public.getType() == 'select' && public.getDOMElement().multiple) return true; return false; } /** * @arg value - data to set tag "value" * @arg silent - if true then dont execute event */ public.setValue = function (value, silent) { public.getDOMElement().value = value; if (!silent) { if (public.getTag() == 'SELECT' || public.getTag() == 'BUTTON' || (public.getTag() == 'INPUT' && public.getType() == 'checkbox')) public.fireEvent('change'); else { public.fireEvent('keypress'); public.fireEvent('keydown'); public.fireEvent('keyup'); } } } public.getType = function () { if (public.getTag() == 'SELECT') return 'select'; else return public.getAttribute('type'); } public.setType = function (type) { return public.setAttribute('type', type); } public.getName = function () { return public.getDOMElement().name } public.getMin = function () { return public.getDOMElement().getAttribute('min'); } public.setMin = function (min) { var variable = min; if (variable.constructor.name == 'Date') { var yyyy = variable.getFullYear().toString(); var mm = (variable.getMonth() + 1).toString(); var dd = variable.getDate().toString(); variable = yyyy + '-' + (mm[1] ? mm : "0" + mm[0]) + '-' + (dd[1] ? dd : "0" + dd[0]); } public.setAttribute('min', variable); } public.getMax = function () { return public.getDOMElement().getAttribute('max'); } public.setMax = function (max) { var variable = max; if (variable.constructor.name == 'Date') { var yyyy = variable.getFullYear().toString(); var mm = (variable.getMonth() + 1).toString(); var dd = variable.getDate().toString(); variable = yyyy + '-' + (mm[1] ? mm : "0" + mm[0]) + '-' + (dd[1] ? dd : "0" + dd[0]); } public.setAttribute('max', variable); } public.isRequired = function () { return public.getDOMElement().required } public.setRequired = function (flag) { if (flag) return public.getDOMElement().required = 't'; return public.getDOMElement().required = null; } public.setName = function (name) { return public.getDOMElement().name = name; } public.isChecked = function () { return public.getDOMElement().checked; } public.setChecked = function (flag) { public.getDOMElement().checked = flag; } public.getMaxLength = function () { return public.getAttribute('maxlength'); } public.setMaxLength = function (maxlength) { public.setAttribute('maxlength', maxlength); } public.getPattern = function () { return public.getAttribute('pattern'); } public.setDisabled = function (flag) { if (flag) { public.setAttribute('disabled', "disable"); } else { public.removeAttribute('disabled'); } } public.isDisabled = function (flag) { return public.getDOMElement().disabled; } public.setReadOnly = function (flag) { public.getDOMElement().readOnly = flag; } public.isReadOnly = function () { return private.getDOMElement().readOnly; } public.addEventFocus = private.helper.addEvent(private.scope, 'focus'); public.addEventBlur = private.helper.addEvent(private.scope, 'blur'); }); function IteEvent(e) { var public = this; var private = {}; private.origin = e; private.systemHandle = true; private.propagation = true; public.setSystemHandle = function (flag) { private.systemHandle = flag; } public.isSystemHandle = function () { return private.systemHandle; } public.setPropagation = function (flag) { private.propagation = flag; } public.isPropagation = function () { return private.propagation; } public.getOrigin = function () { return private.origin; } } function IteConfigRoute() { var private = {}; var public = this; private.rules = {}; public.addRule = function (pattern, controller, template) { private.rules[pattern] = [controller, template]; } public.getRules = function () { return private.rules; } } function IteRoute(helper) { var private = {}; var public = this; private.helper = helper; private.rules = {}; private.controllers = {}; private.isBind = false; private.isInit = false; private.cacheTemplate = {}; private.contener; private.loadTemplateFailListener = new IteArray(); private.changeListener = new IteArray(); private.changedListener = new IteArray(); public.init = function () { if (!private.isInit) { var rules = private.helper.config.getRoute().getRules(); private.helper.extend(private.rules, rules); private.bind(); var url = '/' + private.getURL(); for (var index in private.rules) { var rule = private.rules[index]; if (private.execute(index, url, rule[0], rule[1])) { break; } } private.isInit = true; } } public.addController = function (name, callback) { private.controllers[name] = callback; //TODO przeskanować wszystkie zasady i sprawdzić czy do jakiegoś nie jest już podpięty kontroler } public.addRule = function (pattern, controller, template) { private.rules[pattern] = [controller, template]; private.bind(); var url = '/' + private.getURL(); private.execute(pattern, url, controller, undefined, false); } public.addEventChange = function (listener) { private.changeListener.push(listener); } public.addEventChanged = function (listener) { private.changedListener.push(listener); } /** * @arg url - link to destiny page * @arg force - if is set on true then executed old method browser redirect (without HistoryApi). */ public.redirect = function (url, force) { private.changeListener.each(function (listener) { listener.call(null); }); if (!force) { for (var index in private.rules) { var rule = private.rules[index]; if (private.execute(index, url, rule[0], rule[1])) { return; } } } window.location.href = url; } public.setContener = function (contener) { private.contener = Ite.get(contener); } public.clearCache = function () { private.cacheTemplate = {}; } public.addEventLoadTemplateFail = function (callback) { private.loadTemplateFailListener.push(callback); } private.getURL = function () { var url = document.URL.substring(document.URL.indexOf('/', 9) + 1); var endUrlPosition = url.indexOf("?"); if (endUrlPosition >= 0) { url = url.substring(0, endUrlPosition); } else { var endUrlPosition = url.indexOf("#"); if (endUrlPosition >= 0) { url = url.substring(0, endUrlPosition); } } return url; } private.execute = function (pattern, url, controller, template, pushHistory) { if (pushHistory == undefined) pushHistory = true; var match = new RegExp(pattern).exec(url); if (match) { if (private.controllers[controller]) { match.splice(0, 1); if (pushHistory) { if (window.history.pushState) { window.history.pushState({ url: url, pattern: pattern, controller: controller, template: template }, null, url); } else { window.location.href = url; } } if (private.contener && template) { if (!private.cacheTemplate[url]) { for (var i = 0; i < match.length; i++) { template = template.replace('{' + (i + 1) + '}', match[i] || ''); } Ite.ajax().execute(template, 'GET', {}, true, function (data) { var tmpContener = Ite.createObject('
'); tmpContener.setHtml(data); private.contener.setHtml(''); private.contener.append(tmpContener); private.controllers[controller].apply(null, match); private.cacheTemplate[url] = tmpContener;//tutaj zmienic na dat private.changedListener.each(function (listener) { listener.call(null); }); }, function (code, data, headers) { private.loadTemplateFailListener.each(function (listener) { listener.call(null, template, code, data, headers); }); private.changedListener.each(function (listener) { listener.call(null); }); }); } else { private.contener.setHtml(''); private.contener.append(private.cacheTemplate[url]); // private.controllers[controller].apply(null,match); private.changedListener.each(function (listener) { listener.call(null); }); } } else { private.controllers[controller].apply(null, match); } } return true; } } private.bind = function () { if (!private.isBind) { var hashClick = {}; var callback = function () { var elements = {}; Ite.getAll('a').each(function (value) { var href = value.getAttribute('href'); var target = value.getAttribute('target'); if (target || !href || hashClick[value.getObjectId()]) { return; } value.addEventClick(function (e) { e.setSystemHandle(false); private.changeListener.each(function (listener) { listener.call(null); }); for (var index in private.rules) { var rule = private.rules[index]; if (private.execute(index, href, rule[0], rule[1])) { return; } } window.location.href = href; }); hashClick[value.getObjectId()] = true; }); } callback(); Ite.get('body').addEventDOMModified(function (e) { callback(); }); Ite.addEventPopState(function (e) { var state = e.getOrigin().state; private.changeListener.each(function (listener) { listener.call(null); }); if (state) private.execute(state.pattern, state.url, state.controller, state.template, false); else { var url = '/' + private.getURL(); for (var index in private.rules) { var rule = private.rules[index]; if (private.execute(index, url, rule[0], rule[1], false)) { return; } } window.location.href = url; } }); private.isBind = true; } } } function IteAjax() { var private = {}; var public = this; public.POST = 'POST'; public.GET = 'GET'; private.listenerRequests = new IteArray(); private.listenerResponses = new IteArray(); public.addEventRequest = function (listener) { private.listenerRequests.push(listener); } public.addEventResponse = function (listener) { private.listenerResponses.push(listener); } public.uploadFile = function (url, file, fields, success, progress, fail) { private.executeEvents(private.listenerRequests); var formData = new FormData(); formData.append('file', file, file.name); for (var i in fields) { formData.append(i, fields[i]); } var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { var headers = private.decodeHeaders(xmlhttp.getAllResponseHeaders()); var data = private.encodeResponseData(xmlhttp.responseText, headers); if (xmlhttp.status == 200) { success(data); } else { fail(xmlhttp.status, data); } private.executeEvents(private.listenerResponses); } } xmlhttp.open("POST", url, true); // xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //FIXME ustawiać chyba tylko dla POST xmlhttp.send(formData); } public.execute = function (url, method, arguments, async, success, fail) { if (method != public.POST && method != public.GET) { throw new InvalidArgumentValueException('method', 'POST or GET'); } if (arguments == undefined) { arguments = {}; } if (async == undefined) { async = true; } private.executeEvents(private.listenerRequests); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4) { var headers = private.decodeHeaders(xmlhttp.getAllResponseHeaders()); var data = private.encodeResponseData(xmlhttp.responseText, headers); if (xmlhttp.status == 200) { success(data); } else { fail(xmlhttp.status, data, headers); } private.executeEvents(private.listenerResponses); } } xmlhttp.open(method, url, async); xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //FIXME ustawiać chyba tylko dla POST xmlhttp.setRequestHeader("X-Requested-With", "XMLHttpRequest"); var data = private.formData(arguments); xmlhttp.send(private.encodeQueryString(data)); return xmlhttp; } private.formDataDeep = function (key, value) { var result = []; if (typeof value == 'object') { for (var i in value) { var data = private.formDataDeep(key + '[' + i + ']', value[i]); result = result.concat(data); } return result; } else { return [[key, value]]; } }; private.formData = function (value) { var result = {}; for (var i in value) { var data = private.formDataDeep(i, value[i]); new IteArray(data).each(function (deep) { result[deep[0]] = deep[1]; }); } return result; }; private.executeEvents = function (contener) { contener.each(function (item) { item.call(null); }); } private.encodeResponseData = function (data, headers) { var contentType = headers['content-type']; try { if (contentType != undefined) { switch (contentType) { case 'application/json': return JSON.parse(data); } } } catch (err) { return null; } return data; } private.decodeHeaders = function (headers) { var result = {}; var records = headers.toLowerCase().split("\r\n"); for (var i = 0; i < records.length - 1; i++) { var fields = records[i].split(": ", 2); result[fields[0]] = fields[1]; } return result; } private.encodeQueryString = function (fields) { var result = ''; var first = true; for (var kField in fields) { if (first) { first = false; } else { result += '&'; } result += kField + '=' + encodeURIComponent(fields[kField]); } return result; } } function IteArray(data) { var public = this; var private = {}; private.elements = []; private.maxIndex = 0; public.push = function (element) { private.elements.push(element); public[private.maxIndex++] = element; } public.each = function (callback) { var elements = private.elements; for (var i = 0; i < elements.length; i++) { var result = callback(elements[i], i); if (result) return result; } } public.contains = function (value) { if (private.elements.indexOf != undefined) { if (private.elements.indexOf(value) >= 0) return true; else return false; } else { for (var i = 0; i < private.elements.length; i++) { if (private.elements[i] == value) return true; } return false; } } public.getFirst = function () { if (private.elements.length > 0) return private.elements[0]; else throw new ObjectIsEmptyException(); } public.getLast = function () { if (private.elements.length > 0) return private.elements[private.elements.length - 1]; else throw new ObjectIsEmptyException(); } public.length = function () { return private.elements.length; } public.remove = function (index) { private.elements.splice(index, 1); for (var i = index; i < private.elements.length - 1; i++) { public[i] = private.elements[i + 1]; } private.maxIndex--; delete public[private.maxIndex]; } //construct if (data != undefined) { for (var i = 0; i < data.length; i++) { public.push(data[i]); } } public.toString = function () { return private.elements; } public.clear = function () { for (var i = public.length() - 1; i >= 0; i--) { public.remove(i); } }; } function IteValidatorManager(helper) { var public = this; var private = {}; private.helper = helper; private.helper.validator = { 'defaultRules': {} , 'fieldListener': function () { } , 'formListener': function () { } }; public.addRule = function (name, callback) { private.helper.validator.defaultRules[name] = callback; } public.setFieldListener = function (callback) { private.helper.validator.fieldListener = callback; } public.setFormListener = function (callback) { private.helper.validator.formListener = callback; } } function IteValidator(form) { var public = this; var private = {}; private.rules = {}; private.values = {}; private.isEnable = false; private.form = form; private.fieldListener = function () { }; private.formListener = function () { }; private.formValid = undefined; public.setFieldListener = function (listener) { private.fieldListener = listener; } public.setFormListener = function (listener) { private.formListener = listener; } public.setEnable = function (flag) { private.isEnable = flag; if (private.isEnable) {//FIXME dorobić wyłączanie walidacji czyli wyzerować wszystko private.form.setAttribute('novalidate', true); var countNodes = 0; private.form.getAll('input', 'select', 'textarea').each(function (value) { countNodes++; if (value.getName() != '') { private.setFieldValidator(value); } }); private.form.addEventDOMModified(function () { var currentCount = private.form.getAll('input').length(); if (currentCount != countNodes) { countNodes = currentCount; var fields = new IteArray(); private.form.getAll('input', 'select', 'textarea').each(function (value) { var fieldName = value.getName(); if (fieldName != '' && !public.isRule(value.getName()) && value.getType() != 'button' && value.getType() != 'submit') { private.setFieldValidator(value); } fields.push(value.getName()); }); private.reload(fields); } }); } } public.addRule = function (name, callback) { private.rules[name] = callback; if (private.form != undefined) { var field = private.form.get("[name='" + name + "']"); private.setFieldEvent(field); var correct = callback(field.getValue()); private.values[name] = correct; private.fieldListener(field, correct); var formValid = public.isValid(); if (formValid != private.formValid) { private.formValid = formValid; private.formListener(public.isValid()); } } } public.isRule = function (name) { return private.rules[name] != undefined; } private.getFieldListener = function () { return private.fieldListener; } private.getFormListener = function () { return private.formListener; } private.setFieldCorrect = function (name, correct) { var value = private.values[name]; private.values[name] = correct; return value != correct; } public.isValid = function (name) { if (name) { return private.isValidField(name); } else { for (var name in private.values) { if (!private.isValidField(name)) { return false; } } } return true; }; private.isValidField = function (name) { return private.values[name]; }; public.checkFieldsValid = function () { private.form.getAll('input', 'select', 'textarea').each(function (field) { var fieldName = field.getName(); var rule = private.rules[fieldName]; if (rule != undefined) { var correct = ((field.isDisabled() || !field.isRequired() && field.getValue() == '') ? true : rule(field.getValue())); private.setFieldCorrect(fieldName, correct); private.fieldListener(field, private.values[fieldName]); } }); private.formListener(public.isValid()); } private.setFieldEvent = function (field) { var fieldName = field.getName(); private.values[fieldName] = false; var funcCheck = function (e) { setTimeout(function () { var value = field.getValue(); var validateCallback = private.getRule(fieldName); var correct = ((field.isDisabled() || !field.isRequired() && value == '') ? true : validateCallback(value)); var validatorFieldListener = private.getFieldListener(); if (private.setFieldCorrect(fieldName, correct)) { validatorFieldListener(field, correct); currentValid = public.isValid(); if (private.formValid != currentValid) { private.formValid = currentValid; private.formListener(private.formValid); } } }, 1); }; switch (field.getType()) { case 'checkbox': case 'select': case 'file': field.addEventChange(funcCheck); break; case 'submit': case 'button': break; default: field.addEventKeyDown(funcCheck); field.addEventBlur(funcCheck); } } private.setFieldValidator = function (field) { var fieldName = field.getName(); if (!public.isRule(fieldName)) { switch (field.getType()) { case 'email': public.addRule(fieldName, function (value) { if (/^[^@]+@[^@]+$/.exec(value)) { return true; } else { return false; } }); break; case 'number': public.addRule(fieldName, function (value) { var pattern = field.getPattern(); if (pattern != null) { if ((field.isRequired() && value != '' || !field.isRequired()) && (new RegExp(pattern).exec(value))) return true; else return false; } else { var min = field.getMin(); if (/^(|-)[0-9]+(\.[0-9]+){0,1}$/.exec(value) && (min == null || value >= min)) { return true; } else { return false; } } }); break; case 'date': public.addRule(fieldName, function (value) { if (new Date(value) != 'Invalid Date') { return true; } else { return false; } }); break; case 'radio': public.addRule(fieldName, function (value) { if (!field.isRequired() || field.isRequired() && field.getValue()) { return true; } else { return false; } }); break; case 'checkbox': public.addRule(fieldName, function (value) { if (!field.isRequired() || field.isRequired() && field.isChecked()) { return true; } else { return false; } }); break; case 'file': public.addRule(fieldName, function (value) { if (!field.isRequired() || field.isRequired() && field.getValue().length() > 0) { return true; } else { return false; } }); break; case 'submit': case 'button': case 'hidden': break; default: var pattern = field.getPattern(); public.addRule(fieldName, function (value) { if ((field.isRequired() && value != '' || !field.isRequired()) && (pattern == null || new RegExp(pattern).exec(value))) return true; else return false; }); break; } } } private.reload = function (fields) { for (var i in private.rules) { if (!fields.contains(i)) { delete private.rules[i]; delete private.values[i]; } } } private.getRule = function (name) { return private.rules[name]; } } function RequireArgumentException(argument) { var private = {}; private.message = 'Require argument "' + argument + "' value."; var public = this; public.toString = function () { return private.message; } } function InvalidArgumentValueException(argument, values) { var private = {}; var public = this; private.message = 'Invalid argument "' + argument + '" value: ' + values + '.'; public.toString = function () { return private.message; } } function ObjectNotFoundException(pattern) { var private = {}; var public = this; private.message = 'Object not found for pattern"' + pattern + '".'; public.toString = function () { return private.message; } } function ValidatorNotFoundException() { var private = {}; var public = this; private.message = 'Validator not found.'; public.toString = function () { return private.message; } } function InvalidHtmlStructureException() { var private = {}; var public = this; private.message = 'Invalid html structure.'; public.toString = function () { return private.message; } } function ObjectIsEmptyException() { var private = {}; var public = this; private.message = 'Object is empty.'; public.toString = function () { return private.message; } } function NotSupportedException() { var private = {}; var public = this; private.message = 'Not supported.'; public.toString = function () { return private.message; } }Ite.addModule('loadMask', function (unsecureContent, secureContent) { var prv = {}; var pub = this; prv.loadMask = null; prv.skipFields = {}; prv.wasFields = false; pub.show = function () { // if(private.loadMask==null){ // private.loadMask=Ite.createObject('
'); // Ite.get('body').append(private.loadMask); // } Ite.setCursor('wait'); Ite.getAll('input', 'textarea', 'button', 'select').each(function (field) { prv.wasFields = true; if (field.isDisabled()) prv.skipFields[field.getName() || 'unknown'] = true; else field.setDisabled(true); }); } pub.hide = function () { // if(private.loadMask!=null){ // private.loadMask.remove(); // private.loadMask=null; // } Ite.setCursor('auto'); if (prv.wasFields) { Ite.getAll('input', 'textarea', 'button', 'select').each(function (field) { if (!prv.skipFields[field.getName() || 'unknown']) field.setDisabled(false); }); } prv.skipFields = {}; prv.wasFields = false; } }); Ite.addModule('api', function (unsecureContent, secureContent) { var prv = {}; var pub = this; prv.unsecureContent = unsecureContent; prv.secureContent = secureContent; prv.failListener = function () { }; prv.sessionThreadId = null; prv.construct = function () { Ite.ajax().addEventRequest(function () { prv.sessionThread(); }); prv.sessionThread(); }; prv.sessionThread = function () { if (prv.sessionThreadId != null) { clearTimeout(prv.sessionThreadId); } if (typeof SESSION_TIME !== 'undefined') { prv.sessionThreadId = setTimeout(prv.callbackRestoreSession, SESSION_TIME * 1000); } }; prv.callbackRestoreSession = function () { var loginForm = '/'; var confirm = function () { var me = this; var formData = {}; var username = Ite.getStorage().get('lastUsername'); if (!username) { Ite.route().redirect(loginForm, true); } else { formData['username'] = username; formData['password'] = me.get('form').getValues()['password']; if (formData['password']) { Ite.api().authenticate(formData, function (data) { me.remove(); }); } } }; var dialog = Ite.dialogBox().dynamic('Sesja wygasła. Podaj ponownie hasło.
', { 'Zatwierdź': confirm , 'Anuluj': function () { Ite.route().redirect(loginForm, true); } }, false); dialog.get('form').addEventSubmit(function (e) { e.setSystemHandle(false); confirm.call(dialog); }); }; pub.addFailListener = function (callback) { prv.failListener = callback; } pub.authenticate = function (data, success, fail) { pub.send('login.json', data, success, fail); } pub.clientAdd = function (data, success, fail) { data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = (data['allowMarketing'] == 'true' ? true : false); data['allowDeliverMarketing'] = (data['allowDeliverMarketing'] == 'true' ? true : false); data['companyName'] = data['companyName'] || ''; data['telephone'] = data['telephonePrefix'] + data['telephone']; delete data['telephonePrefix']; pub.send('client/add.json', data, success, fail); } pub.clientEdit = function (data, success, fail) { data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = (data['allowMarketing'] == 'true' ? true : false); data['allowDeliverMarketing'] = (data['allowDeliverMarketing'] == 'true' ? true : false); data['companyName'] = data['companyName'] || ''; data['telephone'] = data['telephonePrefix'] + data['telephone']; delete data['telephonePrefix']; pub.send('client/edit.json', data, success, fail); } pub.clientRemove = function (data, success, fail) { pub.send('client/remove.json', data, success, fail); } pub.clientListFindRecords = function (data, sort, page, success, fail) { pub.send('client/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.contractorAdd = function (data, success, fail) { pub.send('contractor/add.json', data, success, fail); } pub.contractorEdit = function (data, success, fail) { pub.send('contractor/edit.json', data, success, fail); } pub.contractorRemove = function (data, success, fail) { pub.send('contractor/remove.json', data, success, fail); } pub.contractorListFindRecords = function (data, sort, page, success, fail) { pub.send('contractor/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.contractorImportFile = function (file, success, fail) { pub.upload('contractor/import.json', file, {}, success, fail); } pub.multiImportFile = function (file, success, fail) { pub.upload('multiImport/import.json', file, {}, success, fail); } pub.commodityTypeAdd = function (data, success, fail) { pub.send('commodityType/add.json', data, success, fail); } pub.commodityTypeEdit = function (data, success, fail) { pub.send('commodityType/edit.json', data, success, fail); } pub.commodityTypeRemove = function (data, success, fail) { pub.send('commodityType/remove.json', data, success, fail); } pub.commodityTypeRemove = function (data, success, fail) { pub.send('commodityType/remove.json', data, success, fail); } pub.commodityTypeListFindRecords = function (data, sort, page, success, fail) { pub.send('commodityType/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.commodityTypeImportFile = function (file, success, fail) { pub.upload('commodityType/import.json', file, {}, success, fail); } pub.policyShowUpdate = function (data, success, fail) { pub.send('policy/update.json', data, success, fail); } pub.policyCheckWaiting = function (success, fail) { pub.send('policy/checkWaiting.json', {}, success, fail, false); } pub.logListGetEntities = function (data, success, fail) { pub.send('log/list/getEntities.json', {id: data}, success, fail); } pub.policyAddSelectCreditInsurer = function (amountCart, amountOwn, countInstallment, offerInstallment, bankOffer, policyGD, success, fail) { amountCart = amountCart.replace(',', '.'); amountOwn = amountOwn.replace(',', '.'); pub.send('policy/add/selectCreditInsurer.json', { amountCart: amountCart, amountOwn: amountOwn, countInstallment: countInstallment, offerInstallment: offerInstallment, bankOffer: bankOffer, policyGD: policyGD }, success, fail); } pub.policyChangeStatus = function (values, success, fail) { pub.send('policy/changeStatus.json', values, success, fail); } pub.logFindRecords = function (data, success, fail) { data['entity'] = data['entity'] || ''; pub.send('log/list/findRecords.json', data, success, fail); } pub.userListFindRecords = function (data, sort, page, success, fail) { pub.send('user/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.userImportFile = function (file, success, fail) { pub.upload('user/import.json', file, {}, success, fail); } pub.policyListFindRecords = function (data, sort, page, success, fail) { pub.send('policy/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.categoryAdd = function (data, success, fail) { var index = 0; for (var i = 0 in data['offers']) { data['offers[' + index + '][id]'] = data['offers'][i].id; data['offers[' + index + '][guaranteeRange]'] = data['offers'][i].guaranteeRange; data['offers[' + index + '][netto]'] = data['offers'][i].netto; data['offers[' + index + '][brutto]'] = data['offers'][i].brutto; index++; } delete data['offers']; pub.send('category/add.json', data, success, fail); } pub.categoryEdit = function (data, success, fail) { var index = 0; for (var i = 0 in data['offers']) { data['offers[' + index + '][id]'] = data['offers'][i].id; data['offers[' + index + '][guaranteeRange]'] = data['offers'][i].guaranteeRange; data['offers[' + index + '][netto]'] = data['offers'][i].netto; data['offers[' + index + '][brutto]'] = data['offers'][i].brutto; index++; } delete data['offers']; pub.send('category/edit.json', data, success, fail); } pub.categoryRemove = function (data, success, fail) { pub.send('category/remove.json', data, success, fail); } pub.categoryImportFile = function (file, success, fail) { pub.upload('category/import.json', file, {}, success, fail); } pub.categoryListFindRecords = function (data, success, fail) { pub.send('category/list/findRecords.json', data, success, fail); } pub.offerAdd = function (data, success, fail) { pub.send('offer/add.json', data, success, fail); } pub.offerEdit = function (data, success, fail) { pub.send('offer/edit.json', data, success, fail); } pub.offerRemove = function (data, success, fail) { pub.send('offer/remove.json', data, success, fail); } pub.offerListFindRecords = function (data, sort, page, success, fail) { pub.send('offer/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.offerImportFile = function (file, success, fail) { pub.upload('offer/import.json', file, {}, success, fail); } pub.variantSearch = function (data, success, fail) { pub.send('variant/search.json', data, success, fail); } pub.variantEdit = function (data, success, fail) { var parameters = {}; var index = 0; for (var i = 0 in data['offers']) { parameters['offers[' + index + '][id]'] = data['offers'][i].id; parameters['offers[' + index + '][netto]'] = data['offers'][i].netto; parameters['offers[' + index + '][brutto]'] = data['offers'][i].brutto; index++; } pub.send('variant/edit.json', parameters, success, fail); } pub.roleFindResources = function (id, success, fail) { pub.send('role/findResources.json', {resource: id}, success, fail); } pub.brandAdd = function (data, success, fail) { pub.send('brand/add.json', data, success, fail); } pub.brandEdit = function (data, success, fail) { pub.send('brand/edit.json', data, success, fail); } pub.brandListFindRecords = function (data, sort, page, success, fail) { pub.send('brand/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.brandImportFile = function (file, success, fail) { pub.upload('brand/import.json', file, {}, success, fail); } pub.storeAdd = function (data, success, fail) { pub.send('store/add.json', data, success, fail); } pub.storeEdit = function (data, success, fail) { data['showSellerCommission'] = data['showSellerCommission'] === 'on'; pub.send('store/edit.json', data, success, fail); } pub.storeRemove = function (data, success, fail) { pub.send('store/remove.json', data, success, fail); } pub.storeListFindRecords = function (data, sort, page, success, fail) { pub.send('store/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.storeImportFile = function (file, success, fail) { pub.upload('store/import.json', file, {}, success, fail); } pub.questionnaireListFindRecords = function (data, sort, page, success, fail) { pub.send('questionnaire/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.questionnaireRemove = function (data, success, fail) { pub.send('questionnaire/remove.json', data, success, fail); } pub.questionnaireFetch = function (data, success, fail) { pub.send('questionnaire/fetch.json', data, success, fail); } pub.policyAddFetchQuestionnaire = function (success, fail) { pub.send('policy/add/questionnaire.json', {}, success, fail); } pub.policyAdd = function (data, success, fail) { data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = data['allowMarketing'] == 'true'; data['orderPromotion'] = data['orderPromotion'] == 'true'; data['allowDeliverMarketing'] = data['allowDeliverMarketing'] == 'true'; data['companyName'] = data['companyName'] || ''; data['amount'] = data['amount'].replace(',', '.'); if (data['telephone'] != '') data['telephone'] = data['telephonePrefix'] + data['telephone']; delete data['telephonePrefix']; pub.send('policy/add.json', data, success, fail); } pub.policyAddFreeRepair = function (data, success, fail) { data['type'] = 1; data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = data['allowMarketing'] == 'true'; data['orderPromotion'] = data['orderPromotion'] == 'true'; data['allowDeliverMarketing'] = data['allowDeliverMarketing'] == 'true'; data['companyName'] = data['companyName'] || ''; data['telephone'] = data['telephonePrefix'] + data['telephone']; delete data['telephonePrefix']; pub.send('policy/addFreeRepair.json', data, success, fail); } pub.policyAddPPI = function (data, success, fail) { data['type'] = 1; data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = data['allowMarketing'] == 'true'; data['orderPromotion'] = data['orderPromotion'] == 'true'; data['allowDeliverMarketing'] = data['allowDeliverMarketing'] == 'true'; data['companyName'] = data['companyName'] || ''; data['cartAmount'] = data['cartAmount'].replace(',', '.'); data['ownAmount'] = data['ownAmount'].replace(',', '.'); if (data['telephone'] != '') data['telephone'] = data['telephonePrefix'] + data['telephone']; delete data['telephonePrefix']; pub.send('policy/addPPI.json', data, success, fail); } pub.policyAddSecondStep = function (data, success, fail) { pub.send('policy/add/secondStep.json', data, success, fail); } pub.policyAddGetOffers = function (data, success, fail) { pub.send('policy/add/getOffers.json', data, success, fail); } pub.policyAddGetBankOffers = function (data, success, fail) { pub.send('policy/add/getBankOffers.json', data, success, fail); } pub.policyAddSelectInsurer = function (data, success, fail) { data['amount'] = data['amount'].replace(',', '.'); pub.send('policy/add/selectInsurer.json', data, success, fail); } pub.policyRemove = function (data, success, fail) { pub.send('policy/remove.json', data, success, fail); } pub.policySummaryConfirm = function (success, fail) { pub.send('policy/add/confirm.json', {}, success, fail); } pub.policySummaryCancel = function (data, success, fail) { pub.send('policy/add/cancel.json', data, success, fail); } pub.policySummaryFreeRepair = function (success, fail) { pub.send('policy/add/freeRepair.json', {}, success, fail); } pub.policyShowFreeRepair = function (data, success, fail) { pub.send('policy/show/freeRepair.json', data, success, fail); } pub.policyConfirm = function (id, success, fail) { pub.send('policy/show/confirm.json', {id: id}, success, fail); } pub.policyCancel = function (data, success, fail) { pub.send('policy/show/cancel.json', data, success, fail); } pub.policySend = function (data, success, fail) { pub.send('policy/show/send.json', data, success, fail); } pub.bankAdd = function (data, success, fail) { pub.send('bank/add.json', data, success, fail); } pub.bankEdit = function (data, success, fail) { pub.send('bank/edit.json', data, success, fail); } pub.bankListFindRecords = function (data, sort, page, success, fail) { pub.send('bank/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.userAdd = function (data, success, fail) { pub.send('user/add.json', data, success, fail); } pub.userEdit = function (data, success, fail) { pub.send('user/edit.json', data, success, fail); } pub.authenticateActivate = function (data, success, fail) { pub.send('authenticate/activate.json', data, success, fail); } pub.authenticateForgotPassword = function (data, success, fail) { pub.send('forgotPassword.json', data, success, fail); } pub.authenticateResetPassword = function (data, success, fail) { pub.send('resetPassword.json', data, success, fail); } pub.roleAdd = function (data, success, fail) { if (data['functionalities']) { for (var i = 0; i < data['functionalities'].length; i++) { data['functionalities[' + i + ']'] = data['functionalities'][i]; } delete data['functionalities']; } if (data['resources']) { for (var i = 0; i < data['resources'].length; i++) { data['resources[' + i + ']'] = data['resources'][i]; } delete data['resources']; } pub.send('role/add.json', data, success, fail); } pub.roleEdit = function (data, success, fail) { if (data['functionalities']) { for (var i = 0; i < data['functionalities'].length; i++) { data['functionalities[' + i + ']'] = data['functionalities'][i]; } delete data['functionalities']; } if (data['resources']) { for (var i = 0; i < data['resources'].length; i++) { data['resources[' + i + ']'] = data['resources'][i]; } delete data['resources']; } pub.send('role/edit.json', data, success, fail); } pub.roleListFindRecords = function (data, sort, page, success, fail) { pub.send('role/list/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); }; pub.roleImportFile = function (file, success, fail) { pub.upload('role/import.json', file, {}, success, fail); } pub.reportHestiaSyncSearch = function (data, success, fail) { pub.send('report/hestiaSync/findRecords.json', data, success, fail); } pub.reportPPISearch = function (data, sort, page, success, fail) { pub.send('report/ppi/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.reportPolicySearch = function (data, sort, page, success, fail) { pub.send('report/policy/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.reportTransactionSearch = function (data, success, fail) { pub.send('report/transaction/findRecords.json', data, success, fail); } pub.reportTransactionGBGenerateExport = function (data, success, fail) { pub.send('report/transactionGB/export.json', data, success, fail, false); } pub.exportGetStatus = function (data, success, fail) { pub.send('export/getStatus.json', data, success, fail, false); } pub.reportSoldSearch = function (data, success, fail) { pub.send('report/sold/findRecords.json', data, success, fail); } pub.reportAwpSearch = function (data, sort, page, success, fail) { pub.send('report/mondial/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.reportClaimSearch = function (data, sort, page, success, fail) { pub.send('report/claim/findRecords.json?sort=' + sort + '&page=' + page, data, success, fail); } pub.parameterPolicyTermAwpEdit = function (data, success, fail) { pub.send('parameter/edit/policyTermMondialEdit.json', data, success, fail); } pub.parameterInsurerQuoteEdit = function (data, success, fail) { pub.send('parameter/edit/insurerQuote.json', data, success, fail); } pub.send = function (method, arguments, success, fail, loadMask) { loadMask = loadMask == undefined ? true : loadMask; if (loadMask) { Ite.get('.load-mask').removeClass('hide'); } prv.unsecureContent.ajax().execute('/' + method, prv.unsecureContent.ajax().POST, arguments, true , function (data) { if (loadMask) { Ite.get('.load-mask').addClass('hide'); } success.call(unsecureContent, data); } , function (code, data, headers) { if (loadMask) { Ite.get('.load-mask').addClass('hide'); } if (data) { code = data.code; data = data.message; } if (data == undefined) data = 'Wystąpił błąd wewnętrzny.'; if (fail != undefined) { fail.call(unsecureContent, code, data); } else { prv.failListener(code, data, headers); } }); } pub.upload = function (method, file, arguments, success, fail) { Ite.get('.load-mask').removeClass('hide'); prv.unsecureContent.ajax().uploadFile('/' + method, file, {json: JSON.stringify(arguments)} , function (data) { Ite.get('.load-mask').addClass('hide'); success.call(unsecureContent, data); } , function () { } , function (code, data, headers) { Ite.get('.load-mask').addClass('hide'); if (data) { code = data.code; data = data.message; } if (data == undefined) data = 'Wystąpił błąd wewnętrzny.'; if (fail != undefined) { fail.call(unsecureContent, code, data); } else { prv.failListener(code, data, headers); } }); } prv.construct(); });Ite.addModule('notify', function (unsecureContent, secureContent) { var private = {}; var public = this; public.addInfo = function (message, time) { if (time === undefined) { time = 5000; } var button = time == 0; return private.addObject('success', message, time, button); } public.addWarning = function (message, time) { return private.addObject('info', message, time); } public.addHint = function (message, time) { return private.addObject('warning', message, time, true); } public.addError = function (message) { return private.addObject('danger', message, 0, true); } private.addObject = function (className, message, time, button) { time = time == undefined ? 0 : time button = button || false; var template = ''; var object = Ite.createObject(template); var content = ''; if (time > 0) { setTimeout(function () { object.remove(); }, time); } if (button) { content = ''; } content += message; object.setHtml(content); if (button) { object.get('.close').addEventClick(function (e) { object.remove(); }); } Ite.get('.notify-contener').append(object, 0); return object; }; });Ite.addModule('dialogBox', function (unsecureContent, secureContent) { var private = {}; var public = this; public.confirm = function (message, callback) { public.dynamic(message, { 'Tak': function () { callback.call(this, true); this.remove(); }, 'Nie': function () { callback.call(this, false); this.remove(); } }); }; public.dynamic = function (message, buttons, closeButton) { closeButton = (closeButton == undefined ? true : closeButton); var template = ''; var object = Ite.createObject(template); for (var button in buttons) { var buttonElement = Ite.createObject(''); (function (callback) { buttonElement.addEventClick(function () { callback.call(object); }); }(buttons[button])); object.get('.modal-footer').append(buttonElement); } if (closeButton) { object.get('.bootbox-close-button').addEventClick(function (e) { object.remove(); }); } Ite.get('body').append(object); return object; }; });Ite.addObject('IteFieldSearch', '[data-type="search"]', function (helper, htmlElement, parent) { var private = {}; var public = this; private.helper = helper; private.scope = (parent != undefined ? parent : public); //extend private.helper.extend(public, 'IteFieldObject', htmlElement, private.scope); private.requireReload = false; private.listContener; private.ignoreChange = false; private.enable = true; private.labelCallback = null; private.storage = null; private.callback = null; private.notResultCallback = null; private.beforeRenderCallback = function () { }; private.beforeExecuteCallback = function () { }; private.afterExecuteCallback = function () { }; private.arguments = {}; private.cursor = 0; private.delayTime = 600; private.result = new IteArray(); public.setStorage = function (storage) { private.storage = storage; } public.setRecordFormatter = function (formatter) { private.labelCallback = formatter; } public.addEventSelectedRecord = function (callback) { private.callback = callback; } public.addEventNoRecords = function (callback) { private.notResultCallback = callback; } public.addEventAfterExecute = function (callback) { private.afterExecuteCallback = callback; }; public.addEventBeforeExecute = function (callback) { private.beforeExecuteCallback = callback; }; public.addEventBeforeRender = function (callback) { private.beforeRenderCallback = callback; }; public.setExtraStorageArguments = function (arguments) { private.arguments = arguments; } public.addResultItem = function (label, callback, data) { private.result.push({label: label, callback: callback, data: data}); }; public.clearResultItems = function () { private.result.clear(); }; public.getResultItems = function () { return private.result; }; public.setDelayTime = function (miliseconds) { private.delayTime = miliseconds; } private.init = function () { private.field = public; private.createComponents(); var currentLabel = private.field.getValue(); var delayExecute = null; private.field.addEventKeyDown(function (e) { private.ignoreChange = true; var event = e.getOrigin(); if (event.keyCode == 13) {//enter if (delayExecute) clearTimeout(delayExecute); if (private.pressEnter()) { currentLabel = private.field.getValue(); e.setSystemHandle(false); } } else if (event.keyCode == 40) private.moveCursor(1); else if (event.keyCode == 38) private.moveCursor(-1); else { if (delayExecute) clearTimeout(delayExecute); delayExecute = setTimeout(function () { if (private.field.getValue() != currentLabel) { private.execute(); currentLabel = private.field.getValue(); } }, private.delayTime); } }); private.field.addEventBlur(function (e) { // if(!private.field.getValue()) // private.field.setValue(''); // else{ // var record=private.listContener.get('.auto-complete-row[data-id="'+private.field.getValue()+'"]'); // private.field.setValue(record.getHtml()); // } currentLabel = private.field.getValue(); private.render(false); }); } private.moveCursor = function (vector) { var records = private.listContener.getAll('.auto-complete-row'); private.cursor += vector; if (private.cursor >= records.length()) private.cursor = 0; else if (private.cursor < 0) private.cursor = records.length() - 1; try { private.listContener.get('.auto-complete-row-enable').removeClass('auto-complete-row-enable'); } catch (e) { //ignore } records[private.cursor].addClass('auto-complete-row-enable'); } private.createComponents = function () { private.listContener = Ite.createObject('
'); private.listContener.setWidth(private.field.getWidth()); private.render(false); Ite.get('body').append(private.listContener); } private.pressEnter = function () { if (private.listContener.getDisplay() == 'block') { try { var record = private.result[private.cursor]; record.callback.call(public, record.data); private.render(false); return true; } catch (e) { //skipp } } } private.execute = function () { if (!private.isProces) { var phrase = private.field.getValue(); if (phrase == '') { private.render(false); } else { private.beforeExecuteCallback.call(public); private.requireReload = false; private.isProces = true; private.showLoadingLabel(); private.arguments['phrase'] = private.field.getValue(); private.request = Ite.ajax().execute(private.storage, Ite.ajax().POST, private.arguments, true, function (data) { private.isProces = false; if (private.enable && private.field.isFocus()) { private.result = new IteArray(); for (var i = 0; i < data.length; i++) { private.result.push({ label: private.labelCallback(data[i]), callback: private.callback, data: data[i] }); } private.afterExecuteCallback.call(public); public.buildList(); if (private.requireReload) private.execute(); } } , function (code, data) { private.isProces = false; }); } } else private.requireReload = true; } private.showLoadingLabel = function () { private.listContener.setText('Proszę czekać...'); private.render(true); } public.buildList = function () { private.listContener.setHtml(''); if (private.result.length() == 0 && private.notResultCallback) { private.notResultCallback.call(public); } private.beforeRenderCallback.call(public); for (var i = 0; i < private.result.length(); i++) { var row = Ite.createObject('
' + private.result[i].label + '
'); (function (i) { row.addEventMouseDown(function (e) { private.result[i].callback.call(public, private.result[i].data); private.render(false); }); }(i)); private.listContener.append(row); if (i == 0) row.addClass('auto-complete-row-enable'); } private.cursor = 0; private.render(true); } private.render = function (showListContener) { if (!showListContener) private.listContener.setDisplay('none'); else if (private.listContener.getDisplay() != 'block') { private.listContener.setPositionX(private.field.getOffsetX()); private.listContener.setPositionY(private.field.getOffsetY() + private.field.getHeight()); private.listContener.setWidth(private.field.getWidth()); private.listContener.setDisplay('block'); } } public.setEnable = function (flag) { private.enable = flag; } private.setValue = function (id, label) { private.field.setValue(id); private.field.setValue(label); private.listContener.setDisplay('none'); } private.init(); });Ite.addObject('IteFieldDateObject', 'input[type="date"]', function (helper, htmlElement, parent) { var private = {}; var public = this; private.helper = helper; private.scope = (parent != undefined ? parent : public); //extend private.helper.extend(public, 'IteFieldObject', htmlElement, private.scope); private.getFormatDate = function (date) { var result = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); result += '-' + (month < 10 ? '0' : '') + month; result += '-' + (day < 10 ? '0' : '') + day; return result; } private.render = function (date, datePicker, field) { var currentValue = new Date(field.getValue()); var min = field.getMin(); var max = field.getMax(); if (min) { min = new Date(min); min.setDate(min.getDate()); } if (max) { max = new Date(max); max.setDate(max.getDate() + 1); } var thisDate = new Date(); thisDate.setFullYear(date.getFullYear()); thisDate.setMonth(date.getMonth()); thisDate.setDate(1); var firstDayOfWeekObject = new Date(date); firstDayOfWeekObject.setDate(1); var firstDayOfWeek = firstDayOfWeekObject.getDay(); var lastDayOfMonthObject = new Date(date.getYear(), date.getMonth() + 1, 0); var lastDayOfMonth = lastDayOfMonthObject.getDate(); var html = ""; var day = 0; var label = ''; for (var i = 1; i <= lastDayOfMonth + firstDayOfWeek; i++) { if (i - firstDayOfWeek > 0) { day = thisDate.getDate(); label = day; if (currentValue.getDate() == day && currentValue.getMonth() == date.getMonth() && currentValue.getFullYear() == date.getFullYear()) html += '' + label + ''; else if (private.acceptRange(min, max, thisDate)) html += "" + label + ""; else html += '' + label + ''; thisDate.setDate(thisDate.getDate() + 1); } else html += ''; if (i % 7 == 0) { html += ''; } } datePicker.get('.date-picker-title').setHtml(private.getMonthName(date) + ' ' + date.getFullYear()); datePicker.get('table tbody').setHtml(html); datePicker.getAll('table tbody td').each(function (value) { value.addEventClick(function (e) { e.setPropagation(false); var val = this.getHtml(); if (val != '' && !this.isClass('data-picker-disable')) { date.setDate(val); field.setValue(private.getFormatDate(date)); datePicker.remove(); } }); }); } private.acceptRange = function (min, max, date) { var minCorrect = true; var maxCorrect = true; if (min) { minCorrect = min.getTime() <= date.getTime(); } if (max) { maxCorrect = max.getTime() >= date.getTime(); } return minCorrect && maxCorrect; } private.months = ['Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj', 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik', 'Listopad', 'Grudzień']; private.getMonthName = function (date) { return private.months[date.getMonth()]; } private.callbackActive = function (e) { Ite.blur(); private.hideAllDatePickers(); if (this.getValue() == '') var date = new Date(); else var date = new Date(this.getValue()); var html = '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + '
' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + ' ' + '
NiePonWtoŚroCzwPiąSob
' + '
'; var field = this; var datePicker = Ite.createObject(html); datePicker.get('.date-picker-prev-month').addEventClick(function (e) { e.setPropagation(false); date.setMonth(date.getMonth() - 1); private.render(date, datePicker, field); }); datePicker.get('.date-picker-next-month').addEventClick(function (e) { e.setPropagation(false); date.setMonth(date.getMonth() + 1); private.render(date, datePicker, field); }); datePicker.get('.date-picker-prev-year').addEventClick(function (e) { e.setPropagation(false); date.setFullYear(date.getFullYear() - 1); private.render(date, datePicker, field); }); datePicker.get('.date-picker-next-year').addEventClick(function (e) { e.setPropagation(false); date.setFullYear(date.getFullYear() + 1); private.render(date, datePicker, field); }); datePicker.get('.date-picker-clear').addEventClick(function (e) { e.setPropagation(false); field.setValue(''); datePicker.remove(); }); datePicker.addEventClick(function (e) { e.setPropagation(false); }); private.render(date, datePicker, field); this.getParent().append(datePicker); } private.isBind = false; private.bind = function () { if (!private.isBind) { private.isBind = true; Ite.addEventClick(private.hideAllDatePickers); } } private.hideAllDatePickers = function () { Ite.getAll('.date-picker').each(function (value) { value.remove(); }); }; //construct public.setType('text'); public.addEventFocus(private.callbackActive); public.addEventClick(function (e) { e.setPropagation(false); }); private.bind(); });Ite.addObject('IteFieldAutoComplete', '[data-type="autocomplete"]', function (helper, htmlElement, parent) { var prv = {}; var pub = this; prv.helper = helper; prv.scope = (parent !== undefined ? parent : pub); //extend prv.helper.extend(pub, 'IteFieldObject', htmlElement, prv.scope); prv.requireReload = false; prv.storage = new IteArray(); prv.listContener = null; prv.ignoreChange = false; prv.cursor = 0; pub.init = function () { prv.field = this; prv.field.getAll('option').each(function (option) { if (option.getAttribute('value') !== '') { prv.storage.push({id: option.getAttribute('value'), label: option.getHtml()}); } }); prv.createComponents(); var currentLabel = prv.textContener.getValue(); prv.textContener.addEventKeyDown(function (e) { prv.ignoreChange = true; var event = e.getOrigin(); prv.clearValue(); if (event.keyCode === 13) {//enter if (prv.pressEnter()) { currentLabel = prv.textContener.getValue(); e.setSystemHandle(false); } } else if (event.keyCode === 40) { prv.moveCursor(1); } else if (event.keyCode === 38) { prv.moveCursor(-1); } else { setTimeout(function () { if (prv.textContener.getValue() !== currentLabel) { prv.execute(); currentLabel = prv.textContener.getValue(); } if (prv.textContener.getValue() === '' && prv.textContener.isFocus()) { prv.buildList(prv.storage); } prv.ignoreChange = false; }, 1); } }); prv.textContener.addEventFocus(function () { if (prv.textContener.getValue() === '') { prv.buildList(prv.storage); } }); prv.textContener.addEventBlur(function () { if (!prv.field.getValue()) prv.textContener.setValue(''); else { var record = prv.listContener.get('.auto-complete-row[data-id="' + prv.field.getValue() + '"]'); prv.textContener.setValue(record.getHtml()); } currentLabel = prv.textContener.getValue(); prv.listContener.setDisplay('none'); }); prv.field.addEventChange(function () { if (!prv.ignoreChange) { var record = prv.field.get('option[value="' + prv.field.getValue() + '"]'); if (record) { var label = (record.getAttribute('value') === '' ? '' : record.getHtml()); prv.textContener.setValue(label); currentLabel = prv.textContener.getValue(); } prv.ignoreChange = false; } }); prv.field.addEventDOMModified(function () { prv.storage = new IteArray(); prv.field.getAll('option').each(function (option) { if (option.getAttribute('value') !== '') prv.storage.push({id: option.getAttribute('value'), label: option.getHtml()}); }); }); }; pub.setDisabled = function (flag) { if (flag) { prv.field.setAttribute('disabled', flag); } else { prv.field.removeAttribute('disabled'); } }; prv.moveCursor = function (vector) { var records = prv.listContener.getAll('.auto-complete-row'); prv.cursor += vector; if (prv.cursor >= records.length()) prv.cursor = 0; else if (prv.cursor < 0) prv.cursor = records.length() - 1; try { prv.listContener.get('.auto-complete-row-enable').removeClass('auto-complete-row-enable'); } catch (e) { //ignore } records[prv.cursor].addClass('auto-complete-row-enable'); }; prv.createComponents = function () { prv.textContener = Ite.createObject(''); prv.field.getClass().each(function (className) { prv.textContener.addClass(className); }); prv.textContener.setId(prv.field.getId()); var label = ''; var fieldValueId = prv.field.getValue(); if (fieldValueId !== '') { prv.field.getAll('option').each(function (option) { if (option.getAttribute('value') === fieldValueId) { label = option.getHtml(); return true; } }); } prv.textContener.setValue(label); prv.field.setId(''); prv.field.setDisplay('none'); prv.field.appendAfter(prv.textContener, -1); //TODO dorobić metodę która pozowli wrzucić element zaraz za fieldem prv.field.clearClass(); prv.listContener = Ite.createObject('
'); prv.listContener.setWidth(prv.textContener.getWidth()); prv.listContener.setDisplay('none'); Ite.get('body').append(prv.listContener); }; prv.pressEnter = function () { if (prv.listContener.getDisplay() === 'block') { try { var record = prv.listContener.getAll('.auto-complete-row')[prv.cursor]; prv.setValue(record.getAttribute('data-id'), record.getHtml()); return true; } catch (e) { //skipp } } // else{ // private.field.setValue(''); // } }; prv.execute = function () { var phrase = prv.textContener.getValue(); if (phrase === '') { prv.listContener.setDisplay('none'); prv.field.setValue(''); } else { prv.requireReload = false; var matches = new IteArray(); var reg = RegExp(prv.textContener.getValue().replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&").toLowerCase()); for (var i = 0; i < prv.storage.length(); i++) { var record = prv.storage[i]; if (reg.test(record.label.toLowerCase())) { matches.push(record); } } prv.buildList(matches); } }; prv.buildList = function (data) { var template = ''; for (var i = 0; i < data.length(); i++) { template += '
' + data[i].label + '
' } prv.cursor = 0; prv.listContener.setHtml(template); prv.listContener.getAll('.auto-complete-row').each(function (row) { row.addEventMouseDown(function () { prv.setValue(row.getAttribute('data-id'), row.getHtml()) }); }); if (data.length() > 0) prv.listContener.get('.auto-complete-row').addClass('auto-complete-row-enable'); if (template === '') { prv.listContener.setDisplay('none'); } else if (prv.listContener.getDisplay() !== 'block') { prv.listContener.setPositionX(prv.textContener.getOffsetX()); prv.listContener.setPositionY(prv.textContener.getOffsetY() + prv.textContener.getHeight()); prv.listContener.setWidth(prv.textContener.getWidth()); prv.listContener.setDisplay('block'); } }; prv.setValue = function (id, label) { prv.field.setValue(id); prv.textContener.setValue(label); prv.listContener.setDisplay('none'); }; prv.clearValue = function () { prv.field.getAll('option').each(function (option) { option.removeAttribute('selected'); //FIXME dorobić obsługę break }); }; pub.init(); });Ite.addElementModule('IteFieldObject', 'zipcode', function () { var private = {}; var public = this; private.render = function () { public.setMaxLength(6); public.addEventKeyDown(function (e) { var event = e.getOrigin(); if (event.keyCode >= 48 && event.keyCode <= 57 || event.keyCode == 37 || event.keyCode == 39 || event.keyCode >= 96 && event.keyCode <= 105) {//enter return private.inputEvent(); } else if (event.keyCode == 8) { return private.backspaceEvent(); } else if (event.keyCode == 46) { return private.deleteEvent(); } else if (event.ctrlKey || event.keyCode == 9 || event.keyCode == 13) { } else { return true; } }); } private.inputEvent = function () { var re = new RegExp('^[0-9]{2}$'); if (re.exec(public.getValue()) && public.getCursorPosition() == 2) { public.setValue(public.getValue() + '-'); } } private.backspaceEvent = function () { var re = new RegExp('^[0-9]{2}-'); console.log(public.getValue()); if (re.exec(public.getValue()) && public.getCursorPosition() == 3) { public.setValue(public.getValue().substring(0, 1)); return true; } } private.deleteEvent = function () { var re = new RegExp('^[0-9]{2}-'); if (re.exec(public.getValue()) && public.getCursorPosition() == 2) { public.setValue(public.getValue().substring(0, 2)); return true; } } // private.render(); }); Ite.addElementModule('IteFieldObject', 'upload', function (endCallback) { this.addEventChange(function (e) { e.setSystemHandle(false); var file = this.getDOMElement().files[0]; var reader = new FileReader(); reader.onloadend = function () { endCallback.call(this, file); }; reader.readAsDataURL(file); }); });Ite.addObject('IteFieldSelectButton', '[data-type="select-button"]', function (helper, htmlElement, parent) { var prv = {}; var pub = this; prv.helper = helper; prv.scope = (parent !== undefined ? parent : pub); //extend prv.helper.extend(pub, 'IteFieldObject', htmlElement, prv.scope); prv.field = null; prv.storage = new IteArray(); pub.init = function () { prv.field = this; prv.field.getAll('option').each(function (option) { if (option.getAttribute('value') !== '') { var value = option.getAttribute('value'); if (value === '') { return } prv.storage.push({id: value, label: option.getHtml()}); } }); prv.createComponents(); }; prv.createComponents = function () { var html = Ite.createObject('
'); prv.storage.each(function (item) { var node = Ite.createObject(''); html.append(node); node.addEventClick(prv.callbackSelect(node, item)); }); prv.field.getParent().append(html, 1); prv.field.addClass('hide'); }; prv.callbackSelect = function (node, item) { return function (e) { e.setSystemHandle(false); prv.field.getParent().getAll('button').each(function (btn) { btn.removeClass('btn-primary'); }); node.addClass('btn-primary'); prv.field.setValue(item['id']); }; }; pub.init(); });function FormNNW(container) { var prv = {}; var pub = this; prv.container = container; prv.form = null; prv.init = function () { prv.container = container; prv.form = prv.container.get('form'); var validator = prv.form.getValidator(); validator.setEnable(true); prv.container.get('[role="cancel"]').addEventClick(function () { Ite.route().clearCache(); Ite.route().redirect('/policy/add'); }); prv.form.addEventSubmit(prv.submitCallback()); }; pub.getName = function () { return 'nnw'; }; pub.setVisible = function (flag) { if (flag) { prv.container.removeClass('hide'); } else { prv.container.addClass('hide'); } }; prv.submitCallback = function () { return function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (!this.isValid()) { return; } Ite.api().send('policies/add.json', { policy_type: 2, fields: this.getValues() } , prv.successCallback()); } }; prv.successCallback = function () { return function () { Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }; }; pub.reset = function () { //todo }; prv.init(); }function FormGB(container) { var prv = {}; var pub = this; prv.container = container; prv.form = null; prv.guaranteeRangeField = null; prv.commodityTypeField = null; prv.amountField = null; prv.offerField = null; prv.orderDateField = null; prv.brandField = null; prv.paymentTypeField = null; prv.selectedInsurer = false; prv.calculator = null; prv.continuePPIProcess = false; prv.storage = { offers: {} }; prv.questionnaire = []; pub.getName = function () { return 'gb'; }; pub.getField = function (name) { return prv.form.get('#' + name); }; pub.getClientForm = function () { return prv.clientForm; }; prv.init = function () { prv.container = container; prv.initQuestionnaire(); prv.form = prv.container.get('.form-policy form'); prv.clientForm = new FormClient(prv.container.get('.form-policy .panel-client')); prv.paymentTypeField = prv.form.get('#paymentType'); prv.guaranteeRangeField = prv.form.get('#guaranteeRange'); prv.commodityTypeField = prv.form.get('#commodityType'); prv.amountField = prv.form.get('#amount'); prv.offerField = prv.form.get('#offer'); prv.orderDateField = prv.form.get('#orderDate'); prv.brandField = prv.form.get('#brand'); prv.serialNumber = prv.form.get('#serialNumber'); var validator = prv.form.getValidator(); validator.setEnable(true); prv.guaranteeRangeField.addEventChange(prv.callbackLoadOffers()); prv.commodityTypeField.addEventChange(prv.callbackLoadOffers()); prv.amountField.addEventChange(prv.callbackLoadOffers()); prv.paymentTypeField.addEventChange(prv.callbackPaymentChange()); prv.offerField.addEventChange(prv.callbackSelectInsurer()); prv.brandField.setStorage('/policies/find-brands.json'); prv.brandField.setRecordFormatter(function (record) { return record.name; }); prv.brandField.addEventSelectedRecord(function (record) { var me = this; setTimeout(function () { me.setValue(record.name, true); }, 1); }); prv.brandField.setDelayTime(300); prv.container.get('[role="cancel"]').addEventClick(function () { prv.clearStorage(); Ite.route().clearCache(); Ite.route().redirect('/policy/add'); }); prv.form.addEventSubmit(prv.submitCallback()); }; prv.clearStorage = function () { Ite.getStorage().remove('continuePPIProcess'); Ite.getStorage().remove('policyId'); Ite.getStorage().remove('documentSales'); Ite.getStorage().remove('policyNumber'); Ite.getStorage().remove('policyPPIData'); }; pub.setVisible = function (flag) { if (flag) { prv.container.removeClass('hide'); } else { prv.container.addClass('hide'); } }; prv.callbackPaymentChange = function () { return function (item) { prv.callbackLoadOffers(); let value = prv.paymentTypeField.getValue(); let leasing = '4' === value; prv.serialNumber.setRequired(leasing); prv.clientForm.setEmailRequire(leasing); }; }; prv.submitCallback = function () { return function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (!this.isValid() || !prv.selectedInsurer) { return; } var values = prv.getValues(); values['questionnaire'] = prv.questionnaire; if (undefined === values['policyChannel']) { values['policyChannel'] = ''; } prv.clientForm.submit(function () { Ite.api().send('policies/add.json', { policy_type: 1, fields: values }, prv.successCallback()); }); } }; prv.getValues = function () { var data = prv.form.getValues(); data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = data['allowMarketing'] === 'true'; data['orderPromotion'] = data['orderPromotion'] === 'true'; data['allowDeliverMarketing'] = data['allowDeliverMarketing'] === 'true'; data['companyName'] = data['companyName'] || ''; data['amount'] = data['amount'].replace(',', '.'); data['token'] = prv.selectedOffer['id']; data['continuePPIProcess'] = prv.continuePPIProcess; if (prv.continuePPIProcess) { data['paymentType'] = 3; } if (data['telephone'] !== '') { data['telephone'] = data['telephonePrefix'] + data['telephone']; } delete data['telephonePrefix']; return data; }; prv.successCallback = function () { return function () { prv.hideCalculator(); Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }; }; prv.callbackLoadOffers = function () { return function () { if (prv.guaranteeRangeField.getValue() === '' || prv.commodityTypeField.getValue() === '' || prv.amountField.getValue() <= 0 || prv.paymentTypeField.getValue() === '') { prv.offerField.setDisabled(true); return; } Ite.api().send('policies/find-offers.json', { policy_type: 1, fields: { commodityType: prv.commodityTypeField.getValue(), guaranteeRange: prv.guaranteeRangeField.getValue(), paymentType: prv.paymentTypeField.getValue(), amount: prv.amountField.getValue() } }, function (data) { var template = ''; var records = {}; for (var i = 0; i < data.length; i++) { records[data[i].id] = data[i]; template += ''; } prv.storage.offers = records; prv.offerField.setHtml(template); prv.offerField.setDisabled(false); }); }; }; prv.callbackSelectInsurer = function () { return function () { prv.hideCalculator(); if (prv.offerField.getValue() === '' || prv.amountField.getValue() === '') { return; } var offer = prv.storage.offers[prv.offerField.getValue()]; var grossPrice = ''; var insurerName = ''; prv.selectedInsurer = true; grossPrice = offer['grossPrice']; insurerName = offer['insurerName']; sellerCommission = offer['sellerCommission']; prv.configureOrderDate(offer['insurerId'], offer); var template = '
'; template += '
Ubezpieczyciel
' + insurerName + '
'; template += '
Składka
' + grossPrice + '
'; if (sellerCommission) { template += '
Prowizja sprzedawcy
' + sellerCommission + '
'; } template += '
'; prv.calculator = Ite.notify().addWarning(template); prv.selectedOffer = offer; } }; prv.hideCalculator = function () { if (prv.calculator) { prv.calculator.remove(); prv.calculator = null; } }; prv.configureOrderDate = function (insurer, offer) { if (offer.isLongTerm) { var date = new Date(); date.setDate(date.getDate() - 365); prv.orderDateField.setMin(date); } else { prv.orderDateField.setMin(new Date()); } prv.orderDateField.setMax(new Date()); prv.orderDateField.setValue(prv.orderDateField.getMax()); }; pub.reset = function () { if (Ite.getStorage().get('policyPPIData')) { prv.resetPPI(); return; } prv.paymentTypeField.setValue(''); prv.paymentTypeField.setDisabled(false); }; prv.resetPPI = function () { prv.paymentTypeField.setValue(3); //select credit prv.paymentTypeField.setDisabled(true); prv.continuePPIProcess = true; }; prv.initQuestionnaire = function () { Ite.api().policyAddFetchQuestionnaire(function (data) { prv.buildQuestionnaire(data); }); } prv.buildQuestionnaire = function (data) { let questionnaire = prv.container.get('.questionnaire .panel-body'); let template = []; template.push('
'); for (let i = 0; i < data['questions'].length; i++) { let question = data['questions'][i]; prv.renderQuestion(question, template); template.push('
'); } template.push('
'); questionnaire.setHtml(template.join('')); let form = questionnaire.get('form'); form.getValidator().setEnable(true); questionnaire.getAll('input[type="radio"]').each(function (record) { record.addEventChange(function (event) { prv.changeQuestionnaireListener(form, data); }); }); } prv.changeQuestionnaireListener = function (form, data) { form.checkFieldsValid(); let values = form.getValues(); if (!form.isValid() || !prv.checkAllFieldCorrect(values, data)) { prv.container.get('.form-policy').addClass('hide'); return; } prv.container.get('.form-policy').removeClass('hide'); prv.questionnaire = { 'id': data['id'], 'code': data['code'], 'answers': values }; } prv.checkAllFieldCorrect = function (values, data) { for (let i = 0; i < data['questions'].length; i++) { let question = data['questions'][i]; if (!question['required']) { continue; } for (let j = 0; j < question['answers'].length; j++) { let answer = question['answers'][j]; if (answer['code'] === values[question['code']] && !answer['correct']) { return false; } } } return true; } prv.renderQuestion = function (question, template) { template.push(`
${question['content']}
`); for (let i = 0; i < question['answers'].length; i++) { let answer = question['answers'][i]; if (0 !== i) { template.push('
'); } prv.renderAnswer(question['code'], question['required'], answer, template); } } prv.renderAnswer = function (code, required, answer, template) { template.push(`'); template.push(``) } prv.init(); }function FormPPI(container, manager) { var prv = {}; var pub = this; prv.container = container; prv.form = null; prv.manager = manager; prv.bankField = null; prv.countInstallmentField = null; prv.cartAmountField = null; prv.ownAmountField = null; prv.offerInstallmentField = null; prv.bankOfferField = null; prv.creditNumberField = null; prv.policyGB = null; prv.bankOfferDefault = null; prv.selectedInsurer = false; prv.calculator = null; prv.storage = { offers: {} }; pub.getName = function () { return 'ppi'; }; prv.init = function () { prv.container = container; prv.manager = manager; prv.form = prv.container.get('form'); prv.clientForm = new FormClient(prv.container.get('.panel-client')); prv.clientForm.setOnlyPrivatePerson(true); prv.bankField = prv.form.get('#bank'); prv.countInstallmentField = prv.form.get('#countInstallment'); prv.cartAmountField = prv.form.get('#cartAmount'); prv.ownAmountField = prv.form.get('#ownAmount'); prv.offerInstallmentField = prv.form.get('#offerInstallment'); prv.bankOfferField = prv.form.get('#bankOffer'); prv.policyGB = prv.form.get('#policyGB'); prv.creditNumberField = Ite.get('#creditNumber'); prv.bankField.addEventChange(prv.callbackLoadBankOffers()); prv.countInstallmentField.addEventChange(prv.callbackLoadBankOffers()); prv.cartAmountField.addEventChange(prv.callbackCalculateCredit); prv.ownAmountField.addEventChange(prv.callbackCalculateCredit); prv.countInstallmentField.addEventChange(prv.callbackCalculateCredit); prv.offerInstallmentField.addEventChange(prv.callbackCalculateCredit); prv.bankOfferField.addEventChange(prv.callbackCalculateCredit); prv.ownAmountField.addEventFocus(prv.callbackDefaultValueFocus); prv.ownAmountField.addEventBlur(prv.callbackDefaultValueBlur); prv.policyGB.setStorage('/policy/add/searchGDForPPI.json'); prv.policyGB.addEventFocus(function () { this.buildList(); }); prv.policyGB.setRecordFormatter(function (record) { var template = record.number; return template; }); prv.policyGB.addEventSelectedRecord(function (data) { prv.form.checkFieldsValid(); prv.policyGB.setAttribute('data-id', data.id); prv.policyGB.setValue(data['number'], true); prv.callbackCalculateCredit(); prv.loadClientData(data.id); }); prv.policyGB.addEventNoRecords(prv.callbackPPIGBNotFound); prv.policyGB.addEventAfterExecute(prv.callbackPPIGBNotFound); var validator = prv.form.getValidator(); validator.setEnable(true); prv.container.get('[role="cancel"]').addEventClick(function () { Ite.route().clearCache(); Ite.route().redirect('/policy/add'); }); prv.form.addEventSubmit(prv.submitCallback()); }; prv.loadClientData = function (id) { Ite.api().send('policy/add/getClientByPolicyId.json', {id: id}, function (data) { prv.container.get('.client-form').removeClass('hide'); var currentData = prv.form.getValues(); for (var index in data) { currentData[index] = data[index]; } delete currentData['client']; prv.form.setValue(currentData); prv.form.get('#client').getDOMElement().value = currentData['telephonePrefix'] + currentData['telephone']; }); }; prv.callbackPPIGBNotFound = function () { this.addResultItem('Dodaj nową', function () { var data = prv.form.getValues(); Ite.getStorage().set('policyPPIData', JSON.stringify(data)); var formGB = prv.manager.getForm('gb'); prv.manager.show(formGB); }); }; prv.submitCallback = function () { return function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (!this.isValid() || !prv.selectedInsurer) { return; } var values = prv.getValues(); prv.clientForm.submit(function () { values['policyGD'] = prv.policyGB.getAttribute('data-id'); if (values.creditNumber == '') { Ite.dialogBox().confirm('Nie podałeś Numer umowy kredytowej. Polisa zostanie zapisana jako niekompletna (można ją później wyszukać w Polisy -> Lista i uzupełnić brakujące dane).', function (flag) { if (flag) { Ite.api().send('policy/ppi/add.json', values, function (data) { Ite.notify().addInfo('Polisa została zapisana jako niekompletna. Nr: ' + data.number + ''); prv.hideCalculator(); Ite.route().clearCache(); Ite.route().redirect('/policy/add'); }); } else { prv.creditNumberField.focus(); } }); return; } Ite.api().send('policy/ppi/add.json', values, prv.successCallback()); }); } }; prv.clearStorage = function () { Ite.getStorage().remove('continuePPIProcess'); Ite.getStorage().remove('policyId'); Ite.getStorage().remove('documentSales'); Ite.getStorage().remove('policyNumber'); Ite.getStorage().remove('policyPPIData'); }; prv.successCallback = function () { return function () { prv.hideCalculator(); Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }; }; prv.getValues = function () { var data = prv.form.getValues(); data['type'] = 1; data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = data['allowMarketing'] == 'true'; data['orderPromotion'] = data['orderPromotion'] == 'true'; data['allowDeliverMarketing'] = data['allowDeliverMarketing'] == 'true'; data['companyName'] = data['companyName'] || ''; data['cartAmount'] = data['cartAmount'].replace(',', '.'); data['ownAmount'] = data['ownAmount'].replace(',', '.'); if (data['telephone'] != '') { data['telephone'] = data['telephonePrefix'] + data['telephone']; } delete data['telephonePrefix']; return data; }; pub.setVisible = function (flag) { if (flag) { prv.container.removeClass('hide'); } else { prv.container.addClass('hide'); } }; prv.callbackDefaultValueFocus = function () { var value = this.getValue(); if (value == '0') { this.setValue(''); } }; prv.callbackDefaultValueBlur = function () { var value = this.getValue(); if (value == '') { this.setValue('0'); } }; prv.hideCalculator = function () { if (prv.calculator) { prv.calculator.remove(); prv.calculator = null; } }; prv.callbackLoadBankOffers = function () { return function () { prv.hideCalculator(); if (prv.bankField.getValue() == '' || prv.countInstallmentField.getValue() == '' || prv.countInstallmentField.getValue() < 0) { prv.bankOfferField.setHtml(''); return; } Ite.api().policyAddGetBankOffers({ bank: prv.bankField.getValue(), countInstallment: prv.countInstallmentField.getValue() }, function (data) { var template = ''; for (var i = 0; i < data.length; i++) { template += ''; } prv.bankOfferField.setHtml(template); if (prv.bankOfferDefault) { prv.bankOfferField.setValue(prv.bankOfferDefault); prv.bankOfferDefault = null; } }); } }; prv.callbackCalculateCredit = function () { var cartAmount = prv.cartAmountField.getValue(); var ownAmount = prv.ownAmountField.getValue(); var countInstallment = prv.countInstallmentField.getValue(); var offerInstallment = prv.offerInstallmentField.getValue(); var bankOffer = prv.bankOfferField.getValue(); var policyGD = prv.policyGB.getAttribute('data-id'); prv.hideCalculator(); if (cartAmount == '' || ownAmount == '' || countInstallment == '' || offerInstallment == '' || bankOffer == '') { return; } prv.form.checkFieldsValid(); if (!prv.form.isValid('cartAmount') || !prv.form.isValid('ownAmount') || !prv.form.isValid('countInstallment') || !prv.form.isValid('offerInstallment')) { return; } Ite.api().policyAddSelectCreditInsurer(cartAmount, ownAmount, countInstallment, offerInstallment, bankOffer, policyGD, function (data) { var template = ''; var partInstallment = ''; var partAmount = ''; var insurer = ''; var credit = ''; var agreement = ''; if (data.insurer != 0) { prv.selectedInsurer = true; partInstallment = data.partInstallmentCeilBrutto; partAmount = data.partAmountBrutto; insurer = data.name; credit = data.totalAmountBrutto; agreement = data['agreement']; } else { prv.selectedInsurer = false; partInstallment = 'BRAK!'; partAmount = 'BRAK!'; insurer = 'BRAK!'; credit = 'BRAK!'; agreement = 'BRAK!'; } template += '
'; template += '
Ubezpieczyciel
' + insurer + '
'; if (data['policyNumber']) { template += '
Polisa GB
' + data['policyNumber'] + ' (' + data['policyPartAmount'] + ' zł)
'; } template += '
Składka
' + partAmount + '
'; template += '
Rata
' + partInstallment + '
'; template += '
Kredyt
' + credit + '
'; template += '
Do umowy
' + agreement + '
'; template += '
'; prv.calculator = Ite.notify().addWarning(template); }, function (code, data) { prv.bankOfferField.setValue(''); Ite.notify().addError(data); }); }; pub.reset = function () { if (!Ite.getStorage().get('continuePPIProcess')) { return; } var data = Ite.getStorage().get('policyPPIData'); if (data) { data = JSON.parse(data); prv.bankOfferDefault = data['bankOffer']; prv.form.setValue(data); } prv.policyGB.setAttribute('data-id', Ite.getStorage().get('policyId')); prv.policyGB.setValue(Ite.getStorage().get('policyNumber'), true); Ite.get('#documentSales').setValue(Ite.getStorage().get('documentSales'), true); prv.loadClientData(Ite.getStorage().get('policyId')); prv.clearStorage(); }; prv.init(); }function FormOld(container) { var prv = {}; var pub = this; prv.continuePPIProcess = false; prv.bankOfferDefault = null; var storage = {}; storage.offers = {}; prv.container = container; var form = container.get('form'); var validator = form.getValidator(); var commodityTypeField = form.get('#commodityType'); var guaranteeRangeField = form.get('#guaranteeRange'); var offerField = form.get('#offer'); var amountField = form.get('#amount'); var brandField = form.get('#brand'); var orderDateField = form.get('#orderDate'); var clientForm = form.get('.client-form'); var typeField = clientForm.get('#type'); var companyNameField = clientForm.get('#companyName'); var addressField = clientForm.get('#address'); var zipcodeField = clientForm.get('#zipcode'); var cityField = clientForm.get('#city'); var countryField = clientForm.get('#country'); var nationalityField = clientForm.get('#nationality'); var firstNameField = clientForm.get('#firstName'); var lastNameField = clientForm.get('#lastName'); var taxIdField = clientForm.get('#taxId'); var croField = clientForm.get('#cro'); var peselField = clientForm.get('#pesel'); var telephonePrefixField = clientForm.get('#telephonePrefix'); var telephoneField = clientForm.get('#telephone'); var emailField = clientForm.get('#email'); var allowMarketingField = clientForm.get('#allowMarketing'); var allowDeliverMarketingField = clientForm.get('#allowDeliverMarketing'); var anotherDocumentField = clientForm.get('#anotherDocument'); var policyNumberField = form.get('#policyNumber'); var cartAmountField = form.get('#cartAmount'); var clientField = Ite.get('#client'); var offerInstallmentField = Ite.get('#offerInstallment'); var countInstallmentField = Ite.get('#countInstallment'); var ownAmountField = Ite.get('#ownAmount'); var bankField = Ite.get('#bank'); var bankOfferField = Ite.get('#bankOffer'); var selectedInsurer = false; var onlyPrivatePerson = false; var policyType = 0; var calculator = null; zipcodeField.zipcode(); validator.setEnable(true); pub.setVisible = function (flag) { if (flag) { container.removeClass('hide'); } else { container.addClass('hide'); } }; pub.setType = function (id) { policyType = id; }; pub.reset = function () { prv.refreshPolicyView.call(); }; prv.confirmPPIData = function (values) { values['policyGD'] = form.get('#policyGD').getAttribute('data-id'); if (values.creditNumber == '') { Ite.dialogBox().confirm('Nie podałeś Numer umowy kredytowej. Polisa zostanie zapisana jako niekompletna (można ją później wyszukać w Polisy -> Lista i uzupełnić brakujące dane).', function (flag) { if (flag) { Ite.api().policyAddPPI(values, function (data) { Ite.notify().addInfo('Polisa została zapisana jako niekompletna. Nr: ' + data.number + ''); Ite.route().clearCache(); Ite.route().redirect('/policy/add'); }); } else { Ite.get('#creditNumber').focus(); } }); } else { Ite.api().policyAddPPI(values, function (data) { Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }); } }; prv.confirmData = function () { prv.hideCalculator(); var values = this.getValues(); switch (policyType) { case 1: values['continuePPIProcess'] = prv.continuePPIProcess; if (prv.continuePPIProcess) { values['paymentType'] = 3; } Ite.api().policyAdd(values, function (data) { Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }); break; case 2: Ite.api().policyAddFreeRepair(values, function (data) { Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }); break; case 3: prv.confirmPPIData(values); break; default: throw new NotSupportedException(); } }; prv.checkTelephone = function () { if (typeField.getValue() == 1 && telephoneField.getValue() == '') { Ite.dialogBox().confirm('Nie podałeś nr telefonu klienta, przez co nie będzie dostępny dla mechanizmu wyszukiwania. Czy chcesz kontynuować?', function (flag) { if (flag) { prv.confirmData.call(form); } else { telephoneField.focus(); } }); } else { prv.confirmData.call(form); } }; prv.configureOrderDate = function (insurer, id) { if (storage.offers[id].isLongTerm) { var date = new Date(); if (insurer == 1) date.setDate(date.getDate() - 30); else date.setDate(date.getDate() - 30); orderDateField.setMin(date); } else { orderDateField.setMin(new Date()); } orderDateField.setMax(new Date()); orderDateField.setValue(orderDateField.getMax()); } prv.callbackLoadOffers = function () { if (guaranteeRangeField.getValue() != '' && commodityTypeField.getValue() != '' && amountField.getValue() > 0) { Ite.api().policyAddGetOffers({ commodityType: commodityTypeField.getValue(), guaranteeRange: guaranteeRangeField.getValue(), amount: amountField.getValue() }, function (data) { var template = ''; var records = {}; for (var i = 0; i < data.length; i++) { records[data[i].id] = { 'isLongTerm': data[i].isLongTerm }; template += ''; } storage.offers = records; offerField.setHtml(template); offerField.setDisabled(false); }); } else offerField.setDisabled(true); }; prv.callbackLoadBankOffers = function () { prv.hideCalculator(); if (bankField.getValue() == '' || countInstallmentField.getValue() == '' || countInstallmentField.getValue() < 0) { bankOfferField.setHtml(''); return; } Ite.api().policyAddGetBankOffers({ bank: bankField.getValue(), countInstallment: countInstallmentField.getValue() }, function (data) { var template = ''; var records = {}; for (var i = 0; i < data.length; i++) { template += ''; } bankOfferField.setHtml(template); if (prv.bankOfferDefault) { bankOfferField.setValue(prv.bankOfferDefault); prv.bankOfferDefault = null; } }); }; prv.callbackSelectInsurer = function () { prv.hideCalculator(); if (offerField.getValue() != '' && amountField.getValue() != '') { Ite.api().policyAddSelectInsurer({ commodityType: commodityTypeField.getValue(), offer: offerField.getValue(), amount: amountField.getValue() }, function (data) { prv.hideCalculator(); var partAmount = ''; var insurer = ''; if (data.insurer != 0) { selectedInsurer = true; partAmount = data.partAmountBrutto; insurer = data.name; prv.configureOrderDate(data.insurer, offerField.getValue()); } else { selectedInsurer = false; partAmount = 'BRAK!'; insurer = 'BRAK!'; } template = '
'; template += '
Ubezpieczyciel
' + insurer + '
' template += '
Składka
' + partAmount + '
' template += '
'; calculator = Ite.notify().addWarning(template); }); } }; prv.hideCalculator = function () { if (calculator) { calculator.remove(); calculator = null; } }; prv.callbackClientForm = function (record) { var clientParent = form.get('#client').getParent('.form-group'); clientParent.removeClass('has-error'); typeField.setValue(record.type); companyNameField.setValue(record.companyName); addressField.setValue(record.address); zipcodeField.setValue(record.zipcode); // cityField.setValue(record.city); countryField.setValue(record.country); nationalityField.setValue(record.nationality); firstNameField.setValue(record.firstName); lastNameField.setValue(record.lastName); taxIdField.setValue(record.taxId); croField.setValue(record.cro); peselField.setValue(record.pesel); anotherDocumentField.setValue(record.anotherDocument); telephonePrefixField.setValue(record.telephone.substring(0, 3)); telephoneField.setValue(record.telephone.substring(3)); emailField.setValue(record.email); allowMarketingField.setChecked(record.allowMarketing == '1'); allowDeliverMarketingField.setChecked(record.allowDeliverMarketing == '1'); form.checkFieldsValid(); clientForm.removeClass('hide'); form.get('#client').setValue((record.type == 1 ? record.telephone : record.companyName), true); if (policyType == 2) { taxIdField.getParent('.form-group').addClass('hide'); taxIdField.setDisabled(true); } else { taxIdField.getParent('.form-group').removeClass('hide'); taxIdField.setDisabled(false); } }; prv.callbackCalculateCredit = function () { var cartAmount = cartAmountField.getValue(); var ownAmount = ownAmountField.getValue(); var countInstallment = countInstallmentField.getValue(); var offerInstallment = offerInstallmentField.getValue(); var bankOffer = bankOfferField.getValue(); var policyGD = form.get('#policyGD').getAttribute('data-id'); prv.hideCalculator(); if (cartAmount == '' || ownAmount == '' || countInstallment == '' || offerInstallment == '' || bankOffer == '') { return; } form.checkFieldsValid(); if (!form.isValid('cartAmount') || !form.isValid('ownAmount') || !form.isValid('countInstallment') || !form.isValid('offerInstallment')) { return; } Ite.api().policyAddSelectCreditInsurer(cartAmount, ownAmount, countInstallment, offerInstallment, bankOffer, policyGD, function (data) { var template = ''; var partInstallment = ''; var partAmount = ''; var insurer = ''; var credit = ''; var agreement = ''; if (data.insurer != 0) { selectedInsurer = true; partInstallment = data.partInstallmentCeilBrutto; partAmount = data.partAmountBrutto; insurer = data.name; credit = data.totalAmountBrutto; agreement = data['agreement']; } else { selectedInsurer = false; partInstallment = 'BRAK!'; partAmount = 'BRAK!'; insurer = 'BRAK!'; credit = 'BRAK!'; agreement = 'BRAK!'; } template += '
'; template += '
Ubezpieczyciel
' + insurer + '
'; if (data['policyNumber']) { template += '
Polisa GB
' + data['policyNumber'] + ' (' + data['policyPartAmount'] + ' zł)
'; } template += '
Składka
' + partAmount + '
'; template += '
Rata
' + partInstallment + '
'; template += '
Kredyt
' + credit + '
'; template += '
Do umowy
' + agreement + '
'; template += '
'; calculator = Ite.notify().addWarning(template); }, function (code, data) { bankOfferField.setValue(''); Ite.notify().addError(data); }); }; prv.resetField = function (name, checkbox) { var field = form.get('#' + name); if (!checkbox) { field.setValue(''); } field.setDisabled(true); field.getParent('.form-group').addClass('hide'); }; prv.showField = function (name) { var field = form.get('#' + name); field.setDisabled(false); field.getParent('.form-group').removeClass('hide'); }; prv.callbackDefaultValueFocus = function () { var value = this.getValue(); if (value == '0') { this.setValue(''); } }; prv.callbackDefaultValueBlur = function () { var value = this.getValue(); if (value == '') { this.setValue('0'); } }; prv.refreshPolicyView = function () { Ite.get('[role="buttons"]').removeClass('hide'); form.get('.panel-product').addClass('hide'); form.get('.panel-client').addClass('hide'); form.get('.panel-payment').addClass('hide'); policyNumberField.getParent('.form-group').addClass('hide'); policyNumberField.setDisabled(true); prv.hideCalculator(); prv.resetField('amount'); prv.resetField('cartAmount'); prv.resetField('commodityType'); prv.resetField('guaranteeRange'); prv.resetField('offer'); prv.resetField('orderDate'); prv.resetField('documentSales'); prv.resetField('serialNumber'); prv.resetField('brand'); prv.resetField('model'); prv.resetField('descriptionDevice'); prv.resetField('orderPromotion', true); prv.resetField('policyNumber'); prv.resetField('offer'); prv.resetField('paymentType'); prv.resetField('countInstallment'); prv.resetField('ownAmount'); prv.resetField('offerInstallment'); prv.resetField('creditNumber'); prv.resetField('policyGD'); prv.resetField('bank'); prv.resetField('bankOffer'); typeField.setValue(''); typeField.setDisabled(false); selectedInsurer = false; clientField.setValue(''); typeField.setValue(''); //bugfix commodityTypeField.setDisabled(true); if (policyType == 1) { onlyPrivatePerson = false; Ite.get('.client-comapny-label').setDisplay('inline-block'); form.get('.panel-product').removeClass('hide'); form.get('.panel-client').removeClass('hide'); form.get('.panel-payment').removeClass('hide'); prv.showField('paymentType'); prv.showField('amount'); prv.showField('commodityType'); prv.showField('guaranteeRange'); prv.showField('offer'); prv.showField('orderDate'); prv.showField('documentSales'); prv.showField('serialNumber'); prv.showField('brand'); prv.showField('model'); prv.showField('descriptionDevice'); prv.showField('orderPromotion'); //bugfix commodityTypeField.setDisabled(false); } else if (policyType == 2) { onlyPrivatePerson = true; Ite.get('.client-comapny-label').setDisplay('none'); form.get('.panel-client').removeClass('hide'); form.get('.panel-payment').removeClass('hide'); prv.showField('policyNumber'); prv.showField('paymentType'); typeField.setValue(1); typeField.setDisabled(true); } else if (policyType == 3) { onlyPrivatePerson = true; form.get('.panel-product').removeClass('hide'); form.get('.panel-client').removeClass('hide'); prv.showField('cartAmount'); prv.showField('ownAmount'); prv.showField('countInstallment'); prv.showField('offerInstallment'); prv.showField('creditNumber'); prv.showField('policyGD'); prv.showField('bank'); prv.showField('bankOffer'); if (form.get('#documentSales').getAttribute('data-ppi-support') === 'y') { prv.showField('documentSales'); } ownAmountField.setValue('0'); typeField.setValue(1); typeField.setDisabled(true); } clientField.setExtraStorageArguments({'onlyPrivate': onlyPrivatePerson}); }; prv.policTypeResetButton = function () { prv.continuePPIProcess = false; Ite.get('[role="standard"]').removeClass('btn-primary'); Ite.get('[role="fr"]').removeClass('btn-primary'); Ite.get('[role="ppi"]').removeClass('btn-primary'); Ite.get('[role="standard"]').addClass('btn-default'); Ite.get('[role="fr"]').addClass('btn-default'); Ite.get('[role="ppi"]').addClass('btn-default'); }; prv.clientLabel = function (record) { var template = ''; if (record.type == 1) { template = 'Osoba prywatna - ' + record.firstName + ' ' + record.lastName + ' ' + record.telephone; } else { template = 'Firma - ' + record.companyName + ' ' + record.taxId; } return template; }; prv.callbackPPIGBNotFound = function () { this.addResultItem('Dodaj nową', function () { policyGD.setAttribute('data-id', '0'); var data = form.getValues(); Ite.get('[role="standard"]').fireEvent('click'); data['type'] = 1; form.setValue(data); form.get('#paymentType').setValue(3);//Select credit form.get('#paymentType').setDisabled(true); prv.continuePPIProcess = true; delete data['policyGD']; Ite.getStorage().set('policyPPIData', JSON.stringify(data)); }); }; prv.configurePPI = function () { bankField.addEventChange(prv.callbackLoadBankOffers); countInstallmentField.addEventChange(prv.callbackLoadBankOffers); cartAmountField.addEventChange(prv.callbackCalculateCredit); ownAmountField.addEventChange(prv.callbackCalculateCredit); countInstallmentField.addEventChange(prv.callbackCalculateCredit); offerInstallmentField.addEventChange(prv.callbackCalculateCredit); bankOfferField.addEventChange(prv.callbackCalculateCredit); ownAmountField.addEventFocus(prv.callbackDefaultValueFocus); ownAmountField.addEventBlur(prv.callbackDefaultValueBlur); var policyGB = form.get('#policyGD'); policyGB.setStorage('/policy/add/searchGDForPPI.json'); policyGB.addEventFocus(function () { this.buildList(); }); policyGB.setRecordFormatter(function (record) { var template = record.number; return template; }); policyGB.addEventSelectedRecord(function (data) { form.checkFieldsValid(); policyGB.setAttribute('data-id', data.id); policyGB.setValue(data['number'], true); prv.callbackCalculateCredit(); prv.loadClientData(data.id); }); policyGB.addEventNoRecords(prv.callbackPPIGBNotFound); policyGB.addEventAfterExecute(prv.callbackPPIGBNotFound); }; prv.loadStartData = function () { try { if (!Ite.getStorage().get('continuePPIProcess')) { return null; } Ite.get('[role="ppi"]').fireEvent('click'); var policyGD = Ite.get("#policyGD"); var data = Ite.getStorage().get('policyPPIData'); if (data) { data = JSON.parse(data); form.get('.client-form').removeClass('hide'); prv.bankOfferDefault = data['bankOffer']; form.setValue(data); } policyGD.setAttribute('data-id', Ite.getStorage().get('policyId')); policyGD.setValue(Ite.getStorage().get('policyNumber'), true); Ite.get('#documentSales').setValue(Ite.getStorage().get('documentSales'), true); prv.loadClientData(Ite.getStorage().get('policyId')); Ite.getStorage().remove('continuePPIProcess'); Ite.getStorage().remove('policyId'); Ite.getStorage().remove('documentSales'); Ite.getStorage().remove('policyNumber'); Ite.getStorage().remove('policyPPIData'); } catch (e) { console.log(e); } ; }; prv.loadClientData = function (id) { Ite.api().send('policy/add/getClientByPolicyId.json', {id: id}, function (data) { Ite.get('.client-form').removeClass('hide'); var currentData = form.getValues(); for (var index in data) { currentData[index] = data[index]; } delete currentData['client']; form.setValue(currentData); Ite.get('#client').getDOMElement().value = currentData['telephonePrefix'] + currentData['telephone']; }); }; prv.construct = function () { prv.configurePPI(); form.addEventSubmit(function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (this.isValid() && selectedInsurer) { //jeżeli jest zaznaczone przetwarzanie drogą mailowa, a nie ma maila if (allowDeliverMarketingField.isChecked() && emailField.getValue() == '') { Ite.dialogBox().confirm('Czy chcesz dopisać Email klienta?', function (flag) { if (flag) { emailField.focus(); } else { prv.checkTelephone.call(form); } }); } else { prv.checkTelephone.call(this); } } }); guaranteeRangeField.addEventChange(prv.callbackLoadOffers); commodityTypeField.addEventChange(prv.callbackLoadOffers); amountField.addEventChange(prv.callbackLoadOffers); offerField.addEventChange(prv.callbackSelectInsurer); validator.setEnable(true); policyNumberField.setStorage('/policy/add/searchFreeRepairPolicy.json'); policyNumberField.setRecordFormatter(function (record) { var template = record.number; return template; }); policyNumberField.addEventSelectedRecord(function (data) { form.checkFieldsValid(); selectedInsurer = true; template = '
'; template += '
Ubezpieczyciel
' + data.insurer + '
' template += '
Składka
' + data.partAmountBrutto + '
' template += '
'; calculator = Ite.notify().addWarning(template); policyNumberField.setValue(data.number, true); form.get('#client').setValue(data.telephone, true); cityField.setValue(data.city); typeField.setValue(1); prv.callbackClientForm(data); }); policyNumberField.addEventBeforeRender(function () { this.addResultItem('Brak', function () { selectedInsurer = true; template = '
'; template += '
Ubezpieczyciel
Ergo Hestia
' template += '
Składka
98.00
' template += '
'; calculator = Ite.notify().addWarning(template); policyNumberField.setValue('Brak', true); }); }); typeField.addEventChange(function (e) { if (this.getValue() == 2) { peselField.getParent('.form-group').addClass('hide'); peselField.setDisabled(true); croField.getParent('.form-group').removeClass('hide'); croField.setDisabled(false); taxIdField.setRequired(true); companyNameField.setDisabled(false); companyNameField.getParent('.form-group').removeClass('hide'); nationalityField.getParent('.form-group').addClass('hide'); nationalityField.setDisabled(true); firstNameField.setDisabled(true); firstNameField.getParent('.form-group').addClass('hide'); lastNameField.setDisabled(true); lastNameField.getParent('.form-group').addClass('hide'); var containerAnotherDocument = anotherDocumentField.getParent('.form-group'); if (!containerAnotherDocument.isClass('hide')) { containerAnotherDocument.addClass('hide'); anotherDocumentField.setDisabled(true); } } else if (this.getValue() == 1) { peselField.getParent('.form-group').removeClass('hide'); peselField.setDisabled(false); croField.getParent('.form-group').addClass('hide'); croField.setDisabled(true); taxIdField.setRequired(false); companyNameField.setDisabled(true); companyNameField.getParent('.form-group').addClass('hide'); nationalityField.getParent('.form-group').removeClass('hide'); nationalityField.setDisabled(false); nationalityField.setValue(countryField.getValue()); firstNameField.setDisabled(false); firstNameField.getParent('.form-group').removeClass('hide'); lastNameField.setDisabled(false); lastNameField.getParent('.form-group').removeClass('hide'); if (nationalityField.getValue() != '1' && nationalityField.getValue() != '') { anotherDocumentField.setDisabled(false); anotherDocumentField.getParent('.form-group').removeClass('hide'); } } else { companyNameField.setValue(''); addressField.setValue(''); zipcodeField.setValue(''); countryField.setValue(1); firstNameField.setValue(''); lastNameField.setValue(''); taxIdField.setValue(''); croField.setValue(''); peselField.setValue(''); telephonePrefixField.setValue('+48'); telephoneField.setValue(''); emailField.setValue(''); allowMarketingField.setChecked(false); allowDeliverMarketingField.setChecked(false); } }); countryField.addEventChange(function (e) { nationalityField.setValue(this.getValue()); }); nationalityField.addEventChange(function (e) { if (typeField.getValue() != 1 || this.getValue() == 1 || this.getValue() == '') { anotherDocumentField.setDisabled(true); anotherDocumentField.getParent('.form-group').addClass('hide'); } else { anotherDocumentField.setDisabled(false); anotherDocumentField.getParent('.form-group').removeClass('hide'); } }); clientField.setStorage('/policy/add/searchClient.json'); clientField.setRecordFormatter(prv.clientLabel); clientField.addEventSelectedRecord(prv.callbackClientForm); clientField.addEventNoRecords(function (listContener) { this.addResultItem('Brak rekordów! Kliknij, aby dodać nowy', function () { clientForm.removeClass('hide'); if (onlyPrivatePerson) { typeField.setDisabled(false); typeField.setValue('1'); typeField.setDisabled(true); } companyNameField.setValue(''); addressField.setValue('ul. '); zipcodeField.setValue(''); countryField.setValue(1); firstNameField.setValue(''); lastNameField.setValue(''); taxIdField.setValue(''); croField.setValue(''); peselField.setValue(''); telephonePrefixField.setValue('+48'); telephoneField.setValue(''); emailField.setValue(''); allowMarketingField.setChecked(false); allowDeliverMarketingField.setChecked(false); clientForm.removeClass('hide'); }); }); form.get('#client').addEventChange(function () { if (this.getValue() == '') { clientForm.addClass('hide'); typeField.setValue(''); companyNameField.setValue(''); addressField.setValue(''); zipcodeField.setValue(''); // cityField.setValue(record.city); countryField.setValue(1); // nationalityField.setValue(1); firstNameField.setValue(''); lastNameField.setValue(''); taxIdField.setValue(''); croField.setValue(''); peselField.setValue(''); telephonePrefixField.setValue('+48'); telephoneField.setValue(''); emailField.setValue(''); allowMarketingField.setChecked(false); allowDeliverMarketingField.setChecked(false); clientForm.removeClass('hide'); form.get('#client').setValue(prv.clientLabel(record), true); } }); //render // Ite.date().render('input[type="date"]'); brandField.setStorage('/policy/add/searchBrand.json'); brandField.setRecordFormatter(function (record) { return record.name; }); brandField.addEventSelectedRecord(function (record) { var me = this; setTimeout(function () { me.setValue(record.name, true); }, 1); }); brandField.setDelayTime(300); Ite.get("[role='cancel']").addEventClick(function () { Ite.dialogBox().confirm('Czy na pewno anulować zmiany?', function (flag) { if (flag) { Ite.route().clearCache(); Ite.route().redirect('/policy/add'); } }); }); Ite.route().addEventChange(function () { prv.hideCalculator.call(); }); prv.loadStartData(); }; prv.construct(); }function FormClient(container) { var prv = {}; var pub = this; prv.container = container; prv.typeField = null; prv.personalIdField = null; prv.countryField = null; prv.nationalityField = null; prv.clientField = null; prv.companyNameField = null; prv.addressField = null; prv.zipcodeField = null; prv.firstNameField = null; prv.lastNameField = null; prv.taxIdField = null; prv.croField = null; prv.telephonePrefixField = null; prv.telephoneField = null; prv.emailField = null; prv.allowMarketingField = null; prv.allowDeliverMarketingField = null; prv.anotherDocumentField = null; prv.clientDetail = null; prv.onlyPrivatePerson = false; pub.setOnlyPrivatePerson = function (flag) { prv.onlyPrivatePerson = flag; prv.clientField.setExtraStorageArguments({'onlyPrivate': flag}); }; pub.setEmailRequire = function (flag) { prv.emailField.setRequired(flag); }; prv.init = function () { prv.container = container; prv.typeField = prv.container.get('#type'); prv.personalIdField = prv.container.get('#pesel'); prv.countryField = prv.container.get('#country'); prv.nationalityField = prv.container.get('#nationality'); prv.clientField = prv.container.get('#client'); prv.clientDetail = prv.container.get('.client-form'); prv.companyNameField = prv.container.get('#companyName'); prv.addressField = prv.container.get('#address'); prv.zipcodeField = prv.container.get('#zipcode'); prv.firstNameField = prv.container.get('#firstName'); prv.lastNameField = prv.container.get('#lastName'); prv.taxIdField = prv.container.get('#taxId'); prv.croField = prv.container.get('#cro'); prv.telephonePrefixField = prv.container.get('#telephonePrefix'); prv.telephoneField = prv.container.get('#telephone'); prv.emailField = prv.container.get('#email'); prv.allowMarketingField = prv.container.get('#allowMarketing'); prv.allowDeliverMarketingField = prv.container.get('#allowDeliverMarketing'); prv.anotherDocumentField = prv.container.get('#anotherDocument'); prv.typeField.addEventChange(prv.callbackChangeType()); prv.countryField.addEventChange(function () { prv.nationalityField.setValue(this.getValue()); }); prv.nationalityField.addEventChange(prv.callbackChangeNationality()); prv.clientField.setStorage('/policy/add/searchClient.json'); prv.clientField.setRecordFormatter(prv.clientLabel()); prv.clientField.addEventSelectedRecord(prv.callbackClientForm()); prv.clientField.addEventNoRecords(function () { this.addResultItem('Brak rekordów! Kliknij, aby dodać nowy', function () { prv.clientDetail.removeClass('hide'); if (prv.onlyPrivatePerson) { prv.typeField.setDisabled(false); prv.typeField.setValue('1'); prv.typeField.setDisabled(true); } prv.companyNameField.setValue(''); prv.addressField.setValue('ul. '); prv.zipcodeField.setValue(''); prv.countryField.setValue(1); prv.firstNameField.setValue(''); prv.lastNameField.setValue(''); prv.taxIdField.setValue(''); prv.croField.setValue(''); prv.personalIdField.setValue(''); prv.telephonePrefixField.setValue('+48'); prv.telephoneField.setValue(''); prv.emailField.setValue(''); prv.allowMarketingField.setChecked(false); prv.allowDeliverMarketingField.setChecked(false); prv.clientDetail.removeClass('hide'); }); }); prv.clientField.addEventChange(function () { if (this.getValue() === '') { prv.clientDetail.addClass('hide'); prv.typeField.setValue(''); prv.companyNameField.setValue(''); prv.addressField.setValue(''); prv.zipcodeField.setValue(''); // cityField.setValue(record.city); prv.countryField.setValue(1); prv.firstNameField.setValue(''); prv.lastNameField.setValue(''); prv.taxIdField.setValue(''); prv.croField.setValue(''); prv.personalIdField.setValue(''); prv.telephonePrefixField.setValue('+48'); prv.telephoneField.setValue(''); prv.emailField.setValue(''); prv.allowMarketingField.setChecked(false); prv.allowDeliverMarketingField.setChecked(false); prv.clientDetail.removeClass('hide'); prv.clientField.setValue('', true); } }); }; prv.callbackChangeType = function () { return function () { if (this.getValue() === '2') { prv.personalIdField.getParent('.form-group').addClass('hide'); prv.personalIdField.setDisabled(true); prv.croField.getParent('.form-group').removeClass('hide'); prv.croField.setDisabled(false); prv.taxIdField.setRequired(true); prv.companyNameField.setDisabled(false); prv.companyNameField.getParent('.form-group').removeClass('hide'); prv.nationalityField.getParent('.form-group').addClass('hide'); prv.nationalityField.setDisabled(true); prv.firstNameField.setDisabled(true); prv.firstNameField.getParent('.form-group').addClass('hide'); prv.lastNameField.setDisabled(true); prv.lastNameField.getParent('.form-group').addClass('hide'); var containerAnotherDocument = prv.anotherDocumentField.getParent('.form-group'); if (!containerAnotherDocument.isClass('hide')) { containerAnotherDocument.addClass('hide'); prv.anotherDocumentField.setDisabled(true); } return; } if (this.getValue() === '1') { prv.personalIdField.getParent('.form-group').removeClass('hide'); prv.personalIdField.setDisabled(false); prv.croField.getParent('.form-group').addClass('hide'); prv.croField.setDisabled(true); prv.taxIdField.setRequired(false); prv.companyNameField.setDisabled(true); prv.companyNameField.getParent('.form-group').addClass('hide'); prv.nationalityField.getParent('.form-group').removeClass('hide'); prv.nationalityField.setDisabled(false); prv.nationalityField.setValue(prv.countryField.getValue()); prv.firstNameField.setDisabled(false); prv.firstNameField.getParent('.form-group').removeClass('hide'); prv.lastNameField.setDisabled(false); prv.lastNameField.getParent('.form-group').removeClass('hide'); if (prv.nationalityField.getValue() !== '1' && prv.nationalityField.getValue() !== '') { prv.anotherDocumentField.setDisabled(false); prv.anotherDocumentField.getParent('.form-group').removeClass('hide'); } return; } prv.companyNameField.setValue(''); prv.addressField.setValue(''); prv.zipcodeField.setValue(''); prv.countryField.setValue(1); prv.firstNameField.setValue(''); prv.lastNameField.setValue(''); prv.taxIdField.setValue(''); prv.croField.setValue(''); prv.personalIdField.setValue(''); prv.telephonePrefixField.setValue('+48'); prv.telephoneField.setValue(''); prv.emailField.setValue(''); prv.allowMarketingField.setChecked(false); prv.allowDeliverMarketingField.setChecked(false); }; }; prv.callbackChangeNationality = function () { return function () { if (prv.typeField.getValue() !== '1' || this.getValue() === '1' || this.getValue() === '') { prv.anotherDocumentField.setDisabled(true); prv.anotherDocumentField.getParent('.form-group').addClass('hide'); return; } prv.anotherDocumentField.setDisabled(false); prv.anotherDocumentField.getParent('.form-group').removeClass('hide'); }; }; prv.clientLabel = function () { return function (record) { var template = ''; if (record.type === 1) { template = 'Osoba prywatna - ' + record['firstName'] + ' ' + record['lastName'] + ' ' + record['telephone']; } else { template = 'Firma - ' + record['companyName'] + ' ' + record['taxId']; } return template; }; }; prv.callbackClientForm = function () { return function (record) { var clientParent = prv.clientField.getParent('.form-group'); clientParent.removeClass('has-error'); prv.typeField.setValue(record.type); prv.companyNameField.setValue(record.companyName); prv.addressField.setValue(record.address); prv.zipcodeField.setValue(record.zipcode); prv.countryField.setValue(record.country); prv.nationalityField.setValue(record.nationality); prv.firstNameField.setValue(record.firstName); prv.lastNameField.setValue(record.lastName); prv.taxIdField.setValue(record.taxId); prv.croField.setValue(record.cro); prv.personalIdField.setValue(record.pesel); prv.anotherDocumentField.setValue(record.anotherDocument); prv.telephonePrefixField.setValue(record.telephone.substring(0, 3)); prv.telephoneField.setValue(record.telephone.substring(3)); prv.emailField.setValue(record.email); prv.allowMarketingField.setChecked(record['allowMarketing'] === '1'); prv.allowDeliverMarketingField.setChecked(record['allowDeliverMarketing'] === '1'); // form.checkFieldsValid(); prv.clientDetail.removeClass('hide'); prv.clientField.setValue((record['type'] === 1 ? record['telephone'] : record['companyName']), true); if (prv.onlyPrivatePerson) { prv.taxIdField.getParent('.form-group').addClass('hide'); prv.taxIdField.setDisabled(true); } else { prv.taxIdField.getParent('.form-group').removeClass('hide'); prv.taxIdField.setDisabled(false); } }; }; pub.submit = function (callbackConfirm) { //jeżeli jest zaznaczone przetwarzanie drogą mailowa, a nie ma maila if (prv.allowDeliverMarketingField.isChecked() && prv.emailField.getValue() === '') { Ite.dialogBox().confirm('Czy chcesz dopisać Email klienta?', function (flag) { if (flag) { prv.emailField.focus(); } else { prv.checkTelephone(callbackConfirm); } }); return; } prv.checkTelephone(callbackConfirm); }; prv.checkTelephone = function (callbackConfirm) { if (prv.typeField.getValue() === '1' && prv.telephoneField.getValue() === '') { Ite.dialogBox().confirm('Nie podałeś nr telefonu klienta, przez co nie będzie dostępny dla mechanizmu wyszukiwania. Czy chcesz kontynuować?', function (flag) { if (flag) { callbackConfirm(); } else { prv.telephoneField.focus(); } }); return; } callbackConfirm() }; pub.reset = function () { //todo }; prv.init(); }function FormGBAllegro(container) { var prv = {}; var pub = this; prv.container = container; prv.form = null; prv.guaranteeRangeField = null; prv.commodityTypeField = null; prv.amountField = null; prv.offerField = null; prv.orderDateField = null; prv.brandField = null; prv.paymentTypeField = null; prv.selectedInsurer = false; prv.calculator = null; prv.continuePPIProcess = false; prv.storage = { offers: {} }; prv.questionnaire = []; pub.getName = function () { return 'gb-allegro'; }; pub.getField = function (name) { return prv.form.get('#' + name); }; pub.getClientForm = function () { return prv.clientForm; }; prv.init = function () { prv.container = container; prv.form = prv.container.get('.form-policy form'); prv.clientForm = new FormClient(prv.container.get('.form-policy .panel-client')); prv.paymentTypeField = prv.form.get('#paymentType'); prv.guaranteeRangeField = prv.form.get('#guaranteeRange'); prv.commodityTypeField = prv.form.get('#commodityType'); prv.amountField = prv.form.get('#amount'); prv.offerField = prv.form.get('#offer'); prv.orderDateField = prv.form.get('#orderDate'); prv.brandField = prv.form.get('#brand'); prv.serialNumber = prv.form.get('#serialNumber'); var validator = prv.form.getValidator(); validator.setEnable(true); prv.guaranteeRangeField.addEventChange(prv.callbackLoadOffers()); prv.commodityTypeField.addEventChange(prv.callbackLoadOffers()); prv.amountField.addEventChange(prv.callbackLoadOffers()); prv.paymentTypeField.addEventChange(prv.callbackPaymentChange()); prv.offerField.addEventChange(prv.callbackSelectInsurer()); prv.brandField.setStorage('/policies/find-brands.json'); prv.brandField.setRecordFormatter(function (record) { return record.name; }); prv.brandField.addEventSelectedRecord(function (record) { var me = this; setTimeout(function () { me.setValue(record.name, true); }, 1); }); prv.brandField.setDelayTime(300); prv.container.get('[role="cancel"]').addEventClick(function () { prv.clearStorage(); Ite.route().clearCache(); Ite.route().redirect('/policy/add'); }); prv.form.addEventSubmit(prv.submitCallback()); }; prv.clearStorage = function () { Ite.getStorage().remove('continuePPIProcess'); Ite.getStorage().remove('policyId'); Ite.getStorage().remove('documentSales'); Ite.getStorage().remove('policyNumber'); Ite.getStorage().remove('policyPPIData'); }; pub.setVisible = function (flag) { if (flag) { prv.container.removeClass('hide'); } else { prv.container.addClass('hide'); } }; prv.callbackPaymentChange = function () { return function (item) { prv.callbackLoadOffers(); let value = prv.paymentTypeField.getValue(); let leasing = '4' === value; prv.serialNumber.setRequired(leasing); prv.clientForm.setEmailRequire(leasing); }; }; prv.submitCallback = function () { return function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (!this.isValid() || !prv.selectedInsurer) { return; } var values = prv.getValues(); values['questionnaire'] = prv.questionnaire; if (undefined === values['policyChannel']) { values['policyChannel'] = ''; } prv.clientForm.submit(function () { Ite.api().send('policies/add.json', { policy_type: 4, fields: values }, prv.successCallback()); }); } }; prv.getValues = function () { var data = prv.form.getValues(); data['anotherDocument'] = data['anotherDocument'] || ''; data['nationality'] = data['nationality'] || ''; data['cro'] = data['cro'] || ''; data['pesel'] = data['pesel'] || ''; data['allowMarketing'] = data['allowMarketing'] === 'true'; data['orderPromotion'] = data['orderPromotion'] === 'true'; data['allowDeliverMarketing'] = data['allowDeliverMarketing'] === 'true'; data['companyName'] = data['companyName'] || ''; data['amount'] = data['amount'].replace(',', '.'); data['token'] = prv.selectedOffer['id']; data['continuePPIProcess'] = prv.continuePPIProcess; if (prv.continuePPIProcess) { data['paymentType'] = 3; } if (data['telephone'] !== '') { data['telephone'] = data['telephonePrefix'] + data['telephone']; } delete data['telephonePrefix']; return data; }; prv.successCallback = function () { return function () { prv.hideCalculator(); Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }; }; prv.callbackLoadOffers = function () { return function () { if (prv.guaranteeRangeField.getValue() === '' || prv.commodityTypeField.getValue() === '' || prv.amountField.getValue() <= 0 || prv.paymentTypeField.getValue() === '') { prv.offerField.setDisabled(true); return; } Ite.api().send('policies/find-offers.json', { policy_type: 4, fields: { commodityType: prv.commodityTypeField.getValue(), guaranteeRange: prv.guaranteeRangeField.getValue(), paymentType: prv.paymentTypeField.getValue(), amount: prv.amountField.getValue() } }, function (data) { var template = ''; var records = {}; for (var i = 0; i < data.length; i++) { records[data[i].id] = data[i]; template += ''; } prv.storage.offers = records; prv.offerField.setHtml(template); prv.offerField.setDisabled(false); }); }; }; prv.callbackSelectInsurer = function () { return function () { prv.hideCalculator(); if (prv.offerField.getValue() === '' || prv.amountField.getValue() === '') { return; } var offer = prv.storage.offers[prv.offerField.getValue()]; var grossPrice = ''; var insurerName = ''; prv.selectedInsurer = true; grossPrice = offer['grossPrice']; insurerName = offer['insurerName']; sellerCommission = offer['sellerCommission']; prv.configureOrderDate(offer['insurerId'], offer); var template = '
'; template += '
Ubezpieczyciel
' + insurerName + '
'; template += '
Składka
' + grossPrice + '
'; if (sellerCommission) { template += '
Prowizja sprzedawcy
' + sellerCommission + '
'; } template += '
'; prv.calculator = Ite.notify().addWarning(template); prv.selectedOffer = offer; } }; prv.hideCalculator = function () { if (prv.calculator) { prv.calculator.remove(); prv.calculator = null; } }; prv.configureOrderDate = function (insurer, offer) { if (offer.isLongTerm) { var date = new Date(); date.setDate(date.getDate() - 365); prv.orderDateField.setMin(date); } else { prv.orderDateField.setMin(new Date()); } prv.orderDateField.setMax(new Date()); prv.orderDateField.setValue(prv.orderDateField.getMax()); }; pub.reset = function () { if (Ite.getStorage().get('policyPPIData')) { prv.resetPPI(); return; } prv.paymentTypeField.setValue(''); prv.paymentTypeField.setDisabled(false); }; prv.resetPPI = function () { prv.paymentTypeField.setValue(3); //select credit prv.paymentTypeField.setDisabled(true); prv.continuePPIProcess = true; }; prv.init(); }Ite.route().addController('ClientList', function () { var form = Ite.get('form'); var resultsTable = Ite.get('.results'); var paginationField = Ite.get('.form-pagination') var sort = 'id'; var desc = false; var page = 1; var updateView = function (paginationUpdate) { Ite.api().clientListFindRecords(form.getValues(), sort, page, function (data) { var template = ''; var records = data.records; for (var i = 0; i < records.length; i++) { template += ''; template += '' + Ite.escapeHtml(records[i].id) + ''; template += '' + Ite.escapeHtml(records[i].firstName) + ''; template += '' + Ite.escapeHtml(records[i].lastName) + ''; template += '' + Ite.escapeHtml(records[i].taxId) + ''; template += ''; } resultsTable.get('tbody').setHtml(template); Ite.get('.countCurrentRecords').setText(records.length); Ite.get('.countAllRecords').setText(data.countRecords); if (paginationUpdate) { paginationField.setValue(1); Ite.get('[role="countPages"]').setText(data.countPages); } Ite.getAll('.action-remove').each(function (item) { item.addEventClick(function (e) { e.setSystemHandle(false); e.setPropagation(false); Ite.dialogBox().confirm('Czy na pewno usunąć?', function (flag) { if (flag) { Ite.api().clientRemove({id: item.getAttribute('data-id')}, function (data) { Ite.notify().addInfo('Ubezpieczający został usunięty.'); Ite.route().clearCache(); item.getParent('tr').remove(); }); } }); }); }); }); } form.addEventSubmit(function (e) { e.setSystemHandle(false); page = 1; updateView(true); }); //sort Ite.getAll('.sort').each(function (column) { column.addEventClick(function () { if (sort != this.getAttribute('data-id')) desc = false; else desc = !desc; sort = this.getAttribute('data-id'); updateView(); }); }); Ite.get('.form-pagination').addEventChange(function (e) { page = this.getValue(); updateView(); }); Ite.get('.panel-toogle .panel-heading').addEventClick(function () { var container = this.getParent('.panel-toogle').get('.panel-body'); if (container.isClass('hide')) container.removeClass('hide'); else container.addClass('hide'); }); Ite.getAll('.action-remove').each(function (item) { item.addEventClick(function (e) { e.setSystemHandle(false); e.setPropagation(false); Ite.dialogBox().confirm('Czy na pewno usunąć?', function (flag) { if (flag) { Ite.api().clientRemove({id: item.getAttribute('data-id')}, function (data) { Ite.notify().addInfo('Ubezpieczający został usunięty.'); Ite.route().clearCache(); item.getParent('tr').remove(); }); } }); }); }); });Ite.route().addController('StoreAdd', function () { var form = Ite.get('form'); var validator = form.getValidator(); var zipcodeField = form.get('#zipcode'); validator.setEnable(true); zipcodeField.zipcode(); form.addEventSubmit(function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (this.isValid()) { Ite.api().storeAdd(this.getValues(), function (data) { Ite.notify().addInfo('Sklep został dodany.'); Ite.route().clearCache(); Ite.route().redirect('/store/list'); }); } }); Ite.get("[role='cancel']").addEventClick(function () { Ite.dialogBox().confirm('Czy na pewno anulować zmiany?', function (flag) { if (flag) { Ite.route().redirect('/store/list'); } }); }); });Ite.route().addController('RoleImport', function () { var form = Ite.get('form'); var fileField = form.get('#file'); form.getValidator().setEnable(true); Ite.get('.example').addEventClick(function () { Ite.openWindow('/role/import/example.xls'); }); form.addEventSubmit(function (e) { e.setSystemHandle(false); if (this.isValid()) { Ite.api().roleImportFile(fileField.getValue()[0], function (data) { Ite.route().clearCache(); Ite.get('.countCurrentRecords').setText(data.importedRecords); Ite.get('.countAllRecords').setText(data.allRecords); var invalidRecords = data.invalidRecords; var template = ''; for (var i = 0; i < invalidRecords.length; i++) { template += ''; template += '' + invalidRecords[i][0] + ''; template += '' + invalidRecords[i][1] + ''; template += '' + invalidRecords[i][2] + ''; template += ''; } Ite.get('.results').get('tbody').setHtml(template); }); } }); });Ite.route().addController('CategoryImport', function () { var form = Ite.get('form'); var fileField = form.get('#file'); form.getValidator().setEnable(true); Ite.get('.example').addEventClick(function () { Ite.openWindow('/category/import/example.xls'); }); form.addEventSubmit(function (e) { e.setSystemHandle(false); if (this.isValid()) { Ite.api().categoryImportFile(fileField.getValue()[0], function (data) { Ite.route().clearCache(); Ite.get('.countCurrentRecords').setText(data.importedRecords); Ite.get('.countAllRecords').setText(data.allRecords); var invalidRecords = data.invalidRecords; var template = ''; for (var i = 0; i < invalidRecords.length; i++) { template += ''; template += '' + invalidRecords[i][0] + ''; template += '' + invalidRecords[i][1] + ''; template += '' + invalidRecords[i][2] + ''; template += '' + invalidRecords[i][3] + ''; template += ''; } Ite.get('.results').get('tbody').setHtml(template); }); } }); });Ite.route().addController('UserAdd', function () { var form = Ite.get('form'); var validator = form.getValidator(); var storeField = form.get('#store'); var roleField = form.get('#role'); validator.setEnable(true); form.addEventSubmit(function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (this.isValid()) { Ite.api().userAdd(this.getValues(), function (data) { Ite.notify().addInfo('Użytkownik został dodany.'); Ite.route().clearCache(); Ite.route().redirect('/user/list'); }); } }); Ite.get("[role='cancel']").addEventClick(function () { Ite.dialogBox().confirm('Czy na pewno anulować zmiany?', function (flag) { if (flag) { Ite.route().redirect('/user/list'); } }); }); });Ite.route().addController('ReportPPI', function () { var private = {}; var form = Ite.get('form'); var validator = form.getValidator(); var resultsTable = Ite.get('.results'); var paginationField = Ite.get('.form-pagination') var sort = 'id'; var page = 1; var desc = false; validator.setEnable(true); var columnsMaps = new IteArray(); var columns = resultsTable.getAll('th'); columns.each(function (column) { columnsMaps.push(column.getAttribute('data-field')); }); var updateView = function (paginationUpdate) { Ite.get('.panel-result').removeClass('hide'); Ite.api().reportPPISearch(form.getValues(), sort, page, function (data) { var template = ''; var records = data.records; for (var i = 0; i < records.length; i++) { template += ''; columnsMaps.each(function (column) { template += '' + Ite.escapeHtml(records[i][column]) + ''; }); template += ''; } resultsTable.get('tbody').setHtml(template); Ite.get('.countCurrentRecords').setText(records.length); Ite.get('.countAllRecords').setText(data.countRecords); if (paginationUpdate) { paginationField.setValue(1); Ite.get('[role="countPages"]').setText(data.countPages); } }); }; form.addEventSubmit(function (e) { e.setSystemHandle(false); page = 1; updateView(true); }); Ite.getAll('.sort').each(function (column) { column.addEventClick(function () { if (sort != this.getAttribute('data-id')) desc = false; else desc = !desc; sort = this.getAttribute('data-id'); updateView(); }); }); Ite.get('.form-pagination').addEventChange(function (e) { page = this.getValue(); updateView(); }); var openWindow = function (verb, url, data, target) { var tmpForm = Ite.createObject("
"); tmpForm.setAction(url); tmpForm.setMethod(verb); tmpForm.setTarget(target || "_self"); if (data) { for (var key in data) { var input = Ite.createObject("') template.push('
'); template.push('
'); template.push(''); template.push('') template.push('
'); template.push('
'); template.push(''); template.push('') template.push('
'); template.push(''); Ite.dialogBox().dynamic(template.join(''), { 'Zatwierdź': cancelPolicyCallback(insurerCancel) , 'Anuluj': function () { this.remove(); } }); var formDialog = Ite.get('.form-dialog'); formDialog.addEventSubmit(function (e) { e.setSystemHandle(false); cancelPolicyCallback(insurerCancel); }); }); } catch (a) { //ignore } try { Ite.get('.freeRepair').addEventClick(function () { Ite.dialogBox().confirm('Czy na pewno dodać polisę?', function (flag) { if (flag) { Ite.api().policyShowFreeRepair({id: id}, function (data) { Ite.notify().addInfo('Polisa Bezpłatne naprawy została dodana.'); Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }); } }); }); } catch (a) { //ignore } try { Ite.get('.send-to-client').addEventClick(function () { var metaData = Ite.get('.meta-data'); console.log(metaData.toString()); var emailValue = Ite.get('.email-value').getText(); var telephoneValue = Ite.get('.telephone-value').getText(); var template = []; template.push('
'); template.push('
'); template.push(''); template.push(''); template.push('
'); template.push('
'); template.push(''); template.push(''); template.push('
'); template.push('
'); template.push(''); template.push(''); template.push('
'); template.push('
'); Ite.dialogBox().dynamic(template.join(''), { 'Zatwierdź': sendPolicyCallback() , 'Anuluj': function () { this.remove(); } }); var formDialog = Ite.get('.form-dialog'); formDialog.addEventSubmit(function (e) { e.setSystemHandle(false); sendPolicyCallback(); }); }); } catch (a) { //ignore } try { var form = Ite.get('form'); form.getValidator().setEnable(true); form.addEventSubmit(function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (!this.isValid()) { return; } var values = this.getValues(); values['id'] = id; Ite.api().policyShowUpdate(values, function (data) { Ite.route().clearCache(); Ite.route().redirect('/policy/add/summary'); }); }); } catch (a) { //ignore } try { var cancelPDOCallback = function () { this.remove(); Ite.api().send('policy/cancelPDO.json', {id: id}, function (data) { Ite.notify().addInfo('Zgoda została anulowana'); Ite.get('.cancel-pdo').remove(); try { Ite.get('.cancel-pdodcm').remove(); } catch (e) { //ignore } Ite.route().clearCache(); }); }; Ite.get('.cancel-pdo').addEventClick(function () { var buttons = { 'Tak': cancelPDOCallback , 'Nie': function () { this.remove(); } }; var dynamicButtons = {}; Ite.dialogBox().dynamic('Czy na pewno anulować zgodę?', buttons); }); } catch (a) { //ignore } try { var cancelPDODCMCallback = function () { this.remove(); Ite.api().send('policy/cancelPDODCM.json', {id: id}, function (data) { Ite.notify().addInfo('Zgoda została anulowana'); Ite.get('.cancel-pdodcm').remove(); Ite.route().clearCache(); }); }; Ite.get('.cancel-pdodcm').addEventClick(function () { var buttons = { 'Tak': cancelPDODCMCallback , 'Nie': function () { this.remove(); } }; var dynamicButtons = {}; Ite.dialogBox().dynamic('Czy na pewno anulować zgodę?', buttons); }); } catch (a) { //ignore } });Ite.route().addController('CategoryAdd', function () { var form = Ite.get('form'); var hestiaCodeField = form.get('#hestiaCode'); var validator = form.getValidator(); validator.setEnable(true); form.addEventSubmit(function (e) { e.setSystemHandle(false); this.checkFieldsValid(); var values = this.getValues(); if (values.offers == undefined) form.get('.offer-field').addClass('has-error'); else form.get('.offer-field').removeClass('has-error'); console.log(values); if (this.isValid() && (values.parent == '0' || values.parent != '0' && values.offers != undefined)) { Ite.api().categoryAdd(values, function (data) { Ite.notify().addInfo('Kategoria została dodana.'); Ite.route().clearCache(); Ite.route().redirect('/category/list'); }); } }); form.get('#parent').addEventChange(function () { var insurer = Ite.get('#insurer') if (this.getValue() == '' || this.getValue() == '2') { insurer.setDisabled(true); insurer.getParent('.form-group').addClass('hide'); } else { insurer.setDisabled(false); insurer.getParent('.form-group').removeClass('hide'); } var offers = Ite.get('#offers'); if (this.getValue() != '0') { offers.setDisabled(false); offers.getParent('.form-group').removeClass('hide'); } else { offers.setDisabled(true); offers.getParent('.form-group').addClass('hide'); } }); form.get('#insurer').addEventChange(function () { if (this.getValue() == '' || this.getValue() == '2') { var insurer = Ite.get('#hestiaCode') insurer.setDisabled(true); insurer.getParent('.form-group').addClass('hide'); } else { var insurer = Ite.get('#hestiaCode') insurer.setDisabled(false); insurer.getParent('.form-group').removeClass('hide'); } }); var maxId = 0; var offerHestiaAdded = 0; form.get('#offers').addEventChange(function () { if (this.getValue() != '') { form.get('.offer-field').removeClass('has-error'); var selectElement = this; var option = this.get('option[value="' + this.getValue() + '"]'); var name = option.getHtml(); var id = this.getValue(); var template = '
' + '
' + name + '
' + '
' + ' ' + '
' + ' ' + ' ' + ' ' + ' ' + ' To pole jest wymagane!' + '
' + '
' + ' ' + ' ' + ' ' + ' ' + ' To pole jest wymagane! Format to 0{. lub ,}{2 cyfry}.' + '
' + '
' + ' ' + ' ' + ' ' + ' ' + ' To pole jest wymagane! Format to 0{. lub ,}{2 cyfry}.' + '
' + '
' + '
'; var panel = Ite.createObject(template); form.get('.offers-contener').append(panel, 0); panel.get('.close').addEventClick(function () { selectElement.append(option.toHtml()); panel.remove(); }); option.remove(); maxId++; selectElement.setValue(''); } }); Ite.get("[role='cancel']").addEventClick(function () { Ite.dialogBox().confirm('Czy na pewno anulować zmiany?', function (flag) { if (flag) { Ite.route().redirect('/category/list'); } }); }); });Ite.route().addController('ProductCategoryImport', function () { var prv = {}; var pub = this; var form = Ite.get('form'); var fileField = form.get('#file'); form.getValidator().setEnable(true); Ite.get('.example').addEventClick(function () { Ite.openWindow('/productCategory/import/example.xls'); }); form.addEventSubmit(function (e) { e.setSystemHandle(false); if (!this.isValid()) { return; } Ite.api().upload('productCategory/import.json', fileField.getValue()[0], {}, function (data) { prv.steps = 0; prv.checkStatus(data['pid']); }); }); prv.showProgressBar = function () { prv.hideAll(); Ite.get('.progress').removeClass('hide'); } prv.showResult = function () { prv.hideAll(); Ite.get('.panel-success').removeClass('hide'); Ite.get('.panel-danger').removeClass('hide'); } prv.hideAll = function () { Ite.get('.progress').addClass('hide'); Ite.get('.panel-success').addClass('hide'); Ite.get('.panel-danger').addClass('hide'); } prv.checkStatus = function (pid) { this.updateProgress(0); prv.showProgressBar(); setTimeout(function () { prv.steps++; Ite.api().send('productCategory/getStatus.json', {'pid': pid}, function (data) { if (0 === data['status'] && prv.steps > 5) { Ite.notify().addError('Zadanie nie zostało uruchomione. Proszę ten fakt zgłosić administratorowi.'); Ite.get('.load-mask').addClass('hide'); prv.hideAll(); return; } if (3 === data['status']) { Ite.notify().addError(data['error']); Ite.get('.load-mask').addClass('hide'); prv.hideAll(); return; } if (data['status'] !== 2) { prv.checkStatus(pid); prv.updateProgress(data['progress']); return; } prv.showResult(); prv.updateSuccessTable(data['values']); prv.updateInvalidTable(data['values']); }, undefined, false); }, 1000); }; prv.updateProgress = function (progress) { var label = 'Sprawdzanie pliku'; if (progress > 0) { label = 'Importowanie danych: ' + progress + '%'; } if (progress === 0) { progress = 100; } var element = Ite.get('.progress-bar') element.getDOMElement().style.width = progress + '%'; element.setText(label); } prv.updateSuccessTable = function (data) { Ite.get('.countCurrentRecords').setText(data['numberSuccess']); Ite.get('.countAllRecords').setText(data['numberAll']); const successRecords = data['success']; let template = ''; for (let i = 0; i < successRecords.length; i++) { template += ''; template += '' + successRecords[i]['code'] + ''; template += '' + successRecords[i]['name'] + ''; template += '' + successRecords[i]['internalId'] + ''; template += '' + successRecords[i]['commodityType'] + ''; template += '' + successRecords[i]['status'] + ''; template += ''; } Ite.get('.success-result').get('tbody').setHtml(template); }; prv.updateInvalidTable = function (data) { Ite.get('.countInvalidRecords').setText(data['numberInvalid']); Ite.get('.countAllRecords').setText(data['numberAll']); var invalidRecords = data['invalid']; var template = ''; for (var i = 0; i < invalidRecords.length; i++) { template += ''; template += '' + invalidRecords[i]['code'] + ''; template += '' + invalidRecords[i]['name'] + ''; template += '' + invalidRecords[i]['internalId'] + ''; template += '' + invalidRecords[i]['commodityType'] + ''; template += '' + invalidRecords[i]['status'] + ''; template += '' + invalidRecords[i]['error'] + ''; template += ''; } Ite.get('.invalid-result').get('tbody').setHtml(template); }; });Ite.route().addController('UserList', function () { var form = Ite.get('form'); var storeField = form.get('#storeId'); var roleField = form.get('#roleId'); var statusField = form.get('#status'); var resultsTable = Ite.get('.results'); var paginationField = Ite.get('.form-pagination') var sort = 'id'; var desc = false; var page = 1; var updateView = function (paginationUpdate) { Ite.api().userListFindRecords(form.getValues(), sort, page, function (data) { var template = ''; var records = data.records; for (var i = 0; i < records.length; i++) { template += ''; template += '' + Ite.escapeHtml(records[i].id) + ''; template += '' + Ite.escapeHtml(records[i].username) + ''; template += '' + Ite.escapeHtml(records[i].firstName) + ''; template += '' + Ite.escapeHtml(records[i].lastName) + ''; template += '' + Ite.escapeHtml(records[i].email) + ''; template += '' + Ite.escapeHtml(records[i].store) + ''; template += '' + Ite.escapeHtml(records[i].mpk) + ''; template += '' + Ite.escapeHtml(records[i].role) + ''; template += '' + Ite.escapeHtml(records[i].functionalityCount) + ''; template += '' + Ite.escapeHtml((records[i].expiredDate ? records[i].expiredDate : '')) + ''; template += '' + Ite.escapeHtml(records[i].status) + ''; template += ''; template += ''; } resultsTable.get('tbody').setHtml(template); Ite.get('.countCurrentRecords').setText(records.length); Ite.get('.countAllRecords').setText(data.countRecords); if (paginationUpdate) { paginationField.setValue(1); Ite.get('[role="countPages"]').setText(data.countPages); } }); } form.addEventSubmit(function (e) { e.setSystemHandle(false); page = 1; updateView(true); }); //sort Ite.getAll('.sort').each(function (column) { column.addEventClick(function () { if (sort != this.getAttribute('data-id')) desc = false; else desc = !desc; sort = this.getAttribute('data-id'); updateView(); }); }); Ite.get('.form-pagination').addEventChange(function (e) { page = this.getValue(); updateView(); }); var openWindow = function (verb, url, data, target) { var tmpForm = Ite.createObject("
"); tmpForm.setAction(url); tmpForm.setMethod(verb); tmpForm.setTarget(target || "_self"); if (data) { for (var key in data) { var input = Ite.createObject("
', { 'Zatwierdź': cancelPolicyCallback , 'Anuluj': function () { this.remove(); } }); }); });Ite.route().addController('ContractorAdd', function () { var form = Ite.get('form'); var validator = form.getValidator(); var countryField = Ite.get('#country'); var zipcodeField = Ite.get('#zipcode'); validator.setEnable(true); zipcodeField.zipcode(); form.addEventSubmit(function (e) { e.setSystemHandle(false); this.checkFieldsValid(); if (this.isValid()) { Ite.api().contractorAdd(this.getValues(), function (data) { Ite.notify().addInfo('Kontrahent został dodany.'); Ite.route().clearCache(); Ite.route().redirect('/contractor/list'); }); } }); Ite.get("[role='cancel']").addEventClick(function () { Ite.dialogBox().confirm('Czy na pewno anulować zmiany?', function (flag) { if (flag) { Ite.route().redirect('/contractor/list'); } }); }); });Ite.route().addController('ReportPPIExtendsTransaction', function () { var private = {}; var form = Ite.get('form'); var validator = form.getValidator(); var statusField = Ite.get('#status'); validator.setEnable(true); form.addEventSubmit(function (e) { e.setSystemHandle(false); openWindow('POST', '/report/ppiExtendsTransaction/export.xls', form.getValues(), '_blank'); }); var openWindow = function (verb, url, data, target) { var tmpForm = Ite.createObject("
"); tmpForm.setAction(url); tmpForm.setMethod(verb); tmpForm.setTarget(target || "_self"); if (data) { for (var key in data) { var input = Ite.createObject("