Index: contrib/datepicker/datepicker.js
===================================================================
RCS file: contrib/datepicker/datepicker.js
diff -N contrib/datepicker/datepicker.js
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ contrib/datepicker/datepicker.js 2 Jul 2009 14:13:52 -0000
@@ -0,0 +1,59 @@
+/* $Id$ */
+Drupal.behaviors.datepicker = function(context) {
+ for(field in Drupal.settings.datepicker.fields) {
+ var current_field = Drupal.settings.datepicker.fields[field];
+ $('#edit-event-' + current_field + '-exploded-wrapper>div.container-inline').append($('').attr({id : 'event-datepicker-' + current_field, href : '#'}).text(Drupal.t('Select date')));
+ $('#event-datepicker-' + current_field)
+ .datePicker(
+ {
+ createButton:false,
+ startDate:'01/01/2007',
+ endDate:'31/12/2012'
+ }
+ ).bind(
+ 'click',
+ function() {
+ updateSelects(this,$(this).dpGetSelected()[0]);
+ $(this).dpDisplay();
+ return false;
+ }
+ ).bind(
+ 'dateSelected',
+ function(e, selectedDate, $td, status) {
+ updateSelects(this,selectedDate);
+ }
+ ).bind(
+ 'dpClosed',
+ function(e, selected) {
+ updateSelects(this,selected[0]);
+ }
+ );
+
+ var updateSelects = function (trigger, date) {
+ var selectedDate = new Date(date);
+ var fieldname = trigger.id.replace('event-datepicker-','');
+ $('#edit-event-' + fieldname + '-exploded-day').val(selectedDate.getDate());
+ $('#edit-event-' + fieldname + '-exploded-month option[value=' + selectedDate.asString('mm') + ']').attr('selected', 'selected');
+ $('#edit-event-' + fieldname + '-exploded-year').val(selectedDate.getFullYear());
+ }
+
+ // listen for when the selects are changed and update the picker
+ $('#edit-event-' + current_field + '-exploded-day, #edit-event-' + current_field + '-exploded-month, #edit-event-' + current_field + '-exploded-year')
+ .bind(
+ 'change',
+ function() {
+ var reg_field = new RegExp("^edit-event-([^-]+)-.+",'i');
+ var fieldname = this.id.replace(reg_field,'$1');
+ var d = new Date(
+ $('#edit-event-' + fieldname + '-exploded-year').val(),
+ $('#edit-event-' + fieldname + '-exploded-month').val()-1,
+ $('#edit-event-' + fieldname + '-exploded-day').val()
+ );
+ $('#event-datepicker-' + fieldname).dpSetSelected(d.asString());
+ }
+ );
+
+ // and update the datePicker to reflect it...
+ $('#edit-event-' + current_field + '-exploded-day').trigger('change');
+ }
+};
Index: contrib/datepicker/datepicker.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/event/contrib/datepicker/datepicker.module,v
retrieving revision 1.1
diff -u -p -r1.1 datepicker.module
--- contrib/datepicker/datepicker.module 28 Jun 2009 22:11:47 -0000 1.1
+++ contrib/datepicker/datepicker.module 2 Jul 2009 13:57:55 -0000
@@ -1,85 +1,38 @@
'. t('Select start date') .'';
+ drupal_add_css($path . '/datePicker.css');
+ drupal_add_js($path . '/date.js');
+ drupal_add_js($path . '/jquery.datePicker.js');
+
+ // Define the fields which should have a datepicker
datepicker_add_picker('start');
- $form['event']['end_exploded']['#suffix'] = ''. t('Select end date') .'';
datepicker_add_picker('end');
+
+ // datepicker.js will link each of the added fields to a datepicker
+ drupal_add_js($path . '/datepicker.js','module','footer');
}
}
}
-function datepicker_add_picker($value) {
-$js = <<
+ * elements, it is also used to define the ID of the trigger link
+ */
+function datepicker_add_picker($field) {
+ // Add the field name to Drupal.settings.datepicker.fields
+ drupal_add_js(array('datepicker' => array('fields' => $field)), 'setting');
}
-