Lungo.Boot.Article.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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: '.scrollable',
  15. CHECKBOX_IN_ARTICLE: '.checkbox, .radio'
  16. };
  17. /**
  18. * Initializes the markup elements of an article
  19. *
  20. * @method init
  21. */
  22. var start = function() {
  23. _initElement(SELECTORS.LIST_IN_ARTICLE, _createListElement);
  24. _initElement(SELECTORS.SCROLL_IN_ARTICLE, _createScrollElement);
  25. _initElement(SELECTORS.CHECKBOX_IN_ARTICLE, _createCheckboxElement);
  26. };
  27. var _initElement = function(selector, callback) {
  28. var found_elements = lng.dom(selector);
  29. for (var i = 0, len = found_elements.length; i < len; i++) {
  30. var element = lng.dom(found_elements[i]);
  31. lng.Core.execute(callback, element);
  32. }
  33. };
  34. var _createListElement = function(article) {
  35. if (article.children().length === 0) {
  36. var article_id = article.attr('id');
  37. article.append('<ul id="' + article_id + '_list"></ul>');
  38. }
  39. };
  40. var _createScrollElement = function(scroll) {
  41. var scroll_id = scroll.attr('id');
  42. lng.View.Scroll.create(scroll_id);
  43. };
  44. var _createCheckboxElement = function(checkbox) {
  45. checkbox.append('<span>&nbsp;</span>');
  46. };
  47. return {
  48. start: start
  49. };
  50. })(LUNGO);