Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.10 KB | None | 0 0
  1. $(function () {
  2. dimensionJS.global_init();
  3. });
  4.  
  5. var dimensionJS = {
  6.  
  7. global_init: function () {
  8. dimensionJS.partial_inits.navBar()
  9. dimensionJS.partial_inits.formValidator();
  10. dimensionJS.partial_inits.toastr();
  11. dimensionJS.partial_inits.dataTables()
  12. },
  13.  
  14. partial_inits: {
  15. navBar: function () {
  16. $('.left-nav-toggle a').on('click', function (event) {
  17. event.preventDefault();
  18. $('body').toggleClass('nav-toggle');
  19. });
  20.  
  21. $(window).resize(_.debounce(function () {
  22. if ($(window).width() > 767) {
  23. $('body').removeClass('nav-toggle');
  24. }
  25. }, 500));
  26.  
  27. $('.nav-second').on('show.bs.collapse', function () {
  28. $('.nav-second.in').collapse('hide');
  29. });
  30.  
  31. $('.panel-toggle').on('click', function (event) {
  32. event.preventDefault();
  33. var hpanel = $(event.target).closest('div.panel');
  34. var icon = $(event.target).closest('i');
  35. var body = hpanel.find('div.panel-body');
  36. var footer = hpanel.find('div.panel-footer');
  37. body.slideToggle(300);
  38. footer.slideToggle(200);
  39. icon.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
  40. hpanel.toggleClass('').toggleClass('panel-collapse');
  41. setTimeout(function () {
  42. hpanel.resize();
  43. hpanel.find('[id^=map-]').resize();
  44. }, 50);
  45. });
  46.  
  47. $('.panel-close').on('click', function (event) {
  48. event.preventDefault();
  49. var hpanel = $(event.target).closest('div.panel');
  50. hpanel.remove();
  51. });
  52. },
  53.  
  54. formValidator: function () {
  55. $('form').bind("invalid-form.validate", function (form, validator) {
  56. var msg = '';
  57.  
  58. for (var i = 0; i < validator.errorList.length; i++) {
  59. msg += validator.errorList[i].message + ((i < validator.errorList.length) ? '<br />' : '');
  60. }
  61. toastr['warning'](msg, 'Warning');
  62. });
  63. },
  64.  
  65. toastr: function () {
  66. toastr.options = {
  67. positionClass: 'toast-bottom-right',
  68. progressBar: true,
  69. showEasing: 'swing',
  70. timeOut: 2500
  71. };
  72. },
  73.  
  74. dataTables: function () {
  75. $.extend(true, $.fn.dataTable.defaults, {
  76. dom: '<"panel panel-filled"<"panel-body"<"row"<"col-sm-2"l><"col-sm-10"B>>>><"panel panel-filled"<"panel-body"<"table-responsive"t>>><"panel panel-filled"<"panel-body"<"row"<"col-sm-5"i><"col-sm-7"p>>>>',
  77.  
  78. lengthMenu: [[5, 10, 25, 50, 100, 200, 400], [5, 10, 25, 50, 100, 200, 400]],
  79.  
  80. pageLength: 25,
  81.  
  82. language: {
  83. paginate: {
  84. next: '<i class="fa fa-chevron-right"></i>',
  85. previous: '<i class="fa fa-chevron-left"></i>'
  86. },
  87. aria: {
  88. paginate: {
  89. next: 'Next',
  90. previous: 'Previous'
  91. }
  92. }
  93. },
  94.  
  95. buttons: [
  96. { extend: 'copy', className: 'btn-sm' },
  97. { extend: 'csv', className: 'btn-sm' },
  98. { extend: 'excel', className: 'btn-sm' },
  99. { extend: 'pdf', className: 'btn-sm' },
  100. { extend: 'print', className: 'btn-sm' }
  101. ],
  102.  
  103. processing: true,
  104. paging: true,
  105. deferRender: true,
  106. responsive: true,
  107. autoWidth: false,
  108.  
  109. serverSide: true
  110. });
  111.  
  112. for (var dt in dimensionJS.dataTables) {
  113. if ($('#' + dt).length) {
  114. dimensionJS.dataTables.initiated[dt] = dimensionJS.dataTables[dt]();
  115. }
  116. }
  117.  
  118. for (var idt in dimensionJS.dataTables.initiated) {
  119. dimensionJS.dataTables.initiated[idt].columns().every(function () {
  120. var that = this;
  121. $('input', this.footer()).on('keyup change', function () {
  122. if (that.search() !== this.value) {
  123. that.search(this.value).draw();
  124. }
  125. });
  126. });
  127. }
  128. }
  129. },
  130.  
  131. dataTables: {
  132. initiated: {}, // Initialisatiion container for datatables on screen
  133.  
  134. auditLogEntires: function () {
  135. return $('#auditLogEntires').DataTable({
  136. ajax: { url: '/Administration/AuditLog/DataHandler' },
  137.  
  138. columns: [
  139. {
  140. data: 'Timestamp',
  141. render: function (value) {
  142. return dimensionJS.helpers.formatUnixDateTime(value);
  143. }
  144. },
  145. { data: 'UserName' },
  146. { data: 'IPAddress' },
  147. { data: 'AreaAccessed' },
  148. { data: 'ControllerAccessed' },
  149. { data: 'ActionAccessed' },
  150. ],
  151.  
  152. order: [[0, 'desc']]
  153. });
  154. },
  155.  
  156. versionLogEntries: function () {
  157. return $('#versionLogEntries').DataTable({
  158. ajax: {
  159. type: 'POST',
  160. url: '/Administration/VersionLog/DataHandler',
  161. data: function (data) {
  162. return $.extend({}, data, {
  163. extra_search: 'test'
  164. });
  165. }
  166. },
  167.  
  168. columns: [
  169. {
  170. data: 'Timestamp',
  171. render: function (value) {
  172. return dimensionJS.helpers.formatUnixDateTime(value);
  173. }
  174. },
  175. { data: 'UserName' },
  176. {
  177. data: 'VersionNumber',
  178. render: function (value) {
  179. return dimensionJS.helpers.twoDecimalPlaces(value);
  180. }
  181. },
  182. {
  183. data: 'Details',
  184. render: function (value) {
  185. return dimensionJS.helpers.replaceLineBreaks(value);
  186. }
  187. }
  188. ],
  189.  
  190. order: [[0, 'desc']]
  191. });
  192. }
  193. },
  194.  
  195. ajaxFormActions: {
  196. onBegin: function (obj) {
  197. $(obj).find(':input').prop('disabled', true);
  198. },
  199.  
  200. onComplete: function (obj) {
  201. $(obj).find(':input').prop('disabled', false);
  202. },
  203.  
  204. onFailure: function (msg) {
  205. toastr['error'](msg, 'Error');
  206. },
  207.  
  208. onSuccess: function (obj, dataTable, msg) {
  209. toastr['success'](msg, 'Success');
  210.  
  211. dimensionJS.dataTables[dataTable].draw();
  212.  
  213. $('.modal.in').modal('hide');
  214.  
  215. $(obj).trigger('reset');
  216. }
  217. },
  218.  
  219. helpers: {
  220. twoDecimalPlaces: function (value) {
  221. if (value === null) {
  222. return '';
  223. }
  224. else {
  225. return parseFloat(value).toFixed(2);
  226. }
  227. },
  228.  
  229. formatUnixDateTime: function (value) {
  230. if (value === null) {
  231. return '';
  232. }
  233. else {
  234. var pattern = /Date\(([^)]+)\)/;
  235. var result = pattern.exec(value);
  236. var dateTime = parseFloat(result[1]);
  237.  
  238. return moment(dateTime).format('DD/MM/YYYY HH:mm:ss');
  239. }
  240. },
  241.  
  242. replaceLineBreaks: function (value) {
  243. if (value === null) {
  244. return '';
  245. }
  246. else {
  247. return value.replace(/\r\n|\r|\n/g, '<br />');
  248. }
  249. }
  250. }
  251. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement