active_scaffold 4.2.3 → 4.3.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/CHANGELOG.rdoc +16 -1
- data/README.md +108 -7
- data/app/assets/javascripts/{jquery → active_scaffold}/active_scaffold.js +759 -762
- data/app/assets/javascripts/{jquery/date_picker_bridge.js.erb → active_scaffold/date_picker_bridge.js} +0 -3
- data/app/assets/javascripts/active_scaffold/load.js +102 -0
- data/app/assets/javascripts/active_scaffold.js.erb +3 -27
- data/app/assets/stylesheets/active_scaffold/_colours.scss +330 -0
- data/app/assets/stylesheets/active_scaffold/_images.scss +65 -0
- data/app/assets/stylesheets/{active_scaffold_layout.scss → active_scaffold/_layout.scss} +14 -0
- data/app/assets/stylesheets/active_scaffold/_variables.scss +194 -0
- data/app/assets/stylesheets/active_scaffold/core.scss +15 -0
- data/app/assets/stylesheets/active_scaffold.scss.erb +16 -0
- data/app/views/active_scaffold_overrides/_field_search_columns.html.erb +8 -0
- data/app/views/active_scaffold_overrides/_form.html.erb +8 -0
- data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -1
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +4 -2
- data/app/views/active_scaffold_overrides/_show_association.html.erb +2 -1
- data/app/views/active_scaffold_overrides/_show_association_horizontal.html.erb +2 -2
- data/app/views/active_scaffold_overrides/_show_association_vertical.html.erb +1 -1
- data/app/views/active_scaffold_overrides/edit_associated.js.erb +10 -8
- data/lib/active_scaffold/actions/core.rb +34 -3
- data/lib/active_scaffold/assets/css_deps_generator.rb +42 -0
- data/lib/active_scaffold/assets/jquery_ui_manifest.rb +77 -0
- data/lib/active_scaffold/assets/jquery_ui_theme_generator.rb +102 -0
- data/lib/active_scaffold/assets.rb +109 -0
- data/lib/active_scaffold/attribute_params.rb +11 -2
- data/lib/active_scaffold/bridges/active_storage/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/chosen.rb +1 -1
- data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/paperclip/form_ui.rb +1 -1
- data/lib/active_scaffold/bridges/record_select/helpers.rb +1 -1
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +1 -0
- data/lib/active_scaffold/bridges/tiny_mce.rb +6 -1
- data/lib/active_scaffold/bridges.rb +7 -0
- data/lib/active_scaffold/config/core.rb +7 -3
- data/lib/active_scaffold/constraints.rb +1 -1
- data/lib/active_scaffold/data_structures/action_columns.rb +66 -0
- data/lib/active_scaffold/data_structures/bridge.rb +2 -0
- data/lib/active_scaffold/data_structures/column.rb +3 -0
- data/lib/active_scaffold/engine.rb +40 -0
- data/lib/active_scaffold/finder.rb +1 -1
- data/lib/active_scaffold/helpers/assets_helpers.rb +39 -0
- data/lib/active_scaffold/helpers/controller_helpers.rb +1 -1
- data/lib/active_scaffold/helpers/form_column_helpers.rb +57 -532
- data/lib/active_scaffold/helpers/form_ui_helpers.rb +530 -0
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +1 -0
- data/lib/active_scaffold/helpers/list_column_helpers.rb +31 -11
- data/lib/active_scaffold/helpers/search_column_helpers.rb +5 -12
- data/lib/active_scaffold/helpers/show_column_helpers.rb +4 -2
- data/lib/active_scaffold/helpers/view_helpers.rb +12 -0
- data/lib/active_scaffold/railties/tasks.rake +10 -0
- data/lib/active_scaffold/testing/assert_embedded_load.rb +33 -0
- data/lib/active_scaffold/version.rb +2 -2
- data/lib/active_scaffold.rb +7 -2
- data/lib/tasks/active_scaffold/assets.rake +42 -0
- data/lib/tasks/bundle.rake +25 -0
- data/vendor/assets/stylesheets/{jquery-ui-theme.css.erb → jquery-ui-theme.css} +17 -17
- metadata +26 -28
- data/app/assets/stylesheets/active_scaffold.scss +0 -424
- data/app/assets/stylesheets/active_scaffold_extensions.css.erb +0 -2
- data/app/assets/stylesheets/active_scaffold_images.scss +0 -65
- data/app/assets/stylesheets/active_scaffold_jquery_ui.css.erb +0 -13
- /data/app/assets/javascripts/{jquery → active_scaffold}/active_scaffold_chosen.js +0 -0
- /data/app/assets/javascripts/{jquery → active_scaffold}/draggable_lists.js +0 -0
- /data/app/assets/javascripts/{jquery → active_scaffold}/jquery.editinplace.js +0 -0
- /data/app/assets/javascripts/{jquery → active_scaffold}/tiny_mce_bridge.js +0 -0
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
<%# encoding: utf-8 %>
|
|
2
|
-
<% I18n.available_locales.each { |locale| Rails.root.glob("config/locales/#{locale}.*").each { |path| depend_on path.to_s } } %>
|
|
3
|
-
<%= ActiveScaffold::Bridges[:date_picker].localization %>
|
|
4
1
|
Object.getPrototypeOf(jQuery.datepicker)._attachDatepicker_without_inlineSettings = Object.getPrototypeOf(jQuery.datepicker)._attachDatepicker;
|
|
5
2
|
jQuery.extend(Object.getPrototypeOf(jQuery.datepicker), {
|
|
6
3
|
_attachDatepicker: function(target, settings) {
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// ActiveScaffold main entry point
|
|
2
|
+
(function() {
|
|
3
|
+
const config = window.ActiveScaffold?.config || {};
|
|
4
|
+
|
|
5
|
+
// Load dependencies based on configuration
|
|
6
|
+
const loadDependencies = async () => {
|
|
7
|
+
// Always load these
|
|
8
|
+
await loadScript(RAILS_ASSET_URL('/jquery.ba-throttle-debounce.js'));
|
|
9
|
+
await loadScript(RAILS_ASSET_URL('/jquery.visible.min.js'));
|
|
10
|
+
|
|
11
|
+
// Check if jQuery UI should be loaded
|
|
12
|
+
if (config.jqueryUiIncluded) {
|
|
13
|
+
await loadJQueryUI();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Load core ActiveScaffold
|
|
17
|
+
await loadScript(RAILS_ASSET_URL('/active_scaffold/active_scaffold.js'));
|
|
18
|
+
await loadScript(RAILS_ASSET_URL('/active_scaffold/jquery.editinplace.js'));
|
|
19
|
+
|
|
20
|
+
// Load plugins
|
|
21
|
+
if (config.plugins) {
|
|
22
|
+
for (const plugin of config.plugins) {
|
|
23
|
+
await loadScript(plugin);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Load bridges
|
|
28
|
+
if (config.bridges) {
|
|
29
|
+
for (const bridge of config.bridges) {
|
|
30
|
+
await loadScript(bridge);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// ALL DEPENDENCIES ARE LOADED NOW
|
|
35
|
+
// Initialize everything
|
|
36
|
+
initializeActiveScaffold();
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const loadJQueryUI = async () => {
|
|
40
|
+
// Check if jQuery UI is already loaded via importmap or script tag
|
|
41
|
+
if (typeof window.jQuery?.ui === 'undefined') {
|
|
42
|
+
// If using jquery-ui-rails gem with Sprockets/Propshaft
|
|
43
|
+
// We need to load individual components
|
|
44
|
+
if (config.jqueryUi) {
|
|
45
|
+
for (const file of config.jqueryUi) {
|
|
46
|
+
await loadScript(file);
|
|
47
|
+
}
|
|
48
|
+
} else return;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Load jQuery UI addons
|
|
52
|
+
await loadScript(RAILS_ASSET_URL('/jquery-ui-timepicker-addon.js'));
|
|
53
|
+
await loadScript(RAILS_ASSET_URL('/active_scaffold/date_picker_bridge.js'));
|
|
54
|
+
await loadScript(RAILS_ASSET_URL('/active_scaffold/draggable_lists.js'));
|
|
55
|
+
|
|
56
|
+
// Initialize jQuery UI components
|
|
57
|
+
initializeJQueryUI();
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const loadScript = (path) => {
|
|
61
|
+
return new Promise((resolve, reject) => {
|
|
62
|
+
// Check if already loaded
|
|
63
|
+
if (document.querySelector(`script[src*="${path}"]`)) {
|
|
64
|
+
resolve();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const script = document.createElement('script');
|
|
69
|
+
script.src = path;
|
|
70
|
+
script.async = false;
|
|
71
|
+
script.onload = resolve;
|
|
72
|
+
script.onerror = reject;
|
|
73
|
+
document.head.appendChild(script);
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
const initializeJQueryUI = function() {
|
|
78
|
+
if (config.jqueryUiIncluded && window.jQuery) {
|
|
79
|
+
// Check if datepicker exists
|
|
80
|
+
if (jQuery.datepicker) {
|
|
81
|
+
// Execute the datepicker localization
|
|
82
|
+
// This will be replaced by actual generated code
|
|
83
|
+
eval(config.datepickerLocalization);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
// NEW: Initialize everything after all scripts are loaded
|
|
89
|
+
const initializeActiveScaffold = () => {
|
|
90
|
+
// Run any post-load initialization
|
|
91
|
+
if (window.jQuery) {
|
|
92
|
+
jQuery(document).trigger('active-scaffold:loaded');
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// Start loading when DOM is ready
|
|
97
|
+
if (document.readyState === 'loading') {
|
|
98
|
+
document.addEventListener('DOMContentLoaded', loadDependencies);
|
|
99
|
+
} else {
|
|
100
|
+
loadDependencies();
|
|
101
|
+
}
|
|
102
|
+
})();
|
|
@@ -1,31 +1,7 @@
|
|
|
1
1
|
<%
|
|
2
|
-
require_asset
|
|
3
|
-
if Object.const_defined?(:Jquery)
|
|
4
|
-
if Jquery.const_defined?(:Rails) && Jquery::Rails.const_defined?(:JQUERY_UI_VERSION)
|
|
5
|
-
require_asset 'jquery-ui'
|
|
6
|
-
elsif Jquery.const_defined? :Ui
|
|
7
|
-
jquery_ui_prefix = Jquery::Ui::Rails::VERSION < '5.0.0' ? 'jquery.ui.' : 'jquery-ui/'
|
|
8
|
-
jquery_ui_widgets_prefix = Jquery::Ui::Rails::VERSION >= '6.0.0' ? 'widgets/' : ''
|
|
9
|
-
require_asset "#{jquery_ui_prefix}core" unless Jquery::Ui::Rails::VERSION >= '8.0.0'
|
|
10
|
-
require_asset "#{jquery_ui_prefix}effect"
|
|
11
|
-
require_asset "#{jquery_ui_prefix}effects/effect-highlight" if Jquery::Ui::Rails::VERSION >= '6.0.0'
|
|
12
|
-
require_asset "#{jquery_ui_prefix}#{jquery_ui_widgets_prefix}sortable"
|
|
13
|
-
require_asset "#{jquery_ui_prefix}#{jquery_ui_widgets_prefix}draggable"
|
|
14
|
-
require_asset "#{jquery_ui_prefix}#{jquery_ui_widgets_prefix}droppable"
|
|
15
|
-
require_asset "#{jquery_ui_prefix}#{jquery_ui_widgets_prefix}datepicker"
|
|
16
|
-
end
|
|
17
|
-
end
|
|
2
|
+
ActiveScaffold::Assets.active_scaffold_javascripts.each { |asset| require_asset asset }
|
|
18
3
|
if ActiveScaffold.jquery_ui_included?
|
|
19
|
-
|
|
20
|
-
require_asset 'jquery/date_picker_bridge'
|
|
21
|
-
require_asset 'jquery/draggable_lists'
|
|
4
|
+
I18n.available_locales.each { |locale| Rails.root.glob("config/locales/#{locale}.*").each { |path| depend_on path.to_s } }
|
|
22
5
|
end
|
|
23
|
-
require_asset 'jquery.visible.min'
|
|
24
|
-
require_asset 'jquery/active_scaffold'
|
|
25
|
-
require_asset 'jquery/jquery.editinplace'
|
|
26
|
-
%>
|
|
27
|
-
ActiveScaffold.config = <%= ActiveScaffold.js_config.to_json %>;
|
|
28
|
-
<%
|
|
29
|
-
ActiveScaffold.javascripts.each { |js| require_asset js }
|
|
30
|
-
ActiveScaffold::Bridges.all_javascripts.each { |js| require_asset js }
|
|
31
6
|
%>
|
|
7
|
+
<%= ActiveScaffold::Assets.active_scaffold_js_code %>
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
.active-scaffold a, .active-scaffold a:visited {
|
|
2
|
+
color: var(--as-link-color);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.active-scaffold a.disabled {
|
|
6
|
+
color: var(--as-disabled-color);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.active-scaffold a:hover, .active-scaffold div.hover, .active-scaffold td span.hover {
|
|
10
|
+
background-color: var(--as-hover-bg);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
noscript.active-scaffold {
|
|
14
|
+
border-color: var(--as-msg-error-border-color);
|
|
15
|
+
background-color: var(--as-msg-error-bg);
|
|
16
|
+
color: var(--as-column-color);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Header
|
|
20
|
+
======================== */
|
|
21
|
+
|
|
22
|
+
.active-scaffold-header h2 {
|
|
23
|
+
color: var(--as-header-color);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.active-scaffold div.actions a.separator {
|
|
27
|
+
border-color: var(--as-action-group-border-color);
|
|
28
|
+
}
|
|
29
|
+
.active-scaffold-header div.actions a.disabled {
|
|
30
|
+
color: var(--as-actions-disabled-color);
|
|
31
|
+
}
|
|
32
|
+
.active-scaffold .actions .filters .active {
|
|
33
|
+
color: var(--as-active-filter);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Table :: Column Headers
|
|
37
|
+
============================= */
|
|
38
|
+
|
|
39
|
+
.active-scaffold th {
|
|
40
|
+
background-color: var(--as-column-header-bg);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.active-scaffold th a,
|
|
44
|
+
.active-scaffold th p {
|
|
45
|
+
background-color: var(--as-column-header-bg);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.active-scaffold th a, .active-scaffold th a:visited {
|
|
49
|
+
color: var(--as-column-header-link-color);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.active-scaffold th p,
|
|
53
|
+
.active-scaffold .show-view th {
|
|
54
|
+
color: var(--as-column-header-color);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.active-scaffold th a:hover {
|
|
58
|
+
background-color: var(--as-column-header-link-hover-bg);
|
|
59
|
+
color: var(--as-column-header-link-hover-color);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.active-scaffold th.sorted {
|
|
63
|
+
background-color: var(--as-column-header-sorted-bg);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.active-scaffold th.asc a,
|
|
67
|
+
.active-scaffold th.asc a:hover,
|
|
68
|
+
.active-scaffold th.desc a,
|
|
69
|
+
.active-scaffold th.desc a:hover,
|
|
70
|
+
.active-scaffold th.loading a,
|
|
71
|
+
.active-scaffold th.loading a:hover {
|
|
72
|
+
background-color: var(--as-column-header-sorted-bg);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* Table :: Record Rows
|
|
76
|
+
============================= */
|
|
77
|
+
|
|
78
|
+
.active-scaffold tr.record {
|
|
79
|
+
background-color: var(--as-column-bg);
|
|
80
|
+
}
|
|
81
|
+
.active-scaffold tr.record td {
|
|
82
|
+
color: var(--as-column-color);
|
|
83
|
+
border-color: var(--as-column-border-color);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.active-scaffold tr.even-record {
|
|
87
|
+
background-color: var(--as-column-even-bg);
|
|
88
|
+
}
|
|
89
|
+
.active-scaffold tr.even-record td {
|
|
90
|
+
border-left-color: var(--as-column-even-border-color);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.active-scaffold tr.record td.sorted {
|
|
94
|
+
background-color: var(--as-column-sorted-bg);
|
|
95
|
+
border-bottom-color: var(--as-column-sorted-border-color);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.active-scaffold tr.even-record td.sorted {
|
|
99
|
+
background-color: var(--as-column-even-sorted-bg);
|
|
100
|
+
border-bottom-color: var(--as-column-even-sorted-border-color);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.active-scaffold tbody.records td.empty {
|
|
104
|
+
color: var(--as-column-empty-color);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Table :: Actions (Edit, Delete)
|
|
108
|
+
============================= */
|
|
109
|
+
.active-scaffold tr.record td.actions {
|
|
110
|
+
border-color: var(--as-column-actions-border-color);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.active-scaffold tr.record td.actions table td.separator {
|
|
114
|
+
border-color: var(--as-column-actions-border-color);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.active-scaffold tr.record td.actions a.disabled {
|
|
118
|
+
color: var(--as-actions-disabled-color);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.active-scaffold .actions .action_group div:hover {
|
|
122
|
+
background-color: var(--as-action-group-hover-bg);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.active-scaffold .actions .action_group {
|
|
126
|
+
color: var(--as-action-group-color);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.active-scaffold .actions .action_group ul {
|
|
130
|
+
border-color: var(--as-action-group-border-color);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.active-scaffold .actions .action_group ul li {
|
|
134
|
+
background-color: var(--as-action-group-items-bg);
|
|
135
|
+
border-color: var(--as-action-group-items-border-color);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.active-scaffold .actions .action_group ul li a {
|
|
139
|
+
color: var(--as-action-group-link-color);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* Table :: Inline Adapter
|
|
143
|
+
============================= */
|
|
144
|
+
|
|
145
|
+
.active-scaffold .view {
|
|
146
|
+
background-color: var(--as-nested-bg);
|
|
147
|
+
border-color: var(--as-nested-border-color);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* Nested
|
|
151
|
+
======================== */
|
|
152
|
+
|
|
153
|
+
.active-scaffold .active-scaffold .active-scaffold-footer {
|
|
154
|
+
color: var(--as-nested-footer-color);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.active-scaffold .active-scaffold tr.record {
|
|
158
|
+
background-color: var(--as-nested-column-bg);
|
|
159
|
+
border-color: var(--as-nested-column-border-color);
|
|
160
|
+
}
|
|
161
|
+
.active-scaffold .active-scaffold tr.even-record {
|
|
162
|
+
background-color: var(--as-nested-column-even-bg);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.active-scaffold .active-scaffold td.inline-adapter-cell {
|
|
166
|
+
background-color: var(--as-second-nested-bg);
|
|
167
|
+
border-color: var(--as-second-nested-border-color);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.active-scaffold .active-scaffold .active-scaffold td.inline-adapter-cell {
|
|
171
|
+
background-color: var(--as-third-nested-bg);
|
|
172
|
+
border-color: var(--as-third-nested-border-color);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
/* Footer
|
|
176
|
+
========================== */
|
|
177
|
+
|
|
178
|
+
.active-scaffold-calculations td {
|
|
179
|
+
background-color: var(--as-calculations-bg);
|
|
180
|
+
border-color: var(--as-calculations-border-color);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.active-scaffold-footer .next {
|
|
184
|
+
border-color: var(--as-pagination-border-color);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.active-scaffold-footer .previous {
|
|
188
|
+
border-color: var(--as-pagination-border-color);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* Messages
|
|
192
|
+
========================= */
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
.active-scaffold .empty-message, .active-scaffold .filtered-message {
|
|
196
|
+
background-color: var(--as-msg-filtered-bg);
|
|
197
|
+
color: var(--as-msg-filtered-color);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.active-scaffold .message {
|
|
201
|
+
color: var(--as-msg-color);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.active-scaffold .error-message, .active-scaffold-component .error-message {
|
|
205
|
+
border-color: var(--as-msg-error-border-color);
|
|
206
|
+
background-color: var(--as-msg-error-bg);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.active-scaffold .warning-message {
|
|
210
|
+
border-color: var(--as-msg-warning-border-color);
|
|
211
|
+
background-color: var(--as-msg-warning-bg);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.active-scaffold .info-message {
|
|
215
|
+
border-color: var(--as-msg-info-border-color);
|
|
216
|
+
background-color: var(--as-msg-info-bg);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* Error Styling
|
|
220
|
+
========================== */
|
|
221
|
+
|
|
222
|
+
.active-scaffold .errorExplanation {
|
|
223
|
+
background-color: var(--as-msg-error-bg);
|
|
224
|
+
border-color: var(--as-msg-error-border-color);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.active-scaffold .errorExplanation h2 {
|
|
228
|
+
color: var(--as-msg-color);
|
|
229
|
+
background-color: var(--as-msg-error-border-color);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/* Show
|
|
233
|
+
============================= */
|
|
234
|
+
|
|
235
|
+
.active-scaffold .show-view dt {
|
|
236
|
+
color: var(--as-label-color);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
/* Form
|
|
240
|
+
============================== */
|
|
241
|
+
|
|
242
|
+
.active-scaffold h4,
|
|
243
|
+
.active-scaffold h5 {
|
|
244
|
+
color: var(--as-form-title-color);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* Form :: Fields
|
|
248
|
+
============================== */
|
|
249
|
+
|
|
250
|
+
.active-scaffold label {
|
|
251
|
+
color: var(--as-label-color);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.active-scaffold .description {
|
|
255
|
+
color: var(--as-description-color);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.active-scaffold label.example {
|
|
259
|
+
color: var(--as-placeholder-color);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.active-scaffold input.text-input,
|
|
263
|
+
.active-scaffold select {
|
|
264
|
+
border-color: var(--as-input-border-color);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.active-scaffold input:invalid,
|
|
268
|
+
.active-scaffold textarea:invalid,
|
|
269
|
+
.active-scaffold select:invalid,
|
|
270
|
+
.active-scaffold .fieldWithErrors input,
|
|
271
|
+
.active-scaffold .field_with_errors input,
|
|
272
|
+
.active-scaffold .fieldWithErrors textarea,
|
|
273
|
+
.active-scaffold .field_with_errors textarea,
|
|
274
|
+
.active-scaffold .fieldWithErrors select,
|
|
275
|
+
.active-scaffold .field_with_errors select {
|
|
276
|
+
border-color: var(--as-input-error-border-color);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.active-scaffold input.example {
|
|
280
|
+
color: var(--as-placeholder-color);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.active-scaffold select:focus,
|
|
284
|
+
.active-scaffold input.text-input:focus {
|
|
285
|
+
background-color: var(--as-input-focus-bg);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.active-scaffold textarea {
|
|
289
|
+
border-color: var(--as-input-border-color);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.active-scaffold form .checkbox-list.draggable-list {
|
|
293
|
+
background-color: var(--as-draggable-list-bg);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.active-scaffold form .checkbox-list.draggable-list.selected {
|
|
297
|
+
background-color: var(--as-draggable-list-selected-bg);
|
|
298
|
+
}
|
|
299
|
+
.active-scaffold .ui-droppable-disabled, .active-scaffold .ui-droppable-disabled.selected {
|
|
300
|
+
background-color: var(--as-draggable-list-disabled-bg);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
/* Form :: Association Sub-Forms
|
|
305
|
+
============================== */
|
|
306
|
+
|
|
307
|
+
.active-scaffold .sub-form table th {
|
|
308
|
+
color: var(--as-subform-header-color);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.active-scaffold .sub-form .checkbox-list {
|
|
312
|
+
background-color: var(--as-checkbox-list-bg);
|
|
313
|
+
border-color: var(--as-input-border-color);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.active-scaffold .vertical-sub-form .sub-form-record + .sub-form-record {
|
|
317
|
+
border-color: var(--as-vertical-sub-form-border-color);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.active-scaffold .sub-form table td {
|
|
321
|
+
color: var(--as-subform-color);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.active-scaffold .sub-form .footer {
|
|
325
|
+
color: var(--as-subform-footer-color);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
.as_touch th a, .as_touch th a:visited {
|
|
329
|
+
color: var(--as-column-header-link-color);
|
|
330
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
.active-scaffold-header div.actions div.action_group div {
|
|
2
|
+
background-image: url("active_scaffold/gears.png"); /* default icon for actions or override with css */
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.active-scaffold-header div.actions a.show_config_list {
|
|
6
|
+
background-image: url("active_scaffold/config.png");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.active-scaffold-header div.actions a.new,
|
|
10
|
+
.active-scaffold-header div.actions a.new_existing {
|
|
11
|
+
background-image: url("active_scaffold/add.png");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.active-scaffold-header div.actions a.show_search {
|
|
15
|
+
background-image: url("active_scaffold/magnifier.png");
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.active-scaffold th.asc a {
|
|
19
|
+
background-image: url("active_scaffold/arrow_up.png");
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.active-scaffold th.desc a {
|
|
23
|
+
background-image: url("active_scaffold/arrow_down.png");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
.active-scaffold .draggable-lists-container .check-buttons {
|
|
28
|
+
.check-all, .uncheck-all {
|
|
29
|
+
background-image: url("active_scaffold/fast-arrow-right.svg");
|
|
30
|
+
background-repeat: no-repeat;
|
|
31
|
+
background-size: contain;
|
|
32
|
+
width: 16px;
|
|
33
|
+
text-indent: 20px;
|
|
34
|
+
overflow: hidden;
|
|
35
|
+
white-space: nowrap;
|
|
36
|
+
}
|
|
37
|
+
.uncheck-all {
|
|
38
|
+
background-image: url("active_scaffold/fast-arrow-left.svg");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.active-scaffold th.loading a {
|
|
43
|
+
background-image: url("active_scaffold/indicator-small.gif");
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.active-scaffold a.inline-adapter-close {
|
|
47
|
+
background-image: url("active_scaffold/close.png");
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.active-scaffold .sub-form .association-record a.destroy {
|
|
51
|
+
background-image: url("active_scaffold/cross.png");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.as_touch a.inline-adapter-close {
|
|
55
|
+
background-image: url("active_scaffold/close_touch.png");
|
|
56
|
+
}
|
|
57
|
+
.active-scaffold .refresh-link {
|
|
58
|
+
background-image: url("active_scaffold/refresh.png");
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ui-dialog .loading::after {
|
|
62
|
+
background: url("active_scaffold/indicator.gif") no-repeat;
|
|
63
|
+
content: 'Loading...';
|
|
64
|
+
padding-left: 20px;
|
|
65
|
+
}
|
|
@@ -380,6 +380,7 @@ text-indent: -4000px;
|
|
|
380
380
|
width: 16px;
|
|
381
381
|
height: 17px;
|
|
382
382
|
background: 0 0 no-repeat;
|
|
383
|
+
overflow: hidden;
|
|
383
384
|
}
|
|
384
385
|
|
|
385
386
|
/* Nested
|
|
@@ -989,6 +990,19 @@ clear: left;
|
|
|
989
990
|
padding: 5px 0;
|
|
990
991
|
}
|
|
991
992
|
|
|
993
|
+
/* Form :: Multiple Columns Layout
|
|
994
|
+
============================== */
|
|
995
|
+
|
|
996
|
+
.active-scaffold .form-columns {
|
|
997
|
+
display: flex;
|
|
998
|
+
gap: 10px;
|
|
999
|
+
|
|
1000
|
+
> ol.form {
|
|
1001
|
+
flex: 1;
|
|
1002
|
+
min-width: 0;
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
|
|
992
1006
|
/* Form :: Association Sub-Forms
|
|
993
1007
|
============================== */
|
|
994
1008
|
|