@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
|
@@ -1,226 +1,217 @@
|
|
|
1
1
|
define(['lodash', 'i18n', 'ui/component', 'ui/taskQueueButton/taskable', 'handlebars', 'lib/dompurify/purify', 'css!ui/taskQueueButton/css/treeButton.css'], function (_, __, component, makeTaskable, Handlebars, DOMPurify, treeButton_css) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
4
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
5
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
6
|
+
makeTaskable = makeTaskable && Object.prototype.hasOwnProperty.call(makeTaskable, 'default') ? makeTaskable['default'] : makeTaskable;
|
|
7
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
function buttonTpl(data, options, asString) {
|
|
142
|
-
var html = Template(data, options);
|
|
143
|
-
return (asString || true) ? html : $(html);
|
|
144
|
-
}
|
|
82
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
83
|
+
ret += options.fn(_.extend({}, this, {
|
|
84
|
+
i: i
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
|
|
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);
|
|
95
|
+
}
|
|
96
|
+
}); // register a "get property" helper
|
|
97
|
+
// it gets the named property from the provided context
|
|
98
|
+
|
|
99
|
+
hb.registerHelper('property', function (name, context) {
|
|
100
|
+
return context[name] || '';
|
|
101
|
+
}); // register an 'includes' helper
|
|
102
|
+
// it checks if value is in array
|
|
145
103
|
|
|
104
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
105
|
+
if (_.contains(haystack, needle)) {
|
|
106
|
+
return options.fn(this);
|
|
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, helper, functionType="function", escapeExpression=this.escapeExpression;
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
buffer += "<div class=\"tree-button-component\">\n <a class=\"li-inner\">\n <span class=\"spinner-icon icon-loop spinning\"></span>\n <span class=\"glyph start-icon icon-";
|
|
122
|
+
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
123
|
+
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
124
|
+
buffer += escapeExpression(stack1)
|
|
125
|
+
+ "\"></span>\n ";
|
|
126
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
127
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
128
|
+
buffer += escapeExpression(stack1)
|
|
129
|
+
+ "\n </a>\n</div>";
|
|
130
|
+
return buffer;
|
|
131
|
+
});
|
|
132
|
+
function buttonTpl(data, options, asString) {
|
|
133
|
+
var html = Template(data, options);
|
|
134
|
+
return (asString || true) ? html : $(html);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* This program is free software; you can redistribute it and/or
|
|
139
|
+
* modify it under the terms of the GNU General Public License
|
|
140
|
+
* as published by the Free Software Foundation; under version 2
|
|
141
|
+
* of the License (non-upgradable).
|
|
142
|
+
*
|
|
143
|
+
* This program is distributed in the hope that it will be useful,
|
|
144
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
145
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
146
|
+
* GNU General Public License for more details.
|
|
147
|
+
*
|
|
148
|
+
* You should have received a copy of the GNU General Public License
|
|
149
|
+
* along with this program; if not, write to the Free Software
|
|
150
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
151
|
+
*
|
|
152
|
+
* Copyright (c) 2017 (original work) Open Assessment Technologies SA ;
|
|
153
|
+
*/
|
|
154
|
+
var _defaults = {
|
|
155
|
+
icon: 'property-advanced',
|
|
156
|
+
label: 'OK'
|
|
157
|
+
};
|
|
158
|
+
var buttonApi = {
|
|
146
159
|
/**
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
* as published by the Free Software Foundation; under version 2
|
|
150
|
-
* of the License (non-upgradable).
|
|
151
|
-
*
|
|
152
|
-
* This program is distributed in the hope that it will be useful,
|
|
153
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
154
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
155
|
-
* GNU General Public License for more details.
|
|
156
|
-
*
|
|
157
|
-
* You should have received a copy of the GNU General Public License
|
|
158
|
-
* along with this program; if not, write to the Free Software
|
|
159
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
160
|
-
*
|
|
161
|
-
* Copyright (c) 2017 (original work) Open Assessment Technologies SA ;
|
|
160
|
+
* Start the button spinning
|
|
161
|
+
* @returns {treeTaskButton}
|
|
162
162
|
*/
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
* Start the button spinning
|
|
170
|
-
* @returns {treeTaskButton}
|
|
171
|
-
*/
|
|
172
|
-
start: function start() {
|
|
173
|
-
this.createTask();
|
|
174
|
-
this.setState('started', true);
|
|
175
|
-
this.trigger('start');
|
|
176
|
-
return this;
|
|
177
|
-
},
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Stop the button spinning
|
|
181
|
-
* @returns {treeTaskButton}
|
|
182
|
-
*/
|
|
183
|
-
stop: function stop() {
|
|
184
|
-
if (this.is('started')) {
|
|
185
|
-
this.setState('started', false);
|
|
186
|
-
this.trigger('stop');
|
|
187
|
-
}
|
|
163
|
+
start: function start() {
|
|
164
|
+
this.createTask();
|
|
165
|
+
this.setState('started', true);
|
|
166
|
+
this.trigger('start');
|
|
167
|
+
return this;
|
|
168
|
+
},
|
|
188
169
|
|
|
189
|
-
return this;
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
170
|
/**
|
|
193
|
-
*
|
|
194
|
-
*
|
|
195
|
-
* @param {Object} config - the component config
|
|
196
|
-
* @param {String} config.icon - the button icon
|
|
197
|
-
* @param {String} config.label - the button's label
|
|
198
|
-
* @param {Object} config.taskQueue - the task queue model to be used
|
|
199
|
-
* @param {String} config.taskCreationUrl - endpoint to create a task
|
|
200
|
-
* @param {Object|Function} [config.taskCreationData] - the parameters that will be send to the task creation request
|
|
201
|
-
* @param {JQuery} [config.taskReportContainer] - the container where the inline report can be printed to
|
|
202
|
-
* @return {treeTaskButton} the component
|
|
203
|
-
*
|
|
204
|
-
* @event start - When the button starts spinning
|
|
205
|
-
* @event stop - When the button stops spinning
|
|
206
|
-
* @event finished - When task is finished within the polling duration allowed by the task queue model
|
|
207
|
-
* @event enqueued - when task has not time to finish within the polling duration allowed by the task queue model
|
|
171
|
+
* Stop the button spinning
|
|
172
|
+
* @returns {treeTaskButton}
|
|
208
173
|
*/
|
|
174
|
+
stop: function stop() {
|
|
175
|
+
if (this.is('started')) {
|
|
176
|
+
this.setState('started', false);
|
|
177
|
+
this.trigger('stop');
|
|
178
|
+
}
|
|
209
179
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
180
|
+
return this;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Create a button that will trigger a task creation when clicked
|
|
185
|
+
*
|
|
186
|
+
* @param {Object} config - the component config
|
|
187
|
+
* @param {String} config.icon - the button icon
|
|
188
|
+
* @param {String} config.label - the button's label
|
|
189
|
+
* @param {Object} config.taskQueue - the task queue model to be used
|
|
190
|
+
* @param {String} config.taskCreationUrl - endpoint to create a task
|
|
191
|
+
* @param {Object|Function} [config.taskCreationData] - the parameters that will be send to the task creation request
|
|
192
|
+
* @param {JQuery} [config.taskReportContainer] - the container where the inline report can be printed to
|
|
193
|
+
* @return {treeTaskButton} the component
|
|
194
|
+
*
|
|
195
|
+
* @event start - When the button starts spinning
|
|
196
|
+
* @event stop - When the button stops spinning
|
|
197
|
+
* @event finished - When task is finished within the polling duration allowed by the task queue model
|
|
198
|
+
* @event enqueued - when task has not time to finish within the polling duration allowed by the task queue model
|
|
199
|
+
*/
|
|
200
|
+
|
|
201
|
+
function treeTaskButtonFactory(config) {
|
|
202
|
+
var initConfig = _.defaults(config || {}, _defaults);
|
|
203
|
+
/**
|
|
204
|
+
* @typedef {treeTaskButton} the component
|
|
205
|
+
*/
|
|
215
206
|
|
|
216
207
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
208
|
+
return makeTaskable(component(buttonApi)).on('finished', function () {
|
|
209
|
+
this.stop();
|
|
210
|
+
}).on('enqueued', function () {
|
|
211
|
+
this.stop();
|
|
212
|
+
}).setTemplate(buttonTpl).init(initConfig);
|
|
213
|
+
}
|
|
223
214
|
|
|
224
|
-
|
|
215
|
+
return treeTaskButtonFactory;
|
|
225
216
|
|
|
226
217
|
});
|
package/dist/themeLoader.js
CHANGED
|
@@ -22,10 +22,10 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
22
22
|
*
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
var prefix = 'custom-theme-'; //where to attach the stylesheets
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
var $container = $('head').length ? $('head') : $('body');
|
|
28
|
+
var ns = 'themeloader';
|
|
29
29
|
/**
|
|
30
30
|
* @typedef {Object} Theme
|
|
31
31
|
* @property {String} id - theme identifier (unique)
|
|
@@ -41,8 +41,8 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
41
41
|
*/
|
|
42
42
|
|
|
43
43
|
function triggerThemeChange(themeId) {
|
|
44
|
-
_.delay(()
|
|
45
|
-
$(document).trigger(
|
|
44
|
+
_.delay(function () {
|
|
45
|
+
$(document).trigger("themechange.".concat(ns), [themeId]).trigger('themeapplied', [themeId]);
|
|
46
46
|
}, 200);
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
@@ -53,8 +53,8 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
function createStyleSheet(theme) {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
var suffix = theme.id === 'base' ? 'base' : 'theme';
|
|
57
|
+
var type = "".concat(prefix).concat(suffix);
|
|
58
58
|
return $('<link>').attr({
|
|
59
59
|
rel: 'stylesheet',
|
|
60
60
|
type: 'text/css',
|
|
@@ -72,7 +72,7 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
function getLink(id) {
|
|
75
|
-
return $(
|
|
75
|
+
return $("link[data-id=\"".concat(id, "\"][data-type^=\"").concat(prefix, "\"]"), $container);
|
|
76
76
|
}
|
|
77
77
|
/**
|
|
78
78
|
* Is the stylesheet attached to the container ?
|
|
@@ -131,7 +131,7 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
131
131
|
throw new TypeError('No theme declared in the configuration');
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
for (
|
|
134
|
+
for (var i in config.available) {
|
|
135
135
|
if (!_.isPlainObject(config.available[i]) || _.isEmpty(config.available[i].id) || _.isEmpty(config.available[i].path)) {
|
|
136
136
|
throw new TypeError('There is a theme that does not contain an id or a path');
|
|
137
137
|
}
|
|
@@ -141,17 +141,17 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
141
141
|
*/
|
|
142
142
|
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
var defaultTheme = config.default || _.first(_.pluck(config.available, 'id'));
|
|
145
145
|
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
var activeTheme = defaultTheme;
|
|
147
|
+
var themes = [{
|
|
148
148
|
id: 'base',
|
|
149
149
|
path: config.base,
|
|
150
150
|
name: 'TAO'
|
|
151
151
|
}].concat(config.available);
|
|
152
|
-
|
|
152
|
+
var styles = {};
|
|
153
153
|
|
|
154
|
-
_.forEach(themes, theme
|
|
154
|
+
_.forEach(themes, function (theme) {
|
|
155
155
|
if (isAttached(theme.id)) {
|
|
156
156
|
styles[theme.id] = getLink(theme.id);
|
|
157
157
|
} else {
|
|
@@ -169,11 +169,13 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
169
169
|
* @param {Boolean} [preload=false] - Only preload the themes without activating them
|
|
170
170
|
* @returns {Object} chains
|
|
171
171
|
*/
|
|
172
|
-
load(preload) {
|
|
173
|
-
_.forEach(styles, ($link, id)
|
|
172
|
+
load: function load(preload) {
|
|
173
|
+
_.forEach(styles, function ($link, id) {
|
|
174
174
|
if (!isAttached(id)) {
|
|
175
175
|
if (!preload && id === activeTheme) {
|
|
176
|
-
$link.on('load', ()
|
|
176
|
+
$link.on('load', function () {
|
|
177
|
+
return triggerThemeChange(id);
|
|
178
|
+
});
|
|
177
179
|
}
|
|
178
180
|
|
|
179
181
|
disable($link);
|
|
@@ -198,8 +200,8 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
198
200
|
* Unload the stylesheets (disable them)
|
|
199
201
|
* @returns {Object} chains
|
|
200
202
|
*/
|
|
201
|
-
unload() {
|
|
202
|
-
disable($(
|
|
203
|
+
unload: function unload() {
|
|
204
|
+
disable($("link[data-type^=\"".concat(prefix, "\"]"), $container));
|
|
203
205
|
return this;
|
|
204
206
|
},
|
|
205
207
|
|
|
@@ -208,7 +210,7 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
208
210
|
* @param {String} id - the theme id to use
|
|
209
211
|
* @returns {Object} chains
|
|
210
212
|
*/
|
|
211
|
-
change(id) {
|
|
213
|
+
change: function change(id) {
|
|
212
214
|
//support to change to the "default" theme regardless it's id
|
|
213
215
|
if (_.contains(['base', 'default'], id) && !isAttached(id)) {
|
|
214
216
|
id = defaultTheme;
|
|
@@ -216,7 +218,7 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
216
218
|
|
|
217
219
|
if (isAttached(id)) {
|
|
218
220
|
//disable all
|
|
219
|
-
disable($(
|
|
221
|
+
disable($("link[data-type=\"".concat(prefix, "theme\"]"), $container)); //enable the theme only
|
|
220
222
|
|
|
221
223
|
enable(getLink(id));
|
|
222
224
|
activeTheme = id;
|
|
@@ -230,10 +232,9 @@ define(['jquery', 'lodash'], function ($, _) { 'use strict';
|
|
|
230
232
|
* Return the current theme
|
|
231
233
|
* @returns {String} activeTheme
|
|
232
234
|
*/
|
|
233
|
-
getActiveTheme() {
|
|
235
|
+
getActiveTheme: function getActiveTheme() {
|
|
234
236
|
return activeTheme;
|
|
235
237
|
}
|
|
236
|
-
|
|
237
238
|
};
|
|
238
239
|
}
|
|
239
240
|
|
package/dist/themes.js
CHANGED
package/dist/toggler.js
CHANGED
|
@@ -41,7 +41,7 @@ define(['jquery', 'core/pluginifier', 'core/dataattrhandler'], function ($, Plug
|
|
|
41
41
|
* @fires Toggler#create.toggler
|
|
42
42
|
* @returns {jQueryElement} for chaining
|
|
43
43
|
*/
|
|
44
|
-
init: function (options) {
|
|
44
|
+
init: function init(options) {
|
|
45
45
|
//get options using default
|
|
46
46
|
options = $.extend(true, {}, defaults, options);
|
|
47
47
|
return this.each(function () {
|
|
@@ -103,7 +103,7 @@ define(['jquery', 'core/pluginifier', 'core/dataattrhandler'], function ($, Plug
|
|
|
103
103
|
* @fires Toggler#open.toggler
|
|
104
104
|
* @fires Toggler#close.toggler
|
|
105
105
|
*/
|
|
106
|
-
_toggle: function ($elt) {
|
|
106
|
+
_toggle: function _toggle($elt) {
|
|
107
107
|
var options = $elt.data(dataNs);
|
|
108
108
|
var $target = options.target;
|
|
109
109
|
|
|
@@ -151,7 +151,7 @@ define(['jquery', 'core/pluginifier', 'core/dataattrhandler'], function ($, Plug
|
|
|
151
151
|
* @example $('selector').toggler('destroy');
|
|
152
152
|
* @public
|
|
153
153
|
*/
|
|
154
|
-
destroy: function () {
|
|
154
|
+
destroy: function destroy() {
|
|
155
155
|
this.each(function () {
|
|
156
156
|
var $elt = $(this);
|
|
157
157
|
var options = $elt.data(dataNs);
|