swop 0.1.1 → 1.0.0
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/README.md +47 -9
- data/app/assets/images/swop/favicon.ico +0 -0
- data/app/assets/stylesheets/rails_admin/application.scss.erb +11 -20
- data/app/assets/stylesheets/{rails_admin/themes/base/base.scss → swop/swop-base/swop-base.scss} +1 -5
- data/app/assets/stylesheets/swop/swop-base/swop-typography.scss +11 -0
- data/app/assets/stylesheets/swop/swop-colors/swop-colors.scss +2 -0
- data/app/assets/stylesheets/swop/swop-core/swop-bootstrap-variables.scss +172 -0
- data/app/assets/stylesheets/swop/swop-core/swop-variables.scss +34 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-base/swop-base.scss +3 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-base/swop-main.scss +25 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-base/swop-typography.scss +4 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-colors/swop-amethyst.scss +29 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-colors/swop-dark.scss +29 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-colors/swop-forest.scss +29 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-colors/swop-light.scss +29 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-colors/swop-royal.scss +29 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-alerts.scss +12 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-badges.scss +31 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-buttons.scss +133 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-dropdowns.scss +26 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-filters.scss +57 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-forms.scss +158 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-images.scss +31 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-input-groups.scss +18 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-loading.scss +14 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-navbar.scss +15 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-navs.scss +77 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-offcanvas.scss +64 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-pagination.scss +21 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-progress.scss +3 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-sidebars.scss +49 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-tables.scss +82 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-components/swop-tiles.scss +20 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-core/swop-bootstrap-variables.scss +149 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-core/swop-variables.scss +41 -0
- data/app/assets/stylesheets/{rails_admin/themes/simple/components/containers.scss → swop/swop-themes/swop-simple/swop-layouts/swop-containers.scss} +9 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-layouts/swop-header.scss +15 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-amethyst.scss +35 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-base.scss +3 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-components.scss +17 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-dark.scss +35 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-forest.scss +35 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-layouts.scss +2 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-light.scss +35 -0
- data/app/assets/stylesheets/swop/swop-themes/swop-simple/swop-simple-royal.scss +35 -0
- data/app/assets/stylesheets/swop/swop.scss +8 -0
- data/app/views/kaminari/ra-twitter-bootstrap/_next_page.html.erb +7 -0
- data/app/views/kaminari/ra-twitter-bootstrap/_prev_page.html.erb +5 -0
- data/app/views/kaminari/ra-twitter-bootstrap/default/_next_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/default/_prev_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/swop-simple/_next_page.html.erb +9 -0
- data/app/views/kaminari/ra-twitter-bootstrap/swop-simple/_prev_page.html.erb +9 -0
- data/app/views/layouts/rails_admin/_head.html.erb +5 -32
- data/app/views/layouts/rails_admin/_sidebar_navigation.html.erb +5 -3
- data/app/views/layouts/rails_admin/application.html.erb +5 -27
- data/app/views/layouts/rails_admin/content.html.erb +4 -11
- data/app/views/layouts/rails_admin/default/_application.html.erb +27 -0
- data/app/views/layouts/rails_admin/default/_content.html.erb +22 -0
- data/app/views/layouts/rails_admin/default/_head.html.erb +32 -0
- data/app/views/layouts/rails_admin/default/_sidebar_navigation.html.erb +5 -0
- data/app/views/layouts/rails_admin/swop-simple/_application.html.erb +17 -0
- data/app/views/layouts/rails_admin/swop-simple/_content.html.erb +41 -0
- data/app/views/layouts/rails_admin/swop-simple/_head.html.erb +42 -0
- data/app/views/layouts/rails_admin/swop-simple/_sidebar_navigation.html.erb +12 -0
- data/app/views/rails_admin/main/_delete_notice.html.erb +7 -0
- data/app/views/rails_admin/main/default/_delete.html.erb +21 -0
- data/app/views/rails_admin/main/default/_delete_notice.html.erb +34 -0
- data/app/views/rails_admin/main/default/_edit.html.erb +3 -0
- data/app/views/rails_admin/main/default/_export.html.erb +149 -0
- data/app/views/rails_admin/main/default/_history.html.erb +80 -0
- data/app/views/rails_admin/main/default/_index.html.erb +184 -0
- data/app/views/rails_admin/main/default/_new.html.erb +3 -0
- data/app/views/rails_admin/main/default/_show.html.erb +30 -0
- data/app/views/rails_admin/main/delete.html.erb +5 -0
- data/app/views/rails_admin/main/edit.html.erb +5 -0
- data/app/views/rails_admin/main/export.html.erb +5 -128
- data/app/views/rails_admin/main/history.html.erb +4 -86
- data/app/views/rails_admin/main/index.html.erb +4 -173
- data/app/views/rails_admin/main/new.html.erb +5 -0
- data/app/views/rails_admin/main/show.html.erb +5 -20
- data/app/views/rails_admin/main/swop-simple/_delete.html.erb +11 -0
- data/app/views/rails_admin/main/swop-simple/_delete_notice.html.erb +23 -0
- data/app/views/rails_admin/main/swop-simple/_edit.html.erb +3 -0
- data/app/views/rails_admin/main/swop-simple/_export.html.erb +90 -0
- data/app/views/rails_admin/main/swop-simple/_history.html.erb +80 -0
- data/app/views/rails_admin/main/swop-simple/_index.html.erb +169 -0
- data/app/views/rails_admin/main/swop-simple/_new.html.erb +3 -0
- data/app/views/rails_admin/main/swop-simple/_show.html.erb +18 -0
- data/lib/swop/engine.rb +8 -3
- data/lib/swop/railtie.rb +7 -0
- data/lib/swop/version.rb +1 -1
- data/lib/swop.rb +20 -2
- metadata +102 -98
- data/CHANGELOG.md +0 -5
- data/CODE_OF_CONDUCT.md +0 -132
- data/LICENSE +0 -201
- data/Rakefile +0 -4
- data/app/assets/javascripts/rails_admin/application.js.erb +0 -33
- data/app/assets/javascripts/rails_admin/custom/abstract-select.js +0 -30
- data/app/assets/javascripts/rails_admin/custom/filter-box.js +0 -363
- data/app/assets/javascripts/rails_admin/custom/filtering-multiselect.js +0 -387
- data/app/assets/javascripts/rails_admin/custom/filtering-select.js +0 -304
- data/app/assets/stylesheets/rails_admin/themes/base/bootstrap-variables.scss +0 -252
- data/app/assets/stylesheets/rails_admin/themes/base/theming.scss +0 -22
- data/app/assets/stylesheets/rails_admin/themes/base/variables.scss +0 -71
- data/app/assets/stylesheets/rails_admin/themes/simple/base/typography.scss +0 -22
- data/app/assets/stylesheets/rails_admin/themes/simple/base/variables-dark.scss +0 -74
- data/app/assets/stylesheets/rails_admin/themes/simple/base/variables-light.scss +0 -77
- data/app/assets/stylesheets/rails_admin/themes/simple/base/variables-navy.scss +0 -74
- data/app/assets/stylesheets/rails_admin/themes/simple/base/variables.scss +0 -129
- data/app/assets/stylesheets/rails_admin/themes/simple/components/alerts.scss +0 -88
- data/app/assets/stylesheets/rails_admin/themes/simple/components/breadcrumbs.scss +0 -44
- data/app/assets/stylesheets/rails_admin/themes/simple/components/buttons.scss +0 -138
- data/app/assets/stylesheets/rails_admin/themes/simple/components/dropdowns.scss +0 -12
- data/app/assets/stylesheets/rails_admin/themes/simple/components/filter-box.scss +0 -8
- data/app/assets/stylesheets/rails_admin/themes/simple/components/filtering-multiselect.scss +0 -40
- data/app/assets/stylesheets/rails_admin/themes/simple/components/filtering-select.scss +0 -42
- data/app/assets/stylesheets/rails_admin/themes/simple/components/forms.scss +0 -27
- data/app/assets/stylesheets/rails_admin/themes/simple/components/images.scss +0 -19
- data/app/assets/stylesheets/rails_admin/themes/simple/components/links.scss +0 -25
- data/app/assets/stylesheets/rails_admin/themes/simple/components/navs.scss +0 -73
- data/app/assets/stylesheets/rails_admin/themes/simple/components/progress.scss +0 -4
- data/app/assets/stylesheets/rails_admin/themes/simple/components/sidebar.scss +0 -84
- data/app/assets/stylesheets/rails_admin/themes/simple/components/tables.scss +0 -84
- data/app/assets/stylesheets/rails_admin/themes/simple/layouts/rows.scss +0 -34
- data/app/assets/stylesheets/rails_admin/themes/simple/light/components/links.scss +0 -15
- data/app/assets/stylesheets/rails_admin/themes/simple/light/components/sidebar.scss +0 -25
- data/app/assets/stylesheets/rails_admin/themes/simple.scss.erb +0 -37
- data/app/helpers/rails_admin/application_helper.rb +0 -258
- data/app/helpers/rails_admin/form_builder.rb +0 -166
- data/app/views/layouts/rails_admin/_custom_navigation.html.erb +0 -10
- data/app/views/layouts/rails_admin/_header.html.erb +0 -43
- data/app/views/rails_admin/main/_form_polymorphic_association.html.erb +0 -15
- data/app/views/rails_admin/main/_submit_buttons.html.erb +0 -29
- data/app/views/rails_admin/main/dashboard.html.erb +0 -64
- data/config/locales/rails_admin.en.yml +0 -158
- data/sig/swop.rbs +0 -4
- /data/app/assets/stylesheets/{rails_admin/themes/base/mixins.scss → swop/swop-core/swop-mixins.scss} +0 -0
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'nested_form/builder_mixin'
|
|
4
|
-
|
|
5
|
-
module RailsAdmin
|
|
6
|
-
class FormBuilder < ::ActionView::Helpers::FormBuilder
|
|
7
|
-
include ::NestedForm::BuilderMixin
|
|
8
|
-
include ::RailsAdmin::ApplicationHelper
|
|
9
|
-
|
|
10
|
-
def generate(options = {})
|
|
11
|
-
without_field_error_proc_added_div do
|
|
12
|
-
options.reverse_merge!(
|
|
13
|
-
action: @template.controller.params[:action],
|
|
14
|
-
model_config: @template.instance_variable_get(:@model_config),
|
|
15
|
-
nested_in: false,
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
object_infos +
|
|
19
|
-
visible_groups(options[:model_config], generator_action(options[:action], options[:nested_in])).collect do |fieldset|
|
|
20
|
-
fieldset_for fieldset, options[:nested_in]
|
|
21
|
-
end.join.html_safe +
|
|
22
|
-
(options[:nested_in] ? '' : @template.render(partial: 'rails_admin/main/submit_buttons'))
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def fieldset_for(fieldset, nested_in)
|
|
27
|
-
fields = fieldset.with(
|
|
28
|
-
form: self,
|
|
29
|
-
object: @object,
|
|
30
|
-
view: @template,
|
|
31
|
-
controller: @template.controller,
|
|
32
|
-
).visible_fields
|
|
33
|
-
return if fields.empty?
|
|
34
|
-
|
|
35
|
-
@template.content_tag :fieldset do
|
|
36
|
-
contents = []
|
|
37
|
-
contents << @template.content_tag(:legend, %(<i class="fas fa-chevron-#{fieldset.active? ? 'down' : 'right'}"></i> #{fieldset.label}).html_safe, style: fieldset.name == :default ? 'display:none' : '')
|
|
38
|
-
contents << @template.content_tag(:p, fieldset.help) if fieldset.help.present?
|
|
39
|
-
contents << fields.collect { |field| field_wrapper_for(field, nested_in) }.join
|
|
40
|
-
contents.join.html_safe
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
def field_wrapper_for(field, nested_in)
|
|
45
|
-
# do not show nested field if the target is the origin
|
|
46
|
-
return if nested_field_association?(field, nested_in)
|
|
47
|
-
|
|
48
|
-
@template.content_tag(:div, class: "control-group row mb-3 #{field.type_css_class} #{field.css_class} #{'error' if field.errors.present?}", id: "#{dom_id(field)}_field") do
|
|
49
|
-
if field.label
|
|
50
|
-
label(field.method_name, field.label, class: 'form-label') +
|
|
51
|
-
(field.nested_form ? field_for(field) : input_for(field))
|
|
52
|
-
else
|
|
53
|
-
field.nested_form ? field_for(field) : input_for(field)
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def input_for(field)
|
|
59
|
-
css = 'col'
|
|
60
|
-
|
|
61
|
-
case field.type
|
|
62
|
-
when :string
|
|
63
|
-
css += " col-md-10 col-xl-5"
|
|
64
|
-
when :serialized
|
|
65
|
-
css += " col-md-20 col-xl-10"
|
|
66
|
-
when :integer
|
|
67
|
-
css += " col-md-5 col-xl-3"
|
|
68
|
-
end
|
|
69
|
-
css += ' has-error' if field.errors.present?
|
|
70
|
-
@template.content_tag(:div, class: css) do
|
|
71
|
-
field_for(field) +
|
|
72
|
-
errors_for(field) +
|
|
73
|
-
help_for(field)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def errors_for(field)
|
|
78
|
-
field.errors.present? ? @template.content_tag(:span, field.errors.to_sentence, class: 'help-inline text-danger') : ''.html_safe
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def help_for(field)
|
|
82
|
-
field.help.present? ? @template.content_tag(:div, field.help, class: 'form-text') : ''.html_safe
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def field_for(field)
|
|
86
|
-
field.read_only? ? @template.content_tag(:div, field.pretty_value, class: 'form-control-static') : field.render
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
def object_infos
|
|
90
|
-
model_config = RailsAdmin.config(object)
|
|
91
|
-
model_label = model_config.label
|
|
92
|
-
object_label =
|
|
93
|
-
if object.new_record?
|
|
94
|
-
I18n.t('admin.form.new_model', name: model_label)
|
|
95
|
-
else
|
|
96
|
-
object.send(model_config.object_label_method).presence || "#{model_config.label} ##{object.id}"
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
%(<span style="display:none" class="object-infos" data-model-label="#{model_label}" data-object-label="#{CGI.escapeHTML(object_label.to_s)}"></span>).html_safe
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def jquery_namespace(field)
|
|
103
|
-
%(#{'#modal ' if @template.controller.params[:modal]}##{dom_id(field)}_field)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
def dom_id(field)
|
|
107
|
-
(@dom_id ||= {})[field.name] ||=
|
|
108
|
-
[
|
|
109
|
-
@object_name.to_s.gsub(/\]\[|[^-a-zA-Z0-9:.]/, '_').sub(/_$/, ''),
|
|
110
|
-
options[:index],
|
|
111
|
-
field.method_name,
|
|
112
|
-
].reject(&:blank?).join('_')
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def dom_name(field)
|
|
116
|
-
(@dom_name ||= {})[field.name] ||= %(#{@object_name}#{options[:index] && "[#{options[:index]}]"}[#{field.method_name}]#{field.is_a?(Config::Fields::Association) && field.multiple? ? '[]' : ''})
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def hidden_field(method, options = {})
|
|
120
|
-
if method == :id && object.id.is_a?(Array)
|
|
121
|
-
super method, {value: RailsAdmin.config.composite_keys_serializer.serialize(object.id)}
|
|
122
|
-
else
|
|
123
|
-
super
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
|
|
127
|
-
protected
|
|
128
|
-
|
|
129
|
-
def generator_action(action, nested)
|
|
130
|
-
if nested
|
|
131
|
-
action = :nested
|
|
132
|
-
elsif @template.request.format == 'text/javascript'
|
|
133
|
-
action = :modal
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
action
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
def visible_groups(model_config, action)
|
|
140
|
-
model_config.send(action).with(
|
|
141
|
-
form: self,
|
|
142
|
-
object: @object,
|
|
143
|
-
view: @template,
|
|
144
|
-
controller: @template.controller,
|
|
145
|
-
).visible_groups
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def without_field_error_proc_added_div
|
|
149
|
-
default_field_error_proc = ::ActionView::Base.field_error_proc
|
|
150
|
-
begin
|
|
151
|
-
::ActionView::Base.field_error_proc = proc { |html_tag, _instance| html_tag }
|
|
152
|
-
yield
|
|
153
|
-
ensure
|
|
154
|
-
::ActionView::Base.field_error_proc = default_field_error_proc
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
|
|
158
|
-
private
|
|
159
|
-
|
|
160
|
-
def nested_field_association?(field, nested_in)
|
|
161
|
-
field.inverse_of.presence && nested_in.presence && field.inverse_of == nested_in.name &&
|
|
162
|
-
(@template.instance_variable_get(:@model_config).abstract_model == field.abstract_model ||
|
|
163
|
-
field.name == nested_in.inverse_of)
|
|
164
|
-
end
|
|
165
|
-
end
|
|
166
|
-
end
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<% actions(:root).select(&:show_in_navigation).each do |action| %>
|
|
2
|
-
<% path = rails_admin.url_for(action: action.action_name, controller: "rails_admin/main") %>
|
|
3
|
-
<li class="nav-item <%= "#{action.action_name}_root_link" %>">
|
|
4
|
-
<%= link_to wording_for(:menu, action), path, class: "nav-link #{'active' if current_page?(path)}", data: (action.turbo? ? {} : { turbo: "false" }) %>
|
|
5
|
-
</li>
|
|
6
|
-
<% end %>
|
|
7
|
-
|
|
8
|
-
<%= main_navigation %>
|
|
9
|
-
<%= root_navigation %>
|
|
10
|
-
<%= static_navigation %>
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
<title><%= "#{@abstract_model.try(:pretty_name) || @page_name} | #{[_get_plugin_name[0] || 'Rails', _get_plugin_name[1] || 'Admin'].join(' ')}" %></title>
|
|
2
|
-
|
|
3
|
-
<header class="row align-items-center gx-4 gy-0 gx-md-5 mb-6 mb-md-7" data-model="<%= @abstract_model.to_param %>">
|
|
4
|
-
<div class="col-15 col-md-17 col-lg-19 flex-grow-1 me-auto">
|
|
5
|
-
<nav aria-label="breadcrumb">
|
|
6
|
-
<%= breadcrumb %>
|
|
7
|
-
</nav>
|
|
8
|
-
<h1 class="text-truncate mb-0"><%= @page_name %></h1>
|
|
9
|
-
</div>
|
|
10
|
-
<!-- if md breakpoint -->
|
|
11
|
-
<div class="col-auto d-none d-md-flex">
|
|
12
|
-
<%= link_to (icon "fa-solid", "info-circle"), "https://www.swopthemes.com/", class: "fs-4 link link-scalable link-white", target: "_blank" %>
|
|
13
|
-
</div>
|
|
14
|
-
<!-- if md breakpoint -->
|
|
15
|
-
<div class="col-auto d-none d-md-flex">
|
|
16
|
-
<%= link_to (icon "fa-brands", "github"), "https://github.com/Kamz16/swop", class: "fs-4 link link-scalable link-white", target: "_blank" %>
|
|
17
|
-
</div>
|
|
18
|
-
<div class="col-auto gx-6 gx-md-7">
|
|
19
|
-
<div class="dropdown">
|
|
20
|
-
<button class="btn border-0 p-0" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
|
21
|
-
<div class="img-wrapper img-wrapper-avatar">
|
|
22
|
-
<%= [RailsAdmin::Config.show_gravatar && image_tag(gravatar_url(_current_user.email), alt: _current_user.name),].filter(&:present?).join.html_safe %>
|
|
23
|
-
</div>
|
|
24
|
-
</button>
|
|
25
|
-
<ul class="dropdown-menu dropdown-menu-end">
|
|
26
|
-
<li><%= edit_user_link %></li>
|
|
27
|
-
<li><%= link_to "#{icon "fa-solid", "right-from-bracket", class: "fa-sm fa-fw me-2"}Log out".html_safe, logout_path, method: logout_method, class: "dropdown-item", data: {turbo: 'false'} %></li>
|
|
28
|
-
</ul>
|
|
29
|
-
</div>
|
|
30
|
-
</div>
|
|
31
|
-
<!-- unless xl breakpoint -->
|
|
32
|
-
<div class="col-auto gx-6 gx-md-7 d-xl-none">
|
|
33
|
-
<button class="navbar-toggler" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar" aria-label="Toggle navigation">
|
|
34
|
-
<%= icon "fa-solid", "bars", class: "fs-3 text-white" %>
|
|
35
|
-
</button>
|
|
36
|
-
</div>
|
|
37
|
-
</header>
|
|
38
|
-
|
|
39
|
-
<div class="offcanvas offcanvas-start" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
|
|
40
|
-
<div class="offcanvas-body sidebar list-unstyled p-4 p-md-6 p-lg-7">
|
|
41
|
-
<%= render partial: "layouts/rails_admin/custom_navigation" %>
|
|
42
|
-
</div>
|
|
43
|
-
</div>
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<%
|
|
2
|
-
column_type_dom_id = form.dom_id(field).sub(field.method_name.to_s, field.type_column)
|
|
3
|
-
%>
|
|
4
|
-
|
|
5
|
-
<div class="row">
|
|
6
|
-
<div class="col col-md-10 col-xl-5">
|
|
7
|
-
<% field.widget_options_for_types.each do |model, value| %>
|
|
8
|
-
<div data-options="<%= value.to_json %>" id="<%= model %>-js-options"></div>
|
|
9
|
-
<% end %>
|
|
10
|
-
<%= form.select field.type_column, field.type_collection, {include_blank: true, selected: field.selected_type}, class: "form-select", id: column_type_dom_id, data: { polymorphic: true, urls: field.type_urls.to_json }, style: "float: left; margin-right: 10px;" %>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="col col-md-10 col-xl-5">
|
|
13
|
-
<%= form.select field.method_name, field.collection, {include_blank: true, selected: field.selected_id}, class: "form-control", data: { filteringselect: true, options: field.widget_options }, placeholder: 'Search' %>
|
|
14
|
-
</div>
|
|
15
|
-
</div>
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
<div class="form-actions row justify-content-end gx-5 gy-3 gy-md-0 mt-md-3">
|
|
2
|
-
<div class="col-auto">
|
|
3
|
-
<input name="return_to" type="<%= :hidden %>" value="<%= (params[:return_to].presence || request.referer) %>" />
|
|
4
|
-
<button class="btn btn-primary" data-disable-with="<%= t("admin.form.save") %>" name="_save" type="submit"<%= ' disabled' unless @action.enabled? %>>
|
|
5
|
-
<i class="fas fa-check"></i>
|
|
6
|
-
<%= t("admin.form.save") %>
|
|
7
|
-
</button>
|
|
8
|
-
</div>
|
|
9
|
-
<div class="col-auto">
|
|
10
|
-
<% if @action.enabled? && authorized?(:new, @abstract_model) %>
|
|
11
|
-
<button class="btn btn-white" data-disable-with="<%= t("admin.form.save_and_add_another") %>" name="_add_another" type="submit">
|
|
12
|
-
<%= t("admin.form.save_and_add_another") %>
|
|
13
|
-
</button>
|
|
14
|
-
<% end %>
|
|
15
|
-
</div>
|
|
16
|
-
<div class="col-auto">
|
|
17
|
-
<% if @action.enabled? && authorized?(:edit, @abstract_model) %>
|
|
18
|
-
<button class="btn btn-white" data-disable-with="<%= t("admin.form.save_and_edit") %>" name="_add_edit" type="submit"<%= ' disabled' unless @action.enabled? %>>
|
|
19
|
-
<%= t("admin.form.save_and_edit") %>
|
|
20
|
-
</button>
|
|
21
|
-
<% end %>
|
|
22
|
-
</div>
|
|
23
|
-
<div class="col-auto">
|
|
24
|
-
<button class="btn btn-danger" data-disable-with="<%= t("admin.form.cancel") %>" formnovalidate="<%= true %>" name="_continue" type="submit">
|
|
25
|
-
<i class="fas fa-times"></i>
|
|
26
|
-
<%= t("admin.form.cancel") %>
|
|
27
|
-
</button>
|
|
28
|
-
</div>
|
|
29
|
-
</div>
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
<% if @abstract_models %>
|
|
2
|
-
<div class="table-responsive">
|
|
3
|
-
<table class="table table-hover">
|
|
4
|
-
<thead>
|
|
5
|
-
<tr>
|
|
6
|
-
<th scope="col">
|
|
7
|
-
<span><%= t "admin.table_headers.model_name" %></span>
|
|
8
|
-
</th>
|
|
9
|
-
<th scope="col">
|
|
10
|
-
<span><%= t "admin.table_headers.last_created" %></span>
|
|
11
|
-
</th>
|
|
12
|
-
<th scope="col">
|
|
13
|
-
<span><%= t "admin.table_headers.records" %></span>
|
|
14
|
-
</th>
|
|
15
|
-
<th scope="col">
|
|
16
|
-
</th>
|
|
17
|
-
</tr>
|
|
18
|
-
</thead>
|
|
19
|
-
<tbody>
|
|
20
|
-
<% @abstract_models.each do |abstract_model| %>
|
|
21
|
-
<% if authorized? :index, abstract_model %>
|
|
22
|
-
<% index_path = index_path(model_name: abstract_model.to_param) %>
|
|
23
|
-
<% last_created = @most_recent_created[abstract_model.model.name] %>
|
|
24
|
-
<% active = last_created.try(:today?) %>
|
|
25
|
-
<% count = @count[abstract_model.model.name] %>
|
|
26
|
-
<% percent = count > 0 ? (@max <= 1 ? count : ((Math.log(count+1) * 100.0) / Math.log(@max+1)).to_i) : -1 %>
|
|
27
|
-
<tr>
|
|
28
|
-
<th scope="row">
|
|
29
|
-
<span><%= link_to abstract_model.config.label_plural, index_path, class: "link link-white" %></span>
|
|
30
|
-
</th>
|
|
31
|
-
<td>
|
|
32
|
-
<%= t "admin.misc.time_ago", time: time_ago_in_words(last_created), default: "#{time_ago_in_words(last_created)} #{t("admin.misc.ago")}" if last_created %>
|
|
33
|
-
</td>
|
|
34
|
-
<td>
|
|
35
|
-
<div class="progress <%= active ? "progress-bar-striped active" : "" %> mb-0">
|
|
36
|
-
<div class="progress-bar bg-<%= get_indicator(percent) %> animate-width-to" data-animate-length="<%= ([1.0, percent].max.to_i * 20) %>" data-animate-width-to="<%= [4.0, percent].max.to_i %>%" style="width:4%">
|
|
37
|
-
<span class="fw-semibold"><%= @count[abstract_model.model.name] %></span>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
</td>
|
|
41
|
-
<td>
|
|
42
|
-
<ul class="nav d-flex align-items-center justify-content-end flex-nowrap gap-2 gap-md-3 mb-0">
|
|
43
|
-
<%= menu_for :collection, abstract_model, nil, true %>
|
|
44
|
-
</ul>
|
|
45
|
-
</td>
|
|
46
|
-
</tr>
|
|
47
|
-
<% end %>
|
|
48
|
-
<% end %>
|
|
49
|
-
</tbody>
|
|
50
|
-
</table>
|
|
51
|
-
</div>
|
|
52
|
-
<% end %>
|
|
53
|
-
|
|
54
|
-
<!-- Review then when connecting to POD -->
|
|
55
|
-
<% if @history && authorized?(:history_index) %>
|
|
56
|
-
<div class="block" id="block-tables">
|
|
57
|
-
<div class="content">
|
|
58
|
-
<h2>
|
|
59
|
-
<%= t("admin.actions.history_index.menu") %>
|
|
60
|
-
</h2>
|
|
61
|
-
<%= render partial: 'rails_admin/main/dashboard_history' %>
|
|
62
|
-
</div>
|
|
63
|
-
</div>
|
|
64
|
-
<% end %>
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
en:
|
|
2
|
-
admin:
|
|
3
|
-
js:
|
|
4
|
-
true: "True"
|
|
5
|
-
false: "False"
|
|
6
|
-
is_present: Is present
|
|
7
|
-
is_blank: Is blank
|
|
8
|
-
date: Date ...
|
|
9
|
-
between_and_: Between ... and ...
|
|
10
|
-
today: Today
|
|
11
|
-
yesterday: Yesterday
|
|
12
|
-
this_week: This week
|
|
13
|
-
last_week: Last week
|
|
14
|
-
time: Time ...
|
|
15
|
-
number: Number ...
|
|
16
|
-
contains: Contains
|
|
17
|
-
does_not_contain: Does not contain
|
|
18
|
-
is_exactly: Is exactly
|
|
19
|
-
starts_with: Starts with
|
|
20
|
-
ends_with: Ends with
|
|
21
|
-
too_many_objects: "Too many objects, use search box above"
|
|
22
|
-
no_objects: "No objects found"
|
|
23
|
-
clear: Clear
|
|
24
|
-
loading: "Loading..."
|
|
25
|
-
toggle_navigation: Toggle navigation
|
|
26
|
-
home:
|
|
27
|
-
name: "Home"
|
|
28
|
-
pagination:
|
|
29
|
-
previous: "« Prev"
|
|
30
|
-
next: "Next »"
|
|
31
|
-
truncate: "…"
|
|
32
|
-
misc:
|
|
33
|
-
search: "Search"
|
|
34
|
-
filter: "Filter"
|
|
35
|
-
reset_filters: "Reset filters"
|
|
36
|
-
refresh: "Refresh"
|
|
37
|
-
show_all: "Show all"
|
|
38
|
-
add_filter: "Add filter"
|
|
39
|
-
bulk_menu_title: "Selected items"
|
|
40
|
-
remove: "Remove"
|
|
41
|
-
add_new: "Add new"
|
|
42
|
-
chose_all: "Choose all"
|
|
43
|
-
clear_all: "Clear all"
|
|
44
|
-
up: "Up"
|
|
45
|
-
down: "Down"
|
|
46
|
-
navigation: "Navigation"
|
|
47
|
-
root_navigation: "Actions"
|
|
48
|
-
navigation_static_label: "Links"
|
|
49
|
-
log_out: "Log out"
|
|
50
|
-
time_ago: "%{time} ago"
|
|
51
|
-
ago: "ago"
|
|
52
|
-
more: "Plus %{count} more %{models_name}"
|
|
53
|
-
flash:
|
|
54
|
-
successful: "%{name} successfully %{action}"
|
|
55
|
-
error: "%{name} failed to be %{action}"
|
|
56
|
-
noaction: "No actions were taken"
|
|
57
|
-
model_not_found: "Model '%{model}' could not be found"
|
|
58
|
-
object_not_found: "%{model} with id '%{id}' could not be found"
|
|
59
|
-
table_headers:
|
|
60
|
-
model_name: "Model name"
|
|
61
|
-
last_created: "Last created"
|
|
62
|
-
records: "Records"
|
|
63
|
-
username: "User"
|
|
64
|
-
changes: "Changes"
|
|
65
|
-
created_at: "Date/Time"
|
|
66
|
-
item: "Item"
|
|
67
|
-
message: "Message"
|
|
68
|
-
actions:
|
|
69
|
-
dashboard:
|
|
70
|
-
title: "Site Administration"
|
|
71
|
-
menu: "Dashboard"
|
|
72
|
-
breadcrumb: "Dashboard"
|
|
73
|
-
index:
|
|
74
|
-
title: "List of %{model_label_plural}"
|
|
75
|
-
menu: "List"
|
|
76
|
-
breadcrumb: "%{model_label_plural}"
|
|
77
|
-
no_records: "No records found"
|
|
78
|
-
show:
|
|
79
|
-
title: "Details for %{model_label} '%{object_label}'"
|
|
80
|
-
menu: "Show"
|
|
81
|
-
breadcrumb: "%{object_label}"
|
|
82
|
-
show_in_app:
|
|
83
|
-
menu: "Show in app"
|
|
84
|
-
new:
|
|
85
|
-
title: "New %{model_label}"
|
|
86
|
-
menu: "Add new"
|
|
87
|
-
breadcrumb: "New"
|
|
88
|
-
link: "Add a new %{model_label}"
|
|
89
|
-
done: "created"
|
|
90
|
-
edit:
|
|
91
|
-
title: "Edit %{model_label} '%{object_label}'"
|
|
92
|
-
menu: "Edit"
|
|
93
|
-
breadcrumb: "Edit"
|
|
94
|
-
link: "Edit this %{model_label}"
|
|
95
|
-
done: "updated"
|
|
96
|
-
delete:
|
|
97
|
-
title: "Delete %{model_label} '%{object_label}'"
|
|
98
|
-
menu: "Delete"
|
|
99
|
-
breadcrumb: "Delete"
|
|
100
|
-
link: "Delete '%{object_label}'"
|
|
101
|
-
done: "deleted"
|
|
102
|
-
bulk_delete:
|
|
103
|
-
title: "Delete %{model_label_plural}"
|
|
104
|
-
menu: "Multiple delete"
|
|
105
|
-
breadcrumb: "Multiple delete"
|
|
106
|
-
bulk_link: "Delete selected %{model_label_plural}"
|
|
107
|
-
export:
|
|
108
|
-
title: "Export %{model_label_plural}"
|
|
109
|
-
menu: "Export"
|
|
110
|
-
breadcrumb: "Export"
|
|
111
|
-
link: "Export found %{model_label_plural}"
|
|
112
|
-
bulk_link: "Export selected %{model_label_plural}"
|
|
113
|
-
done: "exported"
|
|
114
|
-
history_index:
|
|
115
|
-
title: "History for %{model_label_plural}"
|
|
116
|
-
menu: "History"
|
|
117
|
-
breadcrumb: "History"
|
|
118
|
-
history_show:
|
|
119
|
-
title: "History for %{model_label} '%{object_label}'"
|
|
120
|
-
menu: "History"
|
|
121
|
-
breadcrumb: "History"
|
|
122
|
-
form:
|
|
123
|
-
cancel: "Cancel"
|
|
124
|
-
basic_info: "Basic info"
|
|
125
|
-
required: "Required"
|
|
126
|
-
optional: "Optional"
|
|
127
|
-
one_char: "character"
|
|
128
|
-
char_length_up_to: "length up to"
|
|
129
|
-
char_length_of: "length of"
|
|
130
|
-
save: "Save"
|
|
131
|
-
save_and_add_another: "Save and add another"
|
|
132
|
-
save_and_edit: "Save and edit"
|
|
133
|
-
delete_file: "Delete '%{field_label}' #%{number}"
|
|
134
|
-
all_of_the_following_related_items_will_be_deleted: "? The following related items may be deleted or orphaned:"
|
|
135
|
-
are_you_sure_you_want_to_delete_the_object: "Are you sure you want to delete this %{model_name}"
|
|
136
|
-
confirmation: "Yes, I'm sure"
|
|
137
|
-
bulk_delete: "The following objects will be deleted, which may delete or orphan some of their related dependencies:"
|
|
138
|
-
new_model: "%{name} (new)"
|
|
139
|
-
export:
|
|
140
|
-
confirmation: "Export to %{name}"
|
|
141
|
-
select: "Select fields to export"
|
|
142
|
-
select_all_fields: "Select All Fields"
|
|
143
|
-
fields_from: "%{name}"
|
|
144
|
-
fields_from_associated: "%{name}"
|
|
145
|
-
display: "Display %{name}: %{type}"
|
|
146
|
-
options_for: "Options for %{name}"
|
|
147
|
-
empty_value_for_associated_objects: "<empty>"
|
|
148
|
-
click_to_reverse_selection: "Click to reverse selection"
|
|
149
|
-
csv:
|
|
150
|
-
header_for_root_methods: "%{name}" # 'model' is available
|
|
151
|
-
header_for_association_methods: "%{name} [%{association}]"
|
|
152
|
-
encoding_to: "Encode to"
|
|
153
|
-
encoding_to_help: "Choose output encoding. Leave empty to let current input encoding untouched: (%{name})"
|
|
154
|
-
skip_header: "No header"
|
|
155
|
-
skip_header_help: "Do not output a header (no fields description)"
|
|
156
|
-
default_col_sep: ","
|
|
157
|
-
col_sep: "Column separator"
|
|
158
|
-
col_sep_help: "Leave blank for default ('%{value}')" # value is default_col_sep
|
data/sig/swop.rbs
DELETED
/data/app/assets/stylesheets/{rails_admin/themes/base/mixins.scss → swop/swop-core/swop-mixins.scss}
RENAMED
|
File without changes
|