Namespace fixes and applying autoloader/namespace

This commit is contained in:
Dennis Eichhorn 2016-03-26 21:39:18 +01:00
parent 5350531511
commit 877528f859
37 changed files with 175 additions and 72 deletions

View File

@ -9,14 +9,15 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Account');
/**
* @constructor
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.AccountManager = function ()
jsOMS.Account.AccountManager = function ()
{
this.accounts = [];
};
@ -31,7 +32,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.AccountManager.prototype.add = function (account)
jsOMS.Account.AccountManager.prototype.add = function (account)
{
this.accounts[account.getId()] = account;
};
@ -46,7 +47,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.AccountManager.prototype.remove = function (id)
jsOMS.Account.AccountManager.prototype.remove = function (id)
{
if (typeof this.accounts[id] !== 'undefined') {
delete this.accounts[id];
@ -69,7 +70,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.AccountManager.prototype.get = function (id)
jsOMS.Account.AccountManager.prototype.get = function (id)
{
if (this.accounts[id]) {
return this.accounts[id];

View File

@ -9,7 +9,9 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Account.EnumAccountType = Object.freeze({
jsOMS.Autoloader.defineNamespace('jsOMS.Account');
jsOMS.Account.AccountType = Object.freeze({
USER: 0,
GROUP: 1
});

View File

@ -9,7 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Asset');
/**
* @constructor
*

View File

@ -9,6 +9,7 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Auth');
/**
* @constructor

60
Autoloader.js Normal file
View File

@ -0,0 +1,60 @@
(function (jsOMS, undefined) {
jsOMS.Autoloader = {};
jsOMS.Autoloader.loaded = [];
jsOMS.Autoloader.namespaced = [];
jsOMS.Autoloader.defineNamespace = function(namespace)
{
if(jsOMS.Autoloader.namespaced.indexOf(namespace) === -1) {
let paths = namespace.split('.');
paths.splice(0, 1);
let length = paths.length,
current = jsOMS;
for(let i = 0; i < length; i++) {
if(typeof current[paths[i]] === 'undefined') {
current[paths[i]] = {};
}
current = current[paths[i]];
}
jsOMS.Autoloader.namespaced.push(namespace);
}
};
jsOMS.Autoloader.initPreloaded = function()
{
let scripts = document.getElementsByTagName('script'),
length = scripts.length;
for(let i = 0; i < length; i++) {
scripts[i].src.replace(URL + '/', '');
if(jsOMS.Autoloader.loaded.indexOf(scripts[i].src) === -1) {
jsOMS.Autoloader.loaded.push(scripts[i].src);
}
}
};
jsOMS.Autoloader.setPreloaded = function(file)
{
if(jsOMS.Autoloader.loaded.indexOf(file) === -1) {
jsOMS.Autoloader.loaded.push(file);
}
};
jsOMS.Autoloader.include = function(file, callback)
{
let length = file.length;
for(let i = 0; i < length; i++) {
if(jsOMS.Autoloader.loaded.indexOf(file) === -1) {
// todo: implement asset loading and pass callback
jsOMS.Autoloader.loaded.push(file);
}
}
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -9,6 +9,7 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Config');
/**
* @constructor

View File

@ -1,6 +1,8 @@
(function (jsOMS, undefined) {
jsOMS.Autoloader.defineNamespace('jsOMS.DataStorage');
// TODO: create comments
jsOMS.CacheManager = function ()
jsOMS.DataStorage.CacheManager = function ()
{
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -9,7 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.DataStorage');
/**
* @constructor
*

View File

@ -9,7 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.DataStorage');
/**
* @constructor
*

View File

@ -1,5 +1,7 @@
(function (jsOMS, undefined) {
jsOMS.StorageManager = function ()
jsOMS.Autoloader.defineNamespace('jsOMS.DataStorage');
jsOMS.DataStorage.StorageManager = function ()
{
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -1,5 +1,7 @@
(function (jsOMS, undefined) {
jsOMS.Dispatcher = function ()
jsOMS.Autoloader.defineNamespace('jsOMS.Dispatcher');
jsOMS.Dispatcher.Dispatcher = function ()
{
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -1,4 +1,6 @@
(function (jsOMS, undefined) {
jsOMS.EventManager = function () {
jsOMS.Autoloader.defineNamespace('jsOMS.Event');
jsOMS.Event.EventManager = function () {
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -9,6 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Log');
jsOMS.Log.LogLevel = Object.freeze({
EMERGENCY: 'normal',
ALERT: 'normal',

View File

@ -10,6 +10,7 @@
(function (jsOMS, undefined)
{
"use strict";
jsOMS.Autoloader.defineNamespace('jsOMS.Log');
/**
* @constructor
@ -17,7 +18,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.Logger = function (verbose, ui, remote)
jsOMS.Log.Logger = function (verbose, ui, remote)
{
this.verbose = typeof verbose !== 'undefined' ? verbose : true;
this.ui = typeof ui !== 'undefined' ? ui : true;
@ -55,7 +56,7 @@
context = this.createContext(message, context, level);
if(this.verbose) {
console.log(this.interpolate(message, context, level)));
console.log(this.interpolate(message, context, level));
}
if(this.ui) {
@ -63,7 +64,7 @@
}
if(this.remote) {
let request = new jsOMS.Message.Request(),
let request = new jsOMS.Message.Request();
request.setData(context);
request.setType(jsOMS.Message.Response.ResponseType.JSON);
request.setUri('/{/lang}/api/log');

View File

@ -9,6 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
jsOMS.Message.Request.BrowserType = Object.freeze({
OPERA: 'opera',
FIREFOX: 'firefox',

View File

@ -9,29 +9,31 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
jsOMS.Message.Request.OSType = Object.freeze({
WINDOWS_81: 'windows nt 6.3'; /* Windows 8.1 */
WINDOWS_8: 'windows nt 6.2'; /* Windows 8 */
WINDOWS_7: 'windows nt 6.1'; /* Windows 7 */
WINDOWS_VISTA: 'windows nt 6.0'; /* Windows Vista */
WINDOWS_SERVER: 'windows nt 5.2'; /* Windows Server 2003/XP x64 */
WINDOWS_XP: 'windows nt 5.1'; /* Windows XP */
WINDOWS_XP_2: 'windows xp'; /* Windows XP */
WINDOWS_2000: 'windows nt 5.0'; /* Windows 2000 */
WINDOWS_ME: 'windows me'; /* Windows ME */
WINDOWS_98: 'win98'; /* Windows 98 */
WINDOWS_95: 'win95'; /* Windows 95 */
WINDOWS_311: 'win16'; /* Windows 3.11 */
MAC_OS_X: 'macintosh'; /* Mac OS X */
MAC_OS_X_2: 'mac os x'; /* Mac OS X */
MAC_OS_9: 'mac_powerpc'; /* Mac OS 9 */
LINUX : 'linux'; /* Linux */
UBUNTU: 'ubuntu'; /* Ubuntu */
IPHONE: 'iphone'; /* IPhone */
IPOD: 'ipod'; /* IPod */
IPAD: 'ipad'; /* IPad */
ANDROID: 'android'; /* Android */
BLACKBERRY: 'blackberry'; /* Blackberry */
MOBILE: 'webos'; /* Mobile */
WINDOWS_81: 'windows nt 6.3', /* Windows 8.1 */
WINDOWS_8: 'windows nt 6.2', /* Windows 8 */
WINDOWS_7: 'windows nt 6.1', /* Windows 7 */
WINDOWS_VISTA: 'windows nt 6.0', /* Windows Vista */
WINDOWS_SERVER: 'windows nt 5.2', /* Windows Server 2003/XP x64 */
WINDOWS_XP: 'windows nt 5.1', /* Windows XP */
WINDOWS_XP_2: 'windows xp', /* Windows XP */
WINDOWS_2000: 'windows nt 5.0', /* Windows 2000 */
WINDOWS_ME: 'windows me', /* Windows ME */
WINDOWS_98: 'win98', /* Windows 98 */
WINDOWS_95: 'win95', /* Windows 95 */
WINDOWS_311: 'win16', /* Windows 3.11 */
MAC_OS_X: 'macintosh', /* Mac OS X */
MAC_OS_X_2: 'mac os x', /* Mac OS X */
MAC_OS_9: 'mac_powerpc', /* Mac OS 9 */
LINUX : 'linux', /* Linux */
UBUNTU: 'ubuntu', /* Ubuntu */
IPHONE: 'iphone', /* IPhone */
IPOD: 'ipod', /* IPod */
IPAD: 'ipad', /* IPad */
ANDROID: 'android', /* Android */
BLACKBERRY: 'blackberry', /* Blackberry */
MOBILE: 'webos' /* Mobile */
});
}(window.jsOMS = window.jsOMS || {}));

