Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
To implement checkbox in spreadsheet form element. It is achievable with Handsontable javascript API to interact with the elements in the table manually.
Enable the handsontable instance to be interactable by pasting the following code into the html elements from form builder > spreadsheet configuration > UI > Custom Settings (JSON)'
{ "afterInit" : function() { var hot = this; $(hot.rootElement).data("hot", hot); }, }
Figure 1: Enable handsontable instance
Use the following Javascript code to handle a custom button with the logic to check the boxes using the Custom HTML form element.
An inverse function is also included inside the code from line 15-22.
<div class="btn btn-primary" id="custom-check-all">Check All</div> <div class="btn btn-primary" id="custom-invert-all">Invert All</div> <script> $(function(){ var hot = FormUtil.getField("field1").data("hot"); $('#custom-check-all').on('click', function(){ rowcount = hot.countRows(); for(i = 0; i < rowcount - 1; i++){ // rowcount - 1 to ignore last row hot.setDataAtCell(i, 1, true); // (row, column, value). column is 1 because checkbox is 2nd col in the table } }) $('#custom-invert-all').on('click', function(){ rowcount = hot.countRows(); for(i = 0; i < rowcount - 1; i++){ if(hot.getDataAtCell(i,1) == true){ hot.setDataAtCell(i, 1, false); } else{ hot.setDataAtCell(i, 1, true); } } }) }) </script>
Figure 2: Insert Javascript code into Custom HTML
Result:
Figure 3: Check all expected result
Figure 4: Invert all expected result