diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 02cf2637..da13d65d 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -42,7 +42,7 @@ import { ArlasStartupService, ArlasWalkthroughService, AuthentificationService, ConfigMenuModule, configUpdaterFactory, CONFIG_UPDATER, FETCH_OPTIONS, getOptionsFactory, iamServiceFactory, PaginatorI18n, UserInfosComponent, - GET_OPTIONS, ArlasToolkitSharedModule, ArlasSettingsService, ArlasConfigService, ArlasCollectionService, + GET_OPTIONS, ArlasToolkitSharedModule, ArlasSettingsService } from 'arlas-wui-toolkit'; import { environment } from 'environments/environment'; import { LoggerModule } from 'ngx-logger'; diff --git a/src/app/components/collection/collection.component.html b/src/app/components/collection/collection.component.html index 5d8a96aa..e82dbb37 100644 --- a/src/app/components/collection/collection.component.html +++ b/src/app/components/collection/collection.component.html @@ -9,15 +9,15 @@

{{'Explore collections' | translate}}

{{'Id path' | translate}} : - {{def.collection.params.id_path }}
+ {{ def.collection.params.id_path }}
{{'Centroid path' | translate}} : - {{def.collection.params.centroid_path }}
-
{{'Geometry path' | translate}} : - {{def.collection.params.geometry_path}}
-
{{'Timestamp path' | translate}} : - {{def.collection.params.timestamp_path}}
-
{{'Index name' | translate}} : - {{def.collection.params.index_name}}
+ {{ def.collection.params.centroid_path }} +
{{'Geometry path' | translate}} : + {{ def.collection.params.geometry_path }}
+
{{'Timestamp path' | translate}} : + {{ def.collection.params.timestamp_path }}
+
{{'Index name' | translate}} : + {{ def.collection.params.index_name }}
{{'Taggable fields' | translate}} : {{def.collection.params.taggable_fields}}
diff --git a/src/app/components/landing-page/landing-page-dialog.component.html b/src/app/components/landing-page/landing-page-dialog.component.html index 3e70cd93..bb974fa0 100644 --- a/src/app/components/landing-page/landing-page-dialog.component.html +++ b/src/app/components/landing-page/landing-page-dialog.component.html @@ -5,21 +5,22 @@

{{'New dashboard' | translate}}

