@oat-sa/tao-core-ui 1.64.1 → 1.64.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/LICENSE +339 -339
- package/README.md +22 -22
- package/dist/actionbar.js +92 -92
- package/dist/adder.js +109 -109
- package/dist/animable/absorbable/absorbable.js +29 -29
- package/dist/animable/absorbable/css/absorb.css +7 -7
- package/dist/animable/absorbable/css/absorb.css.map +1 -1
- package/dist/animable/pulsable/css/pulse.css +7 -7
- package/dist/animable/pulsable/css/pulse.css.map +1 -1
- package/dist/animable/pulsable/pulsable.js +23 -23
- package/dist/areaBroker.js +51 -51
- package/dist/autocomplete/css/autocomplete.css +7 -7
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +384 -384
- package/dist/autoscroll.js +22 -22
- package/dist/badge/badge.js +35 -35
- package/dist/badge/css/badge.css +7 -7
- package/dist/badge/css/badge.css.map +1 -1
- package/dist/breadcrumbs/css/breadcrumbs.css +7 -7
- package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
- package/dist/breadcrumbs.js +57 -57
- package/dist/btngrouper.js +64 -64
- package/dist/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/dist/bulkActionPopup.js +91 -91
- package/dist/button.js +89 -89
- package/dist/calculator/css/calculator.css +10 -10
- package/dist/calculator/css/calculator.css.map +1 -1
- package/dist/calculator.js +51 -51
- package/dist/cascadingComboBox.js +34 -34
- package/dist/ckeditor/ckConfigurator.js +49 -49
- package/dist/ckeditor/dtdHandler.js +110 -110
- package/dist/class/css/selector.css +7 -7
- package/dist/class/css/selector.css.map +1 -1
- package/dist/class/selector.js +98 -98
- package/dist/component/alignable.js +81 -81
- package/dist/component/containable.js +37 -37
- package/dist/component/css/components.css +7 -7
- package/dist/component/css/components.css.map +1 -1
- package/dist/component/css/windowComponent.css +7 -7
- package/dist/component/css/windowComponent.css.map +1 -1
- package/dist/component/draggable.js +25 -25
- package/dist/component/placeable.js +70 -70
- package/dist/component/resizable.js +61 -61
- package/dist/component/stackable.js +20 -20
- package/dist/component/windowed.js +46 -46
- package/dist/component.js +140 -140
- package/dist/container.js +76 -76
- package/dist/contextualPopup/css/contextualPopup.css +7 -7
- package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
- package/dist/contextualPopup.js +100 -100
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +62 -62
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +147 -147
- package/dist/datatable/css/datatable.css +7 -7
- package/dist/datatable/css/datatable.css.map +1 -1
- package/dist/datatable/filterStrategy/filterStrategy.js +27 -27
- package/dist/datatable/filterStrategy/multiple.js +25 -25
- package/dist/datatable/filterStrategy/single.js +25 -25
- package/dist/datatable.js +377 -377
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +97 -97
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +161 -161
- package/dist/deleter.js +79 -79
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +52 -52
- package/dist/dialog/alert.js +26 -26
- package/dist/dialog/confirm.js +27 -27
- package/dist/dialog/confirmDelete.js +31 -31
- package/dist/dialog.js +141 -141
- package/dist/disabler.js +90 -90
- package/dist/documentViewer/css/documentViewer.css +7 -7
- package/dist/documentViewer/css/documentViewer.css.map +1 -1
- package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +30 -30
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +25 -25
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +120 -120
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +89 -89
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +52 -52
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +112 -112
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +67 -67
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +81 -81
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +111 -111
- package/dist/documentViewer/providers/pdfViewer.js +29 -29
- package/dist/documentViewer/viewerFactory.js +71 -71
- package/dist/documentViewer.js +86 -86
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +84 -84
- package/dist/durationer.js +58 -58
- package/dist/dynamicComponent/css/dynamicComponent.css +7 -7
- package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/dist/dynamicComponent.js +103 -103
- package/dist/feedback.js +84 -84
- package/dist/figure/FigureStateActive.js +111 -111
- package/dist/filesender.js +26 -26
- package/dist/filter.js +34 -34
- package/dist/form/css/dropdownForm.css +7 -7
- package/dist/form/css/dropdownForm.css.map +1 -1
- package/dist/form/css/form.css +7 -7
- package/dist/form/css/form.css.map +1 -1
- package/dist/form/dropdownForm.js +99 -99
- package/dist/form/form.js +248 -248
- package/dist/form/simpleForm.js +71 -71
- package/dist/form/validator/css/validator.css +7 -7
- package/dist/form/validator/css/validator.css.map +1 -1
- package/dist/form/validator/renderer.js +52 -52
- package/dist/form/validator/validator.js +103 -103
- package/dist/form/widget/css/widget.css +7 -7
- package/dist/form/widget/css/widget.css.map +1 -1
- package/dist/form/widget/definitions.js +24 -24
- package/dist/form/widget/loader.js +16 -16
- package/dist/form/widget/providers/checkBox.js +62 -62
- package/dist/form/widget/providers/comboBox.js +46 -46
- package/dist/form/widget/providers/default.js +35 -35
- package/dist/form/widget/providers/hidden.js +37 -37
- package/dist/form/widget/providers/hiddenBox.js +58 -58
- package/dist/form/widget/providers/radioBox.js +57 -57
- package/dist/form/widget/providers/textArea.js +35 -35
- package/dist/form/widget/providers/textBox.js +34 -34
- package/dist/form/widget/widget.js +141 -141
- package/dist/form.js +10 -10
- package/dist/formValidator/formValidator.js +61 -61
- package/dist/formValidator/highlighters/highlighter.js +41 -41
- package/dist/formValidator/highlighters/message.js +29 -29
- package/dist/formValidator/highlighters/tooltip.js +32 -32
- package/dist/generis/form/css/form.css +7 -7
- package/dist/generis/form/css/form.css.map +1 -1
- package/dist/generis/form/form.js +73 -73
- package/dist/generis/validator/css/validator.css +7 -7
- package/dist/generis/validator/css/validator.css.map +1 -1
- package/dist/generis/validator/validator.js +38 -38
- package/dist/generis/widget/checkBox/checkBox.js +39 -39
- package/dist/generis/widget/comboBox/comboBox.js +32 -32
- package/dist/generis/widget/css/widget.css +7 -7
- package/dist/generis/widget/css/widget.css.map +1 -1
- package/dist/generis/widget/hiddenBox/hiddenBox.js +40 -40
- package/dist/generis/widget/loader.js +20 -20
- package/dist/generis/widget/textBox/textBox.js +27 -27
- package/dist/generis/widget/widget.js +47 -47
- package/dist/groupedComboBox.js +36 -36
- package/dist/groupvalidator.js +19 -19
- package/dist/hider.js +41 -41
- package/dist/highlighter.js +278 -278
- package/dist/image/ImgStateActive/extractLabel.js +20 -20
- package/dist/image/ImgStateActive/helper.js +16 -16
- package/dist/image/ImgStateActive/initHelper.js +85 -85
- package/dist/image/ImgStateActive/initMediaEditor.js +48 -48
- package/dist/image/ImgStateActive/mediaSizer.js +32 -32
- package/dist/image/ImgStateActive.js +104 -104
- package/dist/incrementer.js +58 -58
- package/dist/inplacer.js +87 -87
- package/dist/interactUtils.js +42 -42
- package/dist/itemButtonList/css/item-button-list.css +23 -23
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +102 -102
- package/dist/keyNavigation/navigableDomElement.js +76 -76
- package/dist/keyNavigation/navigator.js +158 -158
- package/dist/listbox/css/listbox.css +7 -7
- package/dist/listbox/css/listbox.css.map +1 -1
- package/dist/listbox.js +84 -84
- package/dist/liststyler.js +57 -57
- package/dist/loadingButton/css/button.css +7 -7
- package/dist/loadingButton/css/button.css.map +1 -1
- package/dist/loadingButton/loadingButton.js +35 -35
- package/dist/lock.js +112 -112
- package/dist/login/login.js +87 -87
- package/dist/maths/calculator/basicCalculator.js +50 -50
- package/dist/maths/calculator/calculatorComponent.js +29 -29
- package/dist/maths/calculator/core/areaBroker.js +25 -25
- package/dist/maths/calculator/core/board.js +300 -300
- package/dist/maths/calculator/core/expression.js +98 -98
- package/dist/maths/calculator/core/labels.js +16 -16
- package/dist/maths/calculator/core/plugin.js +19 -19
- package/dist/maths/calculator/core/terms.js +26 -26
- package/dist/maths/calculator/core/tokenizer.js +98 -98
- package/dist/maths/calculator/core/tokens.js +75 -75
- package/dist/maths/calculator/css/calculator.css +7 -7
- package/dist/maths/calculator/css/calculator.css.map +1 -1
- package/dist/maths/calculator/defaultCalculator.js +23 -23
- package/dist/maths/calculator/plugins/core/degrad.js +22 -22
- package/dist/maths/calculator/plugins/core/history.js +45 -45
- package/dist/maths/calculator/plugins/core/remind.js +22 -22
- package/dist/maths/calculator/plugins/core/stepNavigation.js +31 -31
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +48 -48
- package/dist/maths/calculator/plugins/modifiers/pow10.js +35 -35
- package/dist/maths/calculator/plugins/modifiers/sign.js +90 -90
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +47 -47
- package/dist/maths/calculator/pluginsLoader.js +21 -21
- package/dist/maths/calculator/scientificCalculator.js +78 -78
- package/dist/mediaEditor/mediaEditorComponent.js +51 -51
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +16 -16
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +47 -47
- package/dist/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/dist/mediaEditor/plugins/mediaDimension/helper.js +70 -70
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +140 -140
- package/dist/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/dist/mediaplayer/css/player.css +7 -7
- package/dist/mediaplayer/css/player.css.map +1 -1
- package/dist/mediaplayer/players/html5.js +52 -52
- package/dist/mediaplayer/players/youtube.js +39 -39
- package/dist/mediaplayer/players.js +18 -18
- package/dist/mediaplayer/support.js +55 -55
- package/dist/mediaplayer/utils/reminder.js +100 -100
- package/dist/mediaplayer/utils/timeObserver.js +92 -92
- package/dist/mediaplayer/youtubeManager.js +51 -51
- package/dist/mediaplayer.js +447 -447
- package/dist/mediasizer.js +122 -122
- package/dist/modal.js +87 -87
- package/dist/movableComponent.js +35 -35
- package/dist/pageSizeSelector.js +31 -31
- package/dist/pageStatus.js +33 -33
- package/dist/pagination/css/pagination.css +7 -7
- package/dist/pagination/css/pagination.css.map +1 -1
- package/dist/pagination/paginationStrategy.js +23 -23
- package/dist/pagination/providers/pages.js +24 -24
- package/dist/pagination/providers/simple.js +22 -22
- package/dist/pagination.js +45 -45
- package/dist/previewer.js +67 -67
- package/dist/progressbar.js +58 -58
- package/dist/propertySelector/css/propertySelector.css +7 -7
- package/dist/propertySelector/css/propertySelector.css.map +1 -1
- package/dist/propertySelector/propertySelector.js +86 -86
- package/dist/report.js +73 -73
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +60 -60
- package/dist/resource/list.js +53 -53
- package/dist/resource/selectable.js +92 -92
- package/dist/resource/selector.js +182 -182
- package/dist/resource/tree.js +91 -91
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +75 -75
- package/dist/resourcemgr/fileSelector.js +45 -45
- package/dist/resourcemgr/util/updatePermissions.js +4 -4
- package/dist/resourcemgr.js +49 -49
- package/dist/scroller.js +26 -26
- package/dist/searchModal/advancedSearch.js +155 -155
- package/dist/searchModal/css/advancedSearch.css +7 -7
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +7 -7
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +134 -134
- package/dist/selecter.js +6 -6
- package/dist/stacker.js +43 -43
- package/dist/switch/css/switch.css +7 -7
- package/dist/switch/css/switch.css.map +1 -1
- package/dist/switch/switch.js +62 -62
- package/dist/tableModel.js +33 -33
- package/dist/tabs/css/tabs.css +12 -12
- package/dist/tabs/css/tabs.css.map +1 -1
- package/dist/tabs.js +220 -220
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +59 -59
- package/dist/taskQueue/table.js +54 -54
- package/dist/taskQueue/taskQueue.js +18 -18
- package/dist/taskQueue/taskQueueModel.js +102 -102
- package/dist/taskQueue.js +47 -47
- package/dist/taskQueueButton/css/taskable.css +7 -7
- package/dist/taskQueueButton/css/taskable.css.map +1 -1
- package/dist/taskQueueButton/css/treeButton.css +7 -7
- package/dist/taskQueueButton/css/treeButton.css.map +1 -1
- package/dist/taskQueueButton/standardButton.js +39 -39
- package/dist/taskQueueButton/taskable.js +41 -41
- package/dist/taskQueueButton/treeButton.js +43 -43
- package/dist/themeLoader.js +75 -75
- package/dist/themes.js +84 -84
- package/dist/toggler.js +57 -57
- package/dist/tooltip.js +41 -41
- package/dist/tooltipster.js +17 -17
- package/dist/transformer.js +117 -117
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/dist/tristateCheckboxGroup.js +62 -62
- package/dist/uploader.js +145 -145
- package/dist/validator/validators.js +48 -48
- package/dist/validator.js +23 -23
- package/dist/waitForMedia.js +33 -33
- package/dist/waitingDialog/css/waitingDialog.css +7 -7
- package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
- package/dist/waitingDialog/waitingDialog.js +54 -54
- package/package.json +110 -110
- package/scss/basic.scss +16 -16
- package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +60 -60
- package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
- package/scss/font/tao/tao.svg +235 -235
- package/scss/inc/_base.scss +495 -495
- package/scss/inc/_bootstrap.scss +6 -6
- package/scss/inc/_buttons.scss +114 -114
- package/scss/inc/_colors.scss +93 -93
- package/scss/inc/_feedback.scss +154 -154
- package/scss/inc/_flex-grid.scss +15 -15
- package/scss/inc/_fonts.scss +4 -4
- package/scss/inc/_forms.scss +832 -832
- package/scss/inc/_functions.scss +283 -283
- package/scss/inc/_jquery.nouislider.scss +254 -254
- package/scss/inc/_normalize.scss +528 -528
- package/scss/inc/_report.scss +67 -67
- package/scss/inc/_secondary-properties.scss +89 -89
- package/scss/inc/_select2.scss +634 -634
- package/scss/inc/_toolbars.scss +155 -155
- package/scss/inc/_tooltip.scss +312 -312
- package/scss/inc/_variables.scss +21 -21
- package/scss/inc/base/_highlight.scss +5 -5
- package/scss/inc/base/_list-style.scss +58 -58
- package/scss/inc/base/_svg.scss +3 -3
- package/scss/inc/base/_table.scss +62 -62
- package/scss/inc/fonts/_source-sans-pro.scss +29 -29
- package/scss/inc/fonts/_tao-icon-classes.scss +227 -227
- package/scss/inc/fonts/_tao-icon-def.scss +12 -12
- package/scss/inc/fonts/_tao-icon-vars.scss +241 -241
- package/src/actionbar/tpl/main.tpl +8 -8
- package/src/actionbar.js +251 -251
- package/src/adder.js +250 -250
- package/src/animable/absorbable/absorbable.js +134 -134
- package/src/animable/absorbable/css/absorb.css +7 -7
- package/src/animable/absorbable/css/absorb.css.map +1 -1
- package/src/animable/absorbable/scss/absorb.scss +37 -37
- package/src/animable/pulsable/css/pulse.css +7 -7
- package/src/animable/pulsable/css/pulse.css.map +1 -1
- package/src/animable/pulsable/pulsable.js +90 -90
- package/src/animable/pulsable/scss/pulse.scss +22 -22
- package/src/areaBroker.js +160 -160
- package/src/autocomplete/css/autocomplete.css +7 -7
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/autocomplete/scss/autocomplete.scss +37 -37
- package/src/autocomplete.js +1027 -1027
- package/src/autoscroll.js +57 -57
- package/src/badge/badge.js +119 -119
- package/src/badge/css/badge.css +7 -7
- package/src/badge/css/badge.css.map +1 -1
- package/src/badge/scss/badge.scss +92 -92
- package/src/badge/tpl/badge.tpl +4 -4
- package/src/breadcrumbs/css/breadcrumbs.css +7 -7
- package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
- package/src/breadcrumbs/scss/breadcrumbs.scss +52 -52
- package/src/breadcrumbs/tpl/breadcrumbs.tpl +20 -20
- package/src/breadcrumbs.js +99 -99
- package/src/btngrouper.js +213 -213
- package/src/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/src/bulkActionPopup/scss/bulkActionPopup.scss +63 -63
- package/src/bulkActionPopup/tpl/layout.tpl +76 -76
- package/src/bulkActionPopup/tpl/select.tpl +8 -8
- package/src/bulkActionPopup.js +274 -274
- package/src/button/tpl/button.tpl +4 -4
- package/src/button.js +135 -135
- package/src/calculator/css/calculator.css +10 -10
- package/src/calculator/css/calculator.css.map +1 -1
- package/src/calculator/scss/calculator.scss +139 -139
- package/src/calculator.js +188 -188
- package/src/cascadingComboBox.js +126 -126
- package/src/ckeditor/ckConfigurator.js +742 -742
- package/src/ckeditor/dtdHandler.js +1030 -1030
- package/src/class/css/selector.css +7 -7
- package/src/class/css/selector.css.map +1 -1
- package/src/class/scss/selector.scss +101 -101
- package/src/class/selector.js +329 -329
- package/src/class/tpl/listItem.tpl +9 -9
- package/src/class/tpl/selector.tpl +10 -10
- package/src/component/alignable.js +274 -274
- package/src/component/containable.js +122 -122
- package/src/component/css/components.css +7 -7
- package/src/component/css/components.css.map +1 -1
- package/src/component/css/windowComponent.css +7 -7
- package/src/component/css/windowComponent.css.map +1 -1
- package/src/component/draggable.js +104 -104
- package/src/component/placeable.js +233 -233
- package/src/component/resizable.js +195 -195
- package/src/component/scss/components.scss +507 -507
- package/src/component/scss/windowComponent.scss +62 -62
- package/src/component/stackable.js +67 -67
- package/src/component/tpl/window.tpl +7 -7
- package/src/component/windowed.js +206 -206
- package/src/component.js +401 -401
- package/src/container.js +200 -200
- package/src/contextualPopup/css/contextualPopup.css +7 -7
- package/src/contextualPopup/css/contextualPopup.css.map +1 -1
- package/src/contextualPopup/scss/contextualPopup.scss +78 -78
- package/src/contextualPopup/tpl/popup.tpl +10 -10
- package/src/contextualPopup.js +294 -294
- package/src/css/basic.css +104 -104
- package/src/css/basic.css.map +1 -1
- package/src/dashboard/css/dashboard.css +7 -7
- package/src/dashboard/css/dashboard.css.map +1 -1
- package/src/dashboard/scss/dashboard.scss +93 -93
- package/src/dashboard/tpl/dashboard.tpl +16 -16
- package/src/dashboard/tpl/dashboardMetricsList.tpl +15 -15
- package/src/dashboard.js +179 -179
- package/src/datalist/css/datalist.css +7 -7
- package/src/datalist/css/datalist.css.map +1 -1
- package/src/datalist/scss/datalist.scss +116 -116
- package/src/datalist/tpl/list.tpl +24 -24
- package/src/datalist/tpl/main.tpl +44 -44
- package/src/datalist.js +500 -500
- package/src/datatable/css/datatable.css +7 -7
- package/src/datatable/css/datatable.css.map +1 -1
- package/src/datatable/filterStrategy/filterStrategy.js +70 -70
- package/src/datatable/filterStrategy/multiple.js +126 -126
- package/src/datatable/filterStrategy/single.js +108 -108
- package/src/datatable/scss/datatable.scss +149 -149
- package/src/datatable/tpl/button.tpl +6 -6
- package/src/datatable/tpl/layout.tpl +158 -158
- package/src/datatable.js +1056 -1056
- package/src/dateRange/css/dateRange.css +7 -7
- package/src/dateRange/css/dateRange.css.map +1 -1
- package/src/dateRange/dateRange.js +341 -341
- package/src/dateRange/scss/dateRange.scss +7 -7
- package/src/dateRange/tpl/select.tpl +18 -18
- package/src/datetime/css/picker.css +7 -7
- package/src/datetime/css/picker.css.map +1 -1
- package/src/datetime/picker.js +576 -576
- package/src/datetime/scss/picker.scss +192 -192
- package/src/datetime/tpl/picker.tpl +18 -18
- package/src/deleter/undo.tpl +6 -6
- package/src/deleter.js +296 -296
- package/src/destination/css/selector.css +7 -7
- package/src/destination/css/selector.css.map +1 -1
- package/src/destination/scss/selector.scss +36 -36
- package/src/destination/selector.js +195 -195
- package/src/destination/tpl/selector.tpl +13 -13
- package/src/dialog/alert.js +70 -70
- package/src/dialog/confirm.js +85 -85
- package/src/dialog/confirmDelete.js +95 -95
- package/src/dialog/tpl/body.tpl +24 -24
- package/src/dialog/tpl/buttons.tpl +6 -6
- package/src/dialog/tpl/checkbox.tpl +5 -5
- package/src/dialog.js +517 -517
- package/src/disabler.js +230 -230
- package/src/documentViewer/css/documentViewer.css +7 -7
- package/src/documentViewer/css/documentViewer.css.map +1 -1
- package/src/documentViewer/providers/pdfViewer/fallback/viewer.js +69 -69
- package/src/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +41 -41
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.js +475 -475
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.tpl +20 -20
- package/src/documentViewer/providers/pdfViewer/pdfjs/match.tpl +1 -1
- package/src/documentViewer/providers/pdfViewer/pdfjs/page.tpl +4 -4
- package/src/documentViewer/providers/pdfViewer/pdfjs/pageView.js +318 -318
- package/src/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +167 -167
- package/src/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +451 -451
- package/src/documentViewer/providers/pdfViewer/pdfjs/textManager.js +252 -252
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.js +299 -299
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.tpl +16 -16
- package/src/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +351 -351
- package/src/documentViewer/providers/pdfViewer.js +93 -93
- package/src/documentViewer/scss/documentViewer.scss +184 -184
- package/src/documentViewer/viewerFactory.js +191 -191
- package/src/documentViewer.js +238 -238
- package/src/dropdown/css/dropdown.css +7 -7
- package/src/dropdown/css/dropdown.css.map +1 -1
- package/src/dropdown/scss/dropdown.scss +99 -99
- package/src/dropdown/tpl/dropdown.tpl +8 -8
- package/src/dropdown/tpl/list-item.tpl +4 -4
- package/src/dropdown.js +255 -255
- package/src/durationer.js +220 -220
- package/src/dynamicComponent/css/dynamicComponent.css +7 -7
- package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/src/dynamicComponent/scss/dynamicComponent.scss +98 -98
- package/src/dynamicComponent/tpl/layout.tpl +17 -17
- package/src/dynamicComponent.js +553 -553
- package/src/feedback/feedback.tpl +7 -7
- package/src/feedback.js +295 -295
- package/src/figure/FigureStateActive.js +184 -184
- package/src/filesender.js +112 -112
- package/src/filter/template.tpl +5 -5
- package/src/filter.js +129 -129
- package/src/form/css/dropdownForm.css +7 -7
- package/src/form/css/dropdownForm.css.map +1 -1
- package/src/form/css/form.css +7 -7
- package/src/form/css/form.css.map +1 -1
- package/src/form/dropdownForm.js +281 -281
- package/src/form/form.js +688 -688
- package/src/form/scss/dropdownForm.scss +60 -60
- package/src/form/scss/form.scss +25 -25
- package/src/form/simpleForm.js +125 -125
- package/src/form/tpl/dropdownForm.tpl +4 -4
- package/src/form/tpl/form.tpl +7 -7
- package/src/form/validator/css/validator.css +7 -7
- package/src/form/validator/css/validator.css.map +1 -1
- package/src/form/validator/renderer.js +118 -118
- package/src/form/validator/scss/validator.scss +14 -14
- package/src/form/validator/tpl/message.tpl +1 -1
- package/src/form/validator/tpl/validator.tpl +1 -1
- package/src/form/validator/validator.js +220 -220
- package/src/form/widget/css/widget.css +7 -7
- package/src/form/widget/css/widget.css.map +1 -1
- package/src/form/widget/definitions.js +51 -51
- package/src/form/widget/loader.js +40 -40
- package/src/form/widget/providers/checkBox.js +138 -138
- package/src/form/widget/providers/comboBox.js +63 -63
- package/src/form/widget/providers/default.js +90 -90
- package/src/form/widget/providers/hidden.js +62 -62
- package/src/form/widget/providers/hiddenBox.js +152 -152
- package/src/form/widget/providers/radioBox.js +99 -99
- package/src/form/widget/providers/textArea.js +52 -52
- package/src/form/widget/providers/textBox.js +48 -48
- package/src/form/widget/scss/widget.scss +55 -55
- package/src/form/widget/tpl/checkBox.tpl +25 -25
- package/src/form/widget/tpl/comboBox.tpl +13 -13
- package/src/form/widget/tpl/hidden.tpl +1 -1
- package/src/form/widget/tpl/hiddenBox.tpl +17 -17
- package/src/form/widget/tpl/label.tpl +6 -6
- package/src/form/widget/tpl/radioBox.tpl +25 -25
- package/src/form/widget/tpl/textArea.tpl +8 -8
- package/src/form/widget/tpl/widget.tpl +8 -8
- package/src/form/widget/widget.js +372 -372
- package/src/form.js +47 -47
- package/src/formValidator/formValidator.js +253 -253
- package/src/formValidator/highlighters/highlighter.js +103 -103
- package/src/formValidator/highlighters/message.js +68 -68
- package/src/formValidator/highlighters/tooltip.js +78 -78
- package/src/generis/form/css/form.css +7 -7
- package/src/generis/form/css/form.css.map +1 -1
- package/src/generis/form/form.js +239 -239
- package/src/generis/form/readme.md +70 -70
- package/src/generis/form/scss/form.scss +23 -23
- package/src/generis/form/tpl/form.tpl +16 -16
- package/src/generis/validator/css/validator.css +7 -7
- package/src/generis/validator/css/validator.css.map +1 -1
- package/src/generis/validator/readme.md +46 -46
- package/src/generis/validator/scss/validator.scss +13 -13
- package/src/generis/validator/validator.js +128 -128
- package/src/generis/widget/checkBox/checkBox.js +112 -112
- package/src/generis/widget/checkBox/checkBox.tpl +18 -18
- package/src/generis/widget/comboBox/comboBox.js +66 -66
- package/src/generis/widget/comboBox/comboBox.tpl +12 -12
- package/src/generis/widget/css/widget.css +7 -7
- package/src/generis/widget/css/widget.css.map +1 -1
- package/src/generis/widget/hiddenBox/hiddenBox.js +131 -131
- package/src/generis/widget/hiddenBox/hiddenBox.tpl +16 -16
- package/src/generis/widget/loader.js +49 -49
- package/src/generis/widget/readme.md +59 -59
- package/src/generis/widget/scss/widget.scss +61 -61
- package/src/generis/widget/textBox/textBox.js +64 -64
- package/src/generis/widget/textBox/textBox.tpl +7 -7
- package/src/generis/widget/widget.js +164 -164
- package/src/generis/widget/widget.tpl +5 -5
- package/src/groupedComboBox.js +99 -99
- package/src/groupvalidator.js +84 -84
- package/src/hider.js +88 -88
- package/src/highlighter.js +1192 -1192
- package/src/image/ImgStateActive/extractLabel.js +29 -29
- package/src/image/ImgStateActive/helper.js +36 -36
- package/src/image/ImgStateActive/initHelper.js +137 -137
- package/src/image/ImgStateActive/initMediaEditor.js +92 -92
- package/src/image/ImgStateActive/mediaSizer.js +63 -63
- package/src/image/ImgStateActive.js +115 -115
- package/src/incrementer.js +309 -309
- package/src/inplacer.js +315 -315
- package/src/interactUtils.js +140 -140
- package/src/itemButtonList/css/item-button-list.css +23 -23
- package/src/itemButtonList/css/item-button-list.css.map +1 -1
- package/src/itemButtonList/scss/item-button-list.scss +236 -236
- package/src/itemButtonList/tpl/itemButtonList.tpl +21 -21
- package/src/itemButtonList.js +274 -274
- package/src/keyNavigation/navigableDomElement.js +285 -285
- package/src/keyNavigation/navigator.js +535 -535
- package/src/listbox/css/listbox.css +7 -7
- package/src/listbox/css/listbox.css.map +1 -1
- package/src/listbox/scss/listbox.scss +116 -116
- package/src/listbox/tpl/list.tpl +14 -14
- package/src/listbox/tpl/main.tpl +9 -9
- package/src/listbox.js +252 -252
- package/src/liststyler.js +155 -155
- package/src/loadingButton/css/button.css +7 -7
- package/src/loadingButton/css/button.css.map +1 -1
- package/src/loadingButton/loadingButton.js +110 -110
- package/src/loadingButton/scss/button.scss +41 -41
- package/src/loadingButton/tpl/button.tpl +5 -5
- package/src/lock/lock.tpl +16 -16
- package/src/lock.js +393 -393
- package/src/login/login.js +317 -317
- package/src/login/tpl/login.tpl +29 -29
- package/src/login/tpl/passwordReveal.tpl +7 -7
- package/src/maths/calculator/basicCalculator.js +55 -55
- package/src/maths/calculator/calculatorComponent.js +128 -128
- package/src/maths/calculator/core/areaBroker.js +38 -38
- package/src/maths/calculator/core/board.js +841 -841
- package/src/maths/calculator/core/expression.js +430 -430
- package/src/maths/calculator/core/labels.js +116 -116
- package/src/maths/calculator/core/plugin.js +40 -40
- package/src/maths/calculator/core/terms.js +459 -459
- package/src/maths/calculator/core/tokenizer.js +245 -245
- package/src/maths/calculator/core/tokens.js +178 -178
- package/src/maths/calculator/core/tpl/board.tpl +4 -4
- package/src/maths/calculator/css/calculator.css +7 -7
- package/src/maths/calculator/css/calculator.css.map +1 -1
- package/src/maths/calculator/defaultCalculator.js +66 -66
- package/src/maths/calculator/plugins/core/degrad.js +90 -90
- package/src/maths/calculator/plugins/core/history.js +166 -166
- package/src/maths/calculator/plugins/core/remind.js +96 -96
- package/src/maths/calculator/plugins/core/stepNavigation.js +175 -175
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate.tpl +36 -36
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +91 -91
- package/src/maths/calculator/plugins/modifiers/pow10.js +143 -143
- package/src/maths/calculator/plugins/modifiers/sign.js +339 -339
- package/src/maths/calculator/plugins/screen/simpleScreen/defaultTemplate.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/history.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +190 -190
- package/src/maths/calculator/pluginsLoader.js +46 -46
- package/src/maths/calculator/scientificCalculator.js +74 -74
- package/src/maths/calculator/scss/calculator.scss +396 -396
- package/src/maths/calculator/tpl/basicKeyboard.tpl +37 -37
- package/src/maths/calculator/tpl/basicScreen.tpl +2 -2
- package/src/maths/calculator/tpl/scientificKeyboard.tpl +61 -61
- package/src/maths/calculator/tpl/scientificScreen.tpl +3 -3
- package/src/mediaEditor/mediaEditorComponent.js +141 -141
- package/src/mediaEditor/plugins/mediaAlignment/helper.js +110 -110
- package/src/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +99 -99
- package/src/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/src/mediaEditor/plugins/mediaAlignment/tpl/mediaAlignment.tpl +25 -25
- package/src/mediaEditor/plugins/mediaDimension/helper.js +190 -190
- package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +561 -561
- package/src/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/src/mediaEditor/plugins/mediaDimension/tpl/mediaDimension.tpl +55 -55
- package/src/mediaEditor/tpl/editor.tpl +4 -4
- package/src/mediaplayer/css/player.css +7 -7
- package/src/mediaplayer/css/player.css.map +1 -1
- package/src/mediaplayer/players/html5.js +564 -564
- package/src/mediaplayer/players/youtube.js +323 -323
- package/src/mediaplayer/players.js +29 -29
- package/src/mediaplayer/readme.md +305 -305
- package/src/mediaplayer/scss/player.scss +569 -569
- package/src/mediaplayer/support.js +126 -126
- package/src/mediaplayer/tpl/audio.tpl +6 -6
- package/src/mediaplayer/tpl/player.tpl +37 -37
- package/src/mediaplayer/tpl/source.tpl +1 -1
- package/src/mediaplayer/tpl/video.tpl +6 -6
- package/src/mediaplayer/tpl/youtube.tpl +1 -1
- package/src/mediaplayer/utils/reminder.js +184 -184
- package/src/mediaplayer/utils/timeObserver.js +143 -143
- package/src/mediaplayer/youtubeManager.js +161 -161
- package/src/mediaplayer.js +1606 -1606
- package/src/mediasizer/mediasizer.tpl +55 -55
- package/src/mediasizer.js +635 -635
- package/src/modal.js +365 -365
- package/src/movableComponent.js +78 -78
- package/src/pageSizeSelector/tpl/pageSizeSelector.tpl +9 -9
- package/src/pageSizeSelector.js +106 -106
- package/src/pageStatus.js +147 -147
- package/src/pagination/css/pagination.css +7 -7
- package/src/pagination/css/pagination.css.map +1 -1
- package/src/pagination/paginationStrategy.js +53 -53
- package/src/pagination/providers/pages.js +161 -161
- package/src/pagination/providers/simple.js +74 -74
- package/src/pagination/providers/tpl/pages/page.tpl +1 -1
- package/src/pagination/providers/tpl/pages.tpl +8 -8
- package/src/pagination/providers/tpl/simple.tpl +7 -7
- package/src/pagination/scss/pagination.scss +111 -111
- package/src/pagination.js +237 -237
- package/src/previewer.js +300 -300
- package/src/progressbar.js +165 -165
- package/src/propertySelector/css/propertySelector.css +7 -7
- package/src/propertySelector/css/propertySelector.css.map +1 -1
- package/src/propertySelector/propertySelector.js +286 -286
- package/src/propertySelector/scss/propertySelector.scss +66 -66
- package/src/propertySelector/tpl/property-description.tpl +12 -12
- package/src/propertySelector/tpl/property-selector.tpl +6 -6
- package/src/report/feedback.tpl +11 -11
- package/src/report/layout.tpl +10 -10
- package/src/report.js +184 -184
- package/src/resource/css/selector.css +7 -7
- package/src/resource/css/selector.css.map +1 -1
- package/src/resource/filters.js +208 -208
- package/src/resource/list.js +200 -200
- package/src/resource/scss/_filters.scss +26 -26
- package/src/resource/scss/_resource-list.scss +107 -107
- package/src/resource/scss/_resource-tree.scss +205 -205
- package/src/resource/scss/selector.scss +187 -187
- package/src/resource/selectable.js +322 -322
- package/src/resource/selector.js +871 -871
- package/src/resource/tpl/filters.tpl +2 -2
- package/src/resource/tpl/list.tpl +7 -7
- package/src/resource/tpl/listNode.tpl +4 -4
- package/src/resource/tpl/selector.tpl +46 -46
- package/src/resource/tpl/tree.tpl +4 -4
- package/src/resource/tpl/treeNode.tpl +30 -30
- package/src/resource/tree.js +398 -398
- package/src/resourcemgr/css/resourcemgr.css +7 -7
- package/src/resourcemgr/css/resourcemgr.css.map +1 -1
- package/src/resourcemgr/fileBrowser.js +381 -381
- package/src/resourcemgr/filePreview.js +73 -73
- package/src/resourcemgr/fileSelector.js +322 -322
- package/src/resourcemgr/scss/resourcemgr.scss +254 -254
- package/src/resourcemgr/tpl/fileSelect.tpl +39 -39
- package/src/resourcemgr/tpl/folder.tpl +11 -11
- package/src/resourcemgr/tpl/layout.tpl +84 -84
- package/src/resourcemgr/tpl/rootFolder.tpl +13 -13
- package/src/resourcemgr/util/updatePermissions.js +53 -53
- package/src/resourcemgr.js +216 -216
- package/src/scroller.js +94 -94
- package/src/scss/basic.scss +16 -16
- package/src/searchModal/advancedSearch.js +638 -638
- package/src/searchModal/css/advancedSearch.css +7 -7
- package/src/searchModal/css/advancedSearch.css.map +1 -1
- package/src/searchModal/css/searchModal.css +7 -7
- package/src/searchModal/css/searchModal.css.map +1 -1
- package/src/searchModal/scss/advancedSearch.scss +171 -171
- package/src/searchModal/scss/searchModal.scss +393 -393
- package/src/searchModal/tpl/advanced-search.tpl +9 -9
- package/src/searchModal/tpl/info-message.tpl +3 -3
- package/src/searchModal/tpl/invalid-criteria-warning.tpl +10 -10
- package/src/searchModal/tpl/layout.tpl +27 -27
- package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -17
- package/src/searchModal/tpl/list-select-criterion.tpl +12 -12
- package/src/searchModal/tpl/text-criterion.tpl +11 -11
- package/src/searchModal.js +760 -760
- package/src/selecter.js +43 -43
- package/src/stacker.js +133 -133
- package/src/switch/css/switch.css +7 -7
- package/src/switch/css/switch.css.map +1 -1
- package/src/switch/scss/switch.scss +83 -83
- package/src/switch/switch.js +195 -195
- package/src/switch/tpl/switch.tpl +7 -7
- package/src/tableModel.js +112 -112
- package/src/tabs/css/tabs.css +12 -12
- package/src/tabs/css/tabs.css.map +1 -1
- package/src/tabs/scss/tabs.scss +50 -50
- package/src/tabs/tpl/panel.tpl +3 -3
- package/src/tabs/tpl/tabs.tpl +10 -10
- package/src/tabs.js +528 -528
- package/src/taskQueue/css/taskQueue.css +7 -7
- package/src/taskQueue/css/taskQueue.css.map +1 -1
- package/src/taskQueue/scss/taskQueue.scss +47 -47
- package/src/taskQueue/status.js +228 -228
- package/src/taskQueue/table.js +350 -350
- package/src/taskQueue/taskQueue.js +33 -33
- package/src/taskQueue/taskQueueModel.js +548 -548
- package/src/taskQueue/tpl/statusMessage.tpl +7 -7
- package/src/taskQueue.js +216 -216
- package/src/taskQueueButton/css/taskable.css +7 -7
- package/src/taskQueueButton/css/taskable.css.map +1 -1
- package/src/taskQueueButton/css/treeButton.css +7 -7
- package/src/taskQueueButton/css/treeButton.css.map +1 -1
- package/src/taskQueueButton/scss/taskable.scss +4 -4
- package/src/taskQueueButton/scss/treeButton.scss +34 -34
- package/src/taskQueueButton/standardButton.js +108 -108
- package/src/taskQueueButton/taskable.js +202 -202
- package/src/taskQueueButton/tpl/report.tpl +5 -5
- package/src/taskQueueButton/tpl/treeButton.tpl +6 -6
- package/src/taskQueueButton/treeButton.js +108 -108
- package/src/themeLoader.js +252 -252
- package/src/themes.js +162 -162
- package/src/toggler.js +200 -200
- package/src/tooltip/default.tpl +3 -3
- package/src/tooltip.js +160 -160
- package/src/tooltipster.js +25 -25
- package/src/transformer.js +327 -327
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/src/tristateCheckboxGroup/scss/tristateCheckboxGroup.scss +15 -15
- package/src/tristateCheckboxGroup/tpl/li.tpl +6 -6
- package/src/tristateCheckboxGroup.js +207 -207
- package/src/uploader/fileEntry.tpl +6 -6
- package/src/uploader/uploader.tpl +32 -32
- package/src/uploader.js +594 -594
- package/src/validator/Report.js +10 -10
- package/src/validator/Validator.js +108 -108
- package/src/validator/validators.js +217 -217
- package/src/validator.js +262 -262
- package/src/waitForMedia.js +82 -82
- package/src/waitingDialog/css/waitingDialog.css +7 -7
- package/src/waitingDialog/css/waitingDialog.css.map +1 -1
- package/src/waitingDialog/scss/waitingDialog.scss +34 -34
- package/src/waitingDialog/waitingDialog.js +240 -240
|
@@ -1,202 +1,202 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This program is free software; you can redistribute it and/or
|
|
3
|
-
* modify it under the terms of the GNU General Public License
|
|
4
|
-
* as published by the Free Software Foundation; under version 2
|
|
5
|
-
* of the License (non-upgradable).
|
|
6
|
-
*
|
|
7
|
-
* This program is distributed in the hope that it will be useful,
|
|
8
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
-
* GNU General Public License for more details.
|
|
11
|
-
*
|
|
12
|
-
* You should have received a copy of the GNU General Public License
|
|
13
|
-
* along with this program; if not, write to the Free Software
|
|
14
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
-
*
|
|
16
|
-
* Copyright (c) 2017 (original work) Open Assessment Technologies SA;
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Add the task creation capability to a component
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* makeTaskable(component)
|
|
24
|
-
* .setTaskConfig({
|
|
25
|
-
* taskQueue : taskQueue,
|
|
26
|
-
* taskCreationUrl : 'the/url/to/task/creation/service',
|
|
27
|
-
* taskCreationData : function(){
|
|
28
|
-
* return {some: 'data'};
|
|
29
|
-
* }
|
|
30
|
-
* }).createTask();
|
|
31
|
-
*
|
|
32
|
-
* @author Sam <sam@taotesting.com>
|
|
33
|
-
*/
|
|
34
|
-
import $ from 'jquery';
|
|
35
|
-
import _ from 'lodash';
|
|
36
|
-
import __ from 'i18n';
|
|
37
|
-
import reportFactory from 'ui/report';
|
|
38
|
-
import feedback from 'ui/feedback';
|
|
39
|
-
import loadingBar from 'layout/loading-bar';
|
|
40
|
-
import reportTpl from 'ui/taskQueueButton/tpl/report';
|
|
41
|
-
import 'ui/taskQueueButton/css/taskable.css';
|
|
42
|
-
|
|
43
|
-
var defaultConfig = {};
|
|
44
|
-
|
|
45
|
-
var taskableComponent = {
|
|
46
|
-
/**
|
|
47
|
-
* Set configuration for task creation
|
|
48
|
-
* @param config
|
|
49
|
-
* @returns {taskableComponent}
|
|
50
|
-
*/
|
|
51
|
-
setTaskConfig: function setTaskConfig(config) {
|
|
52
|
-
_.assign(this.config, config);
|
|
53
|
-
return this;
|
|
54
|
-
},
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Create a task
|
|
58
|
-
* @param requestUrl
|
|
59
|
-
* @param requestData
|
|
60
|
-
*/
|
|
61
|
-
createTask: function createTask() {
|
|
62
|
-
var self = this;
|
|
63
|
-
var taskQueue,
|
|
64
|
-
requestUrl,
|
|
65
|
-
requestData = {};
|
|
66
|
-
|
|
67
|
-
//prepare the request parameter if applicable
|
|
68
|
-
if (_.isFunction(this.config.taskCreationData)) {
|
|
69
|
-
requestData = this.config.taskCreationData.call(this);
|
|
70
|
-
} else if (_.isPlainObject(this.config.taskCreationData)) {
|
|
71
|
-
requestData = this.config.taskCreationData;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (!this.config.taskCreationUrl) {
|
|
75
|
-
return this.trigger('error', 'the request url is required to create a task');
|
|
76
|
-
}
|
|
77
|
-
requestUrl = this.config.taskCreationUrl;
|
|
78
|
-
|
|
79
|
-
if (!this.config.taskQueue) {
|
|
80
|
-
return this.trigger('error', 'the taskQueue model is required to create a task');
|
|
81
|
-
}
|
|
82
|
-
taskQueue = this.config.taskQueue;
|
|
83
|
-
|
|
84
|
-
loadingBar.start();
|
|
85
|
-
taskQueue.pollAllStop();
|
|
86
|
-
taskQueue
|
|
87
|
-
.create(requestUrl, requestData)
|
|
88
|
-
.then(function(result) {
|
|
89
|
-
var infoBox,
|
|
90
|
-
message,
|
|
91
|
-
task = result.task;
|
|
92
|
-
|
|
93
|
-
if (result.finished) {
|
|
94
|
-
if (task.hasFile) {
|
|
95
|
-
//download if its is a export-typed task
|
|
96
|
-
taskQueue
|
|
97
|
-
.download(task.id)
|
|
98
|
-
.then(function() {
|
|
99
|
-
//immediately archive the finished task as there is no need to display this task in the queue list
|
|
100
|
-
return taskQueue.archive(task.id);
|
|
101
|
-
})
|
|
102
|
-
.then(function() {
|
|
103
|
-
self.trigger('finished', result);
|
|
104
|
-
taskQueue.pollAll();
|
|
105
|
-
})
|
|
106
|
-
.catch(function(err) {
|
|
107
|
-
self.trigger('error', err);
|
|
108
|
-
taskQueue.pollAll();
|
|
109
|
-
});
|
|
110
|
-
} else {
|
|
111
|
-
//immediately archive the finished task as there is no need to display this task in the queue list
|
|
112
|
-
taskQueue
|
|
113
|
-
.archive(task.id)
|
|
114
|
-
.then(function() {
|
|
115
|
-
self.trigger('finished', result);
|
|
116
|
-
taskQueue.pollAll();
|
|
117
|
-
})
|
|
118
|
-
.catch(function(err) {
|
|
119
|
-
self.trigger('error', err);
|
|
120
|
-
taskQueue.pollAll();
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
} else {
|
|
124
|
-
//enqueuing process:
|
|
125
|
-
message = __('<strong> %s </strong> has been moved to the background.', task.taskLabel);
|
|
126
|
-
infoBox = feedback(null, {
|
|
127
|
-
encodeHtml: false,
|
|
128
|
-
timeout: { info: 8000 }
|
|
129
|
-
}).info(message);
|
|
130
|
-
|
|
131
|
-
taskQueue.trigger('taskcreated', { task: task, sourceDom: infoBox.getElement() });
|
|
132
|
-
self.trigger('enqueued', result);
|
|
133
|
-
}
|
|
134
|
-
loadingBar.stop();
|
|
135
|
-
})
|
|
136
|
-
.catch(function(err) {
|
|
137
|
-
//in case of error display it and continue task queue activity
|
|
138
|
-
taskQueue.pollAll();
|
|
139
|
-
loadingBar.stop();
|
|
140
|
-
self.trigger('error', err);
|
|
141
|
-
});
|
|
142
|
-
},
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* prepare the given container to display the final report
|
|
146
|
-
* @param {Object} report - the standard report object
|
|
147
|
-
* @param {String} title - the report title
|
|
148
|
-
* @param {String} result - raw result data from the task creation action
|
|
149
|
-
*/
|
|
150
|
-
displayReport: function displayReport(report, title, result) {
|
|
151
|
-
var self = this,
|
|
152
|
-
$reportContainer;
|
|
153
|
-
|
|
154
|
-
if (this.config.taskReportContainer instanceof $) {
|
|
155
|
-
$reportContainer = $(
|
|
156
|
-
reportTpl({
|
|
157
|
-
title: title
|
|
158
|
-
})
|
|
159
|
-
);
|
|
160
|
-
|
|
161
|
-
this.config.taskReportContainer.html($reportContainer);
|
|
162
|
-
|
|
163
|
-
return reportFactory(
|
|
164
|
-
{
|
|
165
|
-
actions: [
|
|
166
|
-
{
|
|
167
|
-
id: 'continue',
|
|
168
|
-
icon: 'right',
|
|
169
|
-
title: 'continue',
|
|
170
|
-
label: __('Continue')
|
|
171
|
-
}
|
|
172
|
-
]
|
|
173
|
-
},
|
|
174
|
-
report
|
|
175
|
-
)
|
|
176
|
-
.on('action-continue', function() {
|
|
177
|
-
self.trigger('continue', result);
|
|
178
|
-
})
|
|
179
|
-
.render($reportContainer.find('.report'));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* @param {Component} component - an instance of ui/component
|
|
186
|
-
* @param {Object} config - task queue creation specific config
|
|
187
|
-
* @param {Object} config.taskQueue - the task queue model to be used
|
|
188
|
-
* @param {String} config.taskCreationUrl - endpoint to create a task
|
|
189
|
-
* @param {Object|Function} [config.taskCreationData] - the parameters that will be send to the task creation request
|
|
190
|
-
* @param {JQuery} [config.taskReportContainer] - the container where the inline report can be printed to
|
|
191
|
-
* @return {taskableComponent}
|
|
192
|
-
*/
|
|
193
|
-
export default function makeTaskable(component, config) {
|
|
194
|
-
_.assign(component, taskableComponent);
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* @typedef {ui/component} taskableComponent
|
|
198
|
-
*/
|
|
199
|
-
return component.off('.taskable').on('init.taskable', function() {
|
|
200
|
-
_.defaults(this.config, config || {}, defaultConfig);
|
|
201
|
-
});
|
|
202
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* This program is free software; you can redistribute it and/or
|
|
3
|
+
* modify it under the terms of the GNU General Public License
|
|
4
|
+
* as published by the Free Software Foundation; under version 2
|
|
5
|
+
* of the License (non-upgradable).
|
|
6
|
+
*
|
|
7
|
+
* This program is distributed in the hope that it will be useful,
|
|
8
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
+
* GNU General Public License for more details.
|
|
11
|
+
*
|
|
12
|
+
* You should have received a copy of the GNU General Public License
|
|
13
|
+
* along with this program; if not, write to the Free Software
|
|
14
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
*
|
|
16
|
+
* Copyright (c) 2017 (original work) Open Assessment Technologies SA;
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Add the task creation capability to a component
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* makeTaskable(component)
|
|
24
|
+
* .setTaskConfig({
|
|
25
|
+
* taskQueue : taskQueue,
|
|
26
|
+
* taskCreationUrl : 'the/url/to/task/creation/service',
|
|
27
|
+
* taskCreationData : function(){
|
|
28
|
+
* return {some: 'data'};
|
|
29
|
+
* }
|
|
30
|
+
* }).createTask();
|
|
31
|
+
*
|
|
32
|
+
* @author Sam <sam@taotesting.com>
|
|
33
|
+
*/
|
|
34
|
+
import $ from 'jquery';
|
|
35
|
+
import _ from 'lodash';
|
|
36
|
+
import __ from 'i18n';
|
|
37
|
+
import reportFactory from 'ui/report';
|
|
38
|
+
import feedback from 'ui/feedback';
|
|
39
|
+
import loadingBar from 'layout/loading-bar';
|
|
40
|
+
import reportTpl from 'ui/taskQueueButton/tpl/report';
|
|
41
|
+
import 'ui/taskQueueButton/css/taskable.css';
|
|
42
|
+
|
|
43
|
+
var defaultConfig = {};
|
|
44
|
+
|
|
45
|
+
var taskableComponent = {
|
|
46
|
+
/**
|
|
47
|
+
* Set configuration for task creation
|
|
48
|
+
* @param config
|
|
49
|
+
* @returns {taskableComponent}
|
|
50
|
+
*/
|
|
51
|
+
setTaskConfig: function setTaskConfig(config) {
|
|
52
|
+
_.assign(this.config, config);
|
|
53
|
+
return this;
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Create a task
|
|
58
|
+
* @param requestUrl
|
|
59
|
+
* @param requestData
|
|
60
|
+
*/
|
|
61
|
+
createTask: function createTask() {
|
|
62
|
+
var self = this;
|
|
63
|
+
var taskQueue,
|
|
64
|
+
requestUrl,
|
|
65
|
+
requestData = {};
|
|
66
|
+
|
|
67
|
+
//prepare the request parameter if applicable
|
|
68
|
+
if (_.isFunction(this.config.taskCreationData)) {
|
|
69
|
+
requestData = this.config.taskCreationData.call(this);
|
|
70
|
+
} else if (_.isPlainObject(this.config.taskCreationData)) {
|
|
71
|
+
requestData = this.config.taskCreationData;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (!this.config.taskCreationUrl) {
|
|
75
|
+
return this.trigger('error', 'the request url is required to create a task');
|
|
76
|
+
}
|
|
77
|
+
requestUrl = this.config.taskCreationUrl;
|
|
78
|
+
|
|
79
|
+
if (!this.config.taskQueue) {
|
|
80
|
+
return this.trigger('error', 'the taskQueue model is required to create a task');
|
|
81
|
+
}
|
|
82
|
+
taskQueue = this.config.taskQueue;
|
|
83
|
+
|
|
84
|
+
loadingBar.start();
|
|
85
|
+
taskQueue.pollAllStop();
|
|
86
|
+
taskQueue
|
|
87
|
+
.create(requestUrl, requestData)
|
|
88
|
+
.then(function(result) {
|
|
89
|
+
var infoBox,
|
|
90
|
+
message,
|
|
91
|
+
task = result.task;
|
|
92
|
+
|
|
93
|
+
if (result.finished) {
|
|
94
|
+
if (task.hasFile) {
|
|
95
|
+
//download if its is a export-typed task
|
|
96
|
+
taskQueue
|
|
97
|
+
.download(task.id)
|
|
98
|
+
.then(function() {
|
|
99
|
+
//immediately archive the finished task as there is no need to display this task in the queue list
|
|
100
|
+
return taskQueue.archive(task.id);
|
|
101
|
+
})
|
|
102
|
+
.then(function() {
|
|
103
|
+
self.trigger('finished', result);
|
|
104
|
+
taskQueue.pollAll();
|
|
105
|
+
})
|
|
106
|
+
.catch(function(err) {
|
|
107
|
+
self.trigger('error', err);
|
|
108
|
+
taskQueue.pollAll();
|
|
109
|
+
});
|
|
110
|
+
} else {
|
|
111
|
+
//immediately archive the finished task as there is no need to display this task in the queue list
|
|
112
|
+
taskQueue
|
|
113
|
+
.archive(task.id)
|
|
114
|
+
.then(function() {
|
|
115
|
+
self.trigger('finished', result);
|
|
116
|
+
taskQueue.pollAll();
|
|
117
|
+
})
|
|
118
|
+
.catch(function(err) {
|
|
119
|
+
self.trigger('error', err);
|
|
120
|
+
taskQueue.pollAll();
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
} else {
|
|
124
|
+
//enqueuing process:
|
|
125
|
+
message = __('<strong> %s </strong> has been moved to the background.', task.taskLabel);
|
|
126
|
+
infoBox = feedback(null, {
|
|
127
|
+
encodeHtml: false,
|
|
128
|
+
timeout: { info: 8000 }
|
|
129
|
+
}).info(message);
|
|
130
|
+
|
|
131
|
+
taskQueue.trigger('taskcreated', { task: task, sourceDom: infoBox.getElement() });
|
|
132
|
+
self.trigger('enqueued', result);
|
|
133
|
+
}
|
|
134
|
+
loadingBar.stop();
|
|
135
|
+
})
|
|
136
|
+
.catch(function(err) {
|
|
137
|
+
//in case of error display it and continue task queue activity
|
|
138
|
+
taskQueue.pollAll();
|
|
139
|
+
loadingBar.stop();
|
|
140
|
+
self.trigger('error', err);
|
|
141
|
+
});
|
|
142
|
+
},
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* prepare the given container to display the final report
|
|
146
|
+
* @param {Object} report - the standard report object
|
|
147
|
+
* @param {String} title - the report title
|
|
148
|
+
* @param {String} result - raw result data from the task creation action
|
|
149
|
+
*/
|
|
150
|
+
displayReport: function displayReport(report, title, result) {
|
|
151
|
+
var self = this,
|
|
152
|
+
$reportContainer;
|
|
153
|
+
|
|
154
|
+
if (this.config.taskReportContainer instanceof $) {
|
|
155
|
+
$reportContainer = $(
|
|
156
|
+
reportTpl({
|
|
157
|
+
title: title
|
|
158
|
+
})
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
this.config.taskReportContainer.html($reportContainer);
|
|
162
|
+
|
|
163
|
+
return reportFactory(
|
|
164
|
+
{
|
|
165
|
+
actions: [
|
|
166
|
+
{
|
|
167
|
+
id: 'continue',
|
|
168
|
+
icon: 'right',
|
|
169
|
+
title: 'continue',
|
|
170
|
+
label: __('Continue')
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
report
|
|
175
|
+
)
|
|
176
|
+
.on('action-continue', function() {
|
|
177
|
+
self.trigger('continue', result);
|
|
178
|
+
})
|
|
179
|
+
.render($reportContainer.find('.report'));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* @param {Component} component - an instance of ui/component
|
|
186
|
+
* @param {Object} config - task queue creation specific config
|
|
187
|
+
* @param {Object} config.taskQueue - the task queue model to be used
|
|
188
|
+
* @param {String} config.taskCreationUrl - endpoint to create a task
|
|
189
|
+
* @param {Object|Function} [config.taskCreationData] - the parameters that will be send to the task creation request
|
|
190
|
+
* @param {JQuery} [config.taskReportContainer] - the container where the inline report can be printed to
|
|
191
|
+
* @return {taskableComponent}
|
|
192
|
+
*/
|
|
193
|
+
export default function makeTaskable(component, config) {
|
|
194
|
+
_.assign(component, taskableComponent);
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* @typedef {ui/component} taskableComponent
|
|
198
|
+
*/
|
|
199
|
+
return component.off('.taskable').on('init.taskable', function() {
|
|
200
|
+
_.defaults(this.config, config || {}, defaultConfig);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
<div class="task-report-container">
|
|
2
|
-
<div class="section-header flex-container-full">
|
|
3
|
-
<h2>{{title}}</h2>
|
|
4
|
-
</div>
|
|
5
|
-
<div class="main-container flex-container-full report"></div>
|
|
1
|
+
<div class="task-report-container">
|
|
2
|
+
<div class="section-header flex-container-full">
|
|
3
|
+
<h2>{{title}}</h2>
|
|
4
|
+
</div>
|
|
5
|
+
<div class="main-container flex-container-full report"></div>
|
|
6
6
|
</div>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
<div class="tree-button-component">
|
|
2
|
-
<a class="li-inner">
|
|
3
|
-
<span class="spinner-icon icon-loop spinning"></span>
|
|
4
|
-
<span class="glyph start-icon icon-{{icon}}"></span>
|
|
5
|
-
{{label}}
|
|
6
|
-
</a>
|
|
1
|
+
<div class="tree-button-component">
|
|
2
|
+
<a class="li-inner">
|
|
3
|
+
<span class="spinner-icon icon-loop spinning"></span>
|
|
4
|
+
<span class="glyph start-icon icon-{{icon}}"></span>
|
|
5
|
+
{{label}}
|
|
6
|
+
</a>
|
|
7
7
|
</div>
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This program is free software; you can redistribute it and/or
|
|
3
|
-
* modify it under the terms of the GNU General Public License
|
|
4
|
-
* as published by the Free Software Foundation; under version 2
|
|
5
|
-
* of the License (non-upgradable).
|
|
6
|
-
*
|
|
7
|
-
* This program is distributed in the hope that it will be useful,
|
|
8
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
-
* GNU General Public License for more details.
|
|
11
|
-
*
|
|
12
|
-
* You should have received a copy of the GNU General Public License
|
|
13
|
-
* along with this program; if not, write to the Free Software
|
|
14
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
-
*
|
|
16
|
-
* Copyright (c) 2017 (original work) Open Assessment Technologies SA ;
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* A button component used to trigger lengthy action from the tree
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* treeTaskButtonFactory({
|
|
24
|
-
* icon : 'export',
|
|
25
|
-
* label : __('Export CSV'),
|
|
26
|
-
* taskQueue : taskQueue,
|
|
27
|
-
* taskCreationUrl : 'the/url/to/task/creation/service',
|
|
28
|
-
* }).render($container).start();
|
|
29
|
-
*
|
|
30
|
-
* @example defer the definition of the taskCreationUrl later:
|
|
31
|
-
* var button = treeTaskButtonFactory({
|
|
32
|
-
* icon : 'export',
|
|
33
|
-
* label : __('Export CSV'),
|
|
34
|
-
* taskQueue : taskQueue
|
|
35
|
-
* }).render($container).start();
|
|
36
|
-
* button.setTaskConfig({taskCreationUrl : 'the/url/to/task/creation/service'}).start();
|
|
37
|
-
*
|
|
38
|
-
* @author Sam <sam@taotesting.com>
|
|
39
|
-
*/
|
|
40
|
-
|
|
41
|
-
import _ from 'lodash';
|
|
42
|
-
import component from 'ui/component';
|
|
43
|
-
import makeTaskable from 'ui/taskQueueButton/taskable';
|
|
44
|
-
import buttonTpl from 'ui/taskQueueButton/tpl/treeButton';
|
|
45
|
-
import 'ui/taskQueueButton/css/treeButton.css';
|
|
46
|
-
|
|
47
|
-
var _defaults = {
|
|
48
|
-
icon: 'property-advanced',
|
|
49
|
-
label: 'OK'
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
var buttonApi = {
|
|
53
|
-
/**
|
|
54
|
-
* Start the button spinning
|
|
55
|
-
* @returns {treeTaskButton}
|
|
56
|
-
*/
|
|
57
|
-
start: function start() {
|
|
58
|
-
this.createTask();
|
|
59
|
-
this.setState('started', true);
|
|
60
|
-
this.trigger('start');
|
|
61
|
-
return this;
|
|
62
|
-
},
|
|
63
|
-
/**
|
|
64
|
-
* Stop the button spinning
|
|
65
|
-
* @returns {treeTaskButton}
|
|
66
|
-
*/
|
|
67
|
-
stop: function stop() {
|
|
68
|
-
if (this.is('started')) {
|
|
69
|
-
this.setState('started', false);
|
|
70
|
-
this.trigger('stop');
|
|
71
|
-
}
|
|
72
|
-
return this;
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Create a button that will trigger a task creation when clicked
|
|
78
|
-
*
|
|
79
|
-
* @param {Object} config - the component config
|
|
80
|
-
* @param {String} config.icon - the button icon
|
|
81
|
-
* @param {String} config.label - the button's label
|
|
82
|
-
* @param {Object} config.taskQueue - the task queue model to be used
|
|
83
|
-
* @param {String} config.taskCreationUrl - endpoint to create a task
|
|
84
|
-
* @param {Object|Function} [config.taskCreationData] - the parameters that will be send to the task creation request
|
|
85
|
-
* @param {JQuery} [config.taskReportContainer] - the container where the inline report can be printed to
|
|
86
|
-
* @return {treeTaskButton} the component
|
|
87
|
-
*
|
|
88
|
-
* @event start - When the button starts spinning
|
|
89
|
-
* @event stop - When the button stops spinning
|
|
90
|
-
* @event finished - When task is finished within the polling duration allowed by the task queue model
|
|
91
|
-
* @event enqueued - when task has not time to finish within the polling duration allowed by the task queue model
|
|
92
|
-
*/
|
|
93
|
-
export default function treeTaskButtonFactory(config) {
|
|
94
|
-
var initConfig = _.defaults(config || {}, _defaults);
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* @typedef {treeTaskButton} the component
|
|
98
|
-
*/
|
|
99
|
-
return makeTaskable(component(buttonApi))
|
|
100
|
-
.on('finished', function () {
|
|
101
|
-
this.stop();
|
|
102
|
-
})
|
|
103
|
-
.on('enqueued', function () {
|
|
104
|
-
this.stop();
|
|
105
|
-
})
|
|
106
|
-
.setTemplate(buttonTpl)
|
|
107
|
-
.init(initConfig);
|
|
108
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* This program is free software; you can redistribute it and/or
|
|
3
|
+
* modify it under the terms of the GNU General Public License
|
|
4
|
+
* as published by the Free Software Foundation; under version 2
|
|
5
|
+
* of the License (non-upgradable).
|
|
6
|
+
*
|
|
7
|
+
* This program is distributed in the hope that it will be useful,
|
|
8
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
+
* GNU General Public License for more details.
|
|
11
|
+
*
|
|
12
|
+
* You should have received a copy of the GNU General Public License
|
|
13
|
+
* along with this program; if not, write to the Free Software
|
|
14
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
*
|
|
16
|
+
* Copyright (c) 2017 (original work) Open Assessment Technologies SA ;
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A button component used to trigger lengthy action from the tree
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* treeTaskButtonFactory({
|
|
24
|
+
* icon : 'export',
|
|
25
|
+
* label : __('Export CSV'),
|
|
26
|
+
* taskQueue : taskQueue,
|
|
27
|
+
* taskCreationUrl : 'the/url/to/task/creation/service',
|
|
28
|
+
* }).render($container).start();
|
|
29
|
+
*
|
|
30
|
+
* @example defer the definition of the taskCreationUrl later:
|
|
31
|
+
* var button = treeTaskButtonFactory({
|
|
32
|
+
* icon : 'export',
|
|
33
|
+
* label : __('Export CSV'),
|
|
34
|
+
* taskQueue : taskQueue
|
|
35
|
+
* }).render($container).start();
|
|
36
|
+
* button.setTaskConfig({taskCreationUrl : 'the/url/to/task/creation/service'}).start();
|
|
37
|
+
*
|
|
38
|
+
* @author Sam <sam@taotesting.com>
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
import _ from 'lodash';
|
|
42
|
+
import component from 'ui/component';
|
|
43
|
+
import makeTaskable from 'ui/taskQueueButton/taskable';
|
|
44
|
+
import buttonTpl from 'ui/taskQueueButton/tpl/treeButton';
|
|
45
|
+
import 'ui/taskQueueButton/css/treeButton.css';
|
|
46
|
+
|
|
47
|
+
var _defaults = {
|
|
48
|
+
icon: 'property-advanced',
|
|
49
|
+
label: 'OK'
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var buttonApi = {
|
|
53
|
+
/**
|
|
54
|
+
* Start the button spinning
|
|
55
|
+
* @returns {treeTaskButton}
|
|
56
|
+
*/
|
|
57
|
+
start: function start() {
|
|
58
|
+
this.createTask();
|
|
59
|
+
this.setState('started', true);
|
|
60
|
+
this.trigger('start');
|
|
61
|
+
return this;
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* Stop the button spinning
|
|
65
|
+
* @returns {treeTaskButton}
|
|
66
|
+
*/
|
|
67
|
+
stop: function stop() {
|
|
68
|
+
if (this.is('started')) {
|
|
69
|
+
this.setState('started', false);
|
|
70
|
+
this.trigger('stop');
|
|
71
|
+
}
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Create a button that will trigger a task creation when clicked
|
|
78
|
+
*
|
|
79
|
+
* @param {Object} config - the component config
|
|
80
|
+
* @param {String} config.icon - the button icon
|
|
81
|
+
* @param {String} config.label - the button's label
|
|
82
|
+
* @param {Object} config.taskQueue - the task queue model to be used
|
|
83
|
+
* @param {String} config.taskCreationUrl - endpoint to create a task
|
|
84
|
+
* @param {Object|Function} [config.taskCreationData] - the parameters that will be send to the task creation request
|
|
85
|
+
* @param {JQuery} [config.taskReportContainer] - the container where the inline report can be printed to
|
|
86
|
+
* @return {treeTaskButton} the component
|
|
87
|
+
*
|
|
88
|
+
* @event start - When the button starts spinning
|
|
89
|
+
* @event stop - When the button stops spinning
|
|
90
|
+
* @event finished - When task is finished within the polling duration allowed by the task queue model
|
|
91
|
+
* @event enqueued - when task has not time to finish within the polling duration allowed by the task queue model
|
|
92
|
+
*/
|
|
93
|
+
export default function treeTaskButtonFactory(config) {
|
|
94
|
+
var initConfig = _.defaults(config || {}, _defaults);
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* @typedef {treeTaskButton} the component
|
|
98
|
+
*/
|
|
99
|
+
return makeTaskable(component(buttonApi))
|
|
100
|
+
.on('finished', function () {
|
|
101
|
+
this.stop();
|
|
102
|
+
})
|
|
103
|
+
.on('enqueued', function () {
|
|
104
|
+
this.stop();
|
|
105
|
+
})
|
|
106
|
+
.setTemplate(buttonTpl)
|
|
107
|
+
.init(initConfig);
|
|
108
|
+
}
|