Class Ui

यूज़र इंटरफ़ेस (यूआई)

किसी Google ऐप्लिकेशन के लिए यूज़र-इंटरफ़ेस एनवायरमेंट का एक इंस्टेंस. इसकी मदद से स्क्रिप्ट, मेन्यू, डायलॉग, और साइडबार जैसी सुविधाएं जोड़ सकती है. कोई स्क्रिप्ट किसी ओपन एडिटर के मौजूदा इंस्टेंस के लिए सिर्फ़ यूज़र इंटरफ़ेस (यूआई) के साथ इंटरैक्ट कर सकती है, और यह सिर्फ़ तब कर सकती है, जब स्क्रिप्ट एडिटर के लिए कंटेनर-बाउंड हो.

// Display a dialog box with a title, message, input field, and "Yes" and "No" buttons. The
// user can also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

प्रॉपर्टी

प्रॉपर्टीTypeब्यौरा
ButtonButtonपहले से तय किए गए, स्थानीय भाषा के हिसाब से बनाए गए डायलॉग बटन दिखाने वाली एक संख्या, जो सूचना या PromptResponse.getSelectedButton() के ज़रिए दिखाई जाती है. इससे यह पता चलता है कि उपयोगकर्ता ने डायलॉग में किस बटन पर क्लिक किया था.
ButtonSetButtonSetएक या ज़्यादा डायलॉग बटन के पहले से तय और स्थानीय जगह के अनुसार तय किए गए सेट को दिखाने वाला एनम, जिसे चेतावनी या प्रॉम्प्ट में जोड़ा जा सकता है.

तरीके

तरीकारिटर्न टाइपसंक्षिप्त विवरण
alert(prompt)Buttonइससे उपयोगकर्ता के एडिटर में, दिए गए मैसेज और "ठीक है" बटन के साथ एक डायलॉग बॉक्स खुलता है.
alert(prompt, buttons)Buttonयह उपयोगकर्ता के एडिटर में, दिए गए मैसेज और बटन के सेट के साथ एक डायलॉग बॉक्स खोलता है.
alert(title, prompt, buttons)Buttonइससे उपयोगकर्ता के एडिटर में, दिए गए शीर्षक, मैसेज, और बटन के सेट वाला एक डायलॉग बॉक्स खुलता है.
createAddonMenu()Menuऐसा बिल्डर बनाता है जिसका इस्तेमाल एडिटर के एक्सटेंशन मेन्यू में सब-मेन्यू शामिल करने के लिए किया जा सकता है.
createMenu(caption)Menuएक ऐसा बिल्डर बनाता है जिसका इस्तेमाल एडिटर के यूज़र इंटरफ़ेस में मेन्यू जोड़ने के लिए किया जा सकता है.
prompt(prompt)PromptResponseयह उपयोगकर्ता के एडिटर में, दिए गए मैसेज और "ठीक है" बटन के साथ एक इनपुट डायलॉग बॉक्स खोलता है.
prompt(prompt, buttons)PromptResponseयह उपयोगकर्ता के एडिटर में, दिए गए मैसेज और बटन के सेट के साथ एक इनपुट डायलॉग बॉक्स खोलता है.
prompt(title, prompt, buttons)PromptResponseइससे उपयोगकर्ता के एडिटर में, दिए गए शीर्षक, मैसेज, और बटन के सेट वाला एक इनपुट डायलॉग बॉक्स खुलता है.
showModalDialog(userInterface, title)voidइससे उपयोगकर्ता के एडिटर में, कस्टम क्लाइंट-साइड कॉन्टेंट वाला मॉडल डायलॉग बॉक्स खुलता है.
showModelessDialog(userInterface, title)voidयह उपयोगकर्ता के एडिटर में, कस्टम क्लाइंट-साइड कॉन्टेंट वाला एक मोडलेस डायलॉग बॉक्स खोलता है.
showSidebar(userInterface)voidइससे उपयोगकर्ता के एडिटर में, कस्टम क्लाइंट-साइड कॉन्टेंट वाला एक साइडबार खुलता है.

