trestle 0.8.4 → 0.8.11
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 +5 -5
- data/.gitignore +4 -0
- data/.travis.yml +14 -1
- data/Gemfile +6 -0
- data/README.md +15 -9
- data/app/assets/javascripts/trestle/admin.js +11 -10
- data/app/assets/javascripts/trestle/components/_confirmation.js +40 -0
- data/app/assets/javascripts/trestle/components/_datepicker.js +37 -0
- data/app/assets/javascripts/trestle/components/_dialog.js +136 -0
- data/app/assets/javascripts/trestle/{_errors.js → components/_errors.js} +2 -2
- data/app/assets/javascripts/trestle/components/_form.js +75 -0
- data/app/assets/javascripts/trestle/{_gallery.js → components/_gallery.js} +3 -3
- data/app/assets/javascripts/trestle/{_select.js → components/_select.js} +2 -2
- data/app/assets/javascripts/trestle/components/_sidebar.js +77 -0
- data/app/assets/javascripts/trestle/{_table.js → components/_table.js} +1 -1
- data/app/assets/javascripts/trestle/components/_tabs.js +25 -0
- data/app/assets/javascripts/trestle/components/_tooltips.js +19 -0
- data/app/assets/javascripts/trestle/core/_contexts.js +13 -0
- data/app/assets/javascripts/trestle/core/_cookies.js +24 -0
- data/app/assets/javascripts/trestle/core/_events.js +39 -0
- data/app/assets/javascripts/trestle/core/_l10n.js +23 -0
- data/app/assets/javascripts/trestle/core/_visit.js +10 -0
- data/app/assets/stylesheets/trestle/components/_alerts.scss +28 -0
- data/app/assets/stylesheets/trestle/components/_avatar.scss +23 -1
- data/app/assets/stylesheets/trestle/components/_breadcrumbs.scss +12 -0
- data/app/assets/stylesheets/trestle/components/_buttons.scss +111 -1
- data/app/assets/stylesheets/trestle/components/_content.scss +53 -21
- data/app/assets/stylesheets/trestle/components/_datepicker.scss +28 -0
- data/app/assets/stylesheets/trestle/components/_fields.scss +17 -0
- data/app/assets/stylesheets/trestle/components/_input-group.scss +26 -1
- data/app/assets/stylesheets/trestle/components/_modal.scss +108 -0
- data/app/assets/stylesheets/trestle/components/_navigation.scss +104 -14
- data/app/assets/stylesheets/trestle/components/_pagination.scss +3 -3
- data/app/assets/stylesheets/trestle/components/_scopes.scss +11 -2
- data/app/assets/stylesheets/trestle/components/_sidebar.scss +3 -2
- data/app/assets/stylesheets/trestle/components/_table.scss +34 -10
- data/app/assets/stylesheets/trestle/components/_tags.scss +9 -0
- data/app/assets/stylesheets/trestle/components/_timestamp.scss +4 -1
- data/app/assets/stylesheets/trestle/components/_toolbars.scss +55 -0
- data/app/assets/stylesheets/trestle/components/_wells.scss +9 -1
- data/app/assets/stylesheets/trestle/core/_defaults.scss +21 -6
- data/app/assets/stylesheets/trestle/core/_layout.scss +8 -0
- data/app/assets/stylesheets/trestle/core/_mixins.scss +11 -0
- data/app/assets/stylesheets/trestle/core/_typography.scss +39 -0
- data/app/controllers/concerns/trestle/controller/breadcrumbs.rb +21 -0
- data/app/controllers/concerns/trestle/controller/callbacks.rb +21 -0
- data/app/controllers/concerns/trestle/controller/dialog.rb +16 -0
- data/app/controllers/concerns/trestle/controller/helpers.rb +18 -0
- data/app/controllers/concerns/trestle/controller/layout.rb +16 -0
- data/app/controllers/concerns/trestle/controller/location.rb +15 -0
- data/app/controllers/trestle/application_controller.rb +6 -30
- data/app/helpers/trestle/avatar_helper.rb +9 -2
- data/app/helpers/trestle/flash_helper.rb +15 -0
- data/app/helpers/trestle/form_helper.rb +8 -5
- data/app/helpers/trestle/format_helper.rb +7 -3
- data/app/helpers/trestle/headings_helper.rb +27 -0
- data/app/helpers/trestle/hook_helper.rb +13 -4
- data/app/helpers/trestle/i18n_helper.rb +14 -0
- data/app/helpers/trestle/panel_helper.rb +24 -0
- data/app/helpers/trestle/tab_helper.rb +2 -2
- data/app/helpers/trestle/table_helper.rb +41 -2
- data/app/helpers/trestle/timestamp_helper.rb +49 -7
- data/app/helpers/trestle/toolbars_helper.rb +34 -0
- data/app/helpers/trestle/url_helper.rb +72 -8
- data/app/views/layouts/trestle/admin.html.erb +3 -5
- data/app/views/trestle/application/_dialog.html.erb +34 -0
- data/app/views/trestle/application/_header.html.erb +22 -20
- data/app/views/trestle/application/_layout.html.erb +1 -1
- data/app/views/trestle/application/_tabs.html.erb +8 -2
- data/app/views/trestle/{application → flash}/_alert.html.erb +7 -2
- data/app/views/trestle/flash/_debug.html.erb +8 -0
- data/app/views/trestle/flash/_flash.html.erb +7 -0
- data/app/views/trestle/resource/_scopes.html.erb +1 -1
- data/app/views/trestle/resource/edit.html.erb +8 -10
- data/app/views/trestle/resource/index.html.erb +16 -4
- data/app/views/trestle/resource/new.html.erb +6 -6
- data/app/views/trestle/resource/show.html.erb +8 -10
- data/app/views/trestle/shared/_sidebar.html.erb +10 -7
- data/app/views/trestle/shared/_title.html.erb +14 -0
- data/app/views/trestle/table/_table.html.erb +4 -6
- data/bower.json +1 -1
- data/config/locales/cs.rb +18 -0
- data/config/locales/cs.yml +95 -0
- data/config/locales/en.yml +65 -36
- data/config/locales/es-MX.yml +94 -0
- data/config/locales/es.yml +94 -0
- data/config/locales/fr.rb +18 -0
- data/config/locales/fr.yml +84 -0
- data/config/locales/lv.rb +18 -0
- data/config/locales/lv.yml +94 -0
- data/config/locales/nl.rb +18 -0
- data/config/locales/nl.yml +82 -0
- data/config/locales/pl.rb +18 -0
- data/config/locales/pl.yml +85 -0
- data/config/locales/pt-BR.rb +18 -0
- data/config/locales/pt-BR.yml +84 -0
- data/config/locales/zh-CN.rb +18 -0
- data/config/locales/zh-CN.yml +94 -0
- data/gemfiles/rails-4.2.gemfile +16 -0
- data/gemfiles/rails-5.0.gemfile +16 -0
- data/gemfiles/rails-5.1.gemfile +16 -0
- data/gemfiles/rails-5.2.gemfile +16 -0
- data/gemfiles/rails-edge.gemfile +17 -0
- data/lib/generators/trestle/install/templates/trestle.rb.erb +18 -2
- data/lib/generators/trestle/resource/templates/admin.rb.erb +2 -2
- data/lib/trestle/adapters/active_record_adapter.rb +2 -6
- data/lib/trestle/adapters/adapter.rb +40 -15
- data/lib/trestle/adapters/sequel_adapter.rb +2 -6
- data/lib/trestle/admin/builder.rb +42 -12
- data/lib/trestle/admin/controller.rb +3 -1
- data/lib/trestle/admin.rb +84 -3
- data/lib/trestle/breadcrumb.rb +16 -1
- data/lib/trestle/configurable.rb +6 -0
- data/lib/trestle/configuration.rb +28 -5
- data/lib/trestle/display.rb +1 -1
- data/lib/trestle/engine.rb +10 -4
- data/lib/trestle/form/automatic.rb +6 -3
- data/lib/trestle/form/builder.rb +5 -1
- data/lib/trestle/form/field.rb +1 -1
- data/lib/trestle/form/fields/date_picker.rb +2 -2
- data/lib/trestle/form/fields/form_control.rb +14 -4
- data/lib/trestle/form/fields/form_group.rb +14 -3
- data/lib/trestle/form/fields/select.rb +5 -1
- data/lib/trestle/form/fields/tag_select.rb +1 -1
- data/lib/trestle/form/renderer.rb +2 -2
- data/lib/trestle/form.rb +7 -3
- data/lib/trestle/hook.rb +27 -0
- data/lib/trestle/model_name.rb +64 -0
- data/lib/trestle/navigation/group.rb +16 -0
- data/lib/trestle/navigation/item.rb +11 -1
- data/lib/trestle/navigation.rb +24 -6
- data/lib/trestle/options.rb +7 -5
- data/lib/trestle/reloader.rb +1 -1
- data/lib/trestle/resource/adapter_methods.rb +62 -0
- data/lib/trestle/resource/builder.rb +43 -17
- data/lib/trestle/resource/collection.rb +68 -0
- data/lib/trestle/resource/controller.rb +70 -33
- data/lib/trestle/resource.rb +97 -105
- data/lib/trestle/scope.rb +13 -3
- data/lib/trestle/tab.rb +4 -0
- data/lib/trestle/table/actions_column.rb +41 -31
- data/lib/trestle/table/automatic.rb +1 -2
- data/lib/trestle/table/builder.rb +2 -2
- data/lib/trestle/table/column.rb +40 -9
- data/lib/trestle/table/row.rb +18 -2
- data/lib/trestle/table.rb +18 -2
- data/lib/trestle/toolbar/builder.rb +52 -0
- data/lib/trestle/toolbar/context.rb +39 -0
- data/lib/trestle/toolbar.rb +43 -0
- data/lib/trestle/version.rb +1 -1
- data/lib/trestle.rb +9 -4
- data/trestle.gemspec +5 -3
- data/vendor/assets/bower_components/trestle/select2/dist/js/select2.full.js +90 -69
- data/vendor/assets/javascripts/trestle/flatpickr.js.erb +2 -0
- data/vendor/assets/stylesheets/trestle/magnific-popup.scss +13 -1
- metadata +99 -22
- data/app/assets/javascripts/trestle/_confirmation.js +0 -23
- data/app/assets/javascripts/trestle/_datepicker.js +0 -22
- data/app/assets/javascripts/trestle/_form.js +0 -6
- data/app/assets/javascripts/trestle/_sidebar.js +0 -52
- data/app/assets/javascripts/trestle/_tabs.js +0 -13
- data/app/assets/javascripts/trestle/_tooltips.js +0 -3
- data/app/helpers/trestle/title_helper.rb +0 -26
- data/app/views/trestle/application/_flash.html.erb +0 -11
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// The ready function sets up a callback to run on each page load.
|
|
2
|
+
//
|
|
3
|
+
// Trestle.ready(function() {
|
|
4
|
+
// ...
|
|
5
|
+
// });
|
|
6
|
+
//
|
|
7
|
+
Trestle.ready = function(callback) {
|
|
8
|
+
$(Trestle).on('load', callback);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
// The init function sets up a callback to run on each page load, as well as when elements are added to the page
|
|
12
|
+
// dynamically (e.g. via a modal). It is used to initialize dynamic elements such as date pickers, although it is
|
|
13
|
+
// preferable if they can be set up using event delegation on the document element.
|
|
14
|
+
//
|
|
15
|
+
// The callback is triggered with the applicable root/container element as the second argument.
|
|
16
|
+
//
|
|
17
|
+
// Trestle.init(function(e, root) {
|
|
18
|
+
// $(root).find('...');
|
|
19
|
+
// });
|
|
20
|
+
//
|
|
21
|
+
Trestle.init = function(callback) {
|
|
22
|
+
$(Trestle).on('init', callback);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// Initialize all elements within the document on page load.
|
|
26
|
+
Trestle.ready(function() {
|
|
27
|
+
$(Trestle).trigger('init', document);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Trigger the page load events.
|
|
31
|
+
if (Trestle.turbolinks) {
|
|
32
|
+
$(document).on('turbolinks:load', function() {
|
|
33
|
+
$(Trestle).trigger("load");
|
|
34
|
+
});
|
|
35
|
+
} else {
|
|
36
|
+
$(document).ready(function() {
|
|
37
|
+
$(Trestle).trigger("load");
|
|
38
|
+
});
|
|
39
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
(function() {
|
|
2
|
+
|
|
3
|
+
// Some of Flatpickr's locale names differ from Rails. This maps the Rails I18n locale to their Flatpickr equivalent.
|
|
4
|
+
var FlatpickrLocaleConversions = { ca: "cat", el: "gr", nb: "no", vi: "vn" };
|
|
5
|
+
|
|
6
|
+
// Sets up localization for Trestle and its dependencies, in particular Flatpickr.
|
|
7
|
+
// This method accepts a list of locales in descending order of priority.
|
|
8
|
+
//
|
|
9
|
+
// Trestle.localize('es-MX', 'es', 'en');
|
|
10
|
+
//
|
|
11
|
+
Trestle.localize = function() {
|
|
12
|
+
for (var i = 0; i < arguments.length; ++i) {
|
|
13
|
+
var locale = arguments[i];
|
|
14
|
+
var flatpickrLocale = FlatpickrLocaleConversions[locale] || locale;
|
|
15
|
+
|
|
16
|
+
if (flatpickr.l10ns[flatpickrLocale]) {
|
|
17
|
+
flatpickr.localize(flatpickr.l10ns[flatpickrLocale]);
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
})();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// The visit function is used to direct the user to the given URL. It is provided as an abstraction as the redirection
|
|
2
|
+
// is handled differently depending on whether or not Turbolinks is enabled.
|
|
3
|
+
//
|
|
4
|
+
// Trestle.visit("/admin/pages");
|
|
5
|
+
//
|
|
6
|
+
if (Trestle.turbolinks) {
|
|
7
|
+
Trestle.visit = function(url) { Turbolinks.visit(url); };
|
|
8
|
+
} else {
|
|
9
|
+
Trestle.visit = function(url) { document.location = url; };
|
|
10
|
+
}
|
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
margin-bottom: 0;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
a {
|
|
26
|
+
color: white;
|
|
27
|
+
}
|
|
28
|
+
|
|
25
29
|
@include mobile {
|
|
26
30
|
padding: 5px 10px;
|
|
27
31
|
|
|
@@ -57,3 +61,27 @@
|
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
}
|
|
64
|
+
|
|
65
|
+
.toggle-debug-errors {
|
|
66
|
+
&:hover, &:focus {
|
|
67
|
+
text-decoration: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&:after {
|
|
71
|
+
@extend .ion;
|
|
72
|
+
content: $ionicon-var-chevron-down;
|
|
73
|
+
font-size: 10px;
|
|
74
|
+
margin-left: 5px;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.debug-errors {
|
|
79
|
+
overflow: hidden;
|
|
80
|
+
|
|
81
|
+
ul {
|
|
82
|
+
list-style: none;
|
|
83
|
+
margin: 5px 0 0 0;
|
|
84
|
+
padding: 0 0 0 5px;
|
|
85
|
+
border-left: 4px solid rgba(white, 0.25);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
.avatar {
|
|
2
2
|
display: inline-block;
|
|
3
|
+
position: relative;
|
|
3
4
|
|
|
4
5
|
width: 40px;
|
|
5
6
|
height: 40px;
|
|
6
7
|
|
|
7
|
-
background: #
|
|
8
|
+
background: #ccc;
|
|
8
9
|
border-radius: 50%;
|
|
9
10
|
box-shadow: rgba(black, 0.25) 0 1px 0;
|
|
10
11
|
|
|
@@ -14,5 +15,26 @@
|
|
|
14
15
|
height: 100%;
|
|
15
16
|
object-fit: cover;
|
|
16
17
|
border-radius: 50%;
|
|
18
|
+
|
|
19
|
+
position: relative;
|
|
20
|
+
z-index: 1;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.avatar-fallback {
|
|
24
|
+
position: absolute;
|
|
25
|
+
top: 0;
|
|
26
|
+
bottom: 0;
|
|
27
|
+
left: 0;
|
|
28
|
+
right: 0;
|
|
29
|
+
border-radius: 50%;
|
|
30
|
+
|
|
31
|
+
color: white;
|
|
32
|
+
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
justify-content: center;
|
|
36
|
+
|
|
37
|
+
font-size: 11px;
|
|
38
|
+
font-weight: 500;
|
|
17
39
|
}
|
|
18
40
|
}
|
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
background-color: transparent;
|
|
4
4
|
font-size: 12px;
|
|
5
5
|
|
|
6
|
+
> li + li:before {
|
|
7
|
+
content: "/";
|
|
8
|
+
|
|
9
|
+
@include mobile {
|
|
10
|
+
padding: 0 2px;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
6
14
|
.active, .active a {
|
|
7
15
|
font-weight: normal;
|
|
8
16
|
color: $breadcrumb-active-color;
|
|
@@ -11,4 +19,8 @@
|
|
|
11
19
|
text-decoration: none;
|
|
12
20
|
}
|
|
13
21
|
}
|
|
22
|
+
|
|
23
|
+
@include mobile {
|
|
24
|
+
font-size: 11px;
|
|
25
|
+
}
|
|
14
26
|
}
|
|
@@ -1,6 +1,110 @@
|
|
|
1
|
+
@mixin button-child-visible($prefix, $selector) {
|
|
2
|
+
&.#{$prefix}-visible-xs,
|
|
3
|
+
&.#{$prefix}-visible-sm,
|
|
4
|
+
&.#{$prefix}-visible-md,
|
|
5
|
+
&.#{$prefix}-visible-lg {
|
|
6
|
+
#{$selector} { display: none; }
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&.#{$prefix}-visible-xs {
|
|
10
|
+
@media (max-width: $screen-xs-max) {
|
|
11
|
+
#{$selector} { display: inline-block; }
|
|
12
|
+
@content;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&.#{$prefix}-visible-sm {
|
|
17
|
+
@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
|
|
18
|
+
#{$selector} { display: inline-block; }
|
|
19
|
+
@content;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
&.#{$prefix}-visible-md {
|
|
24
|
+
@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
|
|
25
|
+
#{$selector} { display: inline-block; }
|
|
26
|
+
@content;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.#{$prefix}-visible-lg {
|
|
31
|
+
@media (min-width: $screen-lg-min) {
|
|
32
|
+
#{$selector} { display: inline-block; }
|
|
33
|
+
@content;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@mixin button-child-hidden($prefix, $selector) {
|
|
39
|
+
&.#{$prefix}-hidden-xs {
|
|
40
|
+
@media (max-width: $screen-xs-max) {
|
|
41
|
+
#{$selector} { display: none; }
|
|
42
|
+
@content;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&.#{$prefix}-hidden-sm {
|
|
47
|
+
@media (min-width: $screen-sm-min) and (max-width: $screen-sm-max) {
|
|
48
|
+
#{$selector} { display: none; }
|
|
49
|
+
@content;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&.#{$prefix}-hidden-md {
|
|
54
|
+
@media (min-width: $screen-md-min) and (max-width: $screen-md-max) {
|
|
55
|
+
#{$selector} { display: none; }
|
|
56
|
+
@content;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
&.#{$prefix}-hidden-lg {
|
|
61
|
+
@media (min-width: $screen-lg-min) {
|
|
62
|
+
#{$selector} { display: none; }
|
|
63
|
+
@content;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
1
68
|
.btn {
|
|
2
|
-
border:
|
|
69
|
+
border-width: 0;
|
|
3
70
|
box-shadow: none;
|
|
71
|
+
|
|
72
|
+
&.loading {
|
|
73
|
+
&::before {
|
|
74
|
+
@extend .fa;
|
|
75
|
+
@extend .fa-spin;
|
|
76
|
+
content: $fa-var-spinner;
|
|
77
|
+
margin-right: 10px;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
> i + .btn-label {
|
|
82
|
+
margin-left: 5px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&.icon-visible-xs,
|
|
86
|
+
&.icon-visible-sm,
|
|
87
|
+
&.icon-visible-md,
|
|
88
|
+
&.icon-visible-lg {
|
|
89
|
+
> i + .btn-label {
|
|
90
|
+
margin-left: 0;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@include button-child-visible('icon', '> i') {
|
|
95
|
+
> i + .btn-label {
|
|
96
|
+
margin-left: 5px;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
@include button-child-hidden('icon', '> i') {
|
|
101
|
+
> i + .btn-label {
|
|
102
|
+
margin-left: 0;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
@include button-child-visible('label', '> .btn-label');
|
|
107
|
+
@include button-child-hidden('label', '> .btn-label');
|
|
4
108
|
}
|
|
5
109
|
|
|
6
110
|
.btn-delete {
|
|
@@ -11,3 +115,9 @@
|
|
|
11
115
|
background: $btn-danger-bg;
|
|
12
116
|
}
|
|
13
117
|
}
|
|
118
|
+
|
|
119
|
+
.btn-new-resource {
|
|
120
|
+
.btn-label {
|
|
121
|
+
@include sr-only;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
@@ -1,38 +1,32 @@
|
|
|
1
1
|
.content-header {
|
|
2
|
-
|
|
2
|
+
display: flex;
|
|
3
|
+
justify-content: space-between;
|
|
4
|
+
|
|
3
5
|
background: $content-header-background;
|
|
4
|
-
padding:
|
|
6
|
+
padding: 20px;
|
|
5
7
|
|
|
6
8
|
h1 {
|
|
7
9
|
font-weight: 300;
|
|
10
|
+
margin-top: 0;
|
|
8
11
|
}
|
|
9
12
|
|
|
10
|
-
.
|
|
11
|
-
|
|
12
|
-
clear: right;
|
|
13
|
+
.breadcrumb {
|
|
14
|
+
margin-bottom: 0;
|
|
13
15
|
}
|
|
14
16
|
|
|
15
|
-
.
|
|
16
|
-
margin
|
|
17
|
+
.content-header-title {
|
|
18
|
+
margin: 5px 0;
|
|
19
|
+
}
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
font-size: 20px;
|
|
21
|
-
padding: 8px 16px;
|
|
22
|
-
border-radius: $border-radius-base;
|
|
23
|
-
}
|
|
21
|
+
.btn-toolbar {
|
|
22
|
+
text-align: right;
|
|
24
23
|
}
|
|
25
24
|
|
|
26
25
|
.secondary-toolbar {
|
|
27
26
|
margin-top: 8px;
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
padding: 4px 10px;
|
|
32
|
-
|
|
33
|
-
i {
|
|
34
|
-
font-size: 11px;
|
|
35
|
-
}
|
|
28
|
+
@include mobile {
|
|
29
|
+
margin-top: 6px;
|
|
36
30
|
}
|
|
37
31
|
}
|
|
38
32
|
}
|
|
@@ -59,6 +53,26 @@
|
|
|
59
53
|
min-width: 0;
|
|
60
54
|
}
|
|
61
55
|
|
|
56
|
+
.main-content-header,
|
|
57
|
+
.main-content-footer {
|
|
58
|
+
display: flex;
|
|
59
|
+
justify-content: space-between;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.main-content-header {
|
|
63
|
+
margin: -20px -20px 20px !important;
|
|
64
|
+
padding: $main-content-header-padding;
|
|
65
|
+
background: $main-content-header-background;
|
|
66
|
+
border-bottom: $main-content-header-border;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.main-content-footer {
|
|
70
|
+
margin: 20px -20px -20px !important;
|
|
71
|
+
padding: $main-content-footer-padding;
|
|
72
|
+
background: $main-content-footer-background;
|
|
73
|
+
border-top: $main-content-footer-border;
|
|
74
|
+
}
|
|
75
|
+
|
|
62
76
|
.main-content,
|
|
63
77
|
.main-content-sidebar,
|
|
64
78
|
.tab-pane {
|
|
@@ -84,7 +98,7 @@
|
|
|
84
98
|
|
|
85
99
|
@include mobile {
|
|
86
100
|
.content-header {
|
|
87
|
-
padding:
|
|
101
|
+
padding: 10px;
|
|
88
102
|
}
|
|
89
103
|
|
|
90
104
|
.main-content-area {
|
|
@@ -105,4 +119,22 @@
|
|
|
105
119
|
.main-content-sidebar {
|
|
106
120
|
padding: 15px;
|
|
107
121
|
}
|
|
122
|
+
|
|
123
|
+
.main-content-header,
|
|
124
|
+
.main-content-footer {
|
|
125
|
+
flex-direction: column;
|
|
126
|
+
align-items: center;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.main-content-header {
|
|
130
|
+
margin: -15px -15px 15px !important;
|
|
131
|
+
padding-left: 15px;
|
|
132
|
+
padding-right: 15px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.main-content-footer {
|
|
136
|
+
margin: 15px -15px -15px !important;
|
|
137
|
+
padding-left: 15px;
|
|
138
|
+
padding-right: 15px;
|
|
139
|
+
}
|
|
108
140
|
}
|
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
.clear-datepicker {
|
|
2
|
+
position: absolute;
|
|
3
|
+
top: 0;
|
|
4
|
+
right: 0;
|
|
5
|
+
z-index: 4;
|
|
6
|
+
|
|
7
|
+
width: 34px;
|
|
8
|
+
height: 34px;
|
|
9
|
+
line-height: 34px;
|
|
10
|
+
text-align: center;
|
|
11
|
+
|
|
12
|
+
color: #ccc;
|
|
13
|
+
|
|
14
|
+
&:hover, &:focus {
|
|
15
|
+
color: #aaa;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&::before {
|
|
19
|
+
@extend .fa;
|
|
20
|
+
content: $fa-var-times;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
input[value=""] ~ &,
|
|
24
|
+
input:not([value]) ~ & {
|
|
25
|
+
display: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
1
29
|
.flatpickr-calendar {
|
|
2
30
|
background: $theme-bg;
|
|
3
31
|
|
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
.form-group {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.help-block {
|
|
6
|
+
font-size: 13px;
|
|
7
|
+
|
|
8
|
+
@media (min-width: $screen-sm-min) {
|
|
9
|
+
&.floating {
|
|
10
|
+
position: absolute;
|
|
11
|
+
top: 0;
|
|
12
|
+
right: 0;
|
|
13
|
+
margin: 2px 0;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
1
18
|
.select2-container--bootstrap {
|
|
2
19
|
// This is required to ensure the select field is rendered at full width
|
|
3
20
|
// within Bootstrap tabs that are hidden when the page is first loaded.
|
|
@@ -2,10 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
.input-group {
|
|
4
4
|
display: flex;
|
|
5
|
+
|
|
6
|
+
.field_with_errors {
|
|
7
|
+
flex: 1;
|
|
8
|
+
|
|
9
|
+
.form-control {
|
|
10
|
+
border-radius: $input-border-radius;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&:not(:last-child) .form-control {
|
|
14
|
+
border-top-right-radius: 0;
|
|
15
|
+
border-bottom-right-radius: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&:not(:first-child) .form-control {
|
|
19
|
+
border-top-left-radius: 0;
|
|
20
|
+
border-bottom-left-radius: 0;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
5
23
|
}
|
|
6
24
|
|
|
7
|
-
.input-group-addon
|
|
25
|
+
.input-group-addon,
|
|
26
|
+
.input-group-btn {
|
|
8
27
|
width: auto;
|
|
9
28
|
display: flex;
|
|
10
29
|
align-items: center;
|
|
11
30
|
}
|
|
31
|
+
|
|
32
|
+
.input-group-btn {
|
|
33
|
+
> .btn {
|
|
34
|
+
border-width: 1px;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
.modal {
|
|
2
|
+
&.background {
|
|
3
|
+
.modal-dialog {
|
|
4
|
+
transform: scale(0.9);
|
|
5
|
+
opacity: 0.75;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.modal-content {
|
|
11
|
+
border: none;
|
|
12
|
+
border-radius: 0;
|
|
13
|
+
|
|
14
|
+
.modal.loading & {
|
|
15
|
+
min-height: 100px;
|
|
16
|
+
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: center;
|
|
20
|
+
|
|
21
|
+
&:after {
|
|
22
|
+
@extend .fa;
|
|
23
|
+
@extend .fa-spin;
|
|
24
|
+
content: $fa-var-spinner;
|
|
25
|
+
|
|
26
|
+
font-size: 32px;
|
|
27
|
+
opacity: 0.25;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.modal-header {
|
|
33
|
+
background: $theme-bg;
|
|
34
|
+
border-bottom: none;
|
|
35
|
+
|
|
36
|
+
.close {
|
|
37
|
+
opacity: 0.75;
|
|
38
|
+
|
|
39
|
+
&, &:hover, &:focus {
|
|
40
|
+
color: white;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&:hover, &:focus {
|
|
44
|
+
opacity: 1;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.modal.error & {
|
|
49
|
+
background: $error-bg;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.modal-title {
|
|
54
|
+
font-size: 18px;
|
|
55
|
+
font-weight: 500;
|
|
56
|
+
text-shadow: rgba(black, 0.5) 0 1px 1px;
|
|
57
|
+
color: white;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.modal-tabs .nav-tabs {
|
|
61
|
+
background: $body-bg;
|
|
62
|
+
padding: 10px 15px 0 15px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.modal-flash {
|
|
66
|
+
.alert {
|
|
67
|
+
margin-bottom: 0;
|
|
68
|
+
border-radius: 0;
|
|
69
|
+
border-width: 0 0 1px 0;
|
|
70
|
+
|
|
71
|
+
padding-top: 10px;
|
|
72
|
+
padding-bottom: 10px;
|
|
73
|
+
|
|
74
|
+
.alert-icon {
|
|
75
|
+
font-size: 40px;
|
|
76
|
+
margin-right: 15px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
h3 {
|
|
80
|
+
font-size: 18px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
p {
|
|
84
|
+
font-size: 13px;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.modal-body {
|
|
90
|
+
@extend .tab-content;
|
|
91
|
+
|
|
92
|
+
pre.exception {
|
|
93
|
+
max-height: 75vh;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.modal-footer {
|
|
98
|
+
background: $modal-footer-background;
|
|
99
|
+
border-color: $modal-footer-border-color;
|
|
100
|
+
|
|
101
|
+
.primary-toolbar {
|
|
102
|
+
float: right;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.secondary-toolbar {
|
|
106
|
+
float: left;
|
|
107
|
+
}
|
|
108
|
+
}
|