From 03d03e0cd37ffeca1a9b5c0158da3e9ddbd9aa38 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Lahmann?= <lahmann@ub.uni-leipzig.de>
Date: Tue, 30 Aug 2016 13:39:14 +0200
Subject: [PATCH] refs #8178: * added update to range slider in advanced search
 on changing input value

---
 .../templates/search/advanced/ranges.phtml    | 78 +++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 themes/finc/templates/search/advanced/ranges.phtml

diff --git a/themes/finc/templates/search/advanced/ranges.phtml b/themes/finc/templates/search/advanced/ranges.phtml
new file mode 100644
index 00000000000..e378b3d5301
--- /dev/null
+++ b/themes/finc/templates/search/advanced/ranges.phtml
@@ -0,0 +1,78 @@
+<!-- search - advanced - RANGES.phtml -->
+<? if (isset($this->ranges) && !empty($this->ranges)): ?>
+  <? $params = $this->searchParams($this->searchClassId);
+  $params->activateAllFacets(); ?>
+  <? foreach ($this->ranges as $current): $escField = $this->escapeHtmlAttr($current['field']); ?>
+    <? $extraInputAttribs = ($current['type'] == 'date') ? 'maxlength="4" ' : ''; ?>
+    <div class="medium-4 columns">
+    <fieldset>
+    <legend><?= $this->transEsc($params->getFacetLabel($current['field'])) ?></legend>
+    <input type="hidden" name="<?= $this->escapeHtmlAttr($current['type']) ?>range[]" value="<?= $escField ?>"/>
+    <div class="row">
+      <div class="medium-6 columns">
+        <label for="<?= $escField ?>from"><?= $this->transEsc('date_from') ?>:</label>
+        <input type="text" name="<?= $escField ?>from" id="<?= $escField ?>from" value="<?= isset($current['values'][0]) ? $this->escapeHtmlAttr($current['values'][0]):''?>" <?= $extraInputAttribs ?>/>
+      </div>
+      <div class="medium-6 columns">
+        <label for="<?= $escField ?>to"><?= $this->transEsc('date_to') ?>:</label>
+        <input type="text" name="<?= $escField ?>to" id="<?= $escField ?>to" value="<?= isset($current['values'][1]) ? $this->escapeHtmlAttr($current['values'][1]):''?>" <?= $extraInputAttribs ?>/>
+      </div>
+    </div>
+    <? if ($current['type'] == 'date'): ?>
+      <div class="slider-container">
+        <input type="text" id="<?= $escField ?><?= $this->escapeHtmlAttr($current['type']) ?>Slider">
+      </div>
+      <?
+      $this->headScript()->appendFile('vendor/bootstrap-slider.js');
+      $min = !empty($current['values'][0]) ? min($current['values'][0], 1400) : 1400;
+      $future = date('Y', time() + 31536000);
+      $max = !empty($current['values'][1]) ? max($future, $current['values'][1]) : $future;
+      $low = !empty($current['values'][0]) ? $current['values'][0] : $min;
+      $high = !empty($current['values'][1]) ? $current['values'][1] : $max;
+      $min = intval($min);
+      $max = intval($max);
+      $low = intval($low);
+      $high = intval($high);
+      $reversed = $this->layout()->rtl ? 'true' : 'false';
+      $init = !empty($current['values'][0]) ? 'fillTexts()' : '';
+      $script = <<<JS
+$(document).ready(function() {
+  var fillTexts = function() {
+	var v = {$escField}dateSlider.getValue();
+	$('#${escField}from').val(v[0]);
+	$('#${escField}to').val(v[1]);
+  };
+  var {$escField}dateSlider = $('#{$escField}dateSlider')
+	.slider({
+	  'min':{$min},
+	  'max':{$max},
+	  'handle':"square",
+	  'tooltip':"hide",
+      'value':[{$low},{$high}],
+      'reversed': {$reversed}
+	})
+	.on('slide', fillTexts)
+	.data('slider');
+  {$init}
+});
+
+$('#${escField}from, #${escField}to').change(function () {
+  var from = Number($('#{$escField}from').val());
+  var to   = Number($('#{$escField}to').val());
+  if (from <= 0) {
+      from = {$min};
+  }
+  if (to <= 0) {
+      to = {$max};
+  }
+  $('#{$escField}dateSlider').slider('setValue', [from, to], true);
+})
+JS;
+      ?>
+      <?= $this->inlineScript(\Zend\View\Helper\HeadScript::SCRIPT, $script, 'SET'); ?>
+      </fieldset>
+      </div>
+    <? endif; ?>
+  <? endforeach; ?>
+<? endif; ?>
+<!-- search - advanced - RANGES.phtml end -->
\ No newline at end of file
-- 
GitLab