| Current Path : /home/b/o/u/bourgleram/www/398a1/ |
| Current File : /home/b/o/u/bourgleram/www/398a1/dateur.tar |
jquery.time_picker.js 0000666 00000015326 15252626471 0010740 0 ustar 00 /*
* Copyright (c) 2006 Sam Collett (http://www.texotela.co.uk)
* Licensed under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*/
/*
* A time picker for jQuery
* Based on original timePicker by Sam Collet (http://www.texotela.co.uk)
* @name timePicker
* @version 0.1
* @author Anders Fajerson (http://perifer.se)
* @example $("#mytime").timePicker();
* @example $("#mytime").timePicker({step:30, startTime:"15:00", endTime:"18:00"});
*/
;if (window.jQuery)
(function($){
$.fn.timePicker = function(options) {
// Build main options before element iteration
var settings = $.extend({}, $.fn.timePicker.defaults, options);
return this.each(function() {
$.timePicker(this, settings);
});
};
$.timePicker = function (elm, settings) {
var elm = $(elm)[0];
return elm.timePicker || (elm.timePicker = new jQuery._timePicker(elm, settings));
};
$._timePicker = function(elm, settings) {
var tpOver = false;
var startTime = normaliseTime(settings.startTime);
var endTime = normaliseTime(settings.endTime);
$(elm).attr('autocomplete', 'OFF'); // Disable browser autocomplete
var times = [];
var time = new Date(startTime); // Create a new date object.
while(time <= endTime) {
times[times.length] = formatTime(time, settings);
time = new Date(time.setMinutes(time.getMinutes() + settings.step));
}
var $tpDiv = $('<div class="time-picker'+ (settings.show24Hours ? '' : ' time-picker-12hours') +'"></div>');
var $tpList = $('<ul></ul>');
// Build the list.
for(var i = 0; i < times.length; i++) {
$tpList.append("<li>" + times[i] + "</li>");
}
$tpDiv.append($tpList);
// Store element offset.
var elmOffset = $(elm).offset();
// Append the timPicker to the body and position it.
$tpDiv.appendTo('body').css({'top':elmOffset.top, 'left':elmOffset.left}).hide();
$("li", $tpList).unbind().mouseover(function() {
$("li.selected", $tpDiv).removeClass("selected"); // TODO: only needs to run once.
$(this).addClass("selected");
}).mousedown(function() {
tpOver = true;
}).click(function() {
setTimeVal(elm, this, $tpDiv, settings);
tpOver = false;
});
// Store ananymous function in variable since it's used twice.
var showPicker = function() {
var elmOffset = $(elm).offset();
$tpDiv.css({'top':elmOffset.top, 'left':elmOffset.left}).show(); // Show picker.
$tpDiv.mouseover(function() { // Have to use mouseover instead of mousedown because of Opera
tpOver = true;
}).mouseout(function() {
tpOver = false;
});
$("li", $tpDiv).removeClass("selected");
// Try to find a time in the list that matches the entered time.
var time = this.value ? timeStringToDate(this.value, settings) : startTime;
var startMin = startTime.getHours() * 60 + startTime.getMinutes();
var min = (time.getHours() * 60 + time.getMinutes()) - startMin;
var steps = Math.round(min / settings.step);
var roundTime = normaliseTime(new Date(2001, 0, 0, 0, (steps * settings.step + (startMin)), 0));
roundTime = (startTime < roundTime && roundTime < endTime) ? roundTime : startTime;
var $matchedTime = $("li:contains(" + formatTime(roundTime, settings) + ")", $tpDiv);
if ($matchedTime.length) {
$matchedTime.addClass("selected");
// Scroll to matched time.
$tpDiv[0].scrollTop = $matchedTime[0].offsetTop;
}
};
$(elm).unbind().focus(showPicker).click(showPicker)
// Hide timepicker on blur
.blur(function() {
if (!tpOver && $tpDiv[0].parentNode) { // Don't remove when timePicker is clicked or when already removed
$tpDiv.hide();
}
})
// Key support
.keypress(function(e) {
switch (e.keyCode) {
case 38: // Up arrow.
case 63232: // Safari up arrow.
var $selected = $("li.selected", $tpList);
var prev = $selected.prev().addClass("selected")[0];
if (prev) {
$selected.removeClass("selected");
$tpDiv[0].scrollTop = prev.offsetTop;
}
return false;
break;
case 40: // Down arrow.
case 63233: // Safari down arrow.
var $selected = $("li.selected", $tpList);
var next = $selected.length ? $selected.next().addClass("selected")[0] : $("li:first").addClass("selected")[0];
if (next) {
$selected.removeClass("selected");
$tpDiv[0].scrollTop = next.offsetTop;
}
return false;
break;
case 13: // Enter
if (!$tpDiv.is(":hidden")) {
var sel = $("li.selected", $tpList)[0];
setTimeVal(elm, sel, $tpDiv, settings);
return false;
}
break;
}
});
// Helper function to get an inputs current time as Date object.
// Returns a Date object.
this.getTime = function() {
return timeStringToDate(elm.value, settings);
};
// Helper function to set a time input.
// Takes a Date object.
this.setTime = function(time) {
elm.value = formatTime(normaliseTime(time), settings);
// Trigger element's change events.
$(elm).change();
};
}; // End fn;
// Plugin defaults.
$.fn.timePicker.defaults = {
step:30,
startTime: new Date(0, 0, 0, 0, 0, 0),
endTime: new Date(0, 0, 0, 23, 30, 0),
separator: ':',
show24Hours: true
};
// Private functions.
function setTimeVal(elm, sel, $tpDiv, settings) {
// Update input field
elm.value = $(sel).text();
// Trigger element's change events.
$(elm).change();
// Keep focus for all but IE (which doesn't like it)
if (!$.browser.msie) {
elm.focus();
}
// Hide picker
$tpDiv.hide();
}
function formatTime(time, settings) {
var h = time.getHours();
var hours = settings.show24Hours ? h : (((h + 11) % 12) + 1);
var minutes = time.getMinutes();
return formatNumber(hours) + settings.separator + formatNumber(minutes) + (settings.show24Hours ? '' : ((h < 12) ? ' AM' : ' PM'));
}
function formatNumber(value) {
return (value < 10 ? '0' : '') + value;
}
function timeStringToDate(input, settings) {
if (input) {
var array = input.split(settings.separator);
var hours = parseFloat(array[0]);
var minutes = parseFloat(array[1]);
var time = new Date(0, 0, 0, hours, minutes, 0);
return normaliseTime(time);
}
return null;
}
/* Normalise time object to a common date. */
function normaliseTime(time) {
time.setFullYear(2001);
time.setMonth(0);
time.setDate(0);
return time;
}
})(jQuery);
jquery.dateur.js.html 0000666 00000000503 15252626471 0010663 0 ustar 00 #HTTP_HEADER{Content-Type: text/js;}
[(#REM)<script>]
if (!jQuery.fn.datepicker){
#INCLURE{prive/javascript/ui/jquery.ui.core.js}
#INCLURE{prive/javascript/ui/jquery.ui.widget.js}
#INCLURE{prive/javascript/ui/jquery.ui.datepicker.js}
}
if (!jQuery.fn.timePicker){
#INCLURE{prive/formulaires/dateur/jquery.time_picker.js}
}
inc-dateur.html 0000666 00000007332 15252626471 0007510 0 ustar 00 <script type='text/javascript'>/*<![CDATA[*/
function date_picker_options(){
return {
buttonText: '<:afficher_calendrier|texte_script:>',
buttonImage: '#CHEMIN_IMAGE{calendrier-16.png}',
buttonImageOnly: true,
closeText: '<:bouton_fermer|texte_script:>',
prevText: '<:precedent|texte_script:>',
nextText: '<:suivant|texte_script:>',
currentText: '<:date_aujourdhui|texte_script:>',
closeText: '<:bouton_fermer|texte_script:>',
monthNames: [
'<:date_mois_1|texte_script:>','<:date_mois_2|texte_script:>','<:date_mois_3|texte_script:>','<:date_mois_4|texte_script:>','<:date_mois_5|texte_script:>','<:date_mois_6|texte_script:>',
'<:date_mois_7|texte_script:>','<:date_mois_8|texte_script:>','<:date_mois_9|texte_script:>','<:date_mois_10|texte_script:>','<:date_mois_11|texte_script:>','<:date_mois_12|texte_script:>'],
monthNamesShort: [
'<:date_mois_1_abbr|texte_script:>','<:date_mois_2_abbr|texte_script:>','<:date_mois_3_abbr|texte_script:>','<:date_mois_4_abbr|texte_script:>','<:date_mois_5_abbr|texte_script:>','<:date_mois_6_abbr|texte_script:>',
'<:date_mois_7_abbr|texte_script:>','<:date_mois_8_abbr|texte_script:>','<:date_mois_9_abbr|texte_script:>','<:date_mois_10_abbr|texte_script:>','<:date_mois_11_abbr|texte_script:>','<:date_mois_12_abbr|texte_script:>'],
dayNames: [
'<:date_jour_1|texte_script:>','<:date_jour_2|texte_script:>','<:date_jour_3|texte_script:>','<:date_jour_4|texte_script:>',
'<:date_jour_5|texte_script:>','<:date_jour_6|texte_script:>','<:date_jour_7|texte_script:>'],
dayNamesShort: [
'<:date_jour_1_abbr|texte_script:>','<:date_jour_2_abbr|texte_script:>','<:date_jour_3_abbr|texte_script:>','<:date_jour_4_abbr|texte_script:>',
'<:date_jour_5_abbr|texte_script:>','<:date_jour_6_abbr|texte_script:>','<:date_jour_7_abbr|texte_script:>'],
dayNamesMin: [
'<:date_jour_1_initiale|texte_script:>','<:date_jour_2_initiale|texte_script:>','<:date_jour_3_initiale|texte_script:>','<:date_jour_4_initiale|texte_script:>',
'<:date_jour_5_initiale|texte_script:>','<:date_jour_6_initiale|texte_script:>','<:date_jour_7_initiale|texte_script:>'],
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: [(#ENV{lang}|lang_dir|=={rtl}|?{true,false})],
changeMonth: true,
changeYear: true,
showOtherMonths: true,
selectOtherMonths: true,
yearRange: "c-60:c+40"
};
}
function date_picker_init(){
jQuery('input.date').not('.datePicker')
.addClass('datePicker').each(function(){
var options = {showOn: 'button'};
if (jQuery(this).attr('data-startDate'))
options.minDate = jQuery(this).attr('data-startDate');
if (jQuery(this).attr('data-endDate'))
options.maxDate = jQuery(this).attr('data-endDate');
if (jQuery(this).attr('data-yearRange'))
options.yearRange = jQuery(this).attr('data-yearRange');
jQuery(this)
.datepicker(jQuery.extend(date_picker_options(),options))
.trigger('datePickerLoaded');
});
jQuery("input.heure").not('.timePicker').addClass('timePicker').timePicker({step:#ENV{heure_pas,30}});
}
var date_picker_loading;
if (window.jQuery){
jQuery(function(){
if (jQuery('input.date,input.heure').length
&& typeof date_picker_loading=="undefined"){
date_picker_loading = jQuery.getScript('#PRODUIRE{fond=formulaires/dateur/jquery.dateur.js}');
date_picker_loading.done(function(){
date_picker_init();
onAjaxLoad(date_picker_init);
})
}
});
}
/*]]>*/</script>
<style type="text/css">
[(#INCLURE{formulaires/dateur/time_picker.css}|compacte{css})]
img.ui-datepicker-trigger { display: inline-block; padding: 0; margin: 0px 0 0 -19px; vertical-align: middle; }
div.time-picker {font-size:11px; width:5em; /* needed for IE */}
.formulaire_spip input.date {width:9em;padding-right:25px;}
.formulaire_spip input.heure {width:7em;}
</style>
time_picker.css 0000666 00000000666 15252626471 0007577 0 ustar 00 div.time-picker {
position: absolute;
height: 200px;
width:4em; /* needed for IE */
overflow: auto;
background: #fff;
border: 1px solid #000;
z-index: 99998;
}
div.time-picker-12hours {
width:6em; /* needed for IE */
}
div.time-picker ul {
list-style-type: none;
margin: 0;
padding: 0;
}
div.time-picker li {
padding: 1px;
cursor: pointer;
}
div.time-picker li.selected {
background: #316AC5;
color: #fff;
}