AnswerBun.com

Mutator in tabulator not working on same edited functions

I have a scenario where I am defining the mutators below and when I edit the cell it does not work where common mutators are used? I guess this is a bug or is there any other way to do it?

 var diffMutator_FEcontacted = function (value, data, type, params, component) {
    var start = moment(data.incident_start, 'DD/MM/YYYY HH:mm')                   
    var end = moment(data.First_expert_contacted_by_SE, 'DD/MM/YYYY HH:mm')       //common feild
    var new_value = end.diff(start, 'minutes');
    if (type == "edit") {
      console.log('edit');
      component.getRow().getCell("time_to_contact_first_exp_calc").setValue(new_value);
      return value;
    } else {
      return new_value
    }
  }

  var diffMutator_REcontacted = function (value, data, type, params, component) {
    var start = moment(data.incident_start, 'DD/MM/YYYY HH:mm')
    var end = moment(data.Right_expert_found_at, 'DD/MM/YYYY HH:mm') //common feild
    var new_value = end.diff(start, 'minutes');
    if (type == "edit") {
      console.log('edit');
      component.getRow().getCell("Time_to_find_right_exp_calc").setValue(new_value);
      return value;
    } else {
      return new_value
    }
  }

  var diffMutator_FEREdiff = function (value, data, type, params, component) {
    var start = moment(data.First_expert_contacted_by_SE, 'DD/MM/YYYY HH:mm')    //common feild in another fucntion
    var end = moment(data.Right_expert_found_at, 'DD/MM/YYYY HH:mm') //common feild in another function
    var new_value = end.diff(start, 'minutes');
    if (type == "edit") {
      console.log('edit');
      component.getRow().getCell("time_diff_FE_RE").setValue(new_value);
      return value;
    } else {
      return new_value
    }
  }

Rather, I would explain this as mutator is not working on common fields.
Here is the fiddle explained with this above use case:

Stack Overflow Asked on February 18, 2021

1 Answers

One Answer

This is happening because the mutator functions are called only when their field is updated, each individual function is not aware if it depends on any other fields in the table.

I would suggest that in the cellEdited callback for the edited column, you include a row.update to trigger the updates on dependent columns.

so for example the "TimeDiff" column is depended on the "TimeStart" column, so in the definition for the TimeStart column you should include the following:

{title: "Start Time", field: "TimeStart", cellEdited:function(cell){
    cell.getRow().update({TimeDiff:true});
}},

This will then trigger the mutation of the dependent TimeDiff mutator when TimeStart is edited

Answered by Oli Folkerd on February 18, 2021

Add your own answers!

Related Questions

Copy each cell in a range to multi-cell range

2  Asked on November 29, 2021 by preston-richardson

   

How to make dynamic custom textarea with jquery?

3  Asked on November 29, 2021 by david-noya

     

private static field Java

3  Asked on November 29, 2021

         

unordered_map excess calls to hash function

4  Asked on November 29, 2021 by amir-kirsh

   

cant load static file in django

1  Asked on November 29, 2021

       

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved.