Lungo.Boot.Section.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. _initFirstSection();
  21. _initAllSections();
  22. lng.View.Resize.toolbars();
  23. };
  24. var _initFirstSection = function() {
  25. var first_section = lng.Element.sections.first();
  26. lng.Element.Current.section = first_section;
  27. lng.Element.Current.article = first_section.children(ELEMENT.ARTICLE).first();
  28. var first_section_id = '#' + first_section.attr(ATTRIBUTE.ID);
  29. first_section.addClass(CLASS.CURRENT);
  30. lng.Router.History.add(first_section_id);
  31. };
  32. var _initAllSections = function() {
  33. //@todo: position fixed
  34. //lng.Fallback.positionFixed(lng.Element.sections);
  35. for (var i = 0, len = lng.Element.sections.length; i < len; i++) {
  36. _initArticles(i);
  37. }
  38. };
  39. var _initArticles = function(section_index) {
  40. var section = lng.dom(lng.Element.sections[section_index]);
  41. var first_article = section.children(ELEMENT.ARTICLE).first();
  42. first_article.addClass(CLASS.CURRENT);
  43. var first_article_id = first_article.attr(ATTRIBUTE.ID);
  44. if (first_article_id) lng.View.Article.switchReferenceItems(first_article_id, section);
  45. };
  46. return {
  47. init: init
  48. };
  49. })(Lungo);