tracking.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. "use strict";
  2. /**
  3. * Unbind all event handlers before tearing down the page
  4. */
  5. AJAX.registerTeardown('database/tracking.js', function () {
  6. $('body').off('click', '#trackedForm.ajax button[name="submit_mult"], #trackedForm.ajax input[name="submit_mult"]');
  7. $('body').off('click', '#untrackedForm.ajax button[name="submit_mult"], #untrackedForm.ajax input[name="submit_mult"]');
  8. $('body').off('click', 'a.delete_tracking_anchor.ajax');
  9. });
  10. /**
  11. * Bind event handlers
  12. */
  13. AJAX.registerOnload('database/tracking.js', function () {
  14. var $versions = $('#versions');
  15. $versions.find('tr').first().find('th').append($('<div class="sorticon"></div>'));
  16. $versions.tablesorter({
  17. sortList: [[1, 0]],
  18. headers: {
  19. 0: {
  20. sorter: false
  21. },
  22. 2: {
  23. sorter: 'integer'
  24. },
  25. 5: {
  26. sorter: false
  27. },
  28. 6: {
  29. sorter: false
  30. },
  31. 7: {
  32. sorter: false
  33. }
  34. }
  35. });
  36. var $noVersions = $('#noversions');
  37. $noVersions.find('tr').first().find('th').append($('<div class="sorticon"></div>'));
  38. $noVersions.tablesorter({
  39. sortList: [[1, 0]],
  40. headers: {
  41. 0: {
  42. sorter: false
  43. },
  44. 2: {
  45. sorter: false
  46. }
  47. }
  48. });
  49. var $body = $('body');
  50. /**
  51. * Handles multi submit for tracked tables
  52. */
  53. $body.on('click', '#trackedForm.ajax button[name="submit_mult"], #trackedForm.ajax input[name="submit_mult"]', function (e) {
  54. e.preventDefault();
  55. var $button = $(this);
  56. var $form = $button.parent('form');
  57. var argsep = CommonParams.get('arg_separator');
  58. var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'submit_mult=' + $button.val();
  59. if ($button.val() === 'delete_tracking') {
  60. var question = Messages.strDeleteTrackingDataMultiple;
  61. $button.confirm(question, $form.attr('action'), function (url) {
  62. Functions.ajaxShowMessage(Messages.strDeletingTrackingData);
  63. AJAX.source = $form;
  64. $.post(url, submitData, AJAX.responseHandler);
  65. });
  66. } else {
  67. Functions.ajaxShowMessage();
  68. AJAX.source = $form;
  69. $.post($form.attr('action'), submitData, AJAX.responseHandler);
  70. }
  71. });
  72. /**
  73. * Handles multi submit for untracked tables
  74. */
  75. $body.on('click', '#untrackedForm.ajax button[name="submit_mult"], #untrackedForm.ajax input[name="submit_mult"]', function (e) {
  76. e.preventDefault();
  77. var $button = $(this);
  78. var $form = $button.parent('form');
  79. var argsep = CommonParams.get('arg_separator');
  80. var submitData = $form.serialize() + argsep + 'ajax_request=true' + argsep + 'ajax_page_request=true' + argsep + 'submit_mult=' + $button.val();
  81. Functions.ajaxShowMessage();
  82. AJAX.source = $form;
  83. $.post($form.attr('action'), submitData, AJAX.responseHandler);
  84. });
  85. /**
  86. * Ajax Event handler for 'Delete tracking'
  87. */
  88. $body.on('click', 'a.delete_tracking_anchor.ajax', function (e) {
  89. e.preventDefault();
  90. var $anchor = $(this);
  91. var question = Messages.strDeleteTrackingData;
  92. $anchor.confirm(question, $anchor.attr('href'), function (url) {
  93. Functions.ajaxShowMessage(Messages.strDeletingTrackingData);
  94. AJAX.source = $anchor;
  95. var argSep = CommonParams.get('arg_separator');
  96. var params = Functions.getJsConfirmCommonParam(this, $anchor.getPostData());
  97. params += argSep + 'ajax_page_request=1';
  98. $.post(url, params, AJAX.responseHandler);
  99. });
  100. });
  101. });