javascript - Problems With Ui.prompt & Ui.alert -
here tried build series of prompts , alerts send sms messages. through input values of 2 variables (1) mobile phone number , (2) deadline making prepayment.
here source:
function promptprepaymentreminder() { var ui = spreadsheetapp.getui(); /* Шаг № 1: ввод мобильного телефона гостя */ var step1 = ui.prompt("Напоминание о внесении страхового депозита: шаг 1 из 3", "Введите номер мобильного телефона гостя. Например, +79522294179.", ui.buttonset.ok); var step1_button = step1.getselectedbutton(); var recipient = step1.getresponsetext(); if (step1_button == ui.button.ok) { /* Когда пользователь нажимает «Ок» на шаге № 1 */ var step2 = ui.prompt("Напоминание о внесении страхового депозита: шаг 2 из 3", "Введите точные дату и время чтобы установить дедлайн по внесению депозита. Например, 12.06.2016, 18:00.", ui.buttonset.ok_cancel); var step2_button = step2.getselectedbutton(); var prepaymentreferencelink = "berdyanskaya56.ru/info/prepayment"; var prepaymentdeadline = step2.getresponsetext(); var message = "Мини-гостиница Бердянская 56. Внесение предоплаты в размере 1000 руб.: " + prepaymentreferencelink + ". Внести необходимо до " + prepaymentdeadline + " по московскому времени."; if (step2_button == ui.button.ok) { /* Когда пользователь нажимает «Ок» на шаге № 2 */ var step3 = ui.alert("Напоминание о внесении страхового депозита: шаг 3 из 3", "Пожалуйста, проверьте детали СМС-напоминания перед отправкой гостю:" + "\n" + "\nНомер получателя: " + recipient + "\n" + "\nТекст оповещения: " + message, ui.buttonset.yes_no); var step3_button = step3.getselectedbutton(); if (step3_button == ui.button.yes) { logger.log("Нажал на yes на третьем шаге."); /* Когда пользователь нажимает «Да» на шаге № 3. Здесь же отправляем и СМС-уведомление. */ try { twiliotextmessenger(recipient, message); ui.alert("СМС-напоминание было успешно отправлено гостю на " + recipient + "."); } catch (err) { ui.alert("Не удалось отправить гостю СМС-напоминание. Пожалуйста, попробуйте снова."); } } else { /* Когда пользователь нажимает «Нет» на шаге № 3 */ var step2 = ui.prompt("Напоминание о внесении страхового депозита: шаг 2 из 3", "Введите точные дату и время чтобы установить дедлайн по внесению депозита. Например, 12.06.2016, 18:00.", ui.buttonset.ok_cancel); var step2_button = step2.getselectedbutton(); var prepaymentdeadline = step2.getresponsetext(); var message = "Мини-гостиница Бердянская 56. Внесение предоплаты в размере 1000 руб.: " + prepaymentreferencelink + ". Внести необходимо до " + prepaymentdeadline + " по московскому времени."; } } else if (step2_button == ui.button.cancel) { /* Когда пользователь нажимает «Отмена» на шаге № 2 */ var step1 = ui.prompt("Напоминание о внесении страхового депозита: шаг 1 из 3", "Введите номер мобильного телефона гостя. Например, +79522294179.", ui.buttonset.ok_cancel); var step1_button = step1.getselectedbutton(); var recipient = step1.getresponsetext(); } else if (step2_button == ui.button.close) { /* Когда пользователь нажимает «Закрыть» на шаге № 2 */ ui.alert("Отправка СМС-оповещения была прервана пользователем на шаге № 2. Чтобы отправить напоминание, попробуйте повторить снова."); } } else if (step1_button == ui.button.close) { /* Когда пользователь нажимает на «Закрыть» на шаге № 1 */ ui.alert("Отправка СМС-оповещения была прервана пользователем на шаге № 1. Чтобы отправить напоминание, попробуйте повторить снова."); } }
but should pay more attention following part:
/* Когда пользователь нажимает «Ок» на шаге № 2 */ var step3 = ui.alert("Напоминание о внесении страхового депозита: шаг 3 из 3", "Пожалуйста, проверьте детали СМС-напоминания перед отправкой гостю:" + "\n" + "\nНомер получателя: " + recipient + "\n" + "\nТекст оповещения: " + message, ui.buttonset.yes_no); var step3_button = step3.getselectedbutton(); if (step3_button == ui.button.yes) { logger.log("Нажал на yes на третьем шаге."); /* Когда пользователь нажимает «Да» на шаге № 3. Здесь же отправляем и СМС-уведомление. */ try { twiliotextmessenger(recipient, message); ui.alert("СМС-напоминание было успешно отправлено гостю на " + recipient + "."); } catch (err) { ui.alert("Не удалось отправить гостю СМС-напоминание. Пожалуйста, попробуйте снова."); } } else { /* Когда пользователь нажимает «Нет» на шаге № 3 */ var step2 = ui.prompt("Напоминание о внесении страхового депозита: шаг 2 из 3", "Введите точные дату и время чтобы установить дедлайн по внесению депозита. Например, 12.06.2016, 18:00.", ui.buttonset.ok_cancel); var step2_button = step2.getselectedbutton(); var prepaymentdeadline = step2.getresponsetext(); var message = "Мини-гостиница Бердянская 56. Внесение предоплаты в размере 1000 руб.: " + prepaymentreferencelink + ". Внести необходимо до " + prepaymentdeadline + " по московскому времени."; }
above can see on third step (you'll see шаг 3 из 3
in russian) ui.alert
ui.buttonset.yes_no
doesn't work in terms of effect of pressing neither yes
nor no
. both of them makes nothing happen while declare 2 types of ui.alert
displayed in each case.
here in short:
ui.alert("СМС-напоминание было успешно отправлено гостю на " + recipient + "."); } catch (err) { ui.alert("Не удалось отправить гостю СМС-напоминание. Пожалуйста, попробуйте снова."); }
here small lesson on how use ui.prompt
, ui.alert
doesn't me :-(: https://developers.google.com/apps-script/reference/base/ui.
please, check whether miss here? how can fix make appear either of ui.alert
s when user presses yes
or no
?
check execution transcript: should getting error from...
var step3_button = step3.getselectedbutton();
...because step3
button enum, not have method properties.
that error:
execution failed: typeerror: cannot find function getselectedbutton in object yes.
compare ui.alert()
ui.prompt()
, , you'll see have different return types. if you'd used latter, promptresponse.getselectedbutton()
have been required button
.
just delete problem line , replace references step3_button
step3
, , should fine.
Comments
Post a Comment