Lungo.View.Article.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * Initialize the <articles> layout of a certain <section>
  3. *
  4. * @namespace Lungo.View
  5. * @class Article
  6. *
  7. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  8. * @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
  9. */
  10. Lungo.View.Article = (function(lng, undefined) {
  11. var ELEMENT = lng.Constants.ELEMENT;
  12. var CLASS = lng.Constants.CLASS;
  13. var ATTRIBUTE = lng.Constants.ATTRIBUTE;
  14. var SELECTORS = {
  15. NAVIGATION_ITEM: 'a[href][data-router="article"]',
  16. REFERENCE_LINK: ' a[href][data-article]',
  17. TITLE_OF_ARTICLE: 'header .title, footer .title',
  18. ASIDE_REFERENCE_LIST: 'li a.active, li.active'
  19. };
  20. /**
  21. * ?
  22. *
  23. * @method show
  24. */
  25. var title = function(value) {
  26. if (value) {
  27. lng.Element.Cache.section.find(SELECTORS.TITLE_OF_ARTICLE).text(value);
  28. }
  29. };
  30. var switchNavItems = function(article_id) {
  31. lng.Element.Cache.section.find(SELECTORS.NAVIGATION_ITEM).removeClass(CLASS.ACTIVE);
  32. var active_nav_items = 'a[href="' + article_id + '"][data-router="article"]';
  33. lng.Element.Cache.section.find(active_nav_items).addClass(CLASS.ACTIVE);
  34. if (lng.Element.Cache.aside) {
  35. aside = lng.Element.Cache.aside;
  36. aside.find(SELECTORS.ASIDE_REFERENCE_LIST).removeClass(CLASS.ACTIVE);
  37. aside.find(active_nav_items).addClass(CLASS.ACTIVE).parent().addClass(CLASS.ACTIVE);
  38. }
  39. };
  40. var switchReferenceItems = function(article_id, section) {
  41. var reference = "[data-article=" + article_id.replace('#', '') + "]";
  42. section.find(SELECTORS.REFERENCE_LINK).hide().siblings(reference).show();
  43. };
  44. return {
  45. title: title,
  46. switchReferenceItems: switchReferenceItems,
  47. switchNavItems: switchNavItems
  48. };
  49. })(Lungo);