Skip to main content

I'm creating an extension that will create a table and display a response for the user. I want to be able to color some cells depending on the response they get (true/false). Is there a way to do that? Coding? 


@fabianabbc wrote:

I'm creating an extension that will create a table and display a response for the user. I want to be able to color some cells depending on the response they get (true/false). Is there a way to do that? Coding?   MetroSurvey


Hello,

To color code cells based on user responses in a table within your extension, you'll need to use HTML and CSS. Use JavaScript to dynamically modify cell styles. Set a class or inline style with appropriate colors based on the response. 

 

 

 


Hey @fabianabbc

I'm not too familiar with your use-case, but here's a script that will do allow you to dynamically set colour codes, assuming the column name is "Response" and the values are "True" or "False":

 

// Get the table let tableName = "My Table"; let table = base.getTable(tableName); // Define the "Response" field let responseField = table.getField("Response"); // Update the options for the "Response" field await responseField.updateOptionsAsync({ choices: [ ...responseField.options.choices.filter((choice) => choice.name !== 'True' && choice.name !== 'False'), {name: 'True', color: 'green'}, {name: 'False', color: 'red'}, ], }); // Define the records you want to create let records = [ { fields: { 'Response': { name: 'True' } } }, { fields: { 'Response': { name: 'False' } } }, { fields: { 'Response': { name: 'True' } } }, ]; // Create the records in the table await table.createRecordsAsync(records); // Display a response to the user output.text("Records have been created!");

 

 


Hey @fabianabbc

I'm not too familiar with your use-case, but here's a script that will do allow you to dynamically set colour codes, assuming the column name is "Response" and the values are "True" or "False":

 

// Get the table let tableName = "My Table"; let table = base.getTable(tableName); // Define the "Response" field let responseField = table.getField("Response"); // Update the options for the "Response" field await responseField.updateOptionsAsync({ choices: [ ...responseField.options.choices.filter((choice) => choice.name !== 'True' && choice.name !== 'False'), {name: 'True', color: 'green'}, {name: 'False', color: 'red'}, ], }); // Define the records you want to create let records = [ { fields: { 'Response': { name: 'True' } } }, { fields: { 'Response': { name: 'False' } } }, { fields: { 'Response': { name: 'True' } } }, ]; // Create the records in the table await table.createRecordsAsync(records); // Display a response to the user output.text("Records have been created!");

 

 


Hey! So I tried this code but it seems it's for script. Is that different from an extension code? cuz it's not working for me 😕😕 and I can't use output in an extension code.