Lungo.Boot.Resources.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * Load Resources
  3. *
  4. * @namespace Lungo.Boot
  5. * @class Resources
  6. *
  7. * @author Javier Jimenez Villar <javi@tapquo.com> || @soyjavi
  8. */
  9. Lungo.Boot.Resources = (function(lng, $$, undefined) {
  10. var ELEMENT = lng.Constants.ELEMENT;
  11. var ERROR = lng.Constants.ERROR;
  12. var RESOURCE = {
  13. SECTION: 'sections',
  14. ASIDE: 'asides'
  15. };
  16. /**
  17. * Start loading async sections (local & remote)
  18. *
  19. * @method start
  20. *
  21. */
  22. var init = function(resources) {
  23. for (resource_key in resources) {
  24. _loadResources(resource_key, resources[resource_key]);
  25. }
  26. };
  27. var _loadResources = function(resource_key, resources, callback) {
  28. for (index in resources) {
  29. var url = _parseUrl(resources[index], resource_key);
  30. try {
  31. var response = _loadSyncResource(url);
  32. _pushResourceInBody(response);
  33. } catch(error) {
  34. lng.Core.log(3, error.message);
  35. }
  36. }
  37. };
  38. var _parseUrl = function(section_url, folder) {
  39. return (/http/.test(section_url)) ? section_url : 'app/resources/' + folder + '/' + section_url;
  40. };
  41. var _loadSyncResource = function(url) {
  42. return $$.ajax({
  43. url: url,
  44. async: false,
  45. dataType: 'html',
  46. error: function() {
  47. console.error(ERROR.LOADING_RESOURCE + url);
  48. // throw new Error(ERROR.LOADING_RESOURCE + url);
  49. }
  50. });
  51. };
  52. var _pushResourceInBody = function(section) {
  53. if (lng.Core.toType(section) === 'string') {
  54. lng.dom(ELEMENT.BODY).append(section);
  55. }
  56. };
  57. return {
  58. init: init
  59. };
  60. })(Lungo, Quo);