/
code.js
56 lines (49 loc) · 1016 Bytes
/
code.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**
* @file Pass ars to the menu item
* @url
* {@see https://qna.habr.com/q/724017}
*/
var MENU = [
{
caption: 'Пункт меню 1',
functionName: 'itemMenu',
},
{
caption: 'Пункт меню 2',
functionName: 'itemMenu',
},
{
caption: 'Пункт меню 3',
functionName: 'itemMenu',
},
];
/**
*
*/
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Test');
MENU.forEach(function (item, i) {
menu.addItem(item.caption, item.functionName + i);
});
menu.addToUi();
}
/**
*
* @param {{
* item: string,
* order: number
* }} e
*/
function itemMenu(e) {
var caption = e.item.caption;
var order = e.order;
Browser.msgBox(Utilities.formatString('Был нажат %sй пункт меню: %s', order + 1, caption));
}
(function (self) {
MENU.forEach(function (item, i) {
self[item.functionName + i] = function () {
return self[item.functionName]({ item: item, order: i });
};
});
})(this);