Skip to content

Commit 50d6e59

Browse files
committed
Merge pull request #2391 from dalpo/feature/bs-datetime-picker
Replace jQueryUI datetimepicker with jQuery Bootstrap datetimepicker
2 parents 86c8798 + cee8a5a commit 50d6e59

48 files changed

Lines changed: 13504 additions & 2197 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# RailsAdmin Changelog
22

3+
[Full Changelog](https://github.com/sferik/rails_admin/compare/v0.7.0...HEAD)
4+
5+
## [Master](https://github.com/sferik/rails_admin/tree/master)
6+
7+
### Changed
8+
- Replace old jQueryUI datepicker with jQuery Bootstrap datetimepicker ([#2391](https://github.com/sferik/rails_admin/pull/2391))
9+
- The L10n translation `admin.misc.filter_date_format` datepicker search filters, has been dropped in favor of field oriented configuration ([#2391](https://github.com/sferik/rails_admin/pull/2391))
10+
311
## [0.7.0](https://github.com/sferik/rails_admin/tree/v0.7.0) - 2015-08-16
412

513
[Full Changelog](https://github.com/sferik/rails_admin/compare/v0.6.8...v0.7.0)

app/assets/javascripts/rails_admin/jquery.ui.timepicker.js

Lines changed: 0 additions & 1437 deletions
This file was deleted.

app/assets/javascripts/rails_admin/ra.datetimepicker.js

Lines changed: 0 additions & 83 deletions
This file was deleted.

app/assets/javascripts/rails_admin/ra.filter-box.js

Lines changed: 53 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,20 @@
33
var filters;
44

55
$.filters = filters = {
6-
options: {
7-
regional: {
8-
datePicker: {
9-
dateFormat: 'mm/dd/yy'
10-
}
11-
}
12-
},
13-
14-
append: function(field_label, field_name, field_type, field_value, field_operator, field_options, index) {
15-
var value_name = 'f[' + field_name + '][' + index + '][v]';
6+
append: function(options) {
7+
options = options || {};
8+
var field_label = options['label'];
9+
var field_name = options['name'];
10+
var field_type = options['type'];
11+
var field_value = options['value'];
12+
var field_operator = options['operator'];
13+
var select_options = options['select_options'];
14+
var index = options['index'];
15+
var value_name = 'f[' + field_name + '][' + index + '][v]';
1616
var operator_name = 'f[' + field_name + '][' + index + '][o]';
17+
var control = null;
18+
var additional_control = null;
19+
1720
switch(field_type) {
1821
case 'boolean':
1922
var control = '<select class="input-sm form-control" name="' + value_name + '">' +
@@ -26,9 +29,13 @@
2629
'</select>';
2730
break;
2831
case 'date':
32+
additional_control =
33+
'<input size="20" class="date additional-fieldset default input-sm form-control" style="display:' + ((!field_operator || field_operator == "default") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[0] || '') + '" /> ' +
34+
'<input size="20" placeholder="-∞" class="date additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[1] || '') + '" /> ' +
35+
'<input size="20" placeholder="∞" class="date additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[2] || '') + '" />';
2936
case 'datetime':
3037
case 'timestamp':
31-
var control = '<select class="switch-additionnal-fieldsets input-sm form-control" name="' + operator_name + '">' +
38+
control = control || '<select class="switch-additionnal-fieldsets input-sm form-control" name="' + operator_name + '">' +
3239
'<option ' + (field_operator == "default" ? 'selected="selected"' : '') + ' data-additional-fieldset="default" value="default">' + RailsAdmin.I18n.t("date") + '</option>' +
3340
'<option ' + (field_operator == "between" ? 'selected="selected"' : '') + ' data-additional-fieldset="between" value="between">' + RailsAdmin.I18n.t("between_and_") + '</option>' +
3441
'<option ' + (field_operator == "today" ? 'selected="selected"' : '') + ' value="today">' + RailsAdmin.I18n.t("today") + '</option>' +
@@ -39,29 +46,29 @@
3946
'<option ' + (field_operator == "_not_null" ? 'selected="selected"' : '') + ' value="_not_null">' + RailsAdmin.I18n.t("is_present") + '</option>' +
4047
'<option ' + (field_operator == "_null" ? 'selected="selected"' : '') + ' value="_null" >' + RailsAdmin.I18n.t("is_blank") + '</option>' +
4148
'</select>'
42-
var additional_control =
43-
'<input class="date additional-fieldset default input-sm form-control" style="display:' + ((!field_operator || field_operator == "default") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[0] || '') + '" /> ' +
44-
'<input placeholder="-∞" class="date additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[1] || '') + '" /> ' +
45-
'<input placeholder="∞" class="date additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[2] || '') + '" />';
49+
additional_control = additional_control ||
50+
'<input size="25" class="datetime additional-fieldset default input-sm form-control" style="display:' + ((!field_operator || field_operator == "default") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[0] || '') + '" /> ' +
51+
'<input size="25" placeholder="-∞" class="datetime additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[1] || '') + '" /> ' +
52+
'<input size="25" placeholder="∞" class="datetime additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="text" name="' + value_name + '[]" value="' + (field_value[2] || '') + '" />';
4653
break;
4754
case 'enum':
4855
var multiple_values = ((field_value instanceof Array) ? true : false)
49-
var control = '<select style="display:' + (multiple_values ? 'none' : 'inline-block') + '" ' + (multiple_values ? '' : 'name="' + value_name + '"') + ' data-name="' + value_name + '" class="select-single input-sm form-control">' +
56+
control = '<select style="display:' + (multiple_values ? 'none' : 'inline-block') + '" ' + (multiple_values ? '' : 'name="' + value_name + '"') + ' data-name="' + value_name + '" class="select-single input-sm form-control">' +
5057
'<option value="_discard">...</option>' +
5158
'<option ' + (field_value == "_present" ? 'selected="selected"' : '') + ' value="_present">' + RailsAdmin.I18n.t("is_present") + '</option>' +
5259
'<option ' + (field_value == "_blank" ? 'selected="selected"' : '') + ' value="_blank">' + RailsAdmin.I18n.t("is_blank") + '</option>' +
5360
'<option disabled="disabled">---------</option>' +
54-
field_options +
61+
select_options +
5562
'</select>' +
5663
'<select multiple="multiple" style="display:' + (multiple_values ? 'inline-block' : 'none') + '" ' + (multiple_values ? 'name="' + value_name + '[]"' : '') + ' data-name="' + value_name + '[]" class="select-multiple input-sm form-control">' +
57-
field_options +
64+
select_options +
5865
'</select> ' +
5966
'<a href="#" class="switch-select"><i class="icon-' + (multiple_values ? 'minus' : 'plus') + '"></i></a>';
6067
break;
6168
case 'string':
6269
case 'text':
6370
case 'belongs_to_association':
64-
var control = '<select class="switch-additionnal-fieldsets input-sm form-control" value="' + field_operator + '" name="' + operator_name + '">' +
71+
control = '<select class="switch-additionnal-fieldsets input-sm form-control" value="' + field_operator + '" name="' + operator_name + '">' +
6572
'<option data-additional-fieldset="additional-fieldset"' + (field_operator == "like" ? 'selected="selected"' : '') + ' value="like">' + RailsAdmin.I18n.t("contains") + '</option>' +
6673
'<option data-additional-fieldset="additional-fieldset"' + (field_operator == "is" ? 'selected="selected"' : '') + ' value="is">' + RailsAdmin.I18n.t("is_exactly") + '</option>' +
6774
'<option data-additional-fieldset="additional-fieldset"' + (field_operator == "starts_with" ? 'selected="selected"' : '') + ' value="starts_with">' + RailsAdmin.I18n.t("starts_with") + '</option>' +
@@ -70,50 +77,57 @@
7077
'<option ' + (field_operator == "_not_null" ? 'selected="selected"' : '') + ' value="_not_null">' + RailsAdmin.I18n.t("is_present") + '</option>' +
7178
'<option ' + (field_operator == "_null" ? 'selected="selected"' : '') + ' value="_null">' + RailsAdmin.I18n.t("is_blank") + '</option>' +
7279
'</select>'
73-
var additional_control = '<input class="additional-fieldset input-sm form-control" style="display:' + (field_operator == "_blank" || field_operator == "_present" ? 'none' : 'inline-block') + ';" type="text" name="' + value_name + '" value="' + field_value + '" /> ';
80+
additional_control = '<input class="additional-fieldset input-sm form-control" style="display:' + (field_operator == "_blank" || field_operator == "_present" ? 'none' : 'inline-block') + ';" type="text" name="' + value_name + '" value="' + field_value + '" /> ';
7481
break;
7582
case 'integer':
7683
case 'decimal':
7784
case 'float':
78-
var control = '<select class="switch-additionnal-fieldsets input-sm form-control" name="' + operator_name + '">' +
85+
control = '<select class="switch-additionnal-fieldsets input-sm form-control" name="' + operator_name + '">' +
7986
'<option ' + (field_operator == "default" ? 'selected="selected"' : '') + ' data-additional-fieldset="default" value="default">' + RailsAdmin.I18n.t("number") + '</option>' +
8087
'<option ' + (field_operator == "between" ? 'selected="selected"' : '') + ' data-additional-fieldset="between" value="between">' + RailsAdmin.I18n.t("between_and_") + '</option>' +
8188
'<option disabled="disabled">---------</option>' +
8289
'<option ' + (field_operator == "_not_null" ? 'selected="selected"' : '') + ' value="_not_null">' + RailsAdmin.I18n.t("is_present") +'</option>' +
8390
'<option ' + (field_operator == "_null" ? 'selected="selected"' : '') + ' value="_null" >' + RailsAdmin.I18n.t("is_blank") + '</option>' +
8491
'</select>'
85-
var additional_control =
92+
additional_control =
8693
'<input class="additional-fieldset default input-sm form-control" style="display:' + ((!field_operator || field_operator == "default") ? 'inline-block' : 'none') + ';" type="' + field_type + '" name="' + value_name + '[]" value="' + (field_value[0] || '') + '" /> ' +
8794
'<input placeholder="-∞" class="additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="' + field_type + '" name="' + value_name + '[]" value="' + (field_value[1] || '') + '" /> ' +
8895
'<input placeholder="∞" class="additional-fieldset between input-sm form-control" style="display:' + ((field_operator == "between") ? 'inline-block' : 'none') + ';" type="' + field_type + '" name="' + value_name + '[]" value="' + (field_value[2] || '') + '" />';
8996
break;
9097
default:
91-
var control = '<input type="text" class="input-sm form-control" name="' + value_name + '" value="' + field_value + '"/> ';
98+
control = '<input type="text" class="input-sm form-control" name="' + value_name + '" value="' + field_value + '"/> ';
9299
break;
93100
}
94101

95-
var content = '<p class="filter form-search">' +
96-
'<span class="label label-info form-label"><a href="#" class="delete"><i class="icon-trash icon-white"></i></a> ' + field_label + '</span> ' +
97-
control + " " +
98-
(additional_control || '') +
99-
'</p> ';
100-
$('#filters_box').append(content);
101-
$('#filters_box .date').datepicker(this.options.regional.datePicker);
102+
var $content = $('<p>')
103+
.addClass('filter form-search')
104+
.append('<span class="label label-info form-label"><a href="#delete" class="delete"><i class="fa fa-trash-o fa-fw icon-white"></i></a> ' + field_label + '</span>')
105+
.append('&nbsp;' + control + '&nbsp;' + (additional_control || ''));
106+
107+
$('#filters_box').append($content);
108+
109+
$content.find('.date, .datetime').datetimepicker({
110+
locale: RailsAdmin.I18n.locale,
111+
showTodayButton: true,
112+
format: options['datetimepicker_format']
113+
});
114+
102115
$("hr.filters_box:hidden").show('slow');
103116
}
104117
}
105118

106119
$(document).on('click', "#filters a", function(e) {
107120
e.preventDefault();
108-
$.filters.append(
109-
$(this).data('field-label'),
110-
$(this).data('field-name'),
111-
$(this).data('field-type'),
112-
$(this).data('field-value'),
113-
$(this).data('field-operator'),
114-
$(this).data('field-options'),
115-
$.now().toString().slice(6,11)
116-
);
121+
$.filters.append({
122+
label: $(this).data('field-label'),
123+
name: $(this).data('field-name'),
124+
type: $(this).data('field-type'),
125+
value: $(this).data('field-value'),
126+
operator: $(this).data('field-operator'),
127+
select_options: $(this).data('field-options'),
128+
index: $.now().toString().slice(6,11),
129+
datetimepicker_format: $(this).data('field-datetimepicker-format')
130+
});
117131
});
118132

119133
$(document).on('click', "#filters_box .delete", function(e) {
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
class @RailsAdmin
1+
@RailsAdmin ||= {}
22
@RailsAdmin.I18n = class Locale
3-
@init: (@locale)->
3+
@init: (@locale, @translations)->
4+
moment.locale(@locale)
5+
46
@t:(key) ->
57
humanize = key.charAt(0).toUpperCase() + key.replace(/_/g, " ").slice(1)
6-
@locale[key] || humanize
8+
@translations[key] || humanize

app/assets/javascripts/rails_admin/ra.widgets.coffee

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,22 @@ $(document).on 'rails_admin.dom_ready', (e, content) ->
2020
$(that).val(hex)
2121
$(that).css('backgroundColor', '#' + hex)
2222

23-
# datetime
23+
# datetime picker
24+
$.fn.datetimepicker.defaults.icons =
25+
time: 'fa fa-clock-o'
26+
date: 'fa fa-calendar'
27+
up: 'fa fa-chevron-up'
28+
down: 'fa fa-chevron-down'
29+
previous: 'fa fa-angle-double-left'
30+
next: 'fa fa-angle-double-right'
31+
today: 'fa fa-dot-circle-o'
32+
clear: 'fa fa-trash'
33+
close: 'fa fa-times'
2434

2535
content.find('[data-datetimepicker]').each ->
26-
$(this).datetimepicker $(this).data('options')
36+
options = $(this).data('options')
37+
$.extend(options, {locale: RailsAdmin.I18n.locale})
38+
$(this).datetimepicker options
2739

2840
# enumeration
2941

app/assets/javascripts/rails_admin/rails_admin.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
//= require 'jquery-ui/effect'
55
//= require 'jquery-ui/sortable'
66
//= require 'jquery-ui/autocomplete'
7-
//= require 'jquery-ui/datepicker'
8-
//= require 'rails_admin/jquery.ui.timepicker'
9-
//= require 'rails_admin/ra.datetimepicker'
7+
//= require 'rails_admin/moment-with-locales'
8+
//= require 'rails_admin/bootstrap-datetimepicker'
109
//= require 'rails_admin/jquery.colorpicker'
1110
//= require 'rails_admin/ra.filter-box'
1211
//= require 'rails_admin/ra.filtering-multiselect'

app/assets/stylesheets/.gitkeep

Whitespace-only changes.

app/assets/stylesheets/rails_admin/base/theming.scss

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ $avatar-size: 30px;
88
body.rails_admin {
99

1010
.thumbnail {
11-
display:inline-block;
11+
display: inline-block;
1212
}
1313

1414
/* room for upper navbar */
@@ -58,6 +58,10 @@ body.rails_admin {
5858
}
5959
}
6060

61+
label.input-group-addon {
62+
cursor: pointer;
63+
}
64+
6165
/* fat labels in forms */
6266
.label.form-label {
6367
padding: 7px 7px 8px 7px;
@@ -127,11 +131,6 @@ body.rails_admin {
127131
display:block;
128132
}
129133

130-
/* Put form controls above siblings to make them accessible */
131-
.controls {
132-
z-index: 1;
133-
}
134-
135134
/* nested forms */
136135
.tab-content {
137136
clear: both;

0 commit comments

Comments
 (0)