helpers.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  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.totals, function(key) {
  60. var item = App.Env.initialParams.totals[key];
  61. var expr_id = '#'+key;
  62. if ('undefined' != typeof item.total) {
  63. var ref = $(expr_id).find('.num-total');
  64. if (ref.length > 0) {
  65. $(ref).html(item.total);
  66. }
  67. }
  68. if ('undefined' != typeof item.blocked) {
  69. var ref = $(expr_id).find('.num-blocked');
  70. if (ref.length > 0) {
  71. $(ref).html(item.blocked);
  72. }
  73. }
  74. });
  75. }
  76. App.Helpers.beforeAjax = function(jedi_method)
  77. {
  78. switch(jedi_method) {
  79. case 'DNS.getList':
  80. App.Helpers.showLoading();
  81. break;
  82. default:
  83. App.Helpers.showLoading();
  84. break;
  85. }
  86. }
  87. App.Helpers.afterAjax = function()
  88. {
  89. App.Helpers.removeLoading();
  90. }
  91. App.Helpers.removeLoading = function()
  92. {
  93. var ref = $('#loading');
  94. if (ref.length > 0) {
  95. ref.remove();
  96. }
  97. }
  98. App.Helpers.showLoading = function()
  99. {
  100. App.Helpers.removeLoading();
  101. var tpl = App.Templates.get('loading', 'general');
  102. $(document.body).append(tpl.finalize());
  103. }
  104. // todo: no iteration here
  105. App.Helpers.getFirstValue = function(obj)
  106. {
  107. var first = '';
  108. $.each(obj, function(key, i){
  109. return first = obj[key];
  110. });
  111. return first;
  112. }
  113. App.Helpers.evalJSON = function(str)
  114. {
  115. /*str = str.replace(/\\'/gi, '');
  116. str = str.replace(/\'/gi, '');
  117. fb.warn(str);*/
  118. return $.parseJSON(str);
  119. }
  120. App.Helpers.toJSON = function(object)
  121. {
  122. return ($.toJSON(object).replace(/\\'/gi, ''));
  123. }
  124. //
  125. // Hints
  126. //
  127. App.Helpers.showConsoleHint = function()
  128. {
  129. // TODO:
  130. }
  131. App.Helpers.markBrowserDetails = function()
  132. {
  133. var b = App.Env.BROWSER;
  134. var classes = [
  135. b.type.toLowerCase(),
  136. b.type.toLowerCase() + b.version,
  137. b.os.toLowerCase()
  138. ];
  139. $(document.body).addClass(classes.join(' '));
  140. }
  141. App.Utils.detectBrowser = function()
  142. {
  143. App.Env.BROWSER = {
  144. type: $.browser.browser(),
  145. version: $.browser.version.number(),
  146. os: $.browser.OS()
  147. };
  148. App.Helpers.markBrowserDetails();
  149. }
  150. App.Helpers.getFormValues = function(form)
  151. {
  152. var values = {};
  153. $(form).find('input, select, textarea').each(function(i, o) {
  154. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  155. values[$(o).attr('name')] = $(o).val();
  156. }
  157. });
  158. return values;
  159. }
  160. App.Helpers.getFormValuesFromElement = function(ref)
  161. {
  162. var values = {};
  163. $(ref).find('input, select, textarea').each(function(i, o) {
  164. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  165. values[$(o).attr('name')] = $(o).val();
  166. }
  167. });
  168. return values;
  169. }
  170. App.Helpers.updateScreen = function()
  171. {
  172. Custom.init();
  173. //$(document.body).find('select').each(function(i, o){
  174. // $(o).selectbox();
  175. //});
  176. }
  177. App.Helpers.alert = function(msg)
  178. {
  179. alert(msg);
  180. }
  181. App.Helpers.isEmpty = function(o)
  182. {
  183. return '({})' == o.toSource() || '[]' == o.toSource();
  184. }
  185. App.Helpers.liveValidate = function()
  186. {
  187. //return;
  188. $('input').live('blur', function(evt)
  189. {
  190. fb.log('BLUR');
  191. var elm = $(evt.target);
  192. fb.log(elm.attr('TAGNAME'));
  193. });
  194. }
  195. App.Helpers.generatePassword = function()
  196. {
  197. var length = 8;
  198. var chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
  199. var pass = "";
  200. for (x=0;x<length;x++) {
  201. var i = Math.floor(Math.random() * chars.length);
  202. pass += chars.charAt(i);
  203. }
  204. return pass;
  205. }
  206. App.Helpers.Warn = function(msg)
  207. {
  208. alert(msg);
  209. }
  210. App.Helpers.openInnerPopup = function(elm, html)
  211. {
  212. App.Helpers.closeInnerPopup();
  213. var offset = $(elm).offset();
  214. var tpl = App.Templates.get('inner_popup', 'general');
  215. tpl.set(':CONTENT', html);
  216. tpl.set(':LEFT', offset.left);
  217. tpl.set(':TOP', offset.top);
  218. $(document.body).append(tpl.finalize());
  219. }
  220. App.Helpers.closeInnerPopup = function(evt)
  221. {
  222. $('#inner-popup').remove();
  223. }