helpers.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. App.Helpers.getFirst = function(obj)
  2. {
  3. try{ // TODO: remove try / catch
  4. var first = {};
  5. var key = App.Helpers.getFirstKey(obj);
  6. first[key] = obj[key];
  7. return first;
  8. }
  9. catch(e){
  10. fb.error(e);
  11. }
  12. return false;
  13. }
  14. App.Helpers.getFirstKey = function(obj)
  15. {
  16. try{ // TODO: remove try / catch
  17. for (key in obj) break;
  18. return key;
  19. }
  20. catch(e){
  21. fb.error(e);
  22. }
  23. return false;
  24. }
  25. App.Helpers.updateInitial = function()
  26. {
  27. // TODO: need api method
  28. $.each(App.Env.initialParams, function(key) {
  29. var item = App.Env.initialParams[key];
  30. $.each(item, function (i, o) {
  31. if (i.indexOf('total_') != -1) {
  32. App.View.updateInitialInfo(i, o);
  33. }
  34. });
  35. });
  36. }
  37. App.Helpers.beforeAjax = function(jedi_method)
  38. {
  39. switch(jedi_method) {
  40. case 'DNS.getList':
  41. App.Helpers.showLoading();
  42. break;
  43. default:
  44. break;
  45. }
  46. }
  47. App.Helpers.afterAjax = function()
  48. {
  49. App.Helpers.removeLoading();
  50. }
  51. App.Helpers.removeLoading = function()
  52. {
  53. var ref = $('#loading');
  54. if (ref.length > 0) {
  55. ref.remove();
  56. }
  57. }
  58. App.Helpers.showLoading = function()
  59. {
  60. App.Helpers.removeLoading();
  61. var tpl = App.Templates.get('loading', 'general');
  62. $(document.body).append(tpl.finalize());
  63. }
  64. // todo: no iteration here
  65. App.Helpers.getFirstValue = function(obj)
  66. {
  67. var first = '';
  68. $.each(obj, function(key, i){
  69. return first = obj[key];
  70. });
  71. return first;
  72. }
  73. App.Helpers.evalJSON = function(string)
  74. {
  75. return $.parseJSON(string);
  76. }
  77. App.Helpers.toJSON = function(object)
  78. {
  79. return ($.toJSON(object).replace(/'/gi, ''));
  80. }
  81. //
  82. // Hints
  83. //
  84. App.Helpers.showConsoleHint = function()
  85. {
  86. // TODO:
  87. }
  88. // UTILS
  89. App.Utils.generatePasswordHash = function(length)
  90. {
  91. var length = length || 11;
  92. var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!~.";
  93. var pass = "";
  94. for(var x=0;x<length;x++)
  95. {
  96. var i = Math.floor(Math.random() * 62);
  97. pass += chars.charAt(i);
  98. }
  99. return pass;
  100. }
  101. App.Helpers.markBrowserDetails = function()
  102. {
  103. var b = App.Env.BROWSER;
  104. var classes = [
  105. b.type.toLowerCase(),
  106. b.type.toLowerCase() + b.version,
  107. b.os.toLowerCase()
  108. ];
  109. $(document.body).addClass(classes.join(' '));
  110. }
  111. App.Utils.detectBrowser = function()
  112. {
  113. App.Env.BROWSER = {
  114. type: $.browser.browser(),
  115. version: $.browser.version.number(),
  116. os: $.browser.OS()
  117. };
  118. App.Helpers.markBrowserDetails();
  119. }
  120. App.Helpers.getFormValues = function(form)
  121. {
  122. var values = {};
  123. $(form).find('input, select, textarea').each(function(i, o) {
  124. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  125. values[$(o).attr('name')] = $(o).val();
  126. }
  127. });
  128. return values;
  129. }
  130. App.Helpers.getFormValuesFromElement = function(ref)
  131. {
  132. var values = {};
  133. $(ref).find('input, select, textarea').each(function(i, o) {
  134. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  135. values[$(o).attr('name')] = $(o).val();
  136. }
  137. });
  138. return values;
  139. }
  140. App.Helpers.updateScreen = function()
  141. {
  142. Custom.init();
  143. //$(document.body).find('select').each(function(i, o){
  144. // $(o).selectbox();
  145. //});
  146. }
  147. App.Helpers.alert = function(msg)
  148. {
  149. alert(msg);
  150. }
  151. App.Helpers.isEmpty = function(o)
  152. {
  153. return '({})' == o.toSource() || '[]' == o.toSource();
  154. }
  155. App.Helpers.liveValidate = function()
  156. {
  157. //return;
  158. $('input').live('blur', function(evt)
  159. {
  160. fb.log('BLUR');
  161. var elm = $(evt.target);
  162. fb.log(elm.attr('TAGNAME'));
  163. });
  164. }