summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-10-05 09:36:16 +0000
committerthomascube <thomas@roundcube.net>2011-10-05 09:36:16 +0000
commit537c394302df13e7623a36b28b11caceeaaa75b2 (patch)
tree015360eb1140122be8aa165802d6b4cc9e1b6b25
parent4aafd99f2d174672ef0923a246972aa04b9b9abd (diff)
Attach jquery UI date pickers to contact fields of type 'date'
-rw-r--r--program/js/app.js18
-rw-r--r--program/steps/addressbook/func.inc14
2 files changed, 32 insertions, 0 deletions
diff --git a/program/js/app.js b/program/js/app.js
index d2760b439..3ddd55862 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -4146,6 +4146,21 @@ function rcube_webmail()
this.selectedIndex = 0;
});
+ // enable date pickers on date fields
+ if ($.datepicker && this.env.date_format) {
+ $.datepicker.setDefaults({
+ dateFormat: this.env.date_format,
+ changeMonth: true,
+ changeYear: true,
+ yearRange: '-100:+10',
+ showOtherMonths: true,
+ selectOtherMonths: true,
+ monthNamesShort: this.env.month_names,
+ onSelect: function(dateText) { $(this).focus().val(dateText) }
+ });
+ $('input.datepicker').datepicker();
+ }
+
$("input[type='text']:visible").first().focus();
};
@@ -4401,6 +4416,9 @@ function rcube_webmail()
.appendTo(cell);
this.init_edit_field(col, input);
+
+ if (colprop.type == 'date' && $.datepicker)
+ input.datepicker();
}
else if (colprop.type == 'composite') {
var childcol, cp, first, templ, cols = [], suffices = [];
diff --git a/program/steps/addressbook/func.inc b/program/steps/addressbook/func.inc
index dd8856a90..fc559e6ae 100644
--- a/program/steps/addressbook/func.inc
+++ b/program/steps/addressbook/func.inc
@@ -422,6 +422,7 @@ function rcmail_get_type_label($type)
function rcmail_contact_form($form, $record, $attrib = null)
{
global $RCMAIL, $CONFIG;
+ static $jqueryui_loaded = 0;
// Allow plugins to modify contact form content
$plugin = $RCMAIL->plugins->exec_hook('contact_form', array(
@@ -608,6 +609,19 @@ function rcmail_contact_form($form, $record, $attrib = null)
if ($colprop['subtypes'] || $colprop['limit'] != 1)
$colprop['array'] = true;
+ // load jquery UI datepickert for date fields
+ if ($colprop['type'] == 'date') {
+ if (!$jqueryui_loaded++) {
+ $RCMAIL->plugins->load_plugin('jqueryui');
+ $RCMAIL->output->set_env('date_format', strtr($RCMAIL->config->get('date_format', 'Y-m-d'), array('y'=>'y', 'Y'=>'yy', 'm'=>'mm', 'n'=>'m', 'd'=>'dd', 'j'=>'d')));
+ foreach (array('jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec') as $month)
+ $month_names[] = rcube_label($month);
+ $RCMAIL->output->set_env('month_names', $month_names);
+ }
+ $colprop['class'] .= ($colprop['class'] ? ' ' : '') . 'datepicker';
+ $val = format_date($val, $RCMAIL->config->get('date_format', 'Y-m-d'));
+ }
+
$val = rcmail_get_edit_field($col, $val, $colprop, $colprop['type']);
$coltypes[$field]['count']++;
}