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
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
vertical-align: 0;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
.nav-header {
|
|
41
|
+
.nav-header a {
|
|
42
|
+
position: relative;
|
|
42
43
|
color: rgba(white, 0.25);
|
|
43
44
|
|
|
44
45
|
text-transform: uppercase;
|
|
@@ -46,6 +47,24 @@
|
|
|
46
47
|
font-size: 11px;
|
|
47
48
|
|
|
48
49
|
padding: 5px 20px;
|
|
50
|
+
|
|
51
|
+
&::after {
|
|
52
|
+
@extend .ion;
|
|
53
|
+
content: $ionicon-var-arrow-down-b;
|
|
54
|
+
|
|
55
|
+
float: right;
|
|
56
|
+
margin-top: 2px;
|
|
57
|
+
|
|
58
|
+
opacity: 0.75;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
&:hover, &:focus {
|
|
62
|
+
background: none;
|
|
63
|
+
|
|
64
|
+
&::before, &::after {
|
|
65
|
+
opacity: 1 !important;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
49
68
|
}
|
|
50
69
|
|
|
51
70
|
.active a {
|
|
@@ -62,50 +81,121 @@
|
|
|
62
81
|
position: relative;
|
|
63
82
|
top: 1px;
|
|
64
83
|
}
|
|
84
|
+
|
|
85
|
+
.collapsed {
|
|
86
|
+
li {
|
|
87
|
+
display: none;
|
|
88
|
+
|
|
89
|
+
&.nav-header {
|
|
90
|
+
display: block;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.nav-tooltip {
|
|
97
|
+
display: none !important;
|
|
65
98
|
}
|
|
66
99
|
|
|
67
100
|
@mixin collapsed-nav-header {
|
|
68
|
-
border-bottom: 1px solid rgba(white, 0.1);
|
|
69
101
|
height: 0;
|
|
70
|
-
|
|
71
|
-
padding: 5px 0;
|
|
102
|
+
padding: 10px 15px 15px;
|
|
72
103
|
text-indent: -99999px;
|
|
104
|
+
|
|
105
|
+
&::after {
|
|
106
|
+
display: none;
|
|
107
|
+
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: 4px;
|
|
110
|
+
left: 50%;
|
|
111
|
+
margin-left: -3px;
|
|
112
|
+
|
|
113
|
+
text-indent: 0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&::before {
|
|
117
|
+
content: "";
|
|
118
|
+
|
|
119
|
+
position: absolute;
|
|
120
|
+
left: 15px;
|
|
121
|
+
right: 15px;
|
|
122
|
+
top: 50%;
|
|
123
|
+
margin-top: -4px;
|
|
124
|
+
|
|
125
|
+
border-bottom: 1px solid rgba(white, 0.1);
|
|
126
|
+
opacity: 0.75;
|
|
127
|
+
}
|
|
73
128
|
}
|
|
74
129
|
|
|
75
130
|
@include tablet {
|
|
131
|
+
.nav-tooltip {
|
|
132
|
+
display: block !important;
|
|
133
|
+
}
|
|
134
|
+
|
|
76
135
|
.app-nav {
|
|
77
136
|
.nav-label, .nav-badge {
|
|
78
137
|
display: none;
|
|
79
138
|
}
|
|
80
139
|
|
|
81
|
-
.nav-header {
|
|
140
|
+
.nav-header a {
|
|
82
141
|
@include collapsed-nav-header;
|
|
83
142
|
}
|
|
84
143
|
|
|
85
|
-
.
|
|
86
|
-
|
|
144
|
+
.collapsed .nav-header a {
|
|
145
|
+
&::after {
|
|
87
146
|
display: block;
|
|
88
|
-
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.sidebar-expanded {
|
|
152
|
+
.app-nav {
|
|
153
|
+
.nav-header a {
|
|
89
154
|
height: auto;
|
|
90
|
-
margin: 0;
|
|
91
155
|
padding: 5px 20px;
|
|
92
156
|
text-indent: 0;
|
|
157
|
+
|
|
158
|
+
&::before {
|
|
159
|
+
display: none;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
&::after {
|
|
163
|
+
display: block;
|
|
164
|
+
position: static;
|
|
165
|
+
margin-left: 0;
|
|
166
|
+
}
|
|
93
167
|
}
|
|
94
168
|
|
|
95
169
|
.nav-label { display: inline; }
|
|
96
170
|
.nav-badge { display: block; }
|
|
97
171
|
}
|
|
172
|
+
|
|
173
|
+
.nav-tooltip {
|
|
174
|
+
display: none !important;
|
|
175
|
+
}
|
|
98
176
|
}
|
|
99
177
|
}
|
|
100
178
|
|
|
101
179
|
@include desktop {
|
|
102
|
-
.collapsed
|
|
103
|
-
.
|
|
104
|
-
|
|
180
|
+
.sidebar-collapsed {
|
|
181
|
+
.app-nav {
|
|
182
|
+
.nav-label, .nav-badge {
|
|
183
|
+
display: none;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.nav-header a {
|
|
187
|
+
@include collapsed-nav-header;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.collapsed .nav-header a {
|
|
191
|
+
&::after {
|
|
192
|
+
display: block;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
105
195
|
}
|
|
106
196
|
|
|
107
|
-
.nav-
|
|
108
|
-
|
|
197
|
+
.nav-tooltip {
|
|
198
|
+
display: block !important;
|
|
109
199
|
}
|
|
110
200
|
}
|
|
111
201
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
.pagination-container {
|
|
2
|
-
margin-
|
|
3
|
-
margin-bottom: 20px;
|
|
2
|
+
margin-left: auto;
|
|
4
3
|
text-align: right;
|
|
5
4
|
|
|
6
5
|
p {
|
|
@@ -26,7 +25,8 @@
|
|
|
26
25
|
|
|
27
26
|
@include mobile {
|
|
28
27
|
.pagination-container {
|
|
29
|
-
margin-
|
|
28
|
+
margin-right: auto;
|
|
29
|
+
|
|
30
30
|
text-align: center;
|
|
31
31
|
|
|
32
32
|
display: flex;
|
|
@@ -3,9 +3,17 @@
|
|
|
3
3
|
@extend .nav-pills;
|
|
4
4
|
|
|
5
5
|
display: flex;
|
|
6
|
+
flex-wrap: wrap;
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
margin-top: -4px;
|
|
9
|
+
|
|
10
|
+
> li {
|
|
11
|
+
margin-top: 4px;
|
|
12
|
+
margin-right: 4px;
|
|
13
|
+
|
|
14
|
+
&:last-child {
|
|
15
|
+
margin-right: 0;
|
|
16
|
+
}
|
|
9
17
|
}
|
|
10
18
|
|
|
11
19
|
> li > a {
|
|
@@ -14,6 +22,7 @@
|
|
|
14
22
|
|
|
15
23
|
font-size: 11px;
|
|
16
24
|
font-weight: normal;
|
|
25
|
+
white-space: nowrap;
|
|
17
26
|
|
|
18
27
|
border-radius: 15px;
|
|
19
28
|
padding: 2px 8px;
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
display: flex;
|
|
16
16
|
flex-direction: column;
|
|
17
17
|
|
|
18
|
+
overflow-x: hidden;
|
|
18
19
|
overflow-y: auto;
|
|
19
20
|
|
|
20
21
|
&::-webkit-scrollbar {
|
|
@@ -170,7 +171,7 @@
|
|
|
170
171
|
content: $fa-var-angle-double-right;
|
|
171
172
|
}
|
|
172
173
|
|
|
173
|
-
|
|
174
|
+
.sidebar-expanded & {
|
|
174
175
|
width: $sidebar-width;
|
|
175
176
|
|
|
176
177
|
.app-sidebar-header {
|
|
@@ -203,7 +204,7 @@
|
|
|
203
204
|
|
|
204
205
|
@include desktop {
|
|
205
206
|
.app-sidebar {
|
|
206
|
-
|
|
207
|
+
.sidebar-collapsed & {
|
|
207
208
|
width: $sidebar-width-collapsed;
|
|
208
209
|
|
|
209
210
|
.app-sidebar-header {
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
@mixin table-container-background($background) {
|
|
2
|
+
background-image: linear-gradient(to right, $background 30%, rgba($background, 0)),
|
|
3
|
+
linear-gradient(to left, $background 30%, rgba($background, 0)),
|
|
4
|
+
radial-gradient(at 0 50%, rgba(black, 0.2), rgba(black, 0) 70%),
|
|
5
|
+
radial-gradient(at 100% 50%, rgba(black, 0.2), rgba(black, 0) 70%);
|
|
6
|
+
|
|
7
|
+
background-color: $background;
|
|
8
|
+
|
|
9
|
+
background-position: 0 0, 100% 0, 0 0, 100% 0;
|
|
10
|
+
background-repeat: no-repeat;
|
|
11
|
+
background-size: 50px 100%, 50px 100%, 15px 100%, 15px 100%;
|
|
12
|
+
background-attachment: local, local, scroll, scroll;
|
|
13
|
+
}
|
|
14
|
+
|
|
1
15
|
.table-container {
|
|
2
16
|
overflow-x: auto;
|
|
3
17
|
|
|
@@ -5,15 +19,11 @@
|
|
|
5
19
|
// scrolling background hints. Must be disabled explicitly.
|
|
6
20
|
-webkit-overflow-scrolling: auto;
|
|
7
21
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
background-repeat: no-repeat;
|
|
14
|
-
background-color: white;
|
|
15
|
-
background-size: 50px 100%, 50px 100%, 15px 100%, 15px 100%;
|
|
16
|
-
background-attachment: local, local, scroll, scroll;
|
|
22
|
+
@include table-container-background(white);
|
|
23
|
+
|
|
24
|
+
.main-content-sidebar & {
|
|
25
|
+
@include table-container-background($content-sidebar-background);
|
|
26
|
+
}
|
|
17
27
|
}
|
|
18
28
|
|
|
19
29
|
.trestle-table {
|
|
@@ -66,10 +76,24 @@
|
|
|
66
76
|
text-align: center;
|
|
67
77
|
}
|
|
68
78
|
|
|
69
|
-
|
|
79
|
+
&.has-icon .btn-label {
|
|
80
|
+
@include sr-only;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.btn,
|
|
85
|
+
.btn-group {
|
|
86
|
+
+ .btn,
|
|
87
|
+
+ .btn-group {
|
|
70
88
|
margin-left: 4px;
|
|
71
89
|
}
|
|
72
90
|
}
|
|
91
|
+
|
|
92
|
+
.btn-group {
|
|
93
|
+
.btn + .btn {
|
|
94
|
+
margin-left: -1px;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
73
97
|
}
|
|
74
98
|
|
|
75
99
|
.avatar {
|
|
@@ -14,6 +14,15 @@
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
a.tag {
|
|
18
|
+
&:hover, &:focus {
|
|
19
|
+
text-decoration: none;
|
|
20
|
+
color: white;
|
|
21
|
+
background: $brand-primary;
|
|
22
|
+
border-left-color: darken($brand-primary, 10%);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
.tag-select {
|
|
18
27
|
&.select2-selection--multiple {
|
|
19
28
|
.select2-selection__choice {
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
.btn-toolbar {
|
|
2
|
+
.btn,
|
|
3
|
+
.btn-group,
|
|
4
|
+
.input-group {
|
|
5
|
+
float: none;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
> .btn,
|
|
9
|
+
> .btn-group,
|
|
10
|
+
> .input-group {
|
|
11
|
+
margin-left: 1px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.btn-group {
|
|
15
|
+
.btn + .btn,
|
|
16
|
+
.btn + .btn-group,
|
|
17
|
+
.btn-group + .btn,
|
|
18
|
+
.btn-group + .btn-group {
|
|
19
|
+
margin-left: -4px;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.primary-toolbar {
|
|
25
|
+
.btn {
|
|
26
|
+
@extend .btn-lg;
|
|
27
|
+
font-size: 20px;
|
|
28
|
+
padding: 8px 16px;
|
|
29
|
+
border-radius: $border-radius-base;
|
|
30
|
+
|
|
31
|
+
@include mobile {
|
|
32
|
+
font-size: 18px;
|
|
33
|
+
padding: 7px 12px;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.secondary-toolbar {
|
|
39
|
+
.btn {
|
|
40
|
+
font-size: 12px;
|
|
41
|
+
padding: 4px 10px;
|
|
42
|
+
|
|
43
|
+
i {
|
|
44
|
+
font-size: 11px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@include mobile {
|
|
48
|
+
font-size: 11px;
|
|
49
|
+
|
|
50
|
+
i {
|
|
51
|
+
font-size: 10px;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.well {
|
|
2
|
-
padding:
|
|
2
|
+
padding: 15px;
|
|
3
3
|
|
|
4
4
|
box-shadow: none;
|
|
5
5
|
border-radius: 0;
|
|
@@ -13,6 +13,14 @@
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
.well-lg {
|
|
17
|
+
padding: 24px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.well-sm {
|
|
21
|
+
padding: 9px;
|
|
22
|
+
}
|
|
23
|
+
|
|
16
24
|
.main-content-sidebar .well {
|
|
17
25
|
margin: 0 -20px;
|
|
18
26
|
background: darken($well-bg, 3%);
|
|
@@ -11,6 +11,7 @@ $theme-bg-gradient: linear-gradient(rgba(white, $theme-bg-gradient-stre
|
|
|
11
11
|
$theme-bg-color: darken($brand-primary, 15%) !default;
|
|
12
12
|
|
|
13
13
|
$theme-bg: $theme-bg-texture-url, $theme-bg-gradient, $theme-bg-color !default;
|
|
14
|
+
$error-bg: $theme-bg-texture-url, $theme-bg-gradient, $brand-danger !default;
|
|
14
15
|
|
|
15
16
|
$body-bg: #f3f3f3 !default;
|
|
16
17
|
|
|
@@ -30,8 +31,16 @@ $sidebar-toggle-color: rgba(white, 0.5) !default;
|
|
|
30
31
|
|
|
31
32
|
$content-header-background: rgba(white, 0.6) !default;
|
|
32
33
|
|
|
33
|
-
$content-sidebar-width:
|
|
34
|
-
$content-sidebar-background:
|
|
34
|
+
$content-sidebar-width: 285px !default;
|
|
35
|
+
$content-sidebar-background: #f9f9f9 !default;
|
|
36
|
+
|
|
37
|
+
$main-content-header-background: $content-sidebar-background !default;
|
|
38
|
+
$main-content-header-padding: 12px 20px !default;
|
|
39
|
+
$main-content-header-border: 1px solid rgba(black, 0.1) !default;
|
|
40
|
+
|
|
41
|
+
$main-content-footer-background: $content-sidebar-background !default;
|
|
42
|
+
$main-content-footer-padding: 12px 20px !default;
|
|
43
|
+
$main-content-footer-border: 1px solid rgba(black, 0.1) !default;
|
|
35
44
|
|
|
36
45
|
$sidebar-transition-duration: 250ms !default;
|
|
37
46
|
|
|
@@ -40,12 +49,12 @@ $footer-text: #888 !default;
|
|
|
40
49
|
|
|
41
50
|
$headings-font-weight: 400 !default;
|
|
42
51
|
|
|
43
|
-
$btn-default-bg: #
|
|
52
|
+
$btn-default-bg: #bbb !default;
|
|
44
53
|
$btn-default-color: white !default;
|
|
45
54
|
|
|
46
55
|
$state-success-bg: lighten(#dff0d8, 5%) !default;
|
|
47
56
|
$state-info-bg: lighten(#d9edf7, 5%) !default;
|
|
48
|
-
$state-warning-bg: lighten(#fcf8e3, 5%) !default;
|
|
57
|
+
$state-warning-bg: lighten(#fcf8e3, 2.5%) !default;
|
|
49
58
|
$state-danger-bg: lighten(#f2dede, 5%) !default;
|
|
50
59
|
|
|
51
60
|
$alert-padding: 20px !default;
|
|
@@ -64,9 +73,9 @@ $table-bg-accent: rgba(black, 0.02) !default;
|
|
|
64
73
|
$table-bg-hover: rgba(black, 0.04) !default;
|
|
65
74
|
$table-border-color: rgba(black, 0.13) !default;
|
|
66
75
|
|
|
67
|
-
$well-border: transparent;
|
|
76
|
+
$well-border: transparent !default;
|
|
68
77
|
|
|
69
|
-
$panel-border-radius: 0;
|
|
78
|
+
$panel-border-radius: 0 !default;
|
|
70
79
|
|
|
71
80
|
$popover-shadow: 0 3px 6px rgba(black, .175) !default;
|
|
72
81
|
$dropdown-shadow: $popover-shadow !default;
|
|
@@ -79,4 +88,10 @@ $input-border: #ccc !default;
|
|
|
79
88
|
$input-border-focus: mix($brand-primary, $input-border) !default;
|
|
80
89
|
$input-bg-disabled: #fafafa !default;
|
|
81
90
|
|
|
91
|
+
$modal-inner-padding: 20px !default;
|
|
92
|
+
$modal-title-padding: 15px 20px !default;
|
|
93
|
+
|
|
94
|
+
$modal-footer-background: $content-sidebar-background !default;
|
|
95
|
+
$modal-footer-border-color: rgba(black, 0.1) !default;
|
|
96
|
+
|
|
82
97
|
$s2bs-btn-default-bg: #eee !default;
|
|
@@ -41,6 +41,9 @@ img {
|
|
|
41
41
|
|
|
42
42
|
.app-main {
|
|
43
43
|
flex: 1 0 auto;
|
|
44
|
+
|
|
45
|
+
display: flex;
|
|
46
|
+
flex-direction: column;
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
.app-footer {
|
|
@@ -57,6 +60,11 @@ img {
|
|
|
57
60
|
}
|
|
58
61
|
}
|
|
59
62
|
|
|
63
|
+
.error-iframe {
|
|
64
|
+
border: 0;
|
|
65
|
+
flex: 1;
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
@include mobile {
|
|
61
69
|
body {
|
|
62
70
|
height: auto;
|
|
@@ -24,6 +24,17 @@
|
|
|
24
24
|
right: 0;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
@mixin sr-only {
|
|
28
|
+
position: absolute;
|
|
29
|
+
width: 1px;
|
|
30
|
+
height: 1px;
|
|
31
|
+
margin: -1px;
|
|
32
|
+
padding: 0;
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
clip: rect(0, 0, 0, 0);
|
|
35
|
+
border: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
27
38
|
@mixin mobile {
|
|
28
39
|
@media (max-width: $screen-xs-max) {
|
|
29
40
|
@content;
|
|
@@ -19,6 +19,45 @@ a {
|
|
|
19
19
|
border-radius: 10em !important;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
.main-content-sidebar {
|
|
23
|
+
font-size: 13px;
|
|
24
|
+
|
|
25
|
+
h1, h2, h3, h4, h5, h6 {
|
|
26
|
+
color: #666;
|
|
27
|
+
border-bottom: 1px solid #ddd;
|
|
28
|
+
|
|
29
|
+
padding-top: 5px;
|
|
30
|
+
padding-bottom: 0.5em;
|
|
31
|
+
|
|
32
|
+
margin-top: 20px;
|
|
33
|
+
margin-bottom: 15px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
h1 {
|
|
37
|
+
font-size: 28px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
h2 {
|
|
41
|
+
font-size: 24px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
h3 {
|
|
45
|
+
font-size: 21px;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
h4 {
|
|
49
|
+
font-size: 17px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
h5 {
|
|
53
|
+
font-size: 14px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
h6 {
|
|
57
|
+
font-size: 12px;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
22
61
|
@include mobile {
|
|
23
62
|
h1 {
|
|
24
63
|
font-size: $font-size-h1 - 6px;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Trestle
|
|
2
|
+
module Controller
|
|
3
|
+
module Breadcrumbs
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
included do
|
|
7
|
+
helper_method :breadcrumbs
|
|
8
|
+
helper_method :breadcrumb
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
protected
|
|
12
|
+
def breadcrumbs
|
|
13
|
+
@breadcrumbs ||= Trestle::Breadcrumb::Trail.new(Trestle.config.root_breadcrumbs)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def breadcrumb(label, path=nil)
|
|
17
|
+
breadcrumbs.append(label, path)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Trestle
|
|
2
|
+
module Controller
|
|
3
|
+
module Callbacks
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
included do
|
|
7
|
+
Trestle.config.before_actions.each do |action|
|
|
8
|
+
before_action(action.options, &action.block)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Trestle.config.after_actions.each do |action|
|
|
12
|
+
after_action(action.options, &action.block)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Trestle.config.around_actions.each do |action|
|
|
16
|
+
around_action(action.options, &action.block)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Trestle
|
|
2
|
+
module Controller
|
|
3
|
+
module Helpers
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
included do
|
|
7
|
+
# Allow inclusion of helpers from Rails application
|
|
8
|
+
self.helpers_path += Rails.application.helpers_paths
|
|
9
|
+
|
|
10
|
+
# Add helpers declared from configuration as blocks
|
|
11
|
+
helper Trestle.config.helper_module
|
|
12
|
+
|
|
13
|
+
# Add helpers declared from configuration as module references
|
|
14
|
+
helper *Trestle.config.helpers
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Trestle
|
|
2
|
+
module Controller
|
|
3
|
+
module Location
|
|
4
|
+
extend ActiveSupport::Concern
|
|
5
|
+
|
|
6
|
+
included do
|
|
7
|
+
after_action :set_trestle_location_header, unless: :dialog_request?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def set_trestle_location_header
|
|
11
|
+
headers["X-Trestle-Location"] = request.path
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|