helpers.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  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(str)
  106. {
  107. /*str = str.replace(/\\'/gi, '');
  108. str = str.replace(/\'/gi, '');
  109. fb.warn(str);*/
  110. return $.parseJSON(str);
  111. }
  112. App.Helpers.toJSON = function(object)
  113. {
  114. return ($.toJSON(object).replace(/\\'/gi, ''));
  115. }
  116. //
  117. // Hints
  118. //
  119. App.Helpers.showConsoleHint = function()
  120. {
  121. // TODO:
  122. }
  123. App.Helpers.markBrowserDetails = function()
  124. {
  125. var b = App.Env.BROWSER;
  126. var classes = [
  127. b.type.toLowerCase(),
  128. b.type.toLowerCase() + b.version,
  129. b.os.toLowerCase()
  130. ];
  131. $(document.body).addClass(classes.join(' '));
  132. }
  133. App.Utils.detectBrowser = function()
  134. {
  135. App.Env.BROWSER = {
  136. type: $.browser.browser(),
  137. version: $.browser.version.number(),
  138. os: $.browser.OS()
  139. };
  140. App.Helpers.markBrowserDetails();
  141. }
  142. App.Helpers.getFormValues = function(form)
  143. {
  144. var values = {};
  145. $(form).find('input, select, textarea').each(function(i, o) {
  146. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  147. values[$(o).attr('name')] = $(o).val();
  148. }
  149. });
  150. return values;
  151. }
  152. App.Helpers.getFormValuesFromElement = function(ref)
  153. {
  154. var values = {};
  155. $(ref).find('input, select, textarea').each(function(i, o) {
  156. if ($.inArray($(o).attr('class'), ['source', 'target'])) {
  157. values[$(o).attr('name')] = $(o).val();
  158. }
  159. });
  160. return values;
  161. }
  162. App.Helpers.updateScreen = function()
  163. {
  164. Custom.init();
  165. //$(document.body).find('select').each(function(i, o){
  166. // $(o).selectbox();
  167. //});
  168. }
  169. App.Helpers.alert = function(msg)
  170. {
  171. alert(msg);
  172. }
  173. App.Helpers.isEmpty = function(o)
  174. {
  175. return '({})' == o.toSource() || '[]' == o.toSource();
  176. }
  177. App.Helpers.liveValidate = function()
  178. {
  179. //return;
  180. $('input').live('blur', function(evt)
  181. {
  182. fb.log('BLUR');
  183. var elm = $(evt.target);
  184. fb.log(elm.attr('TAGNAME'));
  185. });
  186. }
  187. App.Helpers.generatePassword = function()
  188. {
  189. var length = 8;
  190. var chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
  191. var pass = "";
  192. for (x=0;x<length;x++) {
  193. var i = Math.floor(Math.random() * chars.length);
  194. pass += chars.charAt(i);
  195. }
  196. return pass;
  197. }
  198. App.Helpers.Warn = function(msg)
  199. {
  200. alert(msg);
  201. }
  202. App.Helpers.openInnerPopup = function(elm, html)
  203. {
  204. App.Helpers.closeInnerPopup();
  205. var offset = $(elm).offset();
  206. var tpl = App.Templates.get('inner_popup', 'general');
  207. tpl.set(':CONTENT', html);
  208. tpl.set(':LEFT', offset.left);
  209. tpl.set(':TOP', offset.top);
  210. $(document.body).append(tpl.finalize());
  211. }
  212. App.Helpers.closeInnerPopup = function(evt)
  213. {
  214. $('#inner-popup').remove();
  215. }