@oat-sa/tao-core-ui 1.60.2 → 1.61.0
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 +23 -18
- package/dist/actionbar.js +105 -105
- package/dist/adder.js +109 -109
- package/dist/animable/absorbable/absorbable.js +42 -42
- 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 +36 -36
- 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 +400 -400
- package/dist/autoscroll.js +22 -22
- package/dist/badge/badge.js +48 -48
- 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 +70 -70
- 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 +104 -104
- package/dist/button.js +102 -102
- 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 +47 -47
- package/dist/ckeditor/ckConfigurator.js +48 -48
- 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 +111 -111
- 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 +59 -59
- package/dist/component.js +153 -153
- 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 +113 -113
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +75 -75
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +160 -160
- package/dist/datatable/css/datatable.css +11 -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 +464 -431
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +110 -110
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +174 -174
- package/dist/deleter.js +92 -92
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +65 -65
- package/dist/dialog/alert.js +26 -26
- package/dist/dialog/confirm.js +27 -27
- package/dist/dialog/confirmDelete.js +44 -44
- package/dist/dialog.js +156 -156
- 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 +43 -43
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +25 -25
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +133 -133
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +102 -102
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +52 -52
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +125 -125
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +67 -67
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +94 -94
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +111 -111
- package/dist/documentViewer/providers/pdfViewer.js +42 -42
- package/dist/documentViewer/viewerFactory.js +71 -71
- package/dist/documentViewer.js +99 -99
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +97 -97
- 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 +116 -116
- package/dist/feedback.js +97 -97
- package/dist/figure/FigureStateActive.js +117 -117
- package/dist/filesender.js +26 -26
- package/dist/filter.js +47 -47
- 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 +112 -112
- package/dist/form/form.js +245 -245
- 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 +65 -65
- package/dist/form/validator/validator.js +87 -87
- 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 +75 -75
- package/dist/form/widget/providers/comboBox.js +59 -59
- package/dist/form/widget/providers/default.js +35 -35
- package/dist/form/widget/providers/hidden.js +50 -50
- package/dist/form/widget/providers/hiddenBox.js +71 -71
- package/dist/form/widget/providers/radioBox.js +70 -70
- package/dist/form/widget/providers/textArea.js +48 -48
- package/dist/form/widget/providers/textBox.js +34 -34
- package/dist/form/widget/widget.js +154 -154
- 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 +86 -86
- 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 +51 -51
- package/dist/generis/widget/checkBox/checkBox.js +52 -52
- package/dist/generis/widget/comboBox/comboBox.js +45 -45
- 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 +53 -53
- package/dist/generis/widget/loader.js +20 -20
- package/dist/generis/widget/textBox/textBox.js +40 -40
- package/dist/generis/widget/widget.js +60 -60
- package/dist/groupedComboBox.js +49 -49
- package/dist/groupvalidator.js +19 -19
- package/dist/hider.js +41 -41
- package/dist/highlighter.js +262 -262
- 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 +115 -115
- 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 +97 -97
- 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 +48 -48
- package/dist/lock.js +125 -125
- package/dist/login/login.js +100 -100
- package/dist/maths/calculator/basicCalculator.js +63 -63
- package/dist/maths/calculator/calculatorComponent.js +29 -29
- package/dist/maths/calculator/core/areaBroker.js +25 -25
- package/dist/maths/calculator/core/board.js +313 -313
- package/dist/maths/calculator/core/expression.js +111 -111
- package/dist/maths/calculator/core/labels.js +29 -29
- 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 +59 -59
- 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 +61 -61
- 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 +60 -60
- package/dist/maths/calculator/pluginsLoader.js +21 -21
- package/dist/maths/calculator/scientificCalculator.js +91 -91
- package/dist/mediaEditor/mediaEditorComponent.js +64 -64
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +16 -16
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +60 -60
- 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 +153 -153
- 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 +65 -65
- package/dist/mediaplayer/players/youtube.js +52 -52
- 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 +35 -35
- package/dist/mediaplayer.js +460 -460
- package/dist/mediasizer.js +135 -135
- package/dist/modal.js +87 -87
- package/dist/movableComponent.js +35 -35
- package/dist/pageSizeSelector.js +44 -44
- 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 +37 -37
- package/dist/pagination/providers/simple.js +35 -35
- package/dist/pagination.js +45 -45
- package/dist/previewer.js +67 -67
- package/dist/progressbar.js +58 -58
- package/dist/propertySelector/css/propertySelector.css +74 -0
- package/dist/propertySelector/css/propertySelector.css.map +1 -0
- package/dist/propertySelector/propertySelector.js +533 -0
- package/dist/report.js +86 -86
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +73 -73
- package/dist/resource/list.js +66 -66
- package/dist/resource/selectable.js +92 -92
- package/dist/resource/selector.js +195 -195
- package/dist/resource/tree.js +104 -104
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +88 -88
- package/dist/resourcemgr/fileSelector.js +58 -58
- package/dist/resourcemgr/util/updatePermissions.js +4 -4
- package/dist/resourcemgr.js +62 -62
- package/dist/scroller.js +26 -26
- package/dist/searchModal/advancedSearch.js +355 -161
- package/dist/searchModal/css/advancedSearch.css +7 -14
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +29 -8
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +574 -190
- 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 +75 -75
- 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 +217 -217
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +72 -72
- package/dist/taskQueue/table.js +67 -67
- package/dist/taskQueue/taskQueue.js +18 -18
- package/dist/taskQueue/taskQueueModel.js +86 -86
- 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 +54 -54
- package/dist/taskQueueButton/treeButton.js +56 -56
- package/dist/themeLoader.js +75 -75
- package/dist/themes.js +84 -84
- package/dist/toggler.js +57 -57
- package/dist/tooltip.js +54 -54
- 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 +75 -75
- package/dist/uploader.js +158 -158
- package/dist/validator/validators.js +48 -48
- package/dist/validator.js +24 -24
- 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 +108 -107
- package/scss/basic.scss +16 -16
- package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +59 -59
- package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
- package/scss/font/tao/tao.svg +234 -234
- 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 -88
- package/scss/inc/_feedback.scss +150 -150
- 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 +226 -226
- package/scss/inc/fonts/_tao-icon-def.scss +12 -12
- package/scss/inc/fonts/_tao-icon-vars.scss +240 -240
- 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 +1029 -1029
- 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 +736 -736
- 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 +297 -297
- package/src/css/basic.css +103 -103
- 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 +184 -184
- 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 +11 -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 -146
- 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 +222 -222
- 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 +554 -554
- package/src/feedback/feedback.tpl +7 -7
- package/src/feedback.js +295 -295
- package/src/figure/FigureStateActive.js +174 -174
- package/src/filesender.js +114 -114
- package/src/filter/template.tpl +5 -5
- package/src/filter.js +135 -135
- 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 +53 -53
- package/src/formValidator/formValidator.js +253 -253
- package/src/formValidator/highlighters/highlighter.js +102 -102
- package/src/formValidator/highlighters/message.js +70 -70
- 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 +67 -67
- 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 +132 -132
- 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 +65 -65
- 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 +1166 -1166
- 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 +319 -319
- package/src/inplacer.js +316 -316
- 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 +282 -282
- package/src/keyNavigation/navigator.js +543 -543
- 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 +251 -251
- 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 +395 -395
- package/src/login/login.js +322 -322
- 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 +191 -191
- 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 +62 -62
- 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 +189 -189
- 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 +107 -107
- 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 +74 -0
- package/src/propertySelector/css/propertySelector.css.map +1 -0
- package/src/propertySelector/propertySelector.js +286 -0
- package/src/propertySelector/scss/propertySelector.scss +66 -0
- package/src/propertySelector/tpl/highlighted-text.tpl +1 -0
- package/src/propertySelector/tpl/property-description.tpl +13 -0
- package/src/propertySelector/tpl/property-selector.tpl +7 -0
- 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 +400 -400
- 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 +348 -348
- 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 -601
- package/src/searchModal/css/advancedSearch.css +7 -14
- package/src/searchModal/css/advancedSearch.css.map +1 -1
- package/src/searchModal/css/searchModal.css +29 -8
- package/src/searchModal/css/searchModal.css.map +1 -1
- package/src/searchModal/scss/advancedSearch.scss +171 -177
- package/src/searchModal/scss/searchModal.scss +393 -375
- package/src/searchModal/tpl/advanced-search.tpl +9 -9
- package/src/searchModal/tpl/criteria-alias.tpl +1 -0
- package/src/searchModal/tpl/criteria-class-label.tpl +1 -0
- package/src/searchModal/tpl/criteria-label.tpl +1 -0
- package/src/searchModal/tpl/highlighted-text.tpl +1 -0
- 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 -25
- package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -12
- package/src/searchModal/tpl/list-select-criterion.tpl +12 -6
- package/src/searchModal/tpl/property-select-button.tpl +1 -0
- package/src/searchModal/tpl/results-container.tpl +1 -0
- package/src/searchModal/tpl/text-criterion.tpl +11 -6
- package/src/searchModal.js +761 -496
- 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 +218 -218
- 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 +109 -109
- 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 +220 -220
- package/src/validator.js +264 -264
- 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/dist/searchModal.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/purify', 'css!ui/searchModal/css/searchModal.css', 'ui/component', 'ui/modal', 'ui/datatable', 'core/store', 'ui/resource/selector', 'ui/searchModal/advancedSearch', 'core/dataProvider/request', 'util/url', 'select2', 'util/shortcut/registry'], function ($$1, _, __, context, Handlebars, DOMPurify, searchModal_css, component, modal, datatable, store, resourceSelectorFactory, advancedSearchFactory, request, urlUtil, select2, shortcutRegistry) { 'use strict';
|
|
1
|
+
define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/purify', 'css!ui/searchModal/css/searchModal.css', 'ui/component', 'ui/modal', 'ui/datatable', 'core/store', 'ui/resource/selector', 'ui/propertySelector/propertySelector', 'ui/searchModal/advancedSearch', 'core/dataProvider/request', 'util/url', 'select2', 'util/shortcut/registry'], function ($$1, _, __, context, Handlebars, DOMPurify, searchModal_css, component, modal, datatable, store, resourceSelectorFactory, propertySelectorFactory, advancedSearchFactory, request, urlUtil, select2, shortcutRegistry) { 'use strict';
|
|
2
2
|
|
|
3
3
|
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
4
|
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
@@ -9,6 +9,7 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
9
9
|
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
10
10
|
store = store && Object.prototype.hasOwnProperty.call(store, 'default') ? store['default'] : store;
|
|
11
11
|
resourceSelectorFactory = resourceSelectorFactory && Object.prototype.hasOwnProperty.call(resourceSelectorFactory, 'default') ? resourceSelectorFactory['default'] : resourceSelectorFactory;
|
|
12
|
+
propertySelectorFactory = propertySelectorFactory && Object.prototype.hasOwnProperty.call(propertySelectorFactory, 'default') ? propertySelectorFactory['default'] : propertySelectorFactory;
|
|
12
13
|
advancedSearchFactory = advancedSearchFactory && Object.prototype.hasOwnProperty.call(advancedSearchFactory, 'default') ? advancedSearchFactory['default'] : advancedSearchFactory;
|
|
13
14
|
request = request && Object.prototype.hasOwnProperty.call(request, 'default') ? request['default'] : request;
|
|
14
15
|
urlUtil = urlUtil && Object.prototype.hasOwnProperty.call(urlUtil, 'default') ? urlUtil['default'] : urlUtil;
|
|
@@ -70,24 +71,24 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
70
71
|
hb.registerHelper('__', function (key) {
|
|
71
72
|
return __(key);
|
|
72
73
|
});
|
|
73
|
-
/**
|
|
74
|
-
* Register dompurify helper
|
|
75
|
-
*
|
|
76
|
-
* https://github.com/cure53/DOMPurify
|
|
77
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
78
|
-
* to make output safe for template systems
|
|
74
|
+
/**
|
|
75
|
+
* Register dompurify helper
|
|
76
|
+
*
|
|
77
|
+
* https://github.com/cure53/DOMPurify
|
|
78
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
79
|
+
* to make output safe for template systems
|
|
79
80
|
*/
|
|
80
81
|
|
|
81
82
|
hb.registerHelper('dompurify', function (context) {
|
|
82
83
|
return DOMPurify.sanitize(context);
|
|
83
84
|
});
|
|
84
|
-
/**
|
|
85
|
-
* Register join helper
|
|
86
|
-
*
|
|
87
|
-
* Example :
|
|
88
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
89
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
90
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
85
|
+
/**
|
|
86
|
+
* Register join helper
|
|
87
|
+
*
|
|
88
|
+
* Example :
|
|
89
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
90
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
91
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
91
92
|
*/
|
|
92
93
|
|
|
93
94
|
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
@@ -166,15 +167,15 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
166
167
|
var buffer = "", stack1, helper, options, functionType="function", escapeExpression=this.escapeExpression, helperMissing=helpers.helperMissing;
|
|
167
168
|
|
|
168
169
|
|
|
169
|
-
buffer += "<div class=\"search-modal section-container\">\
|
|
170
|
+
buffer += "<div class=\"search-modal section-container\">\n <div class=\"clear content-wrapper content-panel\">\n <div class=\"ui-container\">\n <div class=\"filters-container\">\n <div class=\"basic-search-container\">\n <div class=\"filter-container\">\n <span class=\"icon-find\"></span>\n <input class=\"generic-search-input\" type=\"text\" placeholder=\"";
|
|
170
171
|
if (helper = helpers.placeholder) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
171
172
|
else { helper = (depth0 && depth0.placeholder); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
172
173
|
buffer += escapeExpression(stack1)
|
|
173
|
-
+ "\">\
|
|
174
|
+
+ "\">\n </div>\n <div class=\"filter-container class-filter-container\">\n <span class=\"icon-folder\"></span>\n <span class=\"icon-down\"></span>\n <textarea class=\"class-filter\" cols=\"40\" rows=\"1\" readonly></textarea>\n <div class=\"class-tree\"></div>\n </div>\n </div>\n </div>\n <div class=\"buttons-container\">\n <button class=\"btn-clear btn-transparent small\">"
|
|
174
175
|
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Clear", options) : helperMissing.call(depth0, "__", "Clear", options)))
|
|
175
|
-
+ "</button>\
|
|
176
|
+
+ "</button>\n <button class=\"btn-search btn-info small\">"
|
|
176
177
|
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Search", options) : helperMissing.call(depth0, "__", "Search", options)))
|
|
177
|
-
+ "</button>\
|
|
178
|
+
+ "</button>\n </div>\n </div>\n <div class=\"content-container\">\n <div class=\"content-toolbar\"></div>\n <div class=\"content-area\"></div>\n </div>\n </div>\n</div>";
|
|
178
179
|
return buffer;
|
|
179
180
|
});
|
|
180
181
|
function layoutTpl(data, options, asString) {
|
|
@@ -188,65 +189,114 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
188
189
|
}
|
|
189
190
|
var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
190
191
|
this.compilerInfo = [4,'>= 1.0.0'];
|
|
192
|
+
helpers = this.merge(helpers, Handlebars.helpers);
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
return "<div class=\"results-container flex-container-full\"></div>";
|
|
196
|
+
});
|
|
197
|
+
function resultsContainerTpl(data, options, asString) {
|
|
198
|
+
var html = Template$1(data, options);
|
|
199
|
+
return (asString || true) ? html : $(html);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (!Helpers0.__initialized) {
|
|
203
|
+
Helpers0(Handlebars);
|
|
204
|
+
Helpers0.__initialized = true;
|
|
205
|
+
}
|
|
206
|
+
var Template$2 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
207
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
191
208
|
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
192
209
|
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression;
|
|
193
210
|
|
|
194
211
|
|
|
195
|
-
buffer += "<div class='no-datatable-container'>\
|
|
212
|
+
buffer += "<div class='no-datatable-container'>\n <span class=\"no-datatable-icon ";
|
|
196
213
|
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
197
214
|
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
198
215
|
buffer += escapeExpression(stack1)
|
|
199
|
-
+ "\"></span>\
|
|
216
|
+
+ "\"></span>\n <p class=\"no-datatable-message\">";
|
|
200
217
|
if (helper = helpers.message) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
201
218
|
else { helper = (depth0 && depth0.message); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
202
219
|
buffer += escapeExpression(stack1)
|
|
203
|
-
+ "</p>\
|
|
220
|
+
+ "</p>\n</div>";
|
|
204
221
|
return buffer;
|
|
205
222
|
});
|
|
206
223
|
function infoMessageTpl(data, options, asString) {
|
|
207
|
-
var html = Template$
|
|
224
|
+
var html = Template$2(data, options);
|
|
208
225
|
return (asString || true) ? html : $(html);
|
|
209
226
|
}
|
|
210
227
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
228
|
+
if (!Helpers0.__initialized) {
|
|
229
|
+
Helpers0(Handlebars);
|
|
230
|
+
Helpers0.__initialized = true;
|
|
231
|
+
}
|
|
232
|
+
var Template$3 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
233
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
234
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
235
|
+
var buffer = "", helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
buffer += "<a class=\"toggle-modal-button\"><span class=\"icon-add\"></span>"
|
|
239
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "manage columns", options) : helperMissing.call(depth0, "__", "manage columns", options)))
|
|
240
|
+
+ "</a>";
|
|
241
|
+
return buffer;
|
|
242
|
+
});
|
|
243
|
+
function propertySelectButtonTpl(data, options, asString) {
|
|
244
|
+
var html = Template$3(data, options);
|
|
245
|
+
return (asString || true) ? html : $(html);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Creates a searchModal instance
|
|
250
|
+
*
|
|
251
|
+
* @param {object} config
|
|
252
|
+
* @param {object} config.renderTo - DOM element where component will be rendered to
|
|
253
|
+
* @param {string} config.criterias - Search criteria to be set on component creation
|
|
254
|
+
* @param {boolean} config.searchOnInit - if init search must be triggered or not (stored results are used instead)
|
|
255
|
+
* @param {string} config.url - search endpoint to be set on datatable
|
|
256
|
+
* @param {string} config.rootClassUri - Uri for the root class of current context, required to init the class filter
|
|
257
|
+
* @param {bool} config.hideResourceSelector - if resourceSelector must be hidden
|
|
258
|
+
* @param {bool} config.hideCriteria - if the criteria must be hidden
|
|
259
|
+
* @param {string} config.placeholder - placeholder for input in template
|
|
260
|
+
* @param {string} config.classesUrl - the URL to the classes API (usually '/tao/RestResource/getAll')
|
|
261
|
+
* @param {string} config.classMappingUrl - the URL to the class mapping API (usually '/tao/ClassMetadata/getWithMapping')
|
|
262
|
+
* @param {string} config.statusUrl - the URL to the status API (usually '/tao/AdvancedSearch/status')
|
|
263
|
+
* @param {string} config.sortby - the default sorted column (usually 'label')
|
|
264
|
+
* @param {string} config.sortorder - the default sort order (usually 'asc')
|
|
265
|
+
* @returns {searchModal}
|
|
223
266
|
*/
|
|
224
267
|
|
|
225
268
|
function searchModalFactory(config) {
|
|
269
|
+
// @TODO: The consumer must be responsible for supplying the routes. The component must not hardcode endpoints.
|
|
226
270
|
var defaults = {
|
|
271
|
+
classesUrl: urlUtil.route('getAll', 'RestResource', 'tao'),
|
|
272
|
+
classMappingUrl: urlUtil.route('getWithMapping', 'ClassMetadata', 'tao'),
|
|
273
|
+
statusUrl: urlUtil.route('status', 'AdvancedSearch', 'tao'),
|
|
227
274
|
renderTo: 'body',
|
|
228
275
|
criterias: {},
|
|
229
276
|
searchOnInit: true,
|
|
230
|
-
maxListSize: 5
|
|
277
|
+
maxListSize: 5,
|
|
278
|
+
sortby: 'label',
|
|
279
|
+
sortorder: 'asc'
|
|
231
280
|
}; // Private properties to be easily accessible by instance methods
|
|
232
281
|
|
|
233
282
|
var $container = null;
|
|
234
|
-
var
|
|
235
|
-
var $searchButton = null;
|
|
236
|
-
var $clearButton = null;
|
|
283
|
+
var controls = {};
|
|
237
284
|
var running = false;
|
|
238
285
|
var searchStore = null;
|
|
286
|
+
var selectedColumnsStore = null;
|
|
239
287
|
var resourceSelector = null;
|
|
240
|
-
var
|
|
241
|
-
var
|
|
242
|
-
var
|
|
243
|
-
var
|
|
288
|
+
var advancedSearch = null;
|
|
289
|
+
var propertySelectorInstance;
|
|
290
|
+
var availableColumns = [];
|
|
291
|
+
var availableIdentifiers = {};
|
|
292
|
+
var selectedColumns = [];
|
|
293
|
+
var dataCache; // resorce selector
|
|
244
294
|
|
|
245
295
|
var isResourceSelector = !config.hideResourceSelector;
|
|
246
296
|
var rootClassUri = config.rootClassUri;
|
|
247
|
-
/**
|
|
248
|
-
* Creates search modal, inits template selectors, inits search store, and once is created triggers initial search
|
|
249
|
-
* rootClassUri is sent to advancedSearch factory for disabling in whitelisted sections
|
|
297
|
+
/**
|
|
298
|
+
* Creates search modal, inits template selectors, inits search store, and once is created triggers initial search
|
|
299
|
+
* rootClassUri is sent to advancedSearch factory for disabling in whitelisted sections
|
|
250
300
|
*/
|
|
251
301
|
|
|
252
302
|
function renderModal() {
|
|
@@ -254,33 +304,49 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
254
304
|
initModal();
|
|
255
305
|
initUiSelectors();
|
|
256
306
|
advancedSearch = advancedSearchFactory({
|
|
257
|
-
renderTo:
|
|
307
|
+
renderTo: controls.$filtersContainer,
|
|
258
308
|
advancedCriteria: instance.config.criterias.advancedCriteria,
|
|
309
|
+
hideCriteria: instance.config.hideCriteria,
|
|
310
|
+
statusUrl: instance.config.statusUrl,
|
|
259
311
|
rootClassUri: rootClassUri
|
|
260
312
|
});
|
|
261
313
|
promises.push(initClassFilter());
|
|
262
|
-
promises.push(
|
|
314
|
+
promises.push(initStores());
|
|
263
315
|
Promise.all(promises).then(function () {
|
|
264
316
|
instance.trigger('ready');
|
|
265
|
-
|
|
317
|
+
controls.$searchButton.trigger('click');
|
|
266
318
|
}).catch(function (e) {
|
|
267
319
|
return instance.trigger('error', e);
|
|
268
320
|
});
|
|
269
321
|
}
|
|
270
|
-
/**
|
|
271
|
-
* Removes search modal
|
|
322
|
+
/**
|
|
323
|
+
* Removes search modal
|
|
272
324
|
*/
|
|
273
325
|
|
|
274
326
|
|
|
275
327
|
function destroyModal() {
|
|
276
328
|
$container.removeClass('modal').modal('destroy');
|
|
329
|
+
|
|
330
|
+
if (propertySelectorInstance) {
|
|
331
|
+
propertySelectorInstance.destroy();
|
|
332
|
+
}
|
|
333
|
+
|
|
277
334
|
$$1('.modal-bg').remove();
|
|
335
|
+
controls = {};
|
|
278
336
|
} // Creates new component
|
|
279
337
|
|
|
280
338
|
|
|
281
|
-
var instance = component({
|
|
282
|
-
|
|
283
|
-
|
|
339
|
+
var instance = component({
|
|
340
|
+
/**
|
|
341
|
+
* Tells if the advanced search is enabled.
|
|
342
|
+
* @returns {boolean}
|
|
343
|
+
*/
|
|
344
|
+
isAdvancedSearchEnabled: function isAdvancedSearchEnabled() {
|
|
345
|
+
return advancedSearch && advancedSearch.isEnabled();
|
|
346
|
+
}
|
|
347
|
+
}, defaults).setTemplate(layoutTpl).on('selected-store-updated', recreateDatatable).on('render', renderModal).on('destroy', destroyModal);
|
|
348
|
+
/**
|
|
349
|
+
* Creates search modal
|
|
284
350
|
*/
|
|
285
351
|
|
|
286
352
|
function initModal() {
|
|
@@ -293,20 +359,20 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
293
359
|
modalCloseClass: 'modal-close-left'
|
|
294
360
|
}).focus();
|
|
295
361
|
}
|
|
296
|
-
/**
|
|
297
|
-
* Inits class filter selector
|
|
362
|
+
/**
|
|
363
|
+
* Inits class filter selector
|
|
298
364
|
*/
|
|
299
365
|
|
|
300
366
|
|
|
301
367
|
function initClassFilter() {
|
|
302
368
|
return new Promise(function (resolve) {
|
|
303
369
|
if (!isResourceSelector) {
|
|
304
|
-
|
|
370
|
+
controls.$classFilterContainer.hide();
|
|
305
371
|
return resolve();
|
|
306
372
|
}
|
|
307
373
|
|
|
308
374
|
var initialClassUri = instance.config.criterias && instance.config.criterias.class ? instance.config.criterias.class : rootClassUri;
|
|
309
|
-
resourceSelector = resourceSelectorFactory(
|
|
375
|
+
resourceSelector = resourceSelectorFactory(controls.$classTreeContainer, {
|
|
310
376
|
//set up the inner resource selector
|
|
311
377
|
selectionMode: 'single',
|
|
312
378
|
selectClass: true,
|
|
@@ -320,7 +386,7 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
320
386
|
classOnly: true
|
|
321
387
|
});
|
|
322
388
|
|
|
323
|
-
var route =
|
|
389
|
+
var route = instance.config.classesUrl;
|
|
324
390
|
request(route, classOnlyParams).then(function (response) {
|
|
325
391
|
if (response.permissions && response.permissions.data && response.permissions.supportedRights && response.permissions.supportedRights.length > 0) {
|
|
326
392
|
manageClassTreePermissions(response);
|
|
@@ -331,9 +397,9 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
331
397
|
return instance.trigger('error', e);
|
|
332
398
|
});
|
|
333
399
|
});
|
|
334
|
-
/*
|
|
335
|
-
* the first time selector opions are updated the root class is selected. Promise is
|
|
336
|
-
* resolved so init process continues only when class input value has been set
|
|
400
|
+
/*
|
|
401
|
+
* the first time selector opions are updated the root class is selected. Promise is
|
|
402
|
+
* resolved so init process continues only when class input value has been set
|
|
337
403
|
*/
|
|
338
404
|
|
|
339
405
|
resourceSelector.on('update', function () {
|
|
@@ -343,10 +409,10 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
343
409
|
}); // then new class is selected, set its label into class filter input and hide filter container, then request class properties
|
|
344
410
|
|
|
345
411
|
resourceSelector.on('change', function (selectedValue) {
|
|
346
|
-
/*
|
|
347
|
-
* on searchModal init we set manually the selector to the provided config.rootClassUri. When a selector
|
|
348
|
-
* is set manually Selector component execs @clearSelection which triggers a change event
|
|
349
|
-
* with an empty object as param. We catch this undesired behaviour here
|
|
412
|
+
/*
|
|
413
|
+
* on searchModal init we set manually the selector to the provided config.rootClassUri. When a selector
|
|
414
|
+
* is set manually Selector component execs @clearSelection which triggers a change event
|
|
415
|
+
* with an empty object as param. We catch this undesired behaviour here
|
|
350
416
|
*/
|
|
351
417
|
if (_.isEmpty(selectedValue)) {
|
|
352
418
|
return;
|
|
@@ -358,13 +424,13 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
358
424
|
|
|
359
425
|
var uri = _.map(selectedValue, 'uri')[0];
|
|
360
426
|
|
|
361
|
-
var route = urlUtil.
|
|
427
|
+
var route = urlUtil.build(instance.config.classMappingUrl, {
|
|
362
428
|
classUri: classUri,
|
|
363
429
|
maxListSize: instance.config.maxListSize
|
|
364
430
|
});
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
431
|
+
controls.$classFilterInput.html(label);
|
|
432
|
+
controls.$classFilterInput.data('uri', uri);
|
|
433
|
+
controls.$classTreeContainer.hide();
|
|
368
434
|
advancedSearch.updateCriteria(route).then(function () {
|
|
369
435
|
return instance.trigger('criteriaListUpdated');
|
|
370
436
|
}).catch(function (e) {
|
|
@@ -374,10 +440,10 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
374
440
|
setResourceSelectorUIBehaviour();
|
|
375
441
|
});
|
|
376
442
|
}
|
|
377
|
-
/**
|
|
378
|
-
* Loops through each class in received class tree and sets access mode to 'denied' on private classes
|
|
379
|
-
* so are disabled on class tree
|
|
380
|
-
* @param {object} classTree - class tree received by server, containing resources (classes) and permissions
|
|
443
|
+
/**
|
|
444
|
+
* Loops through each class in received class tree and sets access mode to 'denied' on private classes
|
|
445
|
+
* so are disabled on class tree
|
|
446
|
+
* @param {object} classTree - class tree received by server, containing resources (classes) and permissions
|
|
381
447
|
*/
|
|
382
448
|
|
|
383
449
|
|
|
@@ -398,138 +464,171 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
398
464
|
|
|
399
465
|
disableBlockedClasses(classTree.resources);
|
|
400
466
|
}
|
|
401
|
-
/**
|
|
402
|
-
* Inits template selectors, buttons behaviour, scroll animation,
|
|
403
|
-
* and sets initial search query on search input
|
|
467
|
+
/**
|
|
468
|
+
* Inits template selectors, buttons behaviour, scroll animation,
|
|
469
|
+
* and sets initial search query on search input
|
|
404
470
|
*/
|
|
405
471
|
|
|
406
472
|
|
|
407
473
|
function initUiSelectors() {
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
474
|
+
controls = {
|
|
475
|
+
$searchButton: $$1('.btn-search', $container),
|
|
476
|
+
$clearButton: $$1('.btn-clear', $container),
|
|
477
|
+
$searchInput: $$1('.generic-search-input', $container),
|
|
478
|
+
$classFilterInput: $$1('.class-filter', $container),
|
|
479
|
+
$classTreeContainer: $$1('.class-tree', $container),
|
|
480
|
+
$classFilterContainer: $$1('.class-filter-container', $container),
|
|
481
|
+
$filtersContainer: $$1('.filters-container', $container),
|
|
482
|
+
$contentArea: $$1('.content-area', $container),
|
|
483
|
+
$contentToolbar: $$1('.content-toolbar', $container)
|
|
484
|
+
};
|
|
485
|
+
controls.$searchButton.on('click', search);
|
|
486
|
+
controls.$clearButton.on('click', clear);
|
|
487
|
+
var shortcuts = shortcutRegistry(controls.$searchInput);
|
|
417
488
|
shortcuts.clear().add('enter', search);
|
|
418
|
-
|
|
489
|
+
controls.$searchInput.val(instance.config.criterias && instance.config.criterias.search ? instance.config.criterias.search : '');
|
|
419
490
|
}
|
|
420
|
-
/**
|
|
421
|
-
* Sets required listeners to properly manage resourceSelector visualization
|
|
491
|
+
/**
|
|
492
|
+
* Sets required listeners to properly manage resourceSelector visualization
|
|
422
493
|
*/
|
|
423
494
|
|
|
424
495
|
|
|
425
496
|
function setResourceSelectorUIBehaviour() {
|
|
426
497
|
$container.on('mousedown', function () {
|
|
427
|
-
|
|
498
|
+
controls.$classTreeContainer.hide();
|
|
428
499
|
});
|
|
429
|
-
/**
|
|
430
|
-
* Pressing space, enter, esc, backspace
|
|
431
|
-
* on class filter input will toggle resource selector
|
|
500
|
+
/**
|
|
501
|
+
* Pressing space, enter, esc, backspace
|
|
502
|
+
* on class filter input will toggle resource selector
|
|
432
503
|
*/
|
|
433
504
|
|
|
434
|
-
var shortcuts = shortcutRegistry(
|
|
505
|
+
var shortcuts = shortcutRegistry(controls.$classFilterInput);
|
|
435
506
|
shortcuts.add('enter', function () {
|
|
436
|
-
return
|
|
507
|
+
return controls.$classTreeContainer.show();
|
|
437
508
|
});
|
|
438
509
|
shortcuts.add('space', function () {
|
|
439
|
-
return
|
|
510
|
+
return controls.$classTreeContainer.show();
|
|
440
511
|
});
|
|
441
512
|
shortcuts.add('backspace', function () {
|
|
442
|
-
return
|
|
513
|
+
return controls.$classTreeContainer.hide();
|
|
443
514
|
});
|
|
444
515
|
shortcuts.add('escape', function () {
|
|
445
|
-
return
|
|
516
|
+
return controls.$classTreeContainer.hide();
|
|
446
517
|
}, {
|
|
447
518
|
propagate: false
|
|
448
519
|
});
|
|
449
|
-
/**
|
|
450
|
-
* clicking on class filter container will toggle resource selector
|
|
520
|
+
/**
|
|
521
|
+
* clicking on class filter container will toggle resource selector
|
|
451
522
|
*/
|
|
452
523
|
|
|
453
|
-
|
|
454
|
-
|
|
524
|
+
controls.$classFilterContainer.on('click', function (e) {
|
|
525
|
+
controls.$classTreeContainer.toggle();
|
|
455
526
|
});
|
|
456
|
-
/**
|
|
457
|
-
* clicking on class filter container will
|
|
458
|
-
* stopPropagation to prevent be closed
|
|
459
|
-
* by searchModal.mouseDown listener
|
|
527
|
+
/**
|
|
528
|
+
* clicking on class filter container will
|
|
529
|
+
* stopPropagation to prevent be closed
|
|
530
|
+
* by searchModal.mouseDown listener
|
|
460
531
|
*/
|
|
461
532
|
|
|
462
|
-
|
|
533
|
+
controls.$classFilterContainer.on('mousedown', function (e) {
|
|
463
534
|
e.stopPropagation();
|
|
464
535
|
}); // clicking on resource selector will stopPropagation to prevent be closed by searchModal.mouseDown listener
|
|
465
536
|
|
|
466
|
-
|
|
537
|
+
controls.$classTreeContainer.on('mousedown', function (e) {
|
|
467
538
|
e.stopPropagation();
|
|
468
539
|
});
|
|
469
540
|
}
|
|
470
|
-
/**
|
|
471
|
-
* Loads search store so it is accessible in the component
|
|
472
|
-
* @returns {Promise}
|
|
541
|
+
/**
|
|
542
|
+
* Loads search store so it is accessible in the component
|
|
543
|
+
* @returns {Promise}
|
|
473
544
|
*/
|
|
474
545
|
|
|
475
546
|
|
|
476
|
-
function
|
|
477
|
-
return store('search').then(function (store) {
|
|
478
|
-
searchStore = store;
|
|
479
|
-
}).
|
|
547
|
+
function initStores() {
|
|
548
|
+
return Promise.all([store('search').then(function (store) {
|
|
549
|
+
return searchStore = store;
|
|
550
|
+
}), store('selectedColumns').then(function (store) {
|
|
551
|
+
return selectedColumnsStore = store;
|
|
552
|
+
})]).catch(function (e) {
|
|
480
553
|
return instance.trigger('error', e);
|
|
481
554
|
});
|
|
482
555
|
}
|
|
483
|
-
/**
|
|
484
|
-
*
|
|
556
|
+
/**
|
|
557
|
+
* Performs a search query
|
|
558
|
+
* @param query - The searched terms
|
|
559
|
+
* @param classFilterUri - The URI of the node class
|
|
560
|
+
* @param [params] - Additional parameters
|
|
561
|
+
* @returns {Promise}
|
|
562
|
+
*/
|
|
563
|
+
|
|
564
|
+
|
|
565
|
+
var searchQuery = function searchQuery(query, classFilterUri) {
|
|
566
|
+
var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
567
|
+
return new Promise(function (resolve, reject) {
|
|
568
|
+
$$1.ajax({
|
|
569
|
+
url: instance.config.url,
|
|
570
|
+
type: 'POST',
|
|
571
|
+
data: _objectSpread2(_objectSpread2({}, params), {}, {
|
|
572
|
+
query: query,
|
|
573
|
+
parentNode: classFilterUri,
|
|
574
|
+
structure: context.shownStructure
|
|
575
|
+
}),
|
|
576
|
+
dataType: 'json'
|
|
577
|
+
}).done(resolve).fail(reject);
|
|
578
|
+
});
|
|
579
|
+
};
|
|
580
|
+
/**
|
|
581
|
+
* Performs the search query, preventing to send too many requests
|
|
582
|
+
* @param query - The searched terms
|
|
583
|
+
* @param classFilterUri - The URI of the node class
|
|
584
|
+
* @param [params] - Additional parameters
|
|
585
|
+
*/
|
|
586
|
+
|
|
587
|
+
|
|
588
|
+
var searchHandler = function searchHandler(query, classFilterUri) {
|
|
589
|
+
var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
590
|
+
|
|
591
|
+
if (running === false) {
|
|
592
|
+
running = true;
|
|
593
|
+
searchQuery(query, classFilterUri, params).then(function (data) {
|
|
594
|
+
return data.data;
|
|
595
|
+
}).then(buildDataModel).then(filterSelectedColumns).then(appendDefaultDatasetToDatatable).then(buildSearchResultsDatatable).catch(function (e) {
|
|
596
|
+
return instance.trigger('error', e);
|
|
597
|
+
}).then(function () {
|
|
598
|
+
return running = false;
|
|
599
|
+
});
|
|
600
|
+
}
|
|
601
|
+
};
|
|
602
|
+
/**
|
|
603
|
+
* Request search results and manages its results
|
|
485
604
|
*/
|
|
486
605
|
|
|
487
606
|
|
|
488
607
|
function search() {
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
$$1.ajax({
|
|
496
|
-
url: instance.config.url,
|
|
497
|
-
type: 'POST',
|
|
498
|
-
data: {
|
|
499
|
-
query: query,
|
|
500
|
-
parentNode: classFilterUri,
|
|
501
|
-
structure: context.shownStructure
|
|
502
|
-
},
|
|
503
|
-
dataType: 'json'
|
|
504
|
-
}).done(function (data) {
|
|
505
|
-
appendDefaultDatasetToDatatable(data.data).then(function () {
|
|
506
|
-
return buildSearchResultsDatatable(data.data);
|
|
507
|
-
}).catch(function (e) {
|
|
508
|
-
return instance.trigger('error', e);
|
|
509
|
-
});
|
|
510
|
-
}).always(function () {
|
|
511
|
-
return running = false;
|
|
512
|
-
});
|
|
513
|
-
}
|
|
514
|
-
}, 100);
|
|
608
|
+
searchHandler(buildComplexQuery(), getClassFilterUri());
|
|
609
|
+
}
|
|
610
|
+
/**
|
|
611
|
+
* Returns selected class filter of rootClassUri
|
|
612
|
+
*/
|
|
613
|
+
|
|
515
614
|
|
|
516
|
-
|
|
615
|
+
function getClassFilterUri() {
|
|
616
|
+
return isResourceSelector ? controls.$classFilterInput.data('uri').trim() : rootClassUri;
|
|
517
617
|
}
|
|
518
|
-
/**
|
|
519
|
-
* build final complex query appending every filter
|
|
618
|
+
/**
|
|
619
|
+
* build final complex query appending every filter
|
|
520
620
|
*/
|
|
521
621
|
|
|
522
622
|
|
|
523
623
|
function buildComplexQuery() {
|
|
524
|
-
var
|
|
525
|
-
var query = $searchInputValue;
|
|
624
|
+
var query = controls.$searchInput.val().trim();
|
|
526
625
|
query += advancedSearch.getAdvancedCriteriaQuery(query !== '');
|
|
527
626
|
return query;
|
|
528
627
|
}
|
|
529
|
-
/*
|
|
530
|
-
* If search on init is not required, extends data with stored dataset
|
|
531
|
-
* @param {object} data - search configuration including model and endpoint for datatable
|
|
532
|
-
* @returns {Promise}
|
|
628
|
+
/*
|
|
629
|
+
* If search on init is not required, extends data with stored dataset
|
|
630
|
+
* @param {object} data - search configuration including model and endpoint for datatable
|
|
631
|
+
* @returns {Promise}
|
|
533
632
|
*/
|
|
534
633
|
|
|
535
634
|
|
|
@@ -537,36 +636,195 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
537
636
|
return new Promise(function (resolve, reject) {
|
|
538
637
|
// If no search on init, get dataset from searchStore
|
|
539
638
|
if (instance.config.searchOnInit === false) {
|
|
540
|
-
searchStore.getItem('results').then(function (
|
|
639
|
+
Promise.all([searchStore.getItem('results'), searchStore.getItem('options')]).then(function (fromStore) {
|
|
541
640
|
instance.config.searchOnInit = true;
|
|
542
|
-
data.storedSearchResults =
|
|
543
|
-
|
|
641
|
+
data.storedSearchResults = fromStore[0];
|
|
642
|
+
data.storedSearchOptions = fromStore[1];
|
|
643
|
+
resolve(data);
|
|
544
644
|
}).catch(function (e) {
|
|
545
|
-
|
|
546
|
-
|
|
645
|
+
reject(new Error('Error appending default dataset from searchStore to datatable', {
|
|
646
|
+
cause: e
|
|
647
|
+
}));
|
|
547
648
|
});
|
|
548
649
|
} else {
|
|
549
|
-
resolve();
|
|
650
|
+
resolve(data);
|
|
550
651
|
}
|
|
551
652
|
});
|
|
552
653
|
}
|
|
553
|
-
/**
|
|
554
|
-
*
|
|
555
|
-
* @param
|
|
654
|
+
/**
|
|
655
|
+
* Replaces empty value by a placeholder.
|
|
656
|
+
* @param value
|
|
657
|
+
* @returns {string|*}
|
|
658
|
+
*/
|
|
659
|
+
|
|
660
|
+
|
|
661
|
+
var emptyValueTransform = function emptyValueTransform(value) {
|
|
662
|
+
var testedValue = value;
|
|
663
|
+
|
|
664
|
+
if (Array.isArray(testedValue)) {
|
|
665
|
+
testedValue = testedValue[0];
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
if ('string' === typeof testedValue) {
|
|
669
|
+
testedValue = testedValue.trim();
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
return testedValue === '' || testedValue === null || typeof testedValue === 'undefined' ? '-' : value;
|
|
673
|
+
};
|
|
674
|
+
/**
|
|
675
|
+
* Refines the columns to be compatible with the datatable model
|
|
676
|
+
* @param {object[]} columns
|
|
677
|
+
* @returns {object[]}
|
|
678
|
+
*/
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
function columnsToModel(columns) {
|
|
682
|
+
if (!Array.isArray(columns)) {
|
|
683
|
+
return [];
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
return columns.map(function (column) {
|
|
687
|
+
var id = column.id,
|
|
688
|
+
sortId = column.sortId,
|
|
689
|
+
label = column.label,
|
|
690
|
+
sortable = column.sortable,
|
|
691
|
+
isDuplicated = column.isDuplicated;
|
|
692
|
+
var alias, comment, classLabel;
|
|
693
|
+
|
|
694
|
+
if (isDuplicated) {
|
|
695
|
+
alias = column.alias;
|
|
696
|
+
classLabel = column.classLabel; // needed by the property selector
|
|
697
|
+
|
|
698
|
+
comment = column.classLabel; // needed by the datatable
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
return {
|
|
702
|
+
id: id,
|
|
703
|
+
sortId: sortId,
|
|
704
|
+
label: label,
|
|
705
|
+
alias: alias,
|
|
706
|
+
classLabel: classLabel,
|
|
707
|
+
comment: comment,
|
|
708
|
+
sortable: sortable,
|
|
709
|
+
transform: emptyValueTransform
|
|
710
|
+
};
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
/**
|
|
714
|
+
* Refines the data model for the datatable
|
|
715
|
+
* @param {object} data - search configuration including model and endpoint for datatable
|
|
716
|
+
* @returns {object} The data configuration refined with the data model for the datatrable
|
|
717
|
+
*/
|
|
718
|
+
|
|
719
|
+
|
|
720
|
+
function buildDataModel(data) {
|
|
721
|
+
//save availableColumns to memory
|
|
722
|
+
availableIdentifiers = {};
|
|
723
|
+
availableColumns = data.settings.availableColumns; // The support for the old data.model coming from the server has been removed from the commit
|
|
724
|
+
// https://github.com/oat-sa/tao-core-ui-fe/commit/ae6c16a9199f9fc808bc8a37d2ddfce437a62e9c
|
|
725
|
+
// The data model is now coming from the settings carried on by the searchParams request.
|
|
726
|
+
|
|
727
|
+
data.model = columnsToModel(availableColumns);
|
|
728
|
+
data.model.forEach(function (column) {
|
|
729
|
+
return availableIdentifiers[column.id] = true;
|
|
730
|
+
}); // adjust the default sorting and pagination
|
|
731
|
+
|
|
732
|
+
var _instance$config = instance.config,
|
|
733
|
+
sortby = _instance$config.sortby,
|
|
734
|
+
sortorder = _instance$config.sortorder,
|
|
735
|
+
page = _instance$config.page;
|
|
736
|
+
|
|
737
|
+
if (!sortorder || !['asc', 'desc'].includes(sortorder)) {
|
|
738
|
+
sortorder = 'asc';
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
var sortIdentifiers = [];
|
|
742
|
+
data.model.forEach(function (column) {
|
|
743
|
+
sortIdentifiers.push(column.sortId || column.id);
|
|
744
|
+
|
|
745
|
+
if (column.sortId && column.id === sortby) {
|
|
746
|
+
sortby = column.sortId;
|
|
747
|
+
}
|
|
748
|
+
});
|
|
749
|
+
|
|
750
|
+
if (!sortIdentifiers.includes(sortby)) {
|
|
751
|
+
// unknown sort identifier is rejected for safety
|
|
752
|
+
sortby = void 0;
|
|
753
|
+
sortorder = void 0;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
data.pageConfig = {
|
|
757
|
+
sortby: sortby,
|
|
758
|
+
sortorder: sortorder,
|
|
759
|
+
page: page
|
|
760
|
+
};
|
|
761
|
+
dataCache = _.cloneDeep(data);
|
|
762
|
+
return data;
|
|
763
|
+
}
|
|
764
|
+
/**
|
|
765
|
+
* Filters datatble model based on stored selected columns
|
|
766
|
+
* @param {Object} data data containing available columns and model for datatable
|
|
767
|
+
* @returns {Promise} promise which resolves with filtered data.model
|
|
768
|
+
*/
|
|
769
|
+
|
|
770
|
+
|
|
771
|
+
function filterSelectedColumns(data) {
|
|
772
|
+
return selectedColumnsStore.getItem(rootClassUri).then(function (storedSelectedColumnIds) {
|
|
773
|
+
selectedColumns = [];
|
|
774
|
+
|
|
775
|
+
if (storedSelectedColumnIds && storedSelectedColumnIds.length) {
|
|
776
|
+
storedSelectedColumnIds.forEach(function (id) {
|
|
777
|
+
if (availableIdentifiers[id]) {
|
|
778
|
+
selectedColumns.push(id);
|
|
779
|
+
}
|
|
780
|
+
});
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
if (!selectedColumns.length) {
|
|
784
|
+
selectedColumns = data.settings.availableColumns.reduce(function (acc, column) {
|
|
785
|
+
if (column.default) {
|
|
786
|
+
acc.push(column.id);
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
return acc;
|
|
790
|
+
}, []);
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
data.model = data.model.filter(function (column) {
|
|
794
|
+
return selectedColumns.includes(column.id);
|
|
795
|
+
});
|
|
796
|
+
return data;
|
|
797
|
+
}).catch(function (e) {
|
|
798
|
+
instance.trigger('error', e);
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Creates a datatable with search results
|
|
803
|
+
* @param {object} data - search configuration including model and endpoint for datatable
|
|
556
804
|
*/
|
|
557
805
|
|
|
558
806
|
|
|
559
807
|
function buildSearchResultsDatatable(data) {
|
|
560
|
-
//
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
$
|
|
808
|
+
// Note: the table container needs to be recreated because datatable is storing data in it.
|
|
809
|
+
// Keeping the table container introduces a DOM pollution.
|
|
810
|
+
// It is faster and cleaner to recreate the container than cleaning it explicitly.
|
|
811
|
+
var $tableContainer = $$1(resultsContainerTpl());
|
|
812
|
+
var $contentContainer = controls.$contentArea.empty();
|
|
813
|
+
$contentContainer.append($tableContainer);
|
|
814
|
+
$tableContainer.on('load.datatable', searchResultsLoaded);
|
|
815
|
+
|
|
816
|
+
var _ref = data.storedSearchOptions || data.pageConfig,
|
|
817
|
+
sortby = _ref.sortby,
|
|
818
|
+
sortorder = _ref.sortorder,
|
|
819
|
+
page = _ref.page; //create datatable
|
|
820
|
+
|
|
566
821
|
|
|
567
822
|
$tableContainer.datatable({
|
|
568
823
|
url: data.url,
|
|
569
|
-
model:
|
|
824
|
+
model: data.model,
|
|
825
|
+
sortby: sortby,
|
|
826
|
+
sortorder: sortorder,
|
|
827
|
+
page: page,
|
|
570
828
|
labels: {
|
|
571
829
|
actions: ''
|
|
572
830
|
},
|
|
@@ -585,35 +843,126 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
585
843
|
}
|
|
586
844
|
}, data.storedSearchResults);
|
|
587
845
|
}
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
846
|
+
|
|
847
|
+
function getTableOptions() {
|
|
848
|
+
var $tableContainer = $$1('.results-container', $container);
|
|
849
|
+
return _.cloneDeep($tableContainer.data('ui.datatable') || {});
|
|
850
|
+
}
|
|
851
|
+
/**
|
|
852
|
+
* Filters data from cache by selected and recreates datatable
|
|
853
|
+
* @params {object} options - Additional options to be given to the datatable
|
|
854
|
+
*/
|
|
855
|
+
|
|
856
|
+
|
|
857
|
+
function recreateDatatable() {
|
|
858
|
+
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
859
|
+
var data = Object.assign(_.cloneDeep(dataCache), options);
|
|
860
|
+
filterSelectedColumns(data).then(buildSearchResultsDatatable);
|
|
861
|
+
}
|
|
862
|
+
/**
|
|
863
|
+
* Triggered on load.datatable event, it updates searchStore and manages possible exceptions
|
|
864
|
+
* @param {object} e - load.datatable event
|
|
865
|
+
* @param {object} dataset - datatable dataset
|
|
592
866
|
*/
|
|
593
867
|
|
|
594
868
|
|
|
595
869
|
function searchResultsLoaded(e, dataset) {
|
|
870
|
+
var $contentToolbar = controls.$contentToolbar.empty();
|
|
871
|
+
|
|
872
|
+
if (instance.isAdvancedSearchEnabled()) {
|
|
873
|
+
var $manageColumnsBtn = $$1(propertySelectButtonTpl());
|
|
874
|
+
$contentToolbar.append($manageColumnsBtn);
|
|
875
|
+
$manageColumnsBtn.on('click', handleManageColumnsBtnClick);
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
var _getTableOptions = getTableOptions(),
|
|
879
|
+
sortby = _getTableOptions.sortby,
|
|
880
|
+
sortorder = _getTableOptions.sortorder;
|
|
881
|
+
|
|
596
882
|
if (dataset.records === 0) {
|
|
597
883
|
replaceSearchResultsDatatableWithMessage('no-matches');
|
|
598
884
|
}
|
|
599
885
|
|
|
600
|
-
instance.trigger(
|
|
886
|
+
instance.trigger('datatable-loaded');
|
|
601
887
|
updateSearchStore({
|
|
602
888
|
action: 'update',
|
|
603
889
|
dataset: dataset,
|
|
890
|
+
options: {
|
|
891
|
+
sortby: sortby,
|
|
892
|
+
sortorder: sortorder
|
|
893
|
+
},
|
|
604
894
|
context: context.shownStructure,
|
|
605
895
|
criterias: {
|
|
606
|
-
search:
|
|
896
|
+
search: controls.$searchInput && controls.$searchInput.val(),
|
|
607
897
|
class: isResourceSelector ? _.map(resourceSelector.getSelection(), 'uri')[0] : rootClassUri,
|
|
608
898
|
advancedCriteria: advancedSearch.getState()
|
|
609
899
|
}
|
|
610
900
|
});
|
|
611
901
|
}
|
|
612
|
-
/**
|
|
613
|
-
*
|
|
614
|
-
*
|
|
615
|
-
|
|
616
|
-
|
|
902
|
+
/**
|
|
903
|
+
* Handler for manage columns button click
|
|
904
|
+
* @param {Event} e
|
|
905
|
+
*/
|
|
906
|
+
|
|
907
|
+
|
|
908
|
+
function handleManageColumnsBtnClick(e) {
|
|
909
|
+
var selected = selectedColumns;
|
|
910
|
+
var available = columnsToModel(availableColumns);
|
|
911
|
+
|
|
912
|
+
if (!propertySelectorInstance) {
|
|
913
|
+
var _this$getBoundingClie = this.getBoundingClientRect(),
|
|
914
|
+
btnBottom = _this$getBoundingClie.bottom,
|
|
915
|
+
btnRight = _this$getBoundingClie.right;
|
|
916
|
+
|
|
917
|
+
var _$container$get$getBo = $container.get(0).getBoundingClientRect(),
|
|
918
|
+
containerTop = _$container$get$getBo.top,
|
|
919
|
+
containerRight = _$container$get$getBo.right;
|
|
920
|
+
|
|
921
|
+
var position = {
|
|
922
|
+
top: btnBottom - containerTop,
|
|
923
|
+
right: containerRight - btnRight
|
|
924
|
+
};
|
|
925
|
+
propertySelectorInstance = propertySelectorFactory({
|
|
926
|
+
renderTo: $container,
|
|
927
|
+
data: {
|
|
928
|
+
position: position,
|
|
929
|
+
available: available,
|
|
930
|
+
selected: selected
|
|
931
|
+
}
|
|
932
|
+
});
|
|
933
|
+
propertySelectorInstance.on('select', function (selection) {
|
|
934
|
+
if (selection.length !== selectedColumns.length || selection.some(function (columnId) {
|
|
935
|
+
return !selectedColumns.includes(columnId);
|
|
936
|
+
})) {
|
|
937
|
+
//update table
|
|
938
|
+
selectedColumns = selection;
|
|
939
|
+
|
|
940
|
+
var _getTableOptions2 = getTableOptions(),
|
|
941
|
+
sortby = _getTableOptions2.sortby,
|
|
942
|
+
sortorder = _getTableOptions2.sortorder,
|
|
943
|
+
page = _getTableOptions2.page;
|
|
944
|
+
|
|
945
|
+
updateSelectedStore({
|
|
946
|
+
selection: selection,
|
|
947
|
+
sortby: sortby,
|
|
948
|
+
sortorder: sortorder,
|
|
949
|
+
page: page
|
|
950
|
+
});
|
|
951
|
+
}
|
|
952
|
+
});
|
|
953
|
+
} else {
|
|
954
|
+
propertySelectorInstance.setData({
|
|
955
|
+
available: available,
|
|
956
|
+
selected: selected
|
|
957
|
+
});
|
|
958
|
+
propertySelectorInstance.toggle();
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* Updates searchStore. If action is 'clear', searchStore is claread. If not, received
|
|
963
|
+
* data is assigned to searchStore. Once all actions have been done,
|
|
964
|
+
* store-updated event is triggered
|
|
965
|
+
* @param {object} data - data to store
|
|
617
966
|
*/
|
|
618
967
|
|
|
619
968
|
|
|
@@ -625,24 +974,60 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
625
974
|
} else if (data.action === 'update') {
|
|
626
975
|
promises.push(searchStore.setItem('criterias', data.criterias));
|
|
627
976
|
promises.push(searchStore.setItem('context', data.context));
|
|
977
|
+
promises.push(searchStore.setItem('options', data.options));
|
|
628
978
|
promises.push(data.dataset.records === 0 ? searchStore.removeItem('results') : searchStore.setItem('results', data.dataset));
|
|
629
979
|
}
|
|
630
980
|
|
|
631
981
|
Promise.all(promises).then(function () {
|
|
632
|
-
return instance.trigger(
|
|
982
|
+
return instance.trigger('store-updated');
|
|
983
|
+
}).catch(function (e) {
|
|
984
|
+
return instance.trigger('error', e);
|
|
985
|
+
});
|
|
986
|
+
}
|
|
987
|
+
/**
|
|
988
|
+
*
|
|
989
|
+
* @param {object} update - The changed configuration
|
|
990
|
+
* @param {Array<string>} update.selection - array of column ids to display
|
|
991
|
+
* @param {string} update.sortby - The sorted column
|
|
992
|
+
* @param {string} update.sortorder - The sort order
|
|
993
|
+
* @param {number} update.page - The current page
|
|
994
|
+
* @returns
|
|
995
|
+
*/
|
|
996
|
+
|
|
997
|
+
|
|
998
|
+
function updateSelectedStore() {
|
|
999
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
1000
|
+
_ref2$selection = _ref2.selection,
|
|
1001
|
+
selection = _ref2$selection === void 0 ? [] : _ref2$selection,
|
|
1002
|
+
_ref2$sortby = _ref2.sortby,
|
|
1003
|
+
sortby = _ref2$sortby === void 0 ? 'id' : _ref2$sortby,
|
|
1004
|
+
_ref2$sortorder = _ref2.sortorder,
|
|
1005
|
+
sortorder = _ref2$sortorder === void 0 ? 'asc' : _ref2$sortorder,
|
|
1006
|
+
_ref2$page = _ref2.page,
|
|
1007
|
+
page = _ref2$page === void 0 ? 1 : _ref2$page;
|
|
1008
|
+
|
|
1009
|
+
var storedSearchOptions = {
|
|
1010
|
+
sortby: sortby,
|
|
1011
|
+
sortorder: sortorder,
|
|
1012
|
+
page: page
|
|
1013
|
+
};
|
|
1014
|
+
return selectedColumnsStore.setItem(rootClassUri, selection).then(function () {
|
|
1015
|
+
return instance.trigger('selected-store-updated', {
|
|
1016
|
+
storedSearchOptions: storedSearchOptions
|
|
1017
|
+
});
|
|
633
1018
|
}).catch(function (e) {
|
|
634
1019
|
return instance.trigger('error', e);
|
|
635
1020
|
});
|
|
636
1021
|
}
|
|
637
|
-
/**
|
|
638
|
-
* Clear search input, criteria and results from both, view and store.
|
|
639
|
-
* Also sets every criterion on criteriaState to unredered and
|
|
640
|
-
* undefined value
|
|
1022
|
+
/**
|
|
1023
|
+
* Clear search input, criteria and results from both, view and store.
|
|
1024
|
+
* Also sets every criterion on criteriaState to unredered and
|
|
1025
|
+
* undefined value
|
|
641
1026
|
*/
|
|
642
1027
|
|
|
643
1028
|
|
|
644
1029
|
function clear() {
|
|
645
|
-
|
|
1030
|
+
controls.$searchInput.val('');
|
|
646
1031
|
advancedSearch.clear();
|
|
647
1032
|
isResourceSelector && resourceSelector.select(rootClassUri);
|
|
648
1033
|
replaceSearchResultsDatatableWithMessage('no-query');
|
|
@@ -650,15 +1035,13 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
650
1035
|
action: 'clear'
|
|
651
1036
|
});
|
|
652
1037
|
}
|
|
653
|
-
/**
|
|
654
|
-
* Removes datatable container and displays a message instead
|
|
655
|
-
* @param {string} reason - reason why datatable is not rendered, to display appropiate message
|
|
1038
|
+
/**
|
|
1039
|
+
* Removes datatable container and displays a message instead
|
|
1040
|
+
* @param {string} reason - reason why datatable is not rendered, to display appropiate message
|
|
656
1041
|
*/
|
|
657
1042
|
|
|
658
1043
|
|
|
659
1044
|
function replaceSearchResultsDatatableWithMessage(reason) {
|
|
660
|
-
var section = $$1('.content-container', $container);
|
|
661
|
-
section.empty();
|
|
662
1045
|
var message = '';
|
|
663
1046
|
var icon = '';
|
|
664
1047
|
|
|
@@ -674,7 +1057,8 @@ define(['jquery', 'lodash', 'i18n', 'context', 'handlebars', 'lib/dompurify/puri
|
|
|
674
1057
|
message: message,
|
|
675
1058
|
icon: icon
|
|
676
1059
|
});
|
|
677
|
-
|
|
1060
|
+
controls.$contentToolbar.empty();
|
|
1061
|
+
controls.$contentArea.empty().append(infoMessage);
|
|
678
1062
|
} // return initialized instance of searchModal
|
|
679
1063
|
|
|
680
1064
|
|