View File

@ -9,6 +9,7 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
/**
* @constructor
@ -37,7 +38,7 @@
} else if(typeof InstallTrigger !== 'undefined') {
return jsOMS.EnumBrowser.FIREFOX;
} else if(Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0) {
return return jsOMS.EnumBrowser.SAFARI;
return jsOMS.EnumBrowser.SAFARI;
} else if(/*@cc_on!@*/false || !!document.documentMode) {
return jsOMS.EnumBrowser.IE;
} else if(!isIE && !!window.StyleMedia) {

View File

@ -9,7 +9,9 @@
*/
(function (jsOMS, undefined)
{
jsOMS.EnumLinkRequestData = Object.freeze({
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
jsOMS.Message.RequestLinkRequestData = Object.freeze({
NORMAL: 'normal',
OBJECT: 'object'
});

View File

@ -11,14 +11,15 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
/**
* @constructor
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.Message.RequestManager = function ()
jsOMS.Message.Request.RequestManager = function ()
{
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -9,6 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
jsOMS.Message.Request.RequestMethod = Object.freeze({
POST: 'POST',
GET: 'GET',

View File

@ -9,6 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Request');
jsOMS.Message.Request.RequestType = Object.freeze({
JSON: 'json',
RAW: 'raw'

View File

@ -11,6 +11,7 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Response');
/**
* @constructor

View File

@ -9,6 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Response');
jsOMS.Message.Response.ResponseResultType = Object.freeze({
MULTI: 0,
MESSAGE: 1,

View File

@ -9,6 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Response');
jsOMS.Message.Response.ResponseType = Object.freeze({
TEXT: 'text',
JSON: 'json',

View File

@ -1,4 +1,6 @@
(function (uriFactory, undefined) {
jsOMS.Autoloader.defineNamespace('jsOMS.Message.Response');
jsOMS.Message.Response.Response = function (data) {
this.responses = data;
};

View File

@ -9,7 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.Module');
/**
* @constructor
*

View File

@ -9,8 +9,7 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Modules = {};
jsOMS.Modules.Models = {};
jsOMS.Autoloader.defineNamespace('jsOMS.Module');
/**
* @constructor

View File

@ -1,6 +1,8 @@
(function (jsOMS, undefined) {
jsOMS.Autoloader.defineNamespace('jsOMS.Route');
// TODO: create comments
jsOMS.Route = function ()
jsOMS.Route.Route = function ()
{
this.routes = null;
};

View File

@ -9,15 +9,15 @@
*/
(function (jsOMS, undefined)
{
"use strict";
jsOMS.Autoloader.defineNamespace('jsOMS.UI');
/**
* @constructor
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.UI.FormManager = function (app)
jsOMS.UI.FormManager = function(app)
{
this.app = app;
this.forms = {};

View File

@ -10,6 +10,7 @@
(function (jsOMS, undefined)
{
"use strict";
jsOMS.Autoloader.defineNamespace('jsOMS.UI');
/**
* @constructor

View File

@ -1,15 +1,13 @@
(function (jsOMS, undefined) {
jsOMS.Autoloader.defineNamespace('jsOMS.UI.Input');
jsOMS.Autoloader.include(['jsOMS/UI/Input/Keyboard/KeyBoardManager.js'], function() {
jsOMS.UI.Input.InputManager = function ()
{
this.keyBoardManager = new jsOMS.UI.Input.Keyboard.KeyBoardManager();
this.keyBoardManager = new jsOMS.UI.Input.Keyboard.KeyboardManager();
};
jsOMS.UI.Input.InputManager.prototype.getKeyboardManager = function()
{
return this.keyBoardManager;
};
});
}(window.jsOMS = window.jsOMS || {}));

View File

@ -1,9 +1,11 @@
(function (jsOMS, undefined) {
jsOMS.UI.Input.KeyboardManager = function ()
jsOMS.Autoloader.defineNamespace('jsOMS.UI.Input.Keyboard');
jsOMS.UI.Input.Keyboard.KeyboardManager = function ()
{
};
jsOMS.UI.Input.KeyboardManager.prototype.bind = function (element, keys, callback)
jsOMS.UI.Input.Keyboard.KeyboardManager.prototype.bind = function (element, keys, callback)
{
element.addEventListener('keyup', function keyBind(event) {
if(event.keyCode === keys.keyCode) {
@ -13,7 +15,7 @@
};
jsOMS.UI.Input.KeyboardManager.prototype.unbind = function (element)
jsOMS.UI.Input.Keyboard.KeyboardManager.prototype.unbind = function (element)
{
element.removeEventListener('keyup', keyBind, false);
};

View File

@ -9,14 +9,15 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.UI');
/**
* @constructor
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.TabManager = function (responseManager)
jsOMS.UI.TabManager = function (responseManager)
{
this.responseManager = responseManager;
};
@ -31,7 +32,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.TabManager.prototype.bind = function (id)
jsOMS.UI.TabManager.prototype.bind = function (id)
{
if (typeof id !== 'undefined') {
this.bindElement(document.getElementById(id));
@ -54,7 +55,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.TabManager.prototype.bindElement = function (e)
jsOMS.UI.TabManager.prototype.bindElement = function (e)
{
var nodes = e.querySelectorAll('.tab-links a');

View File

@ -9,14 +9,15 @@
*/
(function (jsOMS, undefined)
{
jsOMS.Autoloader.defineNamespace('jsOMS.UI');
/**
* @constructor
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.TableManager = function (responseManager)
jsOMS.UI.TableManager = function (responseManager)
{
this.responseManager = responseManager;
};
@ -31,7 +32,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.TableManager.prototype.bind = function (id)
jsOMS.UI.TableManager.prototype.bind = function (id)
{
if (typeof id !== 'undefined') {
this.bindElement(document.getElementById(id));
@ -54,7 +55,7 @@
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
jsOMS.TableManager.prototype.bindElement = function (e)
jsOMS.UI.TableManager.prototype.bindElement = function (e)
{
};
}(window.jsOMS = window.jsOMS || {}));

View File

@ -9,8 +9,8 @@
*/
(function (jsOMS, undefined)
{
jsOMS.UI = {};
jsOMS.Autoloader.defineNamespace('jsOMS.UI');
/**
* @constructor
*
@ -20,9 +20,9 @@
jsOMS.UI.UIManager = function (app)
{
this.app = app;
this.formManager = new jsOMS.FormManager(this.app);
this.tabManager = new jsOMS.TabManager(this.app.responseManager);
this.tableManager = new jsOMS.TableManager(this.app.responseManager);
this.formManager = new jsOMS.UI.FormManager(this.app);
this.tabManager = new jsOMS.UI.TabManager(this.app.responseManager);
this.tableManager = new jsOMS.UI.TableManager(this.app.responseManager);
};
/**

View File

@ -1,6 +1,5 @@
(function (uriFactory, undefined) {
jsOMS.Uri.UriFactory = {};
jsOMS.Uri.UriFactory.uri = {};
jsOMS.Autoloader.defineNamespace('jsOMS.Uri.UriFactory');
jsOMS.Uri.UriFactory.parseUrl = function (str, component)
{
@ -89,7 +88,7 @@
let current = jsOMS.Uri.UriFactory.parseUrl(window.location.href);
// match(new RegExp("\{[#\?\.a-zA-Z0-9]*\}", "gi"));
return uri.replace('\{[\/#\?@\.\$][a-zA-Z0-9]*\}' function(match) {
return uri.replace('\{[\/#\?@\.\$][a-zA-Z0-9]*\}', function(match) {
match = substr(match[0], 1, match[0].length - 2);
if(toMatch.hasProperty(match)) {

View File

@ -1,5 +1,6 @@
(function (jsOMS, undefined) {
"use strict";
jsOMS.Autoloader.defineNamespace('jsOMS.Views');
jsOMS.Views.FormView = function (id) {
this.id = id;