@oat-sa/tao-core-ui 1.57.0 → 1.58.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actionbar.js +386 -395
- package/dist/adder.js +21 -19
- package/dist/animable/absorbable/absorbable.js +204 -213
- package/dist/animable/absorbable/css/absorb.css +1 -0
- package/dist/animable/absorbable/css/absorb.css.map +1 -1
- package/dist/animable/pulsable/pulsable.js +168 -177
- package/dist/autocomplete/css/autocomplete.css +1 -0
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +68 -66
- package/dist/badge/badge.js +188 -197
- package/dist/badge/css/badge.css +1 -0
- package/dist/badge/css/badge.css.map +1 -1
- package/dist/breadcrumbs.js +275 -284
- package/dist/btngrouper.js +5 -5
- package/dist/bulkActionPopup.js +490 -495
- package/dist/button.js +283 -291
- package/dist/cascadingComboBox.js +249 -258
- package/dist/ckeditor/ckConfigurator.js +42 -20
- package/dist/ckeditor/dtdHandler.js +11 -9
- package/dist/class/selector.js +441 -450
- package/dist/component/resizable.js +1 -1
- package/dist/component/windowed.js +285 -294
- package/dist/component.js +419 -428
- package/dist/contextualPopup.js +417 -426
- package/dist/dashboard.js +300 -309
- package/dist/datalist.js +753 -762
- package/dist/datatable/filterStrategy/multiple.js +1 -1
- package/dist/datatable/filterStrategy/single.js +1 -1
- package/dist/datatable.js +1527 -1550
- package/dist/dateRange/dateRange.js +393 -402
- package/dist/datetime/picker.js +665 -672
- package/dist/deleter.js +368 -377
- package/dist/destination/selector.js +286 -295
- package/dist/dialog/alert.js +3 -3
- package/dist/dialog/confirm.js +1 -1
- package/dist/dialog/confirmDelete.js +216 -225
- package/dist/dialog.js +650 -654
- package/dist/disabler.js +8 -8
- package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +166 -175
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +518 -527
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +380 -389
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +539 -548
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +369 -378
- package/dist/documentViewer/providers/pdfViewer.js +184 -193
- package/dist/documentViewer.js +292 -301
- package/dist/dropdown.js +383 -392
- package/dist/durationer.js +5 -5
- package/dist/dynamicComponent.js +597 -598
- package/dist/feedback.js +356 -362
- package/dist/figure/FigureStateActive.js +117 -108
- package/dist/filesender.js +2 -2
- package/dist/filter.js +230 -239
- package/dist/form/dropdownForm.js +355 -357
- package/dist/form/form.js +919 -690
- package/dist/form/simpleForm.js +1 -1
- package/dist/form/validator/renderer.js +233 -235
- package/dist/form/validator/validator.js +257 -189
- package/dist/form/widget/definitions.js +1 -1
- package/dist/form/widget/providers/checkBox.js +254 -259
- package/dist/form/widget/providers/comboBox.js +187 -192
- package/dist/form/widget/providers/default.js +8 -9
- package/dist/form/widget/providers/hidden.js +170 -179
- package/dist/form/widget/providers/hiddenBox.js +262 -267
- package/dist/form/widget/providers/radioBox.js +216 -225
- package/dist/form/widget/providers/textArea.js +187 -196
- package/dist/form/widget/providers/textBox.js +2 -3
- package/dist/form/widget/widget.js +473 -475
- package/dist/formValidator/formValidator.js +1 -1
- package/dist/formValidator/highlighters/message.js +1 -1
- package/dist/generis/form/form.js +314 -323
- package/dist/generis/validator/validator.js +209 -218
- package/dist/generis/widget/checkBox/checkBox.js +218 -227
- package/dist/generis/widget/comboBox/comboBox.js +179 -188
- package/dist/generis/widget/hiddenBox/hiddenBox.js +220 -229
- package/dist/generis/widget/textBox/textBox.js +169 -178
- package/dist/generis/widget/widget.js +246 -255
- package/dist/groupedComboBox.js +222 -231
- package/dist/groupvalidator.js +2 -2
- package/dist/highlighter.js +967 -958
- package/dist/image/ImgStateActive/helper.js +7 -5
- package/dist/image/ImgStateActive/initHelper.js +49 -43
- package/dist/image/ImgStateActive/initMediaEditor.js +24 -20
- package/dist/image/ImgStateActive/mediaSizer.js +14 -12
- package/dist/image/ImgStateActive.js +72 -70
- package/dist/incrementer.js +6 -6
- package/dist/inplacer.js +6 -6
- package/dist/itemButtonList/css/item-button-list.css +1 -0
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +439 -435
- package/dist/keyNavigation/navigableDomElement.js +51 -38
- package/dist/keyNavigation/navigator.js +85 -70
- package/dist/listbox.js +460 -469
- package/dist/liststyler.js +8 -8
- package/dist/loadingButton/loadingButton.js +209 -218
- package/dist/lock.js +476 -485
- package/dist/login/login.js +475 -484
- package/dist/maths/calculator/basicCalculator.js +235 -244
- package/dist/maths/calculator/calculatorComponent.js +3 -3
- package/dist/maths/calculator/core/board.js +772 -781
- package/dist/maths/calculator/core/expression.js +476 -485
- package/dist/maths/calculator/core/labels.js +228 -237
- package/dist/maths/calculator/core/tokenizer.js +1 -1
- package/dist/maths/calculator/core/tokens.js +163 -170
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +244 -253
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +279 -288
- package/dist/maths/calculator/scientificCalculator.js +327 -336
- package/dist/mediaEditor/mediaEditorComponent.js +238 -245
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +7 -7
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +229 -235
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +580 -589
- package/dist/mediaplayer/players/html5.js +666 -675
- package/dist/mediaplayer/players/youtube.js +419 -424
- package/dist/mediaplayer/support.js +11 -10
- package/dist/mediaplayer/utils/reminder.js +14 -13
- package/dist/mediaplayer/utils/timeObserver.js +10 -11
- package/dist/mediaplayer/youtubeManager.js +164 -145
- package/dist/mediaplayer.js +1565 -1520
- package/dist/mediasizer.js +669 -678
- package/dist/modal.js +10 -17
- package/dist/pageSizeSelector.js +219 -228
- package/dist/pagination/providers/pages.js +280 -289
- package/dist/pagination/providers/simple.js +192 -201
- package/dist/previewer.js +30 -30
- package/dist/progressbar.js +4 -4
- package/dist/report.js +347 -356
- package/dist/resource/filters.js +271 -280
- package/dist/resource/list.js +1264 -1273
- package/dist/resource/selector.js +865 -874
- package/dist/resource/tree.js +1483 -1492
- package/dist/resourcemgr/fileBrowser.js +564 -569
- package/dist/resourcemgr/filePreview.js +16 -16
- package/dist/resourcemgr/fileSelector.js +515 -524
- package/dist/resourcemgr/util/updatePermissions.js +2 -2
- package/dist/resourcemgr.js +306 -315
- package/dist/searchModal/advancedSearch.js +796 -767
- package/dist/searchModal.js +597 -549
- package/dist/switch/switch.js +298 -307
- package/dist/tabs.js +598 -575
- package/dist/taskQueue/status.js +312 -321
- package/dist/taskQueue/table.js +375 -384
- package/dist/taskQueue/taskQueueModel.js +488 -472
- package/dist/taskQueueButton/taskable.js +264 -273
- package/dist/taskQueueButton/treeButton.js +189 -198
- package/dist/themeLoader.js +24 -23
- package/dist/themes.js +1 -1
- package/dist/toggler.js +3 -3
- package/dist/tooltip.js +295 -304
- package/dist/transformer.js +2 -2
- package/dist/tristateCheckboxGroup.js +311 -320
- package/dist/uploader.js +687 -696
- package/dist/validator/Report.js +1 -1
- package/dist/validator/Validator.js +3 -3
- package/dist/validator/validators.js +9 -9
- package/dist/validator.js +240 -230
- package/dist/waitForMedia.js +1 -1
- package/package.json +3 -3
- package/scss/ckeditor/skins/tao/scss/inc/_menu.scss +51 -27
- package/scss/ckeditor/skins/tao/scss/inc/_panel.scss +16 -5
- package/scss/ckeditor/skins/tao/scss/inc/_richcombo.scss +0 -2
- package/scss/ckeditor/skins/tao/scss/inc/_toolbar.scss +15 -3
- package/src/animable/absorbable/css/absorb.css +1 -0
- package/src/animable/absorbable/css/absorb.css.map +1 -1
- package/src/autocomplete/css/autocomplete.css +1 -0
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/badge/css/badge.css +1 -0
- package/src/badge/css/badge.css.map +1 -1
- package/src/ckeditor/ckConfigurator.js +24 -1
- package/src/itemButtonList/css/item-button-list.css +1 -0
- package/src/itemButtonList/css/item-button-list.css.map +1 -1
- package/scss/.DS_Store +0 -0
- package/src/.DS_Store +0 -0
package/dist/actionbar.js
CHANGED
|
@@ -1,456 +1,447 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify/purify'], function ($$1, _, component, Handlebars, __, DOMPurify) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
6
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
7
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
8
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
9
|
+
|
|
10
|
+
function _typeof(obj) {
|
|
11
|
+
"@babel/helpers - typeof";
|
|
12
|
+
|
|
13
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
14
|
+
return typeof obj;
|
|
15
|
+
} : function (obj) {
|
|
16
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
17
|
+
}, _typeof(obj);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function Helpers0 (hb) {
|
|
21
|
+
//register a i18n helper
|
|
22
|
+
hb.registerHelper('__', function (key) {
|
|
23
|
+
return __(key);
|
|
24
|
+
});
|
|
10
25
|
/**
|
|
11
|
-
*
|
|
12
|
-
* modify it under the terms of the GNU General Public License
|
|
13
|
-
* as published by the Free Software Foundation; under version 2
|
|
14
|
-
* of the License (non-upgradable).
|
|
15
|
-
*
|
|
16
|
-
* This program is distributed in the hope that it will be useful,
|
|
17
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
-
* GNU General Public License for more details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU General Public License
|
|
22
|
-
* along with this program; if not, write to the Free Software
|
|
23
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
24
|
-
*
|
|
25
|
-
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
26
|
-
*
|
|
26
|
+
* Register dompurify helper
|
|
27
27
|
*
|
|
28
|
+
* https://github.com/cure53/DOMPurify
|
|
29
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
30
|
+
* to make output safe for template systems
|
|
28
31
|
*/
|
|
29
|
-
function Helpers0 (hb) {
|
|
30
|
-
//register a i18n helper
|
|
31
|
-
hb.registerHelper('__', function (key) {
|
|
32
|
-
return __(key);
|
|
33
|
-
});
|
|
34
|
-
/**
|
|
35
|
-
* Register dompurify helper
|
|
36
|
-
*
|
|
37
|
-
* https://github.com/cure53/DOMPurify
|
|
38
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
39
|
-
* to make output safe for template systems
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
hb.registerHelper('dompurify', function (context) {
|
|
43
|
-
return DOMPurify.sanitize(context);
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* Register join helper
|
|
47
|
-
*
|
|
48
|
-
* Example :
|
|
49
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
50
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
51
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
52
|
-
*/
|
|
53
|
-
|
|
54
|
-
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
55
|
-
var fragments = [];
|
|
56
|
-
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
57
|
-
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
58
|
-
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
59
|
-
|
|
60
|
-
_.forIn(arr, function (value, key) {
|
|
61
|
-
var fragment = '';
|
|
62
|
-
|
|
63
|
-
if (value !== null || value !== undefined) {
|
|
64
|
-
if (typeof value === 'boolean') {
|
|
65
|
-
value = value ? 'true' : 'false';
|
|
66
|
-
} else if (typeof value === 'object') {
|
|
67
|
-
value = _.values(value).join(' ');
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
value = '';
|
|
71
|
-
}
|
|
72
32
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
33
|
+
hb.registerHelper('dompurify', function (context) {
|
|
34
|
+
return DOMPurify.sanitize(context);
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Register join helper
|
|
38
|
+
*
|
|
39
|
+
* Example :
|
|
40
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
41
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
42
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
43
|
+
*/
|
|
76
44
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
45
|
+
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
46
|
+
var fragments = [];
|
|
47
|
+
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
48
|
+
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
49
|
+
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
80
50
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
//it also adds a local variable "i" as the index in each iteration loop
|
|
51
|
+
_.forIn(arr, function (value, key) {
|
|
52
|
+
var fragment = '';
|
|
84
53
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
54
|
+
if (value !== null || value !== undefined) {
|
|
55
|
+
if (typeof value === 'boolean') {
|
|
56
|
+
value = value ? 'true' : 'false';
|
|
57
|
+
} else if (_typeof(value) === 'object') {
|
|
58
|
+
value = _.values(value).join(' ');
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
value = '';
|
|
62
|
+
}
|
|
90
63
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
i: i
|
|
94
|
-
}));
|
|
64
|
+
if (keyValueGlue !== undefined) {
|
|
65
|
+
fragment += key + keyValueGlue;
|
|
95
66
|
}
|
|
96
67
|
|
|
97
|
-
|
|
68
|
+
fragment += wrapper + value + wrapper;
|
|
69
|
+
fragments.push(fragment);
|
|
98
70
|
});
|
|
99
|
-
hb.registerHelper('equal', function (var1, var2, options) {
|
|
100
|
-
if (var1 == var2) {
|
|
101
|
-
return options.fn(this);
|
|
102
|
-
} else {
|
|
103
|
-
return options.inverse(this);
|
|
104
|
-
}
|
|
105
|
-
}); // register a "get property" helper
|
|
106
|
-
// it gets the named property from the provided context
|
|
107
71
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
// it checks if value is in array
|
|
72
|
+
return fragments.join(fragmentGlue);
|
|
73
|
+
}); //register a classic "for loop" helper
|
|
74
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
112
75
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
76
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
77
|
+
var ret = '';
|
|
78
|
+
startIndex = parseInt(startIndex);
|
|
79
|
+
stopIndex = parseInt(stopIndex);
|
|
80
|
+
increment = parseInt(increment);
|
|
119
81
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
125
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
126
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
127
|
-
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
128
|
-
|
|
129
|
-
function program1(depth0,data) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
return "vertical-action-bar";
|
|
82
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
83
|
+
ret += options.fn(_.extend({}, this, {
|
|
84
|
+
i: i
|
|
85
|
+
}));
|
|
133
86
|
}
|
|
134
87
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
88
|
+
return ret;
|
|
89
|
+
});
|
|
90
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
91
|
+
if (var1 == var2) {
|
|
92
|
+
return options.fn(this);
|
|
93
|
+
} else {
|
|
94
|
+
return options.inverse(this);
|
|
139
95
|
}
|
|
96
|
+
}); // register a "get property" helper
|
|
97
|
+
// it gets the named property from the provided context
|
|
140
98
|
|
|
141
|
-
function
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.conditional), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
|
|
146
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
147
|
-
buffer += "\" data-control=\"";
|
|
148
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
149
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
150
|
-
buffer += escapeExpression(stack1)
|
|
151
|
-
+ "\" ";
|
|
152
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
|
|
153
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
154
|
-
buffer += ">\n ";
|
|
155
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});
|
|
156
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
157
|
-
buffer += "\n ";
|
|
158
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
159
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
160
|
-
buffer += escapeExpression(stack1)
|
|
161
|
-
+ "\n </button>\n ";
|
|
162
|
-
return buffer;
|
|
163
|
-
}
|
|
164
|
-
function program6(depth0,data) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return " conditional hidden";
|
|
168
|
-
}
|
|
99
|
+
hb.registerHelper('property', function (name, context) {
|
|
100
|
+
return context[name] || '';
|
|
101
|
+
}); // register an 'includes' helper
|
|
102
|
+
// it checks if value is in array
|
|
169
103
|
|
|
170
|
-
function
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
buffer += " title=\"";
|
|
174
|
-
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
175
|
-
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
176
|
-
buffer += escapeExpression(stack1)
|
|
177
|
-
+ "\"";
|
|
178
|
-
return buffer;
|
|
104
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
105
|
+
if (_.contains(haystack, needle)) {
|
|
106
|
+
return options.fn(this);
|
|
179
107
|
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (!Helpers0.__initialized) {
|
|
112
|
+
Helpers0(Handlebars);
|
|
113
|
+
Helpers0.__initialized = true;
|
|
114
|
+
}
|
|
115
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
116
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
117
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
118
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
119
|
+
|
|
120
|
+
function program1(depth0,data) {
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
return "vertical-action-bar";
|
|
124
|
+
}
|
|
180
125
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
187
|
-
buffer += escapeExpression(stack1)
|
|
188
|
-
+ "\"></span>";
|
|
189
|
-
return buffer;
|
|
190
|
-
}
|
|
126
|
+
function program3(depth0,data) {
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
return "horizontal-action-bar";
|
|
130
|
+
}
|
|
191
131
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
132
|
+
function program5(depth0,data) {
|
|
133
|
+
|
|
134
|
+
var buffer = "", stack1, helper;
|
|
135
|
+
buffer += "\n <button class=\"btn-info small ";
|
|
136
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.conditional), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
|
|
137
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
138
|
+
buffer += "\" data-control=\"";
|
|
139
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
140
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
141
|
+
buffer += escapeExpression(stack1)
|
|
142
|
+
+ "\" ";
|
|
143
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
|
|
144
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
145
|
+
buffer += ">\n ";
|
|
146
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});
|
|
147
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
148
|
+
buffer += "\n ";
|
|
149
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
150
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
151
|
+
buffer += escapeExpression(stack1)
|
|
152
|
+
+ "\n </button>\n ";
|
|
153
|
+
return buffer;
|
|
154
|
+
}
|
|
155
|
+
function program6(depth0,data) {
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
return " conditional hidden";
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function program8(depth0,data) {
|
|
162
|
+
|
|
163
|
+
var buffer = "", stack1, helper;
|
|
164
|
+
buffer += " title=\"";
|
|
165
|
+
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
166
|
+
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
167
|
+
buffer += escapeExpression(stack1)
|
|
168
|
+
+ "\"";
|
|
169
|
+
return buffer;
|
|
204
170
|
}
|
|
205
171
|
|
|
172
|
+
function program10(depth0,data) {
|
|
173
|
+
|
|
174
|
+
var buffer = "", stack1, helper;
|
|
175
|
+
buffer += "<span class=\"icon icon-";
|
|
176
|
+
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
177
|
+
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
178
|
+
buffer += escapeExpression(stack1)
|
|
179
|
+
+ "\"></span>";
|
|
180
|
+
return buffer;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
buffer += "<aside class=\"action-bar ";
|
|
184
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.vertical), {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
|
|
185
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
186
|
+
buffer += " clearfix\">\n ";
|
|
187
|
+
stack1 = helpers.each.call(depth0, (depth0 && depth0.buttons), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
188
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
189
|
+
buffer += "\n</aside>\n";
|
|
190
|
+
return buffer;
|
|
191
|
+
});
|
|
192
|
+
function mainTpl(data, options, asString) {
|
|
193
|
+
var html = Template(data, options);
|
|
194
|
+
return (asString || true) ? html : $(html);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/**
|
|
198
|
+
* This program is free software; you can redistribute it and/or
|
|
199
|
+
* modify it under the terms of the GNU General Public License
|
|
200
|
+
* as published by the Free Software Foundation; under version 2
|
|
201
|
+
* of the License (non-upgradable).
|
|
202
|
+
*
|
|
203
|
+
* This program is distributed in the hope that it will be useful,
|
|
204
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
205
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
206
|
+
* GNU General Public License for more details.
|
|
207
|
+
*
|
|
208
|
+
* You should have received a copy of the GNU General Public License
|
|
209
|
+
* along with this program; if not, write to the Free Software
|
|
210
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
211
|
+
*
|
|
212
|
+
* Copyright (c) 2016 (original work) Open Assessment Technologies SA ;
|
|
213
|
+
*/
|
|
214
|
+
/**
|
|
215
|
+
* Defines an action bar
|
|
216
|
+
* @type {Object}
|
|
217
|
+
*/
|
|
218
|
+
|
|
219
|
+
var actionbar = {
|
|
206
220
|
/**
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* of the License (non-upgradable).
|
|
211
|
-
*
|
|
212
|
-
* This program is distributed in the hope that it will be useful,
|
|
213
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
214
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
215
|
-
* GNU General Public License for more details.
|
|
216
|
-
*
|
|
217
|
-
* You should have received a copy of the GNU General Public License
|
|
218
|
-
* along with this program; if not, write to the Free Software
|
|
219
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
220
|
-
*
|
|
221
|
-
* Copyright (c) 2016 (original work) Open Assessment Technologies SA ;
|
|
221
|
+
* Gets the definition of a button
|
|
222
|
+
* @param {String} id - The identifier of the button
|
|
223
|
+
* @returns {Object|undefined}
|
|
222
224
|
*/
|
|
225
|
+
getButton: function getButton(id) {
|
|
226
|
+
if (this.is('rendered')) {
|
|
227
|
+
return this.buttons[id];
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
|
|
223
231
|
/**
|
|
224
|
-
*
|
|
225
|
-
* @
|
|
232
|
+
* Gets the DOM element of a button
|
|
233
|
+
* @param {String} id - The identifier of the button
|
|
234
|
+
* @returns {jQuery|undefined}
|
|
226
235
|
*/
|
|
236
|
+
getButtonElement: function getButtonElement(id) {
|
|
237
|
+
if (this.is('rendered')) {
|
|
238
|
+
return this.controls.$buttons[id];
|
|
239
|
+
}
|
|
240
|
+
},
|
|
227
241
|
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
if (this.is('rendered')) {
|
|
236
|
-
return this.buttons[id];
|
|
237
|
-
}
|
|
238
|
-
},
|
|
239
|
-
|
|
240
|
-
/**
|
|
241
|
-
* Gets the DOM element of a button
|
|
242
|
-
* @param {String} id - The identifier of the button
|
|
243
|
-
* @returns {jQuery|undefined}
|
|
244
|
-
*/
|
|
245
|
-
getButtonElement: function getButtonElement(id) {
|
|
246
|
-
if (this.is('rendered')) {
|
|
247
|
-
return this.controls.$buttons[id];
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Shows a button
|
|
253
|
-
* @param {String} id - The identifier of the button
|
|
254
|
-
* @returns {actionbar}
|
|
255
|
-
*/
|
|
256
|
-
showButton: function showButton(id) {
|
|
257
|
-
var $btn = this.getButtonElement(id);
|
|
258
|
-
|
|
259
|
-
if ($btn) {
|
|
260
|
-
$btn.removeClass('hidden');
|
|
261
|
-
}
|
|
242
|
+
/**
|
|
243
|
+
* Shows a button
|
|
244
|
+
* @param {String} id - The identifier of the button
|
|
245
|
+
* @returns {actionbar}
|
|
246
|
+
*/
|
|
247
|
+
showButton: function showButton(id) {
|
|
248
|
+
var $btn = this.getButtonElement(id);
|
|
262
249
|
|
|
263
|
-
|
|
264
|
-
|
|
250
|
+
if ($btn) {
|
|
251
|
+
$btn.removeClass('hidden');
|
|
252
|
+
}
|
|
265
253
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
* @param {String} id - The identifier of the button
|
|
269
|
-
* @returns {actionbar}
|
|
270
|
-
*/
|
|
271
|
-
hideButton: function hideButton(id) {
|
|
272
|
-
var $btn = this.getButtonElement(id);
|
|
254
|
+
return this;
|
|
255
|
+
},
|
|
273
256
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
257
|
+
/**
|
|
258
|
+
* Hides a button
|
|
259
|
+
* @param {String} id - The identifier of the button
|
|
260
|
+
* @returns {actionbar}
|
|
261
|
+
*/
|
|
262
|
+
hideButton: function hideButton(id) {
|
|
263
|
+
var $btn = this.getButtonElement(id);
|
|
277
264
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
/**
|
|
282
|
-
* Toggles a button according to a condition
|
|
283
|
-
* @param {String} id - The identifier of the button
|
|
284
|
-
* @param {Boolean} condition - If the condition is `true` the button will be displayed
|
|
285
|
-
* @returns {actionbar}
|
|
286
|
-
*/
|
|
287
|
-
toggleButton: function toggleButton(id, condition) {
|
|
288
|
-
var $btn = this.getButtonElement(id);
|
|
289
|
-
|
|
290
|
-
if ($btn) {
|
|
291
|
-
if (undefined !== condition) {
|
|
292
|
-
condition = !condition;
|
|
293
|
-
}
|
|
265
|
+
if ($btn) {
|
|
266
|
+
$btn.addClass('hidden');
|
|
267
|
+
}
|
|
294
268
|
|
|
295
|
-
|
|
296
|
-
|
|
269
|
+
return this;
|
|
270
|
+
},
|
|
297
271
|
|
|
298
|
-
|
|
299
|
-
|
|
272
|
+
/**
|
|
273
|
+
* Toggles a button according to a condition
|
|
274
|
+
* @param {String} id - The identifier of the button
|
|
275
|
+
* @param {Boolean} condition - If the condition is `true` the button will be displayed
|
|
276
|
+
* @returns {actionbar}
|
|
277
|
+
*/
|
|
278
|
+
toggleButton: function toggleButton(id, condition) {
|
|
279
|
+
var $btn = this.getButtonElement(id);
|
|
300
280
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
*/
|
|
305
|
-
showConditionals: function showConditionals() {
|
|
306
|
-
if (this.is('rendered')) {
|
|
307
|
-
this.controls.$conditional.removeClass('hidden');
|
|
281
|
+
if ($btn) {
|
|
282
|
+
if (undefined !== condition) {
|
|
283
|
+
condition = !condition;
|
|
308
284
|
}
|
|
309
285
|
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Hides the conditional buttons
|
|
315
|
-
* @returns {actionbar}
|
|
316
|
-
*/
|
|
317
|
-
hideConditionals: function hideConditionals() {
|
|
318
|
-
if (this.is('rendered')) {
|
|
319
|
-
this.controls.$conditional.addClass('hidden');
|
|
320
|
-
}
|
|
286
|
+
$btn.toggleClass('hidden', condition);
|
|
287
|
+
}
|
|
321
288
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
/**
|
|
326
|
-
* Toggles the conditional buttons according to a condition
|
|
327
|
-
* @param {Boolean} condition - If the condition is `true` the conditional buttons will be displayed
|
|
328
|
-
* @returns {actionbar}
|
|
329
|
-
*/
|
|
330
|
-
toggleConditionals: function toggleConditionals(condition) {
|
|
331
|
-
if (this.is('rendered')) {
|
|
332
|
-
if (undefined !== condition) {
|
|
333
|
-
condition = !condition;
|
|
334
|
-
}
|
|
289
|
+
return this;
|
|
290
|
+
},
|
|
335
291
|
|
|
336
|
-
|
|
337
|
-
|
|
292
|
+
/**
|
|
293
|
+
* Shows the conditional buttons
|
|
294
|
+
* @returns {actionbar}
|
|
295
|
+
*/
|
|
296
|
+
showConditionals: function showConditionals() {
|
|
297
|
+
if (this.is('rendered')) {
|
|
298
|
+
this.controls.$conditional.removeClass('hidden');
|
|
299
|
+
}
|
|
338
300
|
|
|
339
|
-
|
|
340
|
-
|
|
301
|
+
return this;
|
|
302
|
+
},
|
|
341
303
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
304
|
+
/**
|
|
305
|
+
* Hides the conditional buttons
|
|
306
|
+
* @returns {actionbar}
|
|
307
|
+
*/
|
|
308
|
+
hideConditionals: function hideConditionals() {
|
|
309
|
+
if (this.is('rendered')) {
|
|
310
|
+
this.controls.$conditional.addClass('hidden');
|
|
311
|
+
}
|
|
350
312
|
|
|
351
|
-
|
|
352
|
-
|
|
313
|
+
return this;
|
|
314
|
+
},
|
|
353
315
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
316
|
+
/**
|
|
317
|
+
* Toggles the conditional buttons according to a condition
|
|
318
|
+
* @param {Boolean} condition - If the condition is `true` the conditional buttons will be displayed
|
|
319
|
+
* @returns {actionbar}
|
|
320
|
+
*/
|
|
321
|
+
toggleConditionals: function toggleConditionals(condition) {
|
|
322
|
+
if (this.is('rendered')) {
|
|
323
|
+
if (undefined !== condition) {
|
|
324
|
+
condition = !condition;
|
|
361
325
|
}
|
|
362
326
|
|
|
363
|
-
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* Toggles all the buttons according to a condition
|
|
368
|
-
* @param {Boolean} condition - If the condition is `true` the buttons will be displayed
|
|
369
|
-
* @returns {actionbar}
|
|
370
|
-
*/
|
|
371
|
-
toggleAll: function toggleAll(condition) {
|
|
372
|
-
if (this.is('rendered')) {
|
|
373
|
-
if (undefined !== condition) {
|
|
374
|
-
condition = !condition;
|
|
375
|
-
}
|
|
327
|
+
this.controls.$conditional.toggleClass('hidden', condition);
|
|
328
|
+
}
|
|
376
329
|
|
|
377
|
-
|
|
378
|
-
|
|
330
|
+
return this;
|
|
331
|
+
},
|
|
379
332
|
|
|
380
|
-
|
|
333
|
+
/**
|
|
334
|
+
* Shows all the buttons
|
|
335
|
+
* @returns {actionbar}
|
|
336
|
+
*/
|
|
337
|
+
showAll: function showAll() {
|
|
338
|
+
if (this.is('rendered')) {
|
|
339
|
+
this.controls.$all.removeClass('hidden');
|
|
381
340
|
}
|
|
382
|
-
|
|
341
|
+
|
|
342
|
+
return this;
|
|
343
|
+
},
|
|
344
|
+
|
|
383
345
|
/**
|
|
384
|
-
*
|
|
385
|
-
* @param {Object} config
|
|
386
|
-
* @param {Array} config.buttons - The list of buttons to display.
|
|
387
|
-
* @param {String} config.buttons.id - The id of the button
|
|
388
|
-
* @param {String} config.buttons.label - The text displayed in the button
|
|
389
|
-
* @param {String} config.buttons.icon - An optional icon displayed in the button
|
|
390
|
-
* @param {String} config.buttons.title - An optional tooltip displayed on the button
|
|
391
|
-
* @param {Boolean} config.buttons.conditional - The button is hidden by default and must be displayed later
|
|
392
|
-
* @param {Function} config.buttons.action - An action called when the button is clicked
|
|
393
|
-
* @param {Boolean} [config.vertical] - Displays the action bar vertically
|
|
346
|
+
* Hides all the buttons
|
|
394
347
|
* @returns {actionbar}
|
|
395
|
-
*
|
|
396
|
-
* @event init - Emitted when the component is initialized
|
|
397
|
-
* @event destroy - Emitted when the component is destroying
|
|
398
|
-
* @event render - Emitted when the component is rendered
|
|
399
|
-
* @event button - Emitted when a button is clicked
|
|
400
|
-
* @event show - Emitted when the component is shown
|
|
401
|
-
* @event hide - Emitted when the component is hidden
|
|
402
|
-
* @event enable - Emitted when the component is enabled
|
|
403
|
-
* @event disable - Emitted when the component is disabled
|
|
404
|
-
* @event template - Emitted when the template is changed
|
|
405
348
|
*/
|
|
349
|
+
hideAll: function hideAll() {
|
|
350
|
+
if (this.is('rendered')) {
|
|
351
|
+
this.controls.$all.addClass('hidden');
|
|
352
|
+
}
|
|
406
353
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
.on('destroy', function () {
|
|
410
|
-
this.buttons = null;
|
|
411
|
-
this.controls = null;
|
|
412
|
-
}) // renders the component
|
|
413
|
-
.on('render', function () {
|
|
414
|
-
var self = this;
|
|
415
|
-
var $component = this.getElement(); // vertical or horizontal ?
|
|
416
|
-
|
|
417
|
-
this.setState('horizontal', $component.hasClass('horizontal-action-bar'));
|
|
418
|
-
this.setState('vertical', $component.hasClass('vertical-action-bar')); // get access to all needed placeholders
|
|
419
|
-
|
|
420
|
-
this.buttons = {};
|
|
421
|
-
this.controls = {
|
|
422
|
-
$buttons: {},
|
|
423
|
-
$conditional: $component.find('button.conditional'),
|
|
424
|
-
$all: $component.find('button')
|
|
425
|
-
};
|
|
426
|
-
|
|
427
|
-
_.forEach(this.config.buttons, function (button) {
|
|
428
|
-
self.buttons[button.id] = button;
|
|
429
|
-
self.controls.$buttons[button.id] = $component.find('[data-control="' + button.id + '"]');
|
|
430
|
-
}); // click on a button
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
this.$component.on('click', 'button', function (e) {
|
|
434
|
-
var $this = $$1(this);
|
|
435
|
-
var buttonId = $this.closest('button').data('control');
|
|
436
|
-
var button = self.getButton(buttonId);
|
|
437
|
-
e.preventDefault();
|
|
438
|
-
|
|
439
|
-
if (button && button.action) {
|
|
440
|
-
button.action.call(self, buttonId, button);
|
|
441
|
-
}
|
|
442
|
-
/**
|
|
443
|
-
* @event actionbar#button
|
|
444
|
-
* @param {String} buttonId
|
|
445
|
-
* @param {Object} button
|
|
446
|
-
*/
|
|
354
|
+
return this;
|
|
355
|
+
},
|
|
447
356
|
|
|
357
|
+
/**
|
|
358
|
+
* Toggles all the buttons according to a condition
|
|
359
|
+
* @param {Boolean} condition - If the condition is `true` the buttons will be displayed
|
|
360
|
+
* @returns {actionbar}
|
|
361
|
+
*/
|
|
362
|
+
toggleAll: function toggleAll(condition) {
|
|
363
|
+
if (this.is('rendered')) {
|
|
364
|
+
if (undefined !== condition) {
|
|
365
|
+
condition = !condition;
|
|
366
|
+
}
|
|
448
367
|
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
368
|
+
this.controls.$all.toggleClass('hidden', condition);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
return this;
|
|
452
372
|
}
|
|
373
|
+
};
|
|
374
|
+
/**
|
|
375
|
+
* Builds an instance of the actionbar component
|
|
376
|
+
* @param {Object} config
|
|
377
|
+
* @param {Array} config.buttons - The list of buttons to display.
|
|
378
|
+
* @param {String} config.buttons.id - The id of the button
|
|
379
|
+
* @param {String} config.buttons.label - The text displayed in the button
|
|
380
|
+
* @param {String} config.buttons.icon - An optional icon displayed in the button
|
|
381
|
+
* @param {String} config.buttons.title - An optional tooltip displayed on the button
|
|
382
|
+
* @param {Boolean} config.buttons.conditional - The button is hidden by default and must be displayed later
|
|
383
|
+
* @param {Function} config.buttons.action - An action called when the button is clicked
|
|
384
|
+
* @param {Boolean} [config.vertical] - Displays the action bar vertically
|
|
385
|
+
* @returns {actionbar}
|
|
386
|
+
*
|
|
387
|
+
* @event init - Emitted when the component is initialized
|
|
388
|
+
* @event destroy - Emitted when the component is destroying
|
|
389
|
+
* @event render - Emitted when the component is rendered
|
|
390
|
+
* @event button - Emitted when a button is clicked
|
|
391
|
+
* @event show - Emitted when the component is shown
|
|
392
|
+
* @event hide - Emitted when the component is hidden
|
|
393
|
+
* @event enable - Emitted when the component is enabled
|
|
394
|
+
* @event disable - Emitted when the component is disabled
|
|
395
|
+
* @event template - Emitted when the template is changed
|
|
396
|
+
*/
|
|
397
|
+
|
|
398
|
+
function actionbarFactory(config) {
|
|
399
|
+
return component(actionbar).setTemplate(mainTpl) // uninstalls the component
|
|
400
|
+
.on('destroy', function () {
|
|
401
|
+
this.buttons = null;
|
|
402
|
+
this.controls = null;
|
|
403
|
+
}) // renders the component
|
|
404
|
+
.on('render', function () {
|
|
405
|
+
var self = this;
|
|
406
|
+
var $component = this.getElement(); // vertical or horizontal ?
|
|
407
|
+
|
|
408
|
+
this.setState('horizontal', $component.hasClass('horizontal-action-bar'));
|
|
409
|
+
this.setState('vertical', $component.hasClass('vertical-action-bar')); // get access to all needed placeholders
|
|
410
|
+
|
|
411
|
+
this.buttons = {};
|
|
412
|
+
this.controls = {
|
|
413
|
+
$buttons: {},
|
|
414
|
+
$conditional: $component.find('button.conditional'),
|
|
415
|
+
$all: $component.find('button')
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
_.forEach(this.config.buttons, function (button) {
|
|
419
|
+
self.buttons[button.id] = button;
|
|
420
|
+
self.controls.$buttons[button.id] = $component.find('[data-control="' + button.id + '"]');
|
|
421
|
+
}); // click on a button
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
this.$component.on('click', 'button', function (e) {
|
|
425
|
+
var $this = $$1(this);
|
|
426
|
+
var buttonId = $this.closest('button').data('control');
|
|
427
|
+
var button = self.getButton(buttonId);
|
|
428
|
+
e.preventDefault();
|
|
429
|
+
|
|
430
|
+
if (button && button.action) {
|
|
431
|
+
button.action.call(self, buttonId, button);
|
|
432
|
+
}
|
|
433
|
+
/**
|
|
434
|
+
* @event actionbar#button
|
|
435
|
+
* @param {String} buttonId
|
|
436
|
+
* @param {Object} button
|
|
437
|
+
*/
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
self.trigger('button', buttonId, button);
|
|
441
|
+
});
|
|
442
|
+
}).init(config);
|
|
443
|
+
}
|
|
453
444
|
|
|
454
|
-
|
|
445
|
+
return actionbarFactory;
|
|
455
446
|
|
|
456
447
|
});
|