rails_admin 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|