Skip to content

Commit 4515abd

Browse files
author
Reisclef
committed
Implemented check for settings being set
This includes opening the sidebar if the settings are not set.
1 parent 7fb34d0 commit 4515abd

File tree

1 file changed

+38
-14
lines changed

1 file changed

+38
-14
lines changed

refreshdata.gs

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,27 @@
22
* If there are more response lines than info lines. Add the missing formulae based on the 2nd row in Information (first row of data)
33
*/
44
function refreshData(){
5-
var lastResponse = getLastFormEntry();
6-
var lastCalc = getLastInformationRow();
7-
if (lastResponse > lastCalc){
8-
var prefs = getPreferences();
9-
var copiedRow = getRowFormulae(prefs['rowToCopy']);
10-
for (var r = lastCalc; r < lastResponse; r++){
11-
var infoSheet = activateSheet(prefs['targetSheet']);
12-
var rowToChange = r + 1;
13-
copiedRow.copyTo(infoSheet.getRange(rowToChange + ":" + rowToChange));
5+
if (checkPreferencesSet())
6+
{
7+
var lastResponse = getLastFormEntry();
8+
var lastCalc = getLastInformationRow();
9+
if (lastResponse > lastCalc){
10+
var prefs = getPreferences();
11+
var copiedRow = getRowFormulae(prefs['rowToCopy']);
12+
for (var r = lastCalc; r < lastResponse; r++){
13+
var infoSheet = activateSheet(prefs['targetSheet']);
14+
var rowToChange = r + 1;
15+
copiedRow.copyTo(infoSheet.getRange(rowToChange + ":" + rowToChange));
16+
}
17+
Browser.msgBox(lastResponse - lastCalc + " rows added.",Browser.Buttons.OK);
18+
}
19+
else{
20+
Browser.msgBox("Nothing to refresh.",Browser.Buttons.OK);
1421
}
15-
Browser.msgBox(lastResponse - lastCalc + " rows added.",Browser.Buttons.OK);
1622
}
17-
else{
18-
Browser.msgBox("Nothing to refresh.",Browser.Buttons.OK);
23+
else {
24+
displayOptions();
25+
Browser.msgBox("You must set the source sheet, target sheet, and row to copy.",Browser.Buttons.OK);
1926
}
2027
}
2128

@@ -92,7 +99,7 @@ function displayOptions(){
9299
* Return user's preferences for source and target spreadsheet
93100
*/
94101
function getPreferences() {
95-
var userProperties = PropertiesService.getUserProperties();
102+
var userProperties = PropertiesService.getDocumentProperties();
96103
var prefs = {
97104
sourceSheet: userProperties.getProperty('sourceSheet'),
98105
targetSheet: userProperties.getProperty('targetSheet'),
@@ -105,8 +112,25 @@ function getPreferences() {
105112
* Set the user's preferences based on the function arguments
106113
*/
107114
function setPreferences(source,target,row) {
108-
var userProperties = PropertiesService.getUserProperties()
115+
var userProperties = PropertiesService.getDocumentProperties();
109116
userProperties.setProperty('sourceSheet', source);
110117
userProperties.setProperty('targetSheet', target);
111118
userProperties.setProperty('rowToCopy', row);
112119
}
120+
121+
/*
122+
* Returns true if all settings are set, otherwise false.
123+
*/
124+
function checkPreferencesSet() {
125+
var valid = true;
126+
var settings = Array('sourceSheet','targetSheet','rowToCopy');
127+
var i = 0;
128+
var props = PropertiesService.getDocumentProperties();
129+
while (i < settings.length && valid) {
130+
if (props.getProperty(settings[i]) == null) {
131+
valid = false;
132+
}
133+
i++;
134+
}
135+
return valid;
136+
}

0 commit comments

Comments
 (0)