Skip to content

Instantly share code, notes, and snippets.

@eojji
Created July 16, 2018 02:28
Show Gist options
  • Save eojji/47335a22d2f298631affb2980613b64a to your computer and use it in GitHub Desktop.
Save eojji/47335a22d2f298631affb2980613b64a to your computer and use it in GitHub Desktop.
Process Main, drive 10 - Google App Maker. https://cafe.naver.com/eojji/337
function onMainPageAttach(page) {
google.script.run.withSuccessHandler( function(resp) {
page.descendants.ToFolderLink.text = resp.title;
page.descendants.ToFolderLink.href = resp.link;
}).getLinkToFolderByProperty();
}
/**
* @param {widget} widget - Button widget.
* @param {event}
*/
function onMainInputClick(widget, event) {
// var widgets = widget.parent.descendants;
var input = widget.parent.descendants.InputTextBox.value;
app.popups.ModalLoadingIndicator.visible = true;
google.script.run.withSuccessHandler( function(resp) {
var props = app.currentPage.properties;
props.TitleProperty = resp.title;
props.UrlProperty = resp.url;
props.MessageProperty = resp.message;
app.popups.ModalLoadingIndicator.visible = false;
}).processMain(input);
}
/**
* @param {widget} widget - Button widget.
* @param {event}
*/
function onToFolderButtonClick(widget) {
var toFolder = widget.parent.descendants.ToFolderTextBox.value;
widget.parent.descendants.ToFolderTextBox.value = '';
app.popups.ModalLoadingIndicator.visible = true;
google.script.run.withSuccessHandler( function(resp) {
var props = app.currentPage.properties;
props.ToFolderName = resp.title;
props.ToFolderUrl = resp.url;
props.MessageProperty = resp.message;
app.popups.ModalLoadingIndicator.visible = false;
}).setToFolderByUrl(toFolder);
}
function setFolderPropertyById_(id) {
PropertiesService.getUserProperties().setProperty('TO_FOLDER_ID', id);
}
function getFolderByProperty_() {
// return
var toFolderId = PropertiesService.getUserProperties().getProperty('TO_FOLDER_ID');
if (toFolderId) {
try {
return getDriveFileById_(toFolderId);
} catch(e) {
}
} else {
var folder = DriveApp.createFolder('_Pick&Copy');
var id = folder.getId();
setFolderPropertyById_(id);
return Drive.Files.get(id);
}
}
function getLinkToFolderByProperty() {
var folder = getFolderByProperty_();
if (!folder) {
return;
}
return { title:folder.title, link:folder.alternateLink };
}
function setToFolderByUrl(url) {
var appMessage = {};
var pageToFolderUrl = url.trim();
var decodeUri;
if (pageToFolderUrl) {
decodeUri = decodeURIComponent(pageToFolderUrl);
} else {
appMessage.message = 'Enter To folder URL';
return appMessage;
}
var folder = getFolderByGdUrl_(pageToFolderUrl); // return Drive.Files.get(id, optionalArgs);
if (!folder || !folder.id) {
var resp = folder;
if (resp && resp.name) {
console.log('Error Name: %s, Message: %s, Form Input Url: %s', resp.name, resp.message, pageToFolderUrl);
appMessage.message = 'Error Name: '+resp.name+', Message: '+resp.message;
} else {
console.log('Error input Url Validate. URL does not have file ID. [%s]', pageToFolderUrl);
appMessage.message = 'Error ['+pageToFolderUrl+'] Validate.';
}
return appMessage;
}
var title = folder.title;
if (folder.mimeType != 'application/vnd.google-apps.folder') {
appMessage.message = 'To folder URL is file';
return appMessage;
}
var id = folder.getId();
setFolderPropertyById_(id);
appMessage.url = folder.alternateLink;
appMessage.title = folder.title;
appMessage.message = 'Save To folder';
return appMessage;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment