2024-06-24 07:21:55 -05:00
|
|
|
|
|
|
|
|
2024-06-24 07:00:53 -05:00
|
|
|
function onOpen() {
|
|
|
|
var ui = SpreadsheetApp.getUi();
|
|
|
|
|
|
|
|
ui.createMenu('Demographic Manager')
|
|
|
|
.addItem('Initialize Spreadsheet', 'spread_init')
|
|
|
|
.addItem('Regenerate Reporting Spreadsheets', 'regenerate')
|
|
|
|
.addToUi()
|
|
|
|
}
|
|
|
|
|
|
|
|
function spread_init() {
|
|
|
|
var ui = SpreadsheetApp.getUi();
|
|
|
|
// This is a destructive operation, so prompt the user.
|
|
|
|
var response = ui.alert(
|
|
|
|
'Initialize spreadsheet',
|
|
|
|
'Warning: if you click yes, the spreadsheet will delete data inside itself. Make a backup before running this operation. Continue?',
|
|
|
|
ui.ButtonSet.YES_NO_CANCEL
|
|
|
|
);
|
|
|
|
|
|
|
|
if (response == ui.Button.NO) {
|
|
|
|
ui.alert("Canceled the initialization of the spreadsheet.")
|
|
|
|
return;
|
|
|
|
} else if (response == ui.Button.CANCEL) {
|
|
|
|
ui.alert("Canceled the initialization of the spreadsheet.")
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet()
|
|
|
|
var sheetsToRemove = spreadsheet.getSheets()
|
|
|
|
for (var sheet = 0; sheet < sheetsToRemove.length; sheet++) {
|
|
|
|
try {
|
|
|
|
spreadsheet.deleteSheet(sheetsToRemove[sheet]);
|
|
|
|
} catch { // ran out of spreadsheets to nuke, so rename it to the first thing we need
|
|
|
|
spreadsheet.getSheets()[0].setName("*Demographic Data")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// take care of demographic data layout
|
|
|
|
var sheet = spreadsheet.getSheets()[0]
|
|
|
|
sheet.getRange('A1').activate();
|
|
|
|
sheet.getCurrentCell().setValue('Site Name');
|
|
|
|
sheet.getRange('B1').activate();
|
|
|
|
sheet.getCurrentCell().setValue('Count');
|
|
|
|
sheet.getRange('C1').activate();
|
|
|
|
sheet.getCurrentCell().setValue('Age');
|
|
|
|
sheet.getRange('D1').activate();
|
|
|
|
sheet.getCurrentCell().setValue('Gender');
|
|
|
|
sheet.getRange('E1').activate();
|
|
|
|
sheet.getCurrentCell().setValue('Ethnicity');
|
|
|
|
sheet.getRange('F1').activate();
|
|
|
|
sheet.getCurrentCell().setValue('Race');
|
|
|
|
sheet.getRange('F2').activate();
|
|
|
|
|
|
|
|
var newSheet = spreadsheet.insertSheet();
|
|
|
|
newSheet.setName("*Site Information")
|
|
|
|
newSheet.getRange('A1').activate();
|
|
|
|
newSheet.getCurrentCell().setValue('Site Name');
|
|
|
|
newSheet.getRange('B1').activate();
|
|
|
|
newSheet.getCurrentCell().setValue('Date');
|
|
|
|
newSheet.getRange('C1').activate();
|
|
|
|
newSheet.getCurrentCell().setValue('Time');
|
|
|
|
newSheet.getRange('D1').activate();
|
|
|
|
newSheet.getCurrentCell().setValue('Those Present');
|
|
|
|
newSheet.getRange('E1').activate();
|
|
|
|
newSheet.getCurrentCell().setValue('Data Leads');
|
|
|
|
newSheet.getRange('F1').activate();
|
|
|
|
newSheet.getCurrentCell().setValue('Who Collected?');
|
|
|
|
newSheet.getRange('F2').activate();
|
|
|
|
}
|