diff --git a/package.json b/package.json index a8e0cd3fcea7ed39a5fbbe51b88100fd8b1d1820..0e941f58d318f0de3fa3ae1f1b529c9898fed51f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "webapp", - "version": "2.6.1", + "version": "2.6.2", "license": "GNU Affero General Public License v3.0", "scripts": { "ng": "ng", diff --git a/src/app/dataset-detail/components/dataset-api/resources-queryable/resource-queryable/resource-queryable.component.ts b/src/app/dataset-detail/components/dataset-api/resources-queryable/resource-queryable/resource-queryable.component.ts index 0a57279dd22c34bd0e599856ecbf2fa19fef7b67..20c396afdee7592e354361399989870ee1245fb3 100644 --- a/src/app/dataset-detail/components/dataset-api/resources-queryable/resource-queryable/resource-queryable.component.ts +++ b/src/app/dataset-detail/components/dataset-api/resources-queryable/resource-queryable/resource-queryable.component.ts @@ -152,13 +152,22 @@ export class ResourceQueryableComponent implements OnInit { this.initSettings(); } + initInseeLabel(datasetData) { + const properties = Object.keys(datasetData[0].properties); + this.inseeLabel = properties.find((prop) => { return prop.includes('insee'); }); + } + initURLCustomization() { this.projectionList = []; // Set the insee property label for this dataset if (this._datasetDetailService.datasetData[0]) { - const properties = Object.keys(this._datasetDetailService.datasetData[0].properties); - this.inseeLabel = properties.find((prop) => { return prop.includes('insee'); }); + this.initInseeLabel(this._datasetDetailService.datasetData); + } + else { + this._datasetDetailService.retrieveDatasetData().subscribe(() => { + this.initInseeLabel(this._datasetDetailService.datasetData); + }); } this.selectedFormat = this.resource.formats[0]; @@ -227,10 +236,13 @@ export class ResourceQueryableComponent implements OnInit { this.queryableParameters.baseParameters; this.queryableUrl += this.queryableParameters.layer + this.queryableParameters.outputFormat + - this.queryableParameters.insee + this.queryableParameters.projection + + this.queryableParameters.insee + this.queryableParameters.bbox ; + console.log('before'); + console.log(this.queryableParameters); + console.log(this.queryableUrl); if (this.resource.type === linkFormats.wfs) { this.queryableUrl += `&startIndex=${this.fromFeature}`; @@ -241,6 +253,8 @@ export class ResourceQueryableComponent implements OnInit { this.queryableUrl += `&maxfeatures=${this.numberFeatures}&start=${this.fromFeature}`; } } + console.log('debug...'); + console.log(this.queryableUrl); if (!this.isAllFeaturesChecked && this.resource.type === linkFormats.wfs) { this.queryableUrl += `&count=${this.numberFeatures}`; @@ -249,7 +263,7 @@ export class ResourceQueryableComponent implements OnInit { } updateQueryableurlToDisplay() { - let queryableUrlToDisplay = ''; + let queryableUrlToDisplay: string = ''; queryableUrlToDisplay = this.queryableParameters.baseUrl + this.queryableParameters.baseParameters @@ -378,8 +392,9 @@ export class ResourceQueryableComponent implements OnInit { `${this.inseeLabel}</PropertyName><Literal>${this.selectedInsee.insee}` + '</Literal></PropertyIsLike> </Filter>'; } else if (this.resource.type === linkFormats.ws) { - this.queryableParameters.baseUrl = this.resource.metadataLink.name.replace('\/all.json', ''); + this.queryableParameters.baseUrl = this.resource.metadataLink.url.replace('\/all.json', ''); const match = (/\/ws\/([^\/]+)/g).exec(this.resource.metadataLink.url); + this.queryableParameters.baseUrl += `/${this.resource.metadataLink.name}.shp?`; const serviceName = match[1] ? match[1] : ''; this.queryableParameters.insee = `&mask_db=${serviceName}&mask_layer=adr_voie_lieu.adrcommune` + `&mask_field=insee&mask_value=${this.selectedInsee.insee}`; diff --git a/src/app/dataset-detail/components/dataset-downloads/dataset-downloads.component.scss b/src/app/dataset-detail/components/dataset-downloads/dataset-downloads.component.scss index 87bf0b3610cc7ee1d433ce180238511d6f417c8a..7f0817d5a5251bbd26df2a7bc81689d4ec05d662 100644 --- a/src/app/dataset-detail/components/dataset-downloads/dataset-downloads.component.scss +++ b/src/app/dataset-detail/components/dataset-downloads/dataset-downloads.component.scss @@ -4,6 +4,7 @@ .downloads-container { position: relative; height: 100%; + min-height: 100vh; background-color: $grey-background-color; @media screen and (min-width: $tablet) { diff --git a/src/app/datasets/services/research-url.service.ts b/src/app/datasets/services/research-url.service.ts index b9b5f1079d54e80a150632a34ec29333fd31785d..bd9df33e3688087be892b483fcaa3352ea87bfd5 100644 --- a/src/app/datasets/services/research-url.service.ts +++ b/src/app/datasets/services/research-url.service.ts @@ -57,7 +57,7 @@ export class ResearchUrlService { value, order: startWithNeg ? 'desc' : 'asc', }; - const acceptedSortValues = ['date, relevance, alphabetical']; + const acceptedSortValues = ['date', 'relevance', 'alphabetical']; // Check if sort value exists if (acceptedSortValues.includes(optionsSort.value)) { options.sortOptions = optionsSort; diff --git a/src/app/shared/components/cgu-modal/cgu-modal.component.html b/src/app/shared/components/cgu-modal/cgu-modal.component.html index bc5b24317bae9e505bb7be51f60fe8c39227f19a..10bbbb33d207b6c5ec32d99f86824c1c0134d07f 100644 --- a/src/app/shared/components/cgu-modal/cgu-modal.component.html +++ b/src/app/shared/components/cgu-modal/cgu-modal.component.html @@ -1,6 +1,6 @@ <div class="modal cgu-modal" [ngClass]="{'is-active': cguModalIsOpened }"> <div class="modal-background"></div> - <div class="modal-card"> + <div class="modal-card" #cguAnchor> <header class="modal-card-head"> <p class="has-text-weight-bold" i18n="@@cgu.modal.title">Terms of use</p> <button class="modal-close is-large" aria-label="close" (click)="closeCguModal()"></button> @@ -21,4 +21,4 @@ </div> </footer> </div> -</div> \ No newline at end of file +</div> diff --git a/src/app/shared/components/cgu-modal/cgu-modal.component.ts b/src/app/shared/components/cgu-modal/cgu-modal.component.ts index 0bb2bb1407db54c62591cac76eefb8778d547c68..31dc0923c9dd2912a0800ac456bab5947fa5e32c 100644 --- a/src/app/shared/components/cgu-modal/cgu-modal.component.ts +++ b/src/app/shared/components/cgu-modal/cgu-modal.component.ts @@ -1,4 +1,4 @@ -import { Component, EventEmitter, OnInit, Output } from '@angular/core'; +import { Component, EventEmitter, OnInit, Output, ViewChild, ElementRef } from '@angular/core'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { ActivatedRoute, Router } from '@angular/router'; import { CookieService } from 'ngx-cookie-service'; @@ -7,6 +7,7 @@ import { CMSContent } from '../../../editorialisation/models'; import { EditorialisationService } from '../../../editorialisation/services'; import { AppRoutes } from '../../../routes'; import { UserService } from '../../../user/services'; +import { DatasetDetailService } from '../../../dataset-detail/services'; @Component({ selector: 'app-cgu-modal', @@ -22,6 +23,7 @@ export class CguModalComponent implements OnInit { shakeAnimation = false; @Output() cguAccepted = new EventEmitter(); + @ViewChild('cguAnchor', {static:true}) cguAnchor: ElementRef; constructor( private _editorialisationService: EditorialisationService, @@ -30,6 +32,7 @@ export class CguModalComponent implements OnInit { private _route: ActivatedRoute, private _cookieService: CookieService, private _userService: UserService, + private _datasetDetailService: DatasetDetailService, ) { } ngOnInit() { @@ -48,7 +51,8 @@ export class CguModalComponent implements OnInit { closeCguModal() { this.cguModalIsOpened = false; - this._router.navigate([`../${AppRoutes.data.uri}`], { relativeTo: this._route }); + const mRoute = (this._datasetDetailService.dataset.hasMap || this._datasetDetailService.dataset.hasTable ? AppRoutes.data.uri : AppRoutes.info.uri); + this._router.navigate([`../${mRoute}`], { relativeTo: this._route }); } acceptCgu() { @@ -77,9 +81,15 @@ export class CguModalComponent implements OnInit { } modalBodyScrolled(event) { + const target = event.target || event.srcElement; if (Math.ceil(target.scrollTop) + target.offsetHeight >= target.scrollHeight) { this.isCguScrolledEntirely = true; } + else { + this.cguAnchor.nativeElement.scrollIntoView({ behavior: "smooth", block: "start", inline:'nearest' }); + const y = this.cguAnchor.nativeElement.getBoundingClientRect().top + window.pageYOffset -80; + window.scrollTo({top: y, behavior: 'smooth'}); + } } } diff --git a/src/styles.scss b/src/styles.scss index 4371453f56a4be74d340179e96e4120f1e09033f..398ea61c1290f553919725bba7e64327ed7b4d3b 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -2,7 +2,7 @@ @import '../node_modules/mapbox-gl/dist/mapbox-gl.css'; @import '~scss/init_bulma.scss'; -@import '../node_modules/bulma-slider/dist/css/bulma-slider.sass'; +@import '../node_modules/bulma-slider/src/Sass/index.sass'; @import '../node_modules/bulma-checkradio/dist/css/bulma-checkradio.sass'; @import '../node_modules/bulma-tooltip/dist/css/bulma-tooltip.min.css'; @import './scss/custom-hamburger.scss';