ज़्यादा जानकारी के साथ दस्तावेज़

alert(prompt)

इससे उपयोगकर्ता के एडिटर में, दिए गए मैसेज और "ठीक है" बटन के साथ एक डायलॉग बॉक्स खुलता है. इस तरीके से, डायलॉग बॉक्स खुले रहने पर सर्वर साइड स्क्रिप्ट को निलंबित कर दिया जाता है. जब उपयोगकर्ता डायलॉग को खारिज कर देता है, तब स्क्रिप्ट फिर से शुरू हो जाती है. हालांकि, निलंबन के दौरान Jdbc कनेक्शन और LockService लॉक नहीं बने रहते. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

// Display "Hello, world" in a dialog box with an "OK" button. The user can also close the
// dialog by clicking the close button in its title bar.
SpreadsheetApp.getUi().alert('Hello, world');

पैरामीटर

नामTypeब्यौरा
promptStringडायलॉग बॉक्स में दिखाया जाने वाला मैसेज.

रिटर्न

Button — उपयोगकर्ता ने जिस बटन पर क्लिक किया.


alert(prompt, buttons)

यह उपयोगकर्ता के एडिटर में, दिए गए मैसेज और बटन के सेट के साथ एक डायलॉग बॉक्स खोलता है. इस तरीके से, डायलॉग बॉक्स खुले रहने पर सर्वर साइड स्क्रिप्ट को निलंबित कर दिया जाता है. जब उपयोगकर्ता डायलॉग को खारिज कर देता है, तब स्क्रिप्ट फिर से शुरू हो जाती है. हालांकि, निलंबन के दौरान Jdbc कनेक्शन और LockService लॉक नहीं बने रहते. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

// Display a dialog box with a message and "Yes" and "No" buttons. The user can also close the
// dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Are you sure you want to continue?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response == ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log('The user clicked "No" or the close button in the dialog\'s title bar.');
}

पैरामीटर

नामTypeब्यौरा
promptStringडायलॉग बॉक्स में दिखाया जाने वाला मैसेज.
buttonsButtonSetडायलॉग बॉक्स में दिखाने के लिए सेट किया गया बटन.

रिटर्न

Button — उपयोगकर्ता ने जिस बटन पर क्लिक किया.


alert(title, prompt, buttons)

इससे उपयोगकर्ता के एडिटर में, दिए गए शीर्षक, मैसेज, और बटन के सेट वाला एक डायलॉग बॉक्स खुलता है. यह तरीका, डायलॉग बॉक्स खुला रहने पर सर्वर-साइड स्क्रिप्ट को निलंबित कर देता है. उपयोगकर्ता के डायलॉग को खारिज करने के बाद स्क्रिप्ट फिर से शुरू हो जाती है. हालांकि, निलंबन के दौरान Jdbc कनेक्शन और LockService लॉक नहीं बने रहते. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

// Display a dialog box with a title, message, and "Yes" and "No" buttons. The user can also
// close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Confirm', 'Are you sure you want to continue?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response == ui.Button.YES) {
  Logger.log('The user clicked "Yes."');
} else {
  Logger.log('The user clicked "No" or the close button in the dialog\'s title bar.');
}

पैरामीटर

नामTypeब्यौरा
titleStringडायलॉग बॉक्स के ऊपर दिखाने के लिए टाइटल.
promptStringडायलॉग बॉक्स में दिखाया जाने वाला मैसेज.
buttonsButtonSetडायलॉग बॉक्स में दिखाने के लिए सेट किया गया बटन.

रिटर्न

Button — उपयोगकर्ता ने जिस बटन पर क्लिक किया.


createAddonMenu()

ऐसा बिल्डर बनाता है जिसका इस्तेमाल एडिटर के एक्सटेंशन मेन्यू में सब-मेन्यू शामिल करने के लिए किया जा सकता है. मेन्यू को तब तक अपडेट नहीं किया जाता है, जब तक Menu.addToUi() को कॉल नहीं किया जाता. अगर स्क्रिप्ट ऐड-ऑन के तौर पर चल रही है, तो सब-मेन्यू का नाम, वेब स्टोर में मौजूद ऐड-ऑन के नाम से मेल खाता है. अगर स्क्रिप्ट सीधे दस्तावेज़ से जुड़ी है, तो सब-मेन्यू का नाम, स्क्रिप्ट के नाम से मेल खाता है. ज़्यादा जानकारी के लिए, मेन्यू की गाइड देखें.

