helpers.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  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. App.Helpers.showLoading();
  45. break;
  46. }
  47. }
  48. App.Helpers.afterAjax = function()
  49. {
  50. App.Helpers.removeLoading();
  51. }
  52. App.Helpers.removeLoading = function()
  53. {
  54. var ref = $('#loading');
  55. if (ref.length > 0) {
  56. ref.remove();
  57. }
  58. }
  59. App.Helpers.showLoading = function()
  60. {
  61. App.Helpers.removeLoading();
  62. var tpl = App.Templates.get('loading', 'general');
  63. $(document.body).append(tpl.finalize());
  64. }
  65. // todo: no iteration here
  66. App.Helpers.getFirstValue = function(obj)
  67. {
  68. var first = '';
  69. $.each(obj, function(key, i){
  70. return first = obj[key];
  71. });
  72. return first;
  73. }
  74. App.Helpers.evalJSON = function(string)
  75. {
  76. return $.parseJSON(string);
  77. }
  78. App.Helpers.toJSON = function(object)
  79. {
  80. return ($.toJSON(object).replace(/'/gi, ''));
  81. }
  82. //
  83. // Hints
  84. //
  85. App.Helpers.showConsoleHint = function()
  86. {
  87. // TODO:
  88. }
  89. // UTILS
  90. App.Utils.generatePasswordHash = function(length)
  91. {
  92. var length = length || 11;
  93. var chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!~.";
  94. var pass = "";
  95. for(var x=0;x<length;x++)
  96. {
  97. var i = Math.floor(Math.random() * 62);
  98. pass += chars.charAt(i);
  99. }
  100. return pass;
  101. }
  102. App.Helpers.markBrowserDetails = function()
  103. {
  104. var b = App.Env.BROWSER;
  105. var classes = [
  106. b.type.toLowerCase(),
  107. b.type.toLowerCase() + b.version,
  108. b.os.toLowerCase()
  109. ];
  110. $(document.body).addClass(classes.join(' '));
  111. }
  112. App.Utils.detectBrowser = function()
  113. {
  114. App.Env.BROWSER = {
  115. type: $.browser.browser(),
  116. version: $.browser.version.number(),
  117. os: $.browser.OS()
  118. };
  119. App.Helpers.markBrowserDetails();
  120. }
  121. App.Helpers.getFormValues = function(form)
  122. {
  123. var values = {};
  124. $(form).find('input, select, textarea').each(function(i, o) {
  125. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  126. values[$(o).attr('name')] = $(o).val();
  127. }
  128. });
  129. return values;
  130. }
  131. App.Helpers.getFormValuesFromElement = function(ref)
  132. {
  133. var values = {};
  134. $(ref).find('input, select, textarea').each(function(i, o) {
  135. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  136. values[$(o).attr('name')] = $(o).val();
  137. }
  138. });
  139. return values;
  140. }
  141. App.Helpers.updateScreen = function()
  142. {
  143. Custom.init();
  144. //$(document.body).find('select').each(function(i, o){
  145. // $(o).selectbox();
  146. //});
  147. }
  148. App.Helpers.alert = function(msg)
  149. {
  150. alert(msg);
  151. }
  152. App.Helpers.isEmpty = function(o)
  153. {
  154. return '({})' == o.toSource() || '[]' == o.toSource();
  155. }
  156. App.Helpers.liveValidate = function()
  157. {
  158. //return;
  159. $('input').live('blur', function(evt)
  160. {
  161. fb.log('BLUR');
  162. var elm = $(evt.target);
  163. fb.log(elm.attr('TAGNAME'));
  164. });
  165. }
  166. App.Helpers.generatePassword = function()
  167. {
  168. var length = 12;
  169. var chars = "abcdefghijklmn.-%$#&-opqrstuvwxyz.-%$#&-ABCDEFGHIJKLMNOPQRSTUV.-%$#&-WXYZ1234567890.-%$#&-";
  170. var pass = "";
  171. for (x=0;x<length;x++) {
  172. var i = Math.floor(Math.random() * 62);
  173. pass += chars.charAt(i);
  174. }
  175. return pass;
  176. }
  177. App.Helpers.Warn = function(msg)
  178. {
  179. alert(msg);
  180. }