@kalisio/kdk 2.3.2 → 2.4.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/.eslintignore +2 -1
- package/.github/workflows/main.yaml +3 -3
- package/README.md +1 -0
- package/core/api/db.js +6 -1
- package/core/api/hooks/hooks.model.js +1 -1
- package/core/api/hooks/hooks.schemas.js +0 -2
- package/core/api/models/messages.model.mongodb.js +13 -0
- package/core/api/services/authorisations/authorisations.service.js +13 -4
- package/core/api/services/index.js +19 -0
- package/core/api/services/messages/messages.hooks.js +38 -0
- package/core/client/api.js +7 -32
- package/core/client/capabilities.js +2 -2
- package/core/client/components/KActivity.vue +29 -6
- package/core/client/components/KContent.vue +2 -2
- package/core/client/components/KDialog.vue +4 -7
- package/core/client/components/KStamp.vue +3 -9
- package/core/client/components/KStore.vue +2 -4
- package/core/client/components/KTab.vue +95 -0
- package/core/client/components/action/KAction.vue +15 -2
- package/core/client/components/action/KBugReportAction.vue +4 -2
- package/core/client/components/action/KToggleFullscreenAction.vue +25 -0
- package/core/client/components/app/KSettings.vue +17 -13
- package/core/client/components/chart/KDataTable.vue +6 -9
- package/core/client/components/chart/KTimeSeriesChart.vue +62 -49
- package/core/client/components/collection/KBoard.vue +22 -33
- package/core/client/components/collection/KCard.vue +71 -56
- package/core/client/components/collection/KCardSection.vue +20 -10
- package/core/client/components/collection/KDescriptionCardSection.vue +47 -0
- package/core/client/components/collection/KGrid.vue +234 -54
- package/core/client/components/collection/KScrollDown.vue +97 -0
- package/core/client/components/collection/KScrollToTop.vue +93 -0
- package/core/client/components/collection/KTable.vue +87 -33
- package/core/client/components/collection/KTimeLine.vue +406 -0
- package/core/client/components/collection/index.js +1 -5
- package/core/client/components/document/KDocument.vue +20 -55
- package/core/client/components/document/KHtml.vue +17 -7
- package/core/client/components/document/KImage.vue +78 -0
- package/core/client/components/document/KMarkdown.vue +12 -16
- package/core/client/components/document/KPdf.vue +69 -0
- package/core/client/components/form/KFileField.vue +2 -2
- package/core/client/components/form/KSelectField.vue +2 -1
- package/core/client/components/form/KUnitField.vue +3 -1
- package/core/client/components/layout/KFab.vue +9 -10
- package/core/client/components/layout/KLayout.vue +104 -6
- package/core/client/components/layout/KOpener.vue +14 -19
- package/core/client/components/layout/KPage.vue +195 -105
- package/core/client/components/layout/KWindow.vue +54 -32
- package/core/client/components/layout/index.js +0 -2
- package/core/client/components/media/KRibbon.vue +95 -0
- package/core/client/components/menu/KMenu.vue +4 -4
- package/core/client/components/team/KGroupsActivity.vue +25 -27
- package/core/client/components/team/KMembersActivity.vue +21 -23
- package/core/client/components/team/KOrganisationsActivity.vue +20 -22
- package/core/client/components/team/KTagsActivity.vue +21 -23
- package/core/client/components/time/KAbsoluteTimeRange.vue +70 -170
- package/core/client/composables/activity.js +14 -12
- package/core/client/composables/collection.js +3 -1
- package/core/client/composables/counter.js +51 -0
- package/core/client/composables/index.js +3 -0
- package/core/client/composables/layout.js +13 -2
- package/core/client/composables/messages.js +15 -0
- package/core/client/composables/pwa.js +1 -1
- package/core/client/composables/schema.js +6 -6
- package/core/client/composables/screen.js +23 -0
- package/core/client/directives/index.js +1 -0
- package/core/client/directives/v-hover.js +23 -0
- package/core/client/document.js +61 -0
- package/core/client/exporter.js +1 -1
- package/core/client/filter.js +0 -1
- package/core/client/guards.js +1 -1
- package/core/client/i18n/core_en.json +14 -8
- package/core/client/i18n/core_fr.json +15 -9
- package/core/client/index.js +9 -3
- package/core/client/layout.js +129 -29
- package/core/client/local-storage.js +1 -1
- package/core/client/mixins/index.js +0 -1
- package/core/client/mixins/mixin.base-activity.js +23 -13
- package/core/client/mixins/mixin.base-item.js +6 -3
- package/core/client/services/index.js +4 -1
- package/core/client/services/local-settings.service.js +4 -0
- package/core/client/storage.js +1 -1
- package/core/client/store.js +1 -1
- package/core/client/template-context.js +17 -0
- package/core/client/units.js +49 -27
- package/core/client/utils/index.js +3 -2
- package/core/client/utils/utils.actions.js +4 -0
- package/core/client/utils/utils.colors.js +155 -2
- package/core/client/utils/utils.items.js +26 -0
- package/core/client/utils/utils.math.js +3 -0
- package/core/client/utils/utils.platform.js +3 -1
- package/core/client/utils/utils.screen.js +82 -0
- package/core/client/utils/utils.time.js +0 -1
- package/core/common/schemas/settings.update.json +12 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/core/api/application.js.html +1870 -0
- package/coverage/core/api/authentication.js.html +742 -0
- package/coverage/core/api/db.js.html +793 -0
- package/coverage/core/api/hooks/hooks.authentication.js.html +313 -0
- package/coverage/core/api/hooks/hooks.authorisations.js.html +1243 -0
- package/coverage/core/api/hooks/hooks.groups.js.html +229 -0
- package/coverage/core/api/hooks/hooks.logger.js.html +163 -0
- package/coverage/core/api/hooks/hooks.model.js.html +955 -0
- package/coverage/core/api/hooks/hooks.organisations.js.html +541 -0
- package/coverage/core/api/hooks/hooks.push.js.html +253 -0
- package/coverage/core/api/hooks/hooks.query.js.html +862 -0
- package/coverage/core/api/hooks/hooks.schemas.js.html +298 -0
- package/coverage/core/api/hooks/hooks.service.js.html +319 -0
- package/coverage/core/api/hooks/hooks.storage.js.html +193 -0
- package/coverage/core/api/hooks/hooks.users.js.html +868 -0
- package/coverage/core/api/hooks/index.html +296 -0
- package/coverage/core/api/hooks/index.js.html +121 -0
- package/coverage/core/api/index.html +191 -0
- package/coverage/core/api/index.js.html +148 -0
- package/coverage/core/api/marshall.js.html +448 -0
- package/coverage/core/api/models/groups.model.mongodb.js.html +109 -0
- package/coverage/core/api/models/index.html +176 -0
- package/coverage/core/api/models/messages.model.mongodb.js.html +121 -0
- package/coverage/core/api/models/organisations.model.mongodb.js.html +94 -0
- package/coverage/core/api/models/tags.model.mongodb.js.html +115 -0
- package/coverage/core/api/models/users.model.mongodb.js.html +115 -0
- package/coverage/core/api/services/account/account.hooks.js.html +208 -0
- package/coverage/core/api/services/account/account.service.js.html +436 -0
- package/coverage/core/api/services/account/index.html +131 -0
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +529 -0
- package/coverage/core/api/services/authorisations/index.html +131 -0
- package/coverage/core/api/services/databases/databases.hooks.js.html +193 -0
- package/coverage/core/api/services/databases/databases.service.js.html +100 -0
- package/coverage/core/api/services/databases/index.html +131 -0
- package/coverage/core/api/services/groups/groups.hooks.js.html +178 -0
- package/coverage/core/api/services/groups/index.html +116 -0
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +184 -0
- package/coverage/core/api/services/import-export/import-export.service.js.html +118 -0
- package/coverage/core/api/services/import-export/index.html +131 -0
- package/coverage/core/api/services/index.html +116 -0
- package/coverage/core/api/services/index.js.html +556 -0
- package/coverage/core/api/services/mailer/index.html +131 -0
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +190 -0
- package/coverage/core/api/services/mailer/mailer.service.js.html +118 -0
- package/coverage/core/api/services/messages/index.html +116 -0
- package/coverage/core/api/services/messages/messages.hooks.js.html +199 -0
- package/coverage/core/api/services/organisations/index.html +131 -0
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +178 -0
- package/coverage/core/api/services/organisations/organisations.service.js.html +343 -0
- package/coverage/core/api/services/push/index.html +131 -0
- package/coverage/core/api/services/push/push.hooks.js.html +190 -0
- package/coverage/core/api/services/push/push.service.js.html +121 -0
- package/coverage/core/api/services/storage/index.html +131 -0
- package/coverage/core/api/services/storage/storage.hooks.js.html +190 -0
- package/coverage/core/api/services/storage/storage.service.js.html +172 -0
- package/coverage/core/api/services/tags/index.html +116 -0
- package/coverage/core/api/services/tags/tags.hooks.js.html +178 -0
- package/coverage/core/api/services/users/index.html +116 -0
- package/coverage/core/api/services/users/users.hooks.js.html +307 -0
- package/coverage/core/api/utils.js.html +118 -0
- package/coverage/core/common/errors.js.html +88 -0
- package/coverage/core/common/index.html +176 -0
- package/coverage/core/common/index.js.html +115 -0
- package/coverage/core/common/permissions.js.html +1048 -0
- package/coverage/core/common/schema.js.html +190 -0
- package/coverage/core/common/utils.js.html +220 -0
- package/coverage/favicon.png +0 -0
- package/coverage/index.html +506 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/core/api/application.js.html +1870 -0
- package/coverage/lcov-report/core/api/authentication.js.html +742 -0
- package/coverage/lcov-report/core/api/db.js.html +793 -0
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +313 -0
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +1243 -0
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +229 -0
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +163 -0
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +955 -0
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +541 -0
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +253 -0
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +862 -0
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +298 -0
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +319 -0
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +193 -0
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +868 -0
- package/coverage/lcov-report/core/api/hooks/index.html +296 -0
- package/coverage/lcov-report/core/api/hooks/index.js.html +121 -0
- package/coverage/lcov-report/core/api/index.html +191 -0
- package/coverage/lcov-report/core/api/index.js.html +148 -0
- package/coverage/lcov-report/core/api/marshall.js.html +448 -0
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +109 -0
- package/coverage/lcov-report/core/api/models/index.html +176 -0
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +121 -0
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +94 -0
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +115 -0
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +115 -0
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +208 -0
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +436 -0
- package/coverage/lcov-report/core/api/services/account/index.html +131 -0
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +529 -0
- package/coverage/lcov-report/core/api/services/authorisations/index.html +131 -0
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +193 -0
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +100 -0
- package/coverage/lcov-report/core/api/services/databases/index.html +131 -0
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +178 -0
- package/coverage/lcov-report/core/api/services/groups/index.html +116 -0
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +184 -0
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +118 -0
- package/coverage/lcov-report/core/api/services/import-export/index.html +131 -0
- package/coverage/lcov-report/core/api/services/index.html +116 -0
- package/coverage/lcov-report/core/api/services/index.js.html +556 -0
- package/coverage/lcov-report/core/api/services/mailer/index.html +131 -0
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +118 -0
- package/coverage/lcov-report/core/api/services/messages/index.html +116 -0
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +199 -0
- package/coverage/lcov-report/core/api/services/organisations/index.html +131 -0
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +178 -0
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +343 -0
- package/coverage/lcov-report/core/api/services/push/index.html +131 -0
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +121 -0
- package/coverage/lcov-report/core/api/services/storage/index.html +131 -0
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +190 -0
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +172 -0
- package/coverage/lcov-report/core/api/services/tags/index.html +116 -0
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +178 -0
- package/coverage/lcov-report/core/api/services/users/index.html +116 -0
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +307 -0
- package/coverage/lcov-report/core/api/utils.js.html +118 -0
- package/coverage/lcov-report/core/common/errors.js.html +88 -0
- package/coverage/lcov-report/core/common/index.html +176 -0
- package/coverage/lcov-report/core/common/index.js.html +115 -0
- package/coverage/lcov-report/core/common/permissions.js.html +1048 -0
- package/coverage/lcov-report/core/common/schema.js.html +190 -0
- package/coverage/lcov-report/core/common/utils.js.html +220 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +506 -0
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +457 -0
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +397 -0
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1309 -0
- package/coverage/lcov-report/map/api/hooks/index.html +161 -0
- package/coverage/lcov-report/map/api/hooks/index.js.html +94 -0
- package/coverage/lcov-report/map/api/index.html +131 -0
- package/coverage/lcov-report/map/api/index.js.html +139 -0
- package/coverage/lcov-report/map/api/marshall.js.html +178 -0
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +106 -0
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +127 -0
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +196 -0
- package/coverage/lcov-report/map/api/models/index.html +161 -0
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +109 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +274 -0
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +610 -0
- package/coverage/lcov-report/map/api/services/alerts/index.html +131 -0
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +310 -0
- package/coverage/lcov-report/map/api/services/catalog/index.html +116 -0
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1510 -0
- package/coverage/lcov-report/map/api/services/daptiles/index.html +116 -0
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +241 -0
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +241 -0
- package/coverage/lcov-report/map/api/services/features/index.html +131 -0
- package/coverage/lcov-report/map/api/services/index.html +116 -0
- package/coverage/lcov-report/map/api/services/index.js.html +817 -0
- package/coverage/lcov-report/map/api/services/projects/index.html +116 -0
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +439 -0
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +466 -0
- package/coverage/lcov-report/map/common/errors.js.html +94 -0
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +541 -0
- package/coverage/lcov-report/map/common/grid.js.html +1612 -0
- package/coverage/lcov-report/map/common/index.html +371 -0
- package/coverage/lcov-report/map/common/index.js.html +172 -0
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +556 -0
- package/coverage/lcov-report/map/common/moment-utils.js.html +157 -0
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +868 -0
- package/coverage/lcov-report/map/common/opendap-utils.js.html +826 -0
- package/coverage/lcov-report/map/common/permissions.js.html +124 -0
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +418 -0
- package/coverage/lcov-report/map/common/tms-utils.js.html +274 -0
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +364 -0
- package/coverage/lcov-report/map/common/wcs-utils.js.html +586 -0
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1033 -0
- package/coverage/lcov-report/map/common/wfs-utils.js.html +574 -0
- package/coverage/lcov-report/map/common/wms-utils.js.html +451 -0
- package/coverage/lcov-report/map/common/wmts-utils.js.html +547 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov.info +11245 -0
- package/coverage/map/api/hooks/hooks.catalog.js.html +457 -0
- package/coverage/map/api/hooks/hooks.features.js.html +397 -0
- package/coverage/map/api/hooks/hooks.query.js.html +1309 -0
- package/coverage/map/api/hooks/index.html +161 -0
- package/coverage/map/api/hooks/index.js.html +94 -0
- package/coverage/map/api/index.html +131 -0
- package/coverage/map/api/index.js.html +139 -0
- package/coverage/map/api/marshall.js.html +178 -0
- package/coverage/map/api/models/alerts.model.mongodb.js.html +106 -0
- package/coverage/map/api/models/catalog.model.mongodb.js.html +127 -0
- package/coverage/map/api/models/features.model.mongodb.js.html +196 -0
- package/coverage/map/api/models/index.html +161 -0
- package/coverage/map/api/models/projects.model.mongodb.js.html +109 -0
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +274 -0
- package/coverage/map/api/services/alerts/alerts.service.js.html +610 -0
- package/coverage/map/api/services/alerts/index.html +131 -0
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +310 -0
- package/coverage/map/api/services/catalog/index.html +116 -0
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1510 -0
- package/coverage/map/api/services/daptiles/index.html +116 -0
- package/coverage/map/api/services/features/features.hooks.js.html +241 -0
- package/coverage/map/api/services/features/features.service.js.html +241 -0
- package/coverage/map/api/services/features/index.html +131 -0
- package/coverage/map/api/services/index.html +116 -0
- package/coverage/map/api/services/index.js.html +817 -0
- package/coverage/map/api/services/projects/index.html +116 -0
- package/coverage/map/api/services/projects/projects.hooks.js.html +439 -0
- package/coverage/map/common/dynamic-grid-source.js.html +466 -0
- package/coverage/map/common/errors.js.html +94 -0
- package/coverage/map/common/geotiff-grid-source.js.html +541 -0
- package/coverage/map/common/grid.js.html +1612 -0
- package/coverage/map/common/index.html +371 -0
- package/coverage/map/common/index.js.html +172 -0
- package/coverage/map/common/meteo-model-grid-source.js.html +556 -0
- package/coverage/map/common/moment-utils.js.html +157 -0
- package/coverage/map/common/opendap-grid-source.js.html +868 -0
- package/coverage/map/common/opendap-utils.js.html +826 -0
- package/coverage/map/common/permissions.js.html +124 -0
- package/coverage/map/common/time-based-grid-source.js.html +418 -0
- package/coverage/map/common/tms-utils.js.html +274 -0
- package/coverage/map/common/wcs-grid-source.js.html +364 -0
- package/coverage/map/common/wcs-utils.js.html +586 -0
- package/coverage/map/common/weacast-grid-source.js.html +1033 -0
- package/coverage/map/common/wfs-utils.js.html +574 -0
- package/coverage/map/common/wms-utils.js.html +451 -0
- package/coverage/map/common/wmts-utils.js.html +547 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +196 -0
- package/coverage/tmp/coverage-280506-1731704745613-0.json +1 -0
- package/coverage/tmp/coverage-280518-1731704745599-0.json +1 -0
- package/coverage/tmp/coverage-280529-1731704745588-0.json +1 -0
- package/coverage/tmp/coverage-280541-1731704745574-0.json +1 -0
- package/coverage/tmp/coverage-280548-1731704745545-0.json +1 -0
- package/extras/css/core.variables.scss +32 -8
- package/extras/icons/attribution.png +0 -0
- package/map/api/services/catalog/catalog.hooks.js +5 -7
- package/map/api/services/features/features.hooks.js +1 -1
- package/map/client/cesium/utils/utils.style.js +11 -2
- package/map/client/components/KAttribution.vue +108 -0
- package/map/client/components/KPositionIndicator.vue +11 -18
- package/map/client/components/KProjectMenu.vue +4 -4
- package/map/client/components/catalog/KCategoryItem.vue +74 -0
- package/map/client/components/catalog/KLayerCategories.vue +24 -12
- package/map/client/components/catalog/KLayersPanel.vue +139 -116
- package/map/client/components/catalog/KProjectSelector.vue +29 -17
- package/map/client/components/catalog/KProjectsPanel.vue +19 -35
- package/map/client/components/catalog/KViewSelector.vue +37 -25
- package/map/client/components/catalog/KViewsPanel.vue +19 -35
- package/map/client/components/form/KLocationField.vue +1 -2
- package/map/client/components/legend/KLegend.vue +34 -34
- package/map/client/components/location/KLocationCardSection.vue +18 -22
- package/map/client/components/location/KLocationMap.vue +36 -38
- package/map/client/components/location/KLocationTimeLineCard.vue +147 -0
- package/map/client/components/location/KLocationTip.vue +12 -2
- package/map/client/components/widget/KInformationBox.vue +0 -4
- package/map/client/components/widget/KStackableTimeSeries.vue +8 -1
- package/map/client/components/widget/KTimeSeries.vue +1 -1
- package/map/client/composables/highlight.js +29 -31
- package/map/client/composables/probe.js +7 -3
- package/map/client/composables/weather.js +71 -31
- package/map/client/i18n/map_en.json +3 -0
- package/map/client/i18n/map_fr.json +3 -0
- package/map/client/init.js +4 -3
- package/map/client/leaflet/ShapeMarker.js +1 -1
- package/map/client/leaflet/utils/utils.events.js +1 -1
- package/map/client/leaflet/utils/utils.style.js +20 -8
- package/map/client/mixins/globe/mixin.base-globe.js +111 -13
- package/map/client/mixins/globe/mixin.file-layers.js +10 -10
- package/map/client/mixins/globe/mixin.geojson-layers.js +90 -15
- package/map/client/mixins/globe/mixin.style.js +2 -0
- package/map/client/mixins/index.js +0 -1
- package/map/client/mixins/map/index.js +1 -0
- package/map/client/mixins/map/mixin.base-map.js +21 -2
- package/map/client/mixins/map/mixin.canvas-layers.js +7 -2
- package/map/client/mixins/map/mixin.edit-layers.js +12 -4
- package/map/client/mixins/map/mixin.file-layers.js +3 -0
- package/map/client/mixins/map/mixin.geojson-layers.js +90 -5
- package/map/client/mixins/map/mixin.pmtiles-layers.js +106 -0
- package/map/client/mixins/mixin.activity.js +8 -3
- package/map/client/mixins/mixin.feature-service.js +73 -32
- package/map/client/mixins/mixin.levels.js +1 -0
- package/map/client/mixins/mixin.weacast.js +10 -87
- package/map/client/utils/index.js +1 -0
- package/map/client/utils/utils.capture.js +1 -1
- package/map/client/utils/utils.catalog.js +7 -7
- package/map/client/utils/utils.features.js +59 -1
- package/map/client/utils/utils.layers.js +8 -0
- package/map/client/utils/utils.time-series.js +121 -0
- package/map/client/utils/utils.weacast.js +102 -0
- package/package.json +6 -6
- package/scripts/init_runner.sh +2 -2
- package/scripts/kash/CHANGELOG.md +12 -0
- package/scripts/kash/README.md +2 -0
- package/scripts/kash/kash.sh +34 -32
- package/scripts/run_tests.sh +2 -2
- package/scripts/setup_workspace.sh +24 -6
- package/test/api/core/hooks.test.js +6 -3
- package/test/api/core/test-log-2023-12-19.log +7 -0
- package/test/api/core/test-log-2024-01-04.log +14 -0
- package/test/api/core/test-log-2024-05-14.log +6 -0
- package/test/api/core/{test-log-2024-04-23.log → test-log-2024-06-06.log} +3 -3
- package/test/api/core/test-log-2024-06-26.log +25 -0
- package/test/api/core/test-log-2024-06-28.log +2 -0
- package/test/api/core/test-log-2024-07-09.log +0 -0
- package/test/api/core/test-log-2024-08-13.log +69 -0
- package/test/api/core/test-log-2024-10-28.log +53 -0
- package/test/api/core/test-log-2024-11-05.log +30 -0
- package/test/api/core/test-log-2024-11-15.log +23 -0
- package/test/api/map/alerts.test.js +3 -1
- package/test/api/map/config/layers.json +3 -1
- package/test/api/map/index.test.js +18 -1
- package/test/api/map/test-log-2023-11-24.log +121 -0
- package/test/api/map/test-log-2023-12-12.log +29 -0
- package/test/api/map/test-log-2023-12-13.log +5 -0
- package/test/api/map/test-log-2024-01-04.log +2 -0
- package/test/api/map/test-log-2024-01-11.log +1 -0
- package/test/api/map/test-log-2024-01-25.log +19 -0
- package/test/api/map/test-log-2024-06-06.log +39 -0
- package/test/api/map/test-log-2024-08-13.log +13 -0
- package/test/api/map/test-log-2024-08-20.log +55 -0
- package/test/api/map/test-log-2024-09-09.log +92 -0
- package/test/api/map/test-log-2024-10-28.log +11 -0
- package/test/client/core/utils.js +13 -0
- package/test/client/map/api.js +34 -0
- package/test/client/map/catalog.js +6 -2
- package/test/client/map/index.js +1 -0
- package/test/client/map/utils.js +4 -2
- package/core/client/components/collection/KList.vue +0 -135
- package/core/client/components/layout/KPageSticky.vue +0 -53
- package/core/client/mixins/mixin.base-collection.js +0 -162
- package/core/client/utils/utils.data.js +0 -22
- package/map/client/mixins/mixin.catalog-panel.js +0 -26
- package/test/api/core/test-log-2024-04-22.log +0 -84
|
@@ -4,13 +4,15 @@
|
|
|
4
4
|
Window header
|
|
5
5
|
-->
|
|
6
6
|
<div
|
|
7
|
+
:id="`${placement}-window-header`"
|
|
7
8
|
class="k-window-header full-width row items-center"
|
|
8
9
|
v-touch-pan.prevent.mouse="onMoved"
|
|
9
10
|
>
|
|
10
|
-
<q-resize-observer @resize="
|
|
11
|
+
<q-resize-observer @resize="onWindowHeaderResized" />
|
|
11
12
|
<!-- window menu -->
|
|
12
13
|
<KPanel
|
|
13
|
-
|
|
14
|
+
v-if="currentWindow.controls.menu"
|
|
15
|
+
:id="`${placement}-window-menu`"
|
|
14
16
|
:content="menu"
|
|
15
17
|
@touchstart.passive.stop
|
|
16
18
|
@mousedown.passive.stop
|
|
@@ -55,6 +57,7 @@
|
|
|
55
57
|
:style="`min-width: ${widgetWidth}px; max-width: ${widgetWidth}px;`"
|
|
56
58
|
>
|
|
57
59
|
<component
|
|
60
|
+
:id="`${placement}-window-content`"
|
|
58
61
|
ref="widgetRef"
|
|
59
62
|
:is="widget.instance"
|
|
60
63
|
v-bind="widget.content"
|
|
@@ -62,6 +65,7 @@
|
|
|
62
65
|
/>
|
|
63
66
|
</KScrollArea>
|
|
64
67
|
<component v-else
|
|
68
|
+
:id="`${placement}-window-content`"
|
|
65
69
|
ref="widgetRef"
|
|
66
70
|
:is="widget.instance"
|
|
67
71
|
v-bind="widget.content"
|
|
@@ -71,8 +75,11 @@
|
|
|
71
75
|
<!--
|
|
72
76
|
Window footer
|
|
73
77
|
-->
|
|
74
|
-
<div
|
|
75
|
-
|
|
78
|
+
<div
|
|
79
|
+
:id="`${placement}-window-footer`"
|
|
80
|
+
class="k-window-footer full-width row justify-end"
|
|
81
|
+
>
|
|
82
|
+
<q-resize-observer @resize="onWindowFooterResized" />
|
|
76
83
|
<!-- window grip -->
|
|
77
84
|
<q-icon
|
|
78
85
|
v-if="currentWindow.controls.resize && currentWindow.state !== 'maximized'"
|
|
@@ -90,7 +97,10 @@ import _ from 'lodash'
|
|
|
90
97
|
import logger from 'loglevel'
|
|
91
98
|
import { ref, computed, watch, provide } from 'vue'
|
|
92
99
|
import { useQuasar } from 'quasar'
|
|
93
|
-
import { Store
|
|
100
|
+
import { Store } from '../../store.js'
|
|
101
|
+
import { LocalStorage } from '../../local-storage.js'
|
|
102
|
+
import { Layout } from '../../layout.js'
|
|
103
|
+
import { loadComponent, bindContent, computeResponsiveSize } from '../../utils'
|
|
94
104
|
import KPanel from '../KPanel.vue'
|
|
95
105
|
import KScrollArea from '../KScrollArea.vue'
|
|
96
106
|
import KMenu from '../menu/KMenu.vue'
|
|
@@ -112,10 +122,12 @@ const props = defineProps({
|
|
|
112
122
|
|
|
113
123
|
// Data
|
|
114
124
|
const $q = useQuasar()
|
|
125
|
+
const header = Layout.getHeader()
|
|
126
|
+
const footer = Layout.getFooter()
|
|
115
127
|
const currentWindow = Layout.getWindow(props.placement)
|
|
128
|
+
const windowHeaderHeight = ref(0)
|
|
129
|
+
const windowFooterHeight = ref(0)
|
|
116
130
|
const widgetRef = ref(null)
|
|
117
|
-
const headerHeight = ref(0)
|
|
118
|
-
const footerHeight = ref(0)
|
|
119
131
|
const pinIcons = {
|
|
120
132
|
left: 'las la-angle-left',
|
|
121
133
|
right: 'las la-angle-right',
|
|
@@ -138,7 +150,7 @@ const widgets = computed(() => {
|
|
|
138
150
|
let isCurrentValid = false
|
|
139
151
|
_.forEach(currentWindow.components, (widget) => {
|
|
140
152
|
const componentName = _.get(widget, 'content.component')
|
|
141
|
-
widget.instance =
|
|
153
|
+
widget.instance = loadComponent(componentName)
|
|
142
154
|
if (currentWindow.current === widget.id) isCurrentValid = true
|
|
143
155
|
})
|
|
144
156
|
if (!isCurrentValid) Layout.setWindowCurrent(props.placement, _.get(widgets, '[0].id'))
|
|
@@ -198,7 +210,7 @@ const headerControls = computed(() => {
|
|
|
198
210
|
size: 'sm',
|
|
199
211
|
tooltip: 'KWindow.RESTORE_ACTION',
|
|
200
212
|
visible: currentWindow.controls.restore && currentWindow.state === 'maximized',
|
|
201
|
-
handler: () => Layout.setWindowState(props.placement, LocalStorage.get(getStorageKey('restore-state')))
|
|
213
|
+
handler: () => Layout.setWindowState(props.placement, LocalStorage.get(getStorageKey('restore-state')) || 'pinned')
|
|
202
214
|
}, {
|
|
203
215
|
id: `close-${props.placement}-window`,
|
|
204
216
|
icon: 'las la-times',
|
|
@@ -229,14 +241,14 @@ const widgetLabel = computed(() => {
|
|
|
229
241
|
const widgetHeader = computed(() => {
|
|
230
242
|
if (!widget.value) return null
|
|
231
243
|
let header = _.cloneDeep(widget.value.header)
|
|
232
|
-
header =
|
|
244
|
+
header = bindContent(header, widgetRef.value)
|
|
233
245
|
return header
|
|
234
246
|
})
|
|
235
247
|
const widgetWidth = computed(() => {
|
|
236
248
|
return currentWindow.size[0] - border
|
|
237
249
|
})
|
|
238
250
|
const widgetHeight = computed(() => {
|
|
239
|
-
return currentWindow.size[1] -
|
|
251
|
+
return currentWindow.size[1] - windowHeaderHeight.value - windowFooterHeight.value
|
|
240
252
|
})
|
|
241
253
|
|
|
242
254
|
// Watch
|
|
@@ -287,25 +299,26 @@ function refresh (newState, oldState) {
|
|
|
287
299
|
break
|
|
288
300
|
}
|
|
289
301
|
default:
|
|
290
|
-
logger.
|
|
302
|
+
logger.error(`[KDK] invalid window state ${currentWindow.state}`)
|
|
291
303
|
}
|
|
292
304
|
}
|
|
293
305
|
function setPinnedGeometry () {
|
|
294
|
-
const
|
|
295
|
-
const w = $q.screen.width * sizeRatio[0] / 100
|
|
296
|
-
const h = $q.screen.height * sizeRatio[1] / 100
|
|
306
|
+
const size = computeResponsiveSize(currentWindow.sizePolicy.pinned)
|
|
297
307
|
let x, y
|
|
298
308
|
if (props.placement === 'top' || props.placement === 'bottom') {
|
|
299
|
-
x = $q.screen.width / 2 -
|
|
300
|
-
y = props.placement === 'top' ? 0 : $q.screen.height -
|
|
309
|
+
x = $q.screen.width / 2 - size[0] / 2
|
|
310
|
+
y = props.placement === 'top' ? 0 : $q.screen.height - size[1]
|
|
301
311
|
} else {
|
|
302
|
-
x = props.placement === 'left' ? 0 : $q.screen.width -
|
|
303
|
-
y = $q.screen.height / 2 -
|
|
312
|
+
x = props.placement === 'left' ? 0 : $q.screen.width - size[0]
|
|
313
|
+
y = $q.screen.height / 2 - size[1] / 2
|
|
304
314
|
}
|
|
305
|
-
updateGeometry([x, y],
|
|
315
|
+
updateGeometry([x, y], size)
|
|
306
316
|
}
|
|
307
317
|
function setMaximizedGeometry () {
|
|
308
|
-
|
|
318
|
+
let height = $q.screen.height
|
|
319
|
+
if (header.visible) height -= header.size[1]
|
|
320
|
+
if (footer.visible) height -= footer.size[1]
|
|
321
|
+
updateGeometry([0, 0], [$q.screen.width, height])
|
|
309
322
|
}
|
|
310
323
|
function updateGeometry (position, size, check = false) {
|
|
311
324
|
// check geometry
|
|
@@ -351,6 +364,9 @@ function updateGeometry (position, size, check = false) {
|
|
|
351
364
|
function onMoved (event) {
|
|
352
365
|
if (!event) return
|
|
353
366
|
if (currentWindow.state !== 'maximized') {
|
|
367
|
+
// Set Focus
|
|
368
|
+
Layout.setFocus(`windows.${props.placement}`)
|
|
369
|
+
// Update geometry
|
|
354
370
|
if (currentWindow.state !== 'floating') {
|
|
355
371
|
storeGeometry()
|
|
356
372
|
Layout.setWindowState(props.placement, 'floating')
|
|
@@ -365,8 +381,10 @@ function onMoved (event) {
|
|
|
365
381
|
if (event.isFinal) storeGeometry()
|
|
366
382
|
}
|
|
367
383
|
}
|
|
368
|
-
|
|
384
|
+
const onResized = _.throttle((event) => {
|
|
369
385
|
if (!event) return
|
|
386
|
+
// Set Focus
|
|
387
|
+
Layout.setFocus(`windows.${props.placement}`)
|
|
370
388
|
// Handle the pinned and floating currentState
|
|
371
389
|
if (currentWindow.state !== 'maximized') {
|
|
372
390
|
if (currentWindow.state !== 'floating') {
|
|
@@ -382,22 +400,26 @@ function onResized (event) {
|
|
|
382
400
|
updateGeometry(currentWindow.position, newSize)
|
|
383
401
|
if (event.isFinal) storeGeometry()
|
|
384
402
|
}
|
|
385
|
-
}
|
|
386
|
-
|
|
403
|
+
}, 5)
|
|
404
|
+
const onScreenResized = _.throttle(() => {
|
|
387
405
|
if (currentWindow.state === 'pinned') setPinnedGeometry()
|
|
388
406
|
else if (currentWindow.state === 'maximized') setMaximizedGeometry()
|
|
389
407
|
else updateGeometry(currentWindow.position, currentWindow.size, true)
|
|
408
|
+
}, 50)
|
|
409
|
+
function onWindowHeaderResized (size) {
|
|
410
|
+
windowHeaderHeight.value = size.height
|
|
390
411
|
}
|
|
391
|
-
function
|
|
392
|
-
|
|
393
|
-
}
|
|
394
|
-
function onFooterResized (size) {
|
|
395
|
-
footerHeight.value = size.height
|
|
412
|
+
function onWindowFooterResized (size) {
|
|
413
|
+
windowFooterHeight.value = size.height
|
|
396
414
|
}
|
|
397
415
|
|
|
398
416
|
// restore the state
|
|
399
|
-
const
|
|
400
|
-
|
|
417
|
+
const currentState = currentWindow.state
|
|
418
|
+
if (currentState) refresh(currentState)
|
|
419
|
+
else {
|
|
420
|
+
const fallbackState = readState() || 'pinned'
|
|
421
|
+
Layout.setWindowState(props.placement, fallbackState)
|
|
422
|
+
}
|
|
401
423
|
</script>
|
|
402
424
|
|
|
403
425
|
<style lang="scss" scoped>
|
|
@@ -420,7 +442,7 @@ Layout.setWindowState(props.placement, fallbackState)
|
|
|
420
442
|
background-color: $window-header-hover-background;
|
|
421
443
|
}
|
|
422
444
|
.k-window-footer {
|
|
423
|
-
height: v-bind(
|
|
445
|
+
height: v-bind(windowFooterHeight)px;
|
|
424
446
|
border-radius: 0 0 $window-border-radius $window-border-radius;
|
|
425
447
|
}
|
|
426
448
|
.k-window-grip:hover {
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import KFab from './KFab.vue'
|
|
2
2
|
import KLayout from './KLayout.vue'
|
|
3
3
|
import KPage from './KPage.vue'
|
|
4
|
-
import KPageSticky from './KPageSticky.vue'
|
|
5
4
|
import KWindow from './KWindow.vue'
|
|
6
5
|
|
|
7
6
|
export {
|
|
8
7
|
KFab,
|
|
9
8
|
KLayout,
|
|
10
9
|
KPage,
|
|
11
|
-
KPageSticky,
|
|
12
10
|
KWindow
|
|
13
11
|
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="k-ribbon">
|
|
3
|
+
{{ text }}
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script setup>
|
|
8
|
+
import _ from 'lodash'
|
|
9
|
+
import { computed } from 'vue'
|
|
10
|
+
import { getHtmlColor } from '../../utils/utils.colors.js'
|
|
11
|
+
const width = 500
|
|
12
|
+
|
|
13
|
+
// Props
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
text: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: undefined
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
type: Number,
|
|
21
|
+
default: 32
|
|
22
|
+
},
|
|
23
|
+
color: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: 'primary'
|
|
26
|
+
},
|
|
27
|
+
textColor: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: 'white'
|
|
30
|
+
},
|
|
31
|
+
letterSpacing: {
|
|
32
|
+
type: Number,
|
|
33
|
+
default: 2
|
|
34
|
+
},
|
|
35
|
+
position: {
|
|
36
|
+
type: String,
|
|
37
|
+
default: 'top-left',
|
|
38
|
+
validator: (value) => {
|
|
39
|
+
return ['top-left', 'top-right', 'bottom-right', 'bottom-left'].includes(value)
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
origin: {
|
|
43
|
+
type: Array,
|
|
44
|
+
default: [50, 50],
|
|
45
|
+
validator: (value) => {
|
|
46
|
+
return _.isArray(value) && _.size(value) === 2
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
// Computed
|
|
52
|
+
const computedWidth = computed(() => {
|
|
53
|
+
return `${width}px`
|
|
54
|
+
})
|
|
55
|
+
const computedHeight = computed(() => {
|
|
56
|
+
return `${props.size}px`
|
|
57
|
+
})
|
|
58
|
+
const computedFontSize = computed(() => {
|
|
59
|
+
return `${props.size - 8}px`
|
|
60
|
+
})
|
|
61
|
+
const computedColor = computed(() => {
|
|
62
|
+
return getHtmlColor(props.color)
|
|
63
|
+
})
|
|
64
|
+
const computedTextColor = computed(() => {
|
|
65
|
+
return getHtmlColor(props.textColor)
|
|
66
|
+
})
|
|
67
|
+
const computedLetterSpacing = computed(() => {
|
|
68
|
+
return `${props.letterSpacing}px`
|
|
69
|
+
})
|
|
70
|
+
const translation = computed(() => {
|
|
71
|
+
if (props.position === 'top-left') return `${props.origin[0] - (width / 2)}px, ${props.origin[1] - (props.size / 2)}px`
|
|
72
|
+
if (props.position === 'top-right') return `${(width / 2) - props.origin[0]}px, ${props.origin[1] - (props.size / 2)}px`
|
|
73
|
+
if (props.position === 'bottom-right') return `${(width / 2) - props.origin[0]}px, ${(props.size / 2) - props.origin[1]}px`
|
|
74
|
+
if (props.position === 'bottom-left') return `${props.origin[0] - (width / 2)}px, ${(props.size / 2) - props.origin[1]}px`
|
|
75
|
+
})
|
|
76
|
+
const rotation = computed(() => {
|
|
77
|
+
if (props.position === 'top-left' || props.position === 'bottom-right') return '-45deg'
|
|
78
|
+
return '45deg'
|
|
79
|
+
})
|
|
80
|
+
</script>
|
|
81
|
+
|
|
82
|
+
<style lang="scss" scope>
|
|
83
|
+
.k-ribbon {
|
|
84
|
+
width: v-bind(computedWidth);
|
|
85
|
+
height: v-bind(computedHeight);
|
|
86
|
+
display: flex;
|
|
87
|
+
justify-content: center;
|
|
88
|
+
align-items: center;
|
|
89
|
+
transform: translate(v-bind(translation)) rotate(v-bind(rotation));
|
|
90
|
+
background-color: v-bind(computedColor);
|
|
91
|
+
color: v-bind(computedTextColor);
|
|
92
|
+
font-size: v-bind(computedFontSize);
|
|
93
|
+
letter-spacing: v-bind(computedLetterSpacing);
|
|
94
|
+
}
|
|
95
|
+
</style>
|
|
@@ -140,8 +140,8 @@ function onClicked (event) {
|
|
|
140
140
|
}
|
|
141
141
|
</script>
|
|
142
142
|
|
|
143
|
-
<style lang="scss"
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
<style lang="scss">
|
|
144
|
+
.q-btn-dropdown__arrow {
|
|
145
|
+
margin-left: 0px !important;
|
|
146
|
+
}
|
|
147
147
|
</style>
|
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<KPage padding>
|
|
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
|
-
<router-view service="groups"></router-view>
|
|
29
|
-
</template>
|
|
3
|
+
<!--
|
|
4
|
+
Groups collection
|
|
5
|
+
-->
|
|
6
|
+
<KGrid
|
|
7
|
+
ref="groupsGrid"
|
|
8
|
+
:contextId="contextId"
|
|
9
|
+
service="groups"
|
|
10
|
+
:renderer="renderer"
|
|
11
|
+
:base-query="sorter.query"
|
|
12
|
+
:filter-query="filter.query"
|
|
13
|
+
:list-strategy="'smart'">
|
|
14
|
+
<template v-slot:empty-section>
|
|
15
|
+
<div class="absolute-center">
|
|
16
|
+
<KStamp
|
|
17
|
+
icon="las la-exclamation-circle"
|
|
18
|
+
icon-size="3rem"
|
|
19
|
+
:text="$t('KGrid.EMPTY_LABEL')"
|
|
20
|
+
/>
|
|
21
|
+
</div>
|
|
22
|
+
</template>
|
|
23
|
+
</KGrid>
|
|
24
|
+
<!--
|
|
25
|
+
Router view to enable routing to modals
|
|
26
|
+
-->
|
|
27
|
+
<router-view service="groups"></router-view>
|
|
30
28
|
</KPage>
|
|
31
29
|
</template>
|
|
32
30
|
|
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<KPage padding>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<router-view service="members"></router-view>
|
|
25
|
-
</template>
|
|
3
|
+
<!--
|
|
4
|
+
Members collection, cannot use smart strategy here because membership is not managed at service level
|
|
5
|
+
but using authorisations on users
|
|
6
|
+
-->
|
|
7
|
+
<KGrid
|
|
8
|
+
ref="membersGrid"
|
|
9
|
+
service="members"
|
|
10
|
+
:renderer="renderer"
|
|
11
|
+
:contextId="contextId"
|
|
12
|
+
:base-query="baseQuery"
|
|
13
|
+
:filter-query="filter.query">
|
|
14
|
+
<template v-slot:empty-section>
|
|
15
|
+
<div class="absolute-center">
|
|
16
|
+
<KStamp icon="las la-exclamation-circle" icon-size="3rem" :text="$t('KGrid.EMPTY_LABEL')" />
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
</KGrid>
|
|
20
|
+
<!--
|
|
21
|
+
Router view to enable routing to modals
|
|
22
|
+
-->
|
|
23
|
+
<router-view service="members"></router-view>
|
|
26
24
|
</KPage>
|
|
27
25
|
</template>
|
|
28
26
|
|
|
@@ -1,27 +1,25 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<KPage padding>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
<router-view service="organisations"></router-view>
|
|
24
|
-
</template>
|
|
3
|
+
<!--
|
|
4
|
+
Organisations collection
|
|
5
|
+
-->
|
|
6
|
+
<KGrid
|
|
7
|
+
ref="organisationsGrid"
|
|
8
|
+
service="organisations"
|
|
9
|
+
:renderer="renderer"
|
|
10
|
+
:base-query="sorter.query"
|
|
11
|
+
:filter-query="filter.query"
|
|
12
|
+
:list-strategy="'smart'">
|
|
13
|
+
<template v-slot:empty-section>
|
|
14
|
+
<div class="absolute-center">
|
|
15
|
+
<KStamp icon="las la-exclamation-circle" icon-size="3rem" :text="$t('KGrid.EMPTY_LABEL')" />
|
|
16
|
+
</div>
|
|
17
|
+
</template>
|
|
18
|
+
</KGrid>
|
|
19
|
+
<!--
|
|
20
|
+
Router view to enable routing to modals
|
|
21
|
+
-->
|
|
22
|
+
<router-view service="organisations"></router-view>
|
|
25
23
|
</KPage>
|
|
26
24
|
</template>
|
|
27
25
|
|
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<KPage padding>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<router-view service="tags"></router-view>
|
|
25
|
-
</template>
|
|
3
|
+
<!--
|
|
4
|
+
Groups collection
|
|
5
|
+
-->
|
|
6
|
+
<KGrid
|
|
7
|
+
ref="tagsGrid"
|
|
8
|
+
:contextId="contextId"
|
|
9
|
+
service="tags"
|
|
10
|
+
:renderer="renderer"
|
|
11
|
+
:base-query="sorter.query"
|
|
12
|
+
:filter-query="filter.query"
|
|
13
|
+
:list-strategy="'smart'">
|
|
14
|
+
<template v-slot:empty-section>
|
|
15
|
+
<div class="absolute-center">
|
|
16
|
+
<KStamp icon="las la-exclamation-circle" icon-size="3rem" :text="$t('KGrid.EMPTY_LABEL')" />
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
</KGrid>
|
|
20
|
+
<!--
|
|
21
|
+
Router view to enable routing to modals
|
|
22
|
+
-->
|
|
23
|
+
<router-view service="tags"></router-view>
|
|
26
24
|
</KPage>
|
|
27
25
|
</template>
|
|
28
26
|
|