Skip to content

Instantly share code, notes, and snippets.

@kurtkaiser
Created February 12, 2019 00:30
Show Gist options
  • Save kurtkaiser/28d2f708a8bb870ab996217efab1c235 to your computer and use it in GitHub Desktop.
Save kurtkaiser/28d2f708a8bb870ab996217efab1c235 to your computer and use it in GitHub Desktop.
I created this in a tutorial video on how to create script and user properties in Google Apps Script.
// Kurt Kaiser
// kurtkaiser.us
// All Right Reserved, 2019
var ui = SpreadsheetApp.getUi();
var scriptProperties = PropertiesService.getScriptProperties();
var userProperties = PropertiesService.getUserProperties();
function onOpen(){
ui.createMenu('Save a Property')
.addItem('Script - Save Property', 'scriptPrompt')
.addItem('Script - Show Alert', 'scriptAlert')
.addSubMenu(ui.createMenu('More Script')
.addItem('Number', 'scriptTwo')
.addItem('Mooooo', 'favoriteAnimal'))
.addItem('User - Save Property', 'userPrompt')
.addItem('User - Show Alert', 'userAlert')
.addItem('Delete a Property', 'deletePrompt')
.addItem('Delete Everything', 'deleteAll')
.addItem('Alert Everything', 'alertAllProperties')
.addToUi();
}
function scriptPrompt(){
var scriptValue = ui.prompt('Favorite color ' , ui.ButtonSet.OK);
scriptProperties.setProperty('color', scriptValue.getResponseText());
}
function scriptAlert(){
ui.alert('Color: ' + scriptProperties.getProperty('color'), ui.ButtonSet.OK)
}
function userPrompt(){
var userValue = ui.prompt('Favorite food ' , ui.ButtonSet.OK);
userProperties.setProperty('food', userValue.getResponseText());
}
function userAlert(){
ui.alert('Food: ' + userProperties.getProperty('food'), ui.ButtonSet.OK)
}
function scriptTwo(){
var num = ui.prompt('Favorite number ' , ui.ButtonSet.OK);
scriptProperties.setProperty('num', num.getResponseText());
}
function favoriteAnimal(){
var cow = ui.prompt('Favorite animal ', ui.ButtonSet.OK_CANCEL);
scriptProperties.setProperty(cow.getResponseText(), cow.getResponseText());
}
function deletePrompt(){
var remove = ui.prompt('Enter key of property to delete ' , ui.ButtonSet.OK_CANCEL);
deleteOneProperty(remove.getResponseText());
}
// ----------- Operations ---------------------------
function deleteAll(){
scriptProperties.deleteAllProperties();
userProperties.deleteAllProperties();
}
function alertAllProperties(){
var stringProperties = '';
var data = scriptProperties.getProperties();
for (var key in data){
stringProperties = stringProperties + 'Key: ' + key + ' Value: ' + data[key] + '\n';
}
ui.alert(stringProperties);
}
function alertAllKeys(){
var stringKeys= '';
var allKeys = scriptProperties.getKeys()
Logger.log('allKeys: ' + allKeys);
for (var key in allKeys){
stringKeys = stringKeys + 'Key: ' + allKeys[key] + '\n';
}
ui.alert(stringKeys);
}
function deleteOneProperty(input){
Logger.log('Ran delete one: ' + input);
scriptProperties.deleteProperty(input);
}
function makeMultiple(){
scriptProperties.setProperties({
'Boston': 'Massachusetts',
'Austin': 'Texas',
'Seattle': 'Washington'
}, true);
}
function makeArray(){
var someNames = ['Fred', 1232, 'Juan', [123.33, 666], 'Kayla'];
scriptProperties.setProperty('someNames', someNames);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment