Advertisement
Guest User

Datatable setup

a guest
May 22nd, 2018
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function SetupDataTable() {
  2.                 var products = jsonProducts.map(p => p.product);
  3.                 conlog.info(JSON.stringify(products));
  4.                 editor = new $.fn.dataTable.Editor({
  5.                     data: jsonObject.loadDetails,
  6.                     table: '#transferLines',
  7.                     idSrc: "lineID",
  8.                     display: 'lightbox',
  9.                     paging: false,
  10.                     fields: [
  11.                         {
  12.                             "label": "shipped:",
  13.                             "name": "shipped",
  14.                             "type": "hidden",
  15.                             "def": false,
  16.                             "separator": "|",
  17.                             "ipOpts": [
  18.                                 { label: '', value: true }
  19.                             ],
  20.  
  21.                         },
  22.                         {
  23.                             "label": "Transfer Name:",
  24.                             "name": "transferName",
  25.                             "type": "hidden"
  26.                         },
  27.                         {
  28.                             "label": "Transfer ID:",
  29.                             "name": "transferID",
  30.                             "type": "hidden"
  31.                         },
  32.                         {
  33.                             "label": "Line ID:",
  34.                             "name": "lineID",
  35.                             "type": "hidden",
  36.                             "def": 0
  37.                         },
  38.  
  39.                         {
  40.                             "label": "Product:",
  41.                             "name": "product",
  42.                             "type": "select",
  43.                             "options": products
  44.                         },
  45.                         {
  46.                             "label": "UOM:",
  47.                             "name": "uom",
  48.                             "def": "EACH",
  49.                             "type": "readonly"
  50.                         },
  51.                         {
  52.                             "label": "Qty Shipped:",
  53.                             "name": "qtyShipped",
  54.                             "def": 1
  55.                         },
  56.                         {
  57.                             "label": "Qty Rec'd Acceptable:",
  58.                             "name": "qtyReceived",
  59.                             "def": 0
  60.                         },
  61.                         {
  62.                             "label": "Qty Refused:",
  63.                             "name": "qtyRefused",
  64.                             "def": 0
  65.                         },
  66.                         {
  67.                             "label": "Qty Damaged:",
  68.                             "name": "qtyDamaged",
  69.                             "def": 0
  70.                         },
  71.                         {
  72.                             "label": "Qty Scrap:",
  73.                             "name": "qtyScrap",
  74.                             "def": 0
  75.                         },
  76.                         {
  77.                             "label": "Discrepancy Notes:",
  78.                             "name": "discrepancyNote"
  79.                         },
  80.                         {
  81.                             "label": "Sku",
  82.                             "name": "sku",
  83.                             "type": "hidden"
  84.                         },
  85.                         {
  86.                             "label": "Report Category",
  87.                             "name": "reportCategory",
  88.                             "type": "hidden"
  89.                         }
  90.  
  91.                     ]
  92.                 });
  93.  
  94.  
  95.  
  96.                 editor.on('initCreate', editorInitCreate);
  97.                 editor.on('initEdit', editorInitEdit);
  98.                 editor.on('preSubmit', editorPreSubmit);
  99.                 editor.on('submitSuccess', editorSubmitSuccess);
  100.  
  101.  
  102.                
  103.                 table = $('#transferLines').DataTable({
  104.                     dom: 'Bfrtip',
  105.                     data: jsonObject.loadDetails,
  106.                     responsive: {
  107.                         details: {
  108.                             type: 'column'
  109.                         }
  110.                     },
  111.                     order: [[2, 'asc']],
  112.                     rowID: 'lineID',
  113.                     paging: false,
  114.                     columns: [
  115.                         { "data": null, defaultContent: "" },
  116.                         {
  117.                             "data": "shipped",
  118.                             render: function (input, type, row) {
  119.                                 //if (type === 'display') {
  120.                                 return '<input type="checkbox" class="editor-active" disabled="disabled">';
  121.                                 //}
  122.  
  123.                             }
  124.  
  125.                         },
  126.                         {
  127.                             "data": "product",
  128.                             "responsivePriority": 1
  129.                         },
  130.                         {
  131.                             "data": "uom"
  132.                         },
  133.                         {
  134.                             "data": "qtyShipped",
  135.                             "responsivePriority": 1
  136.                         },
  137.                         {
  138.                             "data": "qtyReceived"
  139.                         },
  140.                         {
  141.                             "data": "qtyRefused"
  142.                         },
  143.                         {
  144.                             "data": "qtyDamaged"
  145.                         },
  146.                         {
  147.                             "data": "qtyScrap",
  148.                             render: $.fn.dataTable.render.number(',', '.', 0, '')
  149.                         },
  150.                         {
  151.                             "data": "discrepancyNote",
  152.                             "responsivePriority": 2
  153.                         }//,
  154.                         //{
  155.                         //    "data": "sku"
  156.                         //},
  157.                         //{
  158.                         //    "data": "reportCategory"
  159.                         //}
  160.                     ],
  161.                     columnDefs: [{
  162.                         className: 'control',
  163.                         orderable: false,
  164.                         targets: 0
  165.                     }],
  166.                     select: 'multi',
  167.                     lengthChange: false,
  168.                     rowCallback: function (row, input) {
  169.                         // Set the checked state of the checkbox in the table
  170.                         $('input.editor-active', row).prop('checked', input.shipped == true);
  171.                     },
  172.                     buttons: [
  173.                         { extend: 'create', editor: editor },
  174.                         { extend: 'edit', editor: editor },
  175.                         { extend: 'remove', editor: editor },
  176.                         { extend: 'selectAll', editor: editor },
  177.                         { extend: 'selectNone', editor: editor },
  178.                         { extend: 'print', editor: editor }
  179.                     ]
  180.                 });
  181.  
  182.  
  183.  
  184.  
  185.                 table.on('select deselect', tableSelectChange);
  186.                 $('#transferLines').on('dblclick', 'tbody tr', function () {
  187.                     table.row(this).edit();
  188.                     table.rows().deselect();
  189.                     table.row(this).select();
  190.                 });
  191.                 UpdateCreateLine();
  192.                 table.draw();
  193.  
  194.             }
  195.             function tableSelectChange() {
  196.                 var selectedRows = table.rows({ selected: true }).count();
  197.                 if (selectedRows > 0) {
  198.  
  199.                     if (table.rows({ selected: true })
  200.                         .reduce((shipped, row) => table.row(row).data().shipped || shipped, false)) {
  201.  
  202.                         table.buttons(2).disable();
  203.                     }
  204.                     else {
  205.  
  206.                         table.buttons(2).enable();
  207.                     }
  208.                 }
  209.                 else {
  210.                     table.buttons(2).disable();
  211.                 }
  212.             }
  213.  
  214.             function editorInitCreate(e) {
  215.  
  216.                 //hide received fields
  217.                 editor.hide('qtyDamaged');
  218.                 editor.hide('qtyReceived');
  219.                 editor.hide('qtyRefused');
  220.                 editor.hide('qtyScrap');
  221.                 editor.hide('discrepancyNote');
  222.             }
  223.  
  224.             function editorInitEdit(e, node, data) {
  225.                 if (data.shipped == true) {
  226.                     editor.disable('qtyShipped');
  227.  
  228.                 }
  229.                 else {
  230.                     editor.hide('qtyDamaged');
  231.                     editor.hide('qtyReceived');
  232.                     editor.hide('qtyRefused');
  233.                     editor.hide('qtyScrap');
  234.                     editor.hide('discrepancyNote');
  235.                 }
  236.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement