});
+
+ $(document).ready(
+ function () {
+ $('#' + jq('_date_preset')).change(
+ function ($e) {
+ var $option = $('option:selected', this);
+
+ $('#' + jq('')).val( $option.attr('from_value') );
+ $('#' + jq('')).val( $option.attr('to_value') );
+ }
+ );
+ }
+ );
Index: kernel/db/db_tag_processor.php
===================================================================
--- kernel/db/db_tag_processor.php (revision 13890)
+++ kernel/db/db_tag_processor.php (working copy)
@@ -2134,6 +2134,67 @@
}
/**
+ * Prints date range filter presets
+ *
+ * @param Array $params
+ * @return string
+ */
+ function DateRangeFilterPresets($params)
+ {
+ // get date format, used in filter
+ if ($params['calendar_format']) {
+ $format = $params['calendar_format'];
+ }
+ else {
+ $format = $this->Format( Array ('field' => $params['sort_field'] . '_date', 'input_format' => 1) );
+ }
+
+ $presets = Array (
+ 'today' => Array (
+ 'title' => 'la_opt_Today',
+ 'from_value' => adodb_date($format),
+ 'to_value' => adodb_date($format)
+ ),
+
+ 'yesterday' => Array (
+ 'title' => 'la_opt_Yesterday',
+ 'from_value' => adodb_date($format, strtotime('-1 day')),
+ 'to_value' => adodb_date($format, strtotime('-1 day'))
+ ),
+
+ 'last_week' => Array (
+ 'title' => 'la_opt_LastWeek',
+ 'from_value' => adodb_date($format, strtotime('-6 days')),
+ 'to_value' => adodb_date($format, adodb_mktime()),
+ ),
+
+ 'last_month' => Array (
+ 'title' => 'la_opt_LastMonth',
+ 'from_value' => adodb_date($format, strtotime('-29 days')),
+ 'to_value' => adodb_date($format, adodb_mktime()),
+ ),
+ );
+
+ $ret = '';
+ $block_params = $this->prepareTagParams($params);
+ $block_params['name'] = $params['render_as'];
+
+ // get current filter values
+ $from_value = $this->SearchField( array_merge($params, Array ('type' => 'from')) );
+ $to_value = $this->SearchField( array_merge($params, Array ('type' => 'to')) );
+
+ foreach ($presets as $preset_name => $preset_data) {
+ $block_params['preset'] = $preset_name;
+ $block_params = array_merge($block_params, $preset_data);
+ $block_params['selected'] = $preset_data['from_value'] == $from_value && $preset_data['to_value'] == $to_value;
+
+ $ret .= $this->Application->ParseBlock($block_params);
+ }
+
+ return $ret;
+ }
+
+ /**
* Tells, that at least one of search filters is used by now
*
* @param Array $params
Index: units/admin/admin_events_handler.php
===================================================================
--- units/admin/admin_events_handler.php (revision 13862)
+++ units/admin/admin_events_handler.php (working copy)
@@ -315,7 +315,7 @@
// numeric null field
if (preg_match('/(On|Date)$/', $field_info['Field']) || $field_info['Field'] == 'Modified') {
$field_options['formatter'] = 'kDateFormatter';
- $grid_col_options['filter_block'] = 'grid_date_rage_filter';
+ $grid_col_options['filter_block'] = 'grid_date_range_filter';
}
}
|