Merge pull request #3245 from alanorth/backport-3236-to-dspace-7_x

[Port dspace-7_x] #3094 - Update date slider to prevent automatic page reloads
This commit is contained in:
Tim Donohue
2024-08-09 09:31:21 -05:00
committed by GitHub
2 changed files with 21 additions and 3 deletions

View File

@@ -8,7 +8,7 @@
{{'search.filters.filter.' + filterConfig.name + '.min.label' | translate}} {{'search.filters.filter.' + filterConfig.name + '.min.label' | translate}}
</span> </span>
<input type="text" [(ngModel)]="range[0]" [name]="filterConfig.paramName + '.min'" <input type="text" [(ngModel)]="range[0]" [name]="filterConfig.paramName + '.min'"
class="form-control" (blur)="onSubmit()" class="form-control"
[attr.aria-label]="minLabel" [attr.aria-label]="minLabel"
[placeholder]="minLabel" [placeholder]="minLabel"
/> />
@@ -20,7 +20,7 @@
{{'search.filters.filter.' + filterConfig.name + '.max.label' | translate}} {{'search.filters.filter.' + filterConfig.name + '.max.label' | translate}}
</span> </span>
<input type="text" [(ngModel)]="range[1]" [name]="filterConfig.paramName + '.max'" <input type="text" [(ngModel)]="range[1]" [name]="filterConfig.paramName + '.max'"
class="form-control" (blur)="onSubmit()" class="form-control"
[attr.aria-label]="maxLabel" [attr.aria-label]="maxLabel"
[placeholder]="maxLabel" [placeholder]="maxLabel"
/> />
@@ -33,7 +33,8 @@
<ng-container *ngIf="shouldShowSlider()"> <ng-container *ngIf="shouldShowSlider()">
<nouislider [connect]="true" [config]="config" [min]="min" [max]="max" [step]="1" <nouislider [connect]="true" [config]="config" [min]="min" [max]="max" [step]="1"
[dsDebounce]="250" (onDebounce)="onSubmit()" [dsDebounce]="250"
(change)="onSliderChange($event)"
(keydown)="startKeyboardControl()" (keyup)="stopKeyboardControl()" (keydown)="startKeyboardControl()" (keyup)="stopKeyboardControl()"
[(ngModel)]="range" ngDefaultControl> [(ngModel)]="range" ngDefaultControl>
</nouislider> </nouislider>
@@ -43,5 +44,8 @@
<ds-search-facet-range-option *ngFor="let value of page.page; trackBy: trackUpdate" [filterConfig]="filterConfig" [filterValue]="value" [inPlaceSearch]="inPlaceSearch"></ds-search-facet-range-option> <ds-search-facet-range-option *ngFor="let value of page.page; trackBy: trackUpdate" [filterConfig]="filterConfig" [filterValue]="value" [inPlaceSearch]="inPlaceSearch"></ds-search-facet-range-option>
</div> </div>
</ng-container> </ng-container>
<button (click)="onSubmit()" class="btn btn-primary">
{{'search.filters.search.submit' | translate}}
</button>
</div> </div>
</div> </div>

View File

@@ -81,6 +81,11 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple
*/ */
range; range;
/**
* The range currently selected by the slider
*/
sliderRange: [number | undefined, number | undefined];
/** /**
* Subscription to unsubscribe from * Subscription to unsubscribe from
*/ */
@@ -138,6 +143,15 @@ export class SearchRangeFilterComponent extends SearchFacetFilterComponent imple
}; };
} }
/**
* Updates the sliderRange property with the current slider range.
* This method is called whenever the slider value changes, but it does not immediately apply the changes.
* @param range - The current range selected by the slider
*/
onSliderChange(range: [number | undefined, number | undefined]): void {
this.sliderRange = range;
}
/** /**
* Submits new custom range values to the range filter from the widget * Submits new custom range values to the range filter from the widget
*/ */