0) { this.hasParams = true; - // We need to make an initial request to get the aggregations and subaggregations - this._datasetResearchService.getResults().subscribe(() => { - // Create the ESOptions - const options = this._researchUrlService.getOptionsFromParameters(params); - this._datasetResearchService.elasticSearchOptions.setElasticsearchOptions(options); - // Force to recalculate the aggregate counts - this._datasetResearchService.shouldAggregateResultCount = true; - // Set the aggregations - const aggParameters = this._researchUrlService.aggParameters; - - Object.keys(aggParameters).forEach((key) => { - const aggField = `metadata-fr.${key}`; - const oneAgg = aggParameters[key]; - - oneAgg.forEach((troncatedKey: string) => { - let newAggField = aggField; - let aggKey = ''; - - // Find out if it's an aggregation or subaggregation - const filters = this._datasetResearchService.elasticSearchOptions.filters; - let parentAgg = ''; - - filters.forEach((filter) => { - if (filter.field === aggField) { - // No need this rule. In this case we control the parameters, and we want a loose - // comparison to handle the filter with a 'Date' type (where the key aggregation is a number). - // tslint:disable-next-line: triple-equals - const aggregation = filter.aggregations.find(el => el.troncatedKey == troncatedKey); - if (aggregation) { - aggKey = aggregation.key; - } - } - if (filter.subField === aggField) { - // We need to find the parent aggregation - filter.aggregations.forEach((aggregation) => { - if (aggregation.subAggregations.length > 0) { - const index = aggregation.subAggregations.findIndex(el => el.troncatedKey === troncatedKey); - - const subAggregation = aggregation.subAggregations[index]; - - if (subAggregation) { - aggKey = subAggregation.key; - parentAgg = subAggregation.parentAggregation.key; - newAggField = subAggregation.parentAggregation.field; - } - } - }); - } - }); - this._datasetResearchService.updateAggregation(newAggField, aggKey, true, parentAgg, false); - }); - }); - this._datasetResearchService.triggerSearchChange(); - }); + this.urlSearch(params); } else { //reset filters recorded when there are not get parameters @@ -157,6 +104,64 @@ export class ResultsComponent implements OnInit, OnDestroy { } } + urlSearch(params) { + this._datasetResearchService.resetActiveAggregations(); + this._datasetResearchService.getResults().subscribe(() => { + + // Create the ESOptions + const options = this._researchUrlService.getOptionsFromParameters(params); + this._datasetResearchService.elasticSearchOptions.setElasticsearchOptions(options); + // Force to recalculate the aggregate counts + this._datasetResearchService.shouldAggregateResultCount = true; + // Set the aggregations + const aggParameters = this._researchUrlService.aggParameters; + + Object.keys(aggParameters).forEach((key) => { + const aggField = `metadata-fr.${key}`; + const oneAgg = aggParameters[key]; + + oneAgg.forEach((troncatedKey: string) => { + let newAggField = aggField; + let aggKey = ''; + + // Find out if it's an aggregation or subaggregation + const filters = this._datasetResearchService.elasticSearchOptions.filters; + let parentAgg = ''; + + filters.forEach((filter) => { + if (filter.field === aggField) { + // No need this rule. In this case we control the parameters, and we want a loose + // comparison to handle the filter with a 'Date' type (where the key aggregation is a number). + // tslint:disable-next-line: triple-equals + const aggregation = filter.aggregations.find(el => el.troncatedKey == troncatedKey); + if (aggregation) { + aggKey = aggregation.key; + } + } + if (filter.subField === aggField) { + // We need to find the parent aggregation + filter.aggregations.forEach((aggregation) => { + if (aggregation.subAggregations.length > 0) { + const index = aggregation.subAggregations.findIndex(el => el.troncatedKey === troncatedKey); + + const subAggregation = aggregation.subAggregations[index]; + + if (subAggregation) { + aggKey = subAggregation.key; + parentAgg = subAggregation.parentAggregation.key; + newAggField = subAggregation.parentAggregation.field; + } + } + }); + } + }); + this._datasetResearchService.updateAggregation(newAggField, aggKey, true, parentAgg, false); + }); + }); + this._datasetResearchService.triggerSearchChange(); + }); + } + ngOnDestroy() { this.searchChangeSub.unsubscribe(); // Reset the url parameters diff --git a/src/app/datasets/services/dataset-research.service.ts b/src/app/datasets/services/dataset-research.service.ts index 1308666b27a2327b2a499f75f57cc21901118296..02ffccd6c447ce60ae777b0d9dea69e6e775644c 100644 --- a/src/app/datasets/services/dataset-research.service.ts +++ b/src/app/datasets/services/dataset-research.service.ts @@ -41,6 +41,7 @@ export class DatasetResearchService { this._resultsCount = []; } + /** * Get results from elasticsearch (can be Datasets or Articles). * Options: filter by query string and pagination @@ -49,43 +50,6 @@ export class DatasetResearchService { this._pendingRequests += 1; return this._elasticsearchService.getAllEntities(this._elasticsearchOptions).pipe( map((e) => { - // Set results count - if (this._elasticsearchOptions.shouldAggregateResultCount) { - this._resultsCount = []; - const countScopes = e.aggregations['count_by_scope'].buckets; - let countDatasets = 0; - countScopes.forEach((bucket) => { - if (scopesResearch.datasets.elasticType.includes(bucket.key)) { - countDatasets += bucket.count.value; - } else { - this._resultsCount.push({ - scopeKey: bucket.key, - count: bucket.count.value, - }); - } - }); - - // Datasets scope (datasets + non geographic datasets + series) - this._resultsCount.push({ - scopeKey: scopesResearch.datasets.key, - count: countDatasets, - }); - - // All scope - const countAll = this._resultsCount.reduce((acc, obj) => { - const count = obj.scopeKey !== (scopesResearch.page.key&&scopesResearch.post.key) ? acc + obj.count : 0; - return count; - // tslint:disable-next-line:align - }, 0); - this._resultsCount.push({ - scopeKey: scopesResearch.all.key, - count: countAll, - }); - } - - // Matomo tracking - this.angulartics2Piwik.eventTrack('trackSiteSearch', { keyword: this.searchString }); - if (this._elasticsearchOptions.shouldAggregateFilters) { // Get the aggregations that will be used to display the filters let aggregations = (e.hits.hits) ? e.aggregations : []; @@ -161,13 +125,6 @@ export class DatasetResearchService { } }); } - this._elasticsearchOptions.shouldAggregateFilters = true; - this._elasticsearchOptions.shouldAggregateResultCount = false; - this._elasticsearchOptions.fromAutocompletion = false; - // Notify that data have been reloaded - this._datasetsReloadedSubject.next(); - - this._pendingRequests -= 1; const results: any = []; @@ -217,6 +174,49 @@ export class DatasetResearchService { }); + + // Set results count + this._resultsCount = []; + const countScopes = e.aggregations['count_by_scope'].buckets; + let countDatasets = 0; + countScopes.forEach((bucket) => { + if (scopesResearch.datasets.elasticType.includes(bucket.key)) { + countDatasets += bucket.count.value; + } else { + this._resultsCount.push({ + scopeKey: bucket.key, + count: bucket.count.value, + }); + } + }); + + // Datasets scope (datasets + non geographic datasets + series) + this._resultsCount.push({ + scopeKey: scopesResearch.datasets.key, + count: countDatasets, + }); + + // All scope + const countAll = this._resultsCount.reduce((acc, obj) => { + const count = scopesResearch.all.elasticType.includes(obj.scopeKey) ? acc + obj.count : acc; + return count; + }, 0); + this._resultsCount.push({ + scopeKey: scopesResearch.all.key, + count: countAll, + }); + + // Matomo tracking + this.angulartics2Piwik.eventTrack('trackSiteSearch', { keyword: this.searchString }); + + this._elasticsearchOptions.shouldAggregateFilters = true; + this._elasticsearchOptions.shouldAggregateResultCount = false; + this._elasticsearchOptions.fromAutocompletion = false; + // Notify that data have been reloaded + this._datasetsReloadedSubject.next(); + + this._pendingRequests -= 1; + return results; }), catchError( @@ -239,6 +239,7 @@ export class DatasetResearchService { for (let i = aggregations[property]['buckets'].length - 1; i >= 0; i = i - 1) { const bucket = aggregations[property]['buckets'][i]; + if (!this._elasticsearchOptions.knownLicences.includes(bucket.key)) { countOtherBucket += bucket.count_per_metadata.value; aggregations[property]['buckets'].splice(i, 1); @@ -257,6 +258,10 @@ export class DatasetResearchService { } } } + + if (!hasAlreadyOtherLicenses && aggregations['metadata-fr.license']['buckets'].length > 1 ) { + //this._searchChangeSubject.next(); + } return aggregations; } @@ -302,7 +307,13 @@ export class DatasetResearchService { dataset.slug = hit._source['slug']; dataset.highlights = new Highlights(); - dataset.metadata.total_documents = hit.inner_hits.data.hits.total; + + if ((hit.inner_hits.data.hits.total).value) { + dataset.metadata.total_documents = (hit.inner_hits.data.hits.total).value; + } + else { + dataset.metadata.total_documents = hit.inner_hits.data.hits.total; + } hit.inner_hits.data.hits.hits.forEach((document) => { diff --git a/src/app/editorialisation/components/changelog/changelog.component.html b/src/app/editorialisation/components/changelog/changelog.component.html index feb6f7f84e9f412754db7a7aed3533ec523d4533..beefe89870fe886b4abe1d7a2102c9c361fed355 100644 --- a/src/app/editorialisation/components/changelog/changelog.component.html +++ b/src/app/editorialisation/components/changelog/changelog.component.html @@ -2,7 +2,7 @@
-

+

Your recommendations to improve this portal are regularly integrated. Here is the list of the last evolutions of the portal. If you wish to contribute to the optimization of the diff --git a/src/app/editorialisation/components/changelog/changelog.component.scss b/src/app/editorialisation/components/changelog/changelog.component.scss index 098c3d045bcb0c38757298cd4be4ca4758701400..abd329e4dd1fcade5b9fec91431d14b8b3b15b31 100644 --- a/src/app/editorialisation/components/changelog/changelog.component.scss +++ b/src/app/editorialisation/components/changelog/changelog.component.scss @@ -10,10 +10,6 @@ $line: 2px; /* Base */ .description { - font-size: 1rem; - font-weight: 600; - padding-bottom: 1.875rem; - line-height: normal; @media screen and (min-width: $desktop) { margin-left: 6rem; diff --git a/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.html b/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.html index 0038305d02f976c02ba4a7dd6e6c6551d9198157..044ff02782049192466729d7a0332d525520e11b 100644 --- a/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.html +++ b/src/app/editorialisation/components/cms-post-detail/cms-post-detail.component.html @@ -14,7 +14,7 @@

Related datasets
- +
diff --git a/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.html b/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.html index 3237d0f2d0c963196791a8f173f215b0aeba571d..ea4f2368fdeaffe652cec4be9c5c1c120b40ba72 100644 --- a/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.html +++ b/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.html @@ -2,7 +2,7 @@
-

{{ intro }}

+

{{ intro }}

diff --git a/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.scss b/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.scss index 19b7642f726fb578464f16c8ed8a43be226c97a7..74f184724bd3be9f5c9a7d0c567e5be11138fd33 100644 --- a/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.scss +++ b/src/app/editorialisation/components/cms-posts-list/cms-posts-list.component.scss @@ -9,10 +9,6 @@ .page-header-container { background-color: white; padding: 0 1.25rem 0 1.25rem; - - p { - padding-bottom:2em; - } } .posts { diff --git a/src/app/editorialisation/components/contribution/contribution.component.html b/src/app/editorialisation/components/contribution/contribution.component.html index 65264347690b2fc1010c53283de9dea777acfa24..a0ceb536283b603759526c56d09948eb8b0eea26 100644 --- a/src/app/editorialisation/components/contribution/contribution.component.html +++ b/src/app/editorialisation/components/contribution/contribution.component.html @@ -6,19 +6,21 @@ Illustrationde la contribution
-

Do you want to contribute ?

+
+

Do you want to contribute ?

-

The Métropole de Lyon encourages all players in the area - (citizens, companies, associations, research laboratories, schools, etc.) to make available all the data they - produce.

-
-

- - To publish data on the data.grandlyon.com platform, - - contact us. -

+

The Métropole de Lyon encourages all players in the area + (citizens, companies, associations, research laboratories, schools, etc.) to make available all the data they + produce.

+
+

+ + To publish data on the data.grandlyon.com platform, + + contact us. +

+
\ No newline at end of file diff --git a/src/app/editorialisation/components/contribution/contribution.component.scss b/src/app/editorialisation/components/contribution/contribution.component.scss index dfd6c55f9301fcd9c112e8729bac55e86a336614..17b4a9ae1ff6671cf79253f166c246a5160a49fc 100644 --- a/src/app/editorialisation/components/contribution/contribution.component.scss +++ b/src/app/editorialisation/components/contribution/contribution.component.scss @@ -1,10 +1,5 @@ @import '../../../../../node_modules/bulma/sass/utilities/_all.sass'; -p, -span { - font-size: 1.125rem; -} - .feature-image { margin-top: 2rem; margin-bottom: 2rem; diff --git a/src/app/editorialisation/components/credits/credits.component.html b/src/app/editorialisation/components/credits/credits.component.html index 9ed22227f2de28ab72b6fd64edebcbed55b4aa2b..de40f2e992f27889a606b12a67f8fdc1da95102a 100644 --- a/src/app/editorialisation/components/credits/credits.component.html +++ b/src/app/editorialisation/components/credits/credits.component.html @@ -1,7 +1,7 @@
-

+

Here are the open source tools used by data.grandlyon.com.

diff --git a/src/app/editorialisation/components/credits/credits.component.scss b/src/app/editorialisation/components/credits/credits.component.scss index ba42a1cc5a0a13dbbcc8ea49c97d345fb5b816da..7b1a553b5861705d0f69b2b0d488b1b0d9ee879d 100644 --- a/src/app/editorialisation/components/credits/credits.component.scss +++ b/src/app/editorialisation/components/credits/credits.component.scss @@ -7,13 +7,6 @@ margin-bottom: 1rem; } -.description { - font-size: 17px; - font-weight: 600; - padding-bottom: 1.875rem; - line-height: normal; -} - img { max-height: 100px; } diff --git a/src/app/editorialisation/components/organizations/organizations.component.html b/src/app/editorialisation/components/organizations/organizations.component.html index 02af146224f1d0944dec6f2034f1d3794bbea3e6..769fa16bd95ac158c7e19c06b1bf76f2d5f38926 100644 --- a/src/app/editorialisation/components/organizations/organizations.component.html +++ b/src/app/editorialisation/components/organizations/organizations.component.html @@ -1,12 +1,32 @@
-
+
-

- The Lyon Metropolitan Area has opened its portal to all - stakeholders in the region who wish to distribute their data, in open data or restricted access. If you wish to - make your data available on this shared platform, do not hesitate to - contact us. -

+
+

+ + They have chosen to make their data available on data.grandlyon.com: Welcome to the partners of the Métropole de Lyon! +   + + For the players in the territory who wish to distribute their data, in open access or in exclusive sharing, + the data team of the Métropole de Lyon is at your disposal and offers you two types of partnership framework: + +

+ +

+ + Together, let's make data the catalyst for responsible development in Greater Lyon! + +

+
@@ -48,4 +68,4 @@
-
\ No newline at end of file +
diff --git a/src/app/editorialisation/components/organizations/organizations.component.scss b/src/app/editorialisation/components/organizations/organizations.component.scss index e90ea48dd4850446ee7bde9a8128cd4f9f0911d6..2407b6e5e0d89d8efa36c95422b3d930d7f220a0 100644 --- a/src/app/editorialisation/components/organizations/organizations.component.scss +++ b/src/app/editorialisation/components/organizations/organizations.component.scss @@ -7,11 +7,10 @@ margin-bottom: 1rem; } -.description { - font-size: 17px; - font-weight: 600; - padding-bottom: 1.875rem; - line-height: normal; +.ghost-style { + ul p { + padding-top:0px; + } } img { diff --git a/src/app/editorialisation/components/organizations/organizations.component.ts b/src/app/editorialisation/components/organizations/organizations.component.ts index d62f253be11edb2a5657479f7a9420cc8194a512..2bc9e449c7ceb65ffcb2f469692054064ea7b5d9 100644 --- a/src/app/editorialisation/components/organizations/organizations.component.ts +++ b/src/app/editorialisation/components/organizations/organizations.component.ts @@ -8,6 +8,7 @@ import { DatasetResearchService } from '../../../datasets/services'; import { Aggregation } from '../../../elasticsearch/models'; import { ElasticsearchService } from '../../../elasticsearch/services/elasticsearch.service'; import { AppRoutes } from '../../../routes'; +import { environment } from '../../../../environments/environment'; import { IPageHeaderInfo } from '../../../shared/models'; import { scopesResearch } from '../../../shared/variables'; import { Organization } from '../../models'; @@ -25,6 +26,10 @@ export class OrganizationsComponent implements OnInit { title: pageTitles.partners, }; organizations: Organization[]; + + opendata_url: string = ''; + privatedata_url: string =''; + constructor( private _organizationsService: OrganizationsService, private _elasticSearchService: ElasticsearchService, @@ -32,9 +37,20 @@ export class OrganizationsComponent implements OnInit { private _notificationService: NotificationService, private _router: Router, private _location: Location + + ) { } ngOnInit() { + + this.opendata_url = AppRoutes.contribution.opendata_url.fr; + this.privatedata_url = AppRoutes.contribution.privatedata_url.fr; + + if (window.location.href.includes(environment.angularAppHost.en)) { + this.opendata_url = AppRoutes.contribution.opendata_url.en; + this.privatedata_url = AppRoutes.contribution.privatedata_url.en; + } + this._organizationsService.getOrganizations().pipe( tap((organizations) => { this.organizations = organizations; diff --git a/src/app/editorialisation/components/reuse-detail/reuse-detail.component.html b/src/app/editorialisation/components/reuse-detail/reuse-detail.component.html index 809dec79015f526b004aedffab36bd8681fbaf8b..24a2a97dbf8e76b8398ac8fceb8c3c436d06b8a2 100644 --- a/src/app/editorialisation/components/reuse-detail/reuse-detail.component.html +++ b/src/app/editorialisation/components/reuse-detail/reuse-detail.component.html @@ -19,7 +19,7 @@ onerror="this.onerror=null;this.src='./assets/img/vignette-data.png';this.alt='Default image'">
{{dataset.title}} + [routerLink]="['/' + AppRoutes.datasets.uri + '/' + dataset.parentDataset.slug+'/info']">{{dataset.title}}
diff --git a/src/app/editorialisation/components/reuses-list/reuses-list.component.html b/src/app/editorialisation/components/reuses-list/reuses-list.component.html index 693f762af4636fb33b3460221b7d860ac9a3660a..b1a7a7fad16d94a498b198b3e7f3e24feaef13d7 100644 --- a/src/app/editorialisation/components/reuses-list/reuses-list.component.html +++ b/src/app/editorialisation/components/reuses-list/reuses-list.component.html @@ -1,7 +1,7 @@
-

+

The Métropole de Lyon promotes the reuse of territorial data: analysis, map, site, service, application... diff --git a/src/app/editorialisation/components/reuses-list/reuses-list.component.scss b/src/app/editorialisation/components/reuses-list/reuses-list.component.scss index 051ff79425a513bbe33cea9d49cb66c51a58cc9b..302f712b84ab70efe8ad7e7fcb53202882f3030d 100644 --- a/src/app/editorialisation/components/reuses-list/reuses-list.component.scss +++ b/src/app/editorialisation/components/reuses-list/reuses-list.component.scss @@ -7,14 +7,6 @@ margin-bottom: 1rem; } -.description, -.description span { - font-size: 17px; - font-weight: 600; - padding-bottom: 1.875rem; - line-height: normal; -} - a:hover { text-decoration: none; } diff --git a/src/app/editorialisation/services/seo.service.ts b/src/app/editorialisation/services/seo.service.ts index a1cbc8236cd9a9b29451b6159ce4e3d2850f611a..9bae842d02fea7ec52eec466928583164cf06723 100644 --- a/src/app/editorialisation/services/seo.service.ts +++ b/src/app/editorialisation/services/seo.service.ts @@ -37,8 +37,8 @@ export class SeoSErvice { } else { description = post.content.excerpt; - if (description.length > 140) { - description = `${description.substr(0, description.substr(0,136).lastIndexOf(' '))}...`; + if (description.length > 140 ) { + description = `${description.substr(0,description.substr(0,136).lastIndexOf(' '))}...`; } } diff --git a/src/app/elasticsearch/services/elasticsearch.service.ts b/src/app/elasticsearch/services/elasticsearch.service.ts index 632dbe1addd8bc1705bb22e85d155ca56222309f..58edf52469545392f9b48095afefa7f00cc7fe5a 100644 --- a/src/app/elasticsearch/services/elasticsearch.service.ts +++ b/src/app/elasticsearch/services/elasticsearch.service.ts @@ -207,10 +207,7 @@ export class ElasticsearchService { 'data-fr.properties^4', 'metadata-fr.abstract^6', 'metadata-fr.keyword^5', - 'metadata-fr.lineage^4', - 'content-fr.title^5', - 'content-fr.excerpt^3', - 'content-fr.plaintext^3' + 'metadata-fr.lineage^4' ], analyzer: 'my_search_analyzer', // fields: ['data_and_metadata', 'content-fr.title', 'content-fr.plaintext'], @@ -227,13 +224,6 @@ export class ElasticsearchService { type: 'unified', require_field_match: false, }, - 'content-fr.title': { - number_of_fragments: 0, - }, - 'content-fr.plaintext': { - fragment_size: 50, - number_of_fragments: 5, - }, 'metadata-fr.title': { number_of_fragments: 0, }, @@ -260,10 +250,7 @@ export class ElasticsearchService { 'data-fr.properties^4', 'metadata-fr.abstract^6', 'metadata-fr.keyword^5', - 'metadata-fr.lineage^4', - 'content-fr.title^5', - 'content-fr.excerpt^3', - 'content-fr.plaintext^3' + 'metadata-fr.lineage^4' ], }, }); @@ -610,7 +597,7 @@ export class ElasticsearchService { requestOptions.body['aggregations'][filter.field] = { date_histogram: { field, - interval: 'year', + calendar_interval: 'year', min_doc_count: 1, order: { _count: 'desc', diff --git a/src/app/routes.ts b/src/app/routes.ts index dd158704d3615fae47655aba8382d24cd702b9cb..1dc7ecfdaf19b8ba2b673a2a587f8d2e931d1003 100644 --- a/src/app/routes.ts +++ b/src/app/routes.ts @@ -237,6 +237,14 @@ export const AppRoutes = { fr: 'Contribution', en: 'Contribution', }, + opendata_url: { + en: 'https://download.data.grandlyon.com/conventions/Version_EN_Convention_Cadre_Data_Partenaire_MetropoledeLyon_Donnees_Ouvertes_avec_Annexe.docx', + fr: 'https://download.data.grandlyon.com/conventions/Convention_Cadre_Data_Partenaire_MetropoledeLyon_Donnees_Ouvertes_avec_Annexe.docx' + }, + privatedata_url: { + en: 'https://download.data.grandlyon.com/conventions/Version_EN_Convention_Cadre_Data_Partenaire_MetropoledeLyon_Donnees_Privees_avec_Annexe.docx', + fr: 'https://download.data.grandlyon.com/conventions/Convention_Cadre_Data_Partenaire_MetropoledeLyon_Donnees_Privees_avec_Annexe.docx' + }, }, reuses: { uri: 'reutilisations', diff --git a/src/app/shared/components/link-copy-icon/link-copy-icon.component.ts b/src/app/shared/components/link-copy-icon/link-copy-icon.component.ts index 37a01689de0e47530d4244ba4a4cfc341382b1c4..82c1e0744917d6b321b6d217441ef8d4a4d999f9 100644 --- a/src/app/shared/components/link-copy-icon/link-copy-icon.component.ts +++ b/src/app/shared/components/link-copy-icon/link-copy-icon.component.ts @@ -31,7 +31,11 @@ export class LinkCopyIconComponent implements OnChanges { this.linkUrl = this.linkUrl.replace( `${APP_CONFIG.backendUrls.proxyQuery}/download`, - 'https://download.data.grandlyon.com', + `${APP_CONFIG.backendUrls.backendDomain}`, + ); + this.linkUrl = this.linkUrl.replace( + `${APP_CONFIG.backendUrls.proxyQuery}/download`, + 'https://download.recette.data.grandlyon.com', ); if (this.linkToDisplay === false) { this.linkToDisplay = this.linkUrl; diff --git a/src/assets/mapbox-gl-styles/satellite.json b/src/assets/mapbox-gl-styles/satellite.json index c44369219e046763738dc639c56884d5d1909836..e9286f314127df58048e5e9b3cec64ff1a137e66 100644 --- a/src/assets/mapbox-gl-styles/satellite.json +++ b/src/assets/mapbox-gl-styles/satellite.json @@ -19,7 +19,7 @@ "maxzoom": 22 } }, - "glyphs": "https://openmaptiles.geo.data.gouv.fr/fonts/{fontstack}/{range}.pbf", + "glyphs": "https://minio.data.grandlyon.com/assets/mapbox-glyphs/{fontstack}/{range}.pbf", "layers": [ { "id": "satellite-tiles", @@ -61,8 +61,8 @@ "text-rotation-alignment": "map" }, "paint": { - "text-color": "#fff", - "text-halo-color": "black", + "text-color": "#333744", + "text-halo-color": "hsl(0, 0%, 100%)", "text-halo-width": 2 } }, diff --git a/src/i18n/messages.en.xlf b/src/i18n/messages.en.xlf index a5f0b62da9915a09b02ee3257c68b860971b5931..3b2edd20e3bf0062acdb21b5fb81f98ad91105d9 100644 --- a/src/i18n/messages.en.xlf +++ b/src/i18n/messages.en.xlf @@ -387,6 +387,22 @@ All the municipalities All the municipalities + + CSV's fields separator + CSV's fields separator + + + CSV's decimal separator + CSV's decimal separator + + + Dot (.) + Dot (.) + + + Comma (,) + Comma (,) + Projection system Projection system @@ -679,6 +695,26 @@ Visit the website Visit the website + + They have chosen to make their data available on data.grandlyon.com: Welcome to the partners of the Métropole de Lyon! + They have chosen to make their data available on data.grandlyon.com: Welcome to the partners of the Métropole de Lyon! + + + For the players in the territory who wish to distribute their data, in open access or in exclusive sharing, the data team of the Métropole de Lyon is at your disposal and offers you two types of partnership framework: + For the players in the territory who wish to distribute their data, in open access or in exclusive sharing, the data team of the Métropole de Lyon is at your disposal and offers you two types of partnership framework: + + + Together, let's make data the catalyst for responsible development in Greater Lyon! + Together, let's make data the catalyst for responsible development in Greater Lyon! + + + An open data distribution agreement + An open data distribution agreement + + + A private access data distribution agreement + A private access data distribution agreement + The Lyon Metropolitan Area has opened its portal to all stakeholders in the region who wish to distribute their data, in open data or restricted access. If you wish to make your data available on this shared platform, do not hesitate to The Lyon Metropolitan Area has opened its portal to all stakeholders in the region who wish to distribute their data, in open data or restricted access. If you wish to make your data available on this shared platform, do not hesitate to diff --git a/src/i18n/messages.fr.xlf b/src/i18n/messages.fr.xlf index b0de4752a51ed646125647787bc2ad8b1c3943dc..9c3a07739b377ee624174b993d92ea1367526be9 100644 --- a/src/i18n/messages.fr.xlf +++ b/src/i18n/messages.fr.xlf @@ -387,6 +387,26 @@ Division by municipality Découpage par commune + + CSV's fields separator + Séparateur de champs du fichier CSV + + + Semicolon (;) + Point-virgule (;) + + + CSV's decimal separator + Séparateur décimal + + + Dot (.) + Point (.) + + + Comma (,) + Virgule (,) + Projection system Système de projection @@ -687,6 +707,26 @@ Visit the website Voir le site web + + They have chosen to make their data available on data.grandlyon.com: Welcome to the partners of the Métropole de Lyon! + Ils ont choisi de mettre à disposition leurs données sur data.grandlyon.com : Bienvenue aux partenaires de la Métropole de Lyon ! + + + For the players in the territory who wish to distribute their data, in open access or in exclusive sharing, the data team of the Métropole de Lyon is at your disposal and offers you two types of partnership framework: + Pour les acteurs du territoire qui souhaitent diffuser leurs données, en accès ouvert ou en partage exclusif, l'équipe data de la Métropole de Lyon est à votre écoute et vous propose deux types de cadre partenarial : + + + Together, let's make data the catalyst for responsible development in Greater Lyon! + Faisons ensemble de la donnée, le catalyseur du développement responsable du Grand Lyon ! + + + An open data distribution agreement + Une convention de diffusion de données ouvertes + + + A private access data distribution agreement + Une convention de diffusion de données en accès privé + The Lyon Metropolitan Area has opened its portal to all stakeholders in the region who wish to distribute their data, in open data or restricted access. If you wish to make your data available on this shared platform, do not hesitate to La Métropole de Lyon a ouvert son portail à tous les acteurs du territoire qui souhaitent diffuser leurs données, diff --git a/src/i18n/traductions.fr.ts b/src/i18n/traductions.fr.ts index 6db669f9bbaba7bed45d09cf8a320c41892ca9dc..938282eb52f722c06804fae8f4f1d062b97191ab 100644 --- a/src/i18n/traductions.fr.ts +++ b/src/i18n/traductions.fr.ts @@ -261,7 +261,7 @@ export const subjects = [ ]; export const pageTitles = { - home: 'data.granlyon.com : Open data de la Métropole de Lyon', + home: 'data.grandlyon.com : Open data de la Métropole de Lyon', siteMap: 'Plan du site', datasets: 'Jeux de données', credits: 'Crédits', diff --git a/src/scss/ghost-style.scss b/src/scss/ghost-style.scss index 6e7f079b8e66fa50322c3eb5bc390085e0316620..ffe3e8947d75fa182a3c19475c3b58cf6c5106f4 100644 --- a/src/scss/ghost-style.scss +++ b/src/scss/ghost-style.scss @@ -4,7 +4,7 @@ p.excerpt { margin-top: 1.4375rem; margin-bottom: 1.4375rem; - font-size: 1.125rem; + font-size: 1.0625rem; font-weight: bold; } @@ -20,9 +20,13 @@ span, li { word-break: break-word; - font-size: 1.125rem; + font-size: 1.0625rem; color: $brand-color; line-height: 1.5; + + a{ + font-weight: bold; + } } p { diff --git a/src/styles.scss b/src/styles.scss index a1cfb72ca703b7c2570058d416637480e2801461..b2eb74be01e181975b6709dcfedcdc3c27c57042 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -96,8 +96,17 @@ h5, font-size: $size-6; } -span, +.details-container, +.organization, +.reuse { + p, + span{ + font-size: $size-6; + } +} + p, +span, select, input, ul, @@ -511,5 +520,19 @@ span.required-field, } } +.chapo { + font-size: 1.0625rem; + padding-bottom: 1.875rem; + line-height: normal; + + span,p,select,ul{ + font-size: 1.0625rem; + } + + a{ + font-weight: bold; + } +} + @import "./scss/ghost-style"; @import "./scss/tarteaucitron";