| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- /**
- * Handles the <sections> and <articles> to show
- *
- * @namespace LUNGO
- * @class Router
- *
- * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
- * @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
- */
- LUNGO.Router = (function(lng, undefined) {
- var CLASS = lng.Constants.CLASS;
- var ELEMENT = lng.Constants.ELEMENT;
- var ERROR = lng.Constants.ERROR;
- var TRIGGER = lng.Constants.TRIGGER;
- /**
- * Navigate to a <section>.
- *
- * @method section
- *
- * @param {string} Id of the <section>
- */
- var section = function(section_id) {
- var section_id = lng.Core.parseUrl(section_id);
- var target = ELEMENT.SECTION + section_id;
- if (_existsTarget(target)) {
- lng.dom(_getHistoryCurrent()).removeClass(CLASS.SHOW).addClass(CLASS.HIDE);
- lng.dom(target).addClass(CLASS.SHOW).trigger(TRIGGER.LOAD);
- lng.Router.History.add(section_id);
- }
- };
- /**
- * Displays the <article> in a particular <section>.
- *
- * @method article
- *
- * @param {string} <section> Id
- * @param {string} <article> Id
- */
- var article = function(section_id, article_id) {
- var section_id = lng.Core.parseUrl(section_id);
- var article_id = lng.Core.parseUrl(article_id);
- var target = ELEMENT.SECTION + section_id + ' ' + ELEMENT.ARTICLE + article_id;
- if (_existsTarget(target)) {
- lng.dom(target).trigger(TRIGGER.LOAD);
- lng.View.Article.show(section_id, article_id);
- }
- };
- /**
- * Displays the <aside> in a particular <section>.
- *
- * @method aside
- *
- * @param {string} <section> Id
- * @param {string} <aside> Id
- */
- var aside = function(section_id, aside_id) {
- var section_id = lng.Core.parseUrl(section_id);
- var aside_id = lng.Core.parseUrl(aside_id);
- var target = ELEMENT.ASIDE + aside_id;
- if (_existsTarget(target)) {
- var is_visible = lng.dom(target).hasClass(CLASS.CURRENT);
- if (is_visible) {
- lng.View.Aside.hide(section_id, aside_id);
- } else {
- lng.View.Aside.show(section_id, aside_id);
- }
- }
- };
- /**
- * Return to previous section.
- *
- * @method back
- */
- var back = function() {
- var target = ELEMENT.SECTION + _getHistoryCurrent();
- lng.dom(target).removeClass(CLASS.SHOW).trigger(TRIGGER.UNLOAD);
- lng.Router.History.removeLast();
- lng.dom(_getHistoryCurrent()).removeClass(CLASS.HIDE).addClass(CLASS.SHOW);
- };
- var _existsTarget = function(target) {
- var exists = false;
- if (lng.dom(target).length > 0) {
- exists = true;
- } else {
- lng.Core.log(3, ERROR.ROUTER + target);
- }
- return exists;
- };
- var _getHistoryCurrent = function() {
- return lng.Router.History.current();
- };
- return {
- section: section,
- article: article,
- aside: aside,
- back: back
- };
- })(LUNGO);
|