init.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //for closure compiler to ensure it gets exported
  2. window['loadApp'] = loadApp;
  3. var router = window['router'];
  4. var user;
  5. var tables = [];
  6. var table_updates = [];
  7. function loadApp()
  8. {
  9. initializeRoutes();
  10. $.fn.dataTable.ext.search.push(
  11. function(settings, search_data, index, row, search_counter)
  12. {
  13. if($("#show-completed").prop('checked'))
  14. return true;
  15. return !row.time_pickup || !row.time_depart || !row.bol_delivered;
  16. });
  17. $("#show-completed").change(function()
  18. {
  19. //redraw all tables
  20. for(var i in tables)
  21. tables[i].draw();
  22. });
  23. //login and logout
  24. $('form.form-signin').submit(login);
  25. //when a bootstrap tab is shown, then trigger a redraw of its table
  26. $('#screen-sd').delegate('a[data-toggle="tab"]', 'shown.bs.tab', function(e)
  27. {
  28. var id_company = $(this).closest('li').data('id_company');
  29. if(!id_company)
  30. return;
  31. tables[id_company].draw();
  32. });
  33. $('#screen-sd').delegate('button.download-csv', 'click', function(e)
  34. {
  35. window.open('api/downloadCSV.php?id=' + $(this).data('id_company'));
  36. });
  37. setInterval(loadAllData, 60*1000);
  38. if(!user)
  39. router('/');
  40. else
  41. router.reload();
  42. }
  43. function login(e)
  44. {
  45. e.preventDefault();
  46. $('#login-error').text(null);
  47. $.post('api/login.php',
  48. {
  49. 'email': $('#email').val(),
  50. 'password': $('#password').val()
  51. })
  52. .done(function(response)
  53. {
  54. user = response;
  55. $('.user_name').text(user['name']);
  56. router('/sd');
  57. })
  58. .fail(function(err, xhr, text)
  59. {
  60. console.error(err.responseText);
  61. $('#login-error').text(err.responseText);
  62. });
  63. return false;
  64. }