rails_admin 0.7.0 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of rails_admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +13 -2
- data/README.md +2 -2
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +53 -39
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +50 -32
- data/app/assets/javascripts/rails_admin/ra.i18n.coffee +5 -3
- data/app/assets/javascripts/rails_admin/ra.widgets.coffee +21 -6
- data/app/assets/javascripts/rails_admin/rails_admin.js +2 -3
- data/app/assets/stylesheets/rails_admin/base/theming.scss +6 -7
- data/app/assets/stylesheets/rails_admin/custom/mixins.scss +3 -4
- data/app/assets/stylesheets/rails_admin/custom/theming.scss +4 -4
- data/app/assets/stylesheets/rails_admin/custom/variables.scss +4 -4
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +3 -3
- data/app/assets/stylesheets/rails_admin/themes/default/mixins.scss +2 -2
- data/app/assets/stylesheets/rails_admin/themes/default/theming.scss +3 -3
- data/app/assets/stylesheets/rails_admin/themes/default/variables.scss +3 -3
- data/app/controllers/rails_admin/application_controller.rb +0 -2
- data/app/controllers/rails_admin/main_controller.rb +6 -5
- data/app/helpers/rails_admin/application_helper.rb +3 -3
- data/app/helpers/rails_admin/main_helper.rb +45 -0
- data/app/views/layouts/rails_admin/application.html.haml +2 -2
- data/app/views/layouts/rails_admin/pjax.html.haml +2 -2
- data/app/views/rails_admin/main/_form_datetime.html.haml +4 -1
- data/app/views/rails_admin/main/_form_filtering_multiselect.html.haml +1 -0
- data/app/views/rails_admin/main/_submit_buttons.html.haml +1 -1
- data/app/views/rails_admin/main/export.html.haml +13 -13
- data/app/views/rails_admin/main/index.html.haml +20 -64
- data/config/locales/rails_admin.en.yml +0 -1
- data/lib/generators/rails_admin/templates/initializer.erb +3 -0
- data/lib/rails_admin.rb +2 -1
- data/lib/rails_admin/abstract_model.rb +14 -16
- data/lib/rails_admin/adapters/active_record.rb +17 -8
- data/lib/rails_admin/adapters/active_record/association.rb +5 -0
- data/lib/rails_admin/adapters/mongoid.rb +7 -12
- data/lib/rails_admin/adapters/mongoid/association.rb +5 -0
- data/lib/rails_admin/config/actions/export.rb +1 -1
- data/lib/rails_admin/config/fields.rb +1 -0
- data/lib/rails_admin/config/fields/association.rb +5 -0
- data/lib/rails_admin/config/fields/base.rb +4 -0
- data/lib/rails_admin/config/fields/factories/paperclip.rb +1 -1
- data/lib/rails_admin/config/fields/factories/refile.rb +25 -0
- data/lib/rails_admin/config/fields/types/active_record_enum.rb +5 -5
- data/lib/rails_admin/config/fields/types/all.rb +1 -0
- data/lib/rails_admin/config/fields/types/bson_object_id.rb +16 -2
- data/lib/rails_admin/config/fields/types/date.rb +19 -8
- data/lib/rails_admin/config/fields/types/datetime.rb +33 -117
- data/lib/rails_admin/config/fields/types/json.rb +5 -2
- data/lib/rails_admin/config/fields/types/refile.rb +27 -0
- data/lib/rails_admin/config/fields/types/serialized.rb +5 -2
- data/lib/rails_admin/config/fields/types/time.rb +6 -18
- data/lib/rails_admin/config/has_fields.rb +2 -2
- data/lib/rails_admin/config/lazy_model.rb +2 -2
- data/lib/rails_admin/config/proxyable/proxy.rb +2 -4
- data/lib/rails_admin/extensions/pundit.rb +3 -0
- data/lib/rails_admin/extensions/pundit/authorization_adapter.rb +63 -0
- data/lib/rails_admin/support/datetime.rb +99 -0
- data/lib/rails_admin/support/hash_helper.rb +28 -0
- data/lib/rails_admin/support/i18n.rb +41 -0
- data/lib/rails_admin/version.rb +2 -2
- data/vendor/assets/javascripts/rails_admin/bootstrap-datetimepicker.js +2444 -0
- data/vendor/assets/javascripts/rails_admin/moment-with-locales.js +9977 -0
- data/vendor/assets/stylesheets/rails_admin/_bootstrap-datetimepicker.scss +343 -0
- data/vendor/assets/stylesheets/rails_admin/bootstrap-datetimepicker-build.scss +16 -0
- metadata +14 -9
- data/app/assets/javascripts/rails_admin/jquery.ui.timepicker.js +0 -1437
- data/app/assets/javascripts/rails_admin/ra.datetimepicker.js +0 -83
- data/app/assets/stylesheets/rails_admin/jquery.ui.timepicker.scss +0 -68
- data/app/assets/stylesheets/rails_admin/ra.calendar-additions.scss +0 -45
- data/lib/rails_admin/i18n_support.rb +0 -39
- data/lib/rails_admin/support/core_extensions.rb +0 -30
@@ -1,83 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* RailsAdmin date/time picker @VERSION
|
3
|
-
*
|
4
|
-
* License
|
5
|
-
*
|
6
|
-
* http://www.railsadmin.org
|
7
|
-
*
|
8
|
-
* Depends:
|
9
|
-
* jquery.ui.core.js
|
10
|
-
* jquery.ui.widget.js
|
11
|
-
* jquery.ui.datepicker.js
|
12
|
-
* jquery.ui.timepicker.js (http://plugins.jquery.com/project/timepicker-by-fgelinas)
|
13
|
-
*/
|
14
|
-
(function($) {
|
15
|
-
|
16
|
-
$.widget("ra.datetimepicker", {
|
17
|
-
options: {
|
18
|
-
showDate: true,
|
19
|
-
showTime: true,
|
20
|
-
datepicker: {},
|
21
|
-
timepicker: {}
|
22
|
-
},
|
23
|
-
|
24
|
-
_create: function() {
|
25
|
-
var widget = this;
|
26
|
-
this.element.hide();
|
27
|
-
|
28
|
-
if (this.options.showTime) {
|
29
|
-
var $wrap = $('<div class="input-group"/>');
|
30
|
-
|
31
|
-
this.timepicker = $('<input class="TIMEPICKER" type="text" value="' + this.options.timepicker.value + '" />');
|
32
|
-
|
33
|
-
this.timepicker.css("width", "65px");
|
34
|
-
|
35
|
-
this.timepicker.addClass('form-control');
|
36
|
-
|
37
|
-
$wrap.append(this.timepicker);
|
38
|
-
|
39
|
-
$wrap.append($('<div class="input-group-addon"><i class="icon-time"></i></div>'));
|
40
|
-
|
41
|
-
$wrap.insertAfter(this.element);
|
42
|
-
|
43
|
-
this.timepicker.bind("change", function() { widget._onChange(); });
|
44
|
-
|
45
|
-
this.timepicker.timepicker(this.options.timepicker);
|
46
|
-
}
|
47
|
-
|
48
|
-
if (this.options.showDate) {
|
49
|
-
var $wrap = $('<div class="input-group"/>');
|
50
|
-
|
51
|
-
this.datepicker = $('<input type="text" value="' + this.options.datepicker.value + '" />');
|
52
|
-
|
53
|
-
this.datepicker.addClass('form-control');
|
54
|
-
|
55
|
-
$wrap.css("margin-right", "15px");
|
56
|
-
|
57
|
-
$wrap.append(this.datepicker);
|
58
|
-
|
59
|
-
$wrap.append($('<div class="input-group-addon"><i class="icon-calendar"></i></div>'));
|
60
|
-
|
61
|
-
$wrap.insertAfter(this.element);
|
62
|
-
|
63
|
-
this.datepicker.bind("change", function() { widget._onChange(); });
|
64
|
-
|
65
|
-
this.datepicker.datepicker(this.options.datepicker);
|
66
|
-
}
|
67
|
-
},
|
68
|
-
|
69
|
-
_onChange: function() {
|
70
|
-
var value = [];
|
71
|
-
|
72
|
-
if (this.options.showDate) {
|
73
|
-
value.push(this.datepicker.val());
|
74
|
-
}
|
75
|
-
|
76
|
-
if (this.options.showTime) {
|
77
|
-
value.push(this.timepicker.val());
|
78
|
-
}
|
79
|
-
|
80
|
-
this.element.val(value.join(" "));
|
81
|
-
}
|
82
|
-
});
|
83
|
-
})(jQuery);
|
@@ -1,68 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
* Timepicker stylesheet
|
3
|
-
* Highly inspired from datepicker
|
4
|
-
* FG - Nov 2010 - Web3R
|
5
|
-
*
|
6
|
-
* version 0.0.3 : Fixed some settings, more dynamic
|
7
|
-
* version 0.0.4 : Removed width:100% on tables
|
8
|
-
* version 0.1.1 : set width 0 on tables to fix an ie6 bug
|
9
|
-
*/
|
10
|
-
|
11
|
-
.ui-timepicker-inline { display: inline; }
|
12
|
-
|
13
|
-
#ui-timepicker-div { padding: 0.2em; background-color: #fff; }
|
14
|
-
.ui-timepicker-table { display: inline-table; width: 0; }
|
15
|
-
.ui-timepicker-table table { margin:0.15em 0 0 0; border-collapse: collapse; }
|
16
|
-
|
17
|
-
.ui-timepicker-hours, .ui-timepicker-minutes { padding: 0.2em; }
|
18
|
-
|
19
|
-
.ui-timepicker-table .ui-timepicker-title { line-height: 1.8em; text-align: center; }
|
20
|
-
.ui-timepicker-table td { padding: 0.1em; width: 2.2em; }
|
21
|
-
.ui-timepicker-table th.periods { padding: 0.1em; width: 2.2em; }
|
22
|
-
|
23
|
-
/* span for disabled cells */
|
24
|
-
.ui-timepicker-table td span {
|
25
|
-
display:block;
|
26
|
-
padding:0.2em 0.3em 0.2em 0.5em;
|
27
|
-
width: 1.2em;
|
28
|
-
text-align:right;
|
29
|
-
text-decoration:none;
|
30
|
-
}
|
31
|
-
/* anchors for clickable cells */
|
32
|
-
.ui-timepicker-table td a {
|
33
|
-
display:block;
|
34
|
-
padding:0.2em 0.3em 0.2em 0.5em;
|
35
|
-
width: 1.2em;
|
36
|
-
cursor: pointer;
|
37
|
-
text-align:right;
|
38
|
-
text-decoration:none;
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
|
-
/* buttons and button pane styling */
|
43
|
-
.ui-timepicker .ui-timepicker-buttonpane {
|
44
|
-
background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0;
|
45
|
-
}
|
46
|
-
.ui-timepicker .ui-timepicker-buttonpane button { margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
|
47
|
-
/* The close button */
|
48
|
-
.ui-timepicker .ui-timepicker-close { float: right }
|
49
|
-
|
50
|
-
/* the now button */
|
51
|
-
.ui-timepicker .ui-timepicker-now { float: left; }
|
52
|
-
|
53
|
-
/* the deselect button */
|
54
|
-
.ui-timepicker .ui-timepicker-deselect { float: left; }
|
55
|
-
|
56
|
-
|
57
|
-
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
|
58
|
-
.ui-timepicker-cover {
|
59
|
-
display: none; /*sorry for IE5*/
|
60
|
-
display/**/: block; /*sorry for IE5*/
|
61
|
-
position: absolute; /*must have*/
|
62
|
-
z-index: -1; /*must have*/
|
63
|
-
filter: mask(); /*must have*/
|
64
|
-
top: -4px; /*must have*/
|
65
|
-
left: -4px; /*must have*/
|
66
|
-
width: 200px; /*must have*/
|
67
|
-
height: 200px; /*must have*/
|
68
|
-
}
|
@@ -1,45 +0,0 @@
|
|
1
|
-
.ui-timepicker-table table th.periods {
|
2
|
-
z-index: 3!important;
|
3
|
-
padding:0;
|
4
|
-
}
|
5
|
-
|
6
|
-
.ui-datepicker {
|
7
|
-
/* fix glitches */
|
8
|
-
border-width:0px;
|
9
|
-
z-index: 1051!important;
|
10
|
-
table{
|
11
|
-
margin:0px;
|
12
|
-
}
|
13
|
-
/* make present day stand out */
|
14
|
-
td.ui-datepicker-today {
|
15
|
-
background:#ccc;
|
16
|
-
-webkit-box-shadow:inset 0 1px 1px #333;
|
17
|
-
-moz-box-shadow:inset 0 1px 1px #333;
|
18
|
-
box-shadow:0 1px 1px #333 inset;
|
19
|
-
.ui-state-highlight{
|
20
|
-
background:transparent;
|
21
|
-
border:none;
|
22
|
-
-webkit-box-shadow:none;
|
23
|
-
-moz-box-shadow:none;
|
24
|
-
box-shadow:none;
|
25
|
-
}
|
26
|
-
}
|
27
|
-
}
|
28
|
-
/* span for disabled cells */
|
29
|
-
.ui-timepicker-table td span {
|
30
|
-
width: auto;
|
31
|
-
}
|
32
|
-
/* anchors for clickable cells */
|
33
|
-
.ui-timepicker-table td a {
|
34
|
-
width: auto;
|
35
|
-
}
|
36
|
-
|
37
|
-
.ui-state-hover,
|
38
|
-
.ui-widget-content .ui-state-hover,
|
39
|
-
.ui-widget-header .ui-state-hover,
|
40
|
-
.ui-state-focus,
|
41
|
-
.ui-widget-content .ui-state-focus,
|
42
|
-
.ui-widget-header .ui-state-focus {
|
43
|
-
background-color: transparent;
|
44
|
-
cursor: pointer;
|
45
|
-
}
|
@@ -1,39 +0,0 @@
|
|
1
|
-
require 'i18n'
|
2
|
-
|
3
|
-
module RailsAdmin
|
4
|
-
module I18nSupport
|
5
|
-
def abbr_day_names
|
6
|
-
I18n.t('date.abbr_day_names', raise: true)
|
7
|
-
rescue I18n::ArgumentError
|
8
|
-
I18n.t('date.abbr_day_names', locale: :en)
|
9
|
-
end
|
10
|
-
|
11
|
-
def abbr_month_names
|
12
|
-
begin
|
13
|
-
names = I18n.t('date.abbr_month_names', raise: true)
|
14
|
-
rescue I18n::ArgumentError
|
15
|
-
names = I18n.t('date.abbr_month_names', locale: :en)
|
16
|
-
end
|
17
|
-
names[1..-1]
|
18
|
-
end
|
19
|
-
|
20
|
-
def date_format
|
21
|
-
I18n.t('date.formats.default', default: I18n.t('date.formats.default', locale: :en))
|
22
|
-
end
|
23
|
-
|
24
|
-
def day_names
|
25
|
-
I18n.t('date.day_names', raise: true)
|
26
|
-
rescue I18n::ArgumentError
|
27
|
-
I18n.t('date.day_names', locale: :en)
|
28
|
-
end
|
29
|
-
|
30
|
-
def month_names
|
31
|
-
begin
|
32
|
-
names = I18n.t('date.month_names', raise: true)
|
33
|
-
rescue I18n::ArgumentError
|
34
|
-
names = I18n.t('date.month_names', locale: :en)
|
35
|
-
end
|
36
|
-
names[1..-1]
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
class Hash
|
2
|
-
def symbolize
|
3
|
-
Hash.symbolize_hash(self)
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.symbolize_hash(obj)
|
7
|
-
case obj
|
8
|
-
when Array
|
9
|
-
obj.each_with_object([]) do |val, res|
|
10
|
-
res << case val
|
11
|
-
when Hash, Array then symbolize_hash(val)
|
12
|
-
when String then val.to_sym
|
13
|
-
else val
|
14
|
-
end
|
15
|
-
end
|
16
|
-
when Hash
|
17
|
-
obj.each_with_object({}) do |(key, val), res|
|
18
|
-
nkey = key.is_a?(String) ? key.to_sym : key
|
19
|
-
nval = case val
|
20
|
-
when Hash, Array then symbolize_hash(val)
|
21
|
-
when String then val.to_sym
|
22
|
-
else val
|
23
|
-
end
|
24
|
-
res[nkey] = nval
|
25
|
-
end
|
26
|
-
else
|
27
|
-
obj
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|