|
@@ -397,7 +397,39 @@ var dbController = {
|
|
|
onEnterCell: function (sender, args) {
|
|
|
args.sheet.repaint();
|
|
|
},
|
|
|
- editData: function (controller) {
|
|
|
+
|
|
|
+ onButtonClicked: function (sender, info) {
|
|
|
+ if (info.sheet.isEditing()) {
|
|
|
+ info.sheet.endEdit(true);
|
|
|
+ }
|
|
|
+ debugger;
|
|
|
+ const field = dbController.controller.setting.cols[info.col].data.field;
|
|
|
+ var node = dbController.controller.tree.items[info.row];
|
|
|
+ if (node && field === 'isBillBudget') {
|
|
|
+ const isChecked = Boolean(info.sheet.getValue(info.row, info.col));
|
|
|
+ const allNodes = [node, ...node.getPosterity()];
|
|
|
+ const postData = [];
|
|
|
+ allNodes.forEach(item => {
|
|
|
+ postData.push({ ID: item.data.ID, [field]: isChecked });
|
|
|
+ });
|
|
|
+ billsAjax.pasteBills(userAccount, billsLibId, postData, () => {
|
|
|
+ allNodes.forEach(item => {
|
|
|
+ const row = node.tree.items.indexOf(item);
|
|
|
+ if (row >= 0) {
|
|
|
+ sheetBillsDatas.datasIdx['rowIdx' + row][field] = isChecked;
|
|
|
+ item.data[field] = isChecked;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ dbController.controller.refreshTreeNode(allNodes, false);
|
|
|
+ })
|
|
|
+
|
|
|
+ /* node.data[field] = isChecked;
|
|
|
+ sheetBillsDatas.datasIdx['rowIdx' + info.row][field] = isChecked;
|
|
|
+ billsAjax.updateBills(userAccount, billsLibId, node.getID(), field, isChecked); */
|
|
|
+ }
|
|
|
+ },
|
|
|
+ editData: function (controller, billsSpread) {
|
|
|
+ billsSpread.bind(GC.Spread.Sheets.Events.ButtonClicked, this.onButtonClicked);
|
|
|
controller.sheet.bind(GC.Spread.Sheets.Events.EditStarting, this.onEditStart);
|
|
|
controller.sheet.bind(GC.Spread.Sheets.Events.EditEnded, this.onEditEnded);
|
|
|
controller.sheet.bind(GC.Spread.Sheets.Events.EnterCell, this.onEnterCell);
|