Skip to content

Instantly share code, notes, and snippets.

@anunay
Last active August 29, 2015 14:05
Show Gist options
  • Save anunay/f89e3cb548a5ebeaee35 to your computer and use it in GitHub Desktop.
Save anunay/f89e3cb548a5ebeaee35 to your computer and use it in GitHub Desktop.
Google spreadsheet status listing
function highlightSingleIssue(r) {
var sheet = SpreadsheetApp.getActiveSheet();
var colsCount = sheet.getDataRange().getNumColumns();
var dataRange = sheet.getRange(r, 1, 1, colsCount);
var data = dataRange.getValues();
var row = data[0];
var colors = {
Open: {bg: '#ffffff', fg: 'green'},
Blocked: {bg: '#ffffff', fg: 'black'},
Started: {bg: '#ef9608', fg: 'white'},
Untested: {bg: '#19a2de', fg: 'white'},
Closed: {bg: 'white', fg: '#aaaaaa', style: 'line-through'},
'On Hold': {bg: '#ffffff', fg: '#aaaaaa'},
'Pmedia Comment': {bg: '#efefef', fg: 'black'},
'Client Comment': {bg: '#efefef', fg: 'black'},
Unknown: {bg: '#ffffff', fg: 'black'}
};
var columns = sheet.getRange(1, 1, 1, colsCount).getValues()[0];
var columnId = 1;
for (var c = 1; c <= colsCount; c++) {
if (columns[c] === "Status") {
columnId = c;
break;
}
}
var c = colors[row[columnId].trim()];
if (c == null) {
c = colors.Unknown;
}
dataRange.setBackgroundColor(c.bg);
dataRange.setFontColor(c.fg);
if (c.style != null) {
dataRange.setFontLine(c.style);
} else {
dataRange.setFontLine(null);
}
}
function onEdit(event) {
highlightSingleIssue(event.source.getActiveRange().getRowIndex());
SpreadsheetApp.flush();
}
function onOpen() {
var sheet = SpreadsheetApp.getActiveSheet();
var rowsCount = sheet.getDataRange().getNumRows();
for (var r = 1; r <= rowsCount; r++) {
highlightSingleIssue(r);
}
SpreadsheetApp.flush();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment