@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
package/src/lock.js
CHANGED
|
@@ -1,393 +1,393 @@
|
|
|
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) 2015 (original work) Open Assessment Technologies SA;
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
import $ from 'jquery';
|
|
22
|
-
import _ from 'lodash';
|
|
23
|
-
import __ from 'i18n';
|
|
24
|
-
import tpl from 'ui/lock/lock';
|
|
25
|
-
import helpers from 'helpers';
|
|
26
|
-
import feedback from 'ui/feedback';
|
|
27
|
-
|
|
28
|
-
//keep a reference to alive lock
|
|
29
|
-
var currents = [];
|
|
30
|
-
|
|
31
|
-
//contains the reference to the main lock box. We expect other containers to be only edge cases.
|
|
32
|
-
var $lockBox;
|
|
33
|
-
|
|
34
|
-
//lock levels are divided into 2 categories
|
|
35
|
-
var categories = {
|
|
36
|
-
hasLock: 'info',
|
|
37
|
-
locked: 'error'
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
//lock's states
|
|
41
|
-
var states = {
|
|
42
|
-
created: 'created',
|
|
43
|
-
displayed: 'displayed',
|
|
44
|
-
closed: 'closed'
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
//the default options
|
|
48
|
-
var defaultOptions = {
|
|
49
|
-
msg: __('This resource is locked'),
|
|
50
|
-
releaseUrl: helpers._url('release', 'Lock', 'tao'),
|
|
51
|
-
commitUrl: helpers._url('commitResource', 'History', 'taoRevision')
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Object delegation. This enables us to separate the instance from Api.
|
|
56
|
-
* An instance can call methods from the API like it was it, so each object will not contain the function definition.
|
|
57
|
-
* @private
|
|
58
|
-
* @param {Object} receiver - the object that receive the methods
|
|
59
|
-
* @param {Object} provider - it provides the methods to the receiver
|
|
60
|
-
* @returns {Object} the receiver augmented by the provider's methods.
|
|
61
|
-
*/
|
|
62
|
-
function delegate(receiver, provider) {
|
|
63
|
-
_(provider)
|
|
64
|
-
.functions()
|
|
65
|
-
.forEach(function delegateMethod(methodName) {
|
|
66
|
-
receiver[methodName] = function applyDelegated() {
|
|
67
|
-
return provider[methodName].apply(receiver, arguments);
|
|
68
|
-
};
|
|
69
|
-
});
|
|
70
|
-
return receiver;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* It provides the lock behavior
|
|
75
|
-
* @typedef lockApi
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* @param {Object} [options] - the plugin options
|
|
79
|
-
* @param {String} [options.uri = ''] - The uri of the selected resource
|
|
80
|
-
* @param {String} [options.releaseUrl = ''] - The url to call to release the lock
|
|
81
|
-
* @param {String} [options.commitUrl = ''] - The url to call to commit the resource
|
|
82
|
-
*/
|
|
83
|
-
const lockApi = {
|
|
84
|
-
level: null,
|
|
85
|
-
|
|
86
|
-
category: null,
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* generate the lock with the right options
|
|
90
|
-
*
|
|
91
|
-
* @example lock().message();
|
|
92
|
-
* @param {String} [category] - the category of the lock (hasLock or locked)
|
|
93
|
-
* @param {String} [msg] - the message to display
|
|
94
|
-
* @param {Object} [options] - the plugin options
|
|
95
|
-
* @fires create.lock
|
|
96
|
-
* @returns {lockApi}
|
|
97
|
-
*/
|
|
98
|
-
message: function message(category, msg, options) {
|
|
99
|
-
if (!category || !_.contains(_.keys(categories), category)) {
|
|
100
|
-
category = 'hasLock';
|
|
101
|
-
}
|
|
102
|
-
this.setState(states.created);
|
|
103
|
-
|
|
104
|
-
this.category = category;
|
|
105
|
-
this.level = _.result(categories, this.category);
|
|
106
|
-
this.options = _.defaults(options || {}, defaultOptions);
|
|
107
|
-
|
|
108
|
-
this.content = tpl({
|
|
109
|
-
level: this.level,
|
|
110
|
-
msg: msg
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
this._trigger('create');
|
|
114
|
-
|
|
115
|
-
return this;
|
|
116
|
-
},
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* generate the lock with the right options and open it
|
|
120
|
-
*
|
|
121
|
-
* @example lock().hasLock();
|
|
122
|
-
* @param {String} [msg] - the message to display
|
|
123
|
-
* @param {Object} [options] - the plugin options
|
|
124
|
-
* @returns {lockApi}
|
|
125
|
-
*/
|
|
126
|
-
hasLock: function hasLock(msg, options) {
|
|
127
|
-
return this.message('hasLock', msg, options).open();
|
|
128
|
-
},
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* generate the lock with the right options and open it
|
|
132
|
-
*
|
|
133
|
-
* @example lock().locked();
|
|
134
|
-
* @param {String} [msg] - the message to display
|
|
135
|
-
* @param {Object} [options] - the plugin options
|
|
136
|
-
* @returns {lockApi}
|
|
137
|
-
*/
|
|
138
|
-
locked: function locked(msg, options) {
|
|
139
|
-
return this.message('locked', msg, options).open();
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* open the lock
|
|
144
|
-
* @example lock().message().open();
|
|
145
|
-
* @fires open.lock
|
|
146
|
-
* @returns {lockApi}
|
|
147
|
-
*/
|
|
148
|
-
open: function open() {
|
|
149
|
-
this._trigger('open');
|
|
150
|
-
|
|
151
|
-
// display me
|
|
152
|
-
this.display();
|
|
153
|
-
return this;
|
|
154
|
-
},
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* close the lock
|
|
158
|
-
* @example lock().close();
|
|
159
|
-
* @fires close.lock
|
|
160
|
-
*/
|
|
161
|
-
close: function close() {
|
|
162
|
-
if (this.isInState(states.displayed)) {
|
|
163
|
-
this.setState(states.closed);
|
|
164
|
-
|
|
165
|
-
$('#' + this.id).remove();
|
|
166
|
-
|
|
167
|
-
this._trigger('close');
|
|
168
|
-
|
|
169
|
-
//clean up ref
|
|
170
|
-
_.remove(currents, { _state: states.closed });
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* display the lock
|
|
176
|
-
* @example lock().display();
|
|
177
|
-
* @fires display.lock
|
|
178
|
-
* @returns {lockApi}
|
|
179
|
-
*/
|
|
180
|
-
display: function display() {
|
|
181
|
-
var self = this;
|
|
182
|
-
if (self.content) {
|
|
183
|
-
self.setState(states.displayed);
|
|
184
|
-
|
|
185
|
-
$(self.content).attr('id', self.id).appendTo(self._container);
|
|
186
|
-
|
|
187
|
-
self._trigger('display');
|
|
188
|
-
|
|
189
|
-
if (typeof this.options.uri === 'undefined') {
|
|
190
|
-
$('.release', self._container).hide();
|
|
191
|
-
$('.check-in', self._container).hide();
|
|
192
|
-
} else {
|
|
193
|
-
$('.release', self._container).on('click', function () {
|
|
194
|
-
self.release();
|
|
195
|
-
});
|
|
196
|
-
$('.check-in', self._container).on('click', function () {
|
|
197
|
-
self.commit();
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
return self;
|
|
202
|
-
},
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* call the url to release the lock
|
|
206
|
-
* @example lock().release();
|
|
207
|
-
* @fires released.lock
|
|
208
|
-
* @fires failed.lock
|
|
209
|
-
* @returns {lockApi}
|
|
210
|
-
*/
|
|
211
|
-
release: function release() {
|
|
212
|
-
var self = this;
|
|
213
|
-
if (self.options.releaseUrl !== '') {
|
|
214
|
-
$.ajax({
|
|
215
|
-
url: self.options.releaseUrl,
|
|
216
|
-
type: 'POST',
|
|
217
|
-
data: { uri: self.options.uri },
|
|
218
|
-
dataType: 'json',
|
|
219
|
-
success: function (response) {
|
|
220
|
-
if (response.success) {
|
|
221
|
-
self._trigger('released', response);
|
|
222
|
-
} else {
|
|
223
|
-
self._trigger('failed', response);
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
error: function () {
|
|
227
|
-
self._trigger('failed');
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
} else {
|
|
231
|
-
self._trigger('failed');
|
|
232
|
-
}
|
|
233
|
-
|
|
234
|
-
return this;
|
|
235
|
-
},
|
|
236
|
-
|
|
237
|
-
/**
|
|
238
|
-
* ask a message and call the url to commit the resource
|
|
239
|
-
* @example lock().commit();
|
|
240
|
-
* @fires commit.lock
|
|
241
|
-
* @returns {lockApi}
|
|
242
|
-
*/
|
|
243
|
-
commit: function commit() {
|
|
244
|
-
var self = this;
|
|
245
|
-
if (self.options.commitUrl !== '') {
|
|
246
|
-
$('.message-container', self._container).slideToggle();
|
|
247
|
-
$('.commit', self._container)
|
|
248
|
-
.off('click')
|
|
249
|
-
.on('click', function () {
|
|
250
|
-
var message = $('.message', self._container).val();
|
|
251
|
-
if (message !== '') {
|
|
252
|
-
$.ajax({
|
|
253
|
-
url: self.options.commitUrl,
|
|
254
|
-
type: 'POST',
|
|
255
|
-
data: { id: self.options.uri, message: message },
|
|
256
|
-
dataType: 'json',
|
|
257
|
-
success: function (response) {
|
|
258
|
-
if (response.success) {
|
|
259
|
-
self._trigger('committed', response);
|
|
260
|
-
} else {
|
|
261
|
-
self._trigger('failed', response);
|
|
262
|
-
}
|
|
263
|
-
},
|
|
264
|
-
error: function () {
|
|
265
|
-
self._trigger('failed');
|
|
266
|
-
}
|
|
267
|
-
});
|
|
268
|
-
} else {
|
|
269
|
-
self._trigger('failed', { message: __('Please give a message to your commit') });
|
|
270
|
-
}
|
|
271
|
-
});
|
|
272
|
-
} else {
|
|
273
|
-
self._trigger('failed');
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
return this;
|
|
277
|
-
},
|
|
278
|
-
|
|
279
|
-
/**
|
|
280
|
-
* Default behaviour
|
|
281
|
-
*/
|
|
282
|
-
register: function () {
|
|
283
|
-
var msg = this._container.data('msg') || defaultOptions.msg;
|
|
284
|
-
var id = this._container.data('id');
|
|
285
|
-
return this.message('hasLock', msg, {
|
|
286
|
-
uri: id,
|
|
287
|
-
released: function (response) {
|
|
288
|
-
feedback().success(response.message);
|
|
289
|
-
this.close();
|
|
290
|
-
},
|
|
291
|
-
committed: function (response) {
|
|
292
|
-
feedback().success(response.commitMessage);
|
|
293
|
-
this.close();
|
|
294
|
-
},
|
|
295
|
-
failed: function (response) {
|
|
296
|
-
if (typeof response !== 'undefined' && typeof response.message !== 'undefined') {
|
|
297
|
-
feedback().error(response.message);
|
|
298
|
-
} else {
|
|
299
|
-
feedback().error('Unknown Error');
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
}).open();
|
|
303
|
-
},
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* trigger the event and the callback if exists
|
|
307
|
-
* @param {String} [eventName] - the name of the event, use the caller name if not set
|
|
308
|
-
*/
|
|
309
|
-
_trigger: function _trigger(eventName, data) {
|
|
310
|
-
//trigger the related event
|
|
311
|
-
this._container.trigger(eventName + '.lock', [this]);
|
|
312
|
-
|
|
313
|
-
//run the callback if set in options
|
|
314
|
-
if (_.isFunction(this.options[eventName])) {
|
|
315
|
-
this.options[eventName].call(this, data);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
/**
|
|
321
|
-
* Contains the current state of the lock and accessors
|
|
322
|
-
* @typedef lockState
|
|
323
|
-
*/
|
|
324
|
-
const lockState = {
|
|
325
|
-
//the current state
|
|
326
|
-
_state: null,
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Check if the current state is one of the given values
|
|
330
|
-
* @param {String|Array} verify - the statue to check
|
|
331
|
-
* @returns {Boolean} true if the object is in the state to verify
|
|
332
|
-
*/
|
|
333
|
-
isInState: function isInState(verify) {
|
|
334
|
-
if (_.isString(verify)) {
|
|
335
|
-
verify = [verify];
|
|
336
|
-
}
|
|
337
|
-
return _.contains(verify, this._state);
|
|
338
|
-
},
|
|
339
|
-
|
|
340
|
-
/**
|
|
341
|
-
* Change the current state
|
|
342
|
-
* @param {String} state - the new state
|
|
343
|
-
* @throws {Error} if we try to set an invalid state
|
|
344
|
-
*/
|
|
345
|
-
setState: function setState(state) {
|
|
346
|
-
if (!_.contains(states, state)) {
|
|
347
|
-
throw new Error('Unkown state ' + state);
|
|
348
|
-
}
|
|
349
|
-
this._state = state;
|
|
350
|
-
}
|
|
351
|
-
};
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* Enables you to create a new lock.
|
|
355
|
-
* example lock().error("content");
|
|
356
|
-
* @exports ui/lock
|
|
357
|
-
* @param {jQUeryElement} [$container] - only to specify another container
|
|
358
|
-
* @returns {Object} the lock object
|
|
359
|
-
* @throws {Error} if the container isn't found
|
|
360
|
-
*/
|
|
361
|
-
const lockFactory = function lockFactory($container) {
|
|
362
|
-
var _container;
|
|
363
|
-
if (!$container) {
|
|
364
|
-
$lockBox = $('#lock-box');
|
|
365
|
-
}
|
|
366
|
-
_container = $container || $lockBox;
|
|
367
|
-
|
|
368
|
-
if (!_container || !_container.length) {
|
|
369
|
-
throw new Error('The lock needs to belong to an existing container');
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
//if there is already a lock component in this container close it and open a new one
|
|
373
|
-
_.forEach(currents, function (lockRef) {
|
|
374
|
-
if (lockRef !== null && lockRef._container.get(0) === _container.get(0)) {
|
|
375
|
-
lockRef.close();
|
|
376
|
-
}
|
|
377
|
-
});
|
|
378
|
-
//mixin the new object with the state object
|
|
379
|
-
const lk = _.extend(
|
|
380
|
-
{
|
|
381
|
-
id: 'lock-' + (currents.length + 1),
|
|
382
|
-
_container: _container
|
|
383
|
-
},
|
|
384
|
-
lockState
|
|
385
|
-
);
|
|
386
|
-
|
|
387
|
-
currents.push(lk);
|
|
388
|
-
|
|
389
|
-
//delegate the api calls to the new instance
|
|
390
|
-
return delegate(lk, lockApi);
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
export default lockFactory;
|
|
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) 2015 (original work) Open Assessment Technologies SA;
|
|
17
|
+
*
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import $ from 'jquery';
|
|
22
|
+
import _ from 'lodash';
|
|
23
|
+
import __ from 'i18n';
|
|
24
|
+
import tpl from 'ui/lock/lock';
|
|
25
|
+
import helpers from 'helpers';
|
|
26
|
+
import feedback from 'ui/feedback';
|
|
27
|
+
|
|
28
|
+
//keep a reference to alive lock
|
|
29
|
+
var currents = [];
|
|
30
|
+
|
|
31
|
+
//contains the reference to the main lock box. We expect other containers to be only edge cases.
|
|
32
|
+
var $lockBox;
|
|
33
|
+
|
|
34
|
+
//lock levels are divided into 2 categories
|
|
35
|
+
var categories = {
|
|
36
|
+
hasLock: 'info',
|
|
37
|
+
locked: 'error'
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
//lock's states
|
|
41
|
+
var states = {
|
|
42
|
+
created: 'created',
|
|
43
|
+
displayed: 'displayed',
|
|
44
|
+
closed: 'closed'
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
//the default options
|
|
48
|
+
var defaultOptions = {
|
|
49
|
+
msg: __('This resource is locked'),
|
|
50
|
+
releaseUrl: helpers._url('release', 'Lock', 'tao'),
|
|
51
|
+
commitUrl: helpers._url('commitResource', 'History', 'taoRevision')
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Object delegation. This enables us to separate the instance from Api.
|
|
56
|
+
* An instance can call methods from the API like it was it, so each object will not contain the function definition.
|
|
57
|
+
* @private
|
|
58
|
+
* @param {Object} receiver - the object that receive the methods
|
|
59
|
+
* @param {Object} provider - it provides the methods to the receiver
|
|
60
|
+
* @returns {Object} the receiver augmented by the provider's methods.
|
|
61
|
+
*/
|
|
62
|
+
function delegate(receiver, provider) {
|
|
63
|
+
_(provider)
|
|
64
|
+
.functions()
|
|
65
|
+
.forEach(function delegateMethod(methodName) {
|
|
66
|
+
receiver[methodName] = function applyDelegated() {
|
|
67
|
+
return provider[methodName].apply(receiver, arguments);
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
return receiver;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* It provides the lock behavior
|
|
75
|
+
* @typedef lockApi
|
|
76
|
+
*
|
|
77
|
+
*
|
|
78
|
+
* @param {Object} [options] - the plugin options
|
|
79
|
+
* @param {String} [options.uri = ''] - The uri of the selected resource
|
|
80
|
+
* @param {String} [options.releaseUrl = ''] - The url to call to release the lock
|
|
81
|
+
* @param {String} [options.commitUrl = ''] - The url to call to commit the resource
|
|
82
|
+
*/
|
|
83
|
+
const lockApi = {
|
|
84
|
+
level: null,
|
|
85
|
+
|
|
86
|
+
category: null,
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* generate the lock with the right options
|
|
90
|
+
*
|
|
91
|
+
* @example lock().message();
|
|
92
|
+
* @param {String} [category] - the category of the lock (hasLock or locked)
|
|
93
|
+
* @param {String} [msg] - the message to display
|
|
94
|
+
* @param {Object} [options] - the plugin options
|
|
95
|
+
* @fires create.lock
|
|
96
|
+
* @returns {lockApi}
|
|
97
|
+
*/
|
|
98
|
+
message: function message(category, msg, options) {
|
|
99
|
+
if (!category || !_.contains(_.keys(categories), category)) {
|
|
100
|
+
category = 'hasLock';
|
|
101
|
+
}
|
|
102
|
+
this.setState(states.created);
|
|
103
|
+
|
|
104
|
+
this.category = category;
|
|
105
|
+
this.level = _.result(categories, this.category);
|
|
106
|
+
this.options = _.defaults(options || {}, defaultOptions);
|
|
107
|
+
|
|
108
|
+
this.content = tpl({
|
|
109
|
+
level: this.level,
|
|
110
|
+
msg: msg
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
this._trigger('create');
|
|
114
|
+
|
|
115
|
+
return this;
|
|
116
|
+
},
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* generate the lock with the right options and open it
|
|
120
|
+
*
|
|
121
|
+
* @example lock().hasLock();
|
|
122
|
+
* @param {String} [msg] - the message to display
|
|
123
|
+
* @param {Object} [options] - the plugin options
|
|
124
|
+
* @returns {lockApi}
|
|
125
|
+
*/
|
|
126
|
+
hasLock: function hasLock(msg, options) {
|
|
127
|
+
return this.message('hasLock', msg, options).open();
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* generate the lock with the right options and open it
|
|
132
|
+
*
|
|
133
|
+
* @example lock().locked();
|
|
134
|
+
* @param {String} [msg] - the message to display
|
|
135
|
+
* @param {Object} [options] - the plugin options
|
|
136
|
+
* @returns {lockApi}
|
|
137
|
+
*/
|
|
138
|
+
locked: function locked(msg, options) {
|
|
139
|
+
return this.message('locked', msg, options).open();
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* open the lock
|
|
144
|
+
* @example lock().message().open();
|
|
145
|
+
* @fires open.lock
|
|
146
|
+
* @returns {lockApi}
|
|
147
|
+
*/
|
|
148
|
+
open: function open() {
|
|
149
|
+
this._trigger('open');
|
|
150
|
+
|
|
151
|
+
// display me
|
|
152
|
+
this.display();
|
|
153
|
+
return this;
|
|
154
|
+
},
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* close the lock
|
|
158
|
+
* @example lock().close();
|
|
159
|
+
* @fires close.lock
|
|
160
|
+
*/
|
|
161
|
+
close: function close() {
|
|
162
|
+
if (this.isInState(states.displayed)) {
|
|
163
|
+
this.setState(states.closed);
|
|
164
|
+
|
|
165
|
+
$('#' + this.id).remove();
|
|
166
|
+
|
|
167
|
+
this._trigger('close');
|
|
168
|
+
|
|
169
|
+
//clean up ref
|
|
170
|
+
_.remove(currents, { _state: states.closed });
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* display the lock
|
|
176
|
+
* @example lock().display();
|
|
177
|
+
* @fires display.lock
|
|
178
|
+
* @returns {lockApi}
|
|
179
|
+
*/
|
|
180
|
+
display: function display() {
|
|
181
|
+
var self = this;
|
|
182
|
+
if (self.content) {
|
|
183
|
+
self.setState(states.displayed);
|
|
184
|
+
|
|
185
|
+
$(self.content).attr('id', self.id).appendTo(self._container);
|
|
186
|
+
|
|
187
|
+
self._trigger('display');
|
|
188
|
+
|
|
189
|
+
if (typeof this.options.uri === 'undefined') {
|
|
190
|
+
$('.release', self._container).hide();
|
|
191
|
+
$('.check-in', self._container).hide();
|
|
192
|
+
} else {
|
|
193
|
+
$('.release', self._container).on('click', function () {
|
|
194
|
+
self.release();
|
|
195
|
+
});
|
|
196
|
+
$('.check-in', self._container).on('click', function () {
|
|
197
|
+
self.commit();
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return self;
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* call the url to release the lock
|
|
206
|
+
* @example lock().release();
|
|
207
|
+
* @fires released.lock
|
|
208
|
+
* @fires failed.lock
|
|
209
|
+
* @returns {lockApi}
|
|
210
|
+
*/
|
|
211
|
+
release: function release() {
|
|
212
|
+
var self = this;
|
|
213
|
+
if (self.options.releaseUrl !== '') {
|
|
214
|
+
$.ajax({
|
|
215
|
+
url: self.options.releaseUrl,
|
|
216
|
+
type: 'POST',
|
|
217
|
+
data: { uri: self.options.uri },
|
|
218
|
+
dataType: 'json',
|
|
219
|
+
success: function (response) {
|
|
220
|
+
if (response.success) {
|
|
221
|
+
self._trigger('released', response);
|
|
222
|
+
} else {
|
|
223
|
+
self._trigger('failed', response);
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
error: function () {
|
|
227
|
+
self._trigger('failed');
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
} else {
|
|
231
|
+
self._trigger('failed');
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return this;
|
|
235
|
+
},
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* ask a message and call the url to commit the resource
|
|
239
|
+
* @example lock().commit();
|
|
240
|
+
* @fires commit.lock
|
|
241
|
+
* @returns {lockApi}
|
|
242
|
+
*/
|
|
243
|
+
commit: function commit() {
|
|
244
|
+
var self = this;
|
|
245
|
+
if (self.options.commitUrl !== '') {
|
|
246
|
+
$('.message-container', self._container).slideToggle();
|
|
247
|
+
$('.commit', self._container)
|
|
248
|
+
.off('click')
|
|
249
|
+
.on('click', function () {
|
|
250
|
+
var message = $('.message', self._container).val();
|
|
251
|
+
if (message !== '') {
|
|
252
|
+
$.ajax({
|
|
253
|
+
url: self.options.commitUrl,
|
|
254
|
+
type: 'POST',
|
|
255
|
+
data: { id: self.options.uri, message: message },
|
|
256
|
+
dataType: 'json',
|
|
257
|
+
success: function (response) {
|
|
258
|
+
if (response.success) {
|
|
259
|
+
self._trigger('committed', response);
|
|
260
|
+
} else {
|
|
261
|
+
self._trigger('failed', response);
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
error: function () {
|
|
265
|
+
self._trigger('failed');
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
} else {
|
|
269
|
+
self._trigger('failed', { message: __('Please give a message to your commit') });
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
} else {
|
|
273
|
+
self._trigger('failed');
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
return this;
|
|
277
|
+
},
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Default behaviour
|
|
281
|
+
*/
|
|
282
|
+
register: function () {
|
|
283
|
+
var msg = this._container.data('msg') || defaultOptions.msg;
|
|
284
|
+
var id = this._container.data('id');
|
|
285
|
+
return this.message('hasLock', msg, {
|
|
286
|
+
uri: id,
|
|
287
|
+
released: function (response) {
|
|
288
|
+
feedback().success(response.message);
|
|
289
|
+
this.close();
|
|
290
|
+
},
|
|
291
|
+
committed: function (response) {
|
|
292
|
+
feedback().success(response.commitMessage);
|
|
293
|
+
this.close();
|
|
294
|
+
},
|
|
295
|
+
failed: function (response) {
|
|
296
|
+
if (typeof response !== 'undefined' && typeof response.message !== 'undefined') {
|
|
297
|
+
feedback().error(response.message);
|
|
298
|
+
} else {
|
|
299
|
+
feedback().error('Unknown Error');
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}).open();
|
|
303
|
+
},
|
|
304
|
+
|
|
305
|
+
/**
|
|
306
|
+
* trigger the event and the callback if exists
|
|
307
|
+
* @param {String} [eventName] - the name of the event, use the caller name if not set
|
|
308
|
+
*/
|
|
309
|
+
_trigger: function _trigger(eventName, data) {
|
|
310
|
+
//trigger the related event
|
|
311
|
+
this._container.trigger(eventName + '.lock', [this]);
|
|
312
|
+
|
|
313
|
+
//run the callback if set in options
|
|
314
|
+
if (_.isFunction(this.options[eventName])) {
|
|
315
|
+
this.options[eventName].call(this, data);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Contains the current state of the lock and accessors
|
|
322
|
+
* @typedef lockState
|
|
323
|
+
*/
|
|
324
|
+
const lockState = {
|
|
325
|
+
//the current state
|
|
326
|
+
_state: null,
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Check if the current state is one of the given values
|
|
330
|
+
* @param {String|Array} verify - the statue to check
|
|
331
|
+
* @returns {Boolean} true if the object is in the state to verify
|
|
332
|
+
*/
|
|
333
|
+
isInState: function isInState(verify) {
|
|
334
|
+
if (_.isString(verify)) {
|
|
335
|
+
verify = [verify];
|
|
336
|
+
}
|
|
337
|
+
return _.contains(verify, this._state);
|
|
338
|
+
},
|
|
339
|
+
|
|
340
|
+
/**
|
|
341
|
+
* Change the current state
|
|
342
|
+
* @param {String} state - the new state
|
|
343
|
+
* @throws {Error} if we try to set an invalid state
|
|
344
|
+
*/
|
|
345
|
+
setState: function setState(state) {
|
|
346
|
+
if (!_.contains(states, state)) {
|
|
347
|
+
throw new Error('Unkown state ' + state);
|
|
348
|
+
}
|
|
349
|
+
this._state = state;
|
|
350
|
+
}
|
|
351
|
+
};
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Enables you to create a new lock.
|
|
355
|
+
* example lock().error("content");
|
|
356
|
+
* @exports ui/lock
|
|
357
|
+
* @param {jQUeryElement} [$container] - only to specify another container
|
|
358
|
+
* @returns {Object} the lock object
|
|
359
|
+
* @throws {Error} if the container isn't found
|
|
360
|
+
*/
|
|
361
|
+
const lockFactory = function lockFactory($container) {
|
|
362
|
+
var _container;
|
|
363
|
+
if (!$container) {
|
|
364
|
+
$lockBox = $('#lock-box');
|
|
365
|
+
}
|
|
366
|
+
_container = $container || $lockBox;
|
|
367
|
+
|
|
368
|
+
if (!_container || !_container.length) {
|
|
369
|
+
throw new Error('The lock needs to belong to an existing container');
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
//if there is already a lock component in this container close it and open a new one
|
|
373
|
+
_.forEach(currents, function (lockRef) {
|
|
374
|
+
if (lockRef !== null && lockRef._container.get(0) === _container.get(0)) {
|
|
375
|
+
lockRef.close();
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
//mixin the new object with the state object
|
|
379
|
+
const lk = _.extend(
|
|
380
|
+
{
|
|
381
|
+
id: 'lock-' + (currents.length + 1),
|
|
382
|
+
_container: _container
|
|
383
|
+
},
|
|
384
|
+
lockState
|
|
385
|
+
);
|
|
386
|
+
|
|
387
|
+
currents.push(lk);
|
|
388
|
+
|
|
389
|
+
//delegate the api calls to the new instance
|
|
390
|
+
return delegate(lk, lockApi);
|
|
391
|
+
};
|
|
392
|
+
|
|
393
|
+
export default lockFactory;
|