I built a code that grabs only one type of google calendar event and sends the information to a spreadsheet. It works, but now I need to turn this function into an html dropdown list, I tried several options but when I click OK it doesn't run. What should I change? I'll leave the old code (works) and try a new one (doesn't work).
Old:
function onOpen(e) {
// MENU
let ui = SpreadsheetApp.getUi()
ui.createMenu("⚡")
.addItem("⏹ Atualizar Reuniões", "atualReunioes")
.addItem(' Editar Dados', 'formDados')
.addItem(' Editar Dados', 'formReunioes')
.addToUi()
}
function atualReunioes() {
var ui = SpreadsheetApp.getUi()
var result = ui.prompt("Informe o mês (1 - 12) para transferir as reuniões", Browser.Buttons.OK_CANCEL)
var escolha = parseInt(result.getResponseText(), 10)
switch (escolha) {
case 1:
dtIni = new Date("2022-01-01T00:00:00")
dtFim = new Date("2022-01-31T23:59:00")
break
case 2:
dtIni = new Date("2022-02-01T00:00:00")
dtFim = new Date("2022-02-29T23:59:00")
break
case 3:
dtIni = new Date("2022-03-01T00:00:00")
dtFim = new Date("2022-03-31T23:59:00")
break
case 4:
dtIni = new Date("2022-04-01T00:00:00")
dtFim = new Date("2022-04-30T23:59:00")
break
case 5:
dtIni = new Date("2022-05-01T00:00:00")
dtFim = new Date("2022-05-31T23:59:00")
break
case 6:
dtIni = new Date("2022-06-01T00:00:00")
dtFim = new Date("2022-06-30T23:59:00")
break
case 7:
dtIni = new Date("2022-07-01T00:00:00")
dtFim = new Date("2022-07-31T23:59:00")
break
case 8:
dtIni = new Date("2022-08-01T00:00:00")
dtFim = new Date("2022-08-31T23:59:00")
break
case 9:
dtIni = new Date("2022-09-01T00:00:00")
dtFim = new Date("2022-09-30T00:00:00")
break
case 10:
dtIni = new Date("2022-10-01T00:00:00")
dtFim = new Date("2022-10-31T00:00:00")
break
case 11:
dtIni = new Date("2022-11-01T00:00:00")
dtFim = new Date("2022-11-30T00:00:00")
break
case 12:
dtIni = new Date("2022-12-01T00:00:00")
dtFim = new Date("2022-12-31T23:59:00")
break
default:
if (result.getSelectedButton() === ui.Button.CANCEL || ui.Button.CLOSE) {
Browser.msgBox("⛔️ CANCELADO! ⛔️")
} else {
Browser.msgBox("Informe valor entre 1 e 12")
} return
}
if (result.getSelectedButton() === ui.Button.OK) {
var aba = "Reuniões"
myCalendar(aba, dtIni, dtFim)
ordenaPlan(aba)
}
}
function toStringFromHtml(html) {
var text = html.replace(/<br>/g, '\n')
text = text.replace(/<[^>]+>/g, "")
text = text.replace(/ /g, "")
return text
}
// BUSCA CALENDÁRIO
function myCalendar(planilha, dataini, datafim) {
var calendar = CalendarApp.getCalendarById("gaesp@mppr.mp.br")
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(planilha)
var eventosAgenda = calendar.getEvents(dataini, datafim, { search: 'Reunião' })
var ultLin = sheet.getLastRow() + 1
eventosAgenda = eventosAgenda.concat(calendar.getEvents(dataini, datafim, { search: 'Visita' }))
for (var i = 0; i < eventosAgenda.length; i++) {
StartTime = eventosAgenda[i].getStartTime()
Title = eventosAgenda[i].getTitle()
DescriptionTemp = eventosAgenda[i].getDescription()
Description = toStringFromHtml(DescriptionTemp)
sheet.getRange(ultLin + i, 1).setValue(StartTime)
sheet.getRange(ultLin + i, 5).setValue(Title)
sheet.getRange(ultLin + i, 6).setValue(Description)
var depur = {
'Última linha': ultLin,
'Iterador': i,
'Data': StartTime,
'Título': Title,
'Descrição': Description
}
console.log(depur)
}
}
// ORDENAÇÃO DA ABA REUNIÕES
function ordenaPlan(planilha) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(planilha)
var intervalo = sheet.getRange("A2:H")
intervalo.sort({ column: 1 })
}
New code.gs
function onOpen(e) {
// MENU
let ui = SpreadsheetApp.getUi()
ui.createMenu("⚡")
.addItem("⏹ Atualizar Reuniões", "atualReunioes")
.addItem(' Editar Dados', 'formDados')
.addItem(' Editar Dados', 'formReunioes')
.addToUi()
}
/// UPDATE MEETS
function atualReunioes() {
var ui = SpreadsheetApp.getUi()
var result = [Resp]
//var result = ui.prompt("Informe o mês (1 - 12) para transferir as reuniões", Browser.Buttons.OK_CANCEL)
//var escolha = parseInt(result.getResponseText(), 10)
var form = HtmlService.createTemplateFromFile("html2.html")
var eita = form.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME)
eita.setHeight(335).setWidth(260)
ui.showModalDialog(eita, 'Atualizar Reuniões ⏹')
var checarBotaoOK = ['Button1']
var checarBotaoCancel = ['Button2']
switch (result) {
case 1:
dtIni = new Date("2022-01-01T00:00:00")
dtFim = new Date("2022-01-31T23:59:00")
break
case 2:
dtIni = new Date("2022-02-01T00:00:00")
dtFim = new Date("2022-02-29T23:59:00")
break
case 3:
dtIni = new Date("2022-03-01T00:00:00")
dtFim = new Date("2022-03-31T23:59:00")
break
case 4:
dtIni = new Date("2022-04-01T00:00:00")
dtFim = new Date("2022-04-30T23:59:00")
break
case 5:
dtIni = new Date("2022-05-01T00:00:00")
dtFim = new Date("2022-05-31T23:59:00")
break
case 6:
dtIni = new Date("2022-06-01T00:00:00")
dtFim = new Date("2022-06-30T23:59:00")
break
case 7:
dtIni = new Date("2022-07-01T00:00:00")
dtFim = new Date("2022-07-31T23:59:00")
break
case 8:
dtIni = new Date("2022-08-01T00:00:00")
dtFim = new Date("2022-08-31T23:59:00")
break
case 9:
dtIni = new Date("2022-09-01T00:00:00")
dtFim = new Date("2022-09-30T00:00:00")
break
case 10:
dtIni = new Date("2022-10-01T00:00:00")
dtFim = new Date("2022-10-31T00:00:00")
break
case 11:
dtIni = new Date("2022-11-01T00:00:00")
dtFim = new Date("2022-11-30T00:00:00")
break
case 12:
dtIni = new Date("2022-12-01T00:00:00")
dtFim = new Date("2022-12-31T23:59:00")
break
default:
if (result == null) {
ui.alert("⛔️ CANCELADO! ⛔️")
} else {
ui.alert('Aguarde ⏰', ui.ButtonSet.OK)
} return
}
if (result == Number) {
var aba = "Reuniões"
myCalendar(aba, dtIni, dtFim)
ordenaPlan(aba)
}
}
function toStringFromHtml(html) {
var text = html.replace(/<br>/g, '\n')
text = text.replace(/<[^>]+>/g, "")
text = text.replace(/ /g, "")
return text
}
// SEARCH CALENDAR
function myCalendar(planilha, dataini, datafim) {
var calendar = CalendarApp.getCalendarById("gaesp@mppr.mp.br")
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(planilha)
var eventosAgenda = calendar.getEvents(dataini, datafim, { search: 'Reunião' })
var ultLin = sheet.getLastRow() + 1
eventosAgenda = eventosAgenda.concat(calendar.getEvents(dataini, datafim, { search: 'Visita' }))
for (var i = 0; i < eventosAgenda.length; i++) {
StartTime = eventosAgenda[i].getStartTime()
Title = eventosAgenda[i].getTitle()
DescriptionTemp = eventosAgenda[i].getDescription()
Description = toStringFromHtml(DescriptionTemp)
sheet.getRange(ultLin + i, 1).setValue(StartTime)
sheet.getRange(ultLin + i, 5).setValue(Title)
sheet.getRange(ultLin + i, 6).setValue(Description)
var depur = {
'Última linha': ultLin,
'Iterador': i,
'Data': StartTime,
'Título': Title,
'Descrição': Description
}
console.log(depur)
}
}
function ordenaPlan(planilha) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(planilha)
var intervalo = sheet.getRange("A2:H")
intervalo.sort({ column: 1 })
}
html.html
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<body style="font-family: Segoe, 'Segoe UI', 'DejaVu Sans', 'Trebuchet MS', Verdana, sans-serif; font-size: 90%">
<p>Selecione o mês para transferir as reuniões:<br>
<select id="Campo1" title="Mês" style="width:188px">
<option value = "" disabled selected>Selecione</option>
<option value = "Janeiro">Janeiro</option>
<option value = "Fevereiro">Fevereiro</option>
<option value = "Março">Março</option>
<option value = "Abril">Abril</option>
<option value = "Maio">Maio</option>
<option value = "Junho">Junho</option>
<option value = "Julho">Julho</option>
<option value = "Agosto">Agosto</option>
<option value = "Setembro">Setembro</option>
<option value = "Outubro">Outubro</option>
<option value = "Novembro">Novembro</option>
<option value = "Dezembro">Dezembro</option>
</select>
</p>
<span style="text-align: center">
<button onclick="clickOk()" style="color:#FFFFFF;background:#073763">Ok</button>
<button onclick="google.script.host.close()">Cancelar</button>
</span>
<script>
function clickOk() {
var Resp1 = document.getElementById('Campo1').value
google.script.run.switch(Resp1)
}
</script>
</body>
</html>