תפריטים מותאמים אישית לתוספי עריכה

תוספי עריכה שפורסמו יכולים ליצור אפשרויות תפריט מותאמות אישית בתפריט תוספים של העורך שלהם. אפשר להוסיף תפריט של תוספים באמצעות אמצעי תשלום Ui.createAddonMenu() ולהוסיף אליה פריטים באמצעות Menu.addItem() . בדרך כלל, תפריטים נוצרים בשיטה onOpen(e) של התוסף.

אפשר ליצור תפריטים דינמיים שמשתנים בהתאם לאינטראקציות של המשתמשים או לתוסף . עם זאת, התוספים חייבים ליצור תפריט ראשוני לפני התוסף מורשה על ידי המשתמש. לכן צריך לבדוק את מצב הרשאה לפני בניית התפריטים ב-onOpen(e). לא לנסות לבצע אף פעולה שדורשת הרשאה (למשל, בדיקת הסקריפט Properties) בזמן שהתוסף נמצא ב-ScriptApp.AuthMode.NONE. לצפייה מחזור החיים של ההרשאה לקבלת פרטים נוספים על מצבי ההרשאה ומחזור החיים.

אפשר להיעזר בדוגמה הבאה כדי לבנות תפריט של תוספים דינמיים מצבי הרשאה:

function onOpen(e) {
  var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or SlidesApp or FormApp.
  if (e && e.authMode == ScriptApp.AuthMode.NONE) {
    // Add a normal menu item (works in all authorization modes).
    menu.addItem('Start workflow', 'startWorkflow');
  } else {
    // Add a menu item based on properties (doesn't work in AuthMode.NONE).
    var properties = PropertiesService.getDocumentProperties();
    var workflowStarted = properties.getProperty('workflowStarted');
    if (workflowStarted) {
      menu.addItem('Check workflow status', 'checkWorkflow');
    } else {
      menu.addItem('Start workflow', 'startWorkflow');
    }
    // Record analytics.
    UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
  }
  menu.addToUi();
}