-
+
{{'Server URL' | translate}} - {{'Include public collections' | - translate}} + + {{'Include public collections' | translate}}
diff --git a/src/app/components/landing-page/landing-page-dialog.component.ts b/src/app/components/landing-page/landing-page-dialog.component.ts index 73f8d44f..820155e8 100644 --- a/src/app/components/landing-page/landing-page-dialog.component.ts +++ b/src/app/components/landing-page/landing-page-dialog.component.ts @@ -53,7 +53,6 @@ export class LandingPageDialogComponent implements OnInit, OnDestroy { public displayedColumns: string[] = ['id', 'creation', 'detail']; public includePublicCollection = false; - private subscription: Subscription; private urlSubscription: Subscription; private urlCollectionsSubscription: Subscription; @@ -75,9 +74,7 @@ export class LandingPageDialogComponent implements OnInit, OnDestroy { private router: Router, private menu: MenuService, private landingPageService: LandingPageService - ) { - - } + ) { } public ngOnInit(): void { if (!!this.data.configChoice) { @@ -132,19 +129,20 @@ export class LandingPageDialogComponent implements OnInit, OnDestroy { () => { this.urlCollectionsSubscription = this.collectionService.getCollectionsReferenceDescription().subscribe( cdrs => { - const collectionsItems = cdrs + const collectionsItems: Array = cdrs .filter(c => { - if (this.includePublicCollection) { + // If there is no authentication, then we want all the collections + if (this.includePublicCollection || !this.data?.isAuthentActivated) { return true; } else { - return (c.params.organisations as any).public === false; + return (c.params.organisations as any)?.public === false; } }) .map(c => ({ name: c.collection_name, - isPublic: (c.params.organisations as any).public, - sharedWith: c.params.organisations.shared, - owner: c.params.organisations.owner + isPublic: !this.data.isAuthentActivated ? true : (c.params.organisations as any)?.public === true, + sharedWith: c.params.organisations?.shared, + owner: c.params.organisations?.owner })); this.availablesCollections = this.collectionService.buildGroupCollectionItems(collectionsItems, this.data.currentOrga); this.collectionService.setGroupCollectionItems(this.availablesCollections); diff --git a/src/app/components/landing-page/landing-page.component.ts b/src/app/components/landing-page/landing-page.component.ts index 2e4d399e..8cb0e5c0 100644 --- a/src/app/components/landing-page/landing-page.component.ts +++ b/src/app/components/landing-page/landing-page.component.ts @@ -186,7 +186,8 @@ export class LandingPageComponent implements OnInit, AfterViewInit, OnDestroy { if (configChoice) { this.dialogRef = this.dialog.open(LandingPageDialogComponent, { disableClose: true, data: - { message: this.confId, configChoice, authentMode: this.authentMode, currentOrga: this.currentOrga } + { message: this.confId, configChoice, authentMode: this.authentMode, + currentOrga: this.currentOrga, isAuthentActivated: this.isAuthentActivated } }); } } diff --git a/src/app/modules/analytics-config/analytics-config.module.ts b/src/app/modules/analytics-config/analytics-config.module.ts index c095b778..16e2e720 100644 --- a/src/app/modules/analytics-config/analytics-config.module.ts +++ b/src/app/modules/analytics-config/analytics-config.module.ts @@ -37,7 +37,7 @@ import { EditHistogramLabelComponent } from './components/edit-histogram-label/e import { MetricsTableDataComponent } from './components/metrics-table-data/metrics-table-data.component'; import { AddSubtableDialogComponent } from './components/add-subtable-dialog/add-subtable-dialog.component'; import { MatExpansionModule } from '@angular/material/expansion'; -import { GetCollectionDisplayModule } from 'arlas-web-components'; +import { GetCollectionDisplayModule, GetFieldDisplayModule } from 'arlas-web-components'; @NgModule({ entryComponents: [ @@ -70,7 +70,8 @@ import { GetCollectionDisplayModule } from 'arlas-web-components'; AnalyticsConfigRoutingModule, IconPickerModule, MatExpansionModule, - GetCollectionDisplayModule + GetCollectionDisplayModule, + GetFieldDisplayModule ] }) export class AnalyticsConfigModule { } diff --git a/src/app/modules/analytics-config/components/metrics-table-data/metrics-table-data.component.html b/src/app/modules/analytics-config/components/metrics-table-data/metrics-table-data.component.html index 0d6a3042..f8fd26ea 100644 --- a/src/app/modules/analytics-config/components/metrics-table-data/metrics-table-data.component.html +++ b/src/app/modules/analytics-config/components/metrics-table-data/metrics-table-data.component.html @@ -45,10 +45,10 @@ (click)="setSort(c, c.get('sort').value,subTable.controls.collection.value,subTable.controls.aggregationField.value, c.get('metricCollectFunction').value, c.get('metricCollectField').value )" [matTooltip]="'Not sorted' | translate">sync_alt {{c.get("metricCollectFunction").value}} + *ngIf="!c.get('metricCollectField').value">{{c.get("metricCollectFunction").value | translate}} - {{ 'metric of field' | translate : {metric: c.get("metricCollectFunction").value, field: - c.get("metricCollectField").value} }} + {{ 'metric of field' | translate : {metric: c.get("metricCollectFunction").value | translate, field: + c.get("metricCollectField").value | getFieldDisplayName | translate} }}
diff --git a/src/app/modules/analytics-config/components/tabs/tabs.component.ts b/src/app/modules/analytics-config/components/tabs/tabs.component.ts index 3fead7a7..fc7bfe69 100644 --- a/src/app/modules/analytics-config/components/tabs/tabs.component.ts +++ b/src/app/modules/analytics-config/components/tabs/tabs.component.ts @@ -142,8 +142,8 @@ export class TabsComponent implements OnDestroy { if (otherTabNames.indexOf(newTabName) >= 0) { const dialogRef = this.dialog.open(InputModalComponent, { data: { - title: 'Tab name', - message: 'Another tab already exists with the same name, please choose another one', + title: marker('Tab name'), + message: marker('Another tab already exists with the same name, please choose another one'), initialValue: newTabName, noCancel: true } @@ -179,8 +179,8 @@ export class TabsComponent implements OnDestroy { if (otherTabNames.indexOf(newTabName) >= 0) { const dialogRef = this.dialog.open(InputModalComponent, { data: { - title: 'Tab name', - message: 'Another tab already exists with the same name, please choose another one', + title: marker('Tab name'), + message: marker('Another tab already exists with the same name, please choose another one'), initialValue: newTabName, noCancel: true } diff --git a/src/app/services/collection-service/collection.service.ts b/src/app/services/collection-service/collection.service.ts index 20c47869..df0412ca 100644 --- a/src/app/services/collection-service/collection.service.ts +++ b/src/app/services/collection-service/collection.service.ts @@ -282,7 +282,6 @@ export class CollectionService { ).finally(() => this.spinner.hide())); } - // eslint-disable-next-line max-len public buildGroupCollectionItems(items: CollectionItem[], currentOrg: string): GroupCollectionItem { const groupCollection = items.reduce((acc, item) => { if (!!currentOrg && currentOrg.length > 0) { diff --git a/src/app/services/landing-page/landing-page.service.ts b/src/app/services/landing-page/landing-page.service.ts index c90546c4..f499c026 100644 --- a/src/app/services/landing-page/landing-page.service.ts +++ b/src/app/services/landing-page/landing-page.service.ts @@ -41,6 +41,8 @@ export class LandingPageService implements OnDestroy { public startEventSource: Subject = new Subject(); public startEvent$: Observable = this.startEventSource.asObservable(); + private isAuthentActivated: boolean; + private _onDestroy$ = new Subject(); public constructor( @@ -54,7 +56,9 @@ export class LandingPageService implements OnDestroy { private arlasSettingsService: ArlasSettingsService, private mainFormManager: MainFormManagerService, public mainFormService: MainFormService, - private arlasIamService: ArlasIamService) { + private arlasIamService: ArlasIamService + ) { + this.isAuthentActivated = !!this.arlasSettingsService.getAuthentSettings()?.use_authent === true; } public ngOnDestroy() { @@ -76,9 +80,9 @@ export class LandingPageService implements OnDestroy { const collectionsItems = cdrs .map(c => ({ name: c.collection_name, - isPublic: (c.params.organisations as any).public, - sharedWith: c.params.organisations.shared, - owner: c.params.organisations.owner + isPublic: !this.isAuthentActivated ? true : (c.params.organisations as any)?.public === true, + sharedWith: c.params.organisations?.shared, + owner: c.params.organisations?.owner })); const groupCollectionItems = this.collectionService.buildGroupCollectionItems(collectionsItems, this.arlasIamService.getOrganisation()); this.collectionService.setGroupCollectionItems(groupCollectionItems); diff --git a/src/app/services/main-form-manager/main-form-manager.service.ts b/src/app/services/main-form-manager/main-form-manager.service.ts index fe1aa45e..b7928a6a 100644 --- a/src/app/services/main-form-manager/main-form-manager.service.ts +++ b/src/app/services/main-form-manager/main-form-manager.service.ts @@ -60,6 +60,7 @@ import { Observable, catchError, map, of, tap } from 'rxjs'; import { DataWithLinks } from 'arlas-persistence-api'; import { ResourcesConfigFormGroup } from '@services/resources-form-builder/resources-config-form-builder.service'; import { NgxSpinnerService } from 'ngx-spinner'; +import { marker } from '@biesbjerg/ngx-translate-extract-marker'; @Injectable({ providedIn: 'root' @@ -351,8 +352,8 @@ export class MainFormManagerService { // Open a modal to explain that a dashboard with this name already exists const dialogRef = this.dialog.open(InputModalComponent, { data: { - title: 'Invalid dashboard name', - message: 'Another dashboad already exists with the same name, please choose another one', + title: marker('Invalid dashboard name'), + message: marker('Another dashboad already exists with the same name, please choose another one'), initialValue: this.mainFormService.configurationName, noCancel: true } diff --git a/src/app/shared/components/input-modal/input-modal.component.ts b/src/app/shared/components/input-modal/input-modal.component.ts index ae1475fc..6bcf3aeb 100644 --- a/src/app/shared/components/input-modal/input-modal.component.ts +++ b/src/app/shared/components/input-modal/input-modal.component.ts @@ -26,6 +26,7 @@ export interface DialogData { initialValue?: string; noCancel?: boolean; authentMode?: string; + isAuthentActivated?: string; currentOrga?: string; } diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index fbae4d84..7341524c 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -20,6 +20,7 @@ "New dashboard": "New dashboard", "Server URL": "Server URL", "Show collections": "Show collections", + "Include public collections": "Include public collections", "Main collection": "Main collection", "Choose main collection": "Choose the main collection of the dashboard.", "Back": "Back", @@ -40,10 +41,14 @@ "Editing dashboard": "Editing dashboard", "Rename": "Rename", "Create dashboard": "Create dashboard", + "Column metric": "Column metric", + "Column field": "Column field", + "At least one column is required": "At least one column is required", + "Add a column": "Add a column", + "Cancel": "Cancel", "Choose widget type": "Choose widget type", "Data tables are out of analytics": "Data tables are now to be declared in the dedicated menu (on the left), outside this analytics board", "Add": "Add", - "Cancel": "Cancel", "Title": "Title", "One per line": "One per line", "Two columns": "Two columns", @@ -55,12 +60,9 @@ "Unit": "Unit", "Not sorted": "Not sorted", "Column name": "Column name", - "Column field": "Column field", "Unit of the column": "Unit (optional)", "Transformation": "Apply a calculation in javascript (e.g : result*1000).\n'result' being the javascript variable to transform", "Colorize": "Colorize", - "At least one column is required": "At least one column is required", - "Add a column": "Add a column", "At least one field is required within a detail": "At least one field is required within a detail", "Add a field": "Add a field", "Add a field tooltip": "Add a field of the item to this section", @@ -87,7 +89,15 @@ "Choose of the following widgets": "Choose one of the following widgets", "This Tab doesn't contain an importable widget": "", "Import": "Import", + "Metrics table schema": "Metrics table schema", + "Row field": "Row field", "Columns": "Columns", + "metric of field": "{{metric}} of {{field}}", + "Edit": "Edit", + "Delete": "Delete", + "At least one sub table is required": "At least one sub-table is required", + "Add a sub table description": "Build a sub-table of metrics for one collection. The sub-tables will be merged by ARLAS into a single table.", + "Add a sub table": "Add a sub-table", "Details": "Details", "shortcuts_title": "Filters bar shortcuts", "Configure tab": "Configure tab", @@ -96,14 +106,9 @@ "Create a new tab.": "Create a new tab.", "At least one tab is required": "At least one tab is required", "The widget has invalid inputs. Edit to fix them.": "The widget has invalid inputs. Edit to fix them", - "Edit": "Edit", - "Delete": "Delete", "Custom configuration": "Custom configuration", "External Node schema": "External Node schema", "External Node schema description": "Link to the Json schema that validates the External Node", - "Hide collection": "Hide collection", - "Ignored collections": "Hidden collections", - "Display collection": "Display collection", "default": "default", "Add keyword": "Add keyword", "Keyword": "Keyword", @@ -148,6 +153,12 @@ "Layers": "Layers", "Displayed by default": "Displayed by default", "Add a data table": "Add a data table", + "Search configuration by collection": "Search configuration by collection", + "Delete search configuration": "Delete the search on the collection", + "Add a search configuration": "Add a search on a collection", + "Hide collection": "Hide collection", + "Ignored collections": "Hidden collections", + "Display collection": "Display collection", "The field is mandatory.": "The field is mandatory.", "Search...": "Search...", "No choices available": "No choices available.", @@ -170,6 +181,7 @@ "Insert field": "Insert field", "Insert field tooltip": "Click here to insert a field value.", "Insert": "Insert", + "Process error message": "Only mathematical operations + operations on dates and strings are allowed. Also your JS code should contain 250 chars or less.", " should be an integer value": " should be an integer value", " is not valid": " is not valid", "Next": "Next", @@ -184,6 +196,7 @@ "Could not load config files ": "Could not load config files ", "Ready to access server": "Ready to access server", "Do you really want to exit without saving?": "Do you really want to exit without saving?", + "Edit sub table": "Edit sub-table", "Do you really want to delete the widget?": "Do you really want to delete the widget?", "y-Axis": "y-Axis", "Managed by ARLAS": "Managed by ARLAS", @@ -194,6 +207,7 @@ "Details title description": "Details title. \n You can use templating with the '{}' characters, by putting a field name in it. \n Press the 'Insert field' button and find all the fields in the data collection that you can insert. \n For example: Title of {id}", "Tab name": "Tab name", "Do you really want to delete this tab?": "Do you really want to delete this tab?", + "Another tab already exists with the same name, please choose another one": "Another tab already exists with the same name, please choose another one", "By bucket": "", "By interval": "", "maximum number of bucket is": "\n ⚠ The maximum number of buckets is:", @@ -255,6 +269,25 @@ "Before value description": "Explanatory text preceding the metric (ex: Number of objects)", "After value": "Unit", "After value description": "Text succeeding the metric value, often a unit", + "metricstable title": "Title", + "metricstable title description": "Title of the widget", + "metricstable number of bucket": "Maximum number of rows per column", + "metricstable number of bucket description": "The maximum number of table rows can be equal to this value times the number of total columns.", + "normalize by column": "Normalize by column", + "normalize globally": "Normalize globally", + "metric normalize on description": "Normalize globally or by column the size of the bars", + "operator metrics table": "Enable include/exclude", + "operator metrics table description": "Display the filter operator switcher between include/exclude", + "checkbox metrics table": "Display box to select a row", + "checkbox metrics table description": "Hide or display a box a the beginin of the row to select it", + "showRowField metrics table": "Show row field", + "showRowField metrics table description": "For each sub-table, show the name of the field used to retrieve the row values", + "Display collection name": "Display collection name", + "Display collection chip": "Display collection chip", + "Display both": "Display both", + "metric headerDisplayMode on description": "What to display as header of a column in the table", + "Subtable collection description": "Choose a collection for this sub-table", + "Row field description": "Rows will correspond to the value of the selected field", "powerbar title": "Powerbar title", "powerbar title description": "", "Powerbar collection description": "Choose the data collection for this powerbars", @@ -345,6 +378,10 @@ "Is zero representative description": "Defines whether the zero value is to be represented or considered as an absence of data", "swimlane x-axis": "Setting histogram of each line", "swimlane metric": "", + "collection unit": "Unit", + "Unit desc": "", + "collection": "", + "collection desc": "", "Drag and drop": "Drag and drop", "Drag and drop description": "Allows widgets to be moved by dragging them", "Look and feel": "Look and feel", @@ -500,12 +537,11 @@ "Displayed": "Displayed by default", "When loading the map, this visualisation sets is displayed/not displayed.": "When the map is loaded, the layers put in this Visualisation set will be displayed/hidden", "Do you really want to delete this list?": "Do you really want to delete this list?", - "Placeholder": "Placeholder", - "Placeholder descritpion": "Text displayed in search bar as a placeholder", "Search field": "Search field", - "Search field description": "Field used for the search bar", "Autocomplete field": "Autocomplete field", - "Autocomplete field description": "Field used to autocomplete your searched words", + "Placeholder": "Placeholder", + "Placeholder descritpion": "Text displayed in search bar as a placeholder", + "Search": "Search", "Autocomplete size": "Autocomplete size", "Autocomplete size description": "Number of proposed terms by the autocompletion", "maxAgeCache": "ARLAS server cache age", @@ -540,8 +576,9 @@ "Error : Dashboard not updated": "Error : Dashboard not updated", "Dashboard saved !": "Dashboard saved !", "Error : Dashboard not saved": "Error : Dashboard not saved", + "Invalid dashboard name": "Invalid dashboard name", + "Another dashboad already exists with the same name, please choose another one": "Another dashboad already exists with the same name, please choose another one", "Map": "Map", - "Search": "Search", "Analytics": "Analytics", "Data table": "Data table", "Side modules": "Side modules", @@ -585,6 +622,8 @@ "A Palette": "A Palette", "Manage palette": "Manage palette", "End": "", + "Search field description": "Field used for the search bar", + "Autocomplete field description": "Field used to autocomplete your searched words", "Managed by Arlas": "Managed by Arlas", "Zoom to data": "Zoom to data", "Zoom to data description": "Displays a button to adjust the zoom level of the map to the available data extent", @@ -807,9 +846,6 @@ "Interpolated strokeColor description": "Stroke colors are linearaly interpolated with the Hits count or a field's metric values", "Interpolated strokeWidth description": "Stroke width values are linearaly interpolated with the Hits count or a field's metric values", "Interpolated strokeOpacity description": "Stroke opacity values are linearaly interpolated with the Hits count or a field's metric values", - "Invalid dashboard name": "Invalid dashboard name", - "Another dashboad already exists with the same name, please choose another one": "Another dashboad already exists with the same name, please choose another one", - "collection unit": "unit", "include": "Include", "exclude": "Exclude", "Interpolated labelSize description": " • Labels sizes are linearaly interpolated with the Hits count or a field's metric values.", @@ -863,41 +899,14 @@ "Cannot save the preview": "Cannot save the preview", "Pin widget": "Add to filters bar", "Unpin widget": "Remove from filters bar", - "Column metric": "Column metric", - "At least one sub table is required": "At least one sub-table is required", - "Add a sub table description": "Build a sub-table of metrics for one collection. The sub-tables will be merged by ARLAS into a single table.", - "Add a sub table": "Add a sub-table", - "metricstable title": "Title", - "metricstable title description": "Title of the widget", - "metricstable number of bucket": "Maximum number of rows per column", - "metricstable number of bucket description": "The maximum number of table rows can be equal to this value times the number of total columns.", - "normalize by column": "Normalize by column", - "normalize globally": "Normalize globally", - "metric normalize on description": "Normalize globally or by column the size of the bars", - "operator metrics table": "Enable include/exclude", - "operator metrics table description": "Display the filter operator switcher between include/exclude", - "Display collection name": "Display collection name", - "Display collection chip": "Display collection chip", - "Display both": "Display both", - "Subtable collection description": "Choose a collection for this sub-table", - "Row field description": "Rows will correspond to the value of the selected field", "Row field ": "Row field", - "metric headerDisplayMode on description":"What to display as header of a column in the table", - "checkbox metrics table":"Display box to select a row", - "checkbox metrics table description":"Hide or display a box a the beginin of the row to select it", - "'Metrics table schema":"'Metrics table schema", - "showRowField metrics table": "Show row field", - "showRowField metrics table description": "For each sub-table, show the name of the field used to retrieve the row values", - "Edit sub table":"Edit sub-table", + "'Metrics table schema": "'Metrics table schema", "none": "None", "centroid": "Centroid", "geometry": "Geometry", "Symbol": "Label", - "Process error message":"Only mathematical operations + operations on dates and strings are allowed. Also your JS code should contain 250 chars or less.", - "Include public collections":"Include public collections", "OWNER_GROUP_TITLE": "Collections of {{org}}", "SHARED_GROUP_TITLE": "Collections shared with {{org}}", "PUBLIC_GROUP_TITLE": "Public collections", "COLLECTIONS_GROUP_TITLE": "Collections" - -} +} \ No newline at end of file diff --git a/src/assets/i18n/fr.json b/src/assets/i18n/fr.json index 6cbf5716..1bbd2531 100644 --- a/src/assets/i18n/fr.json +++ b/src/assets/i18n/fr.json @@ -20,6 +20,7 @@ "New dashboard": "Nouveau dashboard", "Server URL": "Adresse du serveur", "Show collections": "Choix des collections", + "Include public collections": "Inclure les collections publics", "Main collection": "Collection principale", "Choose main collection": "Choisir la collection de données principale du dashboard.", "Back": "Retour", @@ -40,10 +41,14 @@ "Editing dashboard": "Edition du dashboard", "Rename": "Renommer", "Create dashboard": "Création d'un dashboard", + "Column metric": "Métrique de la colonne", + "Column field": "Champ de la colonne", + "At least one column is required": "Au moins une colonne est nécessaire", + "Add a column": "Ajouter une colonne", + "Cancel": "Annuler", "Choose widget type": "Choix du type de widget", "Data tables are out of analytics": "Les tableaux de données doivent maintenant être déclarés dans le menu dédié (à gauche), en dehors de ce tableau de bord.", "Add": "Ajouter", - "Cancel": "Annuler", "Title": "Titre", "One per line": "Un par ligne", "Two columns": "Deux colonnes", @@ -55,12 +60,9 @@ "Unit": "Unités", "Not sorted": "Pas de tri", "Column name": "Nom de la colonne", - "Column field": "Champ de la colonne", "Unit of the column": "Unité (optionnel)", "Transformation": "Calcul en javascript ( ex: result*1000).\n'result' étant la variable javascript à transformer", "Colorize": "Colorer", - "At least one column is required": "Au moins une colonne est nécessaire", - "Add a column": "Ajouter une colonne", "At least one field is required within a detail": "Au moins un champ est nécessaire au sein d'un detail?", "Add a field": "Ajouter un champ", "Add a field tooltip": "Ajouter un champ de l'item à la section", @@ -87,7 +89,15 @@ "Choose of the following widgets": "Choisissez un des widgets", "This Tab doesn't contain an importable widget": "", "Import": "Importer", + "Metrics table schema": "Schéma d'un tableau de métriques", + "Row field": "Champ pour les lignes", "Columns": "Colonnes", + "metric of field": "{{metric}} de {{field}}", + "Edit": "Modifier", + "Delete": "Supprimer", + "At least one sub table is required": "Au moins un sous-tableau est nécessaire", + "Add a sub table description": "Créez un sous-tableau de métriques pour une collection. Les sous-tableaux seront fusionnés par ARLAS en un seul tableau.", + "Add a sub table": "Ajouter un sous-tableau", "Details": "Détails", "shortcuts_title": "Barre des filtres", "Configure tab": "Configurer l'onglet", @@ -96,14 +106,9 @@ "Create a new tab.": "Créer un nouvel onglet.", "At least one tab is required": "Au moins un onglet est nécessaire", "The widget has invalid inputs. Edit to fix them.": "Quelques éléments du widget sont invalides. Editer pour les corriger.", - "Edit": "Modifier", - "Delete": "Supprimer", "Custom configuration": "Configuration personnalisée", "External Node schema": "Schéma du Nœud Externe", "External Node schema description": "Lien vers le schéma json qui valide le Nœud Externe", - "Hide collection": "Masquer la collection", - "Ignored collections": "Collections masquées", - "Display collection": "Afficher la collection", "default": "défaut", "Add keyword": "Ajouter une entrée", "Keyword": "Valeur", @@ -148,6 +153,12 @@ "Layers": "Couches de données", "Displayed by default": "Affiché par défaut", "Add a data table": "Ajouter un tableau de données", + "Search configuration by collection": "Configuration de la recherche par collection", + "Delete search configuration": "Supprimer la recherche sur la collection", + "Add a search configuration": "Ajouter une collection pour la recherche", + "Hide collection": "Masquer la collection", + "Ignored collections": "Collections masquées", + "Display collection": "Afficher la collection", "The field is mandatory.": "Le champ est obligatoire", "Search...": "Rechercher...", "No choices available": "Pas de choix disponibles.", @@ -170,13 +181,13 @@ "Insert field": "Insérer un champ", "Insert field tooltip": "Cliquez ici pour insérer la valeur d'un champ dans le texte.", "Insert": "Insérer", + "Process error message": "Seules les opérations mathématiques et les opérations sur les dates et les chaînes de caractères sont autorisées. De plus, votre code JS ne doit pas dépasser 250 caractères.", " should be an integer value": " devrait être un entier", " is not valid": " n'est pas valide", "Next": "Suivant", "Are you sure?": "Êtes vous sûr(e)?", "Yes": "Oui", "x-Axis": "", - "Preferred N° of buckets": "Nombre de cases de préférence", "Preferred bucket's interval": "Taille des cases de préférence", "Dashboard name": "Nom du dashboard", @@ -185,6 +196,7 @@ "Could not load config files ": "Impossible de charger les fichiers de configuration", "Ready to access server": "Prêt à acceder au server", "Do you really want to exit without saving?": "Voulez-vous vraiment fermer sans sauvegarder ?", + "Edit sub table": "Edition du sous-tableau", "Do you really want to delete the widget?": "Voulez-vous vraiment supprimer ce widget ?", "y-Axis": "", "Managed by ARLAS": "Managé par ARLAS", @@ -195,6 +207,7 @@ "Details title description": "Titre des détails. \n Vous pouvez utiliser du templating à l'aide des caractères '{}', en y mettant un nom de champs. \n Appuyer sur le bouton 'Insérer un champ' et retrouvez tous les champs de la collection de donnée que vous pouvez insérer. \n Par exemple : Titre de {id}", "Tab name": "Nom de l'onglet", "Do you really want to delete this tab?": "Voulez-vous vraiment supprimer cet onglet ?", + "Another tab already exists with the same name, please choose another one": "Un autre onglet avec le même nom existe déjà. Choisissez-en un autre.", "By bucket": "", "By interval": "", "maximum number of bucket is": "\n ⚠ Le nomrbre de case maximum est :", @@ -256,6 +269,25 @@ "Before value description": "Texte explicatif précédent la métrique (ex: Nombre d'objets)", "After value": "Unité", "After value description": "Texte succédant à la métrique, souvent l'unité", + "metricstable title": "Titre", + "metricstable title description": "Titre du composant", + "metricstable number of bucket": "Nombre max de ligne par colonne", + "metricstable number of bucket description": "Le nombre maximum de lignes du tableau peut être égal à cette valeur multipliée par le nombre total de colonnes.", + "normalize by column": "Normaliser par colonne", + "normalize globally": "Normaliser globalement", + "metric normalize on description": "Normaliser globalement ou par colonne la taille des barres dans chaque cellule", + "operator metrics table": "Autoriser inclure/exclure", + "operator metrics table description": "Afficher l'option pour basculer d'un mode de filtrage exclusion/inclusion", + "checkbox metrics table": "Selectionneur de ligne", + "checkbox metrics table description": "Masquer ou afficher une case au début de la ligne pour la sélectionner", + "showRowField metrics table": "Afficher le champ ligne", + "showRowField metrics table description": "Pour chaque sous tableau, afficher dans le header le nom du champs qui a servi à retrouver les valeurs de clé chaque ligne pour la colonne", + "Display collection name": "Afficher le nom de la collection", + "Display collection chip": "Afficher la pastille avec la couleur de la colleciton", + "Display both": "Afficher les deux", + "metric headerDisplayMode on description": "Ce que l'on afficher en entête de colonne", + "Subtable collection description": "Choisir une collection pour ce sous-tableau", + "Row field description": "Les lignes correspondront aux valeurs de ce champ", "powerbar title": "Titre de la powerbar", "powerbar title description": "", "Powerbar collection description": "Choisir la collection de données pour cette powerbars", @@ -346,6 +378,10 @@ "Is zero representative description": "Définit si la valeur zéro doit être représentée ou considérée comme une absence de données", "swimlane x-axis": "Réglage de l'histogramme de chaque ligne", "swimlane metric": "", + "collection unit": "Unité", + "Unit desc": "", + "collection": "", + "collection desc": "", "Drag and drop": "Drag & drop", "Drag and drop description": "Autorise le déplacement des widgets en les faisant glisser", "Look and feel": "Options générales", @@ -501,12 +537,11 @@ "Displayed": "Affiché par défaut", "When loading the map, this visualisation sets is displayed/not displayed.": "Au chargement de la carte, les couches cartographiques placées dans cet espace seront affichées/masquées", "Do you really want to delete this list?": "Voulez-vous vraiment supprimer cette liste ?", - "Placeholder": "Texte affiché", - "Placeholder descritpion": "Texte à afficher dans la barre de recherche", "Search field": "Champ de recherche", - "Search field description": "Champ utilisé par la barre de recherche", "Autocomplete field": "Champ de l'autocompletion", - "Autocomplete field description": "Champ utilisé pour réaliser l'autocompletion dans la barre de recherche", + "Placeholder": "Texte affiché", + "Placeholder descritpion": "Texte à afficher dans la barre de recherche", + "Search": "Recherche", "Autocomplete size": "Taille de l'autocompletion", "Autocomplete size description": "Nombre maximal d'éléments proposés par l'autocompletion", "maxAgeCache": "Durée de cache ARLAS server", @@ -541,8 +576,9 @@ "Error : Dashboard not updated": "Erreur: Dashboard non mis à jour", "Dashboard saved !": "Dashboard sauvegardé", "Error : Dashboard not saved": "Erreur: Dashboard non sauvegardé", + "Invalid dashboard name": "Nom de dashboard invalide", + "Another dashboad already exists with the same name, please choose another one": "Un autre dashboad existe déjà avec ce même nom, veuillez en choisir un autre.", "Map": "Carte", - "Search": "Recherche", "Analytics": "Widgets", "Data table": "Tableau de données", "Side modules": "Autres", @@ -586,6 +622,8 @@ "A Palette": "Palette de couleur", "Manage palette": "Gérer la palette de couleur", "End": "", + "Search field description": "Champ utilisé par la barre de recherche", + "Autocomplete field description": "Champ utilisé pour réaliser l'autocompletion dans la barre de recherche", "Managed by Arlas": "Managé par Arlas", "Zoom to data": "Zoom automatique", "Zoom to data description": "Affiche un bouton permettant d'ajuster le niveau de zoom de la carte à l'étendue des données disponibles", @@ -809,9 +847,6 @@ "Fixed strokeWidth": "Epaisseur du contour (px)", "Fixed strokeOpacity": "Opacité du contour", "Fixed strokeColor": "Couleur du contour", - "Invalid dashboard name": "Nom de dashboard invalide", - "Another dashboad already exists with the same name, please choose another one": "Un autre dashboad existe déjà avec ce même nom, veuillez en choisir un autre.", - "collection unit": "unité", "include": "Inclure", "exclude": "Exclure", "Interpolated labelSize description": " • La taille des labels est linéairement interpolée avec le nombre d'éléments/la métrique d'un champ.", @@ -865,40 +900,12 @@ "Cannot save the preview": "Impossible de sauvegarder l'aperçu", "Pin widget": "Ajouter à la barre des filtres", "Unpin widget": "Retirer de la barre des filtres", - "Column metric": "Métrique de la colonne", - "At least one sub table is required": "Au moins un sous-tableau est nécessaire", - "Add a sub table description": "Créez un sous-tableau de métriques pour une collection. Les sous-tableaux seront fusionnés par ARLAS en un seul tableau.", - "Add a sub table": "Ajouter un sous-tableau", - "metricstable title": "Titre", - "metricstable title description": "Titre du composant", - "metricstable number of bucket": "Nombre max de ligne par colonne", - "metricstable number of bucket description": "Le nombre maximum de lignes du tableau peut être égal à cette valeur multipliée par le nombre total de colonnes.", - "normalize by column": "Normaliser par colonne", - "normalize globally": "Normaliser globalement", - "metric normalize on description": "Normaliser globalement ou par colonne la taille des barres dans chaque cellule", - "operator metrics table": "Autoriser inclure/exclure", - "operator metrics table description": "Afficher l'option pour basculer d'un mode de filtrage exclusion/inclusion", - "Display collection name": "Afficher le nom de la collection", - "Display collection chip": "Afficher la pastille avec la couleur de la colleciton", - "Display both": "Afficher les deux", - "Subtable collection description": "Choisir une collection pour ce sous-tableau", - "Row field description": "Les lignes correspondront aux valeurs de ce champ", - "Row field ": "Champ pour les lignes", - "metric headerDisplayMode on description":"Ce que l'on afficher en entête de colonne", - "checkbox metrics table":"Selectionneur de ligne", - "checkbox metrics table description":"Masquer ou afficher une case au début de la ligne pour la sélectionner", - "'Metrics table schema":"Schéma d'un tableau de métriques", - "showRowField metrics table": "Afficher le champ ligne", - "showRowField metrics table description": "Pour chaque sous tableau, afficher dans le header le nom du champs qui a servi à retrouver les valeurs de clé chaque ligne pour la colonne", - "Edit sub table":"Edition du sous-tableau", "none": "Aucune", "centroid": "Centroïde", "geometry": "Géométrie", "Symbol": "Label", - "Process error message":"Seules les opérations mathématiques et les opérations sur les dates et les chaînes de caractères sont autorisées. De plus, votre code JS ne doit pas dépasser 250 caractères.", - "Include public collections":"Inclure les collections publics", "OWNER_GROUP_TITLE": "Collections appartenant à {{org}}", "SHARED_GROUP_TITLE": "Collections partagées avec {{org}}", "PUBLIC_GROUP_TITLE": "Collections publiques", "COLLECTIONS_GROUP_TITLE": "Collections" -} +} \ No newline at end of file diff --git a/src/assets/i18n/template.json b/src/assets/i18n/template.json index 0ac95327..97e4106f 100644 --- a/src/assets/i18n/template.json +++ b/src/assets/i18n/template.json @@ -20,6 +20,7 @@ "New dashboard": "New dashboard", "Server URL": "Server URL", "Show collections": "Show collections", + "Include public collections": "Include public collections", "Main collection": "Main collection", "Choose main collection": "Choose main collection", "Back": "Back", @@ -40,10 +41,14 @@ "Editing dashboard": "Editing dashboard", "Rename": "Rename", "Create dashboard": "Create dashboard", + "Column metric": "Column metric", + "Column field": "Column field", + "At least one column is required": "At least one column is required", + "Add a column": "Add a column", + "Cancel": "Cancel", "Choose widget type": "Choose widget type", "Data tables are out of analytics": "Data tables are out of analytics", "Add": "Add", - "Cancel": "Cancel", "Title": "Title", "One per line": "One per line", "Two columns": "Two columns", @@ -55,12 +60,9 @@ "Unit": "Unit", "Not sorted": "Not sorted", "Column name": "Column name", - "Column field": "Column field", "Unit of the column": "Unit of the column", "Transformation": "Transformation", "Colorize": "Colorize", - "At least one column is required": "At least one column is required", - "Add a column": "Add a column", "At least one field is required within a detail": "At least one field is required within a detail", "Add a field": "Add a field", "Add a field tooltip": "Add a field tooltip", @@ -87,7 +89,15 @@ "Choose of the following widgets": "Choose of the following widgets", "This Tab doesn't contain an importable widget": "This Tab doesn't contain an importable widget", "Import": "Import", + "Metrics table schema": "Metrics table schema", + "Row field": "Row field", "Columns": "Columns", + "metric of field": "metric of field", + "Edit": "Edit", + "Delete": "Delete", + "At least one sub table is required": "At least one sub table is required", + "Add a sub table description": "Add a sub table description", + "Add a sub table": "Add a sub table", "Details": "Details", "shortcuts_title": "shortcuts_title", "Configure tab": "Configure tab", @@ -96,14 +106,9 @@ "Create a new tab.": "Create a new tab.", "At least one tab is required": "At least one tab is required", "The widget has invalid inputs. Edit to fix them.": "The widget has invalid inputs. Edit to fix them.", - "Edit": "Edit", - "Delete": "Delete", "Custom configuration": "Custom configuration", "External Node schema": "External Node schema", "External Node schema description": "External Node schema description", - "Hide collection": "Hide collection", - "Ignored collections": "Ignored collections", - "Display collection": "Display collection", "default": "default", "Add keyword": "Add keyword", "Keyword": "Keyword", @@ -148,6 +153,12 @@ "Layers": "Layers", "Displayed by default": "Displayed by default", "Add a data table": "Add a data table", + "Search configuration by collection": "Search configuration by collection", + "Delete search configuration": "Delete search configuration", + "Add a search configuration": "Add a search configuration", + "Hide collection": "Hide collection", + "Ignored collections": "Ignored collections", + "Display collection": "Display collection", "The field is mandatory.": "The field is mandatory.", "Search...": "Search...", "No choices available": "No choices available", @@ -170,6 +181,7 @@ "Insert field": "Insert field", "Insert field tooltip": "Insert field tooltip", "Insert": "Insert", + "Process error message": "Process error message", " should be an integer value": " should be an integer value", " is not valid": " is not valid", "Next": "Next", @@ -184,6 +196,7 @@ "Could not load config files ": "Could not load config files ", "Ready to access server": "Ready to access server", "Do you really want to exit without saving?": "Do you really want to exit without saving?", + "Edit sub table": "Edit sub table", "Do you really want to delete the widget?": "Do you really want to delete the widget?", "y-Axis": "y-Axis", "Managed by ARLAS": "Managed by ARLAS", @@ -194,6 +207,7 @@ "Details title description": "Details title description", "Tab name": "Tab name", "Do you really want to delete this tab?": "Do you really want to delete this tab?", + "Another tab already exists with the same name, please choose another one": "Another tab already exists with the same name, please choose another one", "By bucket": "By bucket", "By interval": "By interval", "maximum number of bucket is": "maximum number of bucket is", @@ -255,6 +269,25 @@ "Before value description": "Before value description", "After value": "After value", "After value description": "After value description", + "metricstable title": "metricstable title", + "metricstable title description": "metricstable title description", + "metricstable number of bucket": "metricstable number of bucket", + "metricstable number of bucket description": "metricstable number of bucket description", + "normalize by column": "normalize by column", + "normalize globally": "normalize globally", + "metric normalize on description": "metric normalize on description", + "operator metrics table": "operator metrics table", + "operator metrics table description": "operator metrics table description", + "checkbox metrics table": "checkbox metrics table", + "checkbox metrics table description": "checkbox metrics table description", + "showRowField metrics table": "showRowField metrics table", + "showRowField metrics table description": "showRowField metrics table description", + "Display collection name": "Display collection name", + "Display collection chip": "Display collection chip", + "Display both": "Display both", + "metric headerDisplayMode on description": "metric headerDisplayMode on description", + "Subtable collection description": "Subtable collection description", + "Row field description": "Row field description", "powerbar title": "powerbar title", "powerbar title description": "powerbar title description", "Powerbar collection description": "Powerbar collection description", @@ -345,11 +378,15 @@ "Is zero representative description": "Is zero representative description", "swimlane x-axis": "swimlane x-axis", "swimlane metric": "swimlane metric", + "collection unit": "collection unit", + "Unit desc": "Unit desc", + "collection": "collection", + "collection desc": "collection desc", "Drag and drop": "Drag and drop", "Drag and drop description": "Drag and drop description", "Look and feel": "Look and feel", - "Zoom to data": "Zoom to data", - "Zoom to data description": "Zoom to data description", + "Zoom to data strategy": "Zoom to data strategy", + "Zoom to data strategy description": "Zoom to data strategy description", "Display indicators": "Display indicators", "Display indicators description": "Display indicators description", "Display spinners": "Display spinners", @@ -500,12 +537,11 @@ "Displayed": "Displayed", "When loading the map, this visualisation sets is displayed/not displayed.": "When loading the map, this visualisation sets is displayed/not displayed.", "Do you really want to delete this list?": "Do you really want to delete this list?", - "Placeholder": "Placeholder", - "Placeholder descritpion": "Placeholder descritpion", "Search field": "Search field", - "Search field description": "Search field description", "Autocomplete field": "Autocomplete field", - "Autocomplete field description": "Autocomplete field description", + "Placeholder": "Placeholder", + "Placeholder descritpion": "Placeholder descritpion", + "Search": "Search", "Autocomplete size": "Autocomplete size", "Autocomplete size description": "Autocomplete size description", "maxAgeCache": "maxAgeCache", @@ -540,8 +576,9 @@ "Error : Dashboard not updated": "Error : Dashboard not updated", "Dashboard saved !": "Dashboard saved !", "Error : Dashboard not saved": "Error : Dashboard not saved", + "Invalid dashboard name": "Invalid dashboard name", + "Another dashboad already exists with the same name, please choose another one": "Another dashboad already exists with the same name, please choose another one", "Map": "Map", - "Search": "Search", "Analytics": "Analytics", "Data table": "Data table", "Side modules": "Side modules", @@ -585,4 +622,4 @@ "A Palette": "A Palette", "Manage palette": "Manage palette", "End": "End" -} +} \ No newline at end of file