helpers.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. App.Helpers.getMbHumanMeasure = function(val)
  2. {
  3. return App.Helpers.getMbHuman(val, true);
  4. }
  5. /**
  6. * Currently no bytes are used, minimal value is in MB
  7. * uncomment in case we will use bytes instead
  8. */
  9. App.Helpers.getMbHuman = function(val, only_measure)
  10. {
  11. var bytes = val * 1024 * 1024;
  12. var kilobyte = 1024;
  13. var megabyte = kilobyte * 1024;
  14. var gigabyte = megabyte * 1024;
  15. var terabyte = gigabyte * 1024;
  16. var precision = 0;
  17. /*if ((bytes >= 0) && (bytes < kilobyte)) {
  18. return bytes + ' B';
  19. } else if ((bytes >= kilobyte) && (bytes < megabyte)) {
  20. return (bytes / kilobyte).toFixed(precision) + ' KB';
  21. } else */
  22. if ((bytes >= megabyte) && (bytes < gigabyte)) {
  23. return only_measure ? 'MB' : (bytes / megabyte).toFixed(precision);
  24. } else if ((bytes >= gigabyte) && (bytes < terabyte)) {
  25. return only_measure ? 'GB' : (bytes / gigabyte).toFixed(precision);
  26. } else if (bytes >= terabyte) {
  27. return only_measure ? 'TB' : (bytes / terabyte).toFixed(precision);
  28. } else {
  29. return only_measure ? 'MB' : bytes;
  30. }
  31. }
  32. App.Helpers.getFirst = function(obj)
  33. {
  34. try{ // TODO: remove try / catch
  35. var first = {};
  36. var key = App.Helpers.getFirstKey(obj);
  37. first[key] = obj[key];
  38. return first;
  39. }
  40. catch(e){
  41. fb.error(e);
  42. }
  43. return false;
  44. }
  45. App.Helpers.getFirstKey = function(obj)
  46. {
  47. try{ // TODO: remove try / catch
  48. for (key in obj) break;
  49. return key;
  50. }
  51. catch(e){
  52. fb.error(e);
  53. }
  54. return false;
  55. }
  56. App.Helpers.updateInitial = function()
  57. {
  58. // TODO: need api method
  59. $.each(App.Env.initialParams, function(key) {
  60. var item = App.Env.initialParams[key];
  61. $.each(item, function (i, o) {
  62. if (i.indexOf('total_') != -1) {
  63. App.View.updateInitialInfo(i, o);
  64. }
  65. });
  66. });
  67. }
  68. App.Helpers.beforeAjax = function(jedi_method)
  69. {
  70. switch(jedi_method) {
  71. case 'DNS.getList':
  72. App.Helpers.showLoading();
  73. break;
  74. default:
  75. App.Helpers.showLoading();
  76. break;
  77. }
  78. }
  79. App.Helpers.afterAjax = function()
  80. {
  81. App.Helpers.removeLoading();
  82. }
  83. App.Helpers.removeLoading = function()
  84. {
  85. var ref = $('#loading');
  86. if (ref.length > 0) {
  87. ref.remove();
  88. }
  89. }
  90. App.Helpers.showLoading = function()
  91. {
  92. App.Helpers.removeLoading();
  93. var tpl = App.Templates.get('loading', 'general');
  94. $(document.body).append(tpl.finalize());
  95. }
  96. // todo: no iteration here
  97. App.Helpers.getFirstValue = function(obj)
  98. {
  99. var first = '';
  100. $.each(obj, function(key, i){
  101. return first = obj[key];
  102. });
  103. return first;
  104. }
  105. App.Helpers.evalJSON = function(string)
  106. {
  107. return $.parseJSON(string);
  108. }
  109. App.Helpers.toJSON = function(object)
  110. {
  111. return ($.toJSON(object).replace(/'/gi, ''));
  112. }
  113. //
  114. // Hints
  115. //
  116. App.Helpers.showConsoleHint = function()
  117. {
  118. // TODO:
  119. }
  120. App.Helpers.markBrowserDetails = function()
  121. {
  122. var b = App.Env.BROWSER;
  123. var classes = [
  124. b.type.toLowerCase(),
  125. b.type.toLowerCase() + b.version,
  126. b.os.toLowerCase()
  127. ];
  128. $(document.body).addClass(classes.join(' '));
  129. }
  130. App.Utils.detectBrowser = function()
  131. {
  132. App.Env.BROWSER = {
  133. type: $.browser.browser(),
  134. version: $.browser.version.number(),
  135. os: $.browser.OS()
  136. };
  137. App.Helpers.markBrowserDetails();
  138. }
  139. App.Helpers.getFormValues = function(form)
  140. {
  141. var values = {};
  142. $(form).find('input, select, textarea').each(function(i, o) {
  143. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  144. values[$(o).attr('name')] = $(o).val();
  145. }
  146. });
  147. return values;
  148. }
  149. App.Helpers.getFormValuesFromElement = function(ref)
  150. {
  151. var values = {};
  152. $(ref).find('input, select, textarea').each(function(i, o) {
  153. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  154. values[$(o).attr('name')] = $(o).val();
  155. }
  156. });
  157. return values;
  158. }
  159. App.Helpers.updateScreen = function()
  160. {
  161. Custom.init();
  162. //$(document.body).find('select').each(function(i, o){
  163. // $(o).selectbox();
  164. //});
  165. }
  166. App.Helpers.alert = function(msg)
  167. {
  168. alert(msg);
  169. }
  170. App.Helpers.isEmpty = function(o)
  171. {
  172. return '({})' == o.toSource() || '[]' == o.toSource();
  173. }
  174. App.Helpers.liveValidate = function()
  175. {
  176. //return;
  177. $('input').live('blur', function(evt)
  178. {
  179. fb.log('BLUR');
  180. var elm = $(evt.target);
  181. fb.log(elm.attr('TAGNAME'));
  182. });
  183. }
  184. App.Helpers.generatePassword = function()
  185. {
  186. var length = 8;
  187. var chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
  188. var pass = "";
  189. for (x=0;x<length;x++) {
  190. var i = Math.floor(Math.random() * chars.length);
  191. pass += chars.charAt(i);
  192. }
  193. return pass;
  194. }
  195. App.Helpers.Warn = function(msg)
  196. {
  197. alert(msg);
  198. }
  199. App.Helpers.openInnerPopup = function(elm, html)
  200. {
  201. App.Helpers.closeInnerPopup();
  202. var offset = $(elm).offset();
  203. var tpl = App.Templates.get('inner_popup', 'general');
  204. tpl.set(':CONTENT', html);
  205. tpl.set(':LEFT', offset.left);
  206. tpl.set(':TOP', offset.top);
  207. $(document.body).append(tpl.finalize());
  208. }
  209. App.Helpers.closeInnerPopup = function(evt)
  210. {
  211. $('#inner-popup').remove();
  212. }