From dae55685476e313c8543af2f66105bd05187d2d9 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 26 Jun 2016 16:21:24 +0200 Subject: [PATCH] Commenting --- Controller.js | 34 +++++++++++++++- Models/Navigation.js | 93 ++++++++++++++++++++++++++++++++++---------- 2 files changed, 106 insertions(+), 21 deletions(-) diff --git a/Controller.js b/Controller.js index 269d7a2..1fcab00 100644 --- a/Controller.js +++ b/Controller.js @@ -14,6 +14,12 @@ /** @namespace jsOMS.Modules.Navigation.Models */ jsOMS.Autoloader.defineNamespace('jsOMS.Modules.Navigation'); + /** + * Constructor + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation = function () { this.navigation = {}; @@ -21,8 +27,24 @@ this.rawNavData = this.rawNavData !== null ? this.rawNavData : {}; }; + /** + * Module id + * + * @var {string} + * @since 1.0.0 + */ jsOMS.Modules.Navigation.MODULE_NAME = '1000500001'; + /** + * Bind navigation + * + * @param {string} id Navigation to bind (optional) + * + * @return {void} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.prototype.bind = function (id) { let e = typeof id === 'undefined' ? document.getElementsByClassName('nav') : [document.getElementById(id)], @@ -33,9 +55,19 @@ } }; + /** + * Bind navigation element + * + * @param {Element} e Element to bind + * + * @return {void} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.prototype.bindElement = function (e) { - if (typeof e === 'undefined') { + if (typeof e === 'undefined' || !e) { // todo: do logging here return; diff --git a/Models/Navigation.js b/Models/Navigation.js index cd45fa0..6ed5b97 100644 --- a/Models/Navigation.js +++ b/Models/Navigation.js @@ -14,6 +14,14 @@ /** @namespace jsOMS.Modules.Navigation.Models */ jsOMS.Autoloader.defineNamespace('jsOMS.Modules.Navigation.Models'); + /** + * Construct + * + * @param {Object} data Initialization (optional) + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation = function (data) { if (typeof data === 'undefined') { @@ -29,27 +37,74 @@ } }; + /** + * Set scroll position + * + * @param {int} x Horizontal position + * @param {int} y Vertical position + * + * @return {void} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.setScrollPosition = function (x, y) { this.scrollPosition.x = x; this.scrollPosition.y = y; }; + /** + * Get scroll position + * + * @return {Object} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.getScrollPosition = function () { return this.scrollPosition; }; + /** + * Open navigation category + * + * @param {string} id Category id + * + * @return {void} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.setOpen = function (id) { this.openCategories[id] = true; }; + /** + * Close navigation category + * + * @param {string} id Category id + * + * @return {void} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.setClose = function (id) { delete this.openCategories[id]; }; + /** + * Get open navigation elements + * + * @return {Object} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.getOpen = function () { return this.openCategories; @@ -69,33 +124,31 @@ { }; + /** + * Set navigation visibility + * + * @param {bool} visible Visibility + * + * @return {bool} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.setVisible = function (visible) { this.visible = visible; }; + /** + * Is navigation visible + * + * @return {bool} + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ jsOMS.Modules.Navigation.Models.Navigation.prototype.isVisible = function () { return this.visible; }; - - jsOMS.Modules.Navigation.Models.Navigation.prototype.serialize = function () - { - return JSON.stringify({ - visible: this.visible, - activeLinks: this.activeLinks, - scrollPosition: this.scrollPosition, - openCategories: this.openCategories - }); - }; - - jsOMS.Modules.Navigation.Models.Navigation.prototype.unserialize = function (data) - { - let temp = JSON.parse(data); - - this.visible = temp.visible; - this.activeLinks = temp.activeLinks; - this.openCategories = temp.openCategories; - this.scrollPosition = temp.scrollPosition; - }; }(window.jsOMS = window.jsOMS || {}));