// Add an item to the Add-on menu, under a sub-menu whose name is set automatically.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createAddonMenu()
      .addItem('Show', 'showSidebar')
      .addToUi();
}

रिटर्न

Menu — नया मेन्यू बिल्डर.


createMenu(caption)

एक ऐसा बिल्डर बनाता है जिसका इस्तेमाल एडिटर के यूज़र इंटरफ़ेस में मेन्यू जोड़ने के लिए किया जा सकता है. जब तक Menu.addToUi() को कॉल नहीं किया जाता, तब तक यह मेन्यू नहीं जोड़ा जाता. ज़्यादा जानकारी के लिए, मेन्यू की गाइड देखें. टॉप-लेवल मेन्यू का लेबल, हेडलाइन केस (सभी मुख्य शब्द कैपिटल में) में होना चाहिए. हालांकि, सब-मेन्यू का लेबल वाक्य केस में होना चाहिए (सिर्फ़ पहला शब्द कैपिटल लेटर में). अगर स्क्रिप्ट को ऐड-ऑन के तौर पर पब्लिश किया जाता है, तो caption पैरामीटर को अनदेखा कर दिया जाता है. साथ ही, मेन्यू को एक्सटेंशन मेन्यू के सब-मेन्यू के तौर पर जोड़ दिया जाता है, जो createAddonMenu() के बराबर होता है.

// Add a custom menu to the active document, including a separator and a sub-menu.
function onOpen(e) {
  SpreadsheetApp.getUi()
      .createMenu('My Menu')
      .addItem('My menu item', 'myFunction')
      .addSeparator()
      .addSubMenu(SpreadsheetApp.getUi().createMenu('My sub-menu')
          .addItem('One sub-menu item', 'mySecondFunction')
          .addItem('Another sub-menu item', 'myThirdFunction'))
      .addToUi();
}

पैरामीटर

नामTypeब्यौरा
captionStringमेन्यू के लिए लेबल, जिसमें सभी मुख्य शब्द किसी टॉप-लेवल के मेन्यू के लिए बड़े अक्षरों में लिखे गए हों या सब-मेन्यू के लिए सिर्फ़ पहला शब्द कैपिटल लेटर में हो.

रिटर्न

Menu — नया मेन्यू बिल्डर.


prompt(prompt)

यह उपयोगकर्ता के एडिटर में, दिए गए मैसेज और "ठीक है" बटन के साथ एक इनपुट डायलॉग बॉक्स खोलता है. यह तरीका, डायलॉग बॉक्स खुला रहने पर सर्वर-साइड स्क्रिप्ट को निलंबित कर देता है. उपयोगकर्ता के डायलॉग को खारिज करने के बाद स्क्रिप्ट फिर से शुरू हो जाती है. हालांकि, निलंबन के दौरान Jdbc कनेक्शन और LockService लॉक नहीं बने रहते. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

// Display a dialog box with a message, input field, and an "OK" button. The user can also
// close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Enter your name:');

// Process the user's response.
if (response.getSelectedButton() == ui.Button.OK) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

पैरामीटर

नामTypeब्यौरा
promptStringडायलॉग बॉक्स में दिखाया जाने वाला मैसेज.

रिटर्न

PromptResponse — उपयोगकर्ता के जवाब को दिखाता है.


prompt(prompt, buttons)

यह उपयोगकर्ता के एडिटर में, दिए गए मैसेज और बटन के सेट के साथ एक इनपुट डायलॉग बॉक्स खोलता है. यह तरीका, डायलॉग बॉक्स खुला रहने पर सर्वर-साइड स्क्रिप्ट को निलंबित कर देता है. उपयोगकर्ता के डायलॉग को खारिज करने के बाद स्क्रिप्ट फिर से शुरू हो जाती है. हालांकि, निलंबन के दौरान Jdbc कनेक्शन और LockService लॉक नहीं बने रहते. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

