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.


Reply