Как динамически генерировать флажки в дополнительной карточке календаря Google?

#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();
 

Процедура:

  1. Создайте карточку с заголовком «Название карточки».
  2. Создайте ввод выбора с именем поля «календарь».
  3. Зациклите свой список календарей, добавьте элемент в свой ввод выбора на основе названия календаря для каждого календаря в вашем списке. Создайте параметр addItem() value на основе индекса цикла календаря (calendar0, calendar1, ….)
  4. Добавьте ввод выбора в качестве виджета с помощью addWidget() в разделе карточки.
  5. Добавьте раздел на карточку и создайте карточку.

Пример вывода:

введите описание изображения здесь