// Display a dialog box with a message, input field, and "Yes" and "No" buttons. The user can
// also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

पैरामीटर

नामTypeब्यौरा
promptStringडायलॉग बॉक्स में दिखाया जाने वाला मैसेज.
buttonsButtonSetडायलॉग बॉक्स में दिखाने के लिए सेट किया गया बटन.

रिटर्न

PromptResponse — उपयोगकर्ता के जवाब को दिखाता है.


prompt(title, prompt, buttons)

इससे उपयोगकर्ता के एडिटर में, दिए गए शीर्षक, मैसेज, और बटन के सेट वाला एक इनपुट डायलॉग बॉक्स खुलता है. यह तरीका, डायलॉग बॉक्स के खुले रहने पर सर्वर-साइड स्क्रिप्ट को निलंबित कर देता है. उपयोगकर्ता के डायलॉग खारिज करने के बाद स्क्रिप्ट फिर से शुरू हो जाती है, लेकिन निलंबन के दौरान Jdbc कनेक्शन और LockService लॉक नहीं बने रहते. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

// Display a dialog box with a title, message, input field, and "Yes" and "No" buttons. The
// user can also close the dialog by clicking the close button in its title bar.
var ui = SpreadsheetApp.getUi();
var response = ui.prompt('Getting to know you', 'May I know your name?', ui.ButtonSet.YES_NO);

// Process the user's response.
if (response.getSelectedButton() == ui.Button.YES) {
  Logger.log('The user\'s name is %s.', response.getResponseText());
} else if (response.getSelectedButton() == ui.Button.NO) {
  Logger.log('The user didn\'t want to provide a name.');
} else {
  Logger.log('The user clicked the close button in the dialog\'s title bar.');
}

पैरामीटर

नामTypeब्यौरा
titleStringडायलॉग बॉक्स के ऊपर दिखाने के लिए टाइटल.
promptStringडायलॉग बॉक्स में दिखाया जाने वाला मैसेज.
buttonsButtonSetडायलॉग बॉक्स में दिखाने के लिए सेट किया गया बटन.

रिटर्न

PromptResponse — उपयोगकर्ता के जवाब को दिखाता है.


showModalDialog(userInterface, title)

इससे उपयोगकर्ता के एडिटर में, कस्टम क्लाइंट-साइड कॉन्टेंट वाला मॉडल डायलॉग बॉक्स खुलता है. इस तरीके से, डायलॉग खुलने पर सर्वर-साइड स्क्रिप्ट निलंबित नहीं होती. सर्वर-साइड स्क्रिप्ट से संपर्क करने के लिए, क्लाइंट-साइड कॉम्पोनेंट को HtmlService के लिए google.script API का इस्तेमाल करके, एसिंक्रोनस कॉलबैक बनाने चाहिए. डायलॉग को प्रोग्राम के हिसाब से बंद करने के लिए, HtmlService वेब ऐप्लिकेशन के क्लाइंट साइड पर google.script.host.close() को कॉल करें. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

मॉडल डायलॉग, उपयोगकर्ता को डायलॉग के अलावा किसी भी चीज़ से इंटरैक्ट करने से रोकते हैं. कंट्रास्ट के हिसाब से, साधारण डायलॉग और साइडबार, उपयोगकर्ता को एडिटर से इंटरैक्ट करने देते हैं. करीब सभी मामलों में, बिना मॉडल वाले डायलॉग की तुलना में मॉडल डायलॉग या साइडबार बेहतर विकल्प होता है.

// Display a modal dialog box with custom HtmlService content.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setWidth(250)
    .setHeight(300);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'My add-on');

पैरामीटर

नामTypeब्यौरा
userInterfaceObjectHtmlOutput दिखाने के लिए इंटरफ़ेस दिखाता है.
titleStringडायलॉग का टाइटल; userInterface ऑब्जेक्ट पर setTitle() को कॉल करने पर, किसी भी सेट किए गए टाइटल को बदल देता है.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या ज़्यादा स्कोप से अनुमति देने की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.container.ui

