#google-apps-script
#google-apps-script
Вопрос:
Я разрабатываю надстройку Календаря Google, чтобы перечислить все события из выбранных календарей. Теперь я могу получить список календаря текущего пользователя, но я не знаю, как сгенерировать из них группу флажков.
var calendar = CardService.newSelectionInput()
.setType(CardService.SelectionInputType.CHECK_BOX)
.setTitle("Please choose the calendars.")
.setFieldName("calendar")
.addItem("common calendar", "commonCalendar",false)
.addItem("sales department calendar","salesDepartmentCalendar", false)
.addItem("development department calendar", "developmentDepartmentCalendar",false)
Ответ №1:
Если вы ищете способ добавить флажки для каждого календаря в свой список календарей,
Вы можете попробовать этот пример кода:
var card = CardService.newCardBuilder()
.setName("Card name")
.setHeader(CardService.newCardHeader().setTitle("Card title"));
var widget = CardService.newSelectionInput()
.setType(CardService.SelectionInputType.CHECK_BOX)
.setTitle("Please choose the calendars.")
.setFieldName("calendar");
var calendarList = CalendarApp.getAllCalendars();
Logger.log("Calendar Count:" calendarList.length);
//Add checkbox per calendar
for (var i = 0; i < calendarList.length; i ) {
var calendar = calendarList[i];
Logger.log("calendar" i);
//Add Calendar as Item
widget.addItem(calendar.getName(), "calendar" i,false)
}
var cardSection = CardService.newCardSection().setHeader("Section header").addWidget(widget);
return card.addSection(cardSection).build();
Процедура:
- Создайте карточку с заголовком «Название карточки».
- Создайте ввод выбора с именем поля «календарь».
- Зациклите свой список календарей, добавьте элемент в свой ввод выбора на основе названия календаря для каждого календаря в вашем списке. Создайте параметр addItem()
value
на основе индекса цикла календаря (calendar0, calendar1, ….) - Добавьте ввод выбора в качестве виджета с помощью addWidget() в разделе карточки.
- Добавьте раздел на карточку и создайте карточку.
Пример вывода: