Spaces:
Runtime error
Runtime error
Upload 196 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +10 -0
- _static/admin/css/autocomplete.css +260 -0
- _static/admin/css/base.css +966 -0
- _static/admin/css/changelists.css +350 -0
- _static/admin/css/dashboard.css +26 -0
- _static/admin/css/fonts.css +20 -0
- _static/admin/css/forms.css +526 -0
- _static/admin/css/login.css +79 -0
- _static/admin/css/nav_sidebar.css +110 -0
- _static/admin/css/responsive.css +1016 -0
- _static/admin/css/responsive_rtl.css +83 -0
- _static/admin/css/rtl.css +259 -0
- _static/admin/css/vendor/select2/LICENSE-SELECT2.md +21 -0
- _static/admin/css/vendor/select2/select2.css +481 -0
- _static/admin/css/vendor/select2/select2.min.css +1 -0
- _static/admin/css/widgets.css +574 -0
- _static/admin/fonts/LICENSE.txt +202 -0
- _static/admin/fonts/README.txt +3 -0
- _static/admin/fonts/Roboto-Bold-webfont.woff +0 -0
- _static/admin/fonts/Roboto-Light-webfont.woff +0 -0
- _static/admin/fonts/Roboto-Regular-webfont.woff +0 -0
- _static/admin/img/LICENSE +20 -0
- _static/admin/img/README.txt +7 -0
- _static/admin/img/calendar-icons.svg +14 -0
- _static/admin/img/gis/move_vertex_off.svg +1 -0
- _static/admin/img/gis/move_vertex_on.svg +1 -0
- _static/admin/img/icon-addlink.svg +3 -0
- _static/admin/img/icon-alert.svg +3 -0
- _static/admin/img/icon-calendar.svg +9 -0
- _static/admin/img/icon-changelink.svg +3 -0
- _static/admin/img/icon-clock.svg +9 -0
- _static/admin/img/icon-deletelink.svg +3 -0
- _static/admin/img/icon-no.svg +3 -0
- _static/admin/img/icon-unknown-alt.svg +3 -0
- _static/admin/img/icon-unknown.svg +3 -0
- _static/admin/img/icon-viewlink.svg +3 -0
- _static/admin/img/icon-yes.svg +3 -0
- _static/admin/img/inline-delete.svg +3 -0
- _static/admin/img/search.svg +3 -0
- _static/admin/img/selector-icons.svg +34 -0
- _static/admin/img/sorting-icons.svg +19 -0
- _static/admin/img/tooltag-add.svg +3 -0
- _static/admin/img/tooltag-arrowright.svg +3 -0
- _static/admin/js/SelectBox.js +110 -0
- _static/admin/js/SelectFilter2.js +236 -0
- _static/admin/js/actions.js +154 -0
- _static/admin/js/actions.min.js +7 -0
- _static/admin/js/admin/DateTimeShortcuts.js +417 -0
- _static/admin/js/admin/RelatedObjectLookups.js +159 -0
- _static/admin/js/autocomplete.js +38 -0
.gitattributes
CHANGED
@@ -33,3 +33,13 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
_static/single_pages/images/amsterdam_sky.jpg filter=lfs diff=lfs merge=lfs -text
|
37 |
+
_static/single_pages/images/automation_python.png filter=lfs diff=lfs merge=lfs -text
|
38 |
+
_static/single_pages/images/inflearn_django2.png filter=lfs diff=lfs merge=lfs -text
|
39 |
+
_static/single_pages/images/my_back.png filter=lfs diff=lfs merge=lfs -text
|
40 |
+
_static/single_pages/images/pycon_sy_2017.png filter=lfs diff=lfs merge=lfs -text
|
41 |
+
single_pages/static/single_pages/images/amsterdam_sky.jpg filter=lfs diff=lfs merge=lfs -text
|
42 |
+
single_pages/static/single_pages/images/automation_python.png filter=lfs diff=lfs merge=lfs -text
|
43 |
+
single_pages/static/single_pages/images/inflearn_django2.png filter=lfs diff=lfs merge=lfs -text
|
44 |
+
single_pages/static/single_pages/images/my_back.png filter=lfs diff=lfs merge=lfs -text
|
45 |
+
single_pages/static/single_pages/images/pycon_sy_2017.png filter=lfs diff=lfs merge=lfs -text
|
_static/admin/css/autocomplete.css
ADDED
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
select.admin-autocomplete {
|
2 |
+
width: 20em;
|
3 |
+
}
|
4 |
+
|
5 |
+
.select2-container--admin-autocomplete.select2-container {
|
6 |
+
min-height: 30px;
|
7 |
+
}
|
8 |
+
|
9 |
+
.select2-container--admin-autocomplete .select2-selection--single,
|
10 |
+
.select2-container--admin-autocomplete .select2-selection--multiple {
|
11 |
+
min-height: 30px;
|
12 |
+
padding: 0;
|
13 |
+
}
|
14 |
+
|
15 |
+
.select2-container--admin-autocomplete.select2-container--focus .select2-selection,
|
16 |
+
.select2-container--admin-autocomplete.select2-container--open .select2-selection {
|
17 |
+
border-color: #999;
|
18 |
+
min-height: 30px;
|
19 |
+
}
|
20 |
+
|
21 |
+
.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single,
|
22 |
+
.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single {
|
23 |
+
padding: 0;
|
24 |
+
}
|
25 |
+
|
26 |
+
.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple,
|
27 |
+
.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple {
|
28 |
+
padding: 0;
|
29 |
+
}
|
30 |
+
|
31 |
+
.select2-container--admin-autocomplete .select2-selection--single {
|
32 |
+
background-color: #fff;
|
33 |
+
border: 1px solid #ccc;
|
34 |
+
border-radius: 4px;
|
35 |
+
}
|
36 |
+
|
37 |
+
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered {
|
38 |
+
color: #444;
|
39 |
+
line-height: 30px;
|
40 |
+
}
|
41 |
+
|
42 |
+
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear {
|
43 |
+
cursor: pointer;
|
44 |
+
float: right;
|
45 |
+
font-weight: bold;
|
46 |
+
}
|
47 |
+
|
48 |
+
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder {
|
49 |
+
color: #999;
|
50 |
+
}
|
51 |
+
|
52 |
+
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow {
|
53 |
+
height: 26px;
|
54 |
+
position: absolute;
|
55 |
+
top: 1px;
|
56 |
+
right: 1px;
|
57 |
+
width: 20px;
|
58 |
+
}
|
59 |
+
|
60 |
+
.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b {
|
61 |
+
border-color: #888 transparent transparent transparent;
|
62 |
+
border-style: solid;
|
63 |
+
border-width: 5px 4px 0 4px;
|
64 |
+
height: 0;
|
65 |
+
left: 50%;
|
66 |
+
margin-left: -4px;
|
67 |
+
margin-top: -2px;
|
68 |
+
position: absolute;
|
69 |
+
top: 50%;
|
70 |
+
width: 0;
|
71 |
+
}
|
72 |
+
|
73 |
+
.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
74 |
+
float: left;
|
75 |
+
}
|
76 |
+
|
77 |
+
.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
78 |
+
left: 1px;
|
79 |
+
right: auto;
|
80 |
+
}
|
81 |
+
|
82 |
+
.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single {
|
83 |
+
background-color: #eee;
|
84 |
+
cursor: default;
|
85 |
+
}
|
86 |
+
|
87 |
+
.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
88 |
+
display: none;
|
89 |
+
}
|
90 |
+
|
91 |
+
.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
92 |
+
border-color: transparent transparent #888 transparent;
|
93 |
+
border-width: 0 4px 5px 4px;
|
94 |
+
}
|
95 |
+
|
96 |
+
.select2-container--admin-autocomplete .select2-selection--multiple {
|
97 |
+
background-color: white;
|
98 |
+
border: 1px solid #ccc;
|
99 |
+
border-radius: 4px;
|
100 |
+
cursor: text;
|
101 |
+
}
|
102 |
+
|
103 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered {
|
104 |
+
box-sizing: border-box;
|
105 |
+
list-style: none;
|
106 |
+
margin: 0;
|
107 |
+
padding: 0 5px;
|
108 |
+
width: 100%;
|
109 |
+
}
|
110 |
+
|
111 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li {
|
112 |
+
list-style: none;
|
113 |
+
}
|
114 |
+
|
115 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder {
|
116 |
+
color: #999;
|
117 |
+
margin-top: 5px;
|
118 |
+
float: left;
|
119 |
+
}
|
120 |
+
|
121 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear {
|
122 |
+
cursor: pointer;
|
123 |
+
float: right;
|
124 |
+
font-weight: bold;
|
125 |
+
margin: 5px;
|
126 |
+
}
|
127 |
+
|
128 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice {
|
129 |
+
background-color: #e4e4e4;
|
130 |
+
border: 1px solid #ccc;
|
131 |
+
border-radius: 4px;
|
132 |
+
cursor: default;
|
133 |
+
float: left;
|
134 |
+
margin-right: 5px;
|
135 |
+
margin-top: 5px;
|
136 |
+
padding: 0 5px;
|
137 |
+
}
|
138 |
+
|
139 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove {
|
140 |
+
color: #999;
|
141 |
+
cursor: pointer;
|
142 |
+
display: inline-block;
|
143 |
+
font-weight: bold;
|
144 |
+
margin-right: 2px;
|
145 |
+
}
|
146 |
+
|
147 |
+
.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover {
|
148 |
+
color: #333;
|
149 |
+
}
|
150 |
+
|
151 |
+
.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
152 |
+
float: right;
|
153 |
+
}
|
154 |
+
|
155 |
+
.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
156 |
+
margin-left: 5px;
|
157 |
+
margin-right: auto;
|
158 |
+
}
|
159 |
+
|
160 |
+
.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
161 |
+
margin-left: 2px;
|
162 |
+
margin-right: auto;
|
163 |
+
}
|
164 |
+
|
165 |
+
.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple {
|
166 |
+
border: solid #999 1px;
|
167 |
+
outline: 0;
|
168 |
+
}
|
169 |
+
|
170 |
+
.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple {
|
171 |
+
background-color: #eee;
|
172 |
+
cursor: default;
|
173 |
+
}
|
174 |
+
|
175 |
+
.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove {
|
176 |
+
display: none;
|
177 |
+
}
|
178 |
+
|
179 |
+
.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple {
|
180 |
+
border-top-left-radius: 0;
|
181 |
+
border-top-right-radius: 0;
|
182 |
+
}
|
183 |
+
|
184 |
+
.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple {
|
185 |
+
border-bottom-left-radius: 0;
|
186 |
+
border-bottom-right-radius: 0;
|
187 |
+
}
|
188 |
+
|
189 |
+
.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field {
|
190 |
+
border: 1px solid #ccc;
|
191 |
+
}
|
192 |
+
|
193 |
+
.select2-container--admin-autocomplete .select2-search--inline .select2-search__field {
|
194 |
+
background: transparent;
|
195 |
+
border: none;
|
196 |
+
outline: 0;
|
197 |
+
box-shadow: none;
|
198 |
+
-webkit-appearance: textfield;
|
199 |
+
}
|
200 |
+
|
201 |
+
.select2-container--admin-autocomplete .select2-results > .select2-results__options {
|
202 |
+
max-height: 200px;
|
203 |
+
overflow-y: auto;
|
204 |
+
}
|
205 |
+
|
206 |
+
.select2-container--admin-autocomplete .select2-results__option[role=group] {
|
207 |
+
padding: 0;
|
208 |
+
}
|
209 |
+
|
210 |
+
.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] {
|
211 |
+
color: #999;
|
212 |
+
}
|
213 |
+
|
214 |
+
.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] {
|
215 |
+
background-color: #ddd;
|
216 |
+
}
|
217 |
+
|
218 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option {
|
219 |
+
padding-left: 1em;
|
220 |
+
}
|
221 |
+
|
222 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group {
|
223 |
+
padding-left: 0;
|
224 |
+
}
|
225 |
+
|
226 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option {
|
227 |
+
margin-left: -1em;
|
228 |
+
padding-left: 2em;
|
229 |
+
}
|
230 |
+
|
231 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
232 |
+
margin-left: -2em;
|
233 |
+
padding-left: 3em;
|
234 |
+
}
|
235 |
+
|
236 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
237 |
+
margin-left: -3em;
|
238 |
+
padding-left: 4em;
|
239 |
+
}
|
240 |
+
|
241 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
242 |
+
margin-left: -4em;
|
243 |
+
padding-left: 5em;
|
244 |
+
}
|
245 |
+
|
246 |
+
.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
247 |
+
margin-left: -5em;
|
248 |
+
padding-left: 6em;
|
249 |
+
}
|
250 |
+
|
251 |
+
.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] {
|
252 |
+
background-color: #79aec8;
|
253 |
+
color: white;
|
254 |
+
}
|
255 |
+
|
256 |
+
.select2-container--admin-autocomplete .select2-results__group {
|
257 |
+
cursor: default;
|
258 |
+
display: block;
|
259 |
+
padding: 6px;
|
260 |
+
}
|
_static/admin/css/base.css
ADDED
@@ -0,0 +1,966 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
DJANGO Admin styles
|
3 |
+
*/
|
4 |
+
|
5 |
+
@import url(fonts.css);
|
6 |
+
|
7 |
+
html, body {
|
8 |
+
height: 100%;
|
9 |
+
}
|
10 |
+
|
11 |
+
body {
|
12 |
+
margin: 0;
|
13 |
+
padding: 0;
|
14 |
+
font-size: 14px;
|
15 |
+
font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif;
|
16 |
+
color: #333;
|
17 |
+
background: #fff;
|
18 |
+
}
|
19 |
+
|
20 |
+
/* LINKS */
|
21 |
+
|
22 |
+
a:link, a:visited {
|
23 |
+
color: #447e9b;
|
24 |
+
text-decoration: none;
|
25 |
+
}
|
26 |
+
|
27 |
+
a:focus, a:hover {
|
28 |
+
color: #036;
|
29 |
+
}
|
30 |
+
|
31 |
+
a:focus {
|
32 |
+
text-decoration: underline;
|
33 |
+
}
|
34 |
+
|
35 |
+
a img {
|
36 |
+
border: none;
|
37 |
+
}
|
38 |
+
|
39 |
+
a.section:link, a.section:visited {
|
40 |
+
color: #fff;
|
41 |
+
text-decoration: none;
|
42 |
+
}
|
43 |
+
|
44 |
+
a.section:focus, a.section:hover {
|
45 |
+
text-decoration: underline;
|
46 |
+
}
|
47 |
+
|
48 |
+
/* GLOBAL DEFAULTS */
|
49 |
+
|
50 |
+
p, ol, ul, dl {
|
51 |
+
margin: .2em 0 .8em 0;
|
52 |
+
}
|
53 |
+
|
54 |
+
p {
|
55 |
+
padding: 0;
|
56 |
+
line-height: 140%;
|
57 |
+
}
|
58 |
+
|
59 |
+
h1,h2,h3,h4,h5 {
|
60 |
+
font-weight: bold;
|
61 |
+
}
|
62 |
+
|
63 |
+
h1 {
|
64 |
+
margin: 0 0 20px;
|
65 |
+
font-weight: 300;
|
66 |
+
font-size: 20px;
|
67 |
+
color: #666;
|
68 |
+
}
|
69 |
+
|
70 |
+
h2 {
|
71 |
+
font-size: 16px;
|
72 |
+
margin: 1em 0 .5em 0;
|
73 |
+
}
|
74 |
+
|
75 |
+
h2.subhead {
|
76 |
+
font-weight: normal;
|
77 |
+
margin-top: 0;
|
78 |
+
}
|
79 |
+
|
80 |
+
h3 {
|
81 |
+
font-size: 14px;
|
82 |
+
margin: .8em 0 .3em 0;
|
83 |
+
color: #666;
|
84 |
+
font-weight: bold;
|
85 |
+
}
|
86 |
+
|
87 |
+
h4 {
|
88 |
+
font-size: 12px;
|
89 |
+
margin: 1em 0 .8em 0;
|
90 |
+
padding-bottom: 3px;
|
91 |
+
}
|
92 |
+
|
93 |
+
h5 {
|
94 |
+
font-size: 10px;
|
95 |
+
margin: 1.5em 0 .5em 0;
|
96 |
+
color: #666;
|
97 |
+
text-transform: uppercase;
|
98 |
+
letter-spacing: 1px;
|
99 |
+
}
|
100 |
+
|
101 |
+
ul > li {
|
102 |
+
list-style-type: square;
|
103 |
+
padding: 1px 0;
|
104 |
+
}
|
105 |
+
|
106 |
+
li ul {
|
107 |
+
margin-bottom: 0;
|
108 |
+
}
|
109 |
+
|
110 |
+
li, dt, dd {
|
111 |
+
font-size: 13px;
|
112 |
+
line-height: 20px;
|
113 |
+
}
|
114 |
+
|
115 |
+
dt {
|
116 |
+
font-weight: bold;
|
117 |
+
margin-top: 4px;
|
118 |
+
}
|
119 |
+
|
120 |
+
dd {
|
121 |
+
margin-left: 0;
|
122 |
+
}
|
123 |
+
|
124 |
+
form {
|
125 |
+
margin: 0;
|
126 |
+
padding: 0;
|
127 |
+
}
|
128 |
+
|
129 |
+
fieldset {
|
130 |
+
margin: 0;
|
131 |
+
min-width: 0;
|
132 |
+
padding: 0;
|
133 |
+
border: none;
|
134 |
+
border-top: 1px solid #eee;
|
135 |
+
}
|
136 |
+
|
137 |
+
blockquote {
|
138 |
+
font-size: 11px;
|
139 |
+
color: #777;
|
140 |
+
margin-left: 2px;
|
141 |
+
padding-left: 10px;
|
142 |
+
border-left: 5px solid #ddd;
|
143 |
+
}
|
144 |
+
|
145 |
+
code, pre {
|
146 |
+
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
|
147 |
+
color: #666;
|
148 |
+
font-size: 12px;
|
149 |
+
overflow-x: auto;
|
150 |
+
}
|
151 |
+
|
152 |
+
pre.literal-block {
|
153 |
+
margin: 10px;
|
154 |
+
background: #eee;
|
155 |
+
padding: 6px 8px;
|
156 |
+
}
|
157 |
+
|
158 |
+
code strong {
|
159 |
+
color: #930;
|
160 |
+
}
|
161 |
+
|
162 |
+
hr {
|
163 |
+
clear: both;
|
164 |
+
color: #eee;
|
165 |
+
background-color: #eee;
|
166 |
+
height: 1px;
|
167 |
+
border: none;
|
168 |
+
margin: 0;
|
169 |
+
padding: 0;
|
170 |
+
font-size: 1px;
|
171 |
+
line-height: 1px;
|
172 |
+
}
|
173 |
+
|
174 |
+
/* TEXT STYLES & MODIFIERS */
|
175 |
+
|
176 |
+
.small {
|
177 |
+
font-size: 11px;
|
178 |
+
}
|
179 |
+
|
180 |
+
.mini {
|
181 |
+
font-size: 10px;
|
182 |
+
}
|
183 |
+
|
184 |
+
.help, p.help, form p.help, div.help, form div.help, div.help li {
|
185 |
+
font-size: 11px;
|
186 |
+
color: #999;
|
187 |
+
}
|
188 |
+
|
189 |
+
div.help ul {
|
190 |
+
margin-bottom: 0;
|
191 |
+
}
|
192 |
+
|
193 |
+
.help-tooltip {
|
194 |
+
cursor: help;
|
195 |
+
}
|
196 |
+
|
197 |
+
p img, h1 img, h2 img, h3 img, h4 img, td img {
|
198 |
+
vertical-align: middle;
|
199 |
+
}
|
200 |
+
|
201 |
+
.quiet, a.quiet:link, a.quiet:visited {
|
202 |
+
color: #999;
|
203 |
+
font-weight: normal;
|
204 |
+
}
|
205 |
+
|
206 |
+
.clear {
|
207 |
+
clear: both;
|
208 |
+
}
|
209 |
+
|
210 |
+
.nowrap {
|
211 |
+
white-space: nowrap;
|
212 |
+
}
|
213 |
+
|
214 |
+
/* TABLES */
|
215 |
+
|
216 |
+
table {
|
217 |
+
border-collapse: collapse;
|
218 |
+
border-color: #ccc;
|
219 |
+
}
|
220 |
+
|
221 |
+
td, th {
|
222 |
+
font-size: 13px;
|
223 |
+
line-height: 16px;
|
224 |
+
border-bottom: 1px solid #eee;
|
225 |
+
vertical-align: top;
|
226 |
+
padding: 8px;
|
227 |
+
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
|
228 |
+
}
|
229 |
+
|
230 |
+
th {
|
231 |
+
font-weight: 600;
|
232 |
+
text-align: left;
|
233 |
+
}
|
234 |
+
|
235 |
+
thead th,
|
236 |
+
tfoot td {
|
237 |
+
color: #666;
|
238 |
+
padding: 5px 10px;
|
239 |
+
font-size: 11px;
|
240 |
+
background: #fff;
|
241 |
+
border: none;
|
242 |
+
border-top: 1px solid #eee;
|
243 |
+
border-bottom: 1px solid #eee;
|
244 |
+
}
|
245 |
+
|
246 |
+
tfoot td {
|
247 |
+
border-bottom: none;
|
248 |
+
border-top: 1px solid #eee;
|
249 |
+
}
|
250 |
+
|
251 |
+
thead th.required {
|
252 |
+
color: #000;
|
253 |
+
}
|
254 |
+
|
255 |
+
tr.alt {
|
256 |
+
background: #f6f6f6;
|
257 |
+
}
|
258 |
+
|
259 |
+
tr:nth-child(odd), .row-form-errors {
|
260 |
+
background: #fff;
|
261 |
+
}
|
262 |
+
|
263 |
+
tr:nth-child(even),
|
264 |
+
tr:nth-child(even) .errorlist,
|
265 |
+
tr:nth-child(odd) + .row-form-errors,
|
266 |
+
tr:nth-child(odd) + .row-form-errors .errorlist {
|
267 |
+
background: #f9f9f9;
|
268 |
+
}
|
269 |
+
|
270 |
+
/* SORTABLE TABLES */
|
271 |
+
|
272 |
+
thead th {
|
273 |
+
padding: 5px 10px;
|
274 |
+
line-height: normal;
|
275 |
+
text-transform: uppercase;
|
276 |
+
background: #f6f6f6;
|
277 |
+
}
|
278 |
+
|
279 |
+
thead th a:link, thead th a:visited {
|
280 |
+
color: #666;
|
281 |
+
}
|
282 |
+
|
283 |
+
thead th.sorted {
|
284 |
+
background: #eee;
|
285 |
+
}
|
286 |
+
|
287 |
+
thead th.sorted .text {
|
288 |
+
padding-right: 42px;
|
289 |
+
}
|
290 |
+
|
291 |
+
table thead th .text span {
|
292 |
+
padding: 8px 10px;
|
293 |
+
display: block;
|
294 |
+
}
|
295 |
+
|
296 |
+
table thead th .text a {
|
297 |
+
display: block;
|
298 |
+
cursor: pointer;
|
299 |
+
padding: 8px 10px;
|
300 |
+
}
|
301 |
+
|
302 |
+
table thead th .text a:focus, table thead th .text a:hover {
|
303 |
+
background: #eee;
|
304 |
+
}
|
305 |
+
|
306 |
+
thead th.sorted a.sortremove {
|
307 |
+
visibility: hidden;
|
308 |
+
}
|
309 |
+
|
310 |
+
table thead th.sorted:hover a.sortremove {
|
311 |
+
visibility: visible;
|
312 |
+
}
|
313 |
+
|
314 |
+
table thead th.sorted .sortoptions {
|
315 |
+
display: block;
|
316 |
+
padding: 9px 5px 0 5px;
|
317 |
+
float: right;
|
318 |
+
text-align: right;
|
319 |
+
}
|
320 |
+
|
321 |
+
table thead th.sorted .sortpriority {
|
322 |
+
font-size: .8em;
|
323 |
+
min-width: 12px;
|
324 |
+
text-align: center;
|
325 |
+
vertical-align: 3px;
|
326 |
+
margin-left: 2px;
|
327 |
+
margin-right: 2px;
|
328 |
+
}
|
329 |
+
|
330 |
+
table thead th.sorted .sortoptions a {
|
331 |
+
position: relative;
|
332 |
+
width: 14px;
|
333 |
+
height: 14px;
|
334 |
+
display: inline-block;
|
335 |
+
background: url(../img/sorting-icons.svg) 0 0 no-repeat;
|
336 |
+
background-size: 14px auto;
|
337 |
+
}
|
338 |
+
|
339 |
+
table thead th.sorted .sortoptions a.sortremove {
|
340 |
+
background-position: 0 0;
|
341 |
+
}
|
342 |
+
|
343 |
+
table thead th.sorted .sortoptions a.sortremove:after {
|
344 |
+
content: '\\';
|
345 |
+
position: absolute;
|
346 |
+
top: -6px;
|
347 |
+
left: 3px;
|
348 |
+
font-weight: 200;
|
349 |
+
font-size: 18px;
|
350 |
+
color: #999;
|
351 |
+
}
|
352 |
+
|
353 |
+
table thead th.sorted .sortoptions a.sortremove:focus:after,
|
354 |
+
table thead th.sorted .sortoptions a.sortremove:hover:after {
|
355 |
+
color: #447e9b;
|
356 |
+
}
|
357 |
+
|
358 |
+
table thead th.sorted .sortoptions a.sortremove:focus,
|
359 |
+
table thead th.sorted .sortoptions a.sortremove:hover {
|
360 |
+
background-position: 0 -14px;
|
361 |
+
}
|
362 |
+
|
363 |
+
table thead th.sorted .sortoptions a.ascending {
|
364 |
+
background-position: 0 -28px;
|
365 |
+
}
|
366 |
+
|
367 |
+
table thead th.sorted .sortoptions a.ascending:focus,
|
368 |
+
table thead th.sorted .sortoptions a.ascending:hover {
|
369 |
+
background-position: 0 -42px;
|
370 |
+
}
|
371 |
+
|
372 |
+
table thead th.sorted .sortoptions a.descending {
|
373 |
+
top: 1px;
|
374 |
+
background-position: 0 -56px;
|
375 |
+
}
|
376 |
+
|
377 |
+
table thead th.sorted .sortoptions a.descending:focus,
|
378 |
+
table thead th.sorted .sortoptions a.descending:hover {
|
379 |
+
background-position: 0 -70px;
|
380 |
+
}
|
381 |
+
|
382 |
+
/* FORM DEFAULTS */
|
383 |
+
|
384 |
+
input, textarea, select, .form-row p, form .button {
|
385 |
+
margin: 2px 0;
|
386 |
+
padding: 2px 3px;
|
387 |
+
vertical-align: middle;
|
388 |
+
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif;
|
389 |
+
font-weight: normal;
|
390 |
+
font-size: 13px;
|
391 |
+
}
|
392 |
+
.form-row div.help {
|
393 |
+
padding: 2px 3px;
|
394 |
+
}
|
395 |
+
|
396 |
+
textarea {
|
397 |
+
vertical-align: top;
|
398 |
+
}
|
399 |
+
|
400 |
+
input[type=text], input[type=password], input[type=email], input[type=url],
|
401 |
+
input[type=number], input[type=tel], textarea, select, .vTextField {
|
402 |
+
border: 1px solid #ccc;
|
403 |
+
border-radius: 4px;
|
404 |
+
padding: 5px 6px;
|
405 |
+
margin-top: 0;
|
406 |
+
}
|
407 |
+
|
408 |
+
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus,
|
409 |
+
input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus,
|
410 |
+
textarea:focus, select:focus, .vTextField:focus {
|
411 |
+
border-color: #999;
|
412 |
+
}
|
413 |
+
|
414 |
+
select {
|
415 |
+
height: 30px;
|
416 |
+
}
|
417 |
+
|
418 |
+
select[multiple] {
|
419 |
+
/* Allow HTML size attribute to override the height in the rule above. */
|
420 |
+
height: auto;
|
421 |
+
min-height: 150px;
|
422 |
+
}
|
423 |
+
|
424 |
+
/* FORM BUTTONS */
|
425 |
+
|
426 |
+
.button, input[type=submit], input[type=button], .submit-row input, a.button {
|
427 |
+
background: #79aec8;
|
428 |
+
padding: 10px 15px;
|
429 |
+
border: none;
|
430 |
+
border-radius: 4px;
|
431 |
+
color: #fff;
|
432 |
+
cursor: pointer;
|
433 |
+
}
|
434 |
+
|
435 |
+
a.button {
|
436 |
+
padding: 4px 5px;
|
437 |
+
}
|
438 |
+
|
439 |
+
.button:active, input[type=submit]:active, input[type=button]:active,
|
440 |
+
.button:focus, input[type=submit]:focus, input[type=button]:focus,
|
441 |
+
.button:hover, input[type=submit]:hover, input[type=button]:hover {
|
442 |
+
background: #609ab6;
|
443 |
+
}
|
444 |
+
|
445 |
+
.button[disabled], input[type=submit][disabled], input[type=button][disabled] {
|
446 |
+
opacity: 0.4;
|
447 |
+
}
|
448 |
+
|
449 |
+
.button.default, input[type=submit].default, .submit-row input.default {
|
450 |
+
float: right;
|
451 |
+
border: none;
|
452 |
+
font-weight: 400;
|
453 |
+
background: #417690;
|
454 |
+
}
|
455 |
+
|
456 |
+
.button.default:active, input[type=submit].default:active,
|
457 |
+
.button.default:focus, input[type=submit].default:focus,
|
458 |
+
.button.default:hover, input[type=submit].default:hover {
|
459 |
+
background: #205067;
|
460 |
+
}
|
461 |
+
|
462 |
+
.button[disabled].default,
|
463 |
+
input[type=submit][disabled].default,
|
464 |
+
input[type=button][disabled].default {
|
465 |
+
opacity: 0.4;
|
466 |
+
}
|
467 |
+
|
468 |
+
|
469 |
+
/* MODULES */
|
470 |
+
|
471 |
+
.module {
|
472 |
+
border: none;
|
473 |
+
margin-bottom: 30px;
|
474 |
+
background: #fff;
|
475 |
+
}
|
476 |
+
|
477 |
+
.module p, .module ul, .module h3, .module h4, .module dl, .module pre {
|
478 |
+
padding-left: 10px;
|
479 |
+
padding-right: 10px;
|
480 |
+
}
|
481 |
+
|
482 |
+
.module blockquote {
|
483 |
+
margin-left: 12px;
|
484 |
+
}
|
485 |
+
|
486 |
+
.module ul, .module ol {
|
487 |
+
margin-left: 1.5em;
|
488 |
+
}
|
489 |
+
|
490 |
+
.module h3 {
|
491 |
+
margin-top: .6em;
|
492 |
+
}
|
493 |
+
|
494 |
+
.module h2, .module caption, .inline-group h2 {
|
495 |
+
margin: 0;
|
496 |
+
padding: 8px;
|
497 |
+
font-weight: 400;
|
498 |
+
font-size: 13px;
|
499 |
+
text-align: left;
|
500 |
+
background: #79aec8;
|
501 |
+
color: #fff;
|
502 |
+
}
|
503 |
+
|
504 |
+
.module caption,
|
505 |
+
.inline-group h2 {
|
506 |
+
font-size: 12px;
|
507 |
+
letter-spacing: 0.5px;
|
508 |
+
text-transform: uppercase;
|
509 |
+
}
|
510 |
+
|
511 |
+
.module table {
|
512 |
+
border-collapse: collapse;
|
513 |
+
}
|
514 |
+
|
515 |
+
/* MESSAGES & ERRORS */
|
516 |
+
|
517 |
+
ul.messagelist {
|
518 |
+
padding: 0;
|
519 |
+
margin: 0;
|
520 |
+
}
|
521 |
+
|
522 |
+
ul.messagelist li {
|
523 |
+
display: block;
|
524 |
+
font-weight: 400;
|
525 |
+
font-size: 13px;
|
526 |
+
padding: 10px 10px 10px 65px;
|
527 |
+
margin: 0 0 10px 0;
|
528 |
+
background: #dfd url(../img/icon-yes.svg) 40px 12px no-repeat;
|
529 |
+
background-size: 16px auto;
|
530 |
+
color: #333;
|
531 |
+
}
|
532 |
+
|
533 |
+
ul.messagelist li.warning {
|
534 |
+
background: #ffc url(../img/icon-alert.svg) 40px 14px no-repeat;
|
535 |
+
background-size: 14px auto;
|
536 |
+
}
|
537 |
+
|
538 |
+
ul.messagelist li.error {
|
539 |
+
background: #ffefef url(../img/icon-no.svg) 40px 12px no-repeat;
|
540 |
+
background-size: 16px auto;
|
541 |
+
}
|
542 |
+
|
543 |
+
.errornote {
|
544 |
+
font-size: 14px;
|
545 |
+
font-weight: 700;
|
546 |
+
display: block;
|
547 |
+
padding: 10px 12px;
|
548 |
+
margin: 0 0 10px 0;
|
549 |
+
color: #ba2121;
|
550 |
+
border: 1px solid #ba2121;
|
551 |
+
border-radius: 4px;
|
552 |
+
background-color: #fff;
|
553 |
+
background-position: 5px 12px;
|
554 |
+
}
|
555 |
+
|
556 |
+
ul.errorlist {
|
557 |
+
margin: 0 0 4px;
|
558 |
+
padding: 0;
|
559 |
+
color: #ba2121;
|
560 |
+
background: #fff;
|
561 |
+
}
|
562 |
+
|
563 |
+
ul.errorlist li {
|
564 |
+
font-size: 13px;
|
565 |
+
display: block;
|
566 |
+
margin-bottom: 4px;
|
567 |
+
}
|
568 |
+
|
569 |
+
ul.errorlist li:first-child {
|
570 |
+
margin-top: 0;
|
571 |
+
}
|
572 |
+
|
573 |
+
ul.errorlist li a {
|
574 |
+
color: inherit;
|
575 |
+
text-decoration: underline;
|
576 |
+
}
|
577 |
+
|
578 |
+
td ul.errorlist {
|
579 |
+
margin: 0;
|
580 |
+
padding: 0;
|
581 |
+
}
|
582 |
+
|
583 |
+
td ul.errorlist li {
|
584 |
+
margin: 0;
|
585 |
+
}
|
586 |
+
|
587 |
+
.form-row.errors {
|
588 |
+
margin: 0;
|
589 |
+
border: none;
|
590 |
+
border-bottom: 1px solid #eee;
|
591 |
+
background: none;
|
592 |
+
}
|
593 |
+
|
594 |
+
.form-row.errors ul.errorlist li {
|
595 |
+
padding-left: 0;
|
596 |
+
}
|
597 |
+
|
598 |
+
.errors input, .errors select, .errors textarea,
|
599 |
+
td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea {
|
600 |
+
border: 1px solid #ba2121;
|
601 |
+
}
|
602 |
+
|
603 |
+
.description {
|
604 |
+
font-size: 12px;
|
605 |
+
padding: 5px 0 0 12px;
|
606 |
+
}
|
607 |
+
|
608 |
+
/* BREADCRUMBS */
|
609 |
+
|
610 |
+
div.breadcrumbs {
|
611 |
+
background: #79aec8;
|
612 |
+
padding: 10px 40px;
|
613 |
+
border: none;
|
614 |
+
font-size: 14px;
|
615 |
+
color: #c4dce8;
|
616 |
+
text-align: left;
|
617 |
+
}
|
618 |
+
|
619 |
+
div.breadcrumbs a {
|
620 |
+
color: #fff;
|
621 |
+
}
|
622 |
+
|
623 |
+
div.breadcrumbs a:focus, div.breadcrumbs a:hover {
|
624 |
+
color: #c4dce8;
|
625 |
+
}
|
626 |
+
|
627 |
+
/* ACTION ICONS */
|
628 |
+
|
629 |
+
.viewlink, .inlineviewlink {
|
630 |
+
padding-left: 16px;
|
631 |
+
background: url(../img/icon-viewlink.svg) 0 1px no-repeat;
|
632 |
+
}
|
633 |
+
|
634 |
+
.addlink {
|
635 |
+
padding-left: 16px;
|
636 |
+
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
|
637 |
+
}
|
638 |
+
|
639 |
+
.changelink, .inlinechangelink {
|
640 |
+
padding-left: 16px;
|
641 |
+
background: url(../img/icon-changelink.svg) 0 1px no-repeat;
|
642 |
+
}
|
643 |
+
|
644 |
+
.deletelink {
|
645 |
+
padding-left: 16px;
|
646 |
+
background: url(../img/icon-deletelink.svg) 0 1px no-repeat;
|
647 |
+
}
|
648 |
+
|
649 |
+
a.deletelink:link, a.deletelink:visited {
|
650 |
+
color: #CC3434;
|
651 |
+
}
|
652 |
+
|
653 |
+
a.deletelink:focus, a.deletelink:hover {
|
654 |
+
color: #993333;
|
655 |
+
text-decoration: none;
|
656 |
+
}
|
657 |
+
|
658 |
+
/* OBJECT TOOLS */
|
659 |
+
|
660 |
+
.object-tools {
|
661 |
+
font-size: 10px;
|
662 |
+
font-weight: bold;
|
663 |
+
padding-left: 0;
|
664 |
+
float: right;
|
665 |
+
position: relative;
|
666 |
+
margin-top: -48px;
|
667 |
+
}
|
668 |
+
|
669 |
+
.form-row .object-tools {
|
670 |
+
margin-top: 5px;
|
671 |
+
margin-bottom: 5px;
|
672 |
+
float: none;
|
673 |
+
height: 2em;
|
674 |
+
padding-left: 3.5em;
|
675 |
+
}
|
676 |
+
|
677 |
+
.object-tools li {
|
678 |
+
display: block;
|
679 |
+
float: left;
|
680 |
+
margin-left: 5px;
|
681 |
+
height: 16px;
|
682 |
+
}
|
683 |
+
|
684 |
+
.object-tools a {
|
685 |
+
border-radius: 15px;
|
686 |
+
}
|
687 |
+
|
688 |
+
.object-tools a:link, .object-tools a:visited {
|
689 |
+
display: block;
|
690 |
+
float: left;
|
691 |
+
padding: 3px 12px;
|
692 |
+
background: #999;
|
693 |
+
font-weight: 400;
|
694 |
+
font-size: 11px;
|
695 |
+
text-transform: uppercase;
|
696 |
+
letter-spacing: 0.5px;
|
697 |
+
color: #fff;
|
698 |
+
}
|
699 |
+
|
700 |
+
.object-tools a:focus, .object-tools a:hover {
|
701 |
+
background-color: #417690;
|
702 |
+
}
|
703 |
+
|
704 |
+
.object-tools a:focus{
|
705 |
+
text-decoration: none;
|
706 |
+
}
|
707 |
+
|
708 |
+
.object-tools a.viewsitelink, .object-tools a.golink,.object-tools a.addlink {
|
709 |
+
background-repeat: no-repeat;
|
710 |
+
background-position: right 7px center;
|
711 |
+
padding-right: 26px;
|
712 |
+
}
|
713 |
+
|
714 |
+
.object-tools a.viewsitelink, .object-tools a.golink {
|
715 |
+
background-image: url(../img/tooltag-arrowright.svg);
|
716 |
+
}
|
717 |
+
|
718 |
+
.object-tools a.addlink {
|
719 |
+
background-image: url(../img/tooltag-add.svg);
|
720 |
+
}
|
721 |
+
|
722 |
+
/* OBJECT HISTORY */
|
723 |
+
|
724 |
+
table#change-history {
|
725 |
+
width: 100%;
|
726 |
+
}
|
727 |
+
|
728 |
+
table#change-history tbody th {
|
729 |
+
width: 16em;
|
730 |
+
}
|
731 |
+
|
732 |
+
/* PAGE STRUCTURE */
|
733 |
+
|
734 |
+
#container {
|
735 |
+
position: relative;
|
736 |
+
width: 100%;
|
737 |
+
min-width: 980px;
|
738 |
+
padding: 0;
|
739 |
+
display: flex;
|
740 |
+
flex-direction: column;
|
741 |
+
height: 100%;
|
742 |
+
}
|
743 |
+
|
744 |
+
#container > div {
|
745 |
+
flex-shrink: 0;
|
746 |
+
}
|
747 |
+
|
748 |
+
#container > .main {
|
749 |
+
display: flex;
|
750 |
+
flex: 1 0 auto;
|
751 |
+
}
|
752 |
+
|
753 |
+
.main > .content {
|
754 |
+
flex: 1 0;
|
755 |
+
max-width: 100%;
|
756 |
+
}
|
757 |
+
|
758 |
+
#content {
|
759 |
+
padding: 20px 40px;
|
760 |
+
}
|
761 |
+
|
762 |
+
.dashboard #content {
|
763 |
+
width: 600px;
|
764 |
+
}
|
765 |
+
|
766 |
+
#content-main {
|
767 |
+
float: left;
|
768 |
+
width: 100%;
|
769 |
+
}
|
770 |
+
|
771 |
+
#content-related {
|
772 |
+
float: right;
|
773 |
+
width: 260px;
|
774 |
+
position: relative;
|
775 |
+
margin-right: -300px;
|
776 |
+
}
|
777 |
+
|
778 |
+
#footer {
|
779 |
+
clear: both;
|
780 |
+
padding: 10px;
|
781 |
+
}
|
782 |
+
|
783 |
+
/* COLUMN TYPES */
|
784 |
+
|
785 |
+
.colMS {
|
786 |
+
margin-right: 300px;
|
787 |
+
}
|
788 |
+
|
789 |
+
.colSM {
|
790 |
+
margin-left: 300px;
|
791 |
+
}
|
792 |
+
|
793 |
+
.colSM #content-related {
|
794 |
+
float: left;
|
795 |
+
margin-right: 0;
|
796 |
+
margin-left: -300px;
|
797 |
+
}
|
798 |
+
|
799 |
+
.colSM #content-main {
|
800 |
+
float: right;
|
801 |
+
}
|
802 |
+
|
803 |
+
.popup .colM {
|
804 |
+
width: auto;
|
805 |
+
}
|
806 |
+
|
807 |
+
/* HEADER */
|
808 |
+
|
809 |
+
#header {
|
810 |
+
width: auto;
|
811 |
+
height: auto;
|
812 |
+
display: flex;
|
813 |
+
justify-content: space-between;
|
814 |
+
align-items: center;
|
815 |
+
padding: 10px 40px;
|
816 |
+
background: #417690;
|
817 |
+
color: #ffc;
|
818 |
+
overflow: hidden;
|
819 |
+
}
|
820 |
+
|
821 |
+
#header a:link, #header a:visited {
|
822 |
+
color: #fff;
|
823 |
+
}
|
824 |
+
|
825 |
+
#header a:focus , #header a:hover {
|
826 |
+
text-decoration: underline;
|
827 |
+
}
|
828 |
+
|
829 |
+
#branding {
|
830 |
+
float: left;
|
831 |
+
}
|
832 |
+
|
833 |
+
#branding h1 {
|
834 |
+
padding: 0;
|
835 |
+
margin: 0 20px 0 0;
|
836 |
+
font-weight: 300;
|
837 |
+
font-size: 24px;
|
838 |
+
color: #f5dd5d;
|
839 |
+
}
|
840 |
+
|
841 |
+
#branding h1, #branding h1 a:link, #branding h1 a:visited {
|
842 |
+
color: #f5dd5d;
|
843 |
+
}
|
844 |
+
|
845 |
+
#branding h2 {
|
846 |
+
padding: 0 10px;
|
847 |
+
font-size: 14px;
|
848 |
+
margin: -8px 0 8px 0;
|
849 |
+
font-weight: normal;
|
850 |
+
color: #ffc;
|
851 |
+
}
|
852 |
+
|
853 |
+
#branding a:hover {
|
854 |
+
text-decoration: none;
|
855 |
+
}
|
856 |
+
|
857 |
+
#user-tools {
|
858 |
+
float: right;
|
859 |
+
padding: 0;
|
860 |
+
margin: 0 0 0 20px;
|
861 |
+
font-weight: 300;
|
862 |
+
font-size: 11px;
|
863 |
+
letter-spacing: 0.5px;
|
864 |
+
text-transform: uppercase;
|
865 |
+
text-align: right;
|
866 |
+
}
|
867 |
+
|
868 |
+
#user-tools a {
|
869 |
+
border-bottom: 1px solid rgba(255, 255, 255, 0.25);
|
870 |
+
}
|
871 |
+
|
872 |
+
#user-tools a:focus, #user-tools a:hover {
|
873 |
+
text-decoration: none;
|
874 |
+
border-bottom-color: #79aec8;
|
875 |
+
color: #79aec8;
|
876 |
+
}
|
877 |
+
|
878 |
+
/* SIDEBAR */
|
879 |
+
|
880 |
+
#content-related {
|
881 |
+
background: #f8f8f8;
|
882 |
+
}
|
883 |
+
|
884 |
+
#content-related .module {
|
885 |
+
background: none;
|
886 |
+
}
|
887 |
+
|
888 |
+
#content-related h3 {
|
889 |
+
font-size: 14px;
|
890 |
+
color: #666;
|
891 |
+
padding: 0 16px;
|
892 |
+
margin: 0 0 16px;
|
893 |
+
}
|
894 |
+
|
895 |
+
#content-related h4 {
|
896 |
+
font-size: 13px;
|
897 |
+
}
|
898 |
+
|
899 |
+
#content-related p {
|
900 |
+
padding-left: 16px;
|
901 |
+
padding-right: 16px;
|
902 |
+
}
|
903 |
+
|
904 |
+
#content-related .actionlist {
|
905 |
+
padding: 0;
|
906 |
+
margin: 16px;
|
907 |
+
}
|
908 |
+
|
909 |
+
#content-related .actionlist li {
|
910 |
+
line-height: 1.2;
|
911 |
+
margin-bottom: 10px;
|
912 |
+
padding-left: 18px;
|
913 |
+
}
|
914 |
+
|
915 |
+
#content-related .module h2 {
|
916 |
+
background: none;
|
917 |
+
padding: 16px;
|
918 |
+
margin-bottom: 16px;
|
919 |
+
border-bottom: 1px solid #eaeaea;
|
920 |
+
font-size: 18px;
|
921 |
+
color: #333;
|
922 |
+
}
|
923 |
+
|
924 |
+
.delete-confirmation form input[type="submit"] {
|
925 |
+
background: #ba2121;
|
926 |
+
border-radius: 4px;
|
927 |
+
padding: 10px 15px;
|
928 |
+
color: #fff;
|
929 |
+
}
|
930 |
+
|
931 |
+
.delete-confirmation form input[type="submit"]:active,
|
932 |
+
.delete-confirmation form input[type="submit"]:focus,
|
933 |
+
.delete-confirmation form input[type="submit"]:hover {
|
934 |
+
background: #a41515;
|
935 |
+
}
|
936 |
+
|
937 |
+
.delete-confirmation form .cancel-link {
|
938 |
+
display: inline-block;
|
939 |
+
vertical-align: middle;
|
940 |
+
height: 15px;
|
941 |
+
line-height: 15px;
|
942 |
+
background: #ddd;
|
943 |
+
border-radius: 4px;
|
944 |
+
padding: 10px 15px;
|
945 |
+
color: #333;
|
946 |
+
margin: 0 0 0 10px;
|
947 |
+
}
|
948 |
+
|
949 |
+
.delete-confirmation form .cancel-link:active,
|
950 |
+
.delete-confirmation form .cancel-link:focus,
|
951 |
+
.delete-confirmation form .cancel-link:hover {
|
952 |
+
background: #ccc;
|
953 |
+
}
|
954 |
+
|
955 |
+
/* POPUP */
|
956 |
+
.popup #content {
|
957 |
+
padding: 20px;
|
958 |
+
}
|
959 |
+
|
960 |
+
.popup #container {
|
961 |
+
min-width: 0;
|
962 |
+
}
|
963 |
+
|
964 |
+
.popup #header {
|
965 |
+
padding: 10px 20px;
|
966 |
+
}
|
_static/admin/css/changelists.css
ADDED
@@ -0,0 +1,350 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* CHANGELISTS */
|
2 |
+
|
3 |
+
#changelist {
|
4 |
+
position: relative;
|
5 |
+
width: 100%;
|
6 |
+
}
|
7 |
+
|
8 |
+
#changelist table {
|
9 |
+
width: 100%;
|
10 |
+
}
|
11 |
+
|
12 |
+
.change-list .hiddenfields { display:none; }
|
13 |
+
|
14 |
+
.change-list .filtered table {
|
15 |
+
border-right: none;
|
16 |
+
}
|
17 |
+
|
18 |
+
.change-list .filtered {
|
19 |
+
min-height: 400px;
|
20 |
+
}
|
21 |
+
|
22 |
+
.change-list .filtered .results, .change-list .filtered .paginator,
|
23 |
+
.filtered #toolbar, .filtered div.xfull {
|
24 |
+
margin-right: 280px;
|
25 |
+
width: auto;
|
26 |
+
}
|
27 |
+
|
28 |
+
.change-list .filtered table tbody th {
|
29 |
+
padding-right: 1em;
|
30 |
+
}
|
31 |
+
|
32 |
+
#changelist-form .results {
|
33 |
+
overflow-x: auto;
|
34 |
+
}
|
35 |
+
|
36 |
+
#changelist .toplinks {
|
37 |
+
border-bottom: 1px solid #ddd;
|
38 |
+
}
|
39 |
+
|
40 |
+
#changelist .paginator {
|
41 |
+
color: #666;
|
42 |
+
border-bottom: 1px solid #eee;
|
43 |
+
background: #fff;
|
44 |
+
overflow: hidden;
|
45 |
+
}
|
46 |
+
|
47 |
+
/* CHANGELIST TABLES */
|
48 |
+
|
49 |
+
#changelist table thead th {
|
50 |
+
padding: 0;
|
51 |
+
white-space: nowrap;
|
52 |
+
vertical-align: middle;
|
53 |
+
}
|
54 |
+
|
55 |
+
#changelist table thead th.action-checkbox-column {
|
56 |
+
width: 1.5em;
|
57 |
+
text-align: center;
|
58 |
+
}
|
59 |
+
|
60 |
+
#changelist table tbody td.action-checkbox {
|
61 |
+
text-align: center;
|
62 |
+
}
|
63 |
+
|
64 |
+
#changelist table tfoot {
|
65 |
+
color: #666;
|
66 |
+
}
|
67 |
+
|
68 |
+
/* TOOLBAR */
|
69 |
+
|
70 |
+
#changelist #toolbar {
|
71 |
+
padding: 8px 10px;
|
72 |
+
margin-bottom: 15px;
|
73 |
+
border-top: 1px solid #eee;
|
74 |
+
border-bottom: 1px solid #eee;
|
75 |
+
background: #f8f8f8;
|
76 |
+
color: #666;
|
77 |
+
}
|
78 |
+
|
79 |
+
#changelist #toolbar form input {
|
80 |
+
border-radius: 4px;
|
81 |
+
font-size: 14px;
|
82 |
+
padding: 5px;
|
83 |
+
color: #333;
|
84 |
+
}
|
85 |
+
|
86 |
+
#changelist #toolbar form #searchbar {
|
87 |
+
height: 19px;
|
88 |
+
border: 1px solid #ccc;
|
89 |
+
padding: 2px 5px;
|
90 |
+
margin: 0;
|
91 |
+
vertical-align: top;
|
92 |
+
font-size: 13px;
|
93 |
+
max-width: 230px;
|
94 |
+
}
|
95 |
+
|
96 |
+
#changelist #toolbar form #searchbar:focus {
|
97 |
+
border-color: #999;
|
98 |
+
}
|
99 |
+
|
100 |
+
#changelist #toolbar form input[type="submit"] {
|
101 |
+
border: 1px solid #ccc;
|
102 |
+
font-size: 13px;
|
103 |
+
padding: 4px 8px;
|
104 |
+
margin: 0;
|
105 |
+
vertical-align: middle;
|
106 |
+
background: #fff;
|
107 |
+
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
|
108 |
+
cursor: pointer;
|
109 |
+
color: #333;
|
110 |
+
}
|
111 |
+
|
112 |
+
#changelist #toolbar form input[type="submit"]:focus,
|
113 |
+
#changelist #toolbar form input[type="submit"]:hover {
|
114 |
+
border-color: #999;
|
115 |
+
}
|
116 |
+
|
117 |
+
#changelist #changelist-search img {
|
118 |
+
vertical-align: middle;
|
119 |
+
margin-right: 4px;
|
120 |
+
}
|
121 |
+
|
122 |
+
/* FILTER COLUMN */
|
123 |
+
|
124 |
+
#changelist-filter {
|
125 |
+
position: absolute;
|
126 |
+
top: 0;
|
127 |
+
right: 0;
|
128 |
+
z-index: 1000;
|
129 |
+
width: 240px;
|
130 |
+
background: #f8f8f8;
|
131 |
+
border-left: none;
|
132 |
+
margin: 0;
|
133 |
+
}
|
134 |
+
|
135 |
+
#changelist-filter h2 {
|
136 |
+
font-size: 14px;
|
137 |
+
text-transform: uppercase;
|
138 |
+
letter-spacing: 0.5px;
|
139 |
+
padding: 5px 15px;
|
140 |
+
margin-bottom: 12px;
|
141 |
+
border-bottom: none;
|
142 |
+
}
|
143 |
+
|
144 |
+
#changelist-filter h3 {
|
145 |
+
font-weight: 400;
|
146 |
+
font-size: 14px;
|
147 |
+
padding: 0 15px;
|
148 |
+
margin-bottom: 10px;
|
149 |
+
}
|
150 |
+
|
151 |
+
#changelist-filter ul {
|
152 |
+
margin: 5px 0;
|
153 |
+
padding: 0 15px 15px;
|
154 |
+
border-bottom: 1px solid #eaeaea;
|
155 |
+
}
|
156 |
+
|
157 |
+
#changelist-filter ul:last-child {
|
158 |
+
border-bottom: none;
|
159 |
+
}
|
160 |
+
|
161 |
+
#changelist-filter li {
|
162 |
+
list-style-type: none;
|
163 |
+
margin-left: 0;
|
164 |
+
padding-left: 0;
|
165 |
+
}
|
166 |
+
|
167 |
+
#changelist-filter a {
|
168 |
+
display: block;
|
169 |
+
color: #999;
|
170 |
+
text-overflow: ellipsis;
|
171 |
+
overflow-x: hidden;
|
172 |
+
}
|
173 |
+
|
174 |
+
#changelist-filter li.selected {
|
175 |
+
border-left: 5px solid #eaeaea;
|
176 |
+
padding-left: 10px;
|
177 |
+
margin-left: -15px;
|
178 |
+
}
|
179 |
+
|
180 |
+
#changelist-filter li.selected a {
|
181 |
+
color: #5b80b2;
|
182 |
+
}
|
183 |
+
|
184 |
+
#changelist-filter a:focus, #changelist-filter a:hover,
|
185 |
+
#changelist-filter li.selected a:focus,
|
186 |
+
#changelist-filter li.selected a:hover {
|
187 |
+
color: #036;
|
188 |
+
}
|
189 |
+
|
190 |
+
#changelist-filter #changelist-filter-clear a {
|
191 |
+
font-size: 13px;
|
192 |
+
padding-bottom: 10px;
|
193 |
+
border-bottom: 1px solid #eaeaea;
|
194 |
+
}
|
195 |
+
|
196 |
+
/* DATE DRILLDOWN */
|
197 |
+
|
198 |
+
.change-list ul.toplinks {
|
199 |
+
display: block;
|
200 |
+
float: left;
|
201 |
+
padding: 0;
|
202 |
+
margin: 0;
|
203 |
+
width: 100%;
|
204 |
+
}
|
205 |
+
|
206 |
+
.change-list ul.toplinks li {
|
207 |
+
padding: 3px 6px;
|
208 |
+
font-weight: bold;
|
209 |
+
list-style-type: none;
|
210 |
+
display: inline-block;
|
211 |
+
}
|
212 |
+
|
213 |
+
.change-list ul.toplinks .date-back a {
|
214 |
+
color: #999;
|
215 |
+
}
|
216 |
+
|
217 |
+
.change-list ul.toplinks .date-back a:focus,
|
218 |
+
.change-list ul.toplinks .date-back a:hover {
|
219 |
+
color: #036;
|
220 |
+
}
|
221 |
+
|
222 |
+
/* PAGINATOR */
|
223 |
+
|
224 |
+
.paginator {
|
225 |
+
font-size: 13px;
|
226 |
+
padding-top: 10px;
|
227 |
+
padding-bottom: 10px;
|
228 |
+
line-height: 22px;
|
229 |
+
margin: 0;
|
230 |
+
border-top: 1px solid #ddd;
|
231 |
+
}
|
232 |
+
|
233 |
+
.paginator a:link, .paginator a:visited {
|
234 |
+
padding: 2px 6px;
|
235 |
+
background: #79aec8;
|
236 |
+
text-decoration: none;
|
237 |
+
color: #fff;
|
238 |
+
}
|
239 |
+
|
240 |
+
.paginator a.showall {
|
241 |
+
border: none;
|
242 |
+
background: none;
|
243 |
+
color: #5b80b2;
|
244 |
+
}
|
245 |
+
|
246 |
+
.paginator a.showall:focus, .paginator a.showall:hover {
|
247 |
+
background: none;
|
248 |
+
color: #036;
|
249 |
+
}
|
250 |
+
|
251 |
+
.paginator .end {
|
252 |
+
margin-right: 6px;
|
253 |
+
}
|
254 |
+
|
255 |
+
.paginator .this-page {
|
256 |
+
padding: 2px 6px;
|
257 |
+
font-weight: bold;
|
258 |
+
font-size: 13px;
|
259 |
+
vertical-align: top;
|
260 |
+
}
|
261 |
+
|
262 |
+
.paginator a:focus, .paginator a:hover {
|
263 |
+
color: white;
|
264 |
+
background: #036;
|
265 |
+
}
|
266 |
+
|
267 |
+
/* ACTIONS */
|
268 |
+
|
269 |
+
.filtered .actions {
|
270 |
+
margin-right: 280px;
|
271 |
+
border-right: none;
|
272 |
+
}
|
273 |
+
|
274 |
+
#changelist table input {
|
275 |
+
margin: 0;
|
276 |
+
vertical-align: baseline;
|
277 |
+
}
|
278 |
+
|
279 |
+
#changelist table tbody tr.selected {
|
280 |
+
background-color: #FFFFCC;
|
281 |
+
}
|
282 |
+
|
283 |
+
#changelist .actions {
|
284 |
+
padding: 10px;
|
285 |
+
background: #fff;
|
286 |
+
border-top: none;
|
287 |
+
border-bottom: none;
|
288 |
+
line-height: 24px;
|
289 |
+
color: #999;
|
290 |
+
}
|
291 |
+
|
292 |
+
#changelist .actions.selected {
|
293 |
+
background: #fffccf;
|
294 |
+
border-top: 1px solid #fffee8;
|
295 |
+
border-bottom: 1px solid #edecd6;
|
296 |
+
}
|
297 |
+
|
298 |
+
#changelist .actions span.all,
|
299 |
+
#changelist .actions span.action-counter,
|
300 |
+
#changelist .actions span.clear,
|
301 |
+
#changelist .actions span.question {
|
302 |
+
font-size: 13px;
|
303 |
+
margin: 0 0.5em;
|
304 |
+
display: none;
|
305 |
+
}
|
306 |
+
|
307 |
+
#changelist .actions:last-child {
|
308 |
+
border-bottom: none;
|
309 |
+
}
|
310 |
+
|
311 |
+
#changelist .actions select {
|
312 |
+
vertical-align: top;
|
313 |
+
height: 24px;
|
314 |
+
background: none;
|
315 |
+
color: #000;
|
316 |
+
border: 1px solid #ccc;
|
317 |
+
border-radius: 4px;
|
318 |
+
font-size: 14px;
|
319 |
+
padding: 0 0 0 4px;
|
320 |
+
margin: 0;
|
321 |
+
margin-left: 10px;
|
322 |
+
}
|
323 |
+
|
324 |
+
#changelist .actions select:focus {
|
325 |
+
border-color: #999;
|
326 |
+
}
|
327 |
+
|
328 |
+
#changelist .actions label {
|
329 |
+
display: inline-block;
|
330 |
+
vertical-align: middle;
|
331 |
+
font-size: 13px;
|
332 |
+
}
|
333 |
+
|
334 |
+
#changelist .actions .button {
|
335 |
+
font-size: 13px;
|
336 |
+
border: 1px solid #ccc;
|
337 |
+
border-radius: 4px;
|
338 |
+
background: #fff;
|
339 |
+
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset;
|
340 |
+
cursor: pointer;
|
341 |
+
height: 24px;
|
342 |
+
line-height: 1;
|
343 |
+
padding: 4px 8px;
|
344 |
+
margin: 0;
|
345 |
+
color: #333;
|
346 |
+
}
|
347 |
+
|
348 |
+
#changelist .actions .button:focus, #changelist .actions .button:hover {
|
349 |
+
border-color: #999;
|
350 |
+
}
|
_static/admin/css/dashboard.css
ADDED
@@ -0,0 +1,26 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* DASHBOARD */
|
2 |
+
|
3 |
+
.dashboard .module table th {
|
4 |
+
width: 100%;
|
5 |
+
}
|
6 |
+
|
7 |
+
.dashboard .module table td {
|
8 |
+
white-space: nowrap;
|
9 |
+
}
|
10 |
+
|
11 |
+
.dashboard .module table td a {
|
12 |
+
display: block;
|
13 |
+
padding-right: .6em;
|
14 |
+
}
|
15 |
+
|
16 |
+
/* RECENT ACTIONS MODULE */
|
17 |
+
|
18 |
+
.module ul.actionlist {
|
19 |
+
margin-left: 0;
|
20 |
+
}
|
21 |
+
|
22 |
+
ul.actionlist li {
|
23 |
+
list-style-type: none;
|
24 |
+
overflow: hidden;
|
25 |
+
text-overflow: ellipsis;
|
26 |
+
}
|
_static/admin/css/fonts.css
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@font-face {
|
2 |
+
font-family: 'Roboto';
|
3 |
+
src: url('../fonts/Roboto-Bold-webfont.woff');
|
4 |
+
font-weight: 700;
|
5 |
+
font-style: normal;
|
6 |
+
}
|
7 |
+
|
8 |
+
@font-face {
|
9 |
+
font-family: 'Roboto';
|
10 |
+
src: url('../fonts/Roboto-Regular-webfont.woff');
|
11 |
+
font-weight: 400;
|
12 |
+
font-style: normal;
|
13 |
+
}
|
14 |
+
|
15 |
+
@font-face {
|
16 |
+
font-family: 'Roboto';
|
17 |
+
src: url('../fonts/Roboto-Light-webfont.woff');
|
18 |
+
font-weight: 300;
|
19 |
+
font-style: normal;
|
20 |
+
}
|
_static/admin/css/forms.css
ADDED
@@ -0,0 +1,526 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@import url('widgets.css');
|
2 |
+
|
3 |
+
/* FORM ROWS */
|
4 |
+
|
5 |
+
.form-row {
|
6 |
+
overflow: hidden;
|
7 |
+
padding: 10px;
|
8 |
+
font-size: 13px;
|
9 |
+
border-bottom: 1px solid #eee;
|
10 |
+
}
|
11 |
+
|
12 |
+
.form-row img, .form-row input {
|
13 |
+
vertical-align: middle;
|
14 |
+
}
|
15 |
+
|
16 |
+
.form-row label input[type="checkbox"] {
|
17 |
+
margin-top: 0;
|
18 |
+
vertical-align: 0;
|
19 |
+
}
|
20 |
+
|
21 |
+
form .form-row p {
|
22 |
+
padding-left: 0;
|
23 |
+
}
|
24 |
+
|
25 |
+
.hidden {
|
26 |
+
display: none;
|
27 |
+
}
|
28 |
+
|
29 |
+
/* FORM LABELS */
|
30 |
+
|
31 |
+
label {
|
32 |
+
font-weight: normal;
|
33 |
+
color: #666;
|
34 |
+
font-size: 13px;
|
35 |
+
}
|
36 |
+
|
37 |
+
.required label, label.required {
|
38 |
+
font-weight: bold;
|
39 |
+
color: #333;
|
40 |
+
}
|
41 |
+
|
42 |
+
/* RADIO BUTTONS */
|
43 |
+
|
44 |
+
form ul.radiolist li {
|
45 |
+
list-style-type: none;
|
46 |
+
}
|
47 |
+
|
48 |
+
form ul.radiolist label {
|
49 |
+
float: none;
|
50 |
+
display: inline;
|
51 |
+
}
|
52 |
+
|
53 |
+
form ul.radiolist input[type="radio"] {
|
54 |
+
margin: -2px 4px 0 0;
|
55 |
+
padding: 0;
|
56 |
+
}
|
57 |
+
|
58 |
+
form ul.inline {
|
59 |
+
margin-left: 0;
|
60 |
+
padding: 0;
|
61 |
+
}
|
62 |
+
|
63 |
+
form ul.inline li {
|
64 |
+
float: left;
|
65 |
+
padding-right: 7px;
|
66 |
+
}
|
67 |
+
|
68 |
+
/* ALIGNED FIELDSETS */
|
69 |
+
|
70 |
+
.aligned label {
|
71 |
+
display: block;
|
72 |
+
padding: 4px 10px 0 0;
|
73 |
+
float: left;
|
74 |
+
width: 160px;
|
75 |
+
word-wrap: break-word;
|
76 |
+
line-height: 1;
|
77 |
+
}
|
78 |
+
|
79 |
+
.aligned label:not(.vCheckboxLabel):after {
|
80 |
+
content: '';
|
81 |
+
display: inline-block;
|
82 |
+
vertical-align: middle;
|
83 |
+
height: 26px;
|
84 |
+
}
|
85 |
+
|
86 |
+
.aligned label + p, .aligned label + div.help, .aligned label + div.readonly {
|
87 |
+
padding: 6px 0;
|
88 |
+
margin-top: 0;
|
89 |
+
margin-bottom: 0;
|
90 |
+
margin-left: 170px;
|
91 |
+
}
|
92 |
+
|
93 |
+
.aligned ul label {
|
94 |
+
display: inline;
|
95 |
+
float: none;
|
96 |
+
width: auto;
|
97 |
+
}
|
98 |
+
|
99 |
+
.aligned .form-row input {
|
100 |
+
margin-bottom: 0;
|
101 |
+
}
|
102 |
+
|
103 |
+
.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField {
|
104 |
+
width: 350px;
|
105 |
+
}
|
106 |
+
|
107 |
+
form .aligned ul {
|
108 |
+
margin-left: 160px;
|
109 |
+
padding-left: 10px;
|
110 |
+
}
|
111 |
+
|
112 |
+
form .aligned ul.radiolist {
|
113 |
+
display: inline-block;
|
114 |
+
margin: 0;
|
115 |
+
padding: 0;
|
116 |
+
}
|
117 |
+
|
118 |
+
form .aligned p.help,
|
119 |
+
form .aligned div.help {
|
120 |
+
clear: left;
|
121 |
+
margin-top: 0;
|
122 |
+
margin-left: 160px;
|
123 |
+
padding-left: 10px;
|
124 |
+
}
|
125 |
+
|
126 |
+
form .aligned label + p.help,
|
127 |
+
form .aligned label + div.help {
|
128 |
+
margin-left: 0;
|
129 |
+
padding-left: 0;
|
130 |
+
}
|
131 |
+
|
132 |
+
form .aligned p.help:last-child,
|
133 |
+
form .aligned div.help:last-child {
|
134 |
+
margin-bottom: 0;
|
135 |
+
padding-bottom: 0;
|
136 |
+
}
|
137 |
+
|
138 |
+
form .aligned input + p.help,
|
139 |
+
form .aligned textarea + p.help,
|
140 |
+
form .aligned select + p.help,
|
141 |
+
form .aligned input + div.help,
|
142 |
+
form .aligned textarea + div.help,
|
143 |
+
form .aligned select + div.help {
|
144 |
+
margin-left: 160px;
|
145 |
+
padding-left: 10px;
|
146 |
+
}
|
147 |
+
|
148 |
+
form .aligned ul li {
|
149 |
+
list-style: none;
|
150 |
+
}
|
151 |
+
|
152 |
+
form .aligned table p {
|
153 |
+
margin-left: 0;
|
154 |
+
padding-left: 0;
|
155 |
+
}
|
156 |
+
|
157 |
+
.aligned .vCheckboxLabel {
|
158 |
+
float: none;
|
159 |
+
width: auto;
|
160 |
+
display: inline-block;
|
161 |
+
vertical-align: -3px;
|
162 |
+
padding: 0 0 5px 5px;
|
163 |
+
}
|
164 |
+
|
165 |
+
.aligned .vCheckboxLabel + p.help,
|
166 |
+
.aligned .vCheckboxLabel + div.help {
|
167 |
+
margin-top: -4px;
|
168 |
+
}
|
169 |
+
|
170 |
+
.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField {
|
171 |
+
width: 610px;
|
172 |
+
}
|
173 |
+
|
174 |
+
.checkbox-row p.help,
|
175 |
+
.checkbox-row div.help {
|
176 |
+
margin-left: 0;
|
177 |
+
padding-left: 0;
|
178 |
+
}
|
179 |
+
|
180 |
+
fieldset .fieldBox {
|
181 |
+
float: left;
|
182 |
+
margin-right: 20px;
|
183 |
+
}
|
184 |
+
|
185 |
+
/* WIDE FIELDSETS */
|
186 |
+
|
187 |
+
.wide label {
|
188 |
+
width: 200px;
|
189 |
+
}
|
190 |
+
|
191 |
+
form .wide p,
|
192 |
+
form .wide input + p.help,
|
193 |
+
form .wide input + div.help {
|
194 |
+
margin-left: 200px;
|
195 |
+
}
|
196 |
+
|
197 |
+
form .wide p.help,
|
198 |
+
form .wide div.help {
|
199 |
+
padding-left: 38px;
|
200 |
+
}
|
201 |
+
|
202 |
+
form div.help ul {
|
203 |
+
padding-left: 0;
|
204 |
+
margin-left: 0;
|
205 |
+
}
|
206 |
+
|
207 |
+
.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField {
|
208 |
+
width: 450px;
|
209 |
+
}
|
210 |
+
|
211 |
+
/* COLLAPSED FIELDSETS */
|
212 |
+
|
213 |
+
fieldset.collapsed * {
|
214 |
+
display: none;
|
215 |
+
}
|
216 |
+
|
217 |
+
fieldset.collapsed h2, fieldset.collapsed {
|
218 |
+
display: block;
|
219 |
+
}
|
220 |
+
|
221 |
+
fieldset.collapsed {
|
222 |
+
border: 1px solid #eee;
|
223 |
+
border-radius: 4px;
|
224 |
+
overflow: hidden;
|
225 |
+
}
|
226 |
+
|
227 |
+
fieldset.collapsed h2 {
|
228 |
+
background: #f8f8f8;
|
229 |
+
color: #666;
|
230 |
+
}
|
231 |
+
|
232 |
+
fieldset .collapse-toggle {
|
233 |
+
color: #fff;
|
234 |
+
}
|
235 |
+
|
236 |
+
fieldset.collapsed .collapse-toggle {
|
237 |
+
background: transparent;
|
238 |
+
display: inline;
|
239 |
+
color: #447e9b;
|
240 |
+
}
|
241 |
+
|
242 |
+
/* MONOSPACE TEXTAREAS */
|
243 |
+
|
244 |
+
fieldset.monospace textarea {
|
245 |
+
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace;
|
246 |
+
}
|
247 |
+
|
248 |
+
/* SUBMIT ROW */
|
249 |
+
|
250 |
+
.submit-row {
|
251 |
+
padding: 12px 14px;
|
252 |
+
margin: 0 0 20px;
|
253 |
+
background: #f8f8f8;
|
254 |
+
border: 1px solid #eee;
|
255 |
+
border-radius: 4px;
|
256 |
+
text-align: right;
|
257 |
+
overflow: hidden;
|
258 |
+
}
|
259 |
+
|
260 |
+
body.popup .submit-row {
|
261 |
+
overflow: auto;
|
262 |
+
}
|
263 |
+
|
264 |
+
.submit-row input {
|
265 |
+
height: 35px;
|
266 |
+
line-height: 15px;
|
267 |
+
margin: 0 0 0 5px;
|
268 |
+
}
|
269 |
+
|
270 |
+
.submit-row input.default {
|
271 |
+
margin: 0 0 0 8px;
|
272 |
+
text-transform: uppercase;
|
273 |
+
}
|
274 |
+
|
275 |
+
.submit-row p {
|
276 |
+
margin: 0.3em;
|
277 |
+
}
|
278 |
+
|
279 |
+
.submit-row p.deletelink-box {
|
280 |
+
float: left;
|
281 |
+
margin: 0;
|
282 |
+
}
|
283 |
+
|
284 |
+
.submit-row a.deletelink {
|
285 |
+
display: block;
|
286 |
+
background: #ba2121;
|
287 |
+
border-radius: 4px;
|
288 |
+
padding: 10px 15px;
|
289 |
+
height: 15px;
|
290 |
+
line-height: 15px;
|
291 |
+
color: #fff;
|
292 |
+
}
|
293 |
+
|
294 |
+
.submit-row a.closelink {
|
295 |
+
display: inline-block;
|
296 |
+
background: #bbbbbb;
|
297 |
+
border-radius: 4px;
|
298 |
+
padding: 10px 15px;
|
299 |
+
height: 15px;
|
300 |
+
line-height: 15px;
|
301 |
+
margin: 0 0 0 5px;
|
302 |
+
color: #fff;
|
303 |
+
}
|
304 |
+
|
305 |
+
.submit-row a.deletelink:focus,
|
306 |
+
.submit-row a.deletelink:hover,
|
307 |
+
.submit-row a.deletelink:active {
|
308 |
+
background: #a41515;
|
309 |
+
}
|
310 |
+
|
311 |
+
.submit-row a.closelink:focus,
|
312 |
+
.submit-row a.closelink:hover,
|
313 |
+
.submit-row a.closelink:active {
|
314 |
+
background: #aaaaaa;
|
315 |
+
}
|
316 |
+
|
317 |
+
/* CUSTOM FORM FIELDS */
|
318 |
+
|
319 |
+
.vSelectMultipleField {
|
320 |
+
vertical-align: top;
|
321 |
+
}
|
322 |
+
|
323 |
+
.vCheckboxField {
|
324 |
+
border: none;
|
325 |
+
}
|
326 |
+
|
327 |
+
.vDateField, .vTimeField {
|
328 |
+
margin-right: 2px;
|
329 |
+
margin-bottom: 4px;
|
330 |
+
}
|
331 |
+
|
332 |
+
.vDateField {
|
333 |
+
min-width: 6.85em;
|
334 |
+
}
|
335 |
+
|
336 |
+
.vTimeField {
|
337 |
+
min-width: 4.7em;
|
338 |
+
}
|
339 |
+
|
340 |
+
.vURLField {
|
341 |
+
width: 30em;
|
342 |
+
}
|
343 |
+
|
344 |
+
.vLargeTextField, .vXMLLargeTextField {
|
345 |
+
width: 48em;
|
346 |
+
}
|
347 |
+
|
348 |
+
.flatpages-flatpage #id_content {
|
349 |
+
height: 40.2em;
|
350 |
+
}
|
351 |
+
|
352 |
+
.module table .vPositiveSmallIntegerField {
|
353 |
+
width: 2.2em;
|
354 |
+
}
|
355 |
+
|
356 |
+
.vTextField, .vUUIDField {
|
357 |
+
width: 20em;
|
358 |
+
}
|
359 |
+
|
360 |
+
.vIntegerField {
|
361 |
+
width: 5em;
|
362 |
+
}
|
363 |
+
|
364 |
+
.vBigIntegerField {
|
365 |
+
width: 10em;
|
366 |
+
}
|
367 |
+
|
368 |
+
.vForeignKeyRawIdAdminField {
|
369 |
+
width: 5em;
|
370 |
+
}
|
371 |
+
|
372 |
+
/* INLINES */
|
373 |
+
|
374 |
+
.inline-group {
|
375 |
+
padding: 0;
|
376 |
+
margin: 0 0 30px;
|
377 |
+
}
|
378 |
+
|
379 |
+
.inline-group thead th {
|
380 |
+
padding: 8px 10px;
|
381 |
+
}
|
382 |
+
|
383 |
+
.inline-group .aligned label {
|
384 |
+
width: 160px;
|
385 |
+
}
|
386 |
+
|
387 |
+
.inline-related {
|
388 |
+
position: relative;
|
389 |
+
}
|
390 |
+
|
391 |
+
.inline-related h3 {
|
392 |
+
margin: 0;
|
393 |
+
color: #666;
|
394 |
+
padding: 5px;
|
395 |
+
font-size: 13px;
|
396 |
+
background: #f8f8f8;
|
397 |
+
border-top: 1px solid #eee;
|
398 |
+
border-bottom: 1px solid #eee;
|
399 |
+
}
|
400 |
+
|
401 |
+
.inline-related h3 span.delete {
|
402 |
+
float: right;
|
403 |
+
}
|
404 |
+
|
405 |
+
.inline-related h3 span.delete label {
|
406 |
+
margin-left: 2px;
|
407 |
+
font-size: 11px;
|
408 |
+
}
|
409 |
+
|
410 |
+
.inline-related fieldset {
|
411 |
+
margin: 0;
|
412 |
+
background: #fff;
|
413 |
+
border: none;
|
414 |
+
width: 100%;
|
415 |
+
}
|
416 |
+
|
417 |
+
.inline-related fieldset.module h3 {
|
418 |
+
margin: 0;
|
419 |
+
padding: 2px 5px 3px 5px;
|
420 |
+
font-size: 11px;
|
421 |
+
text-align: left;
|
422 |
+
font-weight: bold;
|
423 |
+
background: #bcd;
|
424 |
+
color: #fff;
|
425 |
+
}
|
426 |
+
|
427 |
+
.inline-group .tabular fieldset.module {
|
428 |
+
border: none;
|
429 |
+
}
|
430 |
+
|
431 |
+
.inline-related.tabular fieldset.module table {
|
432 |
+
width: 100%;
|
433 |
+
}
|
434 |
+
|
435 |
+
.last-related fieldset {
|
436 |
+
border: none;
|
437 |
+
}
|
438 |
+
|
439 |
+
.inline-group .tabular tr.has_original td {
|
440 |
+
padding-top: 2em;
|
441 |
+
}
|
442 |
+
|
443 |
+
.inline-group .tabular tr td.original {
|
444 |
+
padding: 2px 0 0 0;
|
445 |
+
width: 0;
|
446 |
+
_position: relative;
|
447 |
+
}
|
448 |
+
|
449 |
+
.inline-group .tabular th.original {
|
450 |
+
width: 0px;
|
451 |
+
padding: 0;
|
452 |
+
}
|
453 |
+
|
454 |
+
.inline-group .tabular td.original p {
|
455 |
+
position: absolute;
|
456 |
+
left: 0;
|
457 |
+
height: 1.1em;
|
458 |
+
padding: 2px 9px;
|
459 |
+
overflow: hidden;
|
460 |
+
font-size: 9px;
|
461 |
+
font-weight: bold;
|
462 |
+
color: #666;
|
463 |
+
_width: 700px;
|
464 |
+
}
|
465 |
+
|
466 |
+
.inline-group ul.tools {
|
467 |
+
padding: 0;
|
468 |
+
margin: 0;
|
469 |
+
list-style: none;
|
470 |
+
}
|
471 |
+
|
472 |
+
.inline-group ul.tools li {
|
473 |
+
display: inline;
|
474 |
+
padding: 0 5px;
|
475 |
+
}
|
476 |
+
|
477 |
+
.inline-group div.add-row,
|
478 |
+
.inline-group .tabular tr.add-row td {
|
479 |
+
color: #666;
|
480 |
+
background: #f8f8f8;
|
481 |
+
padding: 8px 10px;
|
482 |
+
border-bottom: 1px solid #eee;
|
483 |
+
}
|
484 |
+
|
485 |
+
.inline-group .tabular tr.add-row td {
|
486 |
+
padding: 8px 10px;
|
487 |
+
border-bottom: 1px solid #eee;
|
488 |
+
}
|
489 |
+
|
490 |
+
.inline-group ul.tools a.add,
|
491 |
+
.inline-group div.add-row a,
|
492 |
+
.inline-group .tabular tr.add-row td a {
|
493 |
+
background: url(../img/icon-addlink.svg) 0 1px no-repeat;
|
494 |
+
padding-left: 16px;
|
495 |
+
font-size: 12px;
|
496 |
+
}
|
497 |
+
|
498 |
+
.empty-form {
|
499 |
+
display: none;
|
500 |
+
}
|
501 |
+
|
502 |
+
/* RELATED FIELD ADD ONE / LOOKUP */
|
503 |
+
|
504 |
+
.related-lookup {
|
505 |
+
margin-left: 5px;
|
506 |
+
display: inline-block;
|
507 |
+
vertical-align: middle;
|
508 |
+
background-repeat: no-repeat;
|
509 |
+
background-size: 14px;
|
510 |
+
}
|
511 |
+
|
512 |
+
.related-lookup {
|
513 |
+
width: 16px;
|
514 |
+
height: 16px;
|
515 |
+
background-image: url(../img/search.svg);
|
516 |
+
}
|
517 |
+
|
518 |
+
form .related-widget-wrapper ul {
|
519 |
+
display: inline-block;
|
520 |
+
margin-left: 0;
|
521 |
+
padding-left: 0;
|
522 |
+
}
|
523 |
+
|
524 |
+
.clearable-file-input input {
|
525 |
+
margin-top: 0;
|
526 |
+
}
|
_static/admin/css/login.css
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* LOGIN FORM */
|
2 |
+
|
3 |
+
.login {
|
4 |
+
background: #f8f8f8;
|
5 |
+
height: auto;
|
6 |
+
}
|
7 |
+
|
8 |
+
.login #header {
|
9 |
+
height: auto;
|
10 |
+
padding: 15px 16px;
|
11 |
+
justify-content: center;
|
12 |
+
}
|
13 |
+
|
14 |
+
.login #header h1 {
|
15 |
+
font-size: 18px;
|
16 |
+
}
|
17 |
+
|
18 |
+
.login #header h1 a {
|
19 |
+
color: #fff;
|
20 |
+
}
|
21 |
+
|
22 |
+
.login #content {
|
23 |
+
padding: 20px 20px 0;
|
24 |
+
}
|
25 |
+
|
26 |
+
.login #container {
|
27 |
+
background: #fff;
|
28 |
+
border: 1px solid #eaeaea;
|
29 |
+
border-radius: 4px;
|
30 |
+
overflow: hidden;
|
31 |
+
width: 28em;
|
32 |
+
min-width: 300px;
|
33 |
+
margin: 100px auto;
|
34 |
+
height: auto;
|
35 |
+
}
|
36 |
+
|
37 |
+
.login #content-main {
|
38 |
+
width: 100%;
|
39 |
+
}
|
40 |
+
|
41 |
+
.login .form-row {
|
42 |
+
padding: 4px 0;
|
43 |
+
float: left;
|
44 |
+
width: 100%;
|
45 |
+
border-bottom: none;
|
46 |
+
}
|
47 |
+
|
48 |
+
.login .form-row label {
|
49 |
+
padding-right: 0.5em;
|
50 |
+
line-height: 2em;
|
51 |
+
font-size: 1em;
|
52 |
+
clear: both;
|
53 |
+
color: #333;
|
54 |
+
}
|
55 |
+
|
56 |
+
.login .form-row #id_username, .login .form-row #id_password {
|
57 |
+
clear: both;
|
58 |
+
padding: 8px;
|
59 |
+
width: 100%;
|
60 |
+
box-sizing: border-box;
|
61 |
+
}
|
62 |
+
|
63 |
+
.login span.help {
|
64 |
+
font-size: 10px;
|
65 |
+
display: block;
|
66 |
+
}
|
67 |
+
|
68 |
+
.login .submit-row {
|
69 |
+
clear: both;
|
70 |
+
padding: 1em 0 0 9.4em;
|
71 |
+
margin: 0;
|
72 |
+
border: none;
|
73 |
+
background: none;
|
74 |
+
text-align: left;
|
75 |
+
}
|
76 |
+
|
77 |
+
.login .password-reset-link {
|
78 |
+
text-align: center;
|
79 |
+
}
|
_static/admin/css/nav_sidebar.css
ADDED
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.sticky {
|
2 |
+
position: sticky;
|
3 |
+
top: 0;
|
4 |
+
max-height: 100vh;
|
5 |
+
}
|
6 |
+
|
7 |
+
.toggle-nav-sidebar {
|
8 |
+
z-index: 20;
|
9 |
+
left: 0;
|
10 |
+
display: flex;
|
11 |
+
align-items: center;
|
12 |
+
justify-content: center;
|
13 |
+
flex: 0 0 23px;
|
14 |
+
width: 23px;
|
15 |
+
border-right: 1px solid #eaeaea;
|
16 |
+
background-color: #ffffff;
|
17 |
+
cursor: pointer;
|
18 |
+
font-size: 20px;
|
19 |
+
color: #447e9b;
|
20 |
+
padding: 0;
|
21 |
+
}
|
22 |
+
|
23 |
+
[dir="rtl"] .toggle-nav-sidebar {
|
24 |
+
border-left: 1px solid #eaeaea;
|
25 |
+
border-right: 0;
|
26 |
+
}
|
27 |
+
|
28 |
+
.toggle-nav-sidebar:hover,
|
29 |
+
.toggle-nav-sidebar:focus {
|
30 |
+
background-color: #f6f6f6;
|
31 |
+
}
|
32 |
+
|
33 |
+
#nav-sidebar {
|
34 |
+
z-index: 15;
|
35 |
+
flex: 0 0 275px;
|
36 |
+
left: -276px;
|
37 |
+
margin-left: -276px;
|
38 |
+
border-top: 1px solid transparent;
|
39 |
+
border-right: 1px solid #eaeaea;
|
40 |
+
background-color: #ffffff;
|
41 |
+
overflow: auto;
|
42 |
+
}
|
43 |
+
|
44 |
+
[dir="rtl"] #nav-sidebar {
|
45 |
+
border-left: 1px solid #eaeaea;
|
46 |
+
border-right: 0;
|
47 |
+
left: 0;
|
48 |
+
margin-left: 0;
|
49 |
+
right: -276px;
|
50 |
+
margin-right: -276px;
|
51 |
+
}
|
52 |
+
|
53 |
+
.toggle-nav-sidebar::before {
|
54 |
+
content: '\00BB';
|
55 |
+
}
|
56 |
+
|
57 |
+
.main.shifted .toggle-nav-sidebar::before {
|
58 |
+
content: '\00AB';
|
59 |
+
}
|
60 |
+
|
61 |
+
.main.shifted > #nav-sidebar {
|
62 |
+
left: 24px;
|
63 |
+
margin-left: 0;
|
64 |
+
}
|
65 |
+
|
66 |
+
[dir="rtl"] .main.shifted > #nav-sidebar {
|
67 |
+
left: 0;
|
68 |
+
right: 24px;
|
69 |
+
margin-right: 0;
|
70 |
+
}
|
71 |
+
|
72 |
+
#nav-sidebar .module th {
|
73 |
+
width: 100%;
|
74 |
+
overflow-wrap: anywhere;
|
75 |
+
}
|
76 |
+
|
77 |
+
#nav-sidebar .module th,
|
78 |
+
#nav-sidebar .module caption {
|
79 |
+
padding-left: 16px;
|
80 |
+
}
|
81 |
+
|
82 |
+
#nav-sidebar .module td {
|
83 |
+
white-space: nowrap;
|
84 |
+
}
|
85 |
+
|
86 |
+
[dir="rtl"] #nav-sidebar .module th,
|
87 |
+
[dir="rtl"] #nav-sidebar .module caption {
|
88 |
+
padding-left: 8px;
|
89 |
+
padding-right: 16px;
|
90 |
+
}
|
91 |
+
|
92 |
+
#nav-sidebar .current-app .section:link,
|
93 |
+
#nav-sidebar .current-app .section:visited {
|
94 |
+
color: #ffc;
|
95 |
+
font-weight: bold;
|
96 |
+
}
|
97 |
+
|
98 |
+
#nav-sidebar .current-model {
|
99 |
+
background: #ffc;
|
100 |
+
}
|
101 |
+
|
102 |
+
@media (max-width: 767px) {
|
103 |
+
#nav-sidebar, #toggle-nav-sidebar {
|
104 |
+
display: none;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
.change-list .main > #nav-sidebar+.content {
|
109 |
+
overflow: hidden;
|
110 |
+
}
|
_static/admin/css/responsive.css
ADDED
@@ -0,0 +1,1016 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* Tablets */
|
2 |
+
|
3 |
+
input[type="submit"], button {
|
4 |
+
-webkit-appearance: none;
|
5 |
+
appearance: none;
|
6 |
+
}
|
7 |
+
|
8 |
+
@media (max-width: 1024px) {
|
9 |
+
/* Basic */
|
10 |
+
|
11 |
+
html {
|
12 |
+
-webkit-text-size-adjust: 100%;
|
13 |
+
}
|
14 |
+
|
15 |
+
td, th {
|
16 |
+
padding: 10px;
|
17 |
+
font-size: 14px;
|
18 |
+
}
|
19 |
+
|
20 |
+
.small {
|
21 |
+
font-size: 12px;
|
22 |
+
}
|
23 |
+
|
24 |
+
/* Layout */
|
25 |
+
|
26 |
+
#container {
|
27 |
+
min-width: 0;
|
28 |
+
}
|
29 |
+
|
30 |
+
#content {
|
31 |
+
padding: 20px 30px 30px;
|
32 |
+
}
|
33 |
+
|
34 |
+
div.breadcrumbs {
|
35 |
+
padding: 10px 30px;
|
36 |
+
}
|
37 |
+
|
38 |
+
/* Header */
|
39 |
+
|
40 |
+
#header {
|
41 |
+
flex-direction: column;
|
42 |
+
padding: 15px 30px;
|
43 |
+
justify-content: flex-start;
|
44 |
+
}
|
45 |
+
|
46 |
+
#branding h1 {
|
47 |
+
margin: 0 0 8px;
|
48 |
+
font-size: 20px;
|
49 |
+
line-height: 1.2;
|
50 |
+
}
|
51 |
+
|
52 |
+
#user-tools {
|
53 |
+
margin: 0;
|
54 |
+
font-weight: 400;
|
55 |
+
line-height: 1.85;
|
56 |
+
text-align: left;
|
57 |
+
}
|
58 |
+
|
59 |
+
#user-tools a {
|
60 |
+
display: inline-block;
|
61 |
+
line-height: 1.4;
|
62 |
+
}
|
63 |
+
|
64 |
+
/* Dashboard */
|
65 |
+
|
66 |
+
.dashboard #content {
|
67 |
+
width: auto;
|
68 |
+
}
|
69 |
+
|
70 |
+
#content-related {
|
71 |
+
margin-right: -290px;
|
72 |
+
}
|
73 |
+
|
74 |
+
.colSM #content-related {
|
75 |
+
margin-left: -290px;
|
76 |
+
}
|
77 |
+
|
78 |
+
.colMS {
|
79 |
+
margin-right: 290px;
|
80 |
+
}
|
81 |
+
|
82 |
+
.colSM {
|
83 |
+
margin-left: 290px;
|
84 |
+
}
|
85 |
+
|
86 |
+
.dashboard .module table td a {
|
87 |
+
padding-right: 0;
|
88 |
+
}
|
89 |
+
|
90 |
+
td .changelink, td .addlink {
|
91 |
+
font-size: 13px;
|
92 |
+
}
|
93 |
+
|
94 |
+
/* Changelist */
|
95 |
+
|
96 |
+
#changelist #toolbar {
|
97 |
+
border: none;
|
98 |
+
padding: 15px;
|
99 |
+
}
|
100 |
+
|
101 |
+
#changelist-search > div {
|
102 |
+
display: flex;
|
103 |
+
flex-wrap: wrap;
|
104 |
+
max-width: 480px;
|
105 |
+
}
|
106 |
+
|
107 |
+
#changelist-search label {
|
108 |
+
line-height: 22px;
|
109 |
+
}
|
110 |
+
|
111 |
+
#changelist #toolbar form #searchbar {
|
112 |
+
flex: 1 0 auto;
|
113 |
+
width: 0;
|
114 |
+
height: 22px;
|
115 |
+
margin: 0 10px 0 6px;
|
116 |
+
}
|
117 |
+
|
118 |
+
#changelist-search .quiet {
|
119 |
+
width: 100%;
|
120 |
+
margin: 5px 0 0 25px;
|
121 |
+
}
|
122 |
+
|
123 |
+
#changelist .actions {
|
124 |
+
display: flex;
|
125 |
+
flex-wrap: wrap;
|
126 |
+
padding: 15px 0;
|
127 |
+
}
|
128 |
+
|
129 |
+
#changelist .actions.selected {
|
130 |
+
border: none;
|
131 |
+
}
|
132 |
+
|
133 |
+
#changelist .actions label {
|
134 |
+
display: flex;
|
135 |
+
}
|
136 |
+
|
137 |
+
#changelist .actions select {
|
138 |
+
background: #fff;
|
139 |
+
}
|
140 |
+
|
141 |
+
#changelist .actions .button {
|
142 |
+
min-width: 48px;
|
143 |
+
margin: 0 10px;
|
144 |
+
}
|
145 |
+
|
146 |
+
#changelist .actions span.all,
|
147 |
+
#changelist .actions span.clear,
|
148 |
+
#changelist .actions span.question,
|
149 |
+
#changelist .actions span.action-counter {
|
150 |
+
font-size: 11px;
|
151 |
+
margin: 0 10px 0 0;
|
152 |
+
}
|
153 |
+
|
154 |
+
#changelist-filter {
|
155 |
+
width: 200px;
|
156 |
+
}
|
157 |
+
|
158 |
+
.change-list .filtered .results,
|
159 |
+
.change-list .filtered .paginator,
|
160 |
+
.filtered #toolbar,
|
161 |
+
.filtered .actions,
|
162 |
+
.filtered div.xfull {
|
163 |
+
margin-right: 230px;
|
164 |
+
}
|
165 |
+
|
166 |
+
#changelist .paginator {
|
167 |
+
border-top-color: #eee;
|
168 |
+
}
|
169 |
+
|
170 |
+
#changelist .results + .paginator {
|
171 |
+
border-top: none;
|
172 |
+
}
|
173 |
+
|
174 |
+
/* Forms */
|
175 |
+
|
176 |
+
label {
|
177 |
+
font-size: 14px;
|
178 |
+
}
|
179 |
+
|
180 |
+
.form-row input[type=text],
|
181 |
+
.form-row input[type=password],
|
182 |
+
.form-row input[type=email],
|
183 |
+
.form-row input[type=url],
|
184 |
+
.form-row input[type=tel],
|
185 |
+
.form-row input[type=number],
|
186 |
+
.form-row textarea,
|
187 |
+
.form-row select,
|
188 |
+
.form-row .vTextField {
|
189 |
+
box-sizing: border-box;
|
190 |
+
margin: 0;
|
191 |
+
padding: 6px 8px;
|
192 |
+
min-height: 36px;
|
193 |
+
font-size: 14px;
|
194 |
+
}
|
195 |
+
|
196 |
+
.form-row select {
|
197 |
+
height: 36px;
|
198 |
+
}
|
199 |
+
|
200 |
+
.form-row select[multiple] {
|
201 |
+
height: auto;
|
202 |
+
min-height: 0;
|
203 |
+
}
|
204 |
+
|
205 |
+
fieldset .fieldBox {
|
206 |
+
float: none;
|
207 |
+
margin: 0 -10px;
|
208 |
+
padding: 0 10px;
|
209 |
+
}
|
210 |
+
|
211 |
+
fieldset .fieldBox + .fieldBox {
|
212 |
+
margin-top: 10px;
|
213 |
+
padding-top: 10px;
|
214 |
+
border-top: 1px solid #eee;
|
215 |
+
}
|
216 |
+
|
217 |
+
textarea {
|
218 |
+
max-width: 518px;
|
219 |
+
max-height: 120px;
|
220 |
+
}
|
221 |
+
|
222 |
+
.aligned label {
|
223 |
+
padding-top: 6px;
|
224 |
+
}
|
225 |
+
|
226 |
+
.aligned .related-lookup,
|
227 |
+
.aligned .datetimeshortcuts,
|
228 |
+
.aligned .related-lookup + strong {
|
229 |
+
align-self: center;
|
230 |
+
margin-left: 15px;
|
231 |
+
}
|
232 |
+
|
233 |
+
form .aligned ul.radiolist {
|
234 |
+
margin-left: 2px;
|
235 |
+
}
|
236 |
+
|
237 |
+
/* Related widget */
|
238 |
+
|
239 |
+
.related-widget-wrapper {
|
240 |
+
float: none;
|
241 |
+
}
|
242 |
+
|
243 |
+
.related-widget-wrapper-link + .selector {
|
244 |
+
max-width: calc(100% - 30px);
|
245 |
+
margin-right: 15px;
|
246 |
+
}
|
247 |
+
|
248 |
+
select + .related-widget-wrapper-link,
|
249 |
+
.related-widget-wrapper-link + .related-widget-wrapper-link {
|
250 |
+
margin-left: 10px;
|
251 |
+
}
|
252 |
+
|
253 |
+
/* Selector */
|
254 |
+
|
255 |
+
.selector {
|
256 |
+
display: flex;
|
257 |
+
width: 100%;
|
258 |
+
}
|
259 |
+
|
260 |
+
.selector .selector-filter {
|
261 |
+
display: flex;
|
262 |
+
align-items: center;
|
263 |
+
}
|
264 |
+
|
265 |
+
.selector .selector-filter label {
|
266 |
+
margin: 0 8px 0 0;
|
267 |
+
}
|
268 |
+
|
269 |
+
.selector .selector-filter input {
|
270 |
+
width: auto;
|
271 |
+
min-height: 0;
|
272 |
+
flex: 1 1;
|
273 |
+
}
|
274 |
+
|
275 |
+
.selector-available, .selector-chosen {
|
276 |
+
width: auto;
|
277 |
+
flex: 1 1;
|
278 |
+
display: flex;
|
279 |
+
flex-direction: column;
|
280 |
+
}
|
281 |
+
|
282 |
+
.selector select {
|
283 |
+
width: 100%;
|
284 |
+
flex: 1 0 auto;
|
285 |
+
margin-bottom: 5px;
|
286 |
+
}
|
287 |
+
|
288 |
+
.selector ul.selector-chooser {
|
289 |
+
width: 26px;
|
290 |
+
height: 52px;
|
291 |
+
padding: 2px 0;
|
292 |
+
margin: auto 15px;
|
293 |
+
border-radius: 20px;
|
294 |
+
transform: translateY(-10px);
|
295 |
+
}
|
296 |
+
|
297 |
+
.selector-add, .selector-remove {
|
298 |
+
width: 20px;
|
299 |
+
height: 20px;
|
300 |
+
background-size: 20px auto;
|
301 |
+
}
|
302 |
+
|
303 |
+
.selector-add {
|
304 |
+
background-position: 0 -120px;
|
305 |
+
}
|
306 |
+
|
307 |
+
.selector-remove {
|
308 |
+
background-position: 0 -80px;
|
309 |
+
}
|
310 |
+
|
311 |
+
a.selector-chooseall, a.selector-clearall {
|
312 |
+
align-self: center;
|
313 |
+
}
|
314 |
+
|
315 |
+
.stacked {
|
316 |
+
flex-direction: column;
|
317 |
+
max-width: 480px;
|
318 |
+
}
|
319 |
+
|
320 |
+
.stacked > * {
|
321 |
+
flex: 0 1 auto;
|
322 |
+
}
|
323 |
+
|
324 |
+
.stacked select {
|
325 |
+
margin-bottom: 0;
|
326 |
+
}
|
327 |
+
|
328 |
+
.stacked .selector-available, .stacked .selector-chosen {
|
329 |
+
width: auto;
|
330 |
+
}
|
331 |
+
|
332 |
+
.stacked ul.selector-chooser {
|
333 |
+
width: 52px;
|
334 |
+
height: 26px;
|
335 |
+
padding: 0 2px;
|
336 |
+
margin: 15px auto;
|
337 |
+
transform: none;
|
338 |
+
}
|
339 |
+
|
340 |
+
.stacked .selector-chooser li {
|
341 |
+
padding: 3px;
|
342 |
+
}
|
343 |
+
|
344 |
+
.stacked .selector-add, .stacked .selector-remove {
|
345 |
+
background-size: 20px auto;
|
346 |
+
}
|
347 |
+
|
348 |
+
.stacked .selector-add {
|
349 |
+
background-position: 0 -40px;
|
350 |
+
}
|
351 |
+
|
352 |
+
.stacked .active.selector-add {
|
353 |
+
background-position: 0 -40px;
|
354 |
+
}
|
355 |
+
|
356 |
+
.active.selector-add:focus, .active.selector-add:hover {
|
357 |
+
background-position: 0 -140px;
|
358 |
+
}
|
359 |
+
|
360 |
+
.stacked .active.selector-add:focus, .stacked .active.selector-add:hover {
|
361 |
+
background-position: 0 -60px;
|
362 |
+
}
|
363 |
+
|
364 |
+
.stacked .selector-remove {
|
365 |
+
background-position: 0 0;
|
366 |
+
}
|
367 |
+
|
368 |
+
.stacked .active.selector-remove {
|
369 |
+
background-position: 0 0;
|
370 |
+
}
|
371 |
+
|
372 |
+
.active.selector-remove:focus, .active.selector-remove:hover {
|
373 |
+
background-position: 0 -100px;
|
374 |
+
}
|
375 |
+
|
376 |
+
.stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover {
|
377 |
+
background-position: 0 -20px;
|
378 |
+
}
|
379 |
+
|
380 |
+
.help-tooltip, .selector .help-icon {
|
381 |
+
display: none;
|
382 |
+
}
|
383 |
+
|
384 |
+
form .form-row p.datetime {
|
385 |
+
width: 100%;
|
386 |
+
}
|
387 |
+
|
388 |
+
.datetime input {
|
389 |
+
width: 50%;
|
390 |
+
max-width: 120px;
|
391 |
+
}
|
392 |
+
|
393 |
+
.datetime span {
|
394 |
+
font-size: 13px;
|
395 |
+
}
|
396 |
+
|
397 |
+
.datetime .timezonewarning {
|
398 |
+
display: block;
|
399 |
+
font-size: 11px;
|
400 |
+
color: #999;
|
401 |
+
}
|
402 |
+
|
403 |
+
.datetimeshortcuts {
|
404 |
+
color: #ccc;
|
405 |
+
}
|
406 |
+
|
407 |
+
.form-row .datetime input.vDateField, .form-row .datetime input.vTimeField {
|
408 |
+
width: 75%;
|
409 |
+
}
|
410 |
+
|
411 |
+
.inline-group {
|
412 |
+
overflow: auto;
|
413 |
+
}
|
414 |
+
|
415 |
+
/* Messages */
|
416 |
+
|
417 |
+
ul.messagelist li {
|
418 |
+
padding-left: 55px;
|
419 |
+
background-position: 30px 12px;
|
420 |
+
}
|
421 |
+
|
422 |
+
ul.messagelist li.error {
|
423 |
+
background-position: 30px 12px;
|
424 |
+
}
|
425 |
+
|
426 |
+
ul.messagelist li.warning {
|
427 |
+
background-position: 30px 14px;
|
428 |
+
}
|
429 |
+
|
430 |
+
/* Login */
|
431 |
+
|
432 |
+
.login #header {
|
433 |
+
padding: 15px 20px;
|
434 |
+
}
|
435 |
+
|
436 |
+
.login #branding h1 {
|
437 |
+
margin: 0;
|
438 |
+
}
|
439 |
+
|
440 |
+
/* GIS */
|
441 |
+
|
442 |
+
div.olMap {
|
443 |
+
max-width: calc(100vw - 30px);
|
444 |
+
max-height: 300px;
|
445 |
+
}
|
446 |
+
|
447 |
+
.olMap + .clear_features {
|
448 |
+
display: block;
|
449 |
+
margin-top: 10px;
|
450 |
+
}
|
451 |
+
|
452 |
+
/* Docs */
|
453 |
+
|
454 |
+
.module table.xfull {
|
455 |
+
width: 100%;
|
456 |
+
}
|
457 |
+
|
458 |
+
pre.literal-block {
|
459 |
+
overflow: auto;
|
460 |
+
}
|
461 |
+
}
|
462 |
+
|
463 |
+
/* Mobile */
|
464 |
+
|
465 |
+
@media (max-width: 767px) {
|
466 |
+
/* Layout */
|
467 |
+
|
468 |
+
#header, #content, #footer {
|
469 |
+
padding: 15px;
|
470 |
+
}
|
471 |
+
|
472 |
+
#footer:empty {
|
473 |
+
padding: 0;
|
474 |
+
}
|
475 |
+
|
476 |
+
div.breadcrumbs {
|
477 |
+
padding: 10px 15px;
|
478 |
+
}
|
479 |
+
|
480 |
+
/* Dashboard */
|
481 |
+
|
482 |
+
.colMS, .colSM {
|
483 |
+
margin: 0;
|
484 |
+
}
|
485 |
+
|
486 |
+
#content-related, .colSM #content-related {
|
487 |
+
width: 100%;
|
488 |
+
margin: 0;
|
489 |
+
}
|
490 |
+
|
491 |
+
#content-related .module {
|
492 |
+
margin-bottom: 0;
|
493 |
+
}
|
494 |
+
|
495 |
+
#content-related .module h2 {
|
496 |
+
padding: 10px 15px;
|
497 |
+
font-size: 16px;
|
498 |
+
}
|
499 |
+
|
500 |
+
/* Changelist */
|
501 |
+
|
502 |
+
#changelist {
|
503 |
+
display: flex;
|
504 |
+
flex-direction: column;
|
505 |
+
}
|
506 |
+
|
507 |
+
#changelist #toolbar {
|
508 |
+
order: 1;
|
509 |
+
padding: 10px;
|
510 |
+
}
|
511 |
+
|
512 |
+
#changelist .xfull {
|
513 |
+
order: 2;
|
514 |
+
}
|
515 |
+
|
516 |
+
#changelist-form {
|
517 |
+
order: 3;
|
518 |
+
}
|
519 |
+
|
520 |
+
#changelist-filter {
|
521 |
+
order: 4;
|
522 |
+
}
|
523 |
+
|
524 |
+
#changelist .actions label {
|
525 |
+
flex: 1 1;
|
526 |
+
}
|
527 |
+
|
528 |
+
#changelist .actions select {
|
529 |
+
flex: 1 0;
|
530 |
+
width: 100%;
|
531 |
+
}
|
532 |
+
|
533 |
+
#changelist .actions span {
|
534 |
+
flex: 1 0 100%;
|
535 |
+
}
|
536 |
+
|
537 |
+
.change-list .filtered .results, .change-list .filtered .paginator,
|
538 |
+
.filtered #toolbar, .filtered .actions, .filtered div.xfull {
|
539 |
+
margin-right: 0;
|
540 |
+
}
|
541 |
+
|
542 |
+
#changelist-filter {
|
543 |
+
position: static;
|
544 |
+
width: auto;
|
545 |
+
margin-top: 30px;
|
546 |
+
}
|
547 |
+
|
548 |
+
.object-tools {
|
549 |
+
float: none;
|
550 |
+
margin: 0 0 15px;
|
551 |
+
padding: 0;
|
552 |
+
overflow: hidden;
|
553 |
+
}
|
554 |
+
|
555 |
+
.object-tools li {
|
556 |
+
height: auto;
|
557 |
+
margin-left: 0;
|
558 |
+
}
|
559 |
+
|
560 |
+
.object-tools li + li {
|
561 |
+
margin-left: 15px;
|
562 |
+
}
|
563 |
+
|
564 |
+
/* Forms */
|
565 |
+
|
566 |
+
.form-row {
|
567 |
+
padding: 15px 0;
|
568 |
+
}
|
569 |
+
|
570 |
+
.aligned .form-row,
|
571 |
+
.aligned .form-row > div {
|
572 |
+
display: flex;
|
573 |
+
flex-wrap: wrap;
|
574 |
+
max-width: 100vw;
|
575 |
+
}
|
576 |
+
|
577 |
+
.aligned .form-row > div {
|
578 |
+
width: calc(100vw - 30px);
|
579 |
+
}
|
580 |
+
|
581 |
+
textarea {
|
582 |
+
max-width: none;
|
583 |
+
}
|
584 |
+
|
585 |
+
.vURLField {
|
586 |
+
width: auto;
|
587 |
+
}
|
588 |
+
|
589 |
+
fieldset .fieldBox + .fieldBox {
|
590 |
+
margin-top: 15px;
|
591 |
+
padding-top: 15px;
|
592 |
+
}
|
593 |
+
|
594 |
+
fieldset.collapsed .form-row {
|
595 |
+
display: none;
|
596 |
+
}
|
597 |
+
|
598 |
+
.aligned label {
|
599 |
+
width: 100%;
|
600 |
+
padding: 0 0 10px;
|
601 |
+
}
|
602 |
+
|
603 |
+
.aligned label:after {
|
604 |
+
max-height: 0;
|
605 |
+
}
|
606 |
+
|
607 |
+
.aligned .form-row input,
|
608 |
+
.aligned .form-row select,
|
609 |
+
.aligned .form-row textarea {
|
610 |
+
flex: 1 1 auto;
|
611 |
+
max-width: 100%;
|
612 |
+
}
|
613 |
+
|
614 |
+
.aligned .checkbox-row {
|
615 |
+
align-items: center;
|
616 |
+
}
|
617 |
+
|
618 |
+
.aligned .checkbox-row input {
|
619 |
+
flex: 0 1 auto;
|
620 |
+
margin: 0;
|
621 |
+
}
|
622 |
+
|
623 |
+
.aligned .vCheckboxLabel {
|
624 |
+
flex: 1 0;
|
625 |
+
padding: 1px 0 0 5px;
|
626 |
+
}
|
627 |
+
|
628 |
+
.aligned label + p,
|
629 |
+
.aligned label + div.help,
|
630 |
+
.aligned label + div.readonly {
|
631 |
+
padding: 0;
|
632 |
+
margin-left: 0;
|
633 |
+
}
|
634 |
+
|
635 |
+
.aligned p.file-upload {
|
636 |
+
margin-left: 0;
|
637 |
+
font-size: 13px;
|
638 |
+
}
|
639 |
+
|
640 |
+
span.clearable-file-input {
|
641 |
+
margin-left: 15px;
|
642 |
+
}
|
643 |
+
|
644 |
+
span.clearable-file-input label {
|
645 |
+
font-size: 13px;
|
646 |
+
padding-bottom: 0;
|
647 |
+
}
|
648 |
+
|
649 |
+
.aligned .timezonewarning {
|
650 |
+
flex: 1 0 100%;
|
651 |
+
margin-top: 5px;
|
652 |
+
}
|
653 |
+
|
654 |
+
form .aligned .form-row div.help {
|
655 |
+
width: 100%;
|
656 |
+
margin: 5px 0 0;
|
657 |
+
padding: 0;
|
658 |
+
}
|
659 |
+
|
660 |
+
form .aligned ul {
|
661 |
+
margin-left: 0;
|
662 |
+
padding-left: 0;
|
663 |
+
}
|
664 |
+
|
665 |
+
form .aligned ul.radiolist {
|
666 |
+
margin-right: 15px;
|
667 |
+
margin-bottom: -3px;
|
668 |
+
}
|
669 |
+
|
670 |
+
form .aligned ul.radiolist li + li {
|
671 |
+
margin-top: 5px;
|
672 |
+
}
|
673 |
+
|
674 |
+
/* Related widget */
|
675 |
+
|
676 |
+
.related-widget-wrapper {
|
677 |
+
width: 100%;
|
678 |
+
display: flex;
|
679 |
+
align-items: flex-start;
|
680 |
+
}
|
681 |
+
|
682 |
+
.related-widget-wrapper .selector {
|
683 |
+
order: 1;
|
684 |
+
}
|
685 |
+
|
686 |
+
.related-widget-wrapper > a {
|
687 |
+
order: 2;
|
688 |
+
}
|
689 |
+
|
690 |
+
.related-widget-wrapper .radiolist ~ a {
|
691 |
+
align-self: flex-end;
|
692 |
+
}
|
693 |
+
|
694 |
+
.related-widget-wrapper > select ~ a {
|
695 |
+
align-self: center;
|
696 |
+
}
|
697 |
+
|
698 |
+
select + .related-widget-wrapper-link,
|
699 |
+
.related-widget-wrapper-link + .related-widget-wrapper-link {
|
700 |
+
margin-left: 15px;
|
701 |
+
}
|
702 |
+
|
703 |
+
/* Selector */
|
704 |
+
|
705 |
+
.selector {
|
706 |
+
flex-direction: column;
|
707 |
+
}
|
708 |
+
|
709 |
+
.selector > * {
|
710 |
+
float: none;
|
711 |
+
}
|
712 |
+
|
713 |
+
.selector-available, .selector-chosen {
|
714 |
+
margin-bottom: 0;
|
715 |
+
flex: 1 1 auto;
|
716 |
+
}
|
717 |
+
|
718 |
+
.selector select {
|
719 |
+
max-height: 96px;
|
720 |
+
}
|
721 |
+
|
722 |
+
.selector ul.selector-chooser {
|
723 |
+
display: block;
|
724 |
+
float: none;
|
725 |
+
width: 52px;
|
726 |
+
height: 26px;
|
727 |
+
padding: 0 2px;
|
728 |
+
margin: 15px auto 20px;
|
729 |
+
transform: none;
|
730 |
+
}
|
731 |
+
|
732 |
+
.selector ul.selector-chooser li {
|
733 |
+
float: left;
|
734 |
+
}
|
735 |
+
|
736 |
+
.selector-remove {
|
737 |
+
background-position: 0 0;
|
738 |
+
}
|
739 |
+
|
740 |
+
.active.selector-remove:focus, .active.selector-remove:hover {
|
741 |
+
background-position: 0 -20px;
|
742 |
+
}
|
743 |
+
|
744 |
+
.selector-add {
|
745 |
+
background-position: 0 -40px;
|
746 |
+
}
|
747 |
+
|
748 |
+
.active.selector-add:focus, .active.selector-add:hover {
|
749 |
+
background-position: 0 -60px;
|
750 |
+
}
|
751 |
+
|
752 |
+
/* Inlines */
|
753 |
+
|
754 |
+
.inline-group[data-inline-type="stacked"] .inline-related {
|
755 |
+
border: 2px solid #eee;
|
756 |
+
border-radius: 4px;
|
757 |
+
margin-top: 15px;
|
758 |
+
overflow: auto;
|
759 |
+
}
|
760 |
+
|
761 |
+
.inline-group[data-inline-type="stacked"] .inline-related > * {
|
762 |
+
box-sizing: border-box;
|
763 |
+
}
|
764 |
+
|
765 |
+
.inline-group[data-inline-type="stacked"] .inline-related + .inline-related {
|
766 |
+
margin-top: 30px;
|
767 |
+
}
|
768 |
+
|
769 |
+
.inline-group[data-inline-type="stacked"] .inline-related .module {
|
770 |
+
padding: 0 10px;
|
771 |
+
}
|
772 |
+
|
773 |
+
.inline-group[data-inline-type="stacked"] .inline-related .module .form-row:last-child {
|
774 |
+
border-bottom: none;
|
775 |
+
}
|
776 |
+
|
777 |
+
.inline-group[data-inline-type="stacked"] .inline-related h3 {
|
778 |
+
padding: 10px;
|
779 |
+
border-top-width: 0;
|
780 |
+
border-bottom-width: 2px;
|
781 |
+
display: flex;
|
782 |
+
flex-wrap: wrap;
|
783 |
+
align-items: center;
|
784 |
+
}
|
785 |
+
|
786 |
+
.inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label {
|
787 |
+
margin-right: auto;
|
788 |
+
}
|
789 |
+
|
790 |
+
.inline-group[data-inline-type="stacked"] .inline-related h3 span.delete {
|
791 |
+
float: none;
|
792 |
+
flex: 1 1 100%;
|
793 |
+
margin-top: 5px;
|
794 |
+
}
|
795 |
+
|
796 |
+
.inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) {
|
797 |
+
width: 100%;
|
798 |
+
}
|
799 |
+
|
800 |
+
.inline-group[data-inline-type="stacked"] .aligned label {
|
801 |
+
width: 100%;
|
802 |
+
}
|
803 |
+
|
804 |
+
.inline-group[data-inline-type="stacked"] div.add-row {
|
805 |
+
margin-top: 15px;
|
806 |
+
border: 1px solid #eee;
|
807 |
+
border-radius: 4px;
|
808 |
+
}
|
809 |
+
|
810 |
+
.inline-group div.add-row,
|
811 |
+
.inline-group .tabular tr.add-row td {
|
812 |
+
padding: 0;
|
813 |
+
}
|
814 |
+
|
815 |
+
.inline-group div.add-row a,
|
816 |
+
.inline-group .tabular tr.add-row td a {
|
817 |
+
display: block;
|
818 |
+
padding: 8px 10px 8px 26px;
|
819 |
+
background-position: 8px 9px;
|
820 |
+
}
|
821 |
+
|
822 |
+
/* Submit row */
|
823 |
+
|
824 |
+
.submit-row {
|
825 |
+
padding: 10px 10px 0;
|
826 |
+
margin: 0 0 15px;
|
827 |
+
display: flex;
|
828 |
+
flex-direction: column;
|
829 |
+
}
|
830 |
+
|
831 |
+
.submit-row > * {
|
832 |
+
width: 100%;
|
833 |
+
}
|
834 |
+
|
835 |
+
.submit-row input, .submit-row input.default, .submit-row a, .submit-row a.closelink {
|
836 |
+
float: none;
|
837 |
+
margin: 0 0 10px;
|
838 |
+
text-align: center;
|
839 |
+
}
|
840 |
+
|
841 |
+
.submit-row a.closelink {
|
842 |
+
padding: 10px 0;
|
843 |
+
}
|
844 |
+
|
845 |
+
.submit-row p.deletelink-box {
|
846 |
+
order: 4;
|
847 |
+
}
|
848 |
+
|
849 |
+
/* Messages */
|
850 |
+
|
851 |
+
ul.messagelist li {
|
852 |
+
padding-left: 40px;
|
853 |
+
background-position: 15px 12px;
|
854 |
+
}
|
855 |
+
|
856 |
+
ul.messagelist li.error {
|
857 |
+
background-position: 15px 12px;
|
858 |
+
}
|
859 |
+
|
860 |
+
ul.messagelist li.warning {
|
861 |
+
background-position: 15px 14px;
|
862 |
+
}
|
863 |
+
|
864 |
+
/* Paginator */
|
865 |
+
|
866 |
+
.paginator .this-page, .paginator a:link, .paginator a:visited {
|
867 |
+
padding: 4px 10px;
|
868 |
+
}
|
869 |
+
|
870 |
+
/* Login */
|
871 |
+
|
872 |
+
body.login {
|
873 |
+
padding: 0 15px;
|
874 |
+
}
|
875 |
+
|
876 |
+
.login #container {
|
877 |
+
width: auto;
|
878 |
+
max-width: 480px;
|
879 |
+
margin: 50px auto;
|
880 |
+
}
|
881 |
+
|
882 |
+
.login #header,
|
883 |
+
.login #content {
|
884 |
+
padding: 15px;
|
885 |
+
}
|
886 |
+
|
887 |
+
.login #content-main {
|
888 |
+
float: none;
|
889 |
+
}
|
890 |
+
|
891 |
+
.login .form-row {
|
892 |
+
padding: 0;
|
893 |
+
}
|
894 |
+
|
895 |
+
.login .form-row + .form-row {
|
896 |
+
margin-top: 15px;
|
897 |
+
}
|
898 |
+
|
899 |
+
.login .form-row label {
|
900 |
+
display: block;
|
901 |
+
margin: 0 0 5px;
|
902 |
+
padding: 0;
|
903 |
+
line-height: 1.2;
|
904 |
+
}
|
905 |
+
|
906 |
+
.login .submit-row {
|
907 |
+
padding: 15px 0 0;
|
908 |
+
}
|
909 |
+
|
910 |
+
.login br, .login .submit-row label {
|
911 |
+
display: none;
|
912 |
+
}
|
913 |
+
|
914 |
+
.login .submit-row input {
|
915 |
+
margin: 0;
|
916 |
+
text-transform: uppercase;
|
917 |
+
}
|
918 |
+
|
919 |
+
.errornote {
|
920 |
+
margin: 0 0 20px;
|
921 |
+
padding: 8px 12px;
|
922 |
+
font-size: 13px;
|
923 |
+
}
|
924 |
+
|
925 |
+
/* Calendar and clock */
|
926 |
+
|
927 |
+
.calendarbox, .clockbox {
|
928 |
+
position: fixed !important;
|
929 |
+
top: 50% !important;
|
930 |
+
left: 50% !important;
|
931 |
+
transform: translate(-50%, -50%);
|
932 |
+
margin: 0;
|
933 |
+
border: none;
|
934 |
+
overflow: visible;
|
935 |
+
}
|
936 |
+
|
937 |
+
.calendarbox:before, .clockbox:before {
|
938 |
+
content: '';
|
939 |
+
position: fixed;
|
940 |
+
top: 50%;
|
941 |
+
left: 50%;
|
942 |
+
width: 100vw;
|
943 |
+
height: 100vh;
|
944 |
+
background: rgba(0, 0, 0, 0.75);
|
945 |
+
transform: translate(-50%, -50%);
|
946 |
+
}
|
947 |
+
|
948 |
+
.calendarbox > *, .clockbox > * {
|
949 |
+
position: relative;
|
950 |
+
z-index: 1;
|
951 |
+
}
|
952 |
+
|
953 |
+
.calendarbox > div:first-child {
|
954 |
+
z-index: 2;
|
955 |
+
}
|
956 |
+
|
957 |
+
.calendarbox .calendar, .clockbox h2 {
|
958 |
+
border-radius: 4px 4px 0 0;
|
959 |
+
overflow: hidden;
|
960 |
+
}
|
961 |
+
|
962 |
+
.calendarbox .calendar-cancel, .clockbox .calendar-cancel {
|
963 |
+
border-radius: 0 0 4px 4px;
|
964 |
+
overflow: hidden;
|
965 |
+
}
|
966 |
+
|
967 |
+
.calendar-shortcuts {
|
968 |
+
padding: 10px 0;
|
969 |
+
font-size: 12px;
|
970 |
+
line-height: 12px;
|
971 |
+
}
|
972 |
+
|
973 |
+
.calendar-shortcuts a {
|
974 |
+
margin: 0 4px;
|
975 |
+
}
|
976 |
+
|
977 |
+
.timelist a {
|
978 |
+
background: #fff;
|
979 |
+
padding: 4px;
|
980 |
+
}
|
981 |
+
|
982 |
+
.calendar-cancel {
|
983 |
+
padding: 8px 10px;
|
984 |
+
}
|
985 |
+
|
986 |
+
.clockbox h2 {
|
987 |
+
padding: 8px 15px;
|
988 |
+
}
|
989 |
+
|
990 |
+
.calendar caption {
|
991 |
+
padding: 10px;
|
992 |
+
}
|
993 |
+
|
994 |
+
.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next {
|
995 |
+
z-index: 1;
|
996 |
+
top: 10px;
|
997 |
+
}
|
998 |
+
|
999 |
+
/* History */
|
1000 |
+
|
1001 |
+
table#change-history tbody th, table#change-history tbody td {
|
1002 |
+
font-size: 13px;
|
1003 |
+
word-break: break-word;
|
1004 |
+
}
|
1005 |
+
|
1006 |
+
table#change-history tbody th {
|
1007 |
+
width: auto;
|
1008 |
+
}
|
1009 |
+
|
1010 |
+
/* Docs */
|
1011 |
+
|
1012 |
+
table.model tbody th, table.model tbody td {
|
1013 |
+
font-size: 13px;
|
1014 |
+
word-break: break-word;
|
1015 |
+
}
|
1016 |
+
}
|
_static/admin/css/responsive_rtl.css
ADDED
@@ -0,0 +1,83 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* TABLETS */
|
2 |
+
|
3 |
+
@media (max-width: 1024px) {
|
4 |
+
[dir="rtl"] .colMS {
|
5 |
+
margin-right: 0;
|
6 |
+
}
|
7 |
+
|
8 |
+
[dir="rtl"] #user-tools {
|
9 |
+
text-align: right;
|
10 |
+
}
|
11 |
+
|
12 |
+
[dir="rtl"] #changelist .actions label {
|
13 |
+
padding-left: 10px;
|
14 |
+
padding-right: 0;
|
15 |
+
}
|
16 |
+
|
17 |
+
[dir="rtl"] #changelist .actions select {
|
18 |
+
margin-left: 0;
|
19 |
+
margin-right: 15px;
|
20 |
+
}
|
21 |
+
|
22 |
+
[dir="rtl"] .change-list .filtered .results,
|
23 |
+
[dir="rtl"] .change-list .filtered .paginator,
|
24 |
+
[dir="rtl"] .filtered #toolbar,
|
25 |
+
[dir="rtl"] .filtered div.xfull,
|
26 |
+
[dir="rtl"] .filtered .actions {
|
27 |
+
margin-right: 0;
|
28 |
+
margin-left: 230px;
|
29 |
+
}
|
30 |
+
|
31 |
+
[dir="rtl"] .inline-group ul.tools a.add,
|
32 |
+
[dir="rtl"] .inline-group div.add-row a,
|
33 |
+
[dir="rtl"] .inline-group .tabular tr.add-row td a {
|
34 |
+
padding: 8px 26px 8px 10px;
|
35 |
+
background-position: calc(100% - 8px) 9px;
|
36 |
+
}
|
37 |
+
|
38 |
+
[dir="rtl"] .related-widget-wrapper-link + .selector {
|
39 |
+
margin-right: 0;
|
40 |
+
margin-left: 15px;
|
41 |
+
}
|
42 |
+
|
43 |
+
[dir="rtl"] .selector .selector-filter label {
|
44 |
+
margin-right: 0;
|
45 |
+
margin-left: 8px;
|
46 |
+
}
|
47 |
+
|
48 |
+
[dir="rtl"] .object-tools li {
|
49 |
+
float: right;
|
50 |
+
}
|
51 |
+
|
52 |
+
[dir="rtl"] .object-tools li + li {
|
53 |
+
margin-left: 0;
|
54 |
+
margin-right: 15px;
|
55 |
+
}
|
56 |
+
|
57 |
+
[dir="rtl"] .dashboard .module table td a {
|
58 |
+
padding-left: 0;
|
59 |
+
padding-right: 16px;
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
/* MOBILE */
|
64 |
+
|
65 |
+
@media (max-width: 767px) {
|
66 |
+
[dir="rtl"] .change-list .filtered .results,
|
67 |
+
[dir="rtl"] .change-list .filtered .paginator,
|
68 |
+
[dir="rtl"] .filtered #toolbar,
|
69 |
+
[dir="rtl"] .filtered div.xfull,
|
70 |
+
[dir="rtl"] .filtered .actions {
|
71 |
+
margin-left: 0;
|
72 |
+
}
|
73 |
+
|
74 |
+
[dir="rtl"] .aligned .related-lookup,
|
75 |
+
[dir="rtl"] .aligned .datetimeshortcuts {
|
76 |
+
margin-left: 0;
|
77 |
+
margin-right: 15px;
|
78 |
+
}
|
79 |
+
|
80 |
+
[dir="rtl"] .aligned ul {
|
81 |
+
margin-right: 0;
|
82 |
+
}
|
83 |
+
}
|
_static/admin/css/rtl.css
ADDED
@@ -0,0 +1,259 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
body {
|
2 |
+
direction: rtl;
|
3 |
+
}
|
4 |
+
|
5 |
+
/* LOGIN */
|
6 |
+
|
7 |
+
.login .form-row {
|
8 |
+
float: right;
|
9 |
+
}
|
10 |
+
|
11 |
+
.login .form-row label {
|
12 |
+
float: right;
|
13 |
+
padding-left: 0.5em;
|
14 |
+
padding-right: 0;
|
15 |
+
text-align: left;
|
16 |
+
}
|
17 |
+
|
18 |
+
.login .submit-row {
|
19 |
+
clear: both;
|
20 |
+
padding: 1em 9.4em 0 0;
|
21 |
+
}
|
22 |
+
|
23 |
+
/* GLOBAL */
|
24 |
+
|
25 |
+
th {
|
26 |
+
text-align: right;
|
27 |
+
}
|
28 |
+
|
29 |
+
.module h2, .module caption {
|
30 |
+
text-align: right;
|
31 |
+
}
|
32 |
+
|
33 |
+
.module ul, .module ol {
|
34 |
+
margin-left: 0;
|
35 |
+
margin-right: 1.5em;
|
36 |
+
}
|
37 |
+
|
38 |
+
.viewlink, .addlink, .changelink {
|
39 |
+
padding-left: 0;
|
40 |
+
padding-right: 16px;
|
41 |
+
background-position: 100% 1px;
|
42 |
+
}
|
43 |
+
|
44 |
+
.deletelink {
|
45 |
+
padding-left: 0;
|
46 |
+
padding-right: 16px;
|
47 |
+
background-position: 100% 1px;
|
48 |
+
}
|
49 |
+
|
50 |
+
.object-tools {
|
51 |
+
float: left;
|
52 |
+
}
|
53 |
+
|
54 |
+
thead th:first-child,
|
55 |
+
tfoot td:first-child {
|
56 |
+
border-left: none;
|
57 |
+
}
|
58 |
+
|
59 |
+
/* LAYOUT */
|
60 |
+
|
61 |
+
#user-tools {
|
62 |
+
right: auto;
|
63 |
+
left: 0;
|
64 |
+
text-align: left;
|
65 |
+
}
|
66 |
+
|
67 |
+
div.breadcrumbs {
|
68 |
+
text-align: right;
|
69 |
+
}
|
70 |
+
|
71 |
+
#content-main {
|
72 |
+
float: right;
|
73 |
+
}
|
74 |
+
|
75 |
+
#content-related {
|
76 |
+
float: left;
|
77 |
+
margin-left: -300px;
|
78 |
+
margin-right: auto;
|
79 |
+
}
|
80 |
+
|
81 |
+
.colMS {
|
82 |
+
margin-left: 300px;
|
83 |
+
margin-right: 0;
|
84 |
+
}
|
85 |
+
|
86 |
+
/* SORTABLE TABLES */
|
87 |
+
|
88 |
+
table thead th.sorted .sortoptions {
|
89 |
+
float: left;
|
90 |
+
}
|
91 |
+
|
92 |
+
thead th.sorted .text {
|
93 |
+
padding-right: 0;
|
94 |
+
padding-left: 42px;
|
95 |
+
}
|
96 |
+
|
97 |
+
/* dashboard styles */
|
98 |
+
|
99 |
+
.dashboard .module table td a {
|
100 |
+
padding-left: .6em;
|
101 |
+
padding-right: 16px;
|
102 |
+
}
|
103 |
+
|
104 |
+
/* changelists styles */
|
105 |
+
|
106 |
+
.change-list .filtered table {
|
107 |
+
border-left: none;
|
108 |
+
border-right: 0px none;
|
109 |
+
}
|
110 |
+
|
111 |
+
#changelist-filter {
|
112 |
+
right: auto;
|
113 |
+
left: 0;
|
114 |
+
border-left: none;
|
115 |
+
border-right: none;
|
116 |
+
}
|
117 |
+
|
118 |
+
.change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull {
|
119 |
+
margin-right: 0;
|
120 |
+
margin-left: 280px;
|
121 |
+
}
|
122 |
+
|
123 |
+
#changelist-filter li.selected {
|
124 |
+
border-left: none;
|
125 |
+
padding-left: 10px;
|
126 |
+
margin-left: 0;
|
127 |
+
border-right: 5px solid #eaeaea;
|
128 |
+
padding-right: 10px;
|
129 |
+
margin-right: -15px;
|
130 |
+
}
|
131 |
+
|
132 |
+
.filtered .actions {
|
133 |
+
margin-left: 280px;
|
134 |
+
margin-right: 0;
|
135 |
+
}
|
136 |
+
|
137 |
+
#changelist table tbody td:first-child, #changelist table tbody th:first-child {
|
138 |
+
border-right: none;
|
139 |
+
border-left: none;
|
140 |
+
}
|
141 |
+
|
142 |
+
/* FORMS */
|
143 |
+
|
144 |
+
.aligned label {
|
145 |
+
padding: 0 0 3px 1em;
|
146 |
+
float: right;
|
147 |
+
}
|
148 |
+
|
149 |
+
.submit-row {
|
150 |
+
text-align: left
|
151 |
+
}
|
152 |
+
|
153 |
+
.submit-row p.deletelink-box {
|
154 |
+
float: right;
|
155 |
+
}
|
156 |
+
|
157 |
+
.submit-row input.default {
|
158 |
+
margin-left: 0;
|
159 |
+
}
|
160 |
+
|
161 |
+
.vDateField, .vTimeField {
|
162 |
+
margin-left: 2px;
|
163 |
+
}
|
164 |
+
|
165 |
+
.aligned .form-row input {
|
166 |
+
margin-left: 5px;
|
167 |
+
}
|
168 |
+
|
169 |
+
form .aligned p.help, form .aligned div.help {
|
170 |
+
clear: right;
|
171 |
+
}
|
172 |
+
|
173 |
+
form .aligned ul {
|
174 |
+
margin-right: 163px;
|
175 |
+
margin-left: 0;
|
176 |
+
}
|
177 |
+
|
178 |
+
form ul.inline li {
|
179 |
+
float: right;
|
180 |
+
padding-right: 0;
|
181 |
+
padding-left: 7px;
|
182 |
+
}
|
183 |
+
|
184 |
+
input[type=submit].default, .submit-row input.default {
|
185 |
+
float: left;
|
186 |
+
}
|
187 |
+
|
188 |
+
fieldset .fieldBox {
|
189 |
+
float: right;
|
190 |
+
margin-left: 20px;
|
191 |
+
margin-right: 0;
|
192 |
+
}
|
193 |
+
|
194 |
+
.errorlist li {
|
195 |
+
background-position: 100% 12px;
|
196 |
+
padding: 0;
|
197 |
+
}
|
198 |
+
|
199 |
+
.errornote {
|
200 |
+
background-position: 100% 12px;
|
201 |
+
padding: 10px 12px;
|
202 |
+
}
|
203 |
+
|
204 |
+
/* WIDGETS */
|
205 |
+
|
206 |
+
.calendarnav-previous {
|
207 |
+
top: 0;
|
208 |
+
left: auto;
|
209 |
+
right: 10px;
|
210 |
+
}
|
211 |
+
|
212 |
+
.calendarnav-next {
|
213 |
+
top: 0;
|
214 |
+
right: auto;
|
215 |
+
left: 10px;
|
216 |
+
}
|
217 |
+
|
218 |
+
.calendar caption, .calendarbox h2 {
|
219 |
+
text-align: center;
|
220 |
+
}
|
221 |
+
|
222 |
+
.selector {
|
223 |
+
float: right;
|
224 |
+
}
|
225 |
+
|
226 |
+
.selector .selector-filter {
|
227 |
+
text-align: right;
|
228 |
+
}
|
229 |
+
|
230 |
+
.inline-deletelink {
|
231 |
+
float: left;
|
232 |
+
}
|
233 |
+
|
234 |
+
form .form-row p.datetime {
|
235 |
+
overflow: hidden;
|
236 |
+
}
|
237 |
+
|
238 |
+
.related-widget-wrapper {
|
239 |
+
float: right;
|
240 |
+
}
|
241 |
+
|
242 |
+
/* MISC */
|
243 |
+
|
244 |
+
.inline-related h2, .inline-group h2 {
|
245 |
+
text-align: right
|
246 |
+
}
|
247 |
+
|
248 |
+
.inline-related h3 span.delete {
|
249 |
+
padding-right: 20px;
|
250 |
+
padding-left: inherit;
|
251 |
+
left: 10px;
|
252 |
+
right: inherit;
|
253 |
+
float:left;
|
254 |
+
}
|
255 |
+
|
256 |
+
.inline-related h3 span.delete label {
|
257 |
+
margin-left: inherit;
|
258 |
+
margin-right: 2px;
|
259 |
+
}
|
_static/admin/css/vendor/select2/LICENSE-SELECT2.md
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
The MIT License (MIT)
|
2 |
+
|
3 |
+
Copyright (c) 2012-2017 Kevin Brown, Igor Vaynberg, and Select2 contributors
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in
|
13 |
+
all copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
+
THE SOFTWARE.
|
_static/admin/css/vendor/select2/select2.css
ADDED
@@ -0,0 +1,481 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.select2-container {
|
2 |
+
box-sizing: border-box;
|
3 |
+
display: inline-block;
|
4 |
+
margin: 0;
|
5 |
+
position: relative;
|
6 |
+
vertical-align: middle; }
|
7 |
+
.select2-container .select2-selection--single {
|
8 |
+
box-sizing: border-box;
|
9 |
+
cursor: pointer;
|
10 |
+
display: block;
|
11 |
+
height: 28px;
|
12 |
+
user-select: none;
|
13 |
+
-webkit-user-select: none; }
|
14 |
+
.select2-container .select2-selection--single .select2-selection__rendered {
|
15 |
+
display: block;
|
16 |
+
padding-left: 8px;
|
17 |
+
padding-right: 20px;
|
18 |
+
overflow: hidden;
|
19 |
+
text-overflow: ellipsis;
|
20 |
+
white-space: nowrap; }
|
21 |
+
.select2-container .select2-selection--single .select2-selection__clear {
|
22 |
+
position: relative; }
|
23 |
+
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
|
24 |
+
padding-right: 8px;
|
25 |
+
padding-left: 20px; }
|
26 |
+
.select2-container .select2-selection--multiple {
|
27 |
+
box-sizing: border-box;
|
28 |
+
cursor: pointer;
|
29 |
+
display: block;
|
30 |
+
min-height: 32px;
|
31 |
+
user-select: none;
|
32 |
+
-webkit-user-select: none; }
|
33 |
+
.select2-container .select2-selection--multiple .select2-selection__rendered {
|
34 |
+
display: inline-block;
|
35 |
+
overflow: hidden;
|
36 |
+
padding-left: 8px;
|
37 |
+
text-overflow: ellipsis;
|
38 |
+
white-space: nowrap; }
|
39 |
+
.select2-container .select2-search--inline {
|
40 |
+
float: left; }
|
41 |
+
.select2-container .select2-search--inline .select2-search__field {
|
42 |
+
box-sizing: border-box;
|
43 |
+
border: none;
|
44 |
+
font-size: 100%;
|
45 |
+
margin-top: 5px;
|
46 |
+
padding: 0; }
|
47 |
+
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
|
48 |
+
-webkit-appearance: none; }
|
49 |
+
|
50 |
+
.select2-dropdown {
|
51 |
+
background-color: white;
|
52 |
+
border: 1px solid #aaa;
|
53 |
+
border-radius: 4px;
|
54 |
+
box-sizing: border-box;
|
55 |
+
display: block;
|
56 |
+
position: absolute;
|
57 |
+
left: -100000px;
|
58 |
+
width: 100%;
|
59 |
+
z-index: 1051; }
|
60 |
+
|
61 |
+
.select2-results {
|
62 |
+
display: block; }
|
63 |
+
|
64 |
+
.select2-results__options {
|
65 |
+
list-style: none;
|
66 |
+
margin: 0;
|
67 |
+
padding: 0; }
|
68 |
+
|
69 |
+
.select2-results__option {
|
70 |
+
padding: 6px;
|
71 |
+
user-select: none;
|
72 |
+
-webkit-user-select: none; }
|
73 |
+
.select2-results__option[aria-selected] {
|
74 |
+
cursor: pointer; }
|
75 |
+
|
76 |
+
.select2-container--open .select2-dropdown {
|
77 |
+
left: 0; }
|
78 |
+
|
79 |
+
.select2-container--open .select2-dropdown--above {
|
80 |
+
border-bottom: none;
|
81 |
+
border-bottom-left-radius: 0;
|
82 |
+
border-bottom-right-radius: 0; }
|
83 |
+
|
84 |
+
.select2-container--open .select2-dropdown--below {
|
85 |
+
border-top: none;
|
86 |
+
border-top-left-radius: 0;
|
87 |
+
border-top-right-radius: 0; }
|
88 |
+
|
89 |
+
.select2-search--dropdown {
|
90 |
+
display: block;
|
91 |
+
padding: 4px; }
|
92 |
+
.select2-search--dropdown .select2-search__field {
|
93 |
+
padding: 4px;
|
94 |
+
width: 100%;
|
95 |
+
box-sizing: border-box; }
|
96 |
+
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
|
97 |
+
-webkit-appearance: none; }
|
98 |
+
.select2-search--dropdown.select2-search--hide {
|
99 |
+
display: none; }
|
100 |
+
|
101 |
+
.select2-close-mask {
|
102 |
+
border: 0;
|
103 |
+
margin: 0;
|
104 |
+
padding: 0;
|
105 |
+
display: block;
|
106 |
+
position: fixed;
|
107 |
+
left: 0;
|
108 |
+
top: 0;
|
109 |
+
min-height: 100%;
|
110 |
+
min-width: 100%;
|
111 |
+
height: auto;
|
112 |
+
width: auto;
|
113 |
+
opacity: 0;
|
114 |
+
z-index: 99;
|
115 |
+
background-color: #fff;
|
116 |
+
filter: alpha(opacity=0); }
|
117 |
+
|
118 |
+
.select2-hidden-accessible {
|
119 |
+
border: 0 !important;
|
120 |
+
clip: rect(0 0 0 0) !important;
|
121 |
+
-webkit-clip-path: inset(50%) !important;
|
122 |
+
clip-path: inset(50%) !important;
|
123 |
+
height: 1px !important;
|
124 |
+
overflow: hidden !important;
|
125 |
+
padding: 0 !important;
|
126 |
+
position: absolute !important;
|
127 |
+
width: 1px !important;
|
128 |
+
white-space: nowrap !important; }
|
129 |
+
|
130 |
+
.select2-container--default .select2-selection--single {
|
131 |
+
background-color: #fff;
|
132 |
+
border: 1px solid #aaa;
|
133 |
+
border-radius: 4px; }
|
134 |
+
.select2-container--default .select2-selection--single .select2-selection__rendered {
|
135 |
+
color: #444;
|
136 |
+
line-height: 28px; }
|
137 |
+
.select2-container--default .select2-selection--single .select2-selection__clear {
|
138 |
+
cursor: pointer;
|
139 |
+
float: right;
|
140 |
+
font-weight: bold; }
|
141 |
+
.select2-container--default .select2-selection--single .select2-selection__placeholder {
|
142 |
+
color: #999; }
|
143 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow {
|
144 |
+
height: 26px;
|
145 |
+
position: absolute;
|
146 |
+
top: 1px;
|
147 |
+
right: 1px;
|
148 |
+
width: 20px; }
|
149 |
+
.select2-container--default .select2-selection--single .select2-selection__arrow b {
|
150 |
+
border-color: #888 transparent transparent transparent;
|
151 |
+
border-style: solid;
|
152 |
+
border-width: 5px 4px 0 4px;
|
153 |
+
height: 0;
|
154 |
+
left: 50%;
|
155 |
+
margin-left: -4px;
|
156 |
+
margin-top: -2px;
|
157 |
+
position: absolute;
|
158 |
+
top: 50%;
|
159 |
+
width: 0; }
|
160 |
+
|
161 |
+
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
162 |
+
float: left; }
|
163 |
+
|
164 |
+
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
165 |
+
left: 1px;
|
166 |
+
right: auto; }
|
167 |
+
|
168 |
+
.select2-container--default.select2-container--disabled .select2-selection--single {
|
169 |
+
background-color: #eee;
|
170 |
+
cursor: default; }
|
171 |
+
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
|
172 |
+
display: none; }
|
173 |
+
|
174 |
+
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
175 |
+
border-color: transparent transparent #888 transparent;
|
176 |
+
border-width: 0 4px 5px 4px; }
|
177 |
+
|
178 |
+
.select2-container--default .select2-selection--multiple {
|
179 |
+
background-color: white;
|
180 |
+
border: 1px solid #aaa;
|
181 |
+
border-radius: 4px;
|
182 |
+
cursor: text; }
|
183 |
+
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
|
184 |
+
box-sizing: border-box;
|
185 |
+
list-style: none;
|
186 |
+
margin: 0;
|
187 |
+
padding: 0 5px;
|
188 |
+
width: 100%; }
|
189 |
+
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
|
190 |
+
list-style: none; }
|
191 |
+
.select2-container--default .select2-selection--multiple .select2-selection__clear {
|
192 |
+
cursor: pointer;
|
193 |
+
float: right;
|
194 |
+
font-weight: bold;
|
195 |
+
margin-top: 5px;
|
196 |
+
margin-right: 10px;
|
197 |
+
padding: 1px; }
|
198 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice {
|
199 |
+
background-color: #e4e4e4;
|
200 |
+
border: 1px solid #aaa;
|
201 |
+
border-radius: 4px;
|
202 |
+
cursor: default;
|
203 |
+
float: left;
|
204 |
+
margin-right: 5px;
|
205 |
+
margin-top: 5px;
|
206 |
+
padding: 0 5px; }
|
207 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
|
208 |
+
color: #999;
|
209 |
+
cursor: pointer;
|
210 |
+
display: inline-block;
|
211 |
+
font-weight: bold;
|
212 |
+
margin-right: 2px; }
|
213 |
+
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
|
214 |
+
color: #333; }
|
215 |
+
|
216 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
|
217 |
+
float: right; }
|
218 |
+
|
219 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
220 |
+
margin-left: 5px;
|
221 |
+
margin-right: auto; }
|
222 |
+
|
223 |
+
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
224 |
+
margin-left: 2px;
|
225 |
+
margin-right: auto; }
|
226 |
+
|
227 |
+
.select2-container--default.select2-container--focus .select2-selection--multiple {
|
228 |
+
border: solid black 1px;
|
229 |
+
outline: 0; }
|
230 |
+
|
231 |
+
.select2-container--default.select2-container--disabled .select2-selection--multiple {
|
232 |
+
background-color: #eee;
|
233 |
+
cursor: default; }
|
234 |
+
|
235 |
+
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
|
236 |
+
display: none; }
|
237 |
+
|
238 |
+
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
|
239 |
+
border-top-left-radius: 0;
|
240 |
+
border-top-right-radius: 0; }
|
241 |
+
|
242 |
+
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
|
243 |
+
border-bottom-left-radius: 0;
|
244 |
+
border-bottom-right-radius: 0; }
|
245 |
+
|
246 |
+
.select2-container--default .select2-search--dropdown .select2-search__field {
|
247 |
+
border: 1px solid #aaa; }
|
248 |
+
|
249 |
+
.select2-container--default .select2-search--inline .select2-search__field {
|
250 |
+
background: transparent;
|
251 |
+
border: none;
|
252 |
+
outline: 0;
|
253 |
+
box-shadow: none;
|
254 |
+
-webkit-appearance: textfield; }
|
255 |
+
|
256 |
+
.select2-container--default .select2-results > .select2-results__options {
|
257 |
+
max-height: 200px;
|
258 |
+
overflow-y: auto; }
|
259 |
+
|
260 |
+
.select2-container--default .select2-results__option[role=group] {
|
261 |
+
padding: 0; }
|
262 |
+
|
263 |
+
.select2-container--default .select2-results__option[aria-disabled=true] {
|
264 |
+
color: #999; }
|
265 |
+
|
266 |
+
.select2-container--default .select2-results__option[aria-selected=true] {
|
267 |
+
background-color: #ddd; }
|
268 |
+
|
269 |
+
.select2-container--default .select2-results__option .select2-results__option {
|
270 |
+
padding-left: 1em; }
|
271 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
|
272 |
+
padding-left: 0; }
|
273 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
|
274 |
+
margin-left: -1em;
|
275 |
+
padding-left: 2em; }
|
276 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
277 |
+
margin-left: -2em;
|
278 |
+
padding-left: 3em; }
|
279 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
280 |
+
margin-left: -3em;
|
281 |
+
padding-left: 4em; }
|
282 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
283 |
+
margin-left: -4em;
|
284 |
+
padding-left: 5em; }
|
285 |
+
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
|
286 |
+
margin-left: -5em;
|
287 |
+
padding-left: 6em; }
|
288 |
+
|
289 |
+
.select2-container--default .select2-results__option--highlighted[aria-selected] {
|
290 |
+
background-color: #5897fb;
|
291 |
+
color: white; }
|
292 |
+
|
293 |
+
.select2-container--default .select2-results__group {
|
294 |
+
cursor: default;
|
295 |
+
display: block;
|
296 |
+
padding: 6px; }
|
297 |
+
|
298 |
+
.select2-container--classic .select2-selection--single {
|
299 |
+
background-color: #f7f7f7;
|
300 |
+
border: 1px solid #aaa;
|
301 |
+
border-radius: 4px;
|
302 |
+
outline: 0;
|
303 |
+
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
|
304 |
+
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
|
305 |
+
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
|
306 |
+
background-repeat: repeat-x;
|
307 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
308 |
+
.select2-container--classic .select2-selection--single:focus {
|
309 |
+
border: 1px solid #5897fb; }
|
310 |
+
.select2-container--classic .select2-selection--single .select2-selection__rendered {
|
311 |
+
color: #444;
|
312 |
+
line-height: 28px; }
|
313 |
+
.select2-container--classic .select2-selection--single .select2-selection__clear {
|
314 |
+
cursor: pointer;
|
315 |
+
float: right;
|
316 |
+
font-weight: bold;
|
317 |
+
margin-right: 10px; }
|
318 |
+
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
|
319 |
+
color: #999; }
|
320 |
+
.select2-container--classic .select2-selection--single .select2-selection__arrow {
|
321 |
+
background-color: #ddd;
|
322 |
+
border: none;
|
323 |
+
border-left: 1px solid #aaa;
|
324 |
+
border-top-right-radius: 4px;
|
325 |
+
border-bottom-right-radius: 4px;
|
326 |
+
height: 26px;
|
327 |
+
position: absolute;
|
328 |
+
top: 1px;
|
329 |
+
right: 1px;
|
330 |
+
width: 20px;
|
331 |
+
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
332 |
+
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
|
333 |
+
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
|
334 |
+
background-repeat: repeat-x;
|
335 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
|
336 |
+
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
|
337 |
+
border-color: #888 transparent transparent transparent;
|
338 |
+
border-style: solid;
|
339 |
+
border-width: 5px 4px 0 4px;
|
340 |
+
height: 0;
|
341 |
+
left: 50%;
|
342 |
+
margin-left: -4px;
|
343 |
+
margin-top: -2px;
|
344 |
+
position: absolute;
|
345 |
+
top: 50%;
|
346 |
+
width: 0; }
|
347 |
+
|
348 |
+
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
|
349 |
+
float: left; }
|
350 |
+
|
351 |
+
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
|
352 |
+
border: none;
|
353 |
+
border-right: 1px solid #aaa;
|
354 |
+
border-radius: 0;
|
355 |
+
border-top-left-radius: 4px;
|
356 |
+
border-bottom-left-radius: 4px;
|
357 |
+
left: 1px;
|
358 |
+
right: auto; }
|
359 |
+
|
360 |
+
.select2-container--classic.select2-container--open .select2-selection--single {
|
361 |
+
border: 1px solid #5897fb; }
|
362 |
+
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
|
363 |
+
background: transparent;
|
364 |
+
border: none; }
|
365 |
+
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
|
366 |
+
border-color: transparent transparent #888 transparent;
|
367 |
+
border-width: 0 4px 5px 4px; }
|
368 |
+
|
369 |
+
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
|
370 |
+
border-top: none;
|
371 |
+
border-top-left-radius: 0;
|
372 |
+
border-top-right-radius: 0;
|
373 |
+
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
|
374 |
+
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
|
375 |
+
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
|
376 |
+
background-repeat: repeat-x;
|
377 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
|
378 |
+
|
379 |
+
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
|
380 |
+
border-bottom: none;
|
381 |
+
border-bottom-left-radius: 0;
|
382 |
+
border-bottom-right-radius: 0;
|
383 |
+
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
|
384 |
+
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
|
385 |
+
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
|
386 |
+
background-repeat: repeat-x;
|
387 |
+
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
|
388 |
+
|
389 |
+
.select2-container--classic .select2-selection--multiple {
|
390 |
+
background-color: white;
|
391 |
+
border: 1px solid #aaa;
|
392 |
+
border-radius: 4px;
|
393 |
+
cursor: text;
|
394 |
+
outline: 0; }
|
395 |
+
.select2-container--classic .select2-selection--multiple:focus {
|
396 |
+
border: 1px solid #5897fb; }
|
397 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
|
398 |
+
list-style: none;
|
399 |
+
margin: 0;
|
400 |
+
padding: 0 5px; }
|
401 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
|
402 |
+
display: none; }
|
403 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
|
404 |
+
background-color: #e4e4e4;
|
405 |
+
border: 1px solid #aaa;
|
406 |
+
border-radius: 4px;
|
407 |
+
cursor: default;
|
408 |
+
float: left;
|
409 |
+
margin-right: 5px;
|
410 |
+
margin-top: 5px;
|
411 |
+
padding: 0 5px; }
|
412 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
|
413 |
+
color: #888;
|
414 |
+
cursor: pointer;
|
415 |
+
display: inline-block;
|
416 |
+
font-weight: bold;
|
417 |
+
margin-right: 2px; }
|
418 |
+
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
|
419 |
+
color: #555; }
|
420 |
+
|
421 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
|
422 |
+
float: right;
|
423 |
+
margin-left: 5px;
|
424 |
+
margin-right: auto; }
|
425 |
+
|
426 |
+
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
|
427 |
+
margin-left: 2px;
|
428 |
+
margin-right: auto; }
|
429 |
+
|
430 |
+
.select2-container--classic.select2-container--open .select2-selection--multiple {
|
431 |
+
border: 1px solid #5897fb; }
|
432 |
+
|
433 |
+
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
|
434 |
+
border-top: none;
|
435 |
+
border-top-left-radius: 0;
|
436 |
+
border-top-right-radius: 0; }
|
437 |
+
|
438 |
+
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
|
439 |
+
border-bottom: none;
|
440 |
+
border-bottom-left-radius: 0;
|
441 |
+
border-bottom-right-radius: 0; }
|
442 |
+
|
443 |
+
.select2-container--classic .select2-search--dropdown .select2-search__field {
|
444 |
+
border: 1px solid #aaa;
|
445 |
+
outline: 0; }
|
446 |
+
|
447 |
+
.select2-container--classic .select2-search--inline .select2-search__field {
|
448 |
+
outline: 0;
|
449 |
+
box-shadow: none; }
|
450 |
+
|
451 |
+
.select2-container--classic .select2-dropdown {
|
452 |
+
background-color: white;
|
453 |
+
border: 1px solid transparent; }
|
454 |
+
|
455 |
+
.select2-container--classic .select2-dropdown--above {
|
456 |
+
border-bottom: none; }
|
457 |
+
|
458 |
+
.select2-container--classic .select2-dropdown--below {
|
459 |
+
border-top: none; }
|
460 |
+
|
461 |
+
.select2-container--classic .select2-results > .select2-results__options {
|
462 |
+
max-height: 200px;
|
463 |
+
overflow-y: auto; }
|
464 |
+
|
465 |
+
.select2-container--classic .select2-results__option[role=group] {
|
466 |
+
padding: 0; }
|
467 |
+
|
468 |
+
.select2-container--classic .select2-results__option[aria-disabled=true] {
|
469 |
+
color: grey; }
|
470 |
+
|
471 |
+
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
|
472 |
+
background-color: #3875d7;
|
473 |
+
color: white; }
|
474 |
+
|
475 |
+
.select2-container--classic .select2-results__group {
|
476 |
+
cursor: default;
|
477 |
+
display: block;
|
478 |
+
padding: 6px; }
|
479 |
+
|
480 |
+
.select2-container--classic.select2-container--open .select2-dropdown {
|
481 |
+
border-color: #5897fb; }
|
_static/admin/css/vendor/select2/select2.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px;padding:1px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
|
_static/admin/css/widgets.css
ADDED
@@ -0,0 +1,574 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/* SELECTOR (FILTER INTERFACE) */
|
2 |
+
|
3 |
+
.selector {
|
4 |
+
width: 800px;
|
5 |
+
float: left;
|
6 |
+
}
|
7 |
+
|
8 |
+
.selector select {
|
9 |
+
width: 380px;
|
10 |
+
height: 17.2em;
|
11 |
+
}
|
12 |
+
|
13 |
+
.selector-available, .selector-chosen {
|
14 |
+
float: left;
|
15 |
+
width: 380px;
|
16 |
+
text-align: center;
|
17 |
+
margin-bottom: 5px;
|
18 |
+
}
|
19 |
+
|
20 |
+
.selector-chosen select {
|
21 |
+
border-top: none;
|
22 |
+
}
|
23 |
+
|
24 |
+
.selector-available h2, .selector-chosen h2 {
|
25 |
+
border: 1px solid #ccc;
|
26 |
+
border-radius: 4px 4px 0 0;
|
27 |
+
}
|
28 |
+
|
29 |
+
.selector-chosen h2 {
|
30 |
+
background: #79aec8;
|
31 |
+
color: #fff;
|
32 |
+
}
|
33 |
+
|
34 |
+
.selector .selector-available h2 {
|
35 |
+
background: #f8f8f8;
|
36 |
+
color: #666;
|
37 |
+
}
|
38 |
+
|
39 |
+
.selector .selector-filter {
|
40 |
+
background: white;
|
41 |
+
border: 1px solid #ccc;
|
42 |
+
border-width: 0 1px;
|
43 |
+
padding: 8px;
|
44 |
+
color: #999;
|
45 |
+
font-size: 10px;
|
46 |
+
margin: 0;
|
47 |
+
text-align: left;
|
48 |
+
}
|
49 |
+
|
50 |
+
.selector .selector-filter label,
|
51 |
+
.inline-group .aligned .selector .selector-filter label {
|
52 |
+
float: left;
|
53 |
+
margin: 7px 0 0;
|
54 |
+
width: 18px;
|
55 |
+
height: 18px;
|
56 |
+
padding: 0;
|
57 |
+
overflow: hidden;
|
58 |
+
line-height: 1;
|
59 |
+
}
|
60 |
+
|
61 |
+
.selector .selector-available input {
|
62 |
+
width: 320px;
|
63 |
+
margin-left: 8px;
|
64 |
+
}
|
65 |
+
|
66 |
+
.selector ul.selector-chooser {
|
67 |
+
float: left;
|
68 |
+
width: 22px;
|
69 |
+
background-color: #eee;
|
70 |
+
border-radius: 10px;
|
71 |
+
margin: 10em 5px 0 5px;
|
72 |
+
padding: 0;
|
73 |
+
}
|
74 |
+
|
75 |
+
.selector-chooser li {
|
76 |
+
margin: 0;
|
77 |
+
padding: 3px;
|
78 |
+
list-style-type: none;
|
79 |
+
}
|
80 |
+
|
81 |
+
.selector select {
|
82 |
+
padding: 0 10px;
|
83 |
+
margin: 0 0 10px;
|
84 |
+
border-radius: 0 0 4px 4px;
|
85 |
+
}
|
86 |
+
|
87 |
+
.selector-add, .selector-remove {
|
88 |
+
width: 16px;
|
89 |
+
height: 16px;
|
90 |
+
display: block;
|
91 |
+
text-indent: -3000px;
|
92 |
+
overflow: hidden;
|
93 |
+
cursor: default;
|
94 |
+
opacity: 0.3;
|
95 |
+
}
|
96 |
+
|
97 |
+
.active.selector-add, .active.selector-remove {
|
98 |
+
opacity: 1;
|
99 |
+
}
|
100 |
+
|
101 |
+
.active.selector-add:hover, .active.selector-remove:hover {
|
102 |
+
cursor: pointer;
|
103 |
+
}
|
104 |
+
|
105 |
+
.selector-add {
|
106 |
+
background: url(../img/selector-icons.svg) 0 -96px no-repeat;
|
107 |
+
}
|
108 |
+
|
109 |
+
.active.selector-add:focus, .active.selector-add:hover {
|
110 |
+
background-position: 0 -112px;
|
111 |
+
}
|
112 |
+
|
113 |
+
.selector-remove {
|
114 |
+
background: url(../img/selector-icons.svg) 0 -64px no-repeat;
|
115 |
+
}
|
116 |
+
|
117 |
+
.active.selector-remove:focus, .active.selector-remove:hover {
|
118 |
+
background-position: 0 -80px;
|
119 |
+
}
|
120 |
+
|
121 |
+
a.selector-chooseall, a.selector-clearall {
|
122 |
+
display: inline-block;
|
123 |
+
height: 16px;
|
124 |
+
text-align: left;
|
125 |
+
margin: 1px auto 3px;
|
126 |
+
overflow: hidden;
|
127 |
+
font-weight: bold;
|
128 |
+
line-height: 16px;
|
129 |
+
color: #666;
|
130 |
+
text-decoration: none;
|
131 |
+
opacity: 0.3;
|
132 |
+
}
|
133 |
+
|
134 |
+
a.active.selector-chooseall:focus, a.active.selector-clearall:focus,
|
135 |
+
a.active.selector-chooseall:hover, a.active.selector-clearall:hover {
|
136 |
+
color: #447e9b;
|
137 |
+
}
|
138 |
+
|
139 |
+
a.active.selector-chooseall, a.active.selector-clearall {
|
140 |
+
opacity: 1;
|
141 |
+
}
|
142 |
+
|
143 |
+
a.active.selector-chooseall:hover, a.active.selector-clearall:hover {
|
144 |
+
cursor: pointer;
|
145 |
+
}
|
146 |
+
|
147 |
+
a.selector-chooseall {
|
148 |
+
padding: 0 18px 0 0;
|
149 |
+
background: url(../img/selector-icons.svg) right -160px no-repeat;
|
150 |
+
cursor: default;
|
151 |
+
}
|
152 |
+
|
153 |
+
a.active.selector-chooseall:focus, a.active.selector-chooseall:hover {
|
154 |
+
background-position: 100% -176px;
|
155 |
+
}
|
156 |
+
|
157 |
+
a.selector-clearall {
|
158 |
+
padding: 0 0 0 18px;
|
159 |
+
background: url(../img/selector-icons.svg) 0 -128px no-repeat;
|
160 |
+
cursor: default;
|
161 |
+
}
|
162 |
+
|
163 |
+
a.active.selector-clearall:focus, a.active.selector-clearall:hover {
|
164 |
+
background-position: 0 -144px;
|
165 |
+
}
|
166 |
+
|
167 |
+
/* STACKED SELECTORS */
|
168 |
+
|
169 |
+
.stacked {
|
170 |
+
float: left;
|
171 |
+
width: 490px;
|
172 |
+
}
|
173 |
+
|
174 |
+
.stacked select {
|
175 |
+
width: 480px;
|
176 |
+
height: 10.1em;
|
177 |
+
}
|
178 |
+
|
179 |
+
.stacked .selector-available, .stacked .selector-chosen {
|
180 |
+
width: 480px;
|
181 |
+
}
|
182 |
+
|
183 |
+
.stacked .selector-available {
|
184 |
+
margin-bottom: 0;
|
185 |
+
}
|
186 |
+
|
187 |
+
.stacked .selector-available input {
|
188 |
+
width: 422px;
|
189 |
+
}
|
190 |
+
|
191 |
+
.stacked ul.selector-chooser {
|
192 |
+
height: 22px;
|
193 |
+
width: 50px;
|
194 |
+
margin: 0 0 10px 40%;
|
195 |
+
background-color: #eee;
|
196 |
+
border-radius: 10px;
|
197 |
+
}
|
198 |
+
|
199 |
+
.stacked .selector-chooser li {
|
200 |
+
float: left;
|
201 |
+
padding: 3px 3px 3px 5px;
|
202 |
+
}
|
203 |
+
|
204 |
+
.stacked .selector-chooseall, .stacked .selector-clearall {
|
205 |
+
display: none;
|
206 |
+
}
|
207 |
+
|
208 |
+
.stacked .selector-add {
|
209 |
+
background: url(../img/selector-icons.svg) 0 -32px no-repeat;
|
210 |
+
cursor: default;
|
211 |
+
}
|
212 |
+
|
213 |
+
.stacked .active.selector-add {
|
214 |
+
background-position: 0 -32px;
|
215 |
+
cursor: pointer;
|
216 |
+
}
|
217 |
+
|
218 |
+
.stacked .active.selector-add:focus, .stacked .active.selector-add:hover {
|
219 |
+
background-position: 0 -48px;
|
220 |
+
cursor: pointer;
|
221 |
+
}
|
222 |
+
|
223 |
+
.stacked .selector-remove {
|
224 |
+
background: url(../img/selector-icons.svg) 0 0 no-repeat;
|
225 |
+
cursor: default;
|
226 |
+
}
|
227 |
+
|
228 |
+
.stacked .active.selector-remove {
|
229 |
+
background-position: 0 0px;
|
230 |
+
cursor: pointer;
|
231 |
+
}
|
232 |
+
|
233 |
+
.stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover {
|
234 |
+
background-position: 0 -16px;
|
235 |
+
cursor: pointer;
|
236 |
+
}
|
237 |
+
|
238 |
+
.selector .help-icon {
|
239 |
+
background: url(../img/icon-unknown.svg) 0 0 no-repeat;
|
240 |
+
display: inline-block;
|
241 |
+
vertical-align: middle;
|
242 |
+
margin: -2px 0 0 2px;
|
243 |
+
width: 13px;
|
244 |
+
height: 13px;
|
245 |
+
}
|
246 |
+
|
247 |
+
.selector .selector-chosen .help-icon {
|
248 |
+
background: url(../img/icon-unknown-alt.svg) 0 0 no-repeat;
|
249 |
+
}
|
250 |
+
|
251 |
+
.selector .search-label-icon {
|
252 |
+
background: url(../img/search.svg) 0 0 no-repeat;
|
253 |
+
display: inline-block;
|
254 |
+
height: 18px;
|
255 |
+
width: 18px;
|
256 |
+
}
|
257 |
+
|
258 |
+
/* DATE AND TIME */
|
259 |
+
|
260 |
+
p.datetime {
|
261 |
+
line-height: 20px;
|
262 |
+
margin: 0;
|
263 |
+
padding: 0;
|
264 |
+
color: #666;
|
265 |
+
font-weight: bold;
|
266 |
+
}
|
267 |
+
|
268 |
+
.datetime span {
|
269 |
+
white-space: nowrap;
|
270 |
+
font-weight: normal;
|
271 |
+
font-size: 11px;
|
272 |
+
color: #ccc;
|
273 |
+
}
|
274 |
+
|
275 |
+
.datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField {
|
276 |
+
margin-left: 5px;
|
277 |
+
margin-bottom: 4px;
|
278 |
+
}
|
279 |
+
|
280 |
+
table p.datetime {
|
281 |
+
font-size: 11px;
|
282 |
+
margin-left: 0;
|
283 |
+
padding-left: 0;
|
284 |
+
}
|
285 |
+
|
286 |
+
.datetimeshortcuts .clock-icon, .datetimeshortcuts .date-icon {
|
287 |
+
position: relative;
|
288 |
+
display: inline-block;
|
289 |
+
vertical-align: middle;
|
290 |
+
height: 16px;
|
291 |
+
width: 16px;
|
292 |
+
overflow: hidden;
|
293 |
+
}
|
294 |
+
|
295 |
+
.datetimeshortcuts .clock-icon {
|
296 |
+
background: url(../img/icon-clock.svg) 0 0 no-repeat;
|
297 |
+
}
|
298 |
+
|
299 |
+
.datetimeshortcuts a:focus .clock-icon,
|
300 |
+
.datetimeshortcuts a:hover .clock-icon {
|
301 |
+
background-position: 0 -16px;
|
302 |
+
}
|
303 |
+
|
304 |
+
.datetimeshortcuts .date-icon {
|
305 |
+
background: url(../img/icon-calendar.svg) 0 0 no-repeat;
|
306 |
+
top: -1px;
|
307 |
+
}
|
308 |
+
|
309 |
+
.datetimeshortcuts a:focus .date-icon,
|
310 |
+
.datetimeshortcuts a:hover .date-icon {
|
311 |
+
background-position: 0 -16px;
|
312 |
+
}
|
313 |
+
|
314 |
+
.timezonewarning {
|
315 |
+
font-size: 11px;
|
316 |
+
color: #999;
|
317 |
+
}
|
318 |
+
|
319 |
+
/* URL */
|
320 |
+
|
321 |
+
p.url {
|
322 |
+
line-height: 20px;
|
323 |
+
margin: 0;
|
324 |
+
padding: 0;
|
325 |
+
color: #666;
|
326 |
+
font-size: 11px;
|
327 |
+
font-weight: bold;
|
328 |
+
}
|
329 |
+
|
330 |
+
.url a {
|
331 |
+
font-weight: normal;
|
332 |
+
}
|
333 |
+
|
334 |
+
/* FILE UPLOADS */
|
335 |
+
|
336 |
+
p.file-upload {
|
337 |
+
line-height: 20px;
|
338 |
+
margin: 0;
|
339 |
+
padding: 0;
|
340 |
+
color: #666;
|
341 |
+
font-size: 11px;
|
342 |
+
font-weight: bold;
|
343 |
+
}
|
344 |
+
|
345 |
+
.aligned p.file-upload {
|
346 |
+
margin-left: 170px;
|
347 |
+
}
|
348 |
+
|
349 |
+
.file-upload a {
|
350 |
+
font-weight: normal;
|
351 |
+
}
|
352 |
+
|
353 |
+
.file-upload .deletelink {
|
354 |
+
margin-left: 5px;
|
355 |
+
}
|
356 |
+
|
357 |
+
span.clearable-file-input label {
|
358 |
+
color: #333;
|
359 |
+
font-size: 11px;
|
360 |
+
display: inline;
|
361 |
+
float: none;
|
362 |
+
}
|
363 |
+
|
364 |
+
/* CALENDARS & CLOCKS */
|
365 |
+
|
366 |
+
.calendarbox, .clockbox {
|
367 |
+
margin: 5px auto;
|
368 |
+
font-size: 12px;
|
369 |
+
width: 19em;
|
370 |
+
text-align: center;
|
371 |
+
background: white;
|
372 |
+
border: 1px solid #ddd;
|
373 |
+
border-radius: 4px;
|
374 |
+
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
|
375 |
+
overflow: hidden;
|
376 |
+
position: relative;
|
377 |
+
}
|
378 |
+
|
379 |
+
.clockbox {
|
380 |
+
width: auto;
|
381 |
+
}
|
382 |
+
|
383 |
+
.calendar {
|
384 |
+
margin: 0;
|
385 |
+
padding: 0;
|
386 |
+
}
|
387 |
+
|
388 |
+
.calendar table {
|
389 |
+
margin: 0;
|
390 |
+
padding: 0;
|
391 |
+
border-collapse: collapse;
|
392 |
+
background: white;
|
393 |
+
width: 100%;
|
394 |
+
}
|
395 |
+
|
396 |
+
.calendar caption, .calendarbox h2 {
|
397 |
+
margin: 0;
|
398 |
+
text-align: center;
|
399 |
+
border-top: none;
|
400 |
+
background: #f5dd5d;
|
401 |
+
font-weight: 700;
|
402 |
+
font-size: 12px;
|
403 |
+
color: #333;
|
404 |
+
}
|
405 |
+
|
406 |
+
.calendar th {
|
407 |
+
padding: 8px 5px;
|
408 |
+
background: #f8f8f8;
|
409 |
+
border-bottom: 1px solid #ddd;
|
410 |
+
font-weight: 400;
|
411 |
+
font-size: 12px;
|
412 |
+
text-align: center;
|
413 |
+
color: #666;
|
414 |
+
}
|
415 |
+
|
416 |
+
.calendar td {
|
417 |
+
font-weight: 400;
|
418 |
+
font-size: 12px;
|
419 |
+
text-align: center;
|
420 |
+
padding: 0;
|
421 |
+
border-top: 1px solid #eee;
|
422 |
+
border-bottom: none;
|
423 |
+
}
|
424 |
+
|
425 |
+
.calendar td.selected a {
|
426 |
+
background: #79aec8;
|
427 |
+
color: #fff;
|
428 |
+
}
|
429 |
+
|
430 |
+
.calendar td.nonday {
|
431 |
+
background: #f8f8f8;
|
432 |
+
}
|
433 |
+
|
434 |
+
.calendar td.today a {
|
435 |
+
font-weight: 700;
|
436 |
+
}
|
437 |
+
|
438 |
+
.calendar td a, .timelist a {
|
439 |
+
display: block;
|
440 |
+
font-weight: 400;
|
441 |
+
padding: 6px;
|
442 |
+
text-decoration: none;
|
443 |
+
color: #444;
|
444 |
+
}
|
445 |
+
|
446 |
+
.calendar td a:focus, .timelist a:focus,
|
447 |
+
.calendar td a:hover, .timelist a:hover {
|
448 |
+
background: #79aec8;
|
449 |
+
color: white;
|
450 |
+
}
|
451 |
+
|
452 |
+
.calendar td a:active, .timelist a:active {
|
453 |
+
background: #417690;
|
454 |
+
color: white;
|
455 |
+
}
|
456 |
+
|
457 |
+
.calendarnav {
|
458 |
+
font-size: 10px;
|
459 |
+
text-align: center;
|
460 |
+
color: #ccc;
|
461 |
+
margin: 0;
|
462 |
+
padding: 1px 3px;
|
463 |
+
}
|
464 |
+
|
465 |
+
.calendarnav a:link, #calendarnav a:visited,
|
466 |
+
#calendarnav a:focus, #calendarnav a:hover {
|
467 |
+
color: #999;
|
468 |
+
}
|
469 |
+
|
470 |
+
.calendar-shortcuts {
|
471 |
+
background: white;
|
472 |
+
font-size: 11px;
|
473 |
+
line-height: 11px;
|
474 |
+
border-top: 1px solid #eee;
|
475 |
+
padding: 8px 0;
|
476 |
+
color: #ccc;
|
477 |
+
}
|
478 |
+
|
479 |
+
.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next {
|
480 |
+
display: block;
|
481 |
+
position: absolute;
|
482 |
+
top: 8px;
|
483 |
+
width: 15px;
|
484 |
+
height: 15px;
|
485 |
+
text-indent: -9999px;
|
486 |
+
padding: 0;
|
487 |
+
}
|
488 |
+
|
489 |
+
.calendarnav-previous {
|
490 |
+
left: 10px;
|
491 |
+
background: url(../img/calendar-icons.svg) 0 0 no-repeat;
|
492 |
+
}
|
493 |
+
|
494 |
+
.calendarbox .calendarnav-previous:focus,
|
495 |
+
.calendarbox .calendarnav-previous:hover {
|
496 |
+
background-position: 0 -15px;
|
497 |
+
}
|
498 |
+
|
499 |
+
.calendarnav-next {
|
500 |
+
right: 10px;
|
501 |
+
background: url(../img/calendar-icons.svg) 0 -30px no-repeat;
|
502 |
+
}
|
503 |
+
|
504 |
+
.calendarbox .calendarnav-next:focus,
|
505 |
+
.calendarbox .calendarnav-next:hover {
|
506 |
+
background-position: 0 -45px;
|
507 |
+
}
|
508 |
+
|
509 |
+
.calendar-cancel {
|
510 |
+
margin: 0;
|
511 |
+
padding: 4px 0;
|
512 |
+
font-size: 12px;
|
513 |
+
background: #eee;
|
514 |
+
border-top: 1px solid #ddd;
|
515 |
+
color: #333;
|
516 |
+
}
|
517 |
+
|
518 |
+
.calendar-cancel:focus, .calendar-cancel:hover {
|
519 |
+
background: #ddd;
|
520 |
+
}
|
521 |
+
|
522 |
+
.calendar-cancel a {
|
523 |
+
color: black;
|
524 |
+
display: block;
|
525 |
+
}
|
526 |
+
|
527 |
+
ul.timelist, .timelist li {
|
528 |
+
list-style-type: none;
|
529 |
+
margin: 0;
|
530 |
+
padding: 0;
|
531 |
+
}
|
532 |
+
|
533 |
+
.timelist a {
|
534 |
+
padding: 2px;
|
535 |
+
}
|
536 |
+
|
537 |
+
/* EDIT INLINE */
|
538 |
+
|
539 |
+
.inline-deletelink {
|
540 |
+
float: right;
|
541 |
+
text-indent: -9999px;
|
542 |
+
background: url(../img/inline-delete.svg) 0 0 no-repeat;
|
543 |
+
width: 16px;
|
544 |
+
height: 16px;
|
545 |
+
border: 0px none;
|
546 |
+
}
|
547 |
+
|
548 |
+
.inline-deletelink:focus, .inline-deletelink:hover {
|
549 |
+
cursor: pointer;
|
550 |
+
}
|
551 |
+
|
552 |
+
/* RELATED WIDGET WRAPPER */
|
553 |
+
.related-widget-wrapper {
|
554 |
+
float: left; /* display properly in form rows with multiple fields */
|
555 |
+
overflow: hidden; /* clear floated contents */
|
556 |
+
}
|
557 |
+
|
558 |
+
.related-widget-wrapper-link {
|
559 |
+
opacity: 0.3;
|
560 |
+
}
|
561 |
+
|
562 |
+
.related-widget-wrapper-link:link {
|
563 |
+
opacity: .8;
|
564 |
+
}
|
565 |
+
|
566 |
+
.related-widget-wrapper-link:link:focus,
|
567 |
+
.related-widget-wrapper-link:link:hover {
|
568 |
+
opacity: 1;
|
569 |
+
}
|
570 |
+
|
571 |
+
select + .related-widget-wrapper-link,
|
572 |
+
.related-widget-wrapper-link + .related-widget-wrapper-link {
|
573 |
+
margin-left: 7px;
|
574 |
+
}
|
_static/admin/fonts/LICENSE.txt
ADDED
@@ -0,0 +1,202 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
Apache License
|
3 |
+
Version 2.0, January 2004
|
4 |
+
http://www.apache.org/licenses/
|
5 |
+
|
6 |
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
7 |
+
|
8 |
+
1. Definitions.
|
9 |
+
|
10 |
+
"License" shall mean the terms and conditions for use, reproduction,
|
11 |
+
and distribution as defined by Sections 1 through 9 of this document.
|
12 |
+
|
13 |
+
"Licensor" shall mean the copyright owner or entity authorized by
|
14 |
+
the copyright owner that is granting the License.
|
15 |
+
|
16 |
+
"Legal Entity" shall mean the union of the acting entity and all
|
17 |
+
other entities that control, are controlled by, or are under common
|
18 |
+
control with that entity. For the purposes of this definition,
|
19 |
+
"control" means (i) the power, direct or indirect, to cause the
|
20 |
+
direction or management of such entity, whether by contract or
|
21 |
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
22 |
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
23 |
+
|
24 |
+
"You" (or "Your") shall mean an individual or Legal Entity
|
25 |
+
exercising permissions granted by this License.
|
26 |
+
|
27 |
+
"Source" form shall mean the preferred form for making modifications,
|
28 |
+
including but not limited to software source code, documentation
|
29 |
+
source, and configuration files.
|
30 |
+
|
31 |
+
"Object" form shall mean any form resulting from mechanical
|
32 |
+
transformation or translation of a Source form, including but
|
33 |
+
not limited to compiled object code, generated documentation,
|
34 |
+
and conversions to other media types.
|
35 |
+
|
36 |
+
"Work" shall mean the work of authorship, whether in Source or
|
37 |
+
Object form, made available under the License, as indicated by a
|
38 |
+
copyright notice that is included in or attached to the work
|
39 |
+
(an example is provided in the Appendix below).
|
40 |
+
|
41 |
+
"Derivative Works" shall mean any work, whether in Source or Object
|
42 |
+
form, that is based on (or derived from) the Work and for which the
|
43 |
+
editorial revisions, annotations, elaborations, or other modifications
|
44 |
+
represent, as a whole, an original work of authorship. For the purposes
|
45 |
+
of this License, Derivative Works shall not include works that remain
|
46 |
+
separable from, or merely link (or bind by name) to the interfaces of,
|
47 |
+
the Work and Derivative Works thereof.
|
48 |
+
|
49 |
+
"Contribution" shall mean any work of authorship, including
|
50 |
+
the original version of the Work and any modifications or additions
|
51 |
+
to that Work or Derivative Works thereof, that is intentionally
|
52 |
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
53 |
+
or by an individual or Legal Entity authorized to submit on behalf of
|
54 |
+
the copyright owner. For the purposes of this definition, "submitted"
|
55 |
+
means any form of electronic, verbal, or written communication sent
|
56 |
+
to the Licensor or its representatives, including but not limited to
|
57 |
+
communication on electronic mailing lists, source code control systems,
|
58 |
+
and issue tracking systems that are managed by, or on behalf of, the
|
59 |
+
Licensor for the purpose of discussing and improving the Work, but
|
60 |
+
excluding communication that is conspicuously marked or otherwise
|
61 |
+
designated in writing by the copyright owner as "Not a Contribution."
|
62 |
+
|
63 |
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
64 |
+
on behalf of whom a Contribution has been received by Licensor and
|
65 |
+
subsequently incorporated within the Work.
|
66 |
+
|
67 |
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
68 |
+
this License, each Contributor hereby grants to You a perpetual,
|
69 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
70 |
+
copyright license to reproduce, prepare Derivative Works of,
|
71 |
+
publicly display, publicly perform, sublicense, and distribute the
|
72 |
+
Work and such Derivative Works in Source or Object form.
|
73 |
+
|
74 |
+
3. Grant of Patent License. Subject to the terms and conditions of
|
75 |
+
this License, each Contributor hereby grants to You a perpetual,
|
76 |
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
77 |
+
(except as stated in this section) patent license to make, have made,
|
78 |
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
79 |
+
where such license applies only to those patent claims licensable
|
80 |
+
by such Contributor that are necessarily infringed by their
|
81 |
+
Contribution(s) alone or by combination of their Contribution(s)
|
82 |
+
with the Work to which such Contribution(s) was submitted. If You
|
83 |
+
institute patent litigation against any entity (including a
|
84 |
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
85 |
+
or a Contribution incorporated within the Work constitutes direct
|
86 |
+
or contributory patent infringement, then any patent licenses
|
87 |
+
granted to You under this License for that Work shall terminate
|
88 |
+
as of the date such litigation is filed.
|
89 |
+
|
90 |
+
4. Redistribution. You may reproduce and distribute copies of the
|
91 |
+
Work or Derivative Works thereof in any medium, with or without
|
92 |
+
modifications, and in Source or Object form, provided that You
|
93 |
+
meet the following conditions:
|
94 |
+
|
95 |
+
(a) You must give any other recipients of the Work or
|
96 |
+
Derivative Works a copy of this License; and
|
97 |
+
|
98 |
+
(b) You must cause any modified files to carry prominent notices
|
99 |
+
stating that You changed the files; and
|
100 |
+
|
101 |
+
(c) You must retain, in the Source form of any Derivative Works
|
102 |
+
that You distribute, all copyright, patent, trademark, and
|
103 |
+
attribution notices from the Source form of the Work,
|
104 |
+
excluding those notices that do not pertain to any part of
|
105 |
+
the Derivative Works; and
|
106 |
+
|
107 |
+
(d) If the Work includes a "NOTICE" text file as part of its
|
108 |
+
distribution, then any Derivative Works that You distribute must
|
109 |
+
include a readable copy of the attribution notices contained
|
110 |
+
within such NOTICE file, excluding those notices that do not
|
111 |
+
pertain to any part of the Derivative Works, in at least one
|
112 |
+
of the following places: within a NOTICE text file distributed
|
113 |
+
as part of the Derivative Works; within the Source form or
|
114 |
+
documentation, if provided along with the Derivative Works; or,
|
115 |
+
within a display generated by the Derivative Works, if and
|
116 |
+
wherever such third-party notices normally appear. The contents
|
117 |
+
of the NOTICE file are for informational purposes only and
|
118 |
+
do not modify the License. You may add Your own attribution
|
119 |
+
notices within Derivative Works that You distribute, alongside
|
120 |
+
or as an addendum to the NOTICE text from the Work, provided
|
121 |
+
that such additional attribution notices cannot be construed
|
122 |
+
as modifying the License.
|
123 |
+
|
124 |
+
You may add Your own copyright statement to Your modifications and
|
125 |
+
may provide additional or different license terms and conditions
|
126 |
+
for use, reproduction, or distribution of Your modifications, or
|
127 |
+
for any such Derivative Works as a whole, provided Your use,
|
128 |
+
reproduction, and distribution of the Work otherwise complies with
|
129 |
+
the conditions stated in this License.
|
130 |
+
|
131 |
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
132 |
+
any Contribution intentionally submitted for inclusion in the Work
|
133 |
+
by You to the Licensor shall be under the terms and conditions of
|
134 |
+
this License, without any additional terms or conditions.
|
135 |
+
Notwithstanding the above, nothing herein shall supersede or modify
|
136 |
+
the terms of any separate license agreement you may have executed
|
137 |
+
with Licensor regarding such Contributions.
|
138 |
+
|
139 |
+
6. Trademarks. This License does not grant permission to use the trade
|
140 |
+
names, trademarks, service marks, or product names of the Licensor,
|
141 |
+
except as required for reasonable and customary use in describing the
|
142 |
+
origin of the Work and reproducing the content of the NOTICE file.
|
143 |
+
|
144 |
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
145 |
+
agreed to in writing, Licensor provides the Work (and each
|
146 |
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
147 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
148 |
+
implied, including, without limitation, any warranties or conditions
|
149 |
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
150 |
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
151 |
+
appropriateness of using or redistributing the Work and assume any
|
152 |
+
risks associated with Your exercise of permissions under this License.
|
153 |
+
|
154 |
+
8. Limitation of Liability. In no event and under no legal theory,
|
155 |
+
whether in tort (including negligence), contract, or otherwise,
|
156 |
+
unless required by applicable law (such as deliberate and grossly
|
157 |
+
negligent acts) or agreed to in writing, shall any Contributor be
|
158 |
+
liable to You for damages, including any direct, indirect, special,
|
159 |
+
incidental, or consequential damages of any character arising as a
|
160 |
+
result of this License or out of the use or inability to use the
|
161 |
+
Work (including but not limited to damages for loss of goodwill,
|
162 |
+
work stoppage, computer failure or malfunction, or any and all
|
163 |
+
other commercial damages or losses), even if such Contributor
|
164 |
+
has been advised of the possibility of such damages.
|
165 |
+
|
166 |
+
9. Accepting Warranty or Additional Liability. While redistributing
|
167 |
+
the Work or Derivative Works thereof, You may choose to offer,
|
168 |
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
169 |
+
or other liability obligations and/or rights consistent with this
|
170 |
+
License. However, in accepting such obligations, You may act only
|
171 |
+
on Your own behalf and on Your sole responsibility, not on behalf
|
172 |
+
of any other Contributor, and only if You agree to indemnify,
|
173 |
+
defend, and hold each Contributor harmless for any liability
|
174 |
+
incurred by, or claims asserted against, such Contributor by reason
|
175 |
+
of your accepting any such warranty or additional liability.
|
176 |
+
|
177 |
+
END OF TERMS AND CONDITIONS
|
178 |
+
|
179 |
+
APPENDIX: How to apply the Apache License to your work.
|
180 |
+
|
181 |
+
To apply the Apache License to your work, attach the following
|
182 |
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
183 |
+
replaced with your own identifying information. (Don't include
|
184 |
+
the brackets!) The text should be enclosed in the appropriate
|
185 |
+
comment syntax for the file format. We also recommend that a
|
186 |
+
file or class name and description of purpose be included on the
|
187 |
+
same "printed page" as the copyright notice for easier
|
188 |
+
identification within third-party archives.
|
189 |
+
|
190 |
+
Copyright [yyyy] [name of copyright owner]
|
191 |
+
|
192 |
+
Licensed under the Apache License, Version 2.0 (the "License");
|
193 |
+
you may not use this file except in compliance with the License.
|
194 |
+
You may obtain a copy of the License at
|
195 |
+
|
196 |
+
http://www.apache.org/licenses/LICENSE-2.0
|
197 |
+
|
198 |
+
Unless required by applicable law or agreed to in writing, software
|
199 |
+
distributed under the License is distributed on an "AS IS" BASIS,
|
200 |
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
201 |
+
See the License for the specific language governing permissions and
|
202 |
+
limitations under the License.
|
_static/admin/fonts/README.txt
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
Roboto webfont source: https://www.google.com/fonts/specimen/Roboto
|
2 |
+
WOFF files extracted using https://github.com/majodev/google-webfonts-helper
|
3 |
+
Weights used in this project: Light (300), Regular (400), Bold (700)
|
_static/admin/fonts/Roboto-Bold-webfont.woff
ADDED
Binary file (86.2 kB). View file
|
|
_static/admin/fonts/Roboto-Light-webfont.woff
ADDED
Binary file (85.7 kB). View file
|
|
_static/admin/fonts/Roboto-Regular-webfont.woff
ADDED
Binary file (85.9 kB). View file
|
|
_static/admin/img/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
The MIT License (MIT)
|
2 |
+
|
3 |
+
Copyright (c) 2014 Code Charm Ltd
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
6 |
+
this software and associated documentation files (the "Software"), to deal in
|
7 |
+
the Software without restriction, including without limitation the rights to
|
8 |
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
9 |
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
10 |
+
subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in all
|
13 |
+
copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
17 |
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
18 |
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
19 |
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
20 |
+
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
_static/admin/img/README.txt
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
All icons are taken from Font Awesome (http://fontawesome.io/) project.
|
2 |
+
The Font Awesome font is licensed under the SIL OFL 1.1:
|
3 |
+
- https://scripts.sil.org/OFL
|
4 |
+
|
5 |
+
SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG
|
6 |
+
Font-Awesome-SVG-PNG is licensed under the MIT license (see file license
|
7 |
+
in current folder).
|
_static/admin/img/calendar-icons.svg
ADDED
|
_static/admin/img/gis/move_vertex_off.svg
ADDED
|
_static/admin/img/gis/move_vertex_on.svg
ADDED
|
_static/admin/img/icon-addlink.svg
ADDED
|
_static/admin/img/icon-alert.svg
ADDED
|
_static/admin/img/icon-calendar.svg
ADDED
|
_static/admin/img/icon-changelink.svg
ADDED
|
_static/admin/img/icon-clock.svg
ADDED
|
_static/admin/img/icon-deletelink.svg
ADDED
|
_static/admin/img/icon-no.svg
ADDED
|
_static/admin/img/icon-unknown-alt.svg
ADDED
|
_static/admin/img/icon-unknown.svg
ADDED
|
_static/admin/img/icon-viewlink.svg
ADDED
|
_static/admin/img/icon-yes.svg
ADDED
|
_static/admin/img/inline-delete.svg
ADDED
|
_static/admin/img/search.svg
ADDED
|
_static/admin/img/selector-icons.svg
ADDED
|
_static/admin/img/sorting-icons.svg
ADDED
|
_static/admin/img/tooltag-add.svg
ADDED
|
_static/admin/img/tooltag-arrowright.svg
ADDED
|
_static/admin/js/SelectBox.js
ADDED
@@ -0,0 +1,110 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
{
|
3 |
+
const SelectBox = {
|
4 |
+
cache: {},
|
5 |
+
init: function(id) {
|
6 |
+
const box = document.getElementById(id);
|
7 |
+
SelectBox.cache[id] = [];
|
8 |
+
const cache = SelectBox.cache[id];
|
9 |
+
for (const node of box.options) {
|
10 |
+
cache.push({value: node.value, text: node.text, displayed: 1});
|
11 |
+
}
|
12 |
+
},
|
13 |
+
redisplay: function(id) {
|
14 |
+
// Repopulate HTML select box from cache
|
15 |
+
const box = document.getElementById(id);
|
16 |
+
box.innerHTML = '';
|
17 |
+
for (const node of SelectBox.cache[id]) {
|
18 |
+
if (node.displayed) {
|
19 |
+
const new_option = new Option(node.text, node.value, false, false);
|
20 |
+
// Shows a tooltip when hovering over the option
|
21 |
+
new_option.title = node.text;
|
22 |
+
box.appendChild(new_option);
|
23 |
+
}
|
24 |
+
}
|
25 |
+
},
|
26 |
+
filter: function(id, text) {
|
27 |
+
// Redisplay the HTML select box, displaying only the choices containing ALL
|
28 |
+
// the words in text. (It's an AND search.)
|
29 |
+
const tokens = text.toLowerCase().split(/\s+/);
|
30 |
+
for (const node of SelectBox.cache[id]) {
|
31 |
+
node.displayed = 1;
|
32 |
+
const node_text = node.text.toLowerCase();
|
33 |
+
for (const token of tokens) {
|
34 |
+
if (node_text.indexOf(token) === -1) {
|
35 |
+
node.displayed = 0;
|
36 |
+
break; // Once the first token isn't found we're done
|
37 |
+
}
|
38 |
+
}
|
39 |
+
}
|
40 |
+
SelectBox.redisplay(id);
|
41 |
+
},
|
42 |
+
delete_from_cache: function(id, value) {
|
43 |
+
let delete_index = null;
|
44 |
+
const cache = SelectBox.cache[id];
|
45 |
+
for (const [i, node] of cache.entries()) {
|
46 |
+
if (node.value === value) {
|
47 |
+
delete_index = i;
|
48 |
+
break;
|
49 |
+
}
|
50 |
+
}
|
51 |
+
cache.splice(delete_index, 1);
|
52 |
+
},
|
53 |
+
add_to_cache: function(id, option) {
|
54 |
+
SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1});
|
55 |
+
},
|
56 |
+
cache_contains: function(id, value) {
|
57 |
+
// Check if an item is contained in the cache
|
58 |
+
for (const node of SelectBox.cache[id]) {
|
59 |
+
if (node.value === value) {
|
60 |
+
return true;
|
61 |
+
}
|
62 |
+
}
|
63 |
+
return false;
|
64 |
+
},
|
65 |
+
move: function(from, to) {
|
66 |
+
const from_box = document.getElementById(from);
|
67 |
+
for (const option of from_box.options) {
|
68 |
+
const option_value = option.value;
|
69 |
+
if (option.selected && SelectBox.cache_contains(from, option_value)) {
|
70 |
+
SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1});
|
71 |
+
SelectBox.delete_from_cache(from, option_value);
|
72 |
+
}
|
73 |
+
}
|
74 |
+
SelectBox.redisplay(from);
|
75 |
+
SelectBox.redisplay(to);
|
76 |
+
},
|
77 |
+
move_all: function(from, to) {
|
78 |
+
const from_box = document.getElementById(from);
|
79 |
+
for (const option of from_box.options) {
|
80 |
+
const option_value = option.value;
|
81 |
+
if (SelectBox.cache_contains(from, option_value)) {
|
82 |
+
SelectBox.add_to_cache(to, {value: option_value, text: option.text, displayed: 1});
|
83 |
+
SelectBox.delete_from_cache(from, option_value);
|
84 |
+
}
|
85 |
+
}
|
86 |
+
SelectBox.redisplay(from);
|
87 |
+
SelectBox.redisplay(to);
|
88 |
+
},
|
89 |
+
sort: function(id) {
|
90 |
+
SelectBox.cache[id].sort(function(a, b) {
|
91 |
+
a = a.text.toLowerCase();
|
92 |
+
b = b.text.toLowerCase();
|
93 |
+
if (a > b) {
|
94 |
+
return 1;
|
95 |
+
}
|
96 |
+
if (a < b) {
|
97 |
+
return -1;
|
98 |
+
}
|
99 |
+
return 0;
|
100 |
+
} );
|
101 |
+
},
|
102 |
+
select_all: function(id) {
|
103 |
+
const box = document.getElementById(id);
|
104 |
+
for (const option of box.options) {
|
105 |
+
option.selected = true;
|
106 |
+
}
|
107 |
+
}
|
108 |
+
};
|
109 |
+
window.SelectBox = SelectBox;
|
110 |
+
}
|
_static/admin/js/SelectFilter2.js
ADDED
@@ -0,0 +1,236 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*global SelectBox, gettext, interpolate, quickElement, SelectFilter*/
|
2 |
+
/*
|
3 |
+
SelectFilter2 - Turns a multiple-select box into a filter interface.
|
4 |
+
|
5 |
+
Requires core.js and SelectBox.js.
|
6 |
+
*/
|
7 |
+
'use strict';
|
8 |
+
{
|
9 |
+
window.SelectFilter = {
|
10 |
+
init: function(field_id, field_name, is_stacked) {
|
11 |
+
if (field_id.match(/__prefix__/)) {
|
12 |
+
// Don't initialize on empty forms.
|
13 |
+
return;
|
14 |
+
}
|
15 |
+
const from_box = document.getElementById(field_id);
|
16 |
+
from_box.id += '_from'; // change its ID
|
17 |
+
from_box.className = 'filtered';
|
18 |
+
|
19 |
+
for (const p of from_box.parentNode.getElementsByTagName('p')) {
|
20 |
+
if (p.classList.contains("info")) {
|
21 |
+
// Remove <p class="info">, because it just gets in the way.
|
22 |
+
from_box.parentNode.removeChild(p);
|
23 |
+
} else if (p.classList.contains("help")) {
|
24 |
+
// Move help text up to the top so it isn't below the select
|
25 |
+
// boxes or wrapped off on the side to the right of the add
|
26 |
+
// button:
|
27 |
+
from_box.parentNode.insertBefore(p, from_box.parentNode.firstChild);
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
// <div class="selector"> or <div class="selector stacked">
|
32 |
+
const selector_div = quickElement('div', from_box.parentNode);
|
33 |
+
selector_div.className = is_stacked ? 'selector stacked' : 'selector';
|
34 |
+
|
35 |
+
// <div class="selector-available">
|
36 |
+
const selector_available = quickElement('div', selector_div);
|
37 |
+
selector_available.className = 'selector-available';
|
38 |
+
const title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name]));
|
39 |
+
quickElement(
|
40 |
+
'span', title_available, '',
|
41 |
+
'class', 'help help-tooltip help-icon',
|
42 |
+
'title', interpolate(
|
43 |
+
gettext(
|
44 |
+
'This is the list of available %s. You may choose some by ' +
|
45 |
+
'selecting them in the box below and then clicking the ' +
|
46 |
+
'"Choose" arrow between the two boxes.'
|
47 |
+
),
|
48 |
+
[field_name]
|
49 |
+
)
|
50 |
+
);
|
51 |
+
|
52 |
+
const filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter');
|
53 |
+
filter_p.className = 'selector-filter';
|
54 |
+
|
55 |
+
const search_filter_label = quickElement('label', filter_p, '', 'for', field_id + '_input');
|
56 |
+
|
57 |
+
quickElement(
|
58 |
+
'span', search_filter_label, '',
|
59 |
+
'class', 'help-tooltip search-label-icon',
|
60 |
+
'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name])
|
61 |
+
);
|
62 |
+
|
63 |
+
filter_p.appendChild(document.createTextNode(' '));
|
64 |
+
|
65 |
+
const filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter"));
|
66 |
+
filter_input.id = field_id + '_input';
|
67 |
+
|
68 |
+
selector_available.appendChild(from_box);
|
69 |
+
const choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_add_all_link');
|
70 |
+
choose_all.className = 'selector-chooseall';
|
71 |
+
|
72 |
+
// <ul class="selector-chooser">
|
73 |
+
const selector_chooser = quickElement('ul', selector_div);
|
74 |
+
selector_chooser.className = 'selector-chooser';
|
75 |
+
const add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', '#', 'id', field_id + '_add_link');
|
76 |
+
add_link.className = 'selector-add';
|
77 |
+
const remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', '#', 'id', field_id + '_remove_link');
|
78 |
+
remove_link.className = 'selector-remove';
|
79 |
+
|
80 |
+
// <div class="selector-chosen">
|
81 |
+
const selector_chosen = quickElement('div', selector_div);
|
82 |
+
selector_chosen.className = 'selector-chosen';
|
83 |
+
const title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name]));
|
84 |
+
quickElement(
|
85 |
+
'span', title_chosen, '',
|
86 |
+
'class', 'help help-tooltip help-icon',
|
87 |
+
'title', interpolate(
|
88 |
+
gettext(
|
89 |
+
'This is the list of chosen %s. You may remove some by ' +
|
90 |
+
'selecting them in the box below and then clicking the ' +
|
91 |
+
'"Remove" arrow between the two boxes.'
|
92 |
+
),
|
93 |
+
[field_name]
|
94 |
+
)
|
95 |
+
);
|
96 |
+
|
97 |
+
const to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', '', 'size', from_box.size, 'name', from_box.name);
|
98 |
+
to_box.className = 'filtered';
|
99 |
+
const clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', '#', 'id', field_id + '_remove_all_link');
|
100 |
+
clear_all.className = 'selector-clearall';
|
101 |
+
|
102 |
+
from_box.name = from_box.name + '_old';
|
103 |
+
|
104 |
+
// Set up the JavaScript event handlers for the select box filter interface
|
105 |
+
const move_selection = function(e, elem, move_func, from, to) {
|
106 |
+
if (elem.classList.contains('active')) {
|
107 |
+
move_func(from, to);
|
108 |
+
SelectFilter.refresh_icons(field_id);
|
109 |
+
}
|
110 |
+
e.preventDefault();
|
111 |
+
};
|
112 |
+
choose_all.addEventListener('click', function(e) {
|
113 |
+
move_selection(e, this, SelectBox.move_all, field_id + '_from', field_id + '_to');
|
114 |
+
});
|
115 |
+
add_link.addEventListener('click', function(e) {
|
116 |
+
move_selection(e, this, SelectBox.move, field_id + '_from', field_id + '_to');
|
117 |
+
});
|
118 |
+
remove_link.addEventListener('click', function(e) {
|
119 |
+
move_selection(e, this, SelectBox.move, field_id + '_to', field_id + '_from');
|
120 |
+
});
|
121 |
+
clear_all.addEventListener('click', function(e) {
|
122 |
+
move_selection(e, this, SelectBox.move_all, field_id + '_to', field_id + '_from');
|
123 |
+
});
|
124 |
+
filter_input.addEventListener('keypress', function(e) {
|
125 |
+
SelectFilter.filter_key_press(e, field_id);
|
126 |
+
});
|
127 |
+
filter_input.addEventListener('keyup', function(e) {
|
128 |
+
SelectFilter.filter_key_up(e, field_id);
|
129 |
+
});
|
130 |
+
filter_input.addEventListener('keydown', function(e) {
|
131 |
+
SelectFilter.filter_key_down(e, field_id);
|
132 |
+
});
|
133 |
+
selector_div.addEventListener('change', function(e) {
|
134 |
+
if (e.target.tagName === 'SELECT') {
|
135 |
+
SelectFilter.refresh_icons(field_id);
|
136 |
+
}
|
137 |
+
});
|
138 |
+
selector_div.addEventListener('dblclick', function(e) {
|
139 |
+
if (e.target.tagName === 'OPTION') {
|
140 |
+
if (e.target.closest('select').id === field_id + '_to') {
|
141 |
+
SelectBox.move(field_id + '_to', field_id + '_from');
|
142 |
+
} else {
|
143 |
+
SelectBox.move(field_id + '_from', field_id + '_to');
|
144 |
+
}
|
145 |
+
SelectFilter.refresh_icons(field_id);
|
146 |
+
}
|
147 |
+
});
|
148 |
+
from_box.closest('form').addEventListener('submit', function() {
|
149 |
+
SelectBox.select_all(field_id + '_to');
|
150 |
+
});
|
151 |
+
SelectBox.init(field_id + '_from');
|
152 |
+
SelectBox.init(field_id + '_to');
|
153 |
+
// Move selected from_box options to to_box
|
154 |
+
SelectBox.move(field_id + '_from', field_id + '_to');
|
155 |
+
|
156 |
+
if (!is_stacked) {
|
157 |
+
// In horizontal mode, give the same height to the two boxes.
|
158 |
+
const j_from_box = document.getElementById(field_id + '_from');
|
159 |
+
const j_to_box = document.getElementById(field_id + '_to');
|
160 |
+
let height = filter_p.offsetHeight + j_from_box.offsetHeight;
|
161 |
+
|
162 |
+
const j_to_box_style = window.getComputedStyle(j_to_box);
|
163 |
+
if (j_to_box_style.getPropertyValue('box-sizing') === 'border-box') {
|
164 |
+
// Add the padding and border to the final height.
|
165 |
+
height += parseInt(j_to_box_style.getPropertyValue('padding-top'), 10)
|
166 |
+
+ parseInt(j_to_box_style.getPropertyValue('padding-bottom'), 10)
|
167 |
+
+ parseInt(j_to_box_style.getPropertyValue('border-top-width'), 10)
|
168 |
+
+ parseInt(j_to_box_style.getPropertyValue('border-bottom-width'), 10);
|
169 |
+
}
|
170 |
+
|
171 |
+
j_to_box.style.height = height + 'px';
|
172 |
+
}
|
173 |
+
|
174 |
+
// Initial icon refresh
|
175 |
+
SelectFilter.refresh_icons(field_id);
|
176 |
+
},
|
177 |
+
any_selected: function(field) {
|
178 |
+
// Temporarily add the required attribute and check validity.
|
179 |
+
field.required = true;
|
180 |
+
const any_selected = field.checkValidity();
|
181 |
+
field.required = false;
|
182 |
+
return any_selected;
|
183 |
+
},
|
184 |
+
refresh_icons: function(field_id) {
|
185 |
+
const from = document.getElementById(field_id + '_from');
|
186 |
+
const to = document.getElementById(field_id + '_to');
|
187 |
+
// Active if at least one item is selected
|
188 |
+
document.getElementById(field_id + '_add_link').classList.toggle('active', SelectFilter.any_selected(from));
|
189 |
+
document.getElementById(field_id + '_remove_link').classList.toggle('active', SelectFilter.any_selected(to));
|
190 |
+
// Active if the corresponding box isn't empty
|
191 |
+
document.getElementById(field_id + '_add_all_link').classList.toggle('active', from.querySelector('option'));
|
192 |
+
document.getElementById(field_id + '_remove_all_link').classList.toggle('active', to.querySelector('option'));
|
193 |
+
},
|
194 |
+
filter_key_press: function(event, field_id) {
|
195 |
+
const from = document.getElementById(field_id + '_from');
|
196 |
+
// don't submit form if user pressed Enter
|
197 |
+
if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) {
|
198 |
+
from.selectedIndex = 0;
|
199 |
+
SelectBox.move(field_id + '_from', field_id + '_to');
|
200 |
+
from.selectedIndex = 0;
|
201 |
+
event.preventDefault();
|
202 |
+
}
|
203 |
+
},
|
204 |
+
filter_key_up: function(event, field_id) {
|
205 |
+
const from = document.getElementById(field_id + '_from');
|
206 |
+
const temp = from.selectedIndex;
|
207 |
+
SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value);
|
208 |
+
from.selectedIndex = temp;
|
209 |
+
},
|
210 |
+
filter_key_down: function(event, field_id) {
|
211 |
+
const from = document.getElementById(field_id + '_from');
|
212 |
+
// right arrow -- move across
|
213 |
+
if ((event.which && event.which === 39) || (event.keyCode && event.keyCode === 39)) {
|
214 |
+
const old_index = from.selectedIndex;
|
215 |
+
SelectBox.move(field_id + '_from', field_id + '_to');
|
216 |
+
from.selectedIndex = (old_index === from.length) ? from.length - 1 : old_index;
|
217 |
+
return;
|
218 |
+
}
|
219 |
+
// down arrow -- wrap around
|
220 |
+
if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) {
|
221 |
+
from.selectedIndex = (from.length === from.selectedIndex + 1) ? 0 : from.selectedIndex + 1;
|
222 |
+
}
|
223 |
+
// up arrow -- wrap around
|
224 |
+
if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) {
|
225 |
+
from.selectedIndex = (from.selectedIndex === 0) ? from.length - 1 : from.selectedIndex - 1;
|
226 |
+
}
|
227 |
+
}
|
228 |
+
};
|
229 |
+
|
230 |
+
window.addEventListener('load', function(e) {
|
231 |
+
document.querySelectorAll('select.selectfilter, select.selectfilterstacked').forEach(function(el) {
|
232 |
+
const data = el.dataset;
|
233 |
+
SelectFilter.init(el.id, data.fieldName, parseInt(data.isStacked, 10));
|
234 |
+
});
|
235 |
+
});
|
236 |
+
}
|
_static/admin/js/actions.js
ADDED
@@ -0,0 +1,154 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*global gettext, interpolate, ngettext*/
|
2 |
+
'use strict';
|
3 |
+
{
|
4 |
+
const $ = django.jQuery;
|
5 |
+
let lastChecked;
|
6 |
+
|
7 |
+
$.fn.actions = function(opts) {
|
8 |
+
const options = $.extend({}, $.fn.actions.defaults, opts);
|
9 |
+
const actionCheckboxes = $(this);
|
10 |
+
let list_editable_changed = false;
|
11 |
+
const showQuestion = function() {
|
12 |
+
$(options.acrossClears).hide();
|
13 |
+
$(options.acrossQuestions).show();
|
14 |
+
$(options.allContainer).hide();
|
15 |
+
},
|
16 |
+
showClear = function() {
|
17 |
+
$(options.acrossClears).show();
|
18 |
+
$(options.acrossQuestions).hide();
|
19 |
+
$(options.actionContainer).toggleClass(options.selectedClass);
|
20 |
+
$(options.allContainer).show();
|
21 |
+
$(options.counterContainer).hide();
|
22 |
+
},
|
23 |
+
reset = function() {
|
24 |
+
$(options.acrossClears).hide();
|
25 |
+
$(options.acrossQuestions).hide();
|
26 |
+
$(options.allContainer).hide();
|
27 |
+
$(options.counterContainer).show();
|
28 |
+
},
|
29 |
+
clearAcross = function() {
|
30 |
+
reset();
|
31 |
+
$(options.acrossInput).val(0);
|
32 |
+
$(options.actionContainer).removeClass(options.selectedClass);
|
33 |
+
},
|
34 |
+
checker = function(checked) {
|
35 |
+
if (checked) {
|
36 |
+
showQuestion();
|
37 |
+
} else {
|
38 |
+
reset();
|
39 |
+
}
|
40 |
+
$(actionCheckboxes).prop("checked", checked)
|
41 |
+
.parent().parent().toggleClass(options.selectedClass, checked);
|
42 |
+
},
|
43 |
+
updateCounter = function() {
|
44 |
+
const sel = $(actionCheckboxes).filter(":checked").length;
|
45 |
+
// data-actions-icnt is defined in the generated HTML
|
46 |
+
// and contains the total amount of objects in the queryset
|
47 |
+
const actions_icnt = $('.action-counter').data('actionsIcnt');
|
48 |
+
$(options.counterContainer).html(interpolate(
|
49 |
+
ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), {
|
50 |
+
sel: sel,
|
51 |
+
cnt: actions_icnt
|
52 |
+
}, true));
|
53 |
+
$(options.allToggle).prop("checked", function() {
|
54 |
+
let value;
|
55 |
+
if (sel === actionCheckboxes.length) {
|
56 |
+
value = true;
|
57 |
+
showQuestion();
|
58 |
+
} else {
|
59 |
+
value = false;
|
60 |
+
clearAcross();
|
61 |
+
}
|
62 |
+
return value;
|
63 |
+
});
|
64 |
+
};
|
65 |
+
// Show counter by default
|
66 |
+
$(options.counterContainer).show();
|
67 |
+
// Check state of checkboxes and reinit state if needed
|
68 |
+
$(this).filter(":checked").each(function(i) {
|
69 |
+
$(this).parent().parent().toggleClass(options.selectedClass);
|
70 |
+
updateCounter();
|
71 |
+
if ($(options.acrossInput).val() === 1) {
|
72 |
+
showClear();
|
73 |
+
}
|
74 |
+
});
|
75 |
+
$(options.allToggle).show().on('click', function() {
|
76 |
+
checker($(this).prop("checked"));
|
77 |
+
updateCounter();
|
78 |
+
});
|
79 |
+
$("a", options.acrossQuestions).on('click', function(event) {
|
80 |
+
event.preventDefault();
|
81 |
+
$(options.acrossInput).val(1);
|
82 |
+
showClear();
|
83 |
+
});
|
84 |
+
$("a", options.acrossClears).on('click', function(event) {
|
85 |
+
event.preventDefault();
|
86 |
+
$(options.allToggle).prop("checked", false);
|
87 |
+
clearAcross();
|
88 |
+
checker(0);
|
89 |
+
updateCounter();
|
90 |
+
});
|
91 |
+
lastChecked = null;
|
92 |
+
$(actionCheckboxes).on('click', function(event) {
|
93 |
+
if (!event) { event = window.event; }
|
94 |
+
const target = event.target ? event.target : event.srcElement;
|
95 |
+
if (lastChecked && $.data(lastChecked) !== $.data(target) && event.shiftKey === true) {
|
96 |
+
let inrange = false;
|
97 |
+
$(lastChecked).prop("checked", target.checked)
|
98 |
+
.parent().parent().toggleClass(options.selectedClass, target.checked);
|
99 |
+
$(actionCheckboxes).each(function() {
|
100 |
+
if ($.data(this) === $.data(lastChecked) || $.data(this) === $.data(target)) {
|
101 |
+
inrange = (inrange) ? false : true;
|
102 |
+
}
|
103 |
+
if (inrange) {
|
104 |
+
$(this).prop("checked", target.checked)
|
105 |
+
.parent().parent().toggleClass(options.selectedClass, target.checked);
|
106 |
+
}
|
107 |
+
});
|
108 |
+
}
|
109 |
+
$(target).parent().parent().toggleClass(options.selectedClass, target.checked);
|
110 |
+
lastChecked = target;
|
111 |
+
updateCounter();
|
112 |
+
});
|
113 |
+
$('form#changelist-form table#result_list tr').on('change', 'td:gt(0) :input', function() {
|
114 |
+
list_editable_changed = true;
|
115 |
+
});
|
116 |
+
$('form#changelist-form button[name="index"]').on('click', function(event) {
|
117 |
+
if (list_editable_changed) {
|
118 |
+
return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."));
|
119 |
+
}
|
120 |
+
});
|
121 |
+
$('form#changelist-form input[name="_save"]').on('click', function(event) {
|
122 |
+
let action_changed = false;
|
123 |
+
$('select option:selected', options.actionContainer).each(function() {
|
124 |
+
if ($(this).val()) {
|
125 |
+
action_changed = true;
|
126 |
+
}
|
127 |
+
});
|
128 |
+
if (action_changed) {
|
129 |
+
if (list_editable_changed) {
|
130 |
+
return confirm(gettext("You have selected an action, but you haven’t saved your changes to individual fields yet. Please click OK to save. You’ll need to re-run the action."));
|
131 |
+
} else {
|
132 |
+
return confirm(gettext("You have selected an action, and you haven’t made any changes on individual fields. You’re probably looking for the Go button rather than the Save button."));
|
133 |
+
}
|
134 |
+
}
|
135 |
+
});
|
136 |
+
};
|
137 |
+
/* Setup plugin defaults */
|
138 |
+
$.fn.actions.defaults = {
|
139 |
+
actionContainer: "div.actions",
|
140 |
+
counterContainer: "span.action-counter",
|
141 |
+
allContainer: "div.actions span.all",
|
142 |
+
acrossInput: "div.actions input.select-across",
|
143 |
+
acrossQuestions: "div.actions span.question",
|
144 |
+
acrossClears: "div.actions span.clear",
|
145 |
+
allToggle: "#action-toggle",
|
146 |
+
selectedClass: "selected"
|
147 |
+
};
|
148 |
+
$(document).ready(function() {
|
149 |
+
const $actionsEls = $('tr input.action-select');
|
150 |
+
if ($actionsEls.length > 0) {
|
151 |
+
$actionsEls.actions();
|
152 |
+
}
|
153 |
+
});
|
154 |
+
}
|
_static/admin/js/actions.min.js
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';{const a=django.jQuery;let e;a.fn.actions=function(g){const b=a.extend({},a.fn.actions.defaults,g),f=a(this);let k=!1;const l=function(){a(b.acrossClears).hide();a(b.acrossQuestions).show();a(b.allContainer).hide()},m=function(){a(b.acrossClears).show();a(b.acrossQuestions).hide();a(b.actionContainer).toggleClass(b.selectedClass);a(b.allContainer).show();a(b.counterContainer).hide()},n=function(){a(b.acrossClears).hide();a(b.acrossQuestions).hide();a(b.allContainer).hide();a(b.counterContainer).show()},
|
2 |
+
p=function(){n();a(b.acrossInput).val(0);a(b.actionContainer).removeClass(b.selectedClass)},q=function(c){c?l():n();a(f).prop("checked",c).parent().parent().toggleClass(b.selectedClass,c)},h=function(){const c=a(f).filter(":checked").length,d=a(".action-counter").data("actionsIcnt");a(b.counterContainer).html(interpolate(ngettext("%(sel)s of %(cnt)s selected","%(sel)s of %(cnt)s selected",c),{sel:c,cnt:d},!0));a(b.allToggle).prop("checked",function(){let a;c===f.length?(a=!0,l()):(a=!1,p());return a})};
|
3 |
+
a(b.counterContainer).show();a(this).filter(":checked").each(function(c){a(this).parent().parent().toggleClass(b.selectedClass);h();1===a(b.acrossInput).val()&&m()});a(b.allToggle).show().on("click",function(){q(a(this).prop("checked"));h()});a("a",b.acrossQuestions).on("click",function(c){c.preventDefault();a(b.acrossInput).val(1);m()});a("a",b.acrossClears).on("click",function(c){c.preventDefault();a(b.allToggle).prop("checked",!1);p();q(0);h()});e=null;a(f).on("click",function(c){c||(c=window.event);
|
4 |
+
const d=c.target?c.target:c.srcElement;if(e&&a.data(e)!==a.data(d)&&!0===c.shiftKey){let c=!1;a(e).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked);a(f).each(function(){if(a.data(this)===a.data(e)||a.data(this)===a.data(d))c=c?!1:!0;c&&a(this).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked)})}a(d).parent().parent().toggleClass(b.selectedClass,d.checked);e=d;h()});a("form#changelist-form table#result_list tr").on("change","td:gt(0) :input",
|
5 |
+
function(){k=!0});a('form#changelist-form button[name="index"]').on("click",function(a){if(k)return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."))});a('form#changelist-form input[name="_save"]').on("click",function(c){let d=!1;a("select option:selected",b.actionContainer).each(function(){a(this).val()&&(d=!0)});if(d)return k?confirm(gettext("You have selected an action, but you haven\u2019t saved your changes to individual fields yet. Please click OK to save. You\u2019ll need to re-run the action.")):
|
6 |
+
confirm(gettext("You have selected an action, and you haven\u2019t made any changes on individual fields. You\u2019re probably looking for the Go button rather than the Save button."))})};a.fn.actions.defaults={actionContainer:"div.actions",counterContainer:"span.action-counter",allContainer:"div.actions span.all",acrossInput:"div.actions input.select-across",acrossQuestions:"div.actions span.question",acrossClears:"div.actions span.clear",allToggle:"#action-toggle",selectedClass:"selected"};a(document).ready(function(){const g=
|
7 |
+
a("tr input.action-select");0<g.length&&g.actions()})};
|
_static/admin/js/admin/DateTimeShortcuts.js
ADDED
@@ -0,0 +1,417 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*global Calendar, findPosX, findPosY, get_format, gettext, gettext_noop, interpolate, ngettext, quickElement*/
|
2 |
+
// Inserts shortcut buttons after all of the following:
|
3 |
+
// <input type="text" class="vDateField">
|
4 |
+
// <input type="text" class="vTimeField">
|
5 |
+
'use strict';
|
6 |
+
{
|
7 |
+
const DateTimeShortcuts = {
|
8 |
+
calendars: [],
|
9 |
+
calendarInputs: [],
|
10 |
+
clockInputs: [],
|
11 |
+
clockHours: {
|
12 |
+
default_: [
|
13 |
+
[gettext_noop('Now'), -1],
|
14 |
+
[gettext_noop('Midnight'), 0],
|
15 |
+
[gettext_noop('6 a.m.'), 6],
|
16 |
+
[gettext_noop('Noon'), 12],
|
17 |
+
[gettext_noop('6 p.m.'), 18]
|
18 |
+
]
|
19 |
+
},
|
20 |
+
dismissClockFunc: [],
|
21 |
+
dismissCalendarFunc: [],
|
22 |
+
calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled
|
23 |
+
calendarDivName2: 'calendarin', // name of <div> that contains calendar
|
24 |
+
calendarLinkName: 'calendarlink', // name of the link that is used to toggle
|
25 |
+
clockDivName: 'clockbox', // name of clock <div> that gets toggled
|
26 |
+
clockLinkName: 'clocklink', // name of the link that is used to toggle
|
27 |
+
shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts
|
28 |
+
timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch
|
29 |
+
timezoneOffset: 0,
|
30 |
+
init: function() {
|
31 |
+
const body = document.getElementsByTagName('body')[0];
|
32 |
+
const serverOffset = body.dataset.adminUtcOffset;
|
33 |
+
if (serverOffset) {
|
34 |
+
const localOffset = new Date().getTimezoneOffset() * -60;
|
35 |
+
DateTimeShortcuts.timezoneOffset = localOffset - serverOffset;
|
36 |
+
}
|
37 |
+
|
38 |
+
for (const inp of document.getElementsByTagName('input')) {
|
39 |
+
if (inp.type === 'text' && inp.classList.contains('vTimeField')) {
|
40 |
+
DateTimeShortcuts.addClock(inp);
|
41 |
+
DateTimeShortcuts.addTimezoneWarning(inp);
|
42 |
+
}
|
43 |
+
else if (inp.type === 'text' && inp.classList.contains('vDateField')) {
|
44 |
+
DateTimeShortcuts.addCalendar(inp);
|
45 |
+
DateTimeShortcuts.addTimezoneWarning(inp);
|
46 |
+
}
|
47 |
+
}
|
48 |
+
},
|
49 |
+
// Return the current time while accounting for the server timezone.
|
50 |
+
now: function() {
|
51 |
+
const body = document.getElementsByTagName('body')[0];
|
52 |
+
const serverOffset = body.dataset.adminUtcOffset;
|
53 |
+
if (serverOffset) {
|
54 |
+
const localNow = new Date();
|
55 |
+
const localOffset = localNow.getTimezoneOffset() * -60;
|
56 |
+
localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset));
|
57 |
+
return localNow;
|
58 |
+
} else {
|
59 |
+
return new Date();
|
60 |
+
}
|
61 |
+
},
|
62 |
+
// Add a warning when the time zone in the browser and backend do not match.
|
63 |
+
addTimezoneWarning: function(inp) {
|
64 |
+
const warningClass = DateTimeShortcuts.timezoneWarningClass;
|
65 |
+
let timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600;
|
66 |
+
|
67 |
+
// Only warn if there is a time zone mismatch.
|
68 |
+
if (!timezoneOffset) {
|
69 |
+
return;
|
70 |
+
}
|
71 |
+
|
72 |
+
// Check if warning is already there.
|
73 |
+
if (inp.parentNode.querySelectorAll('.' + warningClass).length) {
|
74 |
+
return;
|
75 |
+
}
|
76 |
+
|
77 |
+
let message;
|
78 |
+
if (timezoneOffset > 0) {
|
79 |
+
message = ngettext(
|
80 |
+
'Note: You are %s hour ahead of server time.',
|
81 |
+
'Note: You are %s hours ahead of server time.',
|
82 |
+
timezoneOffset
|
83 |
+
);
|
84 |
+
}
|
85 |
+
else {
|
86 |
+
timezoneOffset *= -1;
|
87 |
+
message = ngettext(
|
88 |
+
'Note: You are %s hour behind server time.',
|
89 |
+
'Note: You are %s hours behind server time.',
|
90 |
+
timezoneOffset
|
91 |
+
);
|
92 |
+
}
|
93 |
+
message = interpolate(message, [timezoneOffset]);
|
94 |
+
|
95 |
+
const warning = document.createElement('span');
|
96 |
+
warning.className = warningClass;
|
97 |
+
warning.textContent = message;
|
98 |
+
inp.parentNode.appendChild(document.createElement('br'));
|
99 |
+
inp.parentNode.appendChild(warning);
|
100 |
+
},
|
101 |
+
// Add clock widget to a given field
|
102 |
+
addClock: function(inp) {
|
103 |
+
const num = DateTimeShortcuts.clockInputs.length;
|
104 |
+
DateTimeShortcuts.clockInputs[num] = inp;
|
105 |
+
DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; };
|
106 |
+
|
107 |
+
// Shortcut links (clock icon and "Now" link)
|
108 |
+
const shortcuts_span = document.createElement('span');
|
109 |
+
shortcuts_span.className = DateTimeShortcuts.shortCutsClass;
|
110 |
+
inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
|
111 |
+
const now_link = document.createElement('a');
|
112 |
+
now_link.href = "#";
|
113 |
+
now_link.textContent = gettext('Now');
|
114 |
+
now_link.addEventListener('click', function(e) {
|
115 |
+
e.preventDefault();
|
116 |
+
DateTimeShortcuts.handleClockQuicklink(num, -1);
|
117 |
+
});
|
118 |
+
const clock_link = document.createElement('a');
|
119 |
+
clock_link.href = '#';
|
120 |
+
clock_link.id = DateTimeShortcuts.clockLinkName + num;
|
121 |
+
clock_link.addEventListener('click', function(e) {
|
122 |
+
e.preventDefault();
|
123 |
+
// avoid triggering the document click handler to dismiss the clock
|
124 |
+
e.stopPropagation();
|
125 |
+
DateTimeShortcuts.openClock(num);
|
126 |
+
});
|
127 |
+
|
128 |
+
quickElement(
|
129 |
+
'span', clock_link, '',
|
130 |
+
'class', 'clock-icon',
|
131 |
+
'title', gettext('Choose a Time')
|
132 |
+
);
|
133 |
+
shortcuts_span.appendChild(document.createTextNode('\u00A0'));
|
134 |
+
shortcuts_span.appendChild(now_link);
|
135 |
+
shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0'));
|
136 |
+
shortcuts_span.appendChild(clock_link);
|
137 |
+
|
138 |
+
// Create clock link div
|
139 |
+
//
|
140 |
+
// Markup looks like:
|
141 |
+
// <div id="clockbox1" class="clockbox module">
|
142 |
+
// <h2>Choose a time</h2>
|
143 |
+
// <ul class="timelist">
|
144 |
+
// <li><a href="#">Now</a></li>
|
145 |
+
// <li><a href="#">Midnight</a></li>
|
146 |
+
// <li><a href="#">6 a.m.</a></li>
|
147 |
+
// <li><a href="#">Noon</a></li>
|
148 |
+
// <li><a href="#">6 p.m.</a></li>
|
149 |
+
// </ul>
|
150 |
+
// <p class="calendar-cancel"><a href="#">Cancel</a></p>
|
151 |
+
// </div>
|
152 |
+
|
153 |
+
const clock_box = document.createElement('div');
|
154 |
+
clock_box.style.display = 'none';
|
155 |
+
clock_box.style.position = 'absolute';
|
156 |
+
clock_box.className = 'clockbox module';
|
157 |
+
clock_box.id = DateTimeShortcuts.clockDivName + num;
|
158 |
+
document.body.appendChild(clock_box);
|
159 |
+
clock_box.addEventListener('click', function(e) { e.stopPropagation(); });
|
160 |
+
|
161 |
+
quickElement('h2', clock_box, gettext('Choose a time'));
|
162 |
+
const time_list = quickElement('ul', clock_box);
|
163 |
+
time_list.className = 'timelist';
|
164 |
+
// The list of choices can be overridden in JavaScript like this:
|
165 |
+
// DateTimeShortcuts.clockHours.name = [['3 a.m.', 3]];
|
166 |
+
// where name is the name attribute of the <input>.
|
167 |
+
const name = typeof DateTimeShortcuts.clockHours[inp.name] === 'undefined' ? 'default_' : inp.name;
|
168 |
+
DateTimeShortcuts.clockHours[name].forEach(function(element) {
|
169 |
+
const time_link = quickElement('a', quickElement('li', time_list), gettext(element[0]), 'href', '#');
|
170 |
+
time_link.addEventListener('click', function(e) {
|
171 |
+
e.preventDefault();
|
172 |
+
DateTimeShortcuts.handleClockQuicklink(num, element[1]);
|
173 |
+
});
|
174 |
+
});
|
175 |
+
|
176 |
+
const cancel_p = quickElement('p', clock_box);
|
177 |
+
cancel_p.className = 'calendar-cancel';
|
178 |
+
const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#');
|
179 |
+
cancel_link.addEventListener('click', function(e) {
|
180 |
+
e.preventDefault();
|
181 |
+
DateTimeShortcuts.dismissClock(num);
|
182 |
+
});
|
183 |
+
|
184 |
+
document.addEventListener('keyup', function(event) {
|
185 |
+
if (event.which === 27) {
|
186 |
+
// ESC key closes popup
|
187 |
+
DateTimeShortcuts.dismissClock(num);
|
188 |
+
event.preventDefault();
|
189 |
+
}
|
190 |
+
});
|
191 |
+
},
|
192 |
+
openClock: function(num) {
|
193 |
+
const clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num);
|
194 |
+
const clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num);
|
195 |
+
|
196 |
+
// Recalculate the clockbox position
|
197 |
+
// is it left-to-right or right-to-left layout ?
|
198 |
+
if (window.getComputedStyle(document.body).direction !== 'rtl') {
|
199 |
+
clock_box.style.left = findPosX(clock_link) + 17 + 'px';
|
200 |
+
}
|
201 |
+
else {
|
202 |
+
// since style's width is in em, it'd be tough to calculate
|
203 |
+
// px value of it. let's use an estimated px for now
|
204 |
+
clock_box.style.left = findPosX(clock_link) - 110 + 'px';
|
205 |
+
}
|
206 |
+
clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px';
|
207 |
+
|
208 |
+
// Show the clock box
|
209 |
+
clock_box.style.display = 'block';
|
210 |
+
document.addEventListener('click', DateTimeShortcuts.dismissClockFunc[num]);
|
211 |
+
},
|
212 |
+
dismissClock: function(num) {
|
213 |
+
document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none';
|
214 |
+
document.removeEventListener('click', DateTimeShortcuts.dismissClockFunc[num]);
|
215 |
+
},
|
216 |
+
handleClockQuicklink: function(num, val) {
|
217 |
+
let d;
|
218 |
+
if (val === -1) {
|
219 |
+
d = DateTimeShortcuts.now();
|
220 |
+
}
|
221 |
+
else {
|
222 |
+
d = new Date(1970, 1, 1, val, 0, 0, 0);
|
223 |
+
}
|
224 |
+
DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]);
|
225 |
+
DateTimeShortcuts.clockInputs[num].focus();
|
226 |
+
DateTimeShortcuts.dismissClock(num);
|
227 |
+
},
|
228 |
+
// Add calendar widget to a given field.
|
229 |
+
addCalendar: function(inp) {
|
230 |
+
const num = DateTimeShortcuts.calendars.length;
|
231 |
+
|
232 |
+
DateTimeShortcuts.calendarInputs[num] = inp;
|
233 |
+
DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; };
|
234 |
+
|
235 |
+
// Shortcut links (calendar icon and "Today" link)
|
236 |
+
const shortcuts_span = document.createElement('span');
|
237 |
+
shortcuts_span.className = DateTimeShortcuts.shortCutsClass;
|
238 |
+
inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling);
|
239 |
+
const today_link = document.createElement('a');
|
240 |
+
today_link.href = '#';
|
241 |
+
today_link.appendChild(document.createTextNode(gettext('Today')));
|
242 |
+
today_link.addEventListener('click', function(e) {
|
243 |
+
e.preventDefault();
|
244 |
+
DateTimeShortcuts.handleCalendarQuickLink(num, 0);
|
245 |
+
});
|
246 |
+
const cal_link = document.createElement('a');
|
247 |
+
cal_link.href = '#';
|
248 |
+
cal_link.id = DateTimeShortcuts.calendarLinkName + num;
|
249 |
+
cal_link.addEventListener('click', function(e) {
|
250 |
+
e.preventDefault();
|
251 |
+
// avoid triggering the document click handler to dismiss the calendar
|
252 |
+
e.stopPropagation();
|
253 |
+
DateTimeShortcuts.openCalendar(num);
|
254 |
+
});
|
255 |
+
quickElement(
|
256 |
+
'span', cal_link, '',
|
257 |
+
'class', 'date-icon',
|
258 |
+
'title', gettext('Choose a Date')
|
259 |
+
);
|
260 |
+
shortcuts_span.appendChild(document.createTextNode('\u00A0'));
|
261 |
+
shortcuts_span.appendChild(today_link);
|
262 |
+
shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0'));
|
263 |
+
shortcuts_span.appendChild(cal_link);
|
264 |
+
|
265 |
+
// Create calendarbox div.
|
266 |
+
//
|
267 |
+
// Markup looks like:
|
268 |
+
//
|
269 |
+
// <div id="calendarbox3" class="calendarbox module">
|
270 |
+
// <h2>
|
271 |
+
// <a href="#" class="link-previous">‹</a>
|
272 |
+
// <a href="#" class="link-next">›</a> February 2003
|
273 |
+
// </h2>
|
274 |
+
// <div class="calendar" id="calendarin3">
|
275 |
+
// <!-- (cal) -->
|
276 |
+
// </div>
|
277 |
+
// <div class="calendar-shortcuts">
|
278 |
+
// <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a>
|
279 |
+
// </div>
|
280 |
+
// <p class="calendar-cancel"><a href="#">Cancel</a></p>
|
281 |
+
// </div>
|
282 |
+
const cal_box = document.createElement('div');
|
283 |
+
cal_box.style.display = 'none';
|
284 |
+
cal_box.style.position = 'absolute';
|
285 |
+
cal_box.className = 'calendarbox module';
|
286 |
+
cal_box.id = DateTimeShortcuts.calendarDivName1 + num;
|
287 |
+
document.body.appendChild(cal_box);
|
288 |
+
cal_box.addEventListener('click', function(e) { e.stopPropagation(); });
|
289 |
+
|
290 |
+
// next-prev links
|
291 |
+
const cal_nav = quickElement('div', cal_box);
|
292 |
+
const cal_nav_prev = quickElement('a', cal_nav, '<', 'href', '#');
|
293 |
+
cal_nav_prev.className = 'calendarnav-previous';
|
294 |
+
cal_nav_prev.addEventListener('click', function(e) {
|
295 |
+
e.preventDefault();
|
296 |
+
DateTimeShortcuts.drawPrev(num);
|
297 |
+
});
|
298 |
+
|
299 |
+
const cal_nav_next = quickElement('a', cal_nav, '>', 'href', '#');
|
300 |
+
cal_nav_next.className = 'calendarnav-next';
|
301 |
+
cal_nav_next.addEventListener('click', function(e) {
|
302 |
+
e.preventDefault();
|
303 |
+
DateTimeShortcuts.drawNext(num);
|
304 |
+
});
|
305 |
+
|
306 |
+
// main box
|
307 |
+
const cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num);
|
308 |
+
cal_main.className = 'calendar';
|
309 |
+
DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num));
|
310 |
+
DateTimeShortcuts.calendars[num].drawCurrent();
|
311 |
+
|
312 |
+
// calendar shortcuts
|
313 |
+
const shortcuts = quickElement('div', cal_box);
|
314 |
+
shortcuts.className = 'calendar-shortcuts';
|
315 |
+
let day_link = quickElement('a', shortcuts, gettext('Yesterday'), 'href', '#');
|
316 |
+
day_link.addEventListener('click', function(e) {
|
317 |
+
e.preventDefault();
|
318 |
+
DateTimeShortcuts.handleCalendarQuickLink(num, -1);
|
319 |
+
});
|
320 |
+
shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0'));
|
321 |
+
day_link = quickElement('a', shortcuts, gettext('Today'), 'href', '#');
|
322 |
+
day_link.addEventListener('click', function(e) {
|
323 |
+
e.preventDefault();
|
324 |
+
DateTimeShortcuts.handleCalendarQuickLink(num, 0);
|
325 |
+
});
|
326 |
+
shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0'));
|
327 |
+
day_link = quickElement('a', shortcuts, gettext('Tomorrow'), 'href', '#');
|
328 |
+
day_link.addEventListener('click', function(e) {
|
329 |
+
e.preventDefault();
|
330 |
+
DateTimeShortcuts.handleCalendarQuickLink(num, +1);
|
331 |
+
});
|
332 |
+
|
333 |
+
// cancel bar
|
334 |
+
const cancel_p = quickElement('p', cal_box);
|
335 |
+
cancel_p.className = 'calendar-cancel';
|
336 |
+
const cancel_link = quickElement('a', cancel_p, gettext('Cancel'), 'href', '#');
|
337 |
+
cancel_link.addEventListener('click', function(e) {
|
338 |
+
e.preventDefault();
|
339 |
+
DateTimeShortcuts.dismissCalendar(num);
|
340 |
+
});
|
341 |
+
document.addEventListener('keyup', function(event) {
|
342 |
+
if (event.which === 27) {
|
343 |
+
// ESC key closes popup
|
344 |
+
DateTimeShortcuts.dismissCalendar(num);
|
345 |
+
event.preventDefault();
|
346 |
+
}
|
347 |
+
});
|
348 |
+
},
|
349 |
+
openCalendar: function(num) {
|
350 |
+
const cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num);
|
351 |
+
const cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num);
|
352 |
+
const inp = DateTimeShortcuts.calendarInputs[num];
|
353 |
+
|
354 |
+
// Determine if the current value in the input has a valid date.
|
355 |
+
// If so, draw the calendar with that date's year and month.
|
356 |
+
if (inp.value) {
|
357 |
+
const format = get_format('DATE_INPUT_FORMATS')[0];
|
358 |
+
const selected = inp.value.strptime(format);
|
359 |
+
const year = selected.getUTCFullYear();
|
360 |
+
const month = selected.getUTCMonth() + 1;
|
361 |
+
const re = /\d{4}/;
|
362 |
+
if (re.test(year.toString()) && month >= 1 && month <= 12) {
|
363 |
+
DateTimeShortcuts.calendars[num].drawDate(month, year, selected);
|
364 |
+
}
|
365 |
+
}
|
366 |
+
|
367 |
+
// Recalculate the clockbox position
|
368 |
+
// is it left-to-right or right-to-left layout ?
|
369 |
+
if (window.getComputedStyle(document.body).direction !== 'rtl') {
|
370 |
+
cal_box.style.left = findPosX(cal_link) + 17 + 'px';
|
371 |
+
}
|
372 |
+
else {
|
373 |
+
// since style's width is in em, it'd be tough to calculate
|
374 |
+
// px value of it. let's use an estimated px for now
|
375 |
+
cal_box.style.left = findPosX(cal_link) - 180 + 'px';
|
376 |
+
}
|
377 |
+
cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px';
|
378 |
+
|
379 |
+
cal_box.style.display = 'block';
|
380 |
+
document.addEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
|
381 |
+
},
|
382 |
+
dismissCalendar: function(num) {
|
383 |
+
document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
|
384 |
+
document.removeEventListener('click', DateTimeShortcuts.dismissCalendarFunc[num]);
|
385 |
+
},
|
386 |
+
drawPrev: function(num) {
|
387 |
+
DateTimeShortcuts.calendars[num].drawPreviousMonth();
|
388 |
+
},
|
389 |
+
drawNext: function(num) {
|
390 |
+
DateTimeShortcuts.calendars[num].drawNextMonth();
|
391 |
+
},
|
392 |
+
handleCalendarCallback: function(num) {
|
393 |
+
let format = get_format('DATE_INPUT_FORMATS')[0];
|
394 |
+
// the format needs to be escaped a little
|
395 |
+
format = format.replace('\\', '\\\\')
|
396 |
+
.replace('\r', '\\r')
|
397 |
+
.replace('\n', '\\n')
|
398 |
+
.replace('\t', '\\t')
|
399 |
+
.replace("'", "\\'");
|
400 |
+
return function(y, m, d) {
|
401 |
+
DateTimeShortcuts.calendarInputs[num].value = new Date(y, m - 1, d).strftime(format);
|
402 |
+
DateTimeShortcuts.calendarInputs[num].focus();
|
403 |
+
document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none';
|
404 |
+
};
|
405 |
+
},
|
406 |
+
handleCalendarQuickLink: function(num, offset) {
|
407 |
+
const d = DateTimeShortcuts.now();
|
408 |
+
d.setDate(d.getDate() + offset);
|
409 |
+
DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]);
|
410 |
+
DateTimeShortcuts.calendarInputs[num].focus();
|
411 |
+
DateTimeShortcuts.dismissCalendar(num);
|
412 |
+
}
|
413 |
+
};
|
414 |
+
|
415 |
+
window.addEventListener('load', DateTimeShortcuts.init);
|
416 |
+
window.DateTimeShortcuts = DateTimeShortcuts;
|
417 |
+
}
|
_static/admin/js/admin/RelatedObjectLookups.js
ADDED
@@ -0,0 +1,159 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*global SelectBox, interpolate*/
|
2 |
+
// Handles related-objects functionality: lookup link for raw_id_fields
|
3 |
+
// and Add Another links.
|
4 |
+
'use strict';
|
5 |
+
{
|
6 |
+
const $ = django.jQuery;
|
7 |
+
|
8 |
+
function showAdminPopup(triggeringLink, name_regexp, add_popup) {
|
9 |
+
const name = triggeringLink.id.replace(name_regexp, '');
|
10 |
+
let href = triggeringLink.href;
|
11 |
+
if (add_popup) {
|
12 |
+
if (href.indexOf('?') === -1) {
|
13 |
+
href += '?_popup=1';
|
14 |
+
} else {
|
15 |
+
href += '&_popup=1';
|
16 |
+
}
|
17 |
+
}
|
18 |
+
const win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes');
|
19 |
+
win.focus();
|
20 |
+
return false;
|
21 |
+
}
|
22 |
+
|
23 |
+
function showRelatedObjectLookupPopup(triggeringLink) {
|
24 |
+
return showAdminPopup(triggeringLink, /^lookup_/, true);
|
25 |
+
}
|
26 |
+
|
27 |
+
function dismissRelatedLookupPopup(win, chosenId) {
|
28 |
+
const name = win.name;
|
29 |
+
const elem = document.getElementById(name);
|
30 |
+
if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) {
|
31 |
+
elem.value += ',' + chosenId;
|
32 |
+
} else {
|
33 |
+
document.getElementById(name).value = chosenId;
|
34 |
+
}
|
35 |
+
win.close();
|
36 |
+
}
|
37 |
+
|
38 |
+
function showRelatedObjectPopup(triggeringLink) {
|
39 |
+
return showAdminPopup(triggeringLink, /^(change|add|delete)_/, false);
|
40 |
+
}
|
41 |
+
|
42 |
+
function updateRelatedObjectLinks(triggeringLink) {
|
43 |
+
const $this = $(triggeringLink);
|
44 |
+
const siblings = $this.nextAll('.view-related, .change-related, .delete-related');
|
45 |
+
if (!siblings.length) {
|
46 |
+
return;
|
47 |
+
}
|
48 |
+
const value = $this.val();
|
49 |
+
if (value) {
|
50 |
+
siblings.each(function() {
|
51 |
+
const elm = $(this);
|
52 |
+
elm.attr('href', elm.attr('data-href-template').replace('__fk__', value));
|
53 |
+
});
|
54 |
+
} else {
|
55 |
+
siblings.removeAttr('href');
|
56 |
+
}
|
57 |
+
}
|
58 |
+
|
59 |
+
function dismissAddRelatedObjectPopup(win, newId, newRepr) {
|
60 |
+
const name = win.name;
|
61 |
+
const elem = document.getElementById(name);
|
62 |
+
if (elem) {
|
63 |
+
const elemName = elem.nodeName.toUpperCase();
|
64 |
+
if (elemName === 'SELECT') {
|
65 |
+
elem.options[elem.options.length] = new Option(newRepr, newId, true, true);
|
66 |
+
} else if (elemName === 'INPUT') {
|
67 |
+
if (elem.classList.contains('vManyToManyRawIdAdminField') && elem.value) {
|
68 |
+
elem.value += ',' + newId;
|
69 |
+
} else {
|
70 |
+
elem.value = newId;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
// Trigger a change event to update related links if required.
|
74 |
+
$(elem).trigger('change');
|
75 |
+
} else {
|
76 |
+
const toId = name + "_to";
|
77 |
+
const o = new Option(newRepr, newId);
|
78 |
+
SelectBox.add_to_cache(toId, o);
|
79 |
+
SelectBox.redisplay(toId);
|
80 |
+
}
|
81 |
+
win.close();
|
82 |
+
}
|
83 |
+
|
84 |
+
function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) {
|
85 |
+
const id = win.name.replace(/^edit_/, '');
|
86 |
+
const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]);
|
87 |
+
const selects = $(selectsSelector);
|
88 |
+
selects.find('option').each(function() {
|
89 |
+
if (this.value === objId) {
|
90 |
+
this.textContent = newRepr;
|
91 |
+
this.value = newId;
|
92 |
+
}
|
93 |
+
});
|
94 |
+
selects.next().find('.select2-selection__rendered').each(function() {
|
95 |
+
// The element can have a clear button as a child.
|
96 |
+
// Use the lastChild to modify only the displayed value.
|
97 |
+
this.lastChild.textContent = newRepr;
|
98 |
+
this.title = newRepr;
|
99 |
+
});
|
100 |
+
win.close();
|
101 |
+
}
|
102 |
+
|
103 |
+
function dismissDeleteRelatedObjectPopup(win, objId) {
|
104 |
+
const id = win.name.replace(/^delete_/, '');
|
105 |
+
const selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]);
|
106 |
+
const selects = $(selectsSelector);
|
107 |
+
selects.find('option').each(function() {
|
108 |
+
if (this.value === objId) {
|
109 |
+
$(this).remove();
|
110 |
+
}
|
111 |
+
}).trigger('change');
|
112 |
+
win.close();
|
113 |
+
}
|
114 |
+
|
115 |
+
window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup;
|
116 |
+
window.dismissRelatedLookupPopup = dismissRelatedLookupPopup;
|
117 |
+
window.showRelatedObjectPopup = showRelatedObjectPopup;
|
118 |
+
window.updateRelatedObjectLinks = updateRelatedObjectLinks;
|
119 |
+
window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup;
|
120 |
+
window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup;
|
121 |
+
window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup;
|
122 |
+
|
123 |
+
// Kept for backward compatibility
|
124 |
+
window.showAddAnotherPopup = showRelatedObjectPopup;
|
125 |
+
window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup;
|
126 |
+
|
127 |
+
$(document).ready(function() {
|
128 |
+
$("a[data-popup-opener]").on('click', function(event) {
|
129 |
+
event.preventDefault();
|
130 |
+
opener.dismissRelatedLookupPopup(window, $(this).data("popup-opener"));
|
131 |
+
});
|
132 |
+
$('body').on('click', '.related-widget-wrapper-link', function(e) {
|
133 |
+
e.preventDefault();
|
134 |
+
if (this.href) {
|
135 |
+
const event = $.Event('django:show-related', {href: this.href});
|
136 |
+
$(this).trigger(event);
|
137 |
+
if (!event.isDefaultPrevented()) {
|
138 |
+
showRelatedObjectPopup(this);
|
139 |
+
}
|
140 |
+
}
|
141 |
+
});
|
142 |
+
$('body').on('change', '.related-widget-wrapper select', function(e) {
|
143 |
+
const event = $.Event('django:update-related');
|
144 |
+
$(this).trigger(event);
|
145 |
+
if (!event.isDefaultPrevented()) {
|
146 |
+
updateRelatedObjectLinks(this);
|
147 |
+
}
|
148 |
+
});
|
149 |
+
$('.related-widget-wrapper select').trigger('change');
|
150 |
+
$('body').on('click', '.related-lookup', function(e) {
|
151 |
+
e.preventDefault();
|
152 |
+
const event = $.Event('django:lookup-related');
|
153 |
+
$(this).trigger(event);
|
154 |
+
if (!event.isDefaultPrevented()) {
|
155 |
+
showRelatedObjectLookupPopup(this);
|
156 |
+
}
|
157 |
+
});
|
158 |
+
});
|
159 |
+
}
|
_static/admin/js/autocomplete.js
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
{
|
3 |
+
const $ = django.jQuery;
|
4 |
+
const init = function($element, options) {
|
5 |
+
const settings = $.extend({
|
6 |
+
ajax: {
|
7 |
+
data: function(params) {
|
8 |
+
return {
|
9 |
+
term: params.term,
|
10 |
+
page: params.page
|
11 |
+
};
|
12 |
+
}
|
13 |
+
}
|
14 |
+
}, options);
|
15 |
+
$element.select2(settings);
|
16 |
+
};
|
17 |
+
|
18 |
+
$.fn.djangoAdminSelect2 = function(options) {
|
19 |
+
const settings = $.extend({}, options);
|
20 |
+
$.each(this, function(i, element) {
|
21 |
+
const $element = $(element);
|
22 |
+
init($element, settings);
|
23 |
+
});
|
24 |
+
return this;
|
25 |
+
};
|
26 |
+
|
27 |
+
$(function() {
|
28 |
+
// Initialize all autocomplete widgets except the one in the template
|
29 |
+
// form used when a new formset is added.
|
30 |
+
$('.admin-autocomplete').not('[name*=__prefix__]').djangoAdminSelect2();
|
31 |
+
});
|
32 |
+
|
33 |
+
$(document).on('formset:added', (function() {
|
34 |
+
return function(event, $newFormset) {
|
35 |
+
return $newFormset.find('.admin-autocomplete').djangoAdminSelect2();
|
36 |
+
};
|
37 |
+
})(this));
|
38 |
+
}
|