@provoly/dashboard 0.23.2 → 0.23.3
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/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.d.ts +1 -1
- package/esm2022/admin/components/admin-dataset/admin-select-dataset/admin-select-dataset.component.mjs +4 -4
- package/esm2022/admin/store/admin.effects.mjs +2 -2
- package/esm2022/lib/core/components/share/share.model.mjs +1 -1
- package/esm2022/lib/core/i18n/en.translations.mjs +7 -2
- package/esm2022/lib/core/i18n/fr.translations.mjs +7 -2
- package/esm2022/lib/core/store/data-source/data-source.actions.mjs +2 -2
- package/esm2022/lib/core/store/data-source/data-source.effects.mjs +2 -2
- package/esm2022/lib/core/store/data-source/data-source.reducer.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.selectors.mjs +3 -3
- package/esm2022/lib/core/store/data-source/data-source.service.mjs +1 -1
- package/esm2022/lib/dashboard/store/dashboard.effects.mjs +32 -9
- package/esm2022/lib/dashboard/store/manifest.service.mjs +14 -12
- package/fesm2022/provoly-dashboard-admin.mjs +4 -4
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +61 -27
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/lib/core/components/share/share.model.d.ts +2 -2
- package/lib/core/i18n/en.translations.d.ts +5 -0
- package/lib/core/i18n/fr.translations.d.ts +5 -0
- package/lib/core/store/data-source/data-source.actions.d.ts +5 -5
- package/lib/core/store/data-source/data-source.effects.d.ts +3 -3
- package/lib/core/store/data-source/data-source.reducer.d.ts +2 -2
- package/lib/core/store/data-source/data-source.selectors.d.ts +1 -1
- package/lib/dashboard/store/dashboard.effects.d.ts +2 -1
- package/lib/dashboard/store/manifest.service.d.ts +2 -1
- package/package.json +13 -13
|
@@ -475,7 +475,12 @@ const enTranslations$1 = {
|
|
|
475
475
|
public: 'Public',
|
|
476
476
|
restricted: 'Restricted',
|
|
477
477
|
type: 'Visibility',
|
|
478
|
-
users: 'Authorized users'
|
|
478
|
+
users: 'Authorized users',
|
|
479
|
+
conflict: {
|
|
480
|
+
title: 'Warning',
|
|
481
|
+
main: 'The following data sources are not accessible to the selected user groups:',
|
|
482
|
+
unavailable: 'inaccessible aux groupes : '
|
|
483
|
+
}
|
|
479
484
|
},
|
|
480
485
|
homepage: {
|
|
481
486
|
menu: {
|
|
@@ -866,7 +871,12 @@ const frTranslations$1 = {
|
|
|
866
871
|
public: 'Public',
|
|
867
872
|
restricted: 'Restreint',
|
|
868
873
|
type: 'Visibilité',
|
|
869
|
-
users: 'Utilisateurs autorisés'
|
|
874
|
+
users: 'Utilisateurs autorisés',
|
|
875
|
+
conflict: {
|
|
876
|
+
title: 'Warning',
|
|
877
|
+
main: 'Attention, les sources de données suivantes ne seront pas visible de toutes les personnes accédant à la présentation : ',
|
|
878
|
+
unavailable: 'inaccessible aux groupes : '
|
|
879
|
+
}
|
|
870
880
|
},
|
|
871
881
|
homepage: {
|
|
872
882
|
menu: {
|
|
@@ -2339,7 +2349,7 @@ const DataSourceActions = {
|
|
|
2339
2349
|
create: createAction('[Dataset] create Dataset', props()),
|
|
2340
2350
|
created: createAction('[Dataset] Datadef is created call to admin', props()),
|
|
2341
2351
|
update: createAction('[Dataset] update Dataset', props()),
|
|
2342
|
-
|
|
2352
|
+
setMissingGroups: createAction('[Dataset] set missing groups', props()),
|
|
2343
2353
|
updated: createAction('[Dataset] Dataset is updated call to admin', props()),
|
|
2344
2354
|
delete: createAction('[Dataset] delete Dataset', props()),
|
|
2345
2355
|
deleted: createAction('[Dataset] Dataset is deleted call to admin', props()),
|
|
@@ -2409,9 +2419,9 @@ const dataSourceReducer = createReducer(initialDataSourceState, on(DataSourceAct
|
|
|
2409
2419
|
...state,
|
|
2410
2420
|
datasets: action.datasets,
|
|
2411
2421
|
isLoading: false
|
|
2412
|
-
})), on(DataSourceActions.dataset.
|
|
2422
|
+
})), on(DataSourceActions.dataset.setMissingGroups, (state, { missingGroups }) => ({
|
|
2413
2423
|
...state,
|
|
2414
|
-
|
|
2424
|
+
missingGroups
|
|
2415
2425
|
})), on(DataSourceActions.dataset.unselectDataset, (state) => ({
|
|
2416
2426
|
...state,
|
|
2417
2427
|
selectedDataset: null
|
|
@@ -2551,7 +2561,7 @@ const getDataSourcesSorted = createSelector(getAllNamedQuery, datasets, (nqs, ds
|
|
|
2551
2561
|
const selectedDatasetId = createSelector(selectFeature, (state) => state?.selectedDataset?.id);
|
|
2552
2562
|
const selectedDataset = createSelector(selectFeature, (state) => state?.selectedDataset);
|
|
2553
2563
|
const selectedDatasetMetadata = createSelector(selectFeature, (state) => state?.selectedDataset?.metadata ?? []);
|
|
2554
|
-
const
|
|
2564
|
+
const selectedDatasetMissingGroups = createSelector(selectFeature, (state) => state?.missingGroups);
|
|
2555
2565
|
const datasetVersions = createSelector(selectFeature, (state) => state?.datasetVersions ?? []);
|
|
2556
2566
|
const memoizeDatasetVersions = {};
|
|
2557
2567
|
const matchingDatasetVersions = (datasetId) => {
|
|
@@ -2580,7 +2590,7 @@ const DataSourceSelectors = {
|
|
|
2580
2590
|
getDataSourcesSorted,
|
|
2581
2591
|
selectedDataset,
|
|
2582
2592
|
selectedDatasetMetadata,
|
|
2583
|
-
|
|
2593
|
+
selectedDatasetMissingGroups,
|
|
2584
2594
|
datasetVersions,
|
|
2585
2595
|
selectedDatasetId,
|
|
2586
2596
|
matchingDatasetVersions,
|
|
@@ -4397,7 +4407,7 @@ class DataSourceEffects {
|
|
|
4397
4407
|
DataSourceActions.dataset.unselectDataset(),
|
|
4398
4408
|
DataSourceActions.dataset.created({ path: props.route })
|
|
4399
4409
|
]))), catchError((error) => [DataSourceActions.dataset.failure({ error })])));
|
|
4400
|
-
this.
|
|
4410
|
+
this.unsetMissingGroupsOnDatasetSelection$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.selectDataset), map(() => DataSourceActions.dataset.setMissingGroups({ missingGroups: undefined }))));
|
|
4401
4411
|
this.deleteDataset$ = createEffect(() => this.actions$.pipe(ofType(DataSourceActions.dataset.delete), switchMap((action) => this.dataSourceService.deleteDataset(action.name).pipe(mergeMap(() => [
|
|
4402
4412
|
DataSourceActions.dataset.loadDataset(),
|
|
4403
4413
|
DataSourceActions.dataset.unselectDataset(),
|
|
@@ -10582,17 +10592,19 @@ class ManifestService {
|
|
|
10582
10592
|
.pipe(mergeMap((url) => this.httpClient.get(encodeURI(`${url}/users/me/dashboards/id/${id}/manifest`))));
|
|
10583
10593
|
}
|
|
10584
10594
|
save(name, manifest, id, description, image, cover, metadata, groups) {
|
|
10585
|
-
return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) =>
|
|
10586
|
-
|
|
10587
|
-
|
|
10588
|
-
|
|
10589
|
-
|
|
10590
|
-
|
|
10591
|
-
|
|
10592
|
-
|
|
10593
|
-
|
|
10594
|
-
|
|
10595
|
-
|
|
10595
|
+
return this.store.select(ConfigSelectors.refUrl).pipe(mergeMap((url) => {
|
|
10596
|
+
return this.httpClient.post(encodeURI(`${url}/users/me/dashboards`), {
|
|
10597
|
+
id,
|
|
10598
|
+
name,
|
|
10599
|
+
description,
|
|
10600
|
+
manifest,
|
|
10601
|
+
image,
|
|
10602
|
+
cover,
|
|
10603
|
+
metadata,
|
|
10604
|
+
datasource: ManifestUtils.getDatasourcesUsedByManifest(manifest).map((ds) => ds.datasetId),
|
|
10605
|
+
groups
|
|
10606
|
+
});
|
|
10607
|
+
}));
|
|
10596
10608
|
}
|
|
10597
10609
|
delete(id) {
|
|
10598
10610
|
return this.store
|
|
@@ -10756,7 +10768,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
10756
10768
|
}], ctorParameters: () => [{ type: i1$2.HttpClient }] });
|
|
10757
10769
|
|
|
10758
10770
|
class DashboardEffects {
|
|
10759
|
-
constructor(dashboardInitService, actions$, store, manifestService, itemService, titleService, translateService, snackBar, router, refreshService, toolboxManifestService, busService, searchService, pryDialog, wmsService, widgetFactoryService) {
|
|
10771
|
+
constructor(dashboardInitService, actions$, store, manifestService, itemService, titleService, translateService, snackBar, router, refreshService, toolboxManifestService, busService, searchService, pryDialog, wmsService, widgetFactoryService, i18nService) {
|
|
10760
10772
|
this.dashboardInitService = dashboardInitService;
|
|
10761
10773
|
this.actions$ = actions$;
|
|
10762
10774
|
this.store = store;
|
|
@@ -10773,6 +10785,7 @@ class DashboardEffects {
|
|
|
10773
10785
|
this.pryDialog = pryDialog;
|
|
10774
10786
|
this.wmsService = wmsService;
|
|
10775
10787
|
this.widgetFactoryService = widgetFactoryService;
|
|
10788
|
+
this.i18nService = i18nService;
|
|
10776
10789
|
this.join$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.join), withLatestFrom(this.store.select(DashboardSelectors.rank), this.store.select(DashboardSelectors.tenants), this.store.select(DashboardSelectors.globalManifest), this.store.select(DashboardSelectors.resultSets), this.store.select(DashboardSelectors.selectedItemIds), this.store.select(DashboardSelectors.presentation), this.store.select(DashboardSelectors.displayOptions)), filter$1(([action, rank, tenants, manifest, resultSets, display]) => rank === 0), map$1(([action, rank, tenants, manifest, resultSets, selectedIds, presentation, display]) => DashboardActions.updateManifestAfterTenantJoin({
|
|
10777
10790
|
tenants, // we already have added tenant in the reduce of the "join" action
|
|
10778
10791
|
manifest: {
|
|
@@ -10897,12 +10910,33 @@ class DashboardEffects {
|
|
|
10897
10910
|
}
|
|
10898
10911
|
});
|
|
10899
10912
|
})), { dispatch: false });
|
|
10900
|
-
this.saveManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.saveManifest), withLatestFrom(this.store.select(DashboardSelectors.globalManifest)), mergeMap$1(([action, currentManifest]) => this.manifestService
|
|
10913
|
+
this.saveManifest$ = createEffect(() => this.actions$.pipe(ofType(DashboardActions.saveManifest), withLatestFrom(this.store.select(DashboardSelectors.globalManifest)), withLatestFrom(this.store.select(DataSourceSelectors.datasets)), mergeMap$1(([[action, currentManifest], datasets]) => this.manifestService
|
|
10901
10914
|
.save(action.name, action.manifest ?? currentManifest, action.id, action.description, action.image, action.cover, action.metadata, action.groups)
|
|
10902
|
-
.pipe(tap(() =>
|
|
10903
|
-
|
|
10904
|
-
|
|
10905
|
-
|
|
10915
|
+
.pipe(tap((response) => {
|
|
10916
|
+
this.snackBar.open({
|
|
10917
|
+
message: this.translateService.instant('@pry.toolbox.manifest.saved', { viewId: action.name }),
|
|
10918
|
+
type: 'success'
|
|
10919
|
+
});
|
|
10920
|
+
if (response && 'missingGroupsByEntity' in response) {
|
|
10921
|
+
const data = {
|
|
10922
|
+
title: '@pry.share.conflict.title',
|
|
10923
|
+
message: this.i18nService.instant('@pry.share.conflict.main') +
|
|
10924
|
+
'\r\n' +
|
|
10925
|
+
Object.keys(response.missingGroupsByEntity)
|
|
10926
|
+
.map((entity) => (datasets.find((ds) => ds.id === entity)?.name ?? entity) +
|
|
10927
|
+
' : ' +
|
|
10928
|
+
response.missingGroupsByEntity[entity].join(', '))
|
|
10929
|
+
.join('\r\n'),
|
|
10930
|
+
actions: [
|
|
10931
|
+
{
|
|
10932
|
+
id: 0,
|
|
10933
|
+
label: '@pry.toolbox.close'
|
|
10934
|
+
}
|
|
10935
|
+
]
|
|
10936
|
+
};
|
|
10937
|
+
this.pryDialog.open(PryDialogConfirmComponent, { data });
|
|
10938
|
+
}
|
|
10939
|
+
}), map$1(() => action.manifest ?? currentManifest), catchError((error) => {
|
|
10906
10940
|
this.snackBar.open({
|
|
10907
10941
|
message: this.translateService.instant('@pry.toolbox.manifest.saveErrorCode.' + (error.error?.code ?? 'UNKNOWN'), {
|
|
10908
10942
|
name: action.name
|
|
@@ -11115,12 +11149,12 @@ class DashboardEffects {
|
|
|
11115
11149
|
dashboardInitService.init();
|
|
11116
11150
|
refreshService.start();
|
|
11117
11151
|
}
|
|
11118
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$3.Actions }, { token: i1.Store }, { token: ManifestService }, { token: ItemService }, { token: PryTitleService }, { token: PryI18nService }, { token: PrySnackbarService }, { token: i3.Router }, { token: RefreshService }, { token: ToolboxManifestService }, { token: BusService }, { token: SearchService }, { token: PryDialogService }, { token: WmsService }, { token: WidgetFactoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DashboardEffects, deps: [{ token: DashboardInitService }, { token: i1$3.Actions }, { token: i1.Store }, { token: ManifestService }, { token: ItemService }, { token: PryTitleService }, { token: PryI18nService }, { token: PrySnackbarService }, { token: i3.Router }, { token: RefreshService }, { token: ToolboxManifestService }, { token: BusService }, { token: SearchService }, { token: PryDialogService }, { token: WmsService }, { token: WidgetFactoryService }, { token: PryI18nService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11119
11153
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DashboardEffects }); }
|
|
11120
11154
|
}
|
|
11121
11155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DashboardEffects, decorators: [{
|
|
11122
11156
|
type: Injectable
|
|
11123
|
-
}], ctorParameters: () => [{ type: DashboardInitService }, { type: i1$3.Actions }, { type: i1.Store }, { type: ManifestService }, { type: ItemService }, { type: PryTitleService }, { type: PryI18nService }, { type: PrySnackbarService }, { type: i3.Router }, { type: RefreshService }, { type: ToolboxManifestService }, { type: BusService }, { type: SearchService }, { type: PryDialogService }, { type: WmsService }, { type: WidgetFactoryService }] });
|
|
11157
|
+
}], ctorParameters: () => [{ type: DashboardInitService }, { type: i1$3.Actions }, { type: i1.Store }, { type: ManifestService }, { type: ItemService }, { type: PryTitleService }, { type: PryI18nService }, { type: PrySnackbarService }, { type: i3.Router }, { type: RefreshService }, { type: ToolboxManifestService }, { type: BusService }, { type: SearchService }, { type: PryDialogService }, { type: WmsService }, { type: WidgetFactoryService }, { type: PryI18nService }] });
|
|
11124
11158
|
|
|
11125
11159
|
const dashboardFeatureKey = '@pry/dashboard';
|
|
11126
11160
|
const dashboardInitialState = {
|