PageRenderTime 45ms CodeModel.GetById 17ms RepoModel.GetById 0ms app.codeStats 0ms

/assets/widgets/webphone/js/softphone/_logview.js

https://gitlab.com/estratega.pe/cc
JavaScript | 283 lines | 178 code | 55 blank | 50 comment | 33 complexity | be75f85342caee146b326e27347bd4c9 MD5 | raw file
  1. // Internal Browser page
  2. define(['jquery', 'common', 'stringres', 'global'], function($, common, stringres, global)
  3. {
  4. function onCreate (event) // called only once - bind events here
  5. {
  6. try{
  7. common.PutToDebugLog(4, "EVENT, _logview: onCreate");
  8. $( window ).resize(function() // window resize handling
  9. {
  10. if ($.mobile.activePage.attr('id') === 'page_logview')
  11. {
  12. MeasureLogview();
  13. }
  14. });
  15. $('#logview_menu_ul').on('click', 'li', function(event)
  16. {
  17. MenuItemSelected($(this).attr('id'));
  18. });
  19. $("#btn_logview_menu").on("click", function() { CreateOptionsMenu('#logview_menu_ul'); });
  20. $("#btn_logview_menu").attr("title", stringres.get("hint_menu"));
  21. $("#support_selectall").on("click", function()
  22. {
  23. $('#log_text').select();
  24. });
  25. $("#sendtosupport").on("click", function()
  26. {
  27. var additionalinfo = 'Build date: ' + common.GetParameter('codegenerated');
  28. common.SendLog(additionalinfo + '
' + global.logs);
  29. });
  30. // it's not working on mobile devices
  31. if (common.GetOs() === 'Android' || common.GetOs() === 'iOS')
  32. {
  33. $("#support_selectall").hide();
  34. }
  35. $("#btn_loghelp").on("click", function()
  36. {
  37. common.AlertDialog(stringres.get('help'), stringres.get('logview_help') + ' ' + common.GetParameter('support_email'));
  38. });
  39. $("#btn_sendlog").on("click", function()
  40. {
  41. common.ShowToast(stringres.get('logview_msg'), 20000);
  42. /*setTimeout(function ()
  43. {
  44. $("#btn_loghelp").show();
  45. common.ShowToast(stringres.get('logview_help'));
  46. }, 2000);*/
  47. $.mobile.back();
  48. });
  49. if (common.GetOs() !== 'Android' && common.GetOs() !== 'iOS')
  50. {
  51. $('#log_text').attr('readonly', 'readonly');
  52. }
  53. } catch(err) { common.PutToDebugLogException(2, "_logview: onCreate", err); }
  54. }
  55. function onStart(event)
  56. {
  57. try{
  58. common.PutToDebugLog(4, "EVENT, _logview: onStart");
  59. global.isLogviewStarted = true;
  60. if (!common.isNull(document.getElementById('logview_title')))
  61. {
  62. document.getElementById('logview_title').innerHTML = stringres.get("logview_title");
  63. }
  64. $("#logview_title").attr("title", stringres.get("hint_page"));
  65. if (!common.isNull(document.getElementById('logview_btnback')))
  66. {
  67. document.getElementById('logview_btnback').innerHTML = '<span>&LT;</span>&nbsp;' + stringres.get("go_back_btn_txt");
  68. }
  69. $(".separator_line_thick").css( 'background-color', common.HoverCalc(common.getBgColor('#logview_header'), -30) );
  70. $("#label_disable_logs").html(stringres.get('disable_logs'));
  71. /*
  72. var email = common.GetConfig('log_email');
  73. if (!common.isNull(email) && email.length > 2)
  74. {
  75. if (!common.isNull(document.getElementById("sendtosupport_link")))
  76. {
  77. document.getElementById("sendtosupport_link").innerHTML = stringres.get("sendtosupport");
  78. }
  79. if (!common.isNull(document.getElementById("support_selectall")))
  80. {
  81. document.getElementById("support_selectall").innerHTML = stringres.get("support_selectall");
  82. }
  83. //mailto:test@example.com?subject=subject&body=body
  84. //var href = 'mailto:' + common.Trim(email) + '?subject=JSPhone Log&body=' + stringres.get('support_email_body');
  85. //href = common.ReplaceAll(href, ' ', '%20');
  86. var href = 'mailto:' + common.Trim(email) + '?subject=' + encodeURIComponent('WebPhone Log') + '&body=' + stringres.get('support_email_body');
  87. $('#sendtosupport_link').attr('href', href);
  88. //Spaces between words should be replaced by %20 to ensure that the browser will display the text properly.
  89. }else
  90. {
  91. $("#sendtosupport_container").hide();
  92. }*/
  93. //handle logsendto option: 0=no options, 1=mizutech upload, 2=email (support email from config)
  94. var logsendto = common.GetConfigInt('logsendto', 1);
  95. if (logsendto < 1)
  96. {
  97. $("#sendtosupport_container").hide();
  98. }
  99. else if (logsendto === 1) // send to mizu with xlogpush
  100. {
  101. $('#sendtosupport_link').hide();
  102. $("#sendtosupport_container").show();
  103. }
  104. else if (logsendto === 2) // send in email
  105. {
  106. $('#btn_sendlog').hide();
  107. var email = common.GetConfig('supportmail');
  108. if (common.isNull(email) || email.length < 2) { email = common.GetConfig('log_email'); }
  109. if (!common.isNull(common.GetConfig('log_email')) && email.length > 2)
  110. {
  111. $('#sendtosupport_link').html(stringres.get("sendtosupport"));
  112. $('#sendtosupport_link').show();
  113. //mailto:test@example.com?subject=subject&body=body
  114. //var href = 'mailto:' + common.Trim(email) + '?subject=JSPhone Log&body=' + stringres.get('support_email_body');
  115. //href = common.ReplaceAll(href, ' ', '%20');
  116. var href = 'mailto:' + common.Trim(email) + '?subject=' + encodeURIComponent('WebPhone Log') + '&body=' + stringres.get('support_email_body');
  117. $('#sendtosupport_link').attr('href', href);
  118. //Spaces between words should be replaced by %20 to ensure that the browser will display the text properly.
  119. }
  120. }
  121. MeasureLogview();
  122. var additionalinfo = 'Build date: ' + common.GetParameter('codegenerated');
  123. $('#log_text').html(additionalinfo + '&#10;' + global.logs);
  124. //$('#log_text').textinput('refresh');
  125. //document.getElementById('log_text').value = global.logs;
  126. // add filename parameter to form
  127. if (!common.isNull(document.getElementById('filename')))
  128. {
  129. var srv = common.GetParameter('serveraddress_user');
  130. if (srv.length < 2) { srv = common.GetParameter('serveraddress'); }
  131. try{ if (srv.length < 2 && !isNull(webphone_api.parameters) && !isNull(webphone_api.parameters.serveraddress)) { srv = webphone_api.parameters.serveraddress; } } catch(errin) { }
  132. if (srv.length < 2) { srv = common.GetConfig('serveraddress'); }
  133. if (common.isNull(srv)) { srv = ''; }
  134. srv = srv.replace('://', '');
  135. document.getElementById('filename').value = common.GetParameter('sipusername') + '_' + common.GetParameter('brandname') + '_' + srv;
  136. }
  137. } catch(err) { common.PutToDebugLogException(2, "_logview: onStart", err); }
  138. }
  139. function MeasureLogview() // resolve window height size change
  140. {
  141. try{
  142. //var pgh = common.GetDeviceHeight() - 1; $('#page_logview').css('min-height', pgh + 'px'); // must be set when softphone is skin in div
  143. $('#page_logview').css('min-height', 'auto'); // must be set when softphone is skin in div
  144. $("#page_logview_content").height(common.GetDeviceHeight() - $("#logview_header").height() - 2);
  145. var ltheight = common.GetDeviceHeight() - $("#logview_header").height() - 5;
  146. if ($('#sendtosupport_container').is(':visible'))
  147. {
  148. ltheight = ltheight - $("#sendtosupport_container").height();
  149. }
  150. $("#log_text").height(ltheight);
  151. $("#log_text").width(common.GetDeviceWidth());
  152. } catch(err) { common.PutToDebugLogException(2, "_logview: MeasureLogview", err); }
  153. }
  154. var MENUITEM_CLOSE = '#menuitem_logview_close';
  155. function CreateOptionsMenu (menuId) // adding items to menu, called from html
  156. {
  157. try{
  158. // remove data transition for windows softphone, because it's slow
  159. if (common.GetParameter('devicetype') === common.DEVICE_WIN_SOFTPHONE())
  160. {
  161. $( "#btn_logview_menu" ).removeAttr('data-transition');
  162. }
  163. if ( common.isNull(menuId) || menuId.lenght < 1 ) { common.PutToDebugLog(2, "ERROR, _logview: CreateOptionsMenu menuid null"); return; }
  164. if ($(menuId).length <= 0) { common.PutToDebugLog(2, "ERROR, _logview: CreateOptionsMenu can't get reference to Menu"); return; }
  165. if (menuId.charAt(0) !== '#') { menuId = '#' + menuId; }
  166. $(menuId).html('');
  167. $(menuId).append( '<li id="' + MENUITEM_CLOSE + '"><a data-rel="back">' + stringres.get('menu_close') + '</a></li>' ).listview('refresh');
  168. return true;
  169. } catch(err) { common.PutToDebugLogException(2, "_logview: CreateOptionsMenu", err); }
  170. return false;
  171. }
  172. function MenuItemSelected(itemid)
  173. {
  174. try{
  175. if (common.isNull(itemid) || itemid.length < 1) { return; }
  176. $( '#logview_menu' ).on( 'popupafterclose', function( event )
  177. {
  178. $( '#logview_menu' ).off( 'popupafterclose' );
  179. switch (itemid)
  180. {
  181. case MENUITEM_CLOSE:
  182. $.mobile.back();
  183. break;
  184. }
  185. });
  186. } catch(err) { common.PutToDebugLogException(2, "_logview: MenuItemSelected", err); }
  187. }
  188. function onStop(event)
  189. {
  190. try{
  191. common.PutToDebugLog(4, "EVENT, _logview: onStop");
  192. global.isLogviewStarted = false;
  193. if ($('#disable_logs').prop("checked"))
  194. {
  195. common.SaveParameter('loglevel', '1');
  196. common.SaveParameter('jsscriptevent', '2');
  197. webphone_api.setparameter('jsscriptevent', '2');
  198. global.loglevel = 1;
  199. $('#disable_logs').prop("checked", false).checkboxradio('refresh');
  200. }
  201. $('#log_text').html('');
  202. //document.getElementById('log_text').value = '';
  203. } catch(err) { common.PutToDebugLogException(2, "_logview: onStop", err); }
  204. }
  205. function onDestroy (event)
  206. {
  207. try{
  208. common.PutToDebugLog(4, "EVENT, _logview: onDestroy");
  209. global.isLogviewStarted = false;
  210. } catch(err) { common.PutToDebugLogException(2, "_logview: onDestroy", err); }
  211. }
  212. // public members and methods
  213. return {
  214. onCreate: onCreate,
  215. onStart: onStart,
  216. onStop: onStop,
  217. onDestroy: onDestroy
  218. };
  219. });