1) Не удается удалить дубликаты в событии календаря Google каждый раз, когда я refre sh редактор сценариев 2) Пользовательское меню не работает - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь создать список запланированных презентаций и отслеживать ход каждой презентации (кто, когда и что) с помощью листа Google. В то же время, когда я создаю список, я пытаюсь подключить его и к календарю Google, чтобы каждая презентация создавалась автоматически, когда я вписываю лист Google. Однако дублирование происходит всякий раз, когда я обновляю sh (выполнение кода или отладка). Я попытался использовать Array и Pu sh, чтобы удалить дублирование, но это не сработало.

Что касается отдельной проблемы, мое пользовательское меню тоже не работало, хотя пользовательский интерфейс там есть. Когда я щелкнул, он говорит Функция сценария не найдена: schedulePresentation

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActiveSheet();
  var calendarId = spreadsheet.getRange("W4").getValue(); 
  var eventCal = CalendarApp.getCalendarById(calendarId); 
  var signups = spreadsheet.getRange("R12:T100").getValues(); 
  var existingEvents=Calendar.Events.list(calendarId);
  var eventArray=[]; 
  existingEvents.items.forEach(function(e){eventArray.push(e.summary)}); 
  for (x=0; x<signups.length; x++) {
    var shift = signups[x]; 
    var startTime = shift[0];
    var endTime = shift[1];
    var PresentationTitle = shift[2];
    if(eventArray.indexOf(PresentationTitle)==-1){
      eventCal.createEvent(PresentationTitle,new Date(startTime),new Date(endTime));
}else{
  Logger.log('event exists already');
    var startRow=12; //not sure where this is supposed to be or even needed (but the rationale for this code was to to dynamically detect the rows for duplication)
    var startColumn=20; //column T
    var rowNumber=spreadsheet.getLastRow()-startRow+1;
    var columnNumber=3;
    var signups = spreadsheet.getRange(startRow,startColumn,rowNumber,columnNumber).getValues();
}
}
}

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('Sync to Calendar')
      .addItem('Schedule Presentation', 'schedulePresentation')
      .addItem('Email shift confirmation', 'emailTeam')
      .addSeparator()
      .addSubMenu(ui.createMenu('Delete')
          .addItem('Delete shifts from Calendar', 'clearCalendar'))
      .addToUi();
function schedulePresentation() {
}

function emailTeam() {
}

function clearCalendar() {
}
}
...