Commit d61f385d authored by ncastejon's avatar ncastejon
Browse files

Add checkbox to download all the data on API page

parent 54a02741
Pipeline #1718 passed with stages
in 11 minutes and 37 seconds
{
"name": "webapp",
"version": "2.1.6",
"version": "2.1.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
......@@ -902,6 +902,12 @@
}
}
},
"@types/file-saver": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.1.tgz",
"integrity": "sha512-g1QUuhYVVAamfCifK7oB7G3aIl4BbOyzDOqVyUfEr4tfBKrXfeH+M+Tg7HKCXSrbzxYdhyCP7z9WbKo0R2hBCw==",
"dev": true
},
"@types/geojson": {
"version": "7946.0.5",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.5.tgz",
......@@ -3883,6 +3889,11 @@
"schema-utils": "^1.0.0"
}
},
"file-saver": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.2.tgz",
"integrity": "sha512-Wz3c3XQ5xroCxd1G8b7yL0Ehkf0TC9oYC6buPFkNnU9EnaPlifeAFCyCh+iewXTyFRcg0a6j3J7FmJsIhlhBdw=="
},
"filename-regex": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
......@@ -4117,8 +4128,7 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"aproba": {
"version": "1.2.0",
......@@ -4159,8 +4169,7 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"concat-map": {
"version": "0.0.1",
......@@ -4170,8 +4179,7 @@
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"core-util-is": {
"version": "1.0.2",
......@@ -4288,8 +4296,7 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"ini": {
"version": "1.3.5",
......@@ -4301,7 +4308,6 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
......@@ -4427,8 +4433,7 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true,
"optional": true
"dev": true
},
"object-assign": {
"version": "4.1.1",
......@@ -4561,7 +4566,6 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
......@@ -4581,7 +4585,6 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
......
......@@ -66,15 +66,15 @@ $app-notification-width: 29rem;
}
.success {
background-color: rgba(84, 180, 51, 0.9);
background-color: #3c8225;
}
.warning {
background-color: rgba(239, 114, 23, 0.9);
background-color: #b9541d;
}
.error {
background-color: rgba(217, 3, 3, 0.9);
background-color: #da322f;
}
.close-button {
......
......@@ -11,7 +11,7 @@
padding: 0.5rem 0.4rem;
border: 1px solid $grey-super-light-color;
border-radius: 4px;
margin-right: 1rem;
margin-right: 0.75rem;
a {
display: flex;
......@@ -21,6 +21,10 @@
height: 1.5rem;
fill: $link-color;
}
&:hover {
opacity: 0.7;
}
}
.resource-left {
......
......@@ -17,16 +17,13 @@
<span class="parameters-url">
<a [href]="resource.metadataLink.url" target="_blank">{{ resource.metadataLink.url }}</a>
</span>
<button type="button" (click)="copyToClipboard(resource.metadataLink.url, true)" class="button is-medium">
<svg xmlns="http://www.w3.org/2000/svg" id="copy" viewBox="0 0 18 18">
<path
d="M11.1 7.1c.6.6 1 1.3 1.2 2.2s.2 1.6 0 2.4-.6 1.5-1.2 2.1L8.9 16c-.6.6-1.3 1-2.1 1.2-.8.2-1.6.2-2.4 0-.8-.2-1.5-.6-2.2-1.3-.6-.6-1-1.3-1.2-2.1-.2-.8-.2-1.6 0-2.4.2-.8.6-1.5 1.2-2.1l1.2-1.2c.2-.2.3-.2.5-.1s.3.2.3.4c0 .6.1 1.1.3 1.7.1.2 0 .4-.1.5L4 11c-.4.4-.7 1-.7 1.6 0 .6.2 1.1.7 1.6.4.4 1 .7 1.6.7s1.2-.2 1.6-.7l2.1-2.1c.4-.4.7-1 .7-1.6s-.3-1.1-.7-1.6c-.1-.1-.2-.2-.4-.3s-.1-.2-.1-.3c0-.4.1-.7.3-.9l.7-.7c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1.2.1.5.2.7.4zm4.4-4.4c-.6-.6-1.3-1-2.2-1.2-.8-.2-1.6-.2-2.4 0-.8.2-1.5.6-2.1 1.2L6.6 4.9c-.6.6-1 1.3-1.2 2.1s-.2 1.6 0 2.4.6 1.5 1.2 2.2c.2.2.4.4.7.5.1.1.2.1.3.1.1 0 .2-.1.3-.2l.7-.7c.2-.2.4-.6.3-.9 0-.2-.1-.3-.2-.4s-.2-.1-.3-.2c-.4-.4-.6-1-.6-1.6S8 7 8.4 6.6l2.1-2.1c.4-.4 1-.7 1.6-.7s1.2.2 1.6.7c.4.4.6 1 .6 1.6 0 .6-.2 1.1-.7 1.6l-.4.4c-.1.1-.2.3-.1.5.2.5.3 1.1.3 1.7 0 .2.1.4.3.4.2.1.4.1.5-.1l1.2-1.2c.6-.6 1-1.3 1.2-2.1.2-.8.2-1.6 0-2.4-.1-.8-.5-1.5-1.1-2.2z"
class="grey" />
<path
d="M11.1 7.1c.6.6 1 1.3 1.2 2.2s.2 1.6 0 2.4-.6 1.5-1.2 2.1L8.9 16c-.6.6-1.3 1-2.1 1.2-.8.2-1.6.2-2.4 0-.8-.2-1.5-.6-2.2-1.3-.6-.6-1-1.3-1.2-2.1-.2-.8-.2-1.6 0-2.4.2-.8.6-1.5 1.2-2.1l1.2-1.2c.2-.2.3-.2.5-.1s.3.2.3.4c0 .6.1 1.1.3 1.7.1.2 0 .4-.1.5L4 11c-.4.4-.7 1-.7 1.6 0 .6.2 1.1.7 1.6.4.4 1 .7 1.6.7s1.2-.2 1.6-.7l2.1-2.1c.4-.4.7-1 .7-1.6s-.3-1.1-.7-1.6c-.1-.1-.2-.2-.4-.3s-.1-.2-.1-.3c0-.4.1-.7.3-.9l.7-.7c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1.2.1.5.2.7.4zm4.4-4.4c-.6-.6-1.3-1-2.2-1.2-.8-.2-1.6-.2-2.4 0-.8.2-1.5.6-2.1 1.2L6.6 4.9c-.6.6-1 1.3-1.2 2.1s-.2 1.6 0 2.4.6 1.5 1.2 2.2c.2.2.4.4.7.5.1.1.2.1.3.1.1 0 .2-.1.3-.2l.7-.7c.2-.2.4-.6.3-.9 0-.2-.1-.3-.2-.4s-.2-.1-.3-.2c-.4-.4-.6-1-.6-1.6S8 7 8.4 6.6l2.1-2.1c.4-.4 1-.7 1.6-.7s1.2.2 1.6.7c.4.4.6 1 .6 1.6 0 .6-.2 1.1-.7 1.6l-.4.4c-.1.1-.2.3-.1.5.2.5.3 1.1.3 1.7 0 .2.1.4.3.4.2.1.4.1.5-.1l1.2-1.2c.6-.6 1-1.3 1.2-2.1.2-.8.2-1.6 0-2.4-.1-.8-.5-1.5-1.1-2.2z"
class="grey" />
<button type="button" (click)="copyToClipboard(resource.metadataLink.url, true)"
class="button is-medium tooltip" [attr.data-tooltip]="messageClipboardRoot">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20">
<path fill="#818080" fill-rule="evenodd"
d="M1.852 7.777a2.619 2.619 0 0 1 0-3.703l2.222-2.222a2.619 2.619 0 0 1 3.704 0l2.963 2.963a2.619 2.619 0 0 1 0 3.703l-.37.37.74.741.37-.37a2.619 2.619 0 0 1 3.704 0l2.963 2.963a2.619 2.619 0 0 1 0 3.704l-2.222 2.222a2.619 2.619 0 0 1-3.704 0L9.26 15.185a2.619 2.619 0 0 1 0-3.704l.37-.37-.74-.741-.37.37a2.619 2.619 0 0 1-3.704 0L1.852 7.777zm7.037-.37l-.74-.74a1.048 1.048 0 0 0-1.482 1.48l.74.742-.37.37a.524.524 0 0 1-.74 0L3.332 6.296a.524.524 0 0 1 0-.74l2.223-2.223a.524.524 0 0 1 .74 0L9.26 6.296a.524.524 0 0 1 0 .74l-.37.371zm2.222 5.185l-.37.37a.524.524 0 0 0 0 .742l2.963 2.962a.524.524 0 0 0 .74 0l2.223-2.222a.524.524 0 0 0 0-.74l-2.963-2.963a.524.524 0 0 0-.741 0l-.37.37.74.74a1.047 1.047 0 1 1-1.481 1.482l-.74-.74z"
clip-rule="evenodd" />
</svg>
<span class="is-hidden-touch">{{ messageClipboardRoot }}</span>
</button>
</div>
</div>
......@@ -100,7 +97,7 @@
(clickOutside)="dropDownProjectionToggle = false;">
<div class="dropdown-trigger">
<button class="button" aria-haspopup="true" aria-controls="dropdown-menu">
<span>{{ selectedProjection.name }}</span>
<span>{{ getProjectionLabel(selectedProjection.name) }}</span>
<span class="icon is-small">
<i class="fas fa-angle-down" aria-hidden="true"></i>
</span>
......@@ -109,7 +106,7 @@
<div class="dropdown-menu" id="dropdown-menu" role="menu">
<div class="dropdown-content">
<a class="dropdown-item" *ngFor="let projection of projectionList" (click)="setProjection(projection)">
{{ projection.name }}
{{ getProjectionLabel(projection.name) }}
</a>
</div>
</div>
......@@ -129,7 +126,8 @@
(click)="dropDownInseeToggle=!dropDownInseeToggle" (clickOutside)="dropDownInseeToggle = false;">
<div class="dropdown-trigger">
<button class="button" aria-haspopup="true" aria-controls="dropdown-menu">
<span>{{ selectedInsee ? selectedInsee.commune + ' - ' + selectedInsee.insee : ''}}</span>
<span
*ngIf="selectedInsee">{{ selectedInsee ? selectedInsee.commune + ' - ' + selectedInsee.insee : ''}}</span>
<span *ngIf="!selectedInsee" i18n="@@dataset.resources.commune">Municipality</span>
<span class="icon is-small">
<i class="fas fa-angle-down" aria-hidden="true"></i>
......@@ -153,11 +151,19 @@
<div class="title-label">
<label for="countFeatures"> Nombre d'enregistrements</label>
</div>
<div>
<input class="input" id="countFeatures" [value]="countFeatures" type="number" min="1" max="10000"
[(ngModel)]="countFeatures" (change)="setActiveCountFeatures()">
<div class="countFeatures">
<div>
<input class="input" id="countFeatures" [value]="inputCountFeatures" type="number" min="1" max="10000"
[(ngModel)]="inputCountFeatures" (change)="setActiveCountFeatures()" [disabled]="isAllFeaturesChecked">
</div>
<div class="allFeatures">
<input [id]="'allFeatures_' + resource.type" class="is-checkradio is-small" type="checkbox"
(change)="checkAllFeatures()" [(ngModel)]="isAllFeaturesChecked" [value]="isAllFeaturesChecked">
<label [for]="'allFeatures_' + resource.type" class="label checkbox-label">Tous</label>
</div>
</div>
<div class="warning" *ngIf="countFeatures > 1000">
<div class="warning" *ngIf="numberFeatures > 1000">
<span>à partir de 1000 enregistrements, le temps de chargement peut devenir
important</span>
</div>
......@@ -165,11 +171,11 @@
</div>
<div class="fromFeature-item">
<div class="title-label">
<label for="fromFeature"> Numéro du 1er enregistrement</label>
<label [for]="'fromFeature_' + resource.type"> Numéro du 1er enregistrement</label>
</div>
<div>
<input class="input" id="fromFeature" type="number" [value]="fromFeature" [min]="minFromFeature" max="10000"
[(ngModel)]="fromFeature" (change)="setActiveFromFeature()">
<input class="input" [id]="'fromFeature_' + resource.type" type="number" [value]="fromFeature"
[min]="minFromFeature" [max]="totalData" [(ngModel)]="fromFeature" (change)="setActiveFromFeature()">
</div>
</div>
......@@ -185,59 +191,46 @@
</div>
<div class="link-with-copy">
<span class="parameters-url column is-narrow-tablet">
<a [href]="queryableUrl" target="_blank">
<span>
{{ queryableParameters.baseUrl }}
</span>
<span>
{{ queryableParameters.baseParameters }}
</span>
<span>
{{ queryableParameters.layer }}
</span>
<span *ngIf="selectedProjection" [ngClass]="{'is-active-parameter': queryableParameters.projectionActive}">
{{ queryableParameters.projection }}
{{ queryableParameters.bbox }}
</span>
<span *ngIf="selectedFormat" [ngClass]="{'is-active-parameter': queryableParameters.outputFormatActive}">
{{ queryableParameters.outputFormat }}
</span>
<span *ngIf="selectedInsee" [ngClass]="{'is-active-parameter': queryableParameters.inseeActive}">
{{ queryableParameters.insee }}
</span>
<span *ngIf="resource.type === linkFormats.wfs"
[ngClass]="{'is-active-parameter': queryableParameters.countFeatures}">
&count={{ countFeatures }}
</span>
<span *ngIf="resource.type === linkFormats.wfs"
[ngClass]="{'is-active-parameter': queryableParameters.fromFeature}">
&startIndex={{ fromFeature }}
</span>
<span *ngIf="resource.type === linkFormats.ws"
[ngClass]="{'is-active-parameter': queryableParameters.countFeatures}">
{{ selectedFormat.name === 'JSON' ? '?maxfeatures='+countFeatures : '&maxfeatures='+countFeatures}}
</span>
<span *ngIf="resource.type === linkFormats.ws"
[ngClass]="{'is-active-parameter': queryableParameters.fromFeature}">
&start={{ fromFeature }}
</span>
<a [href]="queryableUrl" target="_blank" [ngClass]="{'is-disabled': isAllFeaturesChecked}"
[innerHtml]="queryableUrlToDisplay">
</a>
</span>
<button type="button" (click)="copyToClipboard(queryableUrl)" class="button is-medium">
<svg xmlns="http://www.w3.org/2000/svg" id="copy" viewBox="0 0 18 18">
<path
d="M11.1 7.1c.6.6 1 1.3 1.2 2.2s.2 1.6 0 2.4-.6 1.5-1.2 2.1L8.9 16c-.6.6-1.3 1-2.1 1.2-.8.2-1.6.2-2.4 0-.8-.2-1.5-.6-2.2-1.3-.6-.6-1-1.3-1.2-2.1-.2-.8-.2-1.6 0-2.4.2-.8.6-1.5 1.2-2.1l1.2-1.2c.2-.2.3-.2.5-.1s.3.2.3.4c0 .6.1 1.1.3 1.7.1.2 0 .4-.1.5L4 11c-.4.4-.7 1-.7 1.6 0 .6.2 1.1.7 1.6.4.4 1 .7 1.6.7s1.2-.2 1.6-.7l2.1-2.1c.4-.4.7-1 .7-1.6s-.3-1.1-.7-1.6c-.1-.1-.2-.2-.4-.3s-.1-.2-.1-.3c0-.4.1-.7.3-.9l.7-.7c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1.2.1.5.2.7.4zm4.4-4.4c-.6-.6-1.3-1-2.2-1.2-.8-.2-1.6-.2-2.4 0-.8.2-1.5.6-2.1 1.2L6.6 4.9c-.6.6-1 1.3-1.2 2.1s-.2 1.6 0 2.4.6 1.5 1.2 2.2c.2.2.4.4.7.5.1.1.2.1.3.1.1 0 .2-.1.3-.2l.7-.7c.2-.2.4-.6.3-.9 0-.2-.1-.3-.2-.4s-.2-.1-.3-.2c-.4-.4-.6-1-.6-1.6S8 7 8.4 6.6l2.1-2.1c.4-.4 1-.7 1.6-.7s1.2.2 1.6.7c.4.4.6 1 .6 1.6 0 .6-.2 1.1-.7 1.6l-.4.4c-.1.1-.2.3-.1.5.2.5.3 1.1.3 1.7 0 .2.1.4.3.4.2.1.4.1.5-.1l1.2-1.2c.6-.6 1-1.3 1.2-2.1.2-.8.2-1.6 0-2.4-.1-.8-.5-1.5-1.1-2.2z"
class="grey" />
<path
d="M11.1 7.1c.6.6 1 1.3 1.2 2.2s.2 1.6 0 2.4-.6 1.5-1.2 2.1L8.9 16c-.6.6-1.3 1-2.1 1.2-.8.2-1.6.2-2.4 0-.8-.2-1.5-.6-2.2-1.3-.6-.6-1-1.3-1.2-2.1-.2-.8-.2-1.6 0-2.4.2-.8.6-1.5 1.2-2.1l1.2-1.2c.2-.2.3-.2.5-.1s.3.2.3.4c0 .6.1 1.1.3 1.7.1.2 0 .4-.1.5L4 11c-.4.4-.7 1-.7 1.6 0 .6.2 1.1.7 1.6.4.4 1 .7 1.6.7s1.2-.2 1.6-.7l2.1-2.1c.4-.4.7-1 .7-1.6s-.3-1.1-.7-1.6c-.1-.1-.2-.2-.4-.3s-.1-.2-.1-.3c0-.4.1-.7.3-.9l.7-.7c.1-.1.2-.1.3-.1.1 0 .2 0 .3.1.2.1.5.2.7.4zm4.4-4.4c-.6-.6-1.3-1-2.2-1.2-.8-.2-1.6-.2-2.4 0-.8.2-1.5.6-2.1 1.2L6.6 4.9c-.6.6-1 1.3-1.2 2.1s-.2 1.6 0 2.4.6 1.5 1.2 2.2c.2.2.4.4.7.5.1.1.2.1.3.1.1 0 .2-.1.3-.2l.7-.7c.2-.2.4-.6.3-.9 0-.2-.1-.3-.2-.4s-.2-.1-.3-.2c-.4-.4-.6-1-.6-1.6S8 7 8.4 6.6l2.1-2.1c.4-.4 1-.7 1.6-.7s1.2.2 1.6.7c.4.4.6 1 .6 1.6 0 .6-.2 1.1-.7 1.6l-.4.4c-.1.1-.2.3-.1.5.2.5.3 1.1.3 1.7 0 .2.1.4.3.4.2.1.4.1.5-.1l1.2-1.2c.6-.6 1-1.3 1.2-2.1.2-.8.2-1.6 0-2.4-.1-.8-.5-1.5-1.1-2.2z"
class="grey" />
<button type="button" (click)="copyToClipboard(queryableUrl)" class="button is-medium tooltip"
[attr.data-tooltip]="messageClipboard">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="none" viewBox="0 0 20 20">
<path fill="#818080" fill-rule="evenodd"
d="M1.852 7.777a2.619 2.619 0 0 1 0-3.703l2.222-2.222a2.619 2.619 0 0 1 3.704 0l2.963 2.963a2.619 2.619 0 0 1 0 3.703l-.37.37.74.741.37-.37a2.619 2.619 0 0 1 3.704 0l2.963 2.963a2.619 2.619 0 0 1 0 3.704l-2.222 2.222a2.619 2.619 0 0 1-3.704 0L9.26 15.185a2.619 2.619 0 0 1 0-3.704l.37-.37-.74-.741-.37.37a2.619 2.619 0 0 1-3.704 0L1.852 7.777zm7.037-.37l-.74-.74a1.048 1.048 0 0 0-1.482 1.48l.74.742-.37.37a.524.524 0 0 1-.74 0L3.332 6.296a.524.524 0 0 1 0-.74l2.223-2.223a.524.524 0 0 1 .74 0L9.26 6.296a.524.524 0 0 1 0 .74l-.37.371zm2.222 5.185l-.37.37a.524.524 0 0 0 0 .742l2.963 2.962a.524.524 0 0 0 .74 0l2.223-2.222a.524.524 0 0 0 0-.74l-2.963-2.963a.524.524 0 0 0-.741 0l-.37.37.74.74a1.047 1.047 0 1 1-1.481 1.482l-.74-.74z"
clip-rule="evenodd" />
</svg>
<span class="is-hidden-touch">{{ messageClipboard }}</span>
</button>
<div class="resource-download-icon" (click)="saveFile(queryableUrl)">
<a>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 23">
<g id="btn-download">
<path
d="M22 14c-.6 0-1 .4-1 1v5H3v-5c0-.6-.4-1-1-1s-1 .4-1 1v6c0 .6.4 1 1 1h20c.6 0 1-.4 1-1v-6c0-.6-.4-1-1-1z"
class="download_x002D_color" />
<path
d="M11.3 16.7c.2.2.5.3.7.3s.5-.1.7-.3l6-6c.4-.4.4-1 0-1.4s-1-.4-1.4 0L13 13.6V2c0-.6-.4-1-1-1s-1 .4-1 1v11.6L6.7 9.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l6 6z"
class="download_x002D_color" />
<g>
<path
d="M22 14c-.6 0-1 .4-1 1v5H3v-5c0-.6-.4-1-1-1s-1 .4-1 1v6c0 .6.4 1 1 1h20c.6 0 1-.4 1-1v-6c0-.6-.4-1-1-1z"
class="download_x002D_color" />
<path
d="M11.3 16.7c.2.2.5.3.7.3s.5-.1.7-.3l6-6c.4-.4.4-1 0-1.4s-1-.4-1.4 0L13 13.6V2c0-.6-.4-1-1-1s-1 .4-1 1v11.6L6.7 9.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l6 6z"
class="download_x002D_color" />
</g>
</g>
</svg>
</a>
</div>
</div>
</div>
</ng-container>
</div>
</div>
\ No newline at end of file
......@@ -37,7 +37,7 @@
}
.division-item {
grid-column: 1 / 3;
grid-column: 1 / 2;
}
.no-custom-url {
......@@ -62,6 +62,7 @@
.fromFeature-item {
grid-column: 2 / 3;
// Remove Bulma default 100% width
.input {
width: unset;
......@@ -72,20 +73,6 @@
word-break: break-all;
}
.create-request {
cursor: pointer;
grid-column: 1 / 3;
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 1rem;
border-bottom: 2px solid $grey-background-color;
span:first-of-type {
font-weight: 600;
}
}
.create-request-icon {
svg {
margin-right: 1.2rem;
......@@ -95,12 +82,33 @@
}
}
.resource-download-icon {
padding: 0.5rem 0.4rem;
border: 1px solid $grey-super-light-color;
border-radius: 4px;
margin-left: 0.5rem;
a {
display: flex;
}
svg {
height: 1.5rem;
fill: $link-color;
}
&:hover {
opacity: 0.7;
}
}
.link-with-copy {
display: flex;
justify-content: space-between;
a,
a span {/* stylelint-disable-line */
/* stylelint-disable-next-line */
a span {
color: $link-color;
text-decoration: none;
......@@ -124,23 +132,66 @@
flex-grow: 1;
flex-shrink: 1;
padding: 0.7rem 0.5rem;
// ng-deep needed because of the innerHtml breaks the styling
/* stylelint-disable-next-line */
::ng-deep .is-active-parameter {
font-weight: bold;
color: $link-color;
}
/* stylelint-disable-next-line */
a.is-disabled ::ng-deep .is-active-parameter {
font-weight: bold;
color: $grey-dark-color;
}
a.is-disabled,
a.is-disabled span {
pointer-events: none;
color: $grey-dark-color;
}
}
.button {
font-size: 0.875rem;
margin-left: 1rem;
margin-left: 0.5rem;
height: 2.75rem;
svg {
width: 1.25rem;
}
svg path {
fill: $grey-dark-color;
margin-right: 0.5rem;
}
}
.button:hover {
svg {
opacity: 0.7;
}
}
}
.create-request {
cursor: pointer;
grid-column: 1 / 3;
display: flex;
align-items: center;
justify-content: space-between;
padding-bottom: 1rem;
border-bottom: 2px solid $grey-background-color;
/* stylelint-disable-next-line */
span:first-of-type {
font-weight: 600;
}
}
.maxFeatures-item {
grid-column: 1 / 2;
// Remove Bulma default 100% width
.input {
width: unset;
......@@ -149,7 +200,8 @@
.warning {
margin-top: 0.5rem;
span { /* stylelint-disable-line */
/* stylelint-disable-next-line */
span {
color: $warning-color;
}
}
......@@ -200,14 +252,11 @@ h3 {
}
}
/* stylelint-disable-next-line */
.dropdown-trigger .button {
justify-content: space-between;
}
.is-active-parameter {
font-weight: bold;
}
.resource-title {
cursor: pointer;
font-weight: 500;
......@@ -231,3 +280,23 @@ h3 {
transform: rotate(0deg);
}
}
.countFeatures {
display: flex;
align-items: center;
}
.allFeatures {
display: flex;
align-items: center;
margin-left: 0.5rem;
label {
font-weight: 400;
}
}
.is-checkradio[type="checkbox"] + label {
padding: unset;
padding-left: 1.75rem;
}
import { Component, OnInit, Input } from '@angular/core';
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
import { Resource, Metadata } from '../../../../../models';
import { Format } from '../../../../../models/resource.model';
import { communeInsee } from '../../../../../../../assets/resources/commune-insee';
import { DatasetDetailService } from '../../../../../services';
import { linkFormats } from '../../../../../models/metadata.model';
import { geosource } from '../../../../../../../i18n/traductions';
import { geosource, notificationMessages } from '../../../../../../../i18n/traductions';
import { saveAs } from 'file-saver';
import { NotificationService } from '../../../../../../core/services';
import { Projection } from '../../../../../models/projection.model';
@Component({
selector: 'app-resource-queryable',
......@@ -16,12 +20,14 @@ export class ResourceQueryableComponent implements OnInit {
@Input() resource: Resource;
@Input() metadata: Metadata;