From 6e9c6653cad634f0b45a2bd78fb1094c46756853 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 9 Apr 2016 13:34:57 +0200 Subject: [PATCH] Remaining bug fixes for restructure-1 --- Auth/Auth.js | 2 +- Log/LogLevel.enum.js | 16 +++++++------- Log/Logger.js | 34 +++++++++++++++++++++++------ Message/Request/Request.js | 20 ++++++++--------- Message/Response/Response.js | 8 ++++++- Message/Response/ResponseManager.js | 2 +- UI/FormManager.js | 15 +++++++------ Views/FormView.js | 34 ++++++++++++++++++++++++++++- 8 files changed, 95 insertions(+), 36 deletions(-) diff --git a/Auth/Auth.js b/Auth/Auth.js index 7fca725..5e738ce 100644 --- a/Auth/Auth.js +++ b/Auth/Auth.js @@ -63,7 +63,7 @@ */ jsOMS.Auth.Auth.prototype.login = function () { - var authRequest = new jsOMS.Message.Request(); + var authRequest = new jsOMS.Message.Request.Request(); authRequest.setUri(this.uri); authRequest.setMethod(jsOMS.Message.Request.RequestMethod.POST); authRequest.setResponseType(jsOMS.Message.Request.RequestType.JSON); diff --git a/Log/LogLevel.enum.js b/Log/LogLevel.enum.js index 06ca393..e900404 100644 --- a/Log/LogLevel.enum.js +++ b/Log/LogLevel.enum.js @@ -12,13 +12,13 @@ jsOMS.Autoloader.defineNamespace('jsOMS.Log'); jsOMS.Log.LogLevel = Object.freeze({ - EMERGENCY: 'normal', - ALERT: 'normal', - CRITICAL: 'normal', - ERROR: 'normal', - WARNING: 'normal', - NOTICE: 'normal', - INFO: 'normal', - DEBUG: 'normal' + EMERGENCY: 'emergency', + ALERT: 'alert', + CRITICAL: 'critical', + ERROR: 'error', + WARNING: 'warning', + NOTICE: 'notice', + INFO: 'info', + DEBUG: 'debug' }); }(window.jsOMS = window.jsOMS || {})); diff --git a/Log/Logger.js b/Log/Logger.js index 6712231..7ed4b36 100644 --- a/Log/Logger.js +++ b/Log/Logger.js @@ -31,7 +31,7 @@ { let newMessage = jsOMS.Log.Logger.layout; - for(replace in context) { + for(let replace in context) { newMessage = newMessage.replace('{'+replace+'}', context[replace]); } @@ -42,8 +42,8 @@ { context['datetime'] = (new Date()).toISOString(); context['version'] = '1.0.0'; - context['os'] = jsOMS.Message.Request.getOS(); - context['browser'] = jsOMS.Message.Request.getBrowser(); + context['os'] = jsOMS.Message.Request.Request.getOS(); + context['browser'] = jsOMS.Message.Request.Request.getBrowser(); context['path'] = window.location.href; context['level'] = level; context['message'] = message; @@ -56,7 +56,7 @@ context = this.createContext(message, context, level); if(this.verbose) { - console.log(this.interpolate(message, context, level)); + console.log('%c' + this.interpolate(message, context, level), 'color: #FFA600'); } if(this.ui) { @@ -64,11 +64,11 @@ } if(this.remote) { - let request = new jsOMS.Message.Request(); + let request = new jsOMS.Message.Request.Request(); request.setData(context); - request.setType(jsOMS.Message.Response.ResponseType.JSON); + request.setType(jsOMS.Message.Response.Response.ResponseType.JSON); request.setUri('/{/lang}/api/log'); - request.setMethod(jsOMS.Message.Request.RequestMethod.POST); + request.setMethod(jsOMS.Message.Request.Request.RequestMethod.POST); request.setRequestHeader('Content-Type', 'application/json'); request.setSuccess(function (xhr) {}); request.send(); @@ -77,51 +77,71 @@ jsOMS.Log.Logger.prototype.emergency = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.EMERGENCY) }; jsOMS.Log.Logger.prototype.alert = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.ALERT) }; jsOMS.Log.Logger.prototype.critical = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.CRITICAL) }; jsOMS.Log.Logger.prototype.error = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.ERROR) }; jsOMS.Log.Logger.prototype.warning = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.WARNING) }; jsOMS.Log.Logger.prototype.notice = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.NOTICE) }; jsOMS.Log.Logger.prototype.info = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.INFO) }; jsOMS.Log.Logger.prototype.debug = function(message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.DEBUG) }; jsOMS.Log.Logger.prototype.log = function(level, message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, context) }; jsOMS.Log.Logger.prototype.console = function(level, message, context) { + context = typeof context === 'undefined' ? {} : context; + this.write(message, context, jsOMS.Log.LogLevel.INFO) }; }(window.jsOMS = window.jsOMS || {})); diff --git a/Message/Request/Request.js b/Message/Request/Request.js index 946ba41..b74661b 100644 --- a/Message/Request/Request.js +++ b/Message/Request/Request.js @@ -34,26 +34,26 @@ jsOMS.Message.Request.Request.getBrowser = function() { if((!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0) { - return jsOMS.EnumBrowser.OPERA; + return jsOMS.Message.Request.BrowserType.OPERA; } else if(typeof InstallTrigger !== 'undefined') { - return jsOMS.EnumBrowser.FIREFOX; + return jsOMS.Message.Request.BrowserType.FIREFOX; } else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) { - return jsOMS.EnumBrowser.SAFARI; + return jsOMS.Message.Request.BrowserType.SAFARI; } else if(/*@cc_on!@*/false || !!document.documentMode) { - return jsOMS.EnumBrowser.IE; - } else if(!isIE && !!window.StyleMedia) { - return jsOMS.EnumBrowser.EDGE; + return jsOMS.Message.Request.BrowserType.IE; + } else if(!!window.StyleMedia) { + return jsOMS.Message.Request.BrowserType.EDGE; } else if(!!window.chrome && !!window.chrome.webstore) { - return jsOMS.EnumBrowser.CHROME; + return jsOMS.Message.Request.BrowserType.CHROME; } else if((isChrome || isOpera) && !!window.CSS) { - return jsOMS.EnumBrowser.BLINK; + return jsOMS.Message.Request.BrowserType.BLINK; } }; jsOMS.Message.Request.Request.getOS = function() { for(let os in jsOMS.Message.Request.OSType) { - if(navigator.appversion.indexOf(jsOMS.Message.Request.OSType[os]) !== -1) { + if(navigator.appVersion.toLowerCase().indexOf(jsOMS.Message.Request.OSType[os]) !== -1) { return jsOMS.Message.Request.OSType[os]; } } @@ -303,7 +303,7 @@ let self = this; if (self.xhr.readyState !== 1) { - self.xhr.open(this.method, jsOMS.UriFactory.build(this.uri)); + self.xhr.open(this.method, jsOMS.Uri.UriFactory.build(this.uri)); for (let p in this.requestHeader) { if (this.requestHeader.hasOwnProperty(p)) { diff --git a/Message/Response/Response.js b/Message/Response/Response.js index 7fa8dbd..007abff 100644 --- a/Message/Response/Response.js +++ b/Message/Response/Response.js @@ -12,6 +12,12 @@ jsOMS.Message.Response.Response.prototype.getByIndex = function(index) { - return this.responses[Object.keys(this.responses).sort()[index]]; + //return this.responses[Object.keys(this.responses).sort()[index]]; + return this.responses; + }; + + jsOMS.Message.Response.Response.prototype.count = function() + { + return 1; }; }(window.jsOMS = window.jsOMS || {})); \ No newline at end of file diff --git a/Message/Response/ResponseManager.js b/Message/Response/ResponseManager.js index c093761..d5456b6 100644 --- a/Message/Response/ResponseManager.js +++ b/Message/Response/ResponseManager.js @@ -62,7 +62,7 @@ * @since 1.0.0 * @author Dennis Eichhorn */ - jsOMS.Message.Response.ResponseManager.prototype.execute = function (key, data, request) + jsOMS.Message.Response.ResponseManager.prototype.run = function (key, data, request) { console.log(data); if (typeof request !== 'undefined' && typeof this.messages[key][request] !== 'undefined') { diff --git a/UI/FormManager.js b/UI/FormManager.js index 95fdf8b..d5921c3 100644 --- a/UI/FormManager.js +++ b/UI/FormManager.js @@ -58,7 +58,8 @@ jsOMS.UI.FormManager.prototype.bindForm = function(id) { if(typeof id === 'undefined' || !id) { - throw false; + this.app.logger.info('A form doesn\'t have an ID.'); + return; } let self = this; @@ -99,7 +100,7 @@ } /* Handle default submit */ - let request = new jsOMS.Message.Request(), + let request = new jsOMS.Message.Request.Request(), self = this; request.setData(form.getData()); @@ -111,7 +112,7 @@ { try { let o = JSON.parse(xhr.response), - response = new Response(o), + response = new jsOMS.Message.Response.Response(o), responseLength = response.count(), tempResponse = null, success = null; @@ -119,16 +120,16 @@ /* Handle responses (can be multiple response object) */ for (let k = 0; k < responseLength; k++) { tempResponse = response.getByIndex(k); - console.log(tempResponse); - if(typeof (success = form.getSuccess()) !== 'undefined') { + if((success = form.getSuccess()) !== null) { success(tempResponse); } else { - self.app.responseManager.run(tempResponse); + self.app.responseManager.run(tempResponse.type, tempResponse, request); } } } catch (exception) { - self.app.logger.error('Invalid JSON object: ' + xhr, 'FormManager') + self.app.logger.error('Invalid Login response: ' + JSON.stringify(xhr)); + return false; } }); diff --git a/Views/FormView.js b/Views/FormView.js index dd7fb47..b7d9f7e 100644 --- a/Views/FormView.js +++ b/Views/FormView.js @@ -7,6 +7,7 @@ this.initializeMembers(); this.bind(); + this.success = null; }; jsOMS.Views.FormView.prototype.initializeMembers = function() @@ -31,6 +32,16 @@ return document.getElementById(this.id).querySelectorAll('input[type=submit]')[0]; }; + jsOMS.Views.FormView.prototype.getSuccess = function() + { + return this.success; + }; + + jsOMS.Views.FormView.prototype.setSuccess = function(callback) + { + this.success = callback; + }; + jsOMS.Views.FormView.prototype.injectSubmit = function(id, callback) { this.submitInjects[id] = callback; @@ -57,12 +68,33 @@ i = 0; for(i = 0; i < length; i++) { - data[elements[i].getAttribute('name')] = elements[i].value; + data[this.getElementId(elements[i])] = elements[i].value; } return data; }; + jsOMS.Views.FormView.prototype.getElementId = function(e) + { + let id = null; + + id = e.getAttribute('name'); + + if(id === null) { + id = e.getAttribute('id'); + } else { + return id; + } + + if(id === null) { + id = e.getAttribute('type'); + } else { + return id; + } + + return id; + } + jsOMS.Views.FormView.prototype.getSubmitInjects = function() { return this.submitInjects;