PageRenderTime 55ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/angular/content/assets/pages/scripts/ecommerce-orders-view.js

https://gitlab.com/worksmit/demo
JavaScript | 237 lines | 189 code | 28 blank | 20 comment | 16 complexity | e3ddc0389c86607f8ccbf3feb2c86dbf MD5 | raw file
  1. var EcommerceOrdersView = function () {
  2. var handleInvoices = function () {
  3. var grid = new Datatable();
  4. grid.init({
  5. src: $("#datatable_invoices"),
  6. onSuccess: function (grid) {
  7. // execute some code after table records loaded
  8. },
  9. onError: function (grid) {
  10. // execute some code on network or other general error
  11. },
  12. loadingMessage: 'Loading...',
  13. dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options
  14. // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout
  15. // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js).
  16. // So when dropdowns used the scrollable div should be removed.
  17. //"dom": "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>",
  18. "lengthMenu": [
  19. [10, 20, 50, 100, 150, -1],
  20. [19, 20, 50, 100, 150, "All"] // change per page values here
  21. ],
  22. "pageLength": 10, // default record count per page
  23. "ajax": {
  24. "url": "../demo/ecommerce_order_invoices.php", // ajax source
  25. },
  26. "order": [
  27. [1, "asc"]
  28. ] // set first column as a default sort by asc
  29. }
  30. });
  31. // handle group actionsubmit button click
  32. grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {
  33. e.preventDefault();
  34. var action = $(".table-group-action-input", grid.getTableWrapper());
  35. if (action.val() != "" && grid.getSelectedRowsCount() > 0) {
  36. grid.setAjaxParam("customActionType", "group_action");
  37. grid.setAjaxParam("customActionName", action.val());
  38. grid.setAjaxParam("id", grid.getSelectedRows());
  39. grid.getDataTable().ajax.reload();
  40. grid.clearAjaxParams();
  41. } else if (action.val() == "") {
  42. App.alert({
  43. type: 'danger',
  44. icon: 'warning',
  45. message: 'Please select an action',
  46. container: grid.getTableWrapper(),
  47. place: 'prepend'
  48. });
  49. } else if (grid.getSelectedRowsCount() === 0) {
  50. App.alert({
  51. type: 'danger',
  52. icon: 'warning',
  53. message: 'No record selected',
  54. container: grid.getTableWrapper(),
  55. place: 'prepend'
  56. });
  57. }
  58. });
  59. }
  60. var handleCreditMemos = function () {
  61. var grid = new Datatable();
  62. grid.init({
  63. src: $("#datatable_credit_memos"),
  64. onSuccess: function (grid) {
  65. // execute some code after table records loaded
  66. },
  67. onError: function (grid) {
  68. // execute some code on network or other general error
  69. },
  70. loadingMessage: 'Loading...',
  71. dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options
  72. // Uncomment below line("dom" parameter) to fix the dropdown overflow issue in the datatable cells. The default datatable layout
  73. // setup uses scrollable div(table-scrollable) with overflow:auto to enable vertical scroll(see: assets/global/scripts/datatable.js).
  74. // So when dropdowns used the scrollable div should be removed.
  75. //"dom": "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>>",
  76. "lengthMenu": [
  77. [10, 20, 50, 100, 150, -1],
  78. [10, 20, 50, 100, 150, "All"] // change per page values here
  79. ],
  80. "pageLength": 10, // default record count per page
  81. "ajax": {
  82. "url": "../demo/ecommerce_order_credit_memos.php", // ajax source
  83. },
  84. "columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)
  85. 'orderable': true,
  86. 'targets': [0]
  87. }],
  88. "order": [
  89. [0, "asc"]
  90. ] // set first column as a default sort by asc
  91. }
  92. });
  93. }
  94. var handleShipment = function () {
  95. var grid = new Datatable();
  96. grid.init({
  97. src: $("#datatable_shipment"),
  98. onSuccess: function (grid) {
  99. // execute some code after table records loaded
  100. },
  101. onError: function (grid) {
  102. // execute some code on network or other general error
  103. },
  104. loadingMessage: 'Loading...',
  105. dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options
  106. "lengthMenu": [
  107. [10, 20, 50, 100, 150, -1],
  108. [10, 20, 50, 100, 150, "All"] // change per page values here
  109. ],
  110. "pageLength": 10, // default record count per page
  111. "ajax": {
  112. "url": "../demo/ecommerce_order_shipment.php", // ajax source
  113. },
  114. "columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)
  115. 'orderable': true,
  116. 'targets': [0]
  117. }],
  118. "order": [
  119. [0, "asc"]
  120. ] // set first column as a default sort by asc
  121. }
  122. });
  123. }
  124. var handleHistory = function () {
  125. var grid = new Datatable();
  126. grid.init({
  127. src: $("#datatable_history"),
  128. onSuccess: function (grid) {
  129. // execute some code after table records loaded
  130. },
  131. onError: function (grid) {
  132. // execute some code on network or other general error
  133. },
  134. loadingMessage: 'Loading...',
  135. dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options
  136. "lengthMenu": [
  137. [10, 20, 50, 100, 150, -1],
  138. [10, 20, 50, 100, 150, "All"] // change per page values here
  139. ],
  140. "pageLength": 10, // default record count per page
  141. "ajax": {
  142. "url": "../demo/ecommerce_order_history.php", // ajax source
  143. },
  144. "columnDefs": [{ // define columns sorting options(by default all columns are sortable extept the first checkbox column)
  145. 'orderable': true,
  146. 'targets': [0]
  147. }],
  148. "order": [
  149. [0, "asc"]
  150. ] // set first column as a default sort by asc
  151. }
  152. });
  153. // handle group actionsubmit button click
  154. grid.getTableWrapper().on('click', '.table-group-action-submit', function (e) {
  155. e.preventDefault();
  156. var action = $(".table-group-action-input", grid.getTableWrapper());
  157. if (action.val() != "" && grid.getSelectedRowsCount() > 0) {
  158. grid.setAjaxParam("customActionType", "group_action");
  159. grid.setAjaxParam("customActionName", action.val());
  160. grid.setAjaxParam("id", grid.getSelectedRows());
  161. grid.getDataTable().ajax.reload();
  162. grid.clearAjaxParams();
  163. } else if (action.val() == "") {
  164. App.alert({
  165. type: 'danger',
  166. icon: 'warning',
  167. message: 'Please select an action',
  168. container: grid.getTableWrapper(),
  169. place: 'prepend'
  170. });
  171. } else if (grid.getSelectedRowsCount() === 0) {
  172. App.alert({
  173. type: 'danger',
  174. icon: 'warning',
  175. message: 'No record selected',
  176. container: grid.getTableWrapper(),
  177. place: 'prepend'
  178. });
  179. }
  180. });
  181. }
  182. var initPickers = function () {
  183. //init date pickers
  184. $('.date-picker').datepicker({
  185. rtl: App.isRTL(),
  186. autoclose: true
  187. });
  188. $(".datetime-picker").datetimepicker({
  189. isRTL: App.isRTL(),
  190. autoclose: true,
  191. todayBtn: true,
  192. pickerPosition: (App.isRTL() ? "bottom-right" : "bottom-left"),
  193. minuteStep: 10
  194. });
  195. }
  196. return {
  197. //main function to initiate the module
  198. init: function () {
  199. initPickers();
  200. handleInvoices();
  201. handleCreditMemos();
  202. handleShipment();
  203. handleHistory();
  204. }
  205. };
  206. }();
  207. jQuery(document).ready(function() {
  208. EcommerceOrdersView.init();
  209. });