@oat-sa/tao-core-ui 1.60.2 → 1.62.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 +393 -410
- package/dist/adder.js +143 -156
- package/dist/animable/absorbable/absorbable.js +208 -211
- package/dist/animable/absorbable/css/absorb.css +7 -8
- 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 +174 -174
- package/dist/areaBroker.js +59 -72
- package/dist/autocomplete/css/autocomplete.css +7 -8
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +494 -604
- package/dist/autoscroll.js +23 -25
- package/dist/badge/badge.js +201 -199
- package/dist/badge/css/badge.css +7 -8
- 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 +286 -285
- package/dist/btngrouper.js +83 -95
- package/dist/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/dist/bulkActionPopup.js +503 -503
- package/dist/button.js +300 -293
- package/dist/calculator/css/calculator.css +10 -10
- package/dist/calculator/css/calculator.css.map +1 -1
- package/dist/calculator.js +59 -72
- package/dist/cascadingComboBox.js +257 -256
- package/dist/ckeditor/ckConfigurator.js +130 -154
- package/dist/ckeditor/dtdHandler.js +305 -345
- package/dist/class/css/selector.css +7 -7
- package/dist/class/css/selector.css.map +1 -1
- package/dist/class/selector.js +437 -470
- package/dist/component/alignable.js +97 -121
- package/dist/component/containable.js +53 -58
- 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 +34 -36
- package/dist/component/placeable.js +84 -102
- package/dist/component/resizable.js +79 -89
- package/dist/component/stackable.js +21 -27
- package/dist/component/windowed.js +284 -297
- package/dist/component.js +439 -467
- package/dist/container.js +79 -98
- package/dist/contextualPopup/css/contextualPopup.css +7 -7
- package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
- package/dist/contextualPopup.js +417 -436
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +302 -305
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +783 -791
- package/dist/datatable/css/datatable.css +11 -7
- package/dist/datatable/css/datatable.css.map +1 -1
- package/dist/datatable/filterStrategy/filterStrategy.js +28 -30
- package/dist/datatable/filterStrategy/multiple.js +26 -45
- package/dist/datatable/filterStrategy/single.js +28 -40
- package/dist/datatable.js +1591 -1616
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +398 -412
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +670 -703
- package/dist/deleter.js +383 -398
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +295 -293
- package/dist/dialog/alert.js +30 -32
- package/dist/dialog/confirm.js +29 -32
- package/dist/dialog/confirmDelete.js +223 -221
- package/dist/dialog.js +651 -695
- package/dist/disabler.js +108 -119
- 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 +172 -169
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +32 -29
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +523 -564
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +376 -393
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +53 -68
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +517 -567
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +73 -96
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +381 -392
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +125 -152
- package/dist/documentViewer/providers/pdfViewer.js +189 -191
- package/dist/documentViewer/viewerFactory.js +76 -81
- package/dist/documentViewer.js +303 -311
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +392 -412
- package/dist/durationer.js +77 -85
- package/dist/dynamicComponent/css/dynamicComponent.css +7 -7
- package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/dist/dynamicComponent.js +595 -630
- package/dist/feedback.js +365 -375
- package/dist/figure/FigureStateActive.js +246 -296
- package/dist/filesender.js +44 -54
- package/dist/filter.js +244 -240
- 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 +357 -362
- package/dist/form/form.js +703 -984
- package/dist/form/simpleForm.js +74 -77
- 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 +235 -241
- package/dist/form/validator/validator.js +181 -267
- 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 +27 -28
- package/dist/form/widget/loader.js +16 -16
- package/dist/form/widget/providers/checkBox.js +257 -264
- package/dist/form/widget/providers/comboBox.js +194 -193
- package/dist/form/widget/providers/default.js +44 -50
- package/dist/form/widget/providers/hidden.js +179 -176
- package/dist/form/widget/providers/hiddenBox.js +262 -272
- package/dist/form/widget/providers/radioBox.js +222 -223
- package/dist/form/widget/providers/textArea.js +197 -193
- package/dist/form/widget/providers/textBox.js +36 -37
- package/dist/form/widget/widget.js +480 -508
- package/dist/form.js +12 -17
- package/dist/formValidator/formValidator.js +74 -91
- package/dist/formValidator/highlighters/highlighter.js +43 -51
- package/dist/formValidator/highlighters/message.js +31 -32
- package/dist/formValidator/highlighters/tooltip.js +33 -35
- 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 +323 -331
- 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 +215 -216
- package/dist/generis/widget/checkBox/checkBox.js +227 -225
- package/dist/generis/widget/comboBox/comboBox.js +189 -183
- 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 +231 -232
- package/dist/generis/widget/loader.js +21 -23
- package/dist/generis/widget/textBox/textBox.js +178 -172
- package/dist/generis/widget/widget.js +255 -266
- package/dist/groupedComboBox.js +231 -226
- package/dist/groupvalidator.js +30 -34
- package/dist/hider.js +43 -50
- package/dist/highlighter.js +946 -1057
- package/dist/image/ImgStateActive/extractLabel.js +20 -21
- package/dist/image/ImgStateActive/helper.js +21 -25
- package/dist/image/ImgStateActive/initHelper.js +133 -162
- package/dist/image/ImgStateActive/initMediaEditor.js +72 -92
- package/dist/image/ImgStateActive/mediaSizer.js +48 -58
- package/dist/image/ImgStateActive.js +185 -215
- package/dist/incrementer.js +91 -110
- package/dist/inplacer.js +108 -132
- package/dist/interactUtils.js +56 -67
- package/dist/itemButtonList/css/item-button-list.css +23 -24
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +444 -469
- package/dist/keyNavigation/navigableDomElement.js +124 -158
- package/dist/keyNavigation/navigator.js +235 -312
- package/dist/listbox/css/listbox.css +7 -7
- package/dist/listbox/css/listbox.css.map +1 -1
- package/dist/listbox.js +463 -476
- package/dist/liststyler.js +75 -76
- package/dist/loadingButton/css/button.css +7 -7
- package/dist/loadingButton/css/button.css.map +1 -1
- package/dist/loadingButton/loadingButton.js +219 -218
- package/dist/lock.js +484 -509
- package/dist/login/login.js +471 -486
- package/dist/maths/calculator/basicCalculator.js +247 -242
- package/dist/maths/calculator/calculatorComponent.js +34 -36
- package/dist/maths/calculator/core/areaBroker.js +30 -28
- package/dist/maths/calculator/core/board.js +805 -872
- package/dist/maths/calculator/core/expression.js +500 -518
- package/dist/maths/calculator/core/labels.js +240 -235
- package/dist/maths/calculator/core/plugin.js +20 -20
- package/dist/maths/calculator/core/terms.js +27 -27
- package/dist/maths/calculator/core/tokenizer.js +119 -132
- package/dist/maths/calculator/core/tokens.js +157 -168
- 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 +24 -27
- package/dist/maths/calculator/plugins/core/degrad.js +22 -30
- package/dist/maths/calculator/plugins/core/history.js +55 -67
- package/dist/maths/calculator/plugins/core/remind.js +22 -25
- package/dist/maths/calculator/plugins/core/stepNavigation.js +33 -49
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +255 -258
- package/dist/maths/calculator/plugins/modifiers/pow10.js +47 -52
- package/dist/maths/calculator/plugins/modifiers/sign.js +103 -130
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +288 -293
- package/dist/maths/calculator/pluginsLoader.js +22 -22
- package/dist/maths/calculator/scientificCalculator.js +339 -334
- package/dist/mediaEditor/mediaEditorComponent.js +244 -249
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +28 -33
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +228 -236
- package/dist/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/dist/mediaEditor/plugins/mediaDimension/helper.js +81 -106
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +597 -635
- 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 +646 -706
- package/dist/mediaplayer/players/youtube.js +393 -438
- package/dist/mediaplayer/players.js +19 -19
- package/dist/mediaplayer/support.js +66 -79
- package/dist/mediaplayer/utils/reminder.js +117 -128
- package/dist/mediaplayer/utils/timeObserver.js +106 -109
- package/dist/mediaplayer/youtubeManager.js +142 -170
- package/dist/mediaplayer.js +1484 -1774
- package/dist/mediasizer.js +633 -676
- package/dist/modal.js +137 -153
- package/dist/movableComponent.js +37 -37
- package/dist/pageSizeSelector.js +231 -224
- package/dist/pageStatus.js +43 -46
- package/dist/pagination/css/pagination.css +7 -7
- package/dist/pagination/css/pagination.css.map +1 -1
- package/dist/pagination/paginationStrategy.js +24 -25
- package/dist/pagination/providers/pages.js +281 -291
- package/dist/pagination/providers/simple.js +202 -196
- package/dist/pagination.js +49 -72
- package/dist/previewer.js +113 -138
- package/dist/progressbar.js +70 -80
- package/dist/propertySelector/css/propertySelector.css +74 -0
- package/dist/propertySelector/css/propertySelector.css.map +1 -0
- package/dist/propertySelector/propertySelector.js +489 -0
- package/dist/report.js +356 -359
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +275 -289
- package/dist/resource/list.js +1589 -1371
- package/dist/resource/selectable.js +101 -136
- package/dist/resource/selector.js +855 -914
- package/dist/resource/tree.js +1796 -1612
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +540 -587
- package/dist/resourcemgr/filePreview.js +16 -25
- package/dist/resourcemgr/fileSelector.js +520 -547
- package/dist/resourcemgr/util/updatePermissions.js +10 -18
- package/dist/resourcemgr.js +325 -332
- package/dist/scroller.js +29 -33
- package/dist/searchModal/advancedSearch.js +949 -833
- package/dist/searchModal/css/advancedSearch.css +7 -14
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +28 -8
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +616 -335
- package/dist/selecter.js +21 -28
- package/dist/stacker.js +52 -60
- package/dist/switch/css/switch.css +7 -7
- package/dist/switch/css/switch.css.map +1 -1
- package/dist/switch/switch.js +305 -311
- package/dist/tableModel.js +39 -49
- package/dist/tabs/css/tabs.css +12 -12
- package/dist/tabs/css/tabs.css.map +1 -1
- package/dist/tabs.js +588 -639
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +317 -322
- package/dist/taskQueue/table.js +383 -394
- package/dist/taskQueue/taskQueue.js +19 -19
- package/dist/taskQueue/taskQueueModel.js +459 -538
- package/dist/taskQueue.js +49 -67
- 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 +45 -43
- package/dist/taskQueueButton/taskable.js +267 -272
- package/dist/taskQueueButton/treeButton.js +200 -198
- package/dist/themeLoader.js +109 -129
- package/dist/themes.js +86 -100
- package/dist/toggler.js +76 -88
- package/dist/tooltip.js +296 -311
- package/dist/tooltipster.js +17 -17
- package/dist/transformer.js +140 -169
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/dist/tristateCheckboxGroup.js +319 -325
- package/dist/uploader.js +691 -724
- package/dist/validator/Report.js +1 -2
- package/dist/validator/Validator.js +6 -25
- package/dist/validator/validators.js +66 -80
- package/dist/validator.js +218 -254
- package/dist/waitForMedia.js +45 -51
- package/dist/waitingDialog/css/waitingDialog.css +7 -7
- package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
- package/dist/waitingDialog/waitingDialog.js +59 -77
- package/package.json +109 -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 -8
- 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 -8
- 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 -8
- 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 -106
- 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 -24
- 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 +28 -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/datalist.js
CHANGED
|
@@ -1,866 +1,858 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'i18n', 'ui/component', 'handlebars', 'lib/dompurify/purify', 'css!ui/datalist/css/datalist.css'], function ($$1, _, __, component, Handlebars, DOMPurify, datalist_css) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* https://github.com/cure53/DOMPurify
|
|
29
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
30
|
-
* to make output safe for template systems
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
6
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
7
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
8
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* This program is free software; you can redistribute it and/or
|
|
12
|
+
* modify it under the terms of the GNU General Public License
|
|
13
|
+
* as published by the Free Software Foundation; under version 2
|
|
14
|
+
* of the License (non-upgradable).
|
|
15
|
+
*
|
|
16
|
+
* This program is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU General Public License
|
|
22
|
+
* along with this program; if not, write to the Free Software
|
|
23
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
24
|
+
*
|
|
25
|
+
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
26
|
+
*
|
|
27
|
+
*
|
|
31
28
|
*/
|
|
29
|
+
function Helpers0 (hb) {
|
|
30
|
+
//register a i18n helper
|
|
31
|
+
hb.registerHelper('__', function (key) {
|
|
32
|
+
return __(key);
|
|
33
|
+
});
|
|
32
34
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*/
|
|
44
|
-
|
|
45
|
-
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
46
|
-
var fragments = [];
|
|
47
|
-
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
48
|
-
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
49
|
-
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
50
|
-
|
|
51
|
-
_.forIn(arr, function (value, key) {
|
|
52
|
-
var fragment = '';
|
|
35
|
+
/**
|
|
36
|
+
* Register dompurify helper
|
|
37
|
+
*
|
|
38
|
+
* https://github.com/cure53/DOMPurify
|
|
39
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
40
|
+
* to make output safe for template systems
|
|
41
|
+
*/
|
|
42
|
+
hb.registerHelper('dompurify', function (context) {
|
|
43
|
+
return DOMPurify.sanitize(context);
|
|
44
|
+
});
|
|
53
45
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Register join helper
|
|
48
|
+
*
|
|
49
|
+
* Example :
|
|
50
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
51
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
52
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
53
|
+
*/
|
|
54
|
+
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
55
|
+
var fragments = [];
|
|
56
|
+
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
57
|
+
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
58
|
+
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
59
|
+
_.forIn(arr, function (value, key) {
|
|
60
|
+
var fragment = '';
|
|
61
|
+
if (value !== null || value !== undefined) {
|
|
62
|
+
if (typeof value === 'boolean') {
|
|
63
|
+
value = value ? 'true' : 'false';
|
|
64
|
+
} else if (typeof value === 'object') {
|
|
65
|
+
value = _.values(value).join(' ');
|
|
66
|
+
}
|
|
67
|
+
} else {
|
|
68
|
+
value = '';
|
|
59
69
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
70
|
+
if (keyValueGlue !== undefined) {
|
|
71
|
+
fragment += key + keyValueGlue;
|
|
72
|
+
}
|
|
73
|
+
fragment += wrapper + value + wrapper;
|
|
74
|
+
fragments.push(fragment);
|
|
75
|
+
});
|
|
76
|
+
return fragments.join(fragmentGlue);
|
|
77
|
+
});
|
|
63
78
|
|
|
64
|
-
|
|
65
|
-
|
|
79
|
+
//register a classic "for loop" helper
|
|
80
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
81
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
82
|
+
var ret = '';
|
|
83
|
+
startIndex = parseInt(startIndex);
|
|
84
|
+
stopIndex = parseInt(stopIndex);
|
|
85
|
+
increment = parseInt(increment);
|
|
86
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
87
|
+
ret += options.fn(_.extend({}, this, {
|
|
88
|
+
i: i
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
return ret;
|
|
92
|
+
});
|
|
93
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
94
|
+
if (var1 == var2) {
|
|
95
|
+
return options.fn(this);
|
|
96
|
+
} else {
|
|
97
|
+
return options.inverse(this);
|
|
66
98
|
}
|
|
67
|
-
|
|
68
|
-
fragment += wrapper + value + wrapper;
|
|
69
|
-
fragments.push(fragment);
|
|
70
99
|
});
|
|
71
100
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
101
|
+
// register a "get property" helper
|
|
102
|
+
// it gets the named property from the provided context
|
|
103
|
+
hb.registerHelper('property', function (name, context) {
|
|
104
|
+
return context[name] || '';
|
|
105
|
+
});
|
|
75
106
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
107
|
+
// register an 'includes' helper
|
|
108
|
+
// it checks if value is in array
|
|
109
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
110
|
+
if (_.contains(haystack, needle)) {
|
|
111
|
+
return options.fn(this);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
81
115
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
116
|
+
if (!Helpers0.__initialized) {
|
|
117
|
+
Helpers0(Handlebars);
|
|
118
|
+
Helpers0.__initialized = true;
|
|
119
|
+
}
|
|
120
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
121
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
122
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
123
|
+
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
|
|
124
|
+
|
|
125
|
+
function program1(depth0,data) {
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
return "class=\"hidden\"";
|
|
86
129
|
}
|
|
87
130
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return options.fn(this);
|
|
93
|
-
} else {
|
|
94
|
-
return options.inverse(this);
|
|
131
|
+
function program3(depth0,data) {
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
return " hidden";
|
|
95
135
|
}
|
|
96
|
-
}); // register a "get property" helper
|
|
97
|
-
// it gets the named property from the provided context
|
|
98
136
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
137
|
+
function program5(depth0,data) {
|
|
138
|
+
|
|
139
|
+
var buffer = "", stack1;
|
|
140
|
+
buffer += "\n <aside class=\"action-bar clearfix\">\n ";
|
|
141
|
+
stack1 = helpers.each.call(depth0, (depth0 && depth0.tools), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
|
|
142
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
143
|
+
buffer += "\n </aside>\n ";
|
|
144
|
+
return buffer;
|
|
145
|
+
}
|
|
146
|
+
function program6(depth0,data) {
|
|
147
|
+
|
|
148
|
+
var buffer = "", stack1, helper;
|
|
149
|
+
buffer += "\n <button class=\"btn-info small ";
|
|
150
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.massAction), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
151
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
152
|
+
buffer += "\" data-control=\"";
|
|
153
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
154
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
155
|
+
buffer += escapeExpression(stack1)
|
|
156
|
+
+ "\" ";
|
|
157
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
|
|
158
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
159
|
+
buffer += ">\n ";
|
|
160
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
|
|
161
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
162
|
+
buffer += "\n ";
|
|
163
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
164
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
165
|
+
buffer += escapeExpression(stack1)
|
|
166
|
+
+ "\n </button>\n ";
|
|
167
|
+
return buffer;
|
|
168
|
+
}
|
|
169
|
+
function program7(depth0,data) {
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
return " mass-action hidden";
|
|
107
173
|
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
if (!Helpers0.__initialized) {
|
|
112
|
-
Helpers0(Handlebars);
|
|
113
|
-
Helpers0.__initialized = true;
|
|
114
|
-
}
|
|
115
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
116
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
117
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
118
|
-
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
|
|
119
|
-
|
|
120
|
-
function program1(depth0,data) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return "class=\"hidden\"";
|
|
124
|
-
}
|
|
125
174
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
175
|
+
function program9(depth0,data) {
|
|
176
|
+
|
|
177
|
+
var buffer = "", stack1, helper;
|
|
178
|
+
buffer += " title=\"";
|
|
179
|
+
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
180
|
+
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
181
|
+
buffer += escapeExpression(stack1)
|
|
182
|
+
+ "\"";
|
|
183
|
+
return buffer;
|
|
184
|
+
}
|
|
131
185
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
var buffer = "", stack1, helper;
|
|
144
|
-
buffer += "\r\n <button class=\"btn-info small ";
|
|
145
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.massAction), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
146
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
147
|
-
buffer += "\" data-control=\"";
|
|
148
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
149
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
150
|
-
buffer += escapeExpression(stack1)
|
|
151
|
-
+ "\" ";
|
|
152
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
|
|
153
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
154
|
-
buffer += ">\r\n ";
|
|
155
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
|
|
156
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
157
|
-
buffer += "\r\n ";
|
|
158
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
159
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
160
|
-
buffer += escapeExpression(stack1)
|
|
161
|
-
+ "\r\n </button>\r\n ";
|
|
162
|
-
return buffer;
|
|
163
|
-
}
|
|
164
|
-
function program7(depth0,data) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return " mass-action hidden";
|
|
168
|
-
}
|
|
186
|
+
function program11(depth0,data) {
|
|
187
|
+
|
|
188
|
+
var buffer = "", stack1, helper;
|
|
189
|
+
buffer += "<span class=\"icon icon-";
|
|
190
|
+
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
191
|
+
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
192
|
+
buffer += escapeExpression(stack1)
|
|
193
|
+
+ "\"></span>";
|
|
194
|
+
return buffer;
|
|
195
|
+
}
|
|
169
196
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
176
|
-
buffer += escapeExpression(stack1)
|
|
177
|
-
+ "\"";
|
|
178
|
-
return buffer;
|
|
179
|
-
}
|
|
197
|
+
function program13(depth0,data) {
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
return "\n <col/>\n ";
|
|
201
|
+
}
|
|
180
202
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
187
|
-
buffer += escapeExpression(stack1)
|
|
188
|
-
+ "\"></span>";
|
|
189
|
-
return buffer;
|
|
190
|
-
}
|
|
203
|
+
function program15(depth0,data) {
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
return "\n <th class=\"checkboxes\"><input type=\"checkbox\" name=\"checkall\" value=\"1\" /></th>\n ";
|
|
207
|
+
}
|
|
191
208
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
209
|
+
function program17(depth0,data) {
|
|
210
|
+
|
|
211
|
+
var buffer = "", helper, options;
|
|
212
|
+
buffer += "\n <th class=\"actions\">"
|
|
213
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Actions", options) : helperMissing.call(depth0, "__", "Actions", options)))
|
|
214
|
+
+ "</th>\n ";
|
|
215
|
+
return buffer;
|
|
216
|
+
}
|
|
197
217
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
218
|
+
buffer += "<div class=\"datalist\">\n <h1 ";
|
|
219
|
+
stack1 = helpers.unless.call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
220
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
221
|
+
buffer += ">";
|
|
222
|
+
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
223
|
+
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
224
|
+
buffer += escapeExpression(stack1)
|
|
225
|
+
+ "</h1>\n <h2>\n <span class=\"empty-list";
|
|
226
|
+
stack1 = helpers.unless.call(depth0, (depth0 && depth0.textEmpty), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
227
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
228
|
+
buffer += "\">";
|
|
229
|
+
if (helper = helpers.textEmpty) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
230
|
+
else { helper = (depth0 && depth0.textEmpty); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
231
|
+
buffer += escapeExpression(stack1)
|
|
232
|
+
+ "</span>\n <span class=\"available-list";
|
|
233
|
+
stack1 = helpers.unless.call(depth0, (depth0 && depth0.textNumber), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
234
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
235
|
+
buffer += "\"><span class=\"label\">";
|
|
236
|
+
if (helper = helpers.textNumber) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
237
|
+
else { helper = (depth0 && depth0.textNumber); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
238
|
+
buffer += escapeExpression(stack1)
|
|
239
|
+
+ "</span>: <span class=\"count\"></span></span>\n <span class=\"loading";
|
|
240
|
+
stack1 = helpers.unless.call(depth0, (depth0 && depth0.textLoading), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
241
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
242
|
+
buffer += "\"><span>";
|
|
243
|
+
if (helper = helpers.textLoading) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
244
|
+
else { helper = (depth0 && depth0.textLoading); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
245
|
+
buffer += escapeExpression(stack1)
|
|
246
|
+
+ "</span>...</span>\n </h2>\n <div class=\"list\">\n ";
|
|
247
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.tools), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
248
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
249
|
+
buffer += "\n\n <table class=\"matrix\">\n <colgroup>\n ";
|
|
250
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.selectable), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
|
|
251
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
252
|
+
buffer += "\n <col/>\n ";
|
|
253
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.actions), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
|
|
254
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
255
|
+
buffer += "\n </colgroup>\n <thead>\n <tr>\n ";
|
|
256
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.selectable), {hash:{},inverse:self.noop,fn:self.program(15, program15, data),data:data});
|
|
257
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
258
|
+
buffer += "\n <th class=\"label\">";
|
|
259
|
+
if (helper = helpers.labelText) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
260
|
+
else { helper = (depth0 && depth0.labelText); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
261
|
+
buffer += escapeExpression(stack1)
|
|
262
|
+
+ "</th>\n ";
|
|
263
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.actions), {hash:{},inverse:self.noop,fn:self.program(17, program17, data),data:data});
|
|
264
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
265
|
+
buffer += "\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n</div>\n";
|
|
266
|
+
return buffer;
|
|
267
|
+
});
|
|
268
|
+
function mainTpl(data, options, asString) {
|
|
269
|
+
var html = Template(data, options);
|
|
270
|
+
return (asString || true) ? html : $(html);
|
|
202
271
|
}
|
|
203
272
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
buffer += "\r\n <th class=\"actions\">"
|
|
208
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Actions", options) : helperMissing.call(depth0, "__", "Actions", options)))
|
|
209
|
-
+ "</th>\r\n ";
|
|
210
|
-
return buffer;
|
|
273
|
+
if (!Helpers0.__initialized) {
|
|
274
|
+
Helpers0(Handlebars);
|
|
275
|
+
Helpers0.__initialized = true;
|
|
211
276
|
}
|
|
277
|
+
var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
278
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
279
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
280
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
281
|
+
|
|
282
|
+
function program1(depth0,data,depth1) {
|
|
283
|
+
|
|
284
|
+
var buffer = "", stack1, helper;
|
|
285
|
+
buffer += "\n<tr data-id=\"";
|
|
286
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
287
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
288
|
+
buffer += escapeExpression(stack1)
|
|
289
|
+
+ "\">\n ";
|
|
290
|
+
stack1 = helpers['if'].call(depth0, (depth1 && depth1.selectable), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
|
291
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
292
|
+
buffer += "\n <td class=\"label\">";
|
|
293
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
294
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
295
|
+
buffer += escapeExpression(stack1)
|
|
296
|
+
+ "</td>\n ";
|
|
297
|
+
stack1 = helpers['if'].call(depth0, (depth1 && depth1.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(4, program4, data, depth0, depth1),data:data});
|
|
298
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
299
|
+
buffer += "\n</tr>\n";
|
|
300
|
+
return buffer;
|
|
301
|
+
}
|
|
302
|
+
function program2(depth0,data) {
|
|
303
|
+
|
|
304
|
+
var buffer = "", stack1, helper;
|
|
305
|
+
buffer += "\n <td class=\"checkboxes\"><input type=\"checkbox\" name=\"cb[";
|
|
306
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
307
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
308
|
+
buffer += escapeExpression(stack1)
|
|
309
|
+
+ "]\" value=\"1\" /></td>\n ";
|
|
310
|
+
return buffer;
|
|
311
|
+
}
|
|
212
312
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
var buffer = "", stack1, helper;
|
|
280
|
-
buffer += "\r\n<tr data-id=\"";
|
|
281
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
282
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
283
|
-
buffer += escapeExpression(stack1)
|
|
284
|
-
+ "\">\r\n ";
|
|
285
|
-
stack1 = helpers['if'].call(depth0, (depth1 && depth1.selectable), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
|
286
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
287
|
-
buffer += "\r\n <td class=\"label\">";
|
|
288
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
289
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
290
|
-
buffer += escapeExpression(stack1)
|
|
291
|
-
+ "</td>\r\n ";
|
|
292
|
-
stack1 = helpers['if'].call(depth0, (depth1 && depth1.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(4, program4, data, depth0, depth1),data:data});
|
|
293
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
294
|
-
buffer += "\r\n</tr>\r\n";
|
|
295
|
-
return buffer;
|
|
296
|
-
}
|
|
297
|
-
function program2(depth0,data) {
|
|
298
|
-
|
|
299
|
-
var buffer = "", stack1, helper;
|
|
300
|
-
buffer += "\r\n <td class=\"checkboxes\"><input type=\"checkbox\" name=\"cb[";
|
|
301
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
302
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
303
|
-
buffer += escapeExpression(stack1)
|
|
304
|
-
+ "]\" value=\"1\" /></td>\r\n ";
|
|
305
|
-
return buffer;
|
|
306
|
-
}
|
|
313
|
+
function program4(depth0,data,depth1,depth2) {
|
|
314
|
+
|
|
315
|
+
var buffer = "", stack1;
|
|
316
|
+
buffer += "\n <td class=\"actions\">\n ";
|
|
317
|
+
stack1 = helpers.each.call(depth0, (depth2 && depth2.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(5, program5, data, depth1),data:data});
|
|
318
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
319
|
+
buffer += "\n </td>\n ";
|
|
320
|
+
return buffer;
|
|
321
|
+
}
|
|
322
|
+
function program5(depth0,data,depth2) {
|
|
323
|
+
|
|
324
|
+
var buffer = "", stack1;
|
|
325
|
+
buffer += "\n ";
|
|
326
|
+
stack1 = helpers['with'].call(depth0, (depth2 && depth2.line), {hash:{},inverse:self.noop,fn:self.programWithDepth(6, program6, data, depth0),data:data});
|
|
327
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
328
|
+
buffer += "\n ";
|
|
329
|
+
return buffer;
|
|
330
|
+
}
|
|
331
|
+
function program6(depth0,data,depth1) {
|
|
332
|
+
|
|
333
|
+
var buffer = "", stack1;
|
|
334
|
+
buffer += "\n ";
|
|
335
|
+
stack1 = helpers.unless.call(depth0, (depth1 && depth1.hidden), {hash:{},inverse:self.noop,fn:self.programWithDepth(7, program7, data, depth1),data:data});
|
|
336
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
337
|
+
buffer += "\n ";
|
|
338
|
+
return buffer;
|
|
339
|
+
}
|
|
340
|
+
function program7(depth0,data,depth2) {
|
|
341
|
+
|
|
342
|
+
var buffer = "", stack1;
|
|
343
|
+
buffer += "\n ";
|
|
344
|
+
stack1 = helpers['with'].call(depth0, depth2, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
|
|
345
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
346
|
+
buffer += "\n ";
|
|
347
|
+
return buffer;
|
|
348
|
+
}
|
|
349
|
+
function program8(depth0,data) {
|
|
350
|
+
|
|
351
|
+
var buffer = "", stack1, helper;
|
|
352
|
+
buffer += "\n <button class=\"btn-info small\" data-control=\"";
|
|
353
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
354
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
355
|
+
buffer += escapeExpression(stack1)
|
|
356
|
+
+ "\"";
|
|
357
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
|
|
358
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
359
|
+
buffer += ">\n ";
|
|
360
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
|
|
361
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
362
|
+
buffer += "\n ";
|
|
363
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
364
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
365
|
+
buffer += escapeExpression(stack1)
|
|
366
|
+
+ "\n </button>\n ";
|
|
367
|
+
return buffer;
|
|
368
|
+
}
|
|
369
|
+
function program9(depth0,data) {
|
|
370
|
+
|
|
371
|
+
var buffer = "", stack1, helper;
|
|
372
|
+
buffer += " title=\"";
|
|
373
|
+
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
374
|
+
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
375
|
+
buffer += escapeExpression(stack1)
|
|
376
|
+
+ "\"";
|
|
377
|
+
return buffer;
|
|
378
|
+
}
|
|
307
379
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
var buffer = "", stack1;
|
|
320
|
-
buffer += "\r\n ";
|
|
321
|
-
stack1 = helpers['with'].call(depth0, (depth2 && depth2.line), {hash:{},inverse:self.noop,fn:self.programWithDepth(6, program6, data, depth0),data:data});
|
|
322
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
323
|
-
buffer += "\r\n ";
|
|
324
|
-
return buffer;
|
|
325
|
-
}
|
|
326
|
-
function program6(depth0,data,depth1) {
|
|
327
|
-
|
|
328
|
-
var buffer = "", stack1;
|
|
329
|
-
buffer += "\r\n ";
|
|
330
|
-
stack1 = helpers.unless.call(depth0, (depth1 && depth1.hidden), {hash:{},inverse:self.noop,fn:self.programWithDepth(7, program7, data, depth1),data:data});
|
|
331
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
332
|
-
buffer += "\r\n ";
|
|
333
|
-
return buffer;
|
|
334
|
-
}
|
|
335
|
-
function program7(depth0,data,depth2) {
|
|
336
|
-
|
|
337
|
-
var buffer = "", stack1;
|
|
338
|
-
buffer += "\r\n ";
|
|
339
|
-
stack1 = helpers['with'].call(depth0, depth2, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
|
|
340
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
341
|
-
buffer += "\r\n ";
|
|
342
|
-
return buffer;
|
|
343
|
-
}
|
|
344
|
-
function program8(depth0,data) {
|
|
345
|
-
|
|
346
|
-
var buffer = "", stack1, helper;
|
|
347
|
-
buffer += "\r\n <button class=\"btn-info small\" data-control=\"";
|
|
348
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
349
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
350
|
-
buffer += escapeExpression(stack1)
|
|
351
|
-
+ "\"";
|
|
352
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
|
|
353
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
354
|
-
buffer += ">\r\n ";
|
|
355
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
|
|
356
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
357
|
-
buffer += "\r\n ";
|
|
358
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
359
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
360
|
-
buffer += escapeExpression(stack1)
|
|
361
|
-
+ "\r\n </button>\r\n ";
|
|
362
|
-
return buffer;
|
|
363
|
-
}
|
|
364
|
-
function program9(depth0,data) {
|
|
365
|
-
|
|
366
|
-
var buffer = "", stack1, helper;
|
|
367
|
-
buffer += " title=\"";
|
|
368
|
-
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
369
|
-
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
370
|
-
buffer += escapeExpression(stack1)
|
|
371
|
-
+ "\"";
|
|
372
|
-
return buffer;
|
|
373
|
-
}
|
|
380
|
+
function program11(depth0,data) {
|
|
381
|
+
|
|
382
|
+
var buffer = "", stack1, helper;
|
|
383
|
+
buffer += "<span class=\"icon icon-";
|
|
384
|
+
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
385
|
+
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
386
|
+
buffer += escapeExpression(stack1)
|
|
387
|
+
+ "\"></span>";
|
|
388
|
+
return buffer;
|
|
389
|
+
}
|
|
374
390
|
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
return buffer;
|
|
391
|
+
stack1 = helpers.each.call(depth0, (depth0 && depth0.list), {hash:{},inverse:self.noop,fn:self.programWithDepth(1, program1, data, depth0),data:data});
|
|
392
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
393
|
+
buffer += "\n";
|
|
394
|
+
return buffer;
|
|
395
|
+
});
|
|
396
|
+
function listTpl(data, options, asString) {
|
|
397
|
+
var html = Template$1(data, options);
|
|
398
|
+
return (asString || true) ? html : $(html);
|
|
384
399
|
}
|
|
385
400
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
* This program is distributed in the hope that it will be useful,
|
|
403
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
404
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
405
|
-
* GNU General Public License for more details.
|
|
406
|
-
*
|
|
407
|
-
* You should have received a copy of the GNU General Public License
|
|
408
|
-
* along with this program; if not, write to the Free Software
|
|
409
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
410
|
-
*
|
|
411
|
-
* Copyright (c) 2015 (original work) Open Assessment Technologies SA ;
|
|
412
|
-
*/
|
|
413
|
-
/**
|
|
414
|
-
* Some default values
|
|
415
|
-
* @type {Object}
|
|
416
|
-
* @private
|
|
417
|
-
*/
|
|
418
|
-
|
|
419
|
-
var _defaults = {
|
|
420
|
-
keyName: 'id',
|
|
421
|
-
labelName: 'label',
|
|
422
|
-
labelText: __('Label'),
|
|
423
|
-
title: false,
|
|
424
|
-
textNumber: __('Available'),
|
|
425
|
-
textEmpty: __('There is nothing to list!'),
|
|
426
|
-
textLoading: __('Loading'),
|
|
427
|
-
selectable: false
|
|
428
|
-
};
|
|
429
|
-
/**
|
|
430
|
-
* Defines a data list
|
|
431
|
-
* @type {Object}
|
|
432
|
-
*/
|
|
433
|
-
|
|
434
|
-
var datalist = {
|
|
435
|
-
/**
|
|
436
|
-
* Updates the list
|
|
437
|
-
* @param {Array} data
|
|
438
|
-
* @returns {listBox}
|
|
439
|
-
* @fires datalist#update
|
|
401
|
+
/**
|
|
402
|
+
* This program is free software; you can redistribute it and/or
|
|
403
|
+
* modify it under the terms of the GNU General Public License
|
|
404
|
+
* as published by the Free Software Foundation; under version 2
|
|
405
|
+
* of the License (non-upgradable).
|
|
406
|
+
*
|
|
407
|
+
* This program is distributed in the hope that it will be useful,
|
|
408
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
409
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
410
|
+
* GNU General Public License for more details.
|
|
411
|
+
*
|
|
412
|
+
* You should have received a copy of the GNU General Public License
|
|
413
|
+
* along with this program; if not, write to the Free Software
|
|
414
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
415
|
+
*
|
|
416
|
+
* Copyright (c) 2015 (original work) Open Assessment Technologies SA ;
|
|
440
417
|
*/
|
|
441
|
-
update: function update(data) {
|
|
442
|
-
var self = this;
|
|
443
|
-
var controls = this.controls || {};
|
|
444
|
-
var config = this.config || {};
|
|
445
|
-
var $list = controls.$list;
|
|
446
|
-
var $numberValue = controls.$numberValue;
|
|
447
|
-
var renderData = {
|
|
448
|
-
selectable: config.selectable,
|
|
449
|
-
actions: config.actions,
|
|
450
|
-
list: []
|
|
451
|
-
};
|
|
452
|
-
var list = renderData.list;
|
|
453
|
-
var count; // disable the list while updating it
|
|
454
|
-
|
|
455
|
-
this.setLoading(true); // if the update method is called before rendering, or on a destroyed component, there is no placeholder to fill...
|
|
456
|
-
|
|
457
|
-
if ($list) {
|
|
458
|
-
// be sure to remove previous list before render the new data
|
|
459
|
-
$list.empty();
|
|
460
|
-
|
|
461
|
-
if (data && data.length) {
|
|
462
|
-
// format the data to render
|
|
463
|
-
_.forEach(data, function (line) {
|
|
464
|
-
// extract the identifier and the label according to the config
|
|
465
|
-
var id = line[config.keyName];
|
|
466
|
-
var label = line[config.labelName]; // optional custom renderer for the label
|
|
467
|
-
|
|
468
|
-
if (_.isFunction(config.labelTransform)) {
|
|
469
|
-
label = config.labelTransform.call(self, label, line);
|
|
470
|
-
} // the data to render only refer to id and identifier
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
list.push({
|
|
474
|
-
id: id,
|
|
475
|
-
label: label,
|
|
476
|
-
line: line // provide the original data for dynamic behavior like hidden actions
|
|
477
418
|
|
|
419
|
+
/**
|
|
420
|
+
* Some default values
|
|
421
|
+
* @type {Object}
|
|
422
|
+
* @private
|
|
423
|
+
*/
|
|
424
|
+
var _defaults = {
|
|
425
|
+
keyName: 'id',
|
|
426
|
+
labelName: 'label',
|
|
427
|
+
labelText: __('Label'),
|
|
428
|
+
title: false,
|
|
429
|
+
textNumber: __('Available'),
|
|
430
|
+
textEmpty: __('There is nothing to list!'),
|
|
431
|
+
textLoading: __('Loading'),
|
|
432
|
+
selectable: false
|
|
433
|
+
};
|
|
434
|
+
|
|
435
|
+
/**
|
|
436
|
+
* Defines a data list
|
|
437
|
+
* @type {Object}
|
|
438
|
+
*/
|
|
439
|
+
var datalist = {
|
|
440
|
+
/**
|
|
441
|
+
* Updates the list
|
|
442
|
+
* @param {Array} data
|
|
443
|
+
* @returns {listBox}
|
|
444
|
+
* @fires datalist#update
|
|
445
|
+
*/
|
|
446
|
+
update: function update(data) {
|
|
447
|
+
var self = this;
|
|
448
|
+
var controls = this.controls || {};
|
|
449
|
+
var config = this.config || {};
|
|
450
|
+
var $list = controls.$list;
|
|
451
|
+
var $numberValue = controls.$numberValue;
|
|
452
|
+
var renderData = {
|
|
453
|
+
selectable: config.selectable,
|
|
454
|
+
actions: config.actions,
|
|
455
|
+
list: []
|
|
456
|
+
};
|
|
457
|
+
var list = renderData.list;
|
|
458
|
+
var count;
|
|
459
|
+
|
|
460
|
+
// disable the list while updating it
|
|
461
|
+
this.setLoading(true);
|
|
462
|
+
|
|
463
|
+
// if the update method is called before rendering, or on a destroyed component, there is no placeholder to fill...
|
|
464
|
+
if ($list) {
|
|
465
|
+
// be sure to remove previous list before render the new data
|
|
466
|
+
$list.empty();
|
|
467
|
+
if (data && data.length) {
|
|
468
|
+
// format the data to render
|
|
469
|
+
_.forEach(data, function (line) {
|
|
470
|
+
// extract the identifier and the label according to the config
|
|
471
|
+
var id = line[config.keyName];
|
|
472
|
+
var label = line[config.labelName];
|
|
473
|
+
|
|
474
|
+
// optional custom renderer for the label
|
|
475
|
+
if (_.isFunction(config.labelTransform)) {
|
|
476
|
+
label = config.labelTransform.call(self, label, line);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
// the data to render only refer to id and identifier
|
|
480
|
+
list.push({
|
|
481
|
+
id: id,
|
|
482
|
+
label: label,
|
|
483
|
+
line: line // provide the original data for dynamic behavior like hidden actions
|
|
484
|
+
});
|
|
478
485
|
});
|
|
479
|
-
}); // render the data at the right placeholder
|
|
480
|
-
|
|
481
486
|
|
|
482
|
-
|
|
487
|
+
// render the data at the right placeholder
|
|
488
|
+
$list.append(listTpl(renderData));
|
|
483
489
|
|
|
484
|
-
|
|
485
|
-
|
|
490
|
+
// update the displayed counter
|
|
491
|
+
if ($numberValue) {
|
|
492
|
+
count = data.length;
|
|
486
493
|
|
|
487
|
-
|
|
488
|
-
|
|
494
|
+
// optional custom renderer for the counter
|
|
495
|
+
if (_.isFunction(config.countRenderer)) {
|
|
496
|
+
count = config.countRenderer.call(self, count);
|
|
497
|
+
}
|
|
498
|
+
$numberValue.text(count);
|
|
489
499
|
}
|
|
490
500
|
|
|
491
|
-
|
|
492
|
-
|
|
501
|
+
// update the display status
|
|
502
|
+
this.setState('empty', false);
|
|
503
|
+
this.setState('loaded', true);
|
|
504
|
+
} else {
|
|
505
|
+
// nothing to display
|
|
506
|
+
this.setState('empty', true);
|
|
507
|
+
this.setState('loaded', false);
|
|
508
|
+
}
|
|
493
509
|
|
|
510
|
+
// update the selection of existing checkboxes
|
|
511
|
+
controls.$checkboxes = this.controls.$list.find('td.checkboxes input');
|
|
512
|
+
controls.$massAction.toggleClass('hidden', true);
|
|
513
|
+
if (this.pendingSelection) {
|
|
514
|
+
this.setSelection(this.pendingSelection);
|
|
515
|
+
}
|
|
516
|
+
}
|
|
494
517
|
|
|
495
|
-
|
|
496
|
-
|
|
518
|
+
/**
|
|
519
|
+
* @event datalist#update
|
|
520
|
+
* @param {Array} data
|
|
521
|
+
*/
|
|
522
|
+
self.trigger('update', data);
|
|
523
|
+
|
|
524
|
+
// ok, the list is now ready, enable it
|
|
525
|
+
this.setLoading(false);
|
|
526
|
+
return this;
|
|
527
|
+
},
|
|
528
|
+
/**
|
|
529
|
+
* Gets the current selection
|
|
530
|
+
* @returns {Array}
|
|
531
|
+
*/
|
|
532
|
+
getSelection: function getSelection() {
|
|
533
|
+
var $checkboxes = this.controls && this.controls.$checkboxes;
|
|
534
|
+
var selection = [];
|
|
535
|
+
if ($checkboxes) {
|
|
536
|
+
// extract the selection from the selected checkboxes
|
|
537
|
+
$checkboxes.filter(':checked').each(function () {
|
|
538
|
+
var id = $$1(this).closest('tr').data('id');
|
|
539
|
+
if (id) {
|
|
540
|
+
selection.push(id);
|
|
541
|
+
}
|
|
542
|
+
});
|
|
497
543
|
} else {
|
|
498
|
-
//
|
|
499
|
-
this.
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
controls.$checkboxes = this.controls.$list.find('td.checkboxes input');
|
|
505
|
-
controls.$massAction.toggleClass('hidden', true);
|
|
506
|
-
|
|
507
|
-
if (this.pendingSelection) {
|
|
508
|
-
this.setSelection(this.pendingSelection);
|
|
544
|
+
// the list may not already be rendered, but a selection may exist in pending state
|
|
545
|
+
if (this.pendingSelection) {
|
|
546
|
+
selection = this.pendingSelection;
|
|
547
|
+
}
|
|
509
548
|
}
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
*
|
|
549
|
+
return selection;
|
|
550
|
+
},
|
|
551
|
+
/**
|
|
552
|
+
* Sets the current selection
|
|
553
|
+
* @param {Array} selection
|
|
554
|
+
* @returns {datalist}
|
|
555
|
+
* @fires datalist#select
|
|
514
556
|
*/
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
*/
|
|
527
|
-
getSelection: function getSelection() {
|
|
528
|
-
var $checkboxes = this.controls && this.controls.$checkboxes;
|
|
529
|
-
var selection = [];
|
|
530
|
-
|
|
531
|
-
if ($checkboxes) {
|
|
532
|
-
// extract the selection from the selected checkboxes
|
|
533
|
-
$checkboxes.filter(':checked').each(function () {
|
|
534
|
-
var id = $$1(this).closest('tr').data('id');
|
|
535
|
-
|
|
536
|
-
if (id) {
|
|
537
|
-
selection.push(id);
|
|
557
|
+
setSelection: function setSelection(selection) {
|
|
558
|
+
var controls = this.controls || {};
|
|
559
|
+
var $list = controls.$list;
|
|
560
|
+
if ($list) {
|
|
561
|
+
// be sure to discard existing selection
|
|
562
|
+
controls.$checkboxes.prop('checked', false);
|
|
563
|
+
if (selection) {
|
|
564
|
+
// find each line and check it according to the provided selection
|
|
565
|
+
_.forEach(selection, function (id) {
|
|
566
|
+
$list.find('[data-id="' + id + '"] input[type="checkbox"]').prop('checked', true);
|
|
567
|
+
});
|
|
538
568
|
}
|
|
539
|
-
});
|
|
540
|
-
} else {
|
|
541
|
-
// the list may not already be rendered, but a selection may exist in pending state
|
|
542
|
-
if (this.pendingSelection) {
|
|
543
|
-
selection = this.pendingSelection;
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
569
|
|
|
547
|
-
|
|
548
|
-
|
|
570
|
+
// takes care of the new selection
|
|
571
|
+
this._onSelection();
|
|
549
572
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
controls.$checkboxes.prop('checked', false);
|
|
563
|
-
|
|
564
|
-
if (selection) {
|
|
565
|
-
// find each line and check it according to the provided selection
|
|
566
|
-
_.forEach(selection, function (id) {
|
|
567
|
-
$list.find('[data-id="' + id + '"] input[type="checkbox"]').prop('checked', true);
|
|
568
|
-
});
|
|
569
|
-
} // takes care of the new selection
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
this._onSelection(); // remove pending selection to avoid overwrite on next update
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
this.pendingSelection = null;
|
|
576
|
-
} else {
|
|
577
|
-
// keep selection ready for the next update
|
|
578
|
-
this.pendingSelection = selection;
|
|
579
|
-
}
|
|
580
|
-
|
|
581
|
-
return this;
|
|
582
|
-
},
|
|
583
|
-
|
|
584
|
-
/**
|
|
585
|
-
* Called when a selection has been made
|
|
586
|
-
* @fires datalist#select
|
|
587
|
-
* @private
|
|
588
|
-
*/
|
|
589
|
-
_onSelection: function _onSelection() {
|
|
590
|
-
var controls = this.controls || {};
|
|
591
|
-
var $checkboxes = controls.$checkboxes;
|
|
592
|
-
var $checkAll = controls.$checkAll;
|
|
593
|
-
var $checked = $checkboxes.filter(':checked'); // update the checkAll button
|
|
594
|
-
|
|
595
|
-
if ($checked.length === $checkboxes.length) {
|
|
596
|
-
$checkAll.prop('checked', true);
|
|
597
|
-
} else {
|
|
598
|
-
$checkAll.prop('checked', false);
|
|
599
|
-
} // show/hide the mass actions tools
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
controls.$massAction.toggleClass('hidden', !$checked.length);
|
|
603
|
-
/**
|
|
604
|
-
* @event datalist#select
|
|
605
|
-
* @param {Array} selection
|
|
573
|
+
// remove pending selection to avoid overwrite on next update
|
|
574
|
+
this.pendingSelection = null;
|
|
575
|
+
} else {
|
|
576
|
+
// keep selection ready for the next update
|
|
577
|
+
this.pendingSelection = selection;
|
|
578
|
+
}
|
|
579
|
+
return this;
|
|
580
|
+
},
|
|
581
|
+
/**
|
|
582
|
+
* Called when a selection has been made
|
|
583
|
+
* @fires datalist#select
|
|
584
|
+
* @private
|
|
606
585
|
*/
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
setLoading: function setLoading(flag) {
|
|
617
|
-
if (flag) {
|
|
618
|
-
this.setState('loaded', false);
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
return this.setState('loading', flag);
|
|
622
|
-
},
|
|
623
|
-
|
|
624
|
-
/**
|
|
625
|
-
* Sets the title of the list.
|
|
626
|
-
* @param {String|Boolean} title - The text to set. If the value is false no title is displayed
|
|
627
|
-
* @returns {listBox}
|
|
628
|
-
*/
|
|
629
|
-
setTitle: function setTitle(title) {
|
|
630
|
-
var $title = this.controls && this.controls.$title;
|
|
631
|
-
this.config.title = title;
|
|
632
|
-
|
|
633
|
-
if ($title) {
|
|
634
|
-
if (false === title) {
|
|
635
|
-
$title.addClass('hidden');
|
|
586
|
+
_onSelection: function _onSelection() {
|
|
587
|
+
var controls = this.controls || {};
|
|
588
|
+
var $checkboxes = controls.$checkboxes;
|
|
589
|
+
var $checkAll = controls.$checkAll;
|
|
590
|
+
var $checked = $checkboxes.filter(':checked');
|
|
591
|
+
|
|
592
|
+
// update the checkAll button
|
|
593
|
+
if ($checked.length === $checkboxes.length) {
|
|
594
|
+
$checkAll.prop('checked', true);
|
|
636
595
|
} else {
|
|
637
|
-
$
|
|
596
|
+
$checkAll.prop('checked', false);
|
|
638
597
|
}
|
|
639
|
-
}
|
|
640
598
|
|
|
641
|
-
|
|
642
|
-
|
|
599
|
+
// show/hide the mass actions tools
|
|
600
|
+
controls.$massAction.toggleClass('hidden', !$checked.length);
|
|
643
601
|
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
$textAvailable.addClass('hidden');
|
|
602
|
+
/**
|
|
603
|
+
* @event datalist#select
|
|
604
|
+
* @param {Array} selection
|
|
605
|
+
*/
|
|
606
|
+
this.trigger('select', this.getSelection());
|
|
607
|
+
},
|
|
608
|
+
/**
|
|
609
|
+
* Sets the loading state
|
|
610
|
+
* @param {Boolean} flag
|
|
611
|
+
* @returns {listBox}
|
|
612
|
+
*/
|
|
613
|
+
setLoading: function setLoading(flag) {
|
|
614
|
+
if (flag) {
|
|
615
|
+
this.setState('loaded', false);
|
|
659
616
|
}
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
617
|
+
return this.setState('loading', flag);
|
|
618
|
+
},
|
|
619
|
+
/**
|
|
620
|
+
* Sets the title of the list.
|
|
621
|
+
* @param {String|Boolean} title - The text to set. If the value is false no title is displayed
|
|
622
|
+
* @returns {listBox}
|
|
623
|
+
*/
|
|
624
|
+
setTitle: function setTitle(title) {
|
|
625
|
+
var $title = this.controls && this.controls.$title;
|
|
626
|
+
this.config.title = title;
|
|
627
|
+
if ($title) {
|
|
628
|
+
if (false === title) {
|
|
629
|
+
$title.addClass('hidden');
|
|
630
|
+
} else {
|
|
631
|
+
$title.html(title).removeClass('hidden');
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
return this;
|
|
635
|
+
},
|
|
636
|
+
/**
|
|
637
|
+
* Sets the label of the number of lines.
|
|
638
|
+
* @param {String|Boolean} text - The text to set. If the value is false no label is displayed
|
|
639
|
+
* @returns {listBox}
|
|
640
|
+
*/
|
|
641
|
+
setTextNumber: function setTextNumber(text) {
|
|
642
|
+
var $numberLabel = this.controls && this.controls.$numberLabel;
|
|
643
|
+
var $textAvailable = this.controls && this.controls.$textAvailable;
|
|
644
|
+
this.config.textNumber = text;
|
|
645
|
+
if ($numberLabel) {
|
|
646
|
+
if (text !== false) {
|
|
647
|
+
$numberLabel.html(text).removeClass('hidden');
|
|
648
|
+
} else if ($textAvailable) {
|
|
649
|
+
$textAvailable.addClass('hidden');
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
return this;
|
|
653
|
+
},
|
|
654
|
+
/**
|
|
655
|
+
* Sets the label displayed when there no data available.
|
|
656
|
+
* @param {String|Boolean} text - The text to set. If the value is false no label is displayed
|
|
657
|
+
* @returns {listBox}
|
|
658
|
+
*/
|
|
659
|
+
setTextEmpty: function setTextEmpty(text) {
|
|
660
|
+
var $textEmpty = this.controls && this.controls.$textEmpty;
|
|
661
|
+
this.config.textEmpty = text;
|
|
662
|
+
if ($textEmpty) {
|
|
663
|
+
if (false === text) {
|
|
664
|
+
$textEmpty.addClass('hidden');
|
|
665
|
+
} else {
|
|
666
|
+
$textEmpty.html(text).removeClass('hidden');
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
return this;
|
|
670
|
+
},
|
|
671
|
+
/**
|
|
672
|
+
* Sets the label displayed when the list is loading.
|
|
673
|
+
* @param {String|Boolean} text - The text to set. If the value is false no label is displayed
|
|
674
|
+
* @returns {listBox}
|
|
675
|
+
*/
|
|
676
|
+
setTextLoading: function setTextLoading(text) {
|
|
677
|
+
var $textLoading = this.controls && this.controls.$textLoading;
|
|
678
|
+
this.config.textLoading = text;
|
|
679
|
+
if ($textLoading) {
|
|
680
|
+
if (false === text) {
|
|
681
|
+
$textLoading.addClass('hidden');
|
|
682
|
+
} else {
|
|
683
|
+
$textLoading.html(text).removeClass('hidden');
|
|
684
|
+
}
|
|
679
685
|
}
|
|
686
|
+
return this;
|
|
680
687
|
}
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
* Sets the
|
|
687
|
-
* @param {String
|
|
688
|
-
* @
|
|
688
|
+
};
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* Builds an instance of the datalist component
|
|
692
|
+
* @param {Object} config
|
|
693
|
+
* @param {String} [config.keyName] - Sets the name of the attribute containing the identifier for each data line (default: 'id')
|
|
694
|
+
* @param {String} [config.labelName] - Sets the name of the attribute containing the label for each data line (default: 'label')
|
|
695
|
+
* @param {String|Boolean} [config.labelText] - Sets the displayed title for the column containing the labels. If the value is false no title is displayed (default: 'Label')
|
|
696
|
+
* @param {String|Boolean} [config.title] - Sets the title of the list. If the value is false no title is displayed (default: false)
|
|
697
|
+
* @param {String|Boolean} [config.textNumber] - Sets the label of the number of data lines. If the value is false no label is displayed (default: 'Available')
|
|
698
|
+
* @param {String|Boolean} [config.textEmpty] - Sets the label displayed when there no data available. If the value is false no label is displayed (default: 'There is nothing to list!')
|
|
699
|
+
* @param {String|Boolean} [config.textLoading] - Sets the label displayed when the list is loading. If the value is false no label is displayed (default: 'Loading')
|
|
700
|
+
* @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component
|
|
701
|
+
* @param {Boolean} [config.selectable] - Append a checkbox on each displayed line to allow selection (default: false)
|
|
702
|
+
* @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before
|
|
703
|
+
* @param {Function} [config.labelTransform] - Optional renderer applied on each displayed label.
|
|
704
|
+
* @param {Function} [config.countRenderer] - An optional callback applied on the list count before display
|
|
705
|
+
* @param {Array} [config.tools] - An optional list of buttons to add on top of the list. Each buttons provides a mass action on the selected lines. If selectable is not enabled, all lines are selected.
|
|
706
|
+
* @param {Array} [config.actions] - An optional list of buttons to add on each line.
|
|
707
|
+
* @param {Array} [data] - The data to display
|
|
708
|
+
* @returns {datalist}
|
|
709
|
+
*
|
|
710
|
+
* @event init - Emitted when the component is initialized
|
|
711
|
+
* @event destroy - Emitted when the component is destroying
|
|
712
|
+
* @event render - Emitted when the component is rendered
|
|
713
|
+
* @event update - Emitted when the component is updated
|
|
714
|
+
* @event tool - Emitted when a tool button is clicked
|
|
715
|
+
* @event action - Emitted when an action button is clicked
|
|
716
|
+
* @event select - Emitted when a selection is made
|
|
717
|
+
* @event show - Emitted when the component is shown
|
|
718
|
+
* @event hide - Emitted when the component is hidden
|
|
719
|
+
* @event enable - Emitted when the component is enabled
|
|
720
|
+
* @event disable - Emitted when the component is disabled
|
|
721
|
+
* @event template - Emitted when the template is changed
|
|
689
722
|
*/
|
|
690
|
-
|
|
691
|
-
var
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
}
|
|
723
|
+
function datalistFactory(config, data) {
|
|
724
|
+
var initConfig = config || {};
|
|
725
|
+
var actions = {};
|
|
726
|
+
var tools = {};
|
|
727
|
+
|
|
728
|
+
// build a map of the tools if any
|
|
729
|
+
if (initConfig.tools) {
|
|
730
|
+
_.forEach(initConfig.tools, function (tool) {
|
|
731
|
+
tools[tool.id] = tool;
|
|
732
|
+
});
|
|
700
733
|
}
|
|
701
734
|
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
* @param {String} [config.labelName] - Sets the name of the attribute containing the label for each data line (default: 'label')
|
|
710
|
-
* @param {String|Boolean} [config.labelText] - Sets the displayed title for the column containing the labels. If the value is false no title is displayed (default: 'Label')
|
|
711
|
-
* @param {String|Boolean} [config.title] - Sets the title of the list. If the value is false no title is displayed (default: false)
|
|
712
|
-
* @param {String|Boolean} [config.textNumber] - Sets the label of the number of data lines. If the value is false no label is displayed (default: 'Available')
|
|
713
|
-
* @param {String|Boolean} [config.textEmpty] - Sets the label displayed when there no data available. If the value is false no label is displayed (default: 'There is nothing to list!')
|
|
714
|
-
* @param {String|Boolean} [config.textLoading] - Sets the label displayed when the list is loading. If the value is false no label is displayed (default: 'Loading')
|
|
715
|
-
* @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component
|
|
716
|
-
* @param {Boolean} [config.selectable] - Append a checkbox on each displayed line to allow selection (default: false)
|
|
717
|
-
* @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before
|
|
718
|
-
* @param {Function} [config.labelTransform] - Optional renderer applied on each displayed label.
|
|
719
|
-
* @param {Function} [config.countRenderer] - An optional callback applied on the list count before display
|
|
720
|
-
* @param {Array} [config.tools] - An optional list of buttons to add on top of the list. Each buttons provides a mass action on the selected lines. If selectable is not enabled, all lines are selected.
|
|
721
|
-
* @param {Array} [config.actions] - An optional list of buttons to add on each line.
|
|
722
|
-
* @param {Array} [data] - The data to display
|
|
723
|
-
* @returns {datalist}
|
|
724
|
-
*
|
|
725
|
-
* @event init - Emitted when the component is initialized
|
|
726
|
-
* @event destroy - Emitted when the component is destroying
|
|
727
|
-
* @event render - Emitted when the component is rendered
|
|
728
|
-
* @event update - Emitted when the component is updated
|
|
729
|
-
* @event tool - Emitted when a tool button is clicked
|
|
730
|
-
* @event action - Emitted when an action button is clicked
|
|
731
|
-
* @event select - Emitted when a selection is made
|
|
732
|
-
* @event show - Emitted when the component is shown
|
|
733
|
-
* @event hide - Emitted when the component is hidden
|
|
734
|
-
* @event enable - Emitted when the component is enabled
|
|
735
|
-
* @event disable - Emitted when the component is disabled
|
|
736
|
-
* @event template - Emitted when the template is changed
|
|
737
|
-
*/
|
|
738
|
-
|
|
739
|
-
function datalistFactory(config, data) {
|
|
740
|
-
var initConfig = config || {};
|
|
741
|
-
var actions = {};
|
|
742
|
-
var tools = {}; // build a map of the tools if any
|
|
743
|
-
|
|
744
|
-
if (initConfig.tools) {
|
|
745
|
-
_.forEach(initConfig.tools, function (tool) {
|
|
746
|
-
tools[tool.id] = tool;
|
|
747
|
-
});
|
|
748
|
-
} // build a map of the lines actions if any
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
if (initConfig.actions) {
|
|
752
|
-
_.forEach(initConfig.actions, function (action) {
|
|
753
|
-
actions[action.id] = action;
|
|
754
|
-
});
|
|
755
|
-
}
|
|
756
|
-
|
|
757
|
-
return component(datalist, _defaults).setTemplate(mainTpl) // uninstalls the component
|
|
758
|
-
.on('destroy', function () {
|
|
759
|
-
this.controls = null;
|
|
760
|
-
this.pendingSelection = null;
|
|
761
|
-
}) // renders the component
|
|
762
|
-
.on('render', function () {
|
|
763
|
-
var self = this; // get access to all needed placeholders
|
|
764
|
-
|
|
765
|
-
this.controls = {
|
|
766
|
-
$title: this.$component.find('h1'),
|
|
767
|
-
$textEmpty: this.$component.find('.empty-list'),
|
|
768
|
-
$textAvailable: this.$component.find('.available-list'),
|
|
769
|
-
$textLoading: this.$component.find('.loading span'),
|
|
770
|
-
$numberLabel: this.$component.find('.available-list .label'),
|
|
771
|
-
$numberValue: this.$component.find('.available-list .count'),
|
|
772
|
-
$actionBar: this.$component.find('.list .action-bar'),
|
|
773
|
-
$massAction: this.$component.find('.list .mass-action'),
|
|
774
|
-
$checkAll: this.$component.find('.list th.checkboxes input'),
|
|
775
|
-
$checkboxes: this.$component.find('.list td.checkboxes input'),
|
|
776
|
-
$list: this.$component.find('.list tbody')
|
|
777
|
-
}; // take care of tools buttons
|
|
778
|
-
|
|
779
|
-
this.controls.$actionBar.on('click', 'button', function (e) {
|
|
780
|
-
var $this = $$1(this);
|
|
781
|
-
var buttonId = $this.closest('button').data('control');
|
|
782
|
-
var button = tools[buttonId];
|
|
783
|
-
var selection = self.getSelection();
|
|
784
|
-
e.preventDefault();
|
|
785
|
-
|
|
786
|
-
if (button && button.action) {
|
|
787
|
-
button.action.call(self, selection, buttonId);
|
|
788
|
-
}
|
|
789
|
-
/**
|
|
790
|
-
* @event datalist#tool
|
|
791
|
-
* @param {Array} selection
|
|
792
|
-
* @param {String} buttonId
|
|
793
|
-
*/
|
|
735
|
+
// build a map of the lines actions if any
|
|
736
|
+
if (initConfig.actions) {
|
|
737
|
+
_.forEach(initConfig.actions, function (action) {
|
|
738
|
+
actions[action.id] = action;
|
|
739
|
+
});
|
|
740
|
+
}
|
|
741
|
+
return component(datalist, _defaults).setTemplate(mainTpl)
|
|
794
742
|
|
|
743
|
+
// uninstalls the component
|
|
744
|
+
.on('destroy', function () {
|
|
745
|
+
this.controls = null;
|
|
746
|
+
this.pendingSelection = null;
|
|
747
|
+
})
|
|
748
|
+
|
|
749
|
+
// renders the component
|
|
750
|
+
.on('render', function () {
|
|
751
|
+
var self = this;
|
|
752
|
+
|
|
753
|
+
// get access to all needed placeholders
|
|
754
|
+
this.controls = {
|
|
755
|
+
$title: this.$component.find('h1'),
|
|
756
|
+
$textEmpty: this.$component.find('.empty-list'),
|
|
757
|
+
$textAvailable: this.$component.find('.available-list'),
|
|
758
|
+
$textLoading: this.$component.find('.loading span'),
|
|
759
|
+
$numberLabel: this.$component.find('.available-list .label'),
|
|
760
|
+
$numberValue: this.$component.find('.available-list .count'),
|
|
761
|
+
$actionBar: this.$component.find('.list .action-bar'),
|
|
762
|
+
$massAction: this.$component.find('.list .mass-action'),
|
|
763
|
+
$checkAll: this.$component.find('.list th.checkboxes input'),
|
|
764
|
+
$checkboxes: this.$component.find('.list td.checkboxes input'),
|
|
765
|
+
$list: this.$component.find('.list tbody')
|
|
766
|
+
};
|
|
767
|
+
|
|
768
|
+
// take care of tools buttons
|
|
769
|
+
this.controls.$actionBar.on('click', 'button', function (e) {
|
|
770
|
+
var $this = $$1(this);
|
|
771
|
+
var buttonId = $this.closest('button').data('control');
|
|
772
|
+
var button = tools[buttonId];
|
|
773
|
+
var selection = self.getSelection();
|
|
774
|
+
e.preventDefault();
|
|
775
|
+
if (button && button.action) {
|
|
776
|
+
button.action.call(self, selection, buttonId);
|
|
777
|
+
}
|
|
795
778
|
|
|
796
|
-
|
|
797
|
-
|
|
779
|
+
/**
|
|
780
|
+
* @event datalist#tool
|
|
781
|
+
* @param {Array} selection
|
|
782
|
+
* @param {String} buttonId
|
|
783
|
+
*/
|
|
784
|
+
self.trigger('tool', selection, buttonId);
|
|
785
|
+
});
|
|
798
786
|
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
787
|
+
// take care of actions buttons
|
|
788
|
+
this.controls.$list.on('click', 'button', function (e) {
|
|
789
|
+
var $this = $$1(this);
|
|
790
|
+
var lineId = $this.closest('tr').data('id');
|
|
791
|
+
var buttonId = $this.closest('button').data('control');
|
|
792
|
+
var button = actions[buttonId];
|
|
793
|
+
e.preventDefault();
|
|
794
|
+
if (button && button.action) {
|
|
795
|
+
button.action.call(self, lineId, buttonId);
|
|
796
|
+
}
|
|
805
797
|
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
*/
|
|
798
|
+
/**
|
|
799
|
+
* @event datalist#action
|
|
800
|
+
* @param {String} lineId
|
|
801
|
+
* @param {String} buttonId
|
|
802
|
+
*/
|
|
803
|
+
self.trigger('action', lineId, buttonId);
|
|
804
|
+
});
|
|
814
805
|
|
|
806
|
+
// take care of clicks on labels
|
|
807
|
+
this.setState('selectable', this.config.selectable);
|
|
808
|
+
this.controls.$list.on('click', 'td.label', function () {
|
|
809
|
+
var $checkbox;
|
|
810
|
+
if (self.config.selectable) {
|
|
811
|
+
$checkbox = $$1(this).closest('tr').find('input[type="checkbox"]');
|
|
812
|
+
|
|
813
|
+
// toggle the line selection
|
|
814
|
+
if ($checkbox.prop('checked')) {
|
|
815
|
+
$checkbox.prop('checked', false);
|
|
816
|
+
} else {
|
|
817
|
+
$checkbox.prop('checked', true);
|
|
818
|
+
}
|
|
815
819
|
|
|
816
|
-
|
|
817
|
-
|
|
820
|
+
// takes care of the new selection
|
|
821
|
+
self._onSelection();
|
|
822
|
+
}
|
|
823
|
+
});
|
|
818
824
|
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
825
|
+
// take care of clicks on checkboxes
|
|
826
|
+
this.controls.$list.on('click', 'input[type="checkbox"]', function () {
|
|
827
|
+
// just takes care of the new selection
|
|
828
|
+
self._onSelection();
|
|
829
|
+
});
|
|
822
830
|
|
|
823
|
-
|
|
824
|
-
|
|
831
|
+
// check/uncheck all checkboxes
|
|
832
|
+
this.controls.$checkAll.on('click', function () {
|
|
833
|
+
var $checkboxes = self.controls.$checkboxes;
|
|
825
834
|
|
|
826
|
-
|
|
827
|
-
|
|
835
|
+
// select/unselect all lines
|
|
836
|
+
if (this.checked) {
|
|
837
|
+
$checkboxes.prop('checked', true);
|
|
828
838
|
} else {
|
|
829
|
-
$
|
|
830
|
-
}
|
|
831
|
-
|
|
839
|
+
$checkboxes.prop('checked', false);
|
|
840
|
+
}
|
|
832
841
|
|
|
842
|
+
// takes care of the new selection
|
|
833
843
|
self._onSelection();
|
|
834
|
-
}
|
|
835
|
-
}); // take care of clicks on checkboxes
|
|
836
|
-
|
|
837
|
-
this.controls.$list.on('click', 'input[type="checkbox"]', function () {
|
|
838
|
-
// just takes care of the new selection
|
|
839
|
-
self._onSelection();
|
|
840
|
-
}); // check/uncheck all checkboxes
|
|
841
|
-
|
|
842
|
-
this.controls.$checkAll.on('click', function () {
|
|
843
|
-
var $checkboxes = self.controls.$checkboxes; // select/unselect all lines
|
|
844
|
+
});
|
|
844
845
|
|
|
845
|
-
|
|
846
|
-
|
|
846
|
+
// data already available ?
|
|
847
|
+
if (data) {
|
|
848
|
+
this.update(data);
|
|
847
849
|
} else {
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
}); // data already available ?
|
|
854
|
-
|
|
855
|
-
if (data) {
|
|
856
|
-
this.update(data);
|
|
857
|
-
} else {
|
|
858
|
-
this.setState('empty', true);
|
|
859
|
-
this.setState('loaded', false);
|
|
860
|
-
}
|
|
861
|
-
}).init(initConfig);
|
|
862
|
-
}
|
|
850
|
+
this.setState('empty', true);
|
|
851
|
+
this.setState('loaded', false);
|
|
852
|
+
}
|
|
853
|
+
}).init(initConfig);
|
|
854
|
+
}
|
|
863
855
|
|
|
864
|
-
|
|
856
|
+
return datalistFactory;
|
|
865
857
|
|
|
866
858
|
});
|