You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
199 lines
7.5 KiB
199 lines
7.5 KiB
/** |
|
* @file |
|
* The EBSCO module javascript. |
|
* |
|
* Copyright [2017] [EBSCO Information Services] |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
(function ($) { |
|
$(document).ready(function () { |
|
|
|
var updatePublishDateSlider = function () { |
|
var from = parseInt($('#DT1').val()); |
|
var min = 1000; |
|
|
|
if (!from || from < min) { |
|
from = min; |
|
} |
|
|
|
// and keep the max at 1 years from now |
|
var max = (new Date()).getFullYear() + 1; |
|
var to = max; |
|
|
|
// update the slider with the new min/max/values |
|
$('#ebsco-advanced-search-sliderDT1').slider('option', { |
|
min: min, max: max, values: [from, to] |
|
}); |
|
}; |
|
|
|
/** |
|
* Self executing function |
|
*/ |
|
var onLoad = function () { |
|
// EBSCO/Search : Expand limiters |
|
$('._more_limiters').live('click', function (event) { |
|
$("#moreLimiters").hide(); |
|
$("#limitersHidden").removeClass("offscreen"); |
|
}); |
|
|
|
// Search : Collapse limiters |
|
$('._less_limiters').live('click', function (event) { |
|
$("#moreLimiters").show(); |
|
$("#limitersHidden").addClass("offscreen"); |
|
}); |
|
|
|
// EBSCO/Search : Collapse / expand facets |
|
$('.expandable').live('click', function (event) { |
|
var span = $(this).find('dt span'), |
|
id = $(this).attr('id').replace('facet-',''); |
|
if (span.length > 0) { |
|
if (span.hasClass('collapsed')) { |
|
$('#narrowGroupHidden_' + id).show(); |
|
span.removeClass('collapsed'); |
|
span.addClass('expanded'); |
|
} else if (span.hasClass('expanded')) { |
|
$('#narrowGroupHidden_' + id).hide(); |
|
span.removeClass('expanded'); |
|
span.addClass('collapsed'); |
|
} |
|
} else if ($(this).attr('href')) { |
|
var dl = $(this).parents('dl'), |
|
id = dl.attr('id').replace('narrowGroupHidden_', ''), |
|
span = $('#facet-' + id).find('dt span'); |
|
dl.hide(); |
|
span.removeClass('expanded'); |
|
span.addClass('collapsed'); |
|
} |
|
}); |
|
|
|
// EBSCO/Search : Less facets |
|
$('._less_facets').live('click', function (event) { |
|
var id = $(this).attr('id').replace('less-facets-',''); |
|
var dl = $('#facet-' + id); |
|
dl.trigger('click'); |
|
}); |
|
|
|
// Search : Ajax request the Record action |
|
$('._record_link').live('click', function (event) { |
|
var element = $(this); |
|
var position = element.position(); |
|
event.preventDefault(); |
|
$('#spinner').show(); |
|
$("#spinner").offset({left:event.pageX - 18,top:event.pageY - 18}); |
|
|
|
$.get(element.attr('href'), function (data) { |
|
$('#main').html(data); |
|
$('#spinner').hide(); |
|
}); |
|
}); |
|
|
|
// Advanced Search : Add a new search term |
|
$('._add_row').live('click', function (event) { |
|
event.preventDefault(); |
|
var newSearch = $('#advanced-row-template').html(); |
|
var rows = $('._advanced-row'); |
|
if (rows) { |
|
// Find the index of the next row |
|
var index = rows.length - 1; // one row is the template itself, so don't count it |
|
// Replace NN string with the index number |
|
newSearch = newSearch.replace(/NN/g, index); |
|
lastSearch = $('#edit-add-row'); |
|
lastSearch.before(newSearch); |
|
} |
|
}); |
|
|
|
// Advanced Search : Delete an advanced search row |
|
$('._delete_row').live('click', function (event) { |
|
event.preventDefault(); |
|
$(this).parents('._advanced-row').remove(); |
|
}); |
|
|
|
// Advanced Search : Reset the form fields to default values |
|
$('.ebsco-advanced input[name="reset"]').live('click', function (event) { |
|
event.preventDefault(); |
|
$('#ebsco-advanced-search-form').find('input, select').each(function (index) { |
|
var type = this.type; |
|
switch(type) { |
|
case 'text': |
|
$(this).val(''); |
|
break; |
|
case 'checkbox': |
|
$(this).attr('checked', ''); |
|
break; |
|
case 'select-multiple': |
|
$(this).children('option').each(function (index) { |
|
$(this).attr('selected', ''); |
|
}); |
|
break; |
|
case 'select-one': |
|
$(this).children('option').each(function (index) { |
|
$(this).attr('selected', ''); |
|
}); |
|
// for IE |
|
$(this).children('option:first').attr('selected', 'selected'); |
|
break; |
|
case 'radio': |
|
$(this).attr('checked', ''); |
|
$(this).parent().siblings().first().children('input:first').attr('checked', 'checked'); |
|
break; |
|
} |
|
}); |
|
}); |
|
|
|
// Auto submit the seelct boxes with '_jump_menu' class |
|
$('._jump_menu').live('change', function (event) { |
|
var name = $(this).attr('id').replace('ebsco-', ''), |
|
value = $(this).attr('value'), |
|
url = $('#ebsco-sort-form').attr('action'); |
|
url += "&" + name + "=" + value; |
|
window.location.href = url; |
|
}); |
|
|
|
// Retain search filters checkbox functionality |
|
$('#edit-remember').live('click', function (event) { |
|
$("#ebsco-basic-search-form :input[type='checkbox'][name^='filter[']").attr('checked', $(this).attr('checked')); |
|
}); |
|
|
|
// Advanced Search : handle 'Date Published from' limiter |
|
// Create the UI slider (if slider function is defined) |
|
if(typeof $("#ebsco-advanced-search-sliderDT1").slider == 'function') { |
|
|
|
$('#ebsco-advanced-search-sliderDT1').slider({ |
|
range: true, |
|
min: 0, max: 9999, values: [0, 9999], |
|
slide: function (event, ui) { |
|
$('#DT1').val(ui.values[0]); |
|
if(ui.values[0] == 1000) { |
|
$('#ebsco-advanced-search-limiterDT1').val(''); |
|
} else { |
|
$('#ebsco-advanced-search-limiterDT1').val('addlimiter(DT1:' + ui.values[0] + '-1/2013-1)'); |
|
} |
|
} |
|
}); |
|
|
|
// initialize the slider with the original values |
|
// in the text boxes |
|
updatePublishDateSlider(); |
|
|
|
// when user enters values into the boxes |
|
// the slider needs to be updated too |
|
$('#DT1').change(function(){ |
|
updatePublishDateSlider(); |
|
}); |
|
} |
|
}(); |
|
|
|
|
|
}); |
|
})(jQuery);
|
|
|