showModelessDialog(userInterface, title)

यह उपयोगकर्ता के एडिटर में, कस्टम क्लाइंट-साइड कॉन्टेंट वाला एक मोडलेस डायलॉग बॉक्स खोलता है. इस तरीके से, डायलॉग बॉक्स खुले रहने पर सर्वर-साइड स्क्रिप्ट निलंबित नहीं होती है. सर्वर-साइड स्क्रिप्ट से कम्यूनिकेट करने के लिए, क्लाइंट-साइड कॉम्पोनेंट को HtmlService के लिए google.script API का इस्तेमाल करके, एसिंक्रोनस कॉलबैक बनाने चाहिए. डायलॉग को प्रोग्राम के हिसाब से बंद करने के लिए, HtmlService वेब ऐप्लिकेशन के क्लाइंट साइड पर google.script.host.close() को कॉल करें. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

मोडलेस डायलॉग की मदद से, उपयोगकर्ता डायलॉग बॉक्स में एडिटर से इंटरैक्ट कर सकता है. वहीं दूसरी ओर, मोडल डायलॉग ऐसा नहीं करते. ज़्यादातर मामलों में, बिना मॉडल वाले डायलॉग की तुलना में मॉडल डायलॉग या साइडबार बेहतर विकल्प होता है.

// Display a modeless dialog box with custom HtmlService content.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setWidth(250)
    .setHeight(300);
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'My add-on');

पैरामीटर

नामTypeब्यौरा
userInterfaceObjectHtmlOutput दिखाने के लिए इंटरफ़ेस दिखाता है.
titleStringडायलॉग का टाइटल; userInterface ऑब्जेक्ट पर setTitle() को कॉल करने पर, किसी भी सेट किए गए टाइटल को बदल देता है.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या ज़्यादा स्कोप से अनुमति देने की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.container.ui

showSidebar(userInterface)

इससे उपयोगकर्ता के एडिटर में, कस्टम क्लाइंट-साइड कॉन्टेंट वाला एक साइडबार खुलता है. इस तरीके से, साइडबार खुला पर सर्वर-साइड स्क्रिप्ट को निलंबित नहीं किया जाता. सर्वर-साइड स्क्रिप्ट से संपर्क करने के लिए, क्लाइंट-साइड कॉम्पोनेंट को HtmlService के लिए google.script API का इस्तेमाल करके, एसिंक्रोनस कॉलबैक बनाने चाहिए. साइडबार को प्रोग्राम के हिसाब से बंद करने के लिए, HtmlService वेब ऐप्लिकेशन के क्लाइंट साइड पर google.script.host.close() को कॉल करें. ज़्यादा जानकारी के लिए, डायलॉग और साइडबार की गाइड देखें.

साइडबार, एडिटर की दाईं ओर उन उपयोगकर्ताओं के लिए दिखता है जिनके एनवायरमेंट में बाईं से दाईं ओर भाषा का इस्तेमाल होता है. साथ ही, ये साइडबार दाईं से बाईं ओर लिखी जाने वाली भाषाओं के लिए एडिटर की बाईं ओर दिखते हैं. स्क्रिप्ट की मदद से दिखाए जाने वाले सभी साइडबार की चौड़ाई 300 पिक्सल होती है.

// Display a sidebar with custom HtmlService content.
var htmlOutput = HtmlService
    .createHtmlOutput('<p>A change of speed, a change of style...</p>')
    .setTitle('My add-on');
SpreadsheetApp.getUi().showSidebar(htmlOutput);

पैरामीटर

नामTypeब्यौरा
userInterfaceObjectHtmlOutput दिखाने के लिए इंटरफ़ेस दिखाता है.

अनुमति देना

इस तरीके का इस्तेमाल करने वाली स्क्रिप्ट को, इनमें से एक या ज़्यादा स्कोप से अनुमति देने की ज़रूरत होती है:

  • https://www.googleapis.com/auth/script.container.ui

काम न करने वाले तरीके