Lungo.Boot.Section.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /**
  2. * Initialize the <section> element
  3. *
  4. * @namespace LUNGO.Boot
  5. * @class Section
  6. * @requires Zepto
  7. *
  8. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  9. * @author Guillermo Pascual <pasku@tapquo.com> || @pasku1
  10. */
  11. LUNGO.Boot.Section = (function(lng, undefined) {
  12. var SELECTORS = {
  13. ARTICLE: 'article',
  14. SECTION: 'section'
  15. };
  16. var ACTIVE_CLASS = 'current';
  17. /**
  18. * Initializes all <section>s of the project
  19. *
  20. * @method init
  21. */
  22. var start = function() {
  23. var sections = lng.dom(SELECTORS.SECTION);
  24. _initFirstSection(sections);
  25. _initAllSections(sections);
  26. _initAllAsides();
  27. lng.View.Resize.toolbars();
  28. };
  29. var _initFirstSection = function(sections) {
  30. var first_section = sections.first();
  31. var first_section_id = '#' + first_section.attr('id');
  32. first_section.addClass(ACTIVE_CLASS);
  33. lng.Router.History.add(first_section_id);
  34. };
  35. var _initAllSections = function(sections) {
  36. for (var i = 0, len = sections.length; i < len; i++) {
  37. var section = lng.dom(sections[i]);
  38. _initFirstArticle(section);
  39. }
  40. };
  41. var _initFirstArticle = function(section) {
  42. section.children(SELECTORS.ARTICLE).first().addClass(ACTIVE_CLASS);
  43. };
  44. var _initAllAsides = function() {
  45. lng.dom('aside').addClass('show');
  46. };
  47. return {
  48. start: start
  49. };
  50. })(LUNGO);