rails_admin 0.6.5 → 0.6.6
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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-affix.js +99 -74
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-alert.js +48 -55
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-button.js +70 -65
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-carousel.js +163 -147
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-collapse.js +117 -114
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-dropdown.js +89 -107
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-modal.js +208 -175
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-popover.js +77 -78
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-scrollspy.js +137 -129
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tab.js +85 -101
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-tooltip.js +364 -268
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-transition.js +51 -52
- data/app/assets/javascripts/rails_admin/bootstrap/bootstrap-typeahead.js +1782 -335
- data/app/assets/javascripts/rails_admin/ra.filter-box.js +1 -1
- data/app/assets/javascripts/rails_admin/ra.filtering-multiselect.js +3 -3
- data/app/assets/javascripts/rails_admin/ra.filtering-select.js +1 -1
- data/app/assets/javascripts/rails_admin/ra.remote-form.js +6 -2
- data/app/assets/stylesheets/rails_admin/base/theming.scss +34 -14
- data/app/assets/stylesheets/rails_admin/bootstrap/_alerts.scss +47 -58
- data/app/assets/stylesheets/rails_admin/bootstrap/_badges.scss +57 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_breadcrumbs.scss +12 -10
- data/app/assets/stylesheets/rails_admin/bootstrap/_button-groups.scss +163 -152
- data/app/assets/stylesheets/rails_admin/bootstrap/_buttons.scss +98 -169
- data/app/assets/stylesheets/rails_admin/bootstrap/_carousel.scss +151 -66
- data/app/assets/stylesheets/rails_admin/bootstrap/_close.scss +11 -8
- data/app/assets/stylesheets/rails_admin/bootstrap/_code.scss +36 -29
- data/app/assets/stylesheets/rails_admin/bootstrap/_component-animations.scss +16 -3
- data/app/assets/stylesheets/rails_admin/bootstrap/_dropdowns.scss +115 -148
- data/app/assets/stylesheets/rails_admin/bootstrap/_forms.scss +396 -547
- data/app/assets/stylesheets/rails_admin/bootstrap/_glyphicons.scss +237 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_grid.scss +74 -11
- data/app/assets/stylesheets/rails_admin/bootstrap/_input-groups.scss +166 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_jumbotron.scss +48 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_labels.scss +66 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_list-group.scss +131 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_media.scss +8 -7
- data/app/assets/stylesheets/rails_admin/bootstrap/_mixins.scss +36 -693
- data/app/assets/stylesheets/rails_admin/bootstrap/_modals.scss +108 -53
- data/app/assets/stylesheets/rails_admin/bootstrap/_navbar.scss +545 -383
- data/app/assets/stylesheets/rails_admin/bootstrap/_navs.scss +191 -358
- data/app/assets/stylesheets/rails_admin/bootstrap/_normalize.scss +425 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_pager.scss +45 -33
- data/app/assets/stylesheets/rails_admin/bootstrap/_pagination.scss +70 -105
- data/app/assets/stylesheets/rails_admin/bootstrap/_panels.scss +243 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_popovers.scss +61 -61
- data/app/assets/stylesheets/rails_admin/bootstrap/_print.scss +101 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_progress-bars.scss +56 -73
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-embed.scss +34 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-utilities.scss +150 -50
- data/app/assets/stylesheets/rails_admin/bootstrap/_scaffolding.scss +120 -23
- data/app/assets/stylesheets/rails_admin/bootstrap/_tables.scss +168 -170
- data/app/assets/stylesheets/rails_admin/bootstrap/_theme.scss +258 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/_thumbnails.scss +27 -42
- data/app/assets/stylesheets/rails_admin/bootstrap/_tooltip.scss +49 -24
- data/app/assets/stylesheets/rails_admin/bootstrap/_type.scss +200 -143
- data/app/assets/stylesheets/rails_admin/bootstrap/_utilities.scss +33 -21
- data/app/assets/stylesheets/rails_admin/bootstrap/_variables.scss +764 -215
- data/app/assets/stylesheets/rails_admin/bootstrap/_wells.scss +7 -7
- data/app/assets/stylesheets/rails_admin/bootstrap/bootstrap.scss +47 -60
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_alerts.scss +14 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_background-variant.scss +11 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_border-radius.scss +18 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_buttons.scss +50 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_center-block.scss +7 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_clearfix.scss +22 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_forms.scss +84 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_gradients.scss +58 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid-framework.scss +81 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_grid.scss +122 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_hide-text.scss +21 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_image.scss +34 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_labels.scss +12 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_list-group.scss +31 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_nav-vertical-align.scss +9 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_opacity.scss +8 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_pagination.scss +23 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_panels.scss +24 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_progress-bar.scss +10 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_reset-filter.scss +8 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_responsive-visibility.scss +21 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_size.scss +10 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_tab-focus.scss +9 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_table-row.scss +28 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-emphasis.scss +11 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_text-overflow.scss +8 -0
- data/app/assets/stylesheets/rails_admin/bootstrap/mixins/_vendor-prefixes.scss +219 -0
- data/app/assets/stylesheets/rails_admin/ra.calendar-additions.scss +17 -0
- data/app/assets/stylesheets/rails_admin/rails_admin.scss.erb +9 -5
- data/app/helpers/rails_admin/application_helper.rb +20 -19
- data/app/helpers/rails_admin/form_builder.rb +14 -11
- data/app/views/kaminari/twitter-bootstrap/_paginator.html.haml +8 -9
- data/app/views/layouts/rails_admin/_navigation.html.haml +5 -5
- data/app/views/layouts/rails_admin/_secondary_navigation.html.haml +1 -1
- data/app/views/layouts/rails_admin/application.html.haml +9 -8
- data/app/views/layouts/rails_admin/pjax.html.haml +4 -3
- data/app/views/rails_admin/main/_form_datetime.html.haml +2 -1
- data/app/views/rails_admin/main/_form_field.html.haml +1 -1
- data/app/views/rails_admin/main/_form_text.html.haml +1 -1
- data/app/views/rails_admin/main/_submit_buttons.html.haml +1 -0
- data/app/views/rails_admin/main/dashboard.html.haml +1 -1
- data/app/views/rails_admin/main/export.html.haml +19 -16
- data/app/views/rails_admin/main/index.html.haml +11 -7
- data/app/views/rails_admin/main/show.html.haml +1 -1
- data/lib/rails_admin/adapters/active_record.rb +2 -2
- data/lib/rails_admin/adapters/mongoid/property.rb +1 -1
- data/lib/rails_admin/config/actions/bulk_delete.rb +0 -1
- data/lib/rails_admin/config/actions/edit.rb +0 -2
- data/lib/rails_admin/config/actions/export.rb +0 -2
- data/lib/rails_admin/config/actions/index.rb +0 -3
- data/lib/rails_admin/config/actions/new.rb +0 -2
- data/lib/rails_admin/config/configurable.rb +1 -1
- data/lib/rails_admin/config/fields/base.rb +9 -0
- data/lib/rails_admin/config/fields/factories/enum.rb +2 -3
- data/lib/rails_admin/config/fields/types/polymorphic_association.rb +4 -0
- data/lib/rails_admin/config/model.rb +2 -1
- data/lib/rails_admin/extensions/paper_trail/auditing_adapter.rb +2 -2
- data/lib/rails_admin/support/csv_converter.rb +22 -42
- data/lib/rails_admin/version.rb +1 -1
- metadata +59 -18
- data/app/assets/stylesheets/rails_admin/bootstrap/_accordion.scss +0 -34
- data/app/assets/stylesheets/rails_admin/bootstrap/_hero-unit.scss +0 -25
- data/app/assets/stylesheets/rails_admin/bootstrap/_labels-badges.scss +0 -83
- data/app/assets/stylesheets/rails_admin/bootstrap/_layouts.scss +0 -16
- data/app/assets/stylesheets/rails_admin/bootstrap/_reset.scss +0 -216
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-1200px-min.scss +0 -28
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-767px-max.scss +0 -193
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-768px-979px.scss +0 -19
- data/app/assets/stylesheets/rails_admin/bootstrap/_responsive-navbar.scss +0 -189
- data/app/assets/stylesheets/rails_admin/bootstrap/_sprites.scss +0 -197
- data/app/assets/stylesheets/rails_admin/bootstrap/responsive.scss +0 -48
|
@@ -25,3 +25,20 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
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
|
+
.input-group {
|
|
37
|
+
.hasTimepicker {
|
|
38
|
+
@extend .form-control;
|
|
39
|
+
width: 65px !important;
|
|
40
|
+
}
|
|
41
|
+
.hasDatepicker {
|
|
42
|
+
@extend .form-control
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
@import "rails_admin/custom/mixins";
|
|
49
49
|
|
|
50
50
|
/*** Reset ***/
|
|
51
|
-
@import "rails_admin/bootstrap/reset";
|
|
51
|
+
<%# @import "rails_admin/bootstrap/reset"; %>
|
|
52
52
|
/*** Libraries ***/
|
|
53
53
|
|
|
54
54
|
@import "rails_admin/aristo/jquery-ui-1.8.7.custom";
|
|
@@ -65,9 +65,10 @@
|
|
|
65
65
|
|
|
66
66
|
/*** Bootstrap Theming ***/
|
|
67
67
|
|
|
68
|
+
@import "rails_admin/bootstrap/normalize";
|
|
68
69
|
@import "rails_admin/bootstrap/scaffolding";
|
|
69
70
|
@import "rails_admin/bootstrap/grid";
|
|
70
|
-
@import "rails_admin/bootstrap/layouts";
|
|
71
|
+
<%# @import "rails_admin/bootstrap/layouts"; %>
|
|
71
72
|
@import "rails_admin/bootstrap/type";
|
|
72
73
|
@import "rails_admin/bootstrap/forms";
|
|
73
74
|
@import "rails_admin/bootstrap/tables";
|
|
@@ -77,6 +78,7 @@
|
|
|
77
78
|
@import "rails_admin/bootstrap/close";
|
|
78
79
|
@import "rails_admin/bootstrap/buttons";
|
|
79
80
|
@import "rails_admin/bootstrap/button-groups";
|
|
81
|
+
@import "rails_admin/bootstrap/input-groups";
|
|
80
82
|
@import "rails_admin/bootstrap/alerts";
|
|
81
83
|
@import "rails_admin/bootstrap/navs";
|
|
82
84
|
@import "rails_admin/bootstrap/navbar";
|
|
@@ -87,12 +89,14 @@
|
|
|
87
89
|
@import "rails_admin/bootstrap/tooltip";
|
|
88
90
|
@import "rails_admin/bootstrap/popovers";
|
|
89
91
|
@import "rails_admin/bootstrap/thumbnails";
|
|
90
|
-
@import "rails_admin/bootstrap/labels
|
|
92
|
+
@import "rails_admin/bootstrap/labels";
|
|
93
|
+
@import "rails_admin/bootstrap/badges";
|
|
91
94
|
@import "rails_admin/bootstrap/progress-bars";
|
|
92
|
-
@import "rails_admin/bootstrap/accordion";
|
|
95
|
+
<%# @import "rails_admin/bootstrap/accordion"; %>
|
|
93
96
|
@import "rails_admin/bootstrap/carousel";
|
|
94
|
-
@import "rails_admin/bootstrap/hero-unit";
|
|
97
|
+
<%# @import "rails_admin/bootstrap/hero-unit"; %>
|
|
95
98
|
@import "rails_admin/bootstrap/utilities";
|
|
99
|
+
@import "rails_admin/bootstrap/responsive-utilities";
|
|
96
100
|
|
|
97
101
|
/*** RailsAdmin Theming ***/
|
|
98
102
|
|
|
@@ -19,8 +19,8 @@ module RailsAdmin
|
|
|
19
19
|
|
|
20
20
|
def current_action?(action, abstract_model = @abstract_model, object = @object)
|
|
21
21
|
@action.custom_key == action.custom_key &&
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
abstract_model.try(:to_param) == @abstract_model.try(:to_param) &&
|
|
23
|
+
(@object.try(:persisted?) ? @object.id == object.try(:id) : !object.try(:persisted?))
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def action(key, abstract_model = nil, object = nil)
|
|
@@ -48,7 +48,7 @@ module RailsAdmin
|
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
def logout_method
|
|
51
|
-
return Devise.sign_out_via if defined?(Devise)
|
|
51
|
+
return [Devise.sign_out_via].flatten.first if defined?(Devise)
|
|
52
52
|
:delete
|
|
53
53
|
end
|
|
54
54
|
|
|
@@ -70,13 +70,12 @@ module RailsAdmin
|
|
|
70
70
|
node_model_names = nodes_stack.collect { |c| c.abstract_model.model_name }
|
|
71
71
|
|
|
72
72
|
nodes_stack.group_by(&:navigation_label).collect do |navigation_label, nodes|
|
|
73
|
-
|
|
74
73
|
nodes = nodes.select { |n| n.parent.nil? || !n.parent.to_s.in?(node_model_names) }
|
|
75
74
|
li_stack = navigation nodes_stack, nodes
|
|
76
75
|
|
|
77
76
|
label = navigation_label || t('admin.misc.navigation')
|
|
78
77
|
|
|
79
|
-
%(<li class='
|
|
78
|
+
%(<li class='dropdown-header'>#{capitalize_first_letter label}</li>#{li_stack}) if li_stack.present?
|
|
80
79
|
end.join.html_safe
|
|
81
80
|
end
|
|
82
81
|
|
|
@@ -96,7 +95,6 @@ module RailsAdmin
|
|
|
96
95
|
url = url_for(action: :index, controller: 'rails_admin/main', model_name: model_param)
|
|
97
96
|
level_class = " nav-level-#{level}" if level > 0
|
|
98
97
|
nav_icon = node.navigation_icon ? %(<i class="#{node.navigation_icon}"></i>).html_safe : ''
|
|
99
|
-
|
|
100
98
|
li = content_tag :li, 'data-model' => model_param do
|
|
101
99
|
link_to nav_icon + capitalize_first_letter(node.label_plural), url, class: "pjax#{level_class}"
|
|
102
100
|
end
|
|
@@ -109,21 +107,24 @@ module RailsAdmin
|
|
|
109
107
|
(parent_actions ||= []) << action
|
|
110
108
|
end while action.breadcrumb_parent && (action = action(*action.breadcrumb_parent)) # rubocop:disable Loop
|
|
111
109
|
|
|
112
|
-
content_tag(:
|
|
110
|
+
content_tag(:ol, class: 'breadcrumb') do
|
|
113
111
|
parent_actions.collect do |a|
|
|
114
112
|
am = a.send(:eval, 'bindings[:abstract_model]')
|
|
115
113
|
o = a.send(:eval, 'bindings[:object]')
|
|
116
114
|
content_tag(:li, class: current_action?(a, am, o) && 'active') do
|
|
117
115
|
crumb = begin
|
|
118
|
-
if
|
|
119
|
-
|
|
120
|
-
|
|
116
|
+
if !current_action?(a, am, o)
|
|
117
|
+
if a.http_methods.include?(:get)
|
|
118
|
+
link_to url_for(action: a.action_name, controller: 'rails_admin/main', model_name: am.try(:to_param), id: (o.try(:persisted?) && o.try(:id) || nil)), class: 'pjax' do
|
|
119
|
+
wording_for(:breadcrumb, a, am, o)
|
|
120
|
+
end
|
|
121
|
+
else
|
|
122
|
+
content_tag(:span, wording_for(:breadcrumb, a, am, o))
|
|
121
123
|
end
|
|
122
124
|
else
|
|
123
|
-
|
|
125
|
+
wording_for(:breadcrumb, a, am, o)
|
|
124
126
|
end
|
|
125
127
|
end
|
|
126
|
-
crumb += content_tag(:span, '/', class: 'divider') unless current_action?(a, am, o)
|
|
127
128
|
crumb
|
|
128
129
|
end
|
|
129
130
|
end.reverse.join.html_safe
|
|
@@ -151,13 +152,13 @@ module RailsAdmin
|
|
|
151
152
|
return '' if actions.empty?
|
|
152
153
|
content_tag :li, class: 'dropdown', style: 'float:right' do
|
|
153
154
|
content_tag(:a, class: 'dropdown-toggle', :'data-toggle' => 'dropdown', href: '#') { t('admin.misc.bulk_menu_title').html_safe + '<b class="caret"></b>'.html_safe } +
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
content_tag(:ul, class: 'dropdown-menu', style: 'left:auto; right:0;') do
|
|
156
|
+
actions.collect do |action|
|
|
157
|
+
content_tag :li do
|
|
158
|
+
link_to wording_for(:bulk_link, action), '#', onclick: "jQuery('#bulk_action').val('#{action.action_name}'); jQuery('#bulk_form').submit(); return false;"
|
|
159
|
+
end
|
|
160
|
+
end.join.html_safe
|
|
161
|
+
end
|
|
161
162
|
end.html_safe
|
|
162
163
|
end
|
|
163
164
|
end
|
|
@@ -12,10 +12,10 @@ module RailsAdmin
|
|
|
12
12
|
)
|
|
13
13
|
|
|
14
14
|
object_infos +
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
visible_groups(options[:model_config], generator_action(options[:action], options[:nested_in])).collect do |fieldset|
|
|
16
|
+
fieldset_for fieldset, options[:nested_in]
|
|
17
|
+
end.join.html_safe +
|
|
18
|
+
(options[:nested_in] ? '' : @template.render(partial: 'rails_admin/main/submit_buttons'))
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
@@ -34,8 +34,9 @@ module RailsAdmin
|
|
|
34
34
|
if field.label
|
|
35
35
|
# do not show nested field if the target is the origin
|
|
36
36
|
unless nested_field_association?(field, nested_in)
|
|
37
|
-
@template.content_tag(:div, class: "control-group #{field.type_css_class} #{field.css_class} #{'error' if field.errors.present?}", id: "#{dom_id(field)}_field") do
|
|
38
|
-
label(field.method_name, capitalize_first_letter(field.label), class: 'control-label') +
|
|
37
|
+
@template.content_tag(:div, class: "form-group control-group #{field.type_css_class} #{field.css_class} #{'error' if field.errors.present?}", id: "#{dom_id(field)}_field") do
|
|
38
|
+
label(field.method_name, capitalize_first_letter(field.label), class: 'col-sm-2 control-label') +
|
|
39
|
+
(field.nested_form ? field_for(field) : input_for(field))
|
|
39
40
|
end
|
|
40
41
|
end
|
|
41
42
|
else
|
|
@@ -44,19 +45,21 @@ module RailsAdmin
|
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
def input_for(field)
|
|
47
|
-
|
|
48
|
+
css = 'col-sm-10 controls'
|
|
49
|
+
css += ' has-error' if field.errors.present?
|
|
50
|
+
@template.content_tag(:div, class: css) do
|
|
48
51
|
field_for(field) +
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
errors_for(field) +
|
|
53
|
+
help_for(field)
|
|
51
54
|
end
|
|
52
55
|
end
|
|
53
56
|
|
|
54
57
|
def errors_for(field)
|
|
55
|
-
field.errors.present? ? @template.content_tag(:span, field.errors.to_sentence, class: 'help-inline') : ''.html_safe
|
|
58
|
+
field.errors.present? ? @template.content_tag(:span, field.errors.to_sentence, class: 'help-inline text-danger') : ''.html_safe
|
|
56
59
|
end
|
|
57
60
|
|
|
58
61
|
def help_for(field)
|
|
59
|
-
field.help.present? ? @template.content_tag(:
|
|
62
|
+
field.help.present? ? @template.content_tag(:span, field.help, class: 'help-block') : ''.html_safe
|
|
60
63
|
end
|
|
61
64
|
|
|
62
65
|
def field_for(field)
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
= paginator.render do
|
|
2
|
-
.pagination
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
= next_page_tag
|
|
2
|
+
%ul.pagination
|
|
3
|
+
= prev_page_tag
|
|
4
|
+
- each_page do |page|
|
|
5
|
+
- if page.left_outer? or page.right_outer? or page.inside_window?
|
|
6
|
+
= page_tag page
|
|
7
|
+
- elsif !page.was_truncated?
|
|
8
|
+
= gap_tag
|
|
9
|
+
= next_page_tag
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
.
|
|
2
|
-
.
|
|
3
|
-
%a.brand.pjax{href: dashboard_path}
|
|
1
|
+
.container-fluid
|
|
2
|
+
.navbar-header
|
|
3
|
+
%a.navbar-brand.pjax{href: dashboard_path}
|
|
4
4
|
= _get_plugin_name[0] || 'Rails'
|
|
5
5
|
%small= _get_plugin_name[1] || 'Admin'
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
.collapse.navbar-collapse
|
|
7
|
+
= render partial: 'layouts/rails_admin/secondary_navigation'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
%ul.nav.
|
|
1
|
+
%ul.nav.navbar-nav.navbar-right.root_links
|
|
2
2
|
- actions(:root).each do |action|
|
|
3
3
|
%li{class: "#{action.action_name}_root_link"}= link_to wording_for(:menu, action), { action: action.action_name, controller: 'rails_admin/main' }, class: "pjax"
|
|
4
4
|
- if main_app_root_path = (main_app.root_path rescue false)
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
!!! 5
|
|
2
2
|
%html
|
|
3
3
|
%head
|
|
4
|
+
%meta{content: "IE=edge", "http-equiv" => "X-UA-Compatible"}
|
|
4
5
|
%meta{content: "text/html; charset=utf-8", "http-equiv" => "Content-Type"}
|
|
5
6
|
%meta{content: "NONE,NOARCHIVE", name: "robots"}
|
|
6
7
|
= csrf_meta_tag
|
|
@@ -11,14 +12,14 @@
|
|
|
11
12
|
RailsAdmin.I18n.init(JSON.parse("#{j I18n.t("admin.js").to_json}"))
|
|
12
13
|
%body.rails_admin
|
|
13
14
|
#loading.label.label-warning{style: 'display:none; position:fixed; right:20px; bottom:20px; z-index:100000'}= t('admin.loading')
|
|
14
|
-
.navbar.navbar-fixed-top
|
|
15
|
+
%nav.navbar.navbar-default.navbar-fixed-top
|
|
15
16
|
= render "layouts/rails_admin/navigation"
|
|
16
17
|
.container-fluid
|
|
17
|
-
.row
|
|
18
|
-
.
|
|
19
|
-
.
|
|
20
|
-
%ul.nav.nav-
|
|
21
|
-
%ul.nav.nav-
|
|
22
|
-
.
|
|
23
|
-
.row
|
|
18
|
+
.row
|
|
19
|
+
.col-sm-3.col-md-2.reset-left
|
|
20
|
+
.sidebar-nav
|
|
21
|
+
%ul.nav.nav-pills.nav-stacked= main_navigation
|
|
22
|
+
%ul.nav.nav-pills.nav-stacked= static_navigation
|
|
23
|
+
.col-sm-9.col-sm-offset-3.col-md-10.col-md-offset-2
|
|
24
|
+
.row
|
|
24
25
|
.content{:'data-pjax-container' => true}= render template: 'layouts/rails_admin/pjax'
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
:javascript
|
|
2
|
-
$('.nav.nav-
|
|
3
|
-
$('.nav.nav-
|
|
2
|
+
$('.nav.nav-pills li.active').removeClass('active');
|
|
3
|
+
$('.nav.nav-pills li[data-model="#{@abstract_model.to_param}"]').addClass('active');
|
|
4
4
|
|
|
5
5
|
%title= "#{@abstract_model.try(:pretty_name) || @page_name} | #{[_get_plugin_name[0] || 'Rails', _get_plugin_name[1] || 'Admin'].join(' ')}"
|
|
6
6
|
.page-header
|
|
7
7
|
%h1= @page_name
|
|
8
8
|
- flash && flash.each do |key, value|
|
|
9
|
+
- key = 'danger' if key.to_s == 'error'
|
|
9
10
|
.alert{class: "alert-#{key}"}
|
|
10
|
-
%a.close{href: '#', :'data-dismiss' => "alert"}
|
|
11
|
+
%a.close{href: '#', :'data-dismiss' => "alert"} ×
|
|
11
12
|
= value
|
|
12
13
|
= breadcrumb
|
|
13
14
|
%ul.nav.nav-tabs
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
.input-group
|
|
2
|
+
= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value }).reverse_merge({ data: { datetimepicker: true, options: field.js_plugin_options.to_json } })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, checked: field.form_value.in?([true, '1'])})
|
|
1
|
+
= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, checked: field.form_value.in?([true, '1']), class: 'form-control'})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
= form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: false, options: {}.to_json }).reverse_merge({ value: field.form_value })
|
|
1
|
+
= form.text_area field.method_name, field.html_attributes.reverse_merge(data: { richtext: false, options: {}.to_json }).reverse_merge({ value: field.form_value, class: 'form-control' })
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
- count = @count[abstract_model.pretty_name]
|
|
25
25
|
- percent = count > 0 ? (@max <= 1 ? count : ((Math.log(count+1) * 100.0) / Math.log(@max+1)).to_i) : -1
|
|
26
26
|
.progress{style: "margin-bottom:0px", class: "progress-#{get_indicator(percent)} #{active && 'active progress-striped'}" }
|
|
27
|
-
.bar.animate-width-to{:'data-animate-length' => ([1.0, percent].max.to_i * 20), :'data-animate-width-to' => "#{[2.0, percent].max.to_i}%", style: "width:2%"}
|
|
27
|
+
.progress-bar.animate-width-to{:class => "progress-bar-#{get_indicator(percent)}", :'data-animate-length' => ([1.0, percent].max.to_i * 20), :'data-animate-width-to' => "#{[2.0, percent].max.to_i}%", style: "width:2%"}
|
|
28
28
|
= @count[abstract_model.pretty_name]
|
|
29
29
|
%td.links
|
|
30
30
|
%ul.inline= menu_for :collection, abstract_model, nil, true
|
|
@@ -5,17 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
%input{name: "send_data", type: "hidden", value: "true"}/
|
|
7
7
|
%fieldset{id: 'fields_to_export'}
|
|
8
|
-
%div.control-group
|
|
9
|
-
%div.controls
|
|
10
|
-
%label.checkbox{for: 'check_all'}
|
|
11
|
-
= t('admin.export.select_all_fields')
|
|
12
|
-
= check_box_tag 'all', 'all', true, { id: 'check_all' }
|
|
13
8
|
%legend
|
|
14
9
|
%i.icon-chevron-down
|
|
15
10
|
= t('admin.export.select')
|
|
16
11
|
.control-group
|
|
17
|
-
%label.control-label{rel: 'tooltip', :'data-original-title' => t('admin.export.click_to_reverse_selection'), onclick: 'jQuery(this).siblings(".controls").find("input").click()'}= t('admin.export.fields_from', name: @model_config.label_plural.downcase)
|
|
18
12
|
.controls
|
|
13
|
+
.col-sm-2
|
|
14
|
+
%label.col-sm-10.checkbox{for: 'check_all'}
|
|
15
|
+
= check_box_tag 'all', 'all', true, { id: 'check_all' }
|
|
16
|
+
= t('admin.export.select_all_fields')
|
|
17
|
+
.control-group
|
|
18
|
+
%label.col-sm-2.control-label{rel: 'tooltip', :'data-original-title' => t('admin.export.click_to_reverse_selection'), onclick: 'jQuery(this).siblings(".controls").find("input").click()'}= t('admin.export.fields_from', name: @model_config.label_plural.downcase)
|
|
19
|
+
.col-sm-10.controls
|
|
19
20
|
- visible_fields.select{ |f| !f.association? || f.association.polymorphic? }.each do |field|
|
|
20
21
|
- list = field.virtual? ? 'methods' : 'only'
|
|
21
22
|
- if field.association? && field.association.polymorphic?
|
|
@@ -34,8 +35,8 @@
|
|
|
34
35
|
- visible_fields.select{ |f| f.association? && !f.association.polymorphic? }.each do |field|
|
|
35
36
|
- fields = field.associated_model_config.export.with(controller: self.controller, view: self, object: (associated_model = field.associated_model_config.abstract_model.model).new).visible_fields.select{ |f| !f.association? }
|
|
36
37
|
.control-group
|
|
37
|
-
%label.control-label{rel: 'tooltip', :'data-original-title' => t('admin.export.click_to_reverse_selection'), onclick: 'jQuery(this).siblings(".controls").find("input").click()'}= t('admin.export.fields_from_associated', name: field.label.downcase)
|
|
38
|
-
.controls
|
|
38
|
+
%label.col-sm-2.control-label{rel: 'tooltip', :'data-original-title' => t('admin.export.click_to_reverse_selection'), onclick: 'jQuery(this).siblings(".controls").find("input").click()'}= t('admin.export.fields_from_associated', name: field.label.downcase)
|
|
39
|
+
.col-sm-10.controls
|
|
39
40
|
- fields.each do |associated_model_field|
|
|
40
41
|
- list = associated_model_field.virtual? ? 'methods' : 'only'
|
|
41
42
|
%label.checkbox{for: "schema_include_#{field.name}_#{list}_#{associated_model_field.name}"}
|
|
@@ -48,24 +49,26 @@
|
|
|
48
49
|
= t('admin.export.options_for', name: 'csv')
|
|
49
50
|
.control-group
|
|
50
51
|
- guessed_encoding = @abstract_model.encoding
|
|
51
|
-
%label.control-label{for: "csv_options_encoding_to"}= t('admin.export.csv.encoding_to')
|
|
52
|
-
.controls
|
|
52
|
+
%label.col-sm-2.control-label{for: "csv_options_encoding_to"}= t('admin.export.csv.encoding_to')
|
|
53
|
+
.col-sm-10.controls
|
|
53
54
|
-# from http://books.google.com/support/partner/bin/answer.py?answer=30990 :
|
|
54
|
-
= select_tag 'csv_options[encoding_to]', options_for_select(
|
|
55
|
+
= select_tag 'csv_options[encoding_to]', options_for_select(RailsAdmin::CSVConverter::TARGET_ENCODINGS), include_blank: true
|
|
55
56
|
%p.help-block= t('admin.export.csv.encoding_to_help', name: guessed_encoding)
|
|
56
57
|
|
|
57
58
|
.control-group
|
|
58
|
-
%label.control-label{for: "csv_options_skip_header"}= t('admin.export.csv.skip_header')
|
|
59
|
-
.controls
|
|
60
|
-
|
|
59
|
+
%label.col-sm-2.control-label{for: "csv_options_skip_header"}= t('admin.export.csv.skip_header')
|
|
60
|
+
.col-sm-10.controls
|
|
61
|
+
%label.checkbox
|
|
62
|
+
= check_box_tag 'csv_options[skip_header]', 'true'
|
|
61
63
|
%p.help-block= t('admin.export.csv.skip_header_help')
|
|
62
64
|
|
|
63
65
|
.control-group
|
|
64
|
-
%label.control-label{for: "csv_options_generator_col_sep"}= t('admin.export.csv.col_sep')
|
|
65
|
-
.controls
|
|
66
|
+
%label.col-sm-2.control-label{for: "csv_options_generator_col_sep"}= t('admin.export.csv.col_sep')
|
|
67
|
+
.col-sm-10.controls
|
|
66
68
|
= select_tag 'csv_options[generator][col_sep]', options_for_select({ '' => t('admin.export.csv.default_col_sep'), "<comma> ','" => ',', "<semicolon> ';'" => ';', '<tabs>' => "'\t'" })
|
|
67
69
|
%p.help-block= t('admin.export.csv.col_sep_help', value: t('admin.export.csv.default_col_sep'))
|
|
68
70
|
|
|
71
|
+
%br
|
|
69
72
|
.form-actions
|
|
70
73
|
%input{type: :hidden, name: 'return_to', value: (params[:return_to].presence || request.referer)}
|
|
71
74
|
%button.btn.btn-primary{type: "submit", name: 'csv'}
|
|
@@ -96,10 +96,12 @@
|
|
|
96
96
|
.well
|
|
97
97
|
%span#filters_box
|
|
98
98
|
%hr.filters_box{style: "display:#{@ordered_filters.empty? ? 'none' : 'block'}"}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
%
|
|
102
|
-
|
|
99
|
+
.input-group
|
|
100
|
+
%input.form-control.input-small{name: "query", type: "search", value: query, placeholder: t("admin.misc.filter")}
|
|
101
|
+
%span.input-group-btn
|
|
102
|
+
%button.btn.btn-primary{type: "submit", :'data-disable-with' => "<i class='icon-white icon-refresh'></i> ".html_safe + t("admin.misc.refresh")}
|
|
103
|
+
%i.icon-white.icon-refresh
|
|
104
|
+
= t("admin.misc.refresh")
|
|
103
105
|
- if export_action
|
|
104
106
|
%span{style: 'float:right'}= link_to wording_for(:link, export_action), export_path(params.except('set').except('page')), class: 'btn btn-info'
|
|
105
107
|
|
|
@@ -108,7 +110,7 @@
|
|
|
108
110
|
- @model_config.list.scopes.each_with_index do |scope, index|
|
|
109
111
|
- scope = '_all' if scope.nil?
|
|
110
112
|
%li{class: "#{'active' if scope.to_s == params[:scope] || (params[:scope].blank? && index == 0)}"}
|
|
111
|
-
%a{href: index_path(params.merge(scope: scope, page: nil))}= I18n.t("admin.scopes.#{@abstract_model.to_param}.#{scope}", default: I18n.t("admin.scopes.#{scope}", default: scope.to_s.titleize))
|
|
113
|
+
%a{href: index_path(params.merge(scope: scope, page: nil)), class: 'pjax'}= I18n.t("admin.scopes.#{@abstract_model.to_param}.#{scope}", default: I18n.t("admin.scopes.#{scope}", default: scope.to_s.titleize))
|
|
112
114
|
|
|
113
115
|
= form_tag bulk_action_path(model_name: @abstract_model.to_param), method: :post, id: "bulk_form", class: "form" do
|
|
114
116
|
= hidden_field_tag :bulk_action
|
|
@@ -146,8 +148,10 @@
|
|
|
146
148
|
%ul.inline= menu_for :member, @abstract_model, object, true
|
|
147
149
|
- if @objects.respond_to?(:total_count)
|
|
148
150
|
- total_count = @objects.total_count.to_i
|
|
149
|
-
|
|
150
|
-
|
|
151
|
+
.row
|
|
152
|
+
.col-md-6= paginate(@objects, theme: 'twitter-bootstrap', remote: true)
|
|
153
|
+
.row
|
|
154
|
+
.col-md-6= link_to(t("admin.misc.show_all"), index_path(params.merge(all: true)), class: "show-all btn btn-default clearfix pjax") unless total_count > 100 || total_count <= @objects.to_a.size
|
|
151
155
|
.clearfix.total-count= "#{total_count} #{@model_config.pluralize(total_count).downcase}"
|
|
152
156
|
- else
|
|
153
157
|
.clearfix.total-count= "#{@objects.size} #{@model_config.pluralize(@objects.size).downcase}"
|