Created
March 29, 2022 21:04
-
-
Save eduardojmatos/23a71a21c073142659debdbad07c0ae6 to your computer and use it in GitHub Desktop.
Copying a spreadsheet
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const PDI_TEMPLATE = 'TEMPLATE_URL'; | |
const PDI_TRACKER = 'TRACKING_SHEAT'; | |
const MAIN_SHEET_NAME = 'Orientações Gerais'; | |
const USER_EMAIL = Session.getActiveUser().getEmail(); | |
const DIALOG_SIZE_H = 150 | |
const DIALOG_SIZE_W = 400 | |
function open() { | |
SpreadsheetApp | |
.getUi() | |
.createMenu('Copiar') | |
.addItem('Copiar', 'copy') | |
.addToUi(); | |
} | |
function copy() { | |
openLoadingDialog(); | |
var newPDI = createNewPDI(); | |
normalizeSheet(newPDI); | |
openFileDialog(newPDI.getUrl()); | |
trackingPDIs(newPDI); | |
} | |
function createNewPDI(){ | |
var template = DriveApp.getFileById(PDI_TEMPLATE); | |
var filename = template.getName(); | |
var rootFolder = DriveApp.getRootFolder(); | |
var newFile = template.makeCopy(filename, rootFolder).setName(`PDI - ${USER_EMAIL}`) | |
return newFile; | |
} | |
function normalizeSheet(newFile) { | |
var pdiSheet = SpreadsheetApp.openById(newFile.getId()); | |
var sheet = pdiSheet.getSheetByName(MAIN_SHEET_NAME); | |
newFile.setOwner(USER_EMAIL); | |
newFile.setStarred(true); | |
pdiSheet.deleteSheet(sheet); | |
} | |
function openLoadingDialog() { | |
const MESSAGE_PRE_LOADING = `\ | |
<div style="font-family: Arial; font-size: 14px; text-align: center; padding-top: 20px"> \ | |
<p><strong>Aguarde enquanto a cópia do PDI é feita!</strong></p> \ | |
<p>Vamos gerar um arquivo no seu Google Drive.</p> \ | |
</div> \ | |
`; | |
var htmlPreLoading = HtmlService.createHtmlOutput(MESSAGE_PRE_LOADING) | |
.setHeight(DIALOG_SIZE_H) | |
.setWidth(DIALOG_SIZE_W); | |
SpreadsheetApp.getUi().showModalDialog(htmlPreLoading, 'Iniciando processo de cópia'); | |
} | |
function openFileDialog(fileURL) { | |
var htmlString = ` \ | |
<div style="text-align:center; padding-top: 40px"> \ | |
<a href="${fileURL}" onclick="google.script.host.close();" target="_blank" style="font-family: Arial;font-size: 18px;padding: 29px 20px;background-color: #bfa03a;color: black;border-radius: 16px;text-decoration: none;text-transform: uppercase;font-weight: bold;"> \ | |
Abra aqui seu PDI \ | |
</a> \ | |
</div> \ | |
`; | |
var html = HtmlService.createHtmlOutput(htmlString) | |
.setHeight(DIALOG_SIZE_H) | |
.setWidth(DIALOG_SIZE_W); | |
SpreadsheetApp.getUi().showModalDialog(html, 'Finalizado!'); | |
} | |
function trackingPDIs(newPDI) { | |
// People PDI's tracking sheet | |
var tracker = SpreadsheetApp.openById(PDI_TRACKER); | |
// tracking how many sheets are being done by willers | |
tracker.getSheetByName('Página1').appendRow([USER_EMAIL, Utilities.formatDate(new Date(), "GMT", "dd/MM/yyyy")]); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment