Lungo.Boot.Section.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * Initialize the <section> element
  3. *
  4. * @namespace Lungo.Boot
  5. * @class Section
  6. *
  7. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  8. * @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
  9. */
  10. Lungo.Boot.Section = (function(lng, undefined) {
  11. var ELEMENT = lng.Constants.ELEMENT;
  12. var CLASS = lng.Constants.CLASS;
  13. var ATTRIBUTE = lng.Constants.ATTRIBUTE;
  14. /**
  15. * Initializes all <section>s of the project
  16. *
  17. * @method init
  18. */
  19. var init = function() {
  20. _cacheDOMElements();
  21. lng.Fallback.fixPositionInAndroid();
  22. _initFirstSection();
  23. _initAllSections();
  24. _initAllAsides();
  25. };
  26. var _initFirstSection = function() {
  27. var first_section = lng.Element.Cache.sections.first();
  28. lng.Element.Cache.section = first_section;
  29. lng.Element.Cache.article = first_section.children(ELEMENT.ARTICLE).first();
  30. var first_section_id = '#' + first_section.attr(ATTRIBUTE.ID);
  31. first_section.addClass(CLASS.CURRENT);
  32. lng.Router.History.add(first_section_id);
  33. };
  34. var _initAllSections = function() {
  35. //@todo: position fixed
  36. //lng.Fallback.positionFixed(lng.Element.Cache.sections);
  37. for (var i = 0, len = lng.Element.Cache.sections.length; i < len; i++) {
  38. _initArticles(i);
  39. }
  40. };
  41. var _initAllAsides = function() {
  42. var aside = null;
  43. for (var i = 0, len = lng.Element.Cache.asides.length; i < len; i++) {
  44. aside = lng.dom(lng.Element.Cache.asides[i]);
  45. aside.children(ELEMENT.ARTICLE).addClass(CLASS.CURRENT);
  46. }
  47. };
  48. var _initArticles = function(section_index) {
  49. var section = lng.dom(lng.Element.Cache.sections[section_index]);
  50. var first_article = section.children(ELEMENT.ARTICLE).first();
  51. first_article.addClass(CLASS.CURRENT);
  52. var first_article_id = first_article.attr(ATTRIBUTE.ID);
  53. if (first_article_id) lng.View.Article.switchReferenceItems(first_article_id, section);
  54. };
  55. var _cacheDOMElements = function() {
  56. lng.Element.Cache.sections = lng.dom(ELEMENT.SECTION);
  57. lng.Element.Cache.asides = lng.dom(ELEMENT.ASIDE);
  58. };
  59. return {
  60. init: init
  61. };
  62. })(Lungo);