Lungo.Boot.Article.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. * Initialize the <article> element
  3. *
  4. * @namespace LUNGO.Boot
  5. * @class Article
  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.Article = (function(lng, undefined) {
  12. var SELECTORS = {
  13. LIST_IN_ARTICLE: 'article.list',
  14. SCROLL_IN_ARTICLE: 'scroll'
  15. };
  16. /**
  17. * Initializes the markup elements of an article
  18. *
  19. * @method init
  20. */
  21. var start = function() {
  22. _initElement(SELECTORS.LIST_IN_ARTICLE, _createListElement);
  23. _initElement(SELECTORS.SCROLL_IN_ARTICLE, _createScrollElement);
  24. };
  25. var _initElement = function(selector, callback) {
  26. var found_elements = lng.Dom.query(selector);
  27. for (var i = 0, len = found_elements.length; i < len; i++) {
  28. var element = lng.Dom.query(found_elements[i]);
  29. lng.Core.execute(callback, element);
  30. }
  31. };
  32. var _createListElement = function(article) {
  33. if (article.children().length === 0) {
  34. var article_id = article.attr('id');
  35. article.append('<ul id="' + article_id + '_list"></ul>');
  36. }
  37. };
  38. var _createScrollElement = function(scroll) {
  39. var scroll_id = scroll.attr('id');
  40. lng.View.Scroll.create(scroll_id);
  41. };
  42. return {
  43. start: start
  44. };
  45. })(LUNGO);