// console workaround /* if (!console) { var console = function() { this.log = function(msg) { // } } } */ function toObject(arr) { var rv = {}; for (var i = 0; i < arr.length; ++i) if (arr[i] !== undefined) rv[i] = arr[i]; return rv; } function SystemCore() { } SystemCore.addGlobalItem = function(key, object) { if (!SystemCore.globalItems) { SystemCore.globalItems = {}; } SystemCore.globalItems[key] = object; } SystemCore.getGlobalItem = function(key, object) { return SystemCore.globalItems[key]; } SystemCore.setLocal = function(key, object) { if(!localStorage) { return false; } localStorage[key] = JSON.stringify(object); localStorage[key + "_date"] = SystemCore.now(true); return true; } SystemCore.getLocalDate = function(key) { if(!localStorage) { return false; } return localStorage[key + "_date"]; } SystemCore.getLocal = function(key) { if(!localStorage) { return false; } if(localStorage[key]) { return JSON.parse(localStorage[key]); } return false; } SystemCore.takeScreenshot = function(handler) { var report = {}; report.width = $("body").width(); report.height = $("body").height(); report.screenshot = $("html").html(); report.browser = {}; report.browser.version = navigator.appVersion; report.browser.vendor = navigator.vendor; report.browser.platform = navigator.platform; report.browser.userAgent = navigator.userAgent; report.browser.cookieEnabled = navigator.cookieEnabled ? 1 : 0; SystemRequest.load('SystemManager', 'prepareScreenshot', [report], function(response){ handler(response.data); }); return report; } // LANGUAGES // daca nu e target, completat e "core" SystemCore.translate = function(label, targetModule) { targetModule = targetModule ? targetModule : "core"; if (!__translations) { return ""; } var trans = __translations[targetModule] ? __translations[targetModule][label] : undefined; return trans ? trans : "translate:["+label+"]"; } SystemCore.loadTranslations = function(module, handler) { // SystemCore.language var langPath = SystemCore.BASE_URL + "languages/" + module + "_translation_" + SystemCore.language + ".js"; Loader.getScripts([langPath], function(){ if (handler) { handler(); } }); } SystemCore.IP = "216.73.216.97"; SystemCore.language = ""; SystemCore.BASE_URL = "http://evangluth-arad.ro/"; SystemCore.ADMIN_IMAGES = "http://evangluth-arad.ro/admin/images/"; SystemCore.LIB_URL = "http://evangluth-arad.ro/eob-libs/"; SystemCore.FILES_URL = "http://evangluth-arad.ro/files_/"; SystemCore.MODULES_PATH = SystemCore.LIB_URL + "com/sds/eob/Modules/"; SystemCore.DOWNLOAD_GATEWAY = SystemCore.BASE_URL + "downloadGateway.php"; SystemCore.MODULES_GATEWAY = SystemCore.BASE_URL + "moduleGateway.php"; SystemCore.FILE_GATEWAY = "http://evangluth-arad.ro/fileGateway.php"; SystemCore.ADAPTERS_GATEWAY = SystemCore.BASE_URL + "adaptersGateway.php"; SystemCore.JS_LIB = SystemCore.BASE_URL + ""; SystemCore.USER_ID = ""; SystemCore.KEEP_ALIVE_TIME = 10000; SystemCore.ICON_NEW_DOCUMENT = SystemCore.ADMIN_IMAGES + "new_document_16.png"; SystemCore.ICON_ADD = SystemCore.ADMIN_IMAGES + "add_16.png"; SystemCore.ICON_EDIT = SystemCore.ADMIN_IMAGES + "edit_16.png"; SystemCore.ICON_COPY = SystemCore.ADMIN_IMAGES + "copy_16.png"; SystemCore.ICON_PASTE = SystemCore.ADMIN_IMAGES + "16x16_paste.png"; SystemCore.ICON_REMOVE = SystemCore.ADMIN_IMAGES + "remove_16.png"; SystemCore.ICON_PREVIEW = SystemCore.ADMIN_IMAGES + "preview_16.png"; SystemCore.ICON_HOME = SystemCore.ADMIN_IMAGES + "home_16.png"; SystemCore.ICON_HELP = SystemCore.ADMIN_IMAGES + "help_16.png"; SystemCore.ICON_SETTINGS = SystemCore.ADMIN_IMAGES + "settings_16.png"; SystemCore.ICON_SETTINGS_32 = SystemCore.ADMIN_IMAGES + "settings_32.png"; SystemCore.ICON_DOWNLOAD = SystemCore.ADMIN_IMAGES + "download_16.png"; SystemCore.ICON_DISABLE = SystemCore.ADMIN_IMAGES + "disable_16.png"; SystemCore.ICON_INVOICE = SystemCore.ADMIN_IMAGES + "16x16_invoice.png"; SystemCore.ICON_ENABLE = SystemCore.ADMIN_IMAGES + "enable_16.png"; SystemCore.ICON_ENABLE_OFF = SystemCore.ADMIN_IMAGES + "enable_off_16.png"; SystemCore.ICON_ALERT = SystemCore.ADMIN_IMAGES + "alert_24x24.png"; SystemCore.ICON_DROPDOWN = SystemCore.ADMIN_IMAGES + "16x16_combo.png"; SystemCore.ICON_CLOSE = SystemCore.ADMIN_IMAGES + "close_30x30.png"; SystemCore.ICON_BLUE_DOT = SystemCore.ADMIN_IMAGES + "blue_dot_10.png"; SystemCore.ICON_PRINT = SystemCore.ADMIN_IMAGES + "print_16x16.png"; SystemCore.ICON_LOCK = SystemCore.ADMIN_IMAGES + "16x16_lock.png"; SystemCore.ICON_UNLOCK = SystemCore.ADMIN_IMAGES + "16x16_unlock.png"; SystemCore.ICON_WOMAN = SystemCore.ADMIN_IMAGES + "woman.png"; SystemCore.ICON_MAN = SystemCore.ADMIN_IMAGES + "man.png"; SystemCore.ICON_CANCELLED = SystemCore.ADMIN_IMAGES + "cancelled_16.png"; SystemCore.ICON_DELIVERY = SystemCore.ADMIN_IMAGES + "delivery_16.png"; SystemCore.ICON_LOADING = SystemCore.ADMIN_IMAGES + "loading_16.png"; SystemCore.ICON_MAIL_SMALL = SystemCore.ADMIN_IMAGES + "mail_16.png"; SystemCore.ICON_OPEN_MAIL = SystemCore.ADMIN_IMAGES + "open-mail_16.png"; SystemCore.ICON_IMPORTANT = SystemCore.ADMIN_IMAGES + "important_16.png"; SystemCore.ICON_DOWN_ARROW = SystemCore.ADMIN_IMAGES + "down_arrow_16.png"; // mahle, si nu numai SystemCore.ICON_ADD_64 = SystemCore.ADMIN_IMAGES + "add_64.png"; SystemCore.ICON_CHANGE_64 = SystemCore.ADMIN_IMAGES + "change_64.png"; SystemCore.ICON_COMMENTS_24 = SystemCore.ADMIN_IMAGES + "comments_24.png"; // 32 SystemCore.ICON_SHEET_32 = SystemCore.ADMIN_IMAGES + "sheet_32.png"; SystemCore.ICON_FOLDER_32 = SystemCore.ADMIN_IMAGES + "folder_32.png"; SystemCore.ICON_MAIL = SystemCore.ADMIN_IMAGES + "mail_32.png"; SystemCore.getIcon = function(iconPath, tooltip, attributes) { var title = tooltip ? " title=\""+tooltip+"\" " : ""; return ""; } SystemCore.TITAN_GATEWAY = "http://evangluth-arad.ro/galileo/Application ERP2/jqueryGateway.php"; /** * headerFields has name/value: name for header and value for fieldKey(in collection) */ SystemCore.isNumber = function(n) { return !isNaN(parseFloat(n)) && isFinite(n); } SystemCore.measureTextWidth = function(str, style) { var rnd = parseInt(Math.random() * 100000); $("body").append(""+str+""); if (style) { for (var key in style) { if (key == "width" || key == "min-width") continue; $(".dummyContainerForTextMeasurement"+rnd).css(key, style[key]); } } var width = $(".dummyContainerForTextMeasurement"+rnd).width(); if ($(".dummyContainerForTextMeasurement"+rnd)) { $(".dummyContainerForTextMeasurement"+rnd).remove(); } return width; } SystemCore.csvToExcel = function(columns, headerLabels, collection, fileName) { SystemRequest.load("CSV","csvToExcel",[columns, headerLabels, collection, fileName], function(response){ document.location = SystemCore.MODULES_GATEWAY + "?module=CSV&method=downloadExcel¶ms="+response.data.toString()+","+fileName; }); } SystemCore.createCSV = function(headerFields,rows) { var csv = ""; var fldKey; for(var key in headerFields) { csv += '"'+headerFields[key]['name']+'",'; } csv += "\r\n"; for(var i in rows) { for(var key in headerFields) { fldKey = headerFields[key]['value']; if (rows[i][fldKey]) { rows[i][fldKey] = (rows[i][fldKey]).toString().split('"').join("'"); } else { rows[i][fldKey] = ""; } csv += '"'+rows[i][fldKey]+'",'; } csv += "\r\n"; } return csv; } SystemCore.getObjectLength = function(obj) { var size = 0; var key = null; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; } /* * remove event from jqelement */ SystemCore.off = function(jqelement, handler, type) { type = type === undefined ? "click" : type; try { if (handler !== undefined) { $(jqelement).die(type, handler); } else { $(jqelement).die(type); } }catch(err){} } SystemCore.onClick = function(jqelement, handler, type) { type = !type ? "click" : type; try { $(jqelement).die(type); }catch(err){} $(jqelement).live(type, handler) } SystemCore.renderTemplate = function(element, templateCode, data) { var tplid = "tpl_" + SystemCore.random(100,10000) + "_" + SystemCore.random(100,10000); $.template( tplid, templateCode ); $.tmpl( tplid, data ).appendTo( element ); } SystemCore.getIdsFromCollection = function(collection, idField) { idField = idField ? idField : "id"; if (collection && collection.length > 0) { var i = 0; var ids = []; for (i=0;i 0) { var i = 0; for (i=0;i 0) { var i = 0; for (i=0;i 0) { var first = value[0]; var j = 0; if (first.hasOwnProperty("name")) { self.children().remove(); for (j=0;j'+value[j]['name']+''); selfChanged = true; } } } else { self.val(value); selfChanged = true; } break; case 'file': self.attr("value",""); break; case 'checkbox': if (value === true || parseInt(value) > 0) { self.attr("checked","checked"); } else { self.removeAttr("checked"); } break; case 'radio': if (self.attr("value") == value && value && value.length > 0) { if ((parseInt(value) > 0) || (value && value.length > 0)) { self.attr("checked","checked"); } else { self.removeAttr("checked"); } selfChanged = true; } break; case 'hidden': self.val(value); selfChanged = true; if ($("div#container_"+self.attr("id"))[0]) { var gmapValue = value.replace("(", "").replace(")","").split(","); var latLng = new google.maps.LatLng(parseFloat(gmapValue[0]), parseFloat(gmapValue[1])); window["map_"+self.attr("id")].setZoom(parseInt(gmapValue[2])); window["map_"+self.attr("id")].panTo(latLng); if (window["mrkmap_"+self.attr("id")]) { window["mrkmap_"+self.attr("id")].setMap(null); } window["mrkmap_"+self.attr("id")] = new google.maps.Marker({ position: latLng, map: window["map_"+self.attr("id")] }); } break; case 'textarea': try { if (self.hasClass("richText")) { for (var edId in tinymce.editors) { if (tinymce.editors[edId].editorId == self.attr("id")) { tinymce.editors[edId].setContent(value); break; } } }// nu traba` break } catch(e) { } default: self.val(value); selfChanged = true; break; } } if (selfChanged && triggerChange !== false) { self.trigger("keyup"); self.trigger("change"); } } } if (completeHandler != undefined) { completeHandler(); } } function fillFormWithArray_bckp(form, data, completeHandler) { var frmElements = $(form)[0].elements; $.each(data, function(key, value){ for (var i=0;i 0) { var first = value[0]; var j = 0; if (first.hasOwnProperty("name")) { self.children().remove(); for (j=0;j'+value[j]['name']+''); } } } else { self.val(value); } break; case 'file': /* nu trebuie setat */ break; case 'checkbox': case 'radio': if (self.attr("value") == value && value && value.length > 0) { self.attr("checked",(parseInt(value) > 0 || (value && value.length > 0) ? "checked" : null)); } break; default: self.val(value); break; } } self.trigger("keyup"); self.trigger("change"); } }); if (completeHandler != undefined) { completeHandler(); } } function ColorUtils() { } ColorUtils.getFontColorForBackground = function(bgHex) { if (bgHex.indexOf('#') === 0) { bgHex = bgHex.substr(1,10); } res = parseInt(bgHex, 16); if (res < 7368816) { color = "#ffffff"; } else { color = "#000000"; } return color; } /** * Get instances as containers */ SystemCore.instances = {}; SystemCore.getInstances = function() { var rez = $("div[id^=inst_]"); var key = ''; var obj; for(var i=0; i 0 ? parseInt(number) : 10000; return parseInt(Math.random() * number); } SystemCore.registerToggleElement = function() { // TODO -- cipri, mai ai de lucru aici // o sa foloseasca la toggle state-uri pe public ... } SystemCore.removeUserInfo = function() { SystemCore.permissions = []; SystemCore.user = undefined; } SystemCore.getUserInfo = function(handler) { SystemRequest.load("Users","getUserInfo",[{x:0}], function(resp){ if(resp.success) { SystemCore.permissions = resp.data.permissions; SystemCore.user = resp.data.user; } else { SystemCore.removeUserInfo(); } if (handler) { handler(SystemCore.user, SystemCore.permissions); } }); } SystemCore.permissions = {}; SystemCore.getPermissions = function(handler) { SystemRequest.load("Users","getCurrentUserPermissions",[], function(response){ SystemCore.permissions = response.data ? response.data : []; if (handler) { handler(); } }); } SystemCore.hasPermission = function(permission,module) { var len = SystemCore.permissions.length; for(var i in SystemCore.permissions) { if (SystemCore.permissions[i].name == "coreAdministrator") { return true; } if (SystemCore.permissions[i].module == module && (permission==null || SystemCore.permissions[i].name == permission)) { return true; } } return false; } SystemCore.login = function(e,p,handler) { SystemCore.removeUserInfo(); SystemRequest.load("Users","login",[e,p], handler); } SystemCore.logout = function(handler) { SystemCore.removeUserInfo(); SystemRequest.load("Users","logout",[], handler); } SystemCore.getLoginForm = function(loginHandler,loginLabel, cancelLabel, title,description) { var loginForm; title = title ? title : ""; description = description ? description : ""; loginLabel = loginLabel ? loginLabel : "Login"; cancelLabel = cancelLabel ? cancelLabel : ""; loginForm = new UIForm("",{formId:"_coreLoginForm_", title:title, description:description}); var formObj = UIForm.createCustomForm("_coreLoginFormObj_", loginLabel,cancelLabel); UIForm.addField(formObj, "email", "Email", "email", "", true,{}); UIForm.addField(formObj, "password", "Pasword", "password", "", true,{}); loginForm.load(null, formObj); loginForm.onSave(function(){ var fData = loginForm.getData(); SystemCore.login(fData.email, fData.password, loginHandler); }); return loginForm; } SystemCore.getLoginFormJS = function(loginHandler,loginLabel, cancelLabel, title,description) { var loginForm; title = title ? title : ""; description = description ? description : ""; loginLabel = loginLabel ? loginLabel : "Login"; cancelLabel = cancelLabel ? cancelLabel : ""; loginForm = new UIFormJS("_coreLoginForm_", loginLabel,cancelLabel,{title:title, description:description}); loginForm.addField("email", "Email", "email", "", true,{}); loginForm.addField("password", "Pasword", "password", "", true,{}); loginForm.load(); loginForm.onLoad(function(){ loginForm.onSave(function(){ var fData = loginForm.getData(); SystemCore.login(fData.email, fData.password, loginHandler); }); }) return loginForm; } SystemCore.createUIApplication = function(appName, container) { var _app = new UIApplication({name:appName, id:appName+"Id", container:container}); // var _wrapper = _app.wrapper; _app.render(); _wrapper.dispatchResize(); return _app; } Event = function(type, data, currentTarget) { this.type = type; this.currentTarget = currentTarget; this.data = data; this.defaultPrevented = false; this.isDefaultPrevented = function() { this.defaultPrevented = true; } this.preventDefault = function() { this.defaultPrevented = true; } } Event.CHANGE = "change"; Event.CHANGING = "changing"; $(document).ready(function(){ SystemCore.getInstances(); }); SystemCore.listeners = {}; /** * Obiectele care sunt adaugate ca si eventListener trebuie sa aiba * o metoda publica liste(event), unde event are: target(dispatcher),type(string) si data(Object) */ /** * dispatcher -- e optional (daca nu se specifica trebuie tratat in handlerii din listeneri) */ SystemCore.addEventListener = function(listenerObjOrFunct,type,dispather) { if (!SystemCore.listeners[type]) { SystemCore.listeners[type] = []; } SystemCore.listeners[type].push( {object:listenerObjOrFunct,type:type,dispatcher:dispather} ); } SystemCore.removeAllEvents = function(params, type) { if (SystemCore.listeners[type]) { SystemCore.listeners[type] = undefined; } } /** * Remove event listener */ SystemCore.removeEventListener = function(object,type,dispatcher) { if (SystemCore.listeners[type]) { // TODO -- nu am rezolvat sa stearga in context - ci pe type doar //SystemCore.listeners[type] = undefined; //return; for (var i=0; i'; this.tpl; this.activePage = 0; this.tpl = $.template(this.templateName,this.tplWrapper); this.setTotal = function(total,perPage) { this.total = total; this.perPage = perPage ? perPage : 30; this.totalPages = Math.ceil(this.total / this.perPage); } this.clearTemplate = function() { $(this.container).empty(); } this.render = function(activePage) { // tplPaginationPlaceHolder if (!this.tpl) { this.tpl = $.template(this.templateName,this.tplRow); } var pages = []; this.activePage = activePage>=0 ? activePage : 0; var obj = {}; for(var i=0; i'); if ($.browser.msie && jQuery.browser.version < 9.0) // muIE 6,7,8 { var containerId = $(this.container).attr("id"); var objBody = document.getElementById(containerId); iframe = document.createElement(''); } } this.registerField = function(name,servicePath,params,encodeToJSON) { var paramsStr = params.join(","); var fieldStr = ''; fieldStr += ''; fieldStr += ''; fieldStr += ''; fieldStr += ''; $(this.container).append(fieldStr); } this.setParams = function(fieldName,params) { var paramsStr = params.join(","); $(this.container + " [name="+fieldName+"Params]").val(paramsStr); } } /** * Service Locator - generated by SystemManager (cipri) */ SystemCore.getModuleService = function(moduleName, handler) { Loader.getScripts([SystemCore.MODULES_PATH + moduleName + "/js/services/"+moduleName+"JSService.js"], function(){ if (handler) { handler( window[moduleName+"JSService"] ); } }); } /** * Load an array of .js and execute the callback function * When all scripts 100% loaded * * @return */ function Includes() { } Includes.scriptStack = {} Includes.loadedCounter = 0; Includes.len = 0; //Includes.handler; Includes.load = function(scripts, handler, errorHandler, forceLoading) { Includes.len = scripts.length; Includes.handler = handler; var scripts = scripts; var concatChar = "?"; Includes.loadedCounter = 0; for (var i=0; i'; $("body").append(wrapper); $("body .PopupUtilsMenu").append(content); PopupUtils.currentPopupMenu = $("body .PopupUtilsMenu"); }