Search code examples
javascriptjqueryhandsontable

SyntaxError: missing ) after formal parameters when adding if/else


Can anyone tell me what i am doing wrong , i want to have different views for different users in handsontable.I am defining the table as

document.addEventListener("DOMContentLoaded", function() {
  var create_table = document.getElementById('create_table');
  var mydata = document.getElementById('mydata').innerHTML;//to get the hidden element
  var logged_user = document.getElementById('logged_user').innerHTML;// to get remote user
  var plan_creator = document.getElementById('plan_creator').innerHTML;//to get the person who has created the plan
  console.log(logged_user  + "  " + plan_creator);
  console.log(mydata);
  var searchResultCount=0;
  var hot,searchFiled,resultCount;
function searchResultCounter(instance, row, col, value, result) {
    Handsontable.plugins.Search.DEFAULT_CALLBACK.apply(this, arguments);

    if (result) {
      searchResultCount++;
    }
}
var buttons = {
    save:document.getElementById('save'),
    load:document.getElementById('load'),
    file:document.getElementById('file_export')
    }
    var objectData = JSON.parse(mydata);//to decode data in JSON format
    console.log(objectData);
    hot = new Handsontable(create_table, {
    data:objectData,
    colHeaders: true,
    rowHeaders: true,
    contextMenu: true,
    minRows: 30,
    minCols: 13,
    maxCols:18,
    maxRows:100,
    copyPaste:true,
    dropdownMenu: true,//plugin to display menu on column header
    filters:true,
    columnSorting:true,//plugin to enable sorting
    sortIndicator:true,//to display sorting is done
    comments:true,//to add comments
    colHeaders:["Testcase Name","Cell Name","Customer","Flops","Title","Status","Mfix CCR","Scenerio Brief Description","Expected Results","CCR Status","CCR No","Remarks","Testcase Path"],
if(logged_user == plan_creator) {
    columns:[//when using this not able to remove column
              {data:'tc_name'},
              {data:'cell_name'},
              {data:'customer_name'},
              {data:'flops' ,type:'numeric'},
              {data:'title'},
              {data:'status'},
              {data:'mfix_ccr'},
              {data:'test_scenerio'},
              {data:'expected_results'},
              {data:'ccr_status'},
              {data:'ccr_num'},
              {data:'remarks'},
              {data:'tc_path'}],
    }
    else{
    columns:[//when using this not able to remove column
              {data:'tc_name' ,readOnly:true } ,
              {data:'cell_name',readOnly:true },
              {data:'customer_name',readOnly:true },
              {data:'flops' ,type:'numeric',readOnly:true },
              {data:'title',readOnly:true },
              {data:'status',readOnly:true },
              {data:'mfix_ccr',readOnly:true },
              {data:'test_scenerio',readOnly:true },
              {data:'expected_results',readOnly:true },
              {data:'ccr_status',readOnly:true },
              {data:'ccr_num',readOnly:true },
              {data:'remarks'},//only remarks can be added by other user
              {data:'tc_path',readOnly:true }],
    }
    search: {
     callbak:searchResultCounter
    }
});
   searchFiled = document.getElementById('search_filed');
   resultCount=document.getElementById('resultCount');
   var exportPlugin=hot.getPlugin('exportFile');
   Handsontable.dom.addEvent(searchFiled, 'keyup', function(event) {
    var queryResult;
    console.log(this.value);
    searchResultCount = 0;
    queryResult = hot.search.query(this.value);
    console.log(queryResult);
    //resultCount.innerText = searchResultCount.toString();
    hot.render();
});
buttons.file.addEventListener('click', function() {// enabling the plugin to download the file
    exportPlugin.downloadFile('csv', {filename: 'MyFile',columnHeaders:true});
  });

I don't get any error when i remove the if/else statement and use only one scenerio .when using above code i am getting the error, but when i remove the if/else part and just use columns attribute in a simple way , i don't get this error.But i want to have different views for the creator of plan and others.

Is there any other way to do this?

Thanks


Solution

  • You can't use if statements when constructing an object, but you can use the ternary ?: operator, like this:

    colHeaders: ... ,
    columns: logged_user == plan_creator
        ? /* value in case they are equal */
        : /* value in case they are not equal */,
    search: ...