diff --git a/css/60_photos.css b/css/60_photos.css index 87b00fa2c..c644eada5 100644 --- a/css/60_photos.css +++ b/css/60_photos.css @@ -621,7 +621,11 @@ label.streetside-hires { cursor: pointer; } -datalist { - display: inline-block; - vertical-align: middle; - } \ No newline at end of file +.slider-wrap { + display: inline-block; +} + +.year-datalist { + display: flex; + justify-content: space-between; +} \ No newline at end of file diff --git a/modules/svg/panoramax_images.js b/modules/svg/panoramax_images.js index e5ccdff50..490bdae14 100644 --- a/modules/svg/panoramax_images.js +++ b/modules/svg/panoramax_images.js @@ -186,21 +186,19 @@ export function svgPanoramaxImages(projection, context, dispatch) { } function updateSlider(oldestDate){ + let maxOldestYear = 2010; let currYear = new Date(); let slider = d3_select('.list-option-date-slider'); - let label = slider.select(function() { return this.parentNode; }) + let sliderWrap = slider.select(function() { return this.parentNode; }) - label.selectAll('datalist').remove(); + sliderWrap.selectAll('datalist').remove(); - let datalist = label.append('datalist').attr('id', 'dateValues'); + let datalist = sliderWrap.append('datalist') + .attr('id', 'dateValues') + .attr('class', 'year-datalist'); - datalist - .append('option') - .attr('value', currYear.getFullYear()) - .attr('label', currYear.getFullYear()) - - if(oldestDate){ + if(oldestDate > maxOldestYear){ slider.attr('min', oldestDate); datalist @@ -208,6 +206,19 @@ export function svgPanoramaxImages(projection, context, dispatch) { .attr('value', oldestDate) .attr('label', oldestDate) } + else{ + slider.attr('min', maxOldestYear); + + datalist + .append('option') + .attr('value', maxOldestYear) + .attr('label', maxOldestYear) + } + + datalist + .append('option') + .attr('value', currYear.getFullYear()) + .attr('label', currYear.getFullYear()) } async function update() { diff --git a/modules/ui/sections/photo_overlays.js b/modules/ui/sections/photo_overlays.js index cbb9bfc87..531490226 100644 --- a/modules/ui/sections/photo_overlays.js +++ b/modules/ui/sections/photo_overlays.js @@ -383,7 +383,16 @@ export function uiSectionPhotoOverlays(context) { .append('span') .call(t.append('photo_overlays.age_slider_filter.title')); - labelEnter + let sliderWrap = labelEnter + .append('div') + .attr('class','slider-wrap') + + let output = sliderWrap + .append('output') + .html(currYear) + .attr('class','year-selected'); + + sliderWrap .append('input') .attr('type', 'range') .attr('max', currYear) @@ -394,10 +403,12 @@ export function uiSectionPhotoOverlays(context) { .on('change', function() { var value = d3_select(this).property('value'); context.photos().setMaxPhotoYear(parseInt(value)); + output.html(value); }); - let datalist = labelEnter + let datalist = sliderWrap .append('datalist') + .attr('class', 'year-datalist') .attr('id', 'dateValues') datalist