Merge lp:~cjohnston/ubuntu/trusty/horizon/1396318-icehouse into lp:ubuntu/trusty/horizon
- Trusty (14.04)
- 1396318-icehouse
- Merge into trusty
Status: | Superseded | ||||
---|---|---|---|---|---|
Proposed branch: | lp:~cjohnston/ubuntu/trusty/horizon/1396318-icehouse | ||||
Merge into: | lp:ubuntu/trusty/horizon | ||||
Diff against target: |
18863 lines (+18649/-0) (has conflicts) 38 files modified
debian/README.compression (+6/-0) debian/changelog (+764/-0) debian/compat (+1/-0) debian/control (+83/-0) debian/copyright (+55/-0) debian/openstack-dashboard-ubuntu-theme.dirs (+4/-0) debian/openstack-dashboard-ubuntu-theme.install (+4/-0) debian/openstack-dashboard-ubuntu-theme.links (+2/-0) debian/openstack-dashboard-ubuntu-theme.postinst (+11/-0) debian/openstack-dashboard-ubuntu-theme.postrm (+9/-0) debian/openstack-dashboard.conf (+8/-0) debian/openstack-dashboard.dirs (+6/-0) debian/openstack-dashboard.install (+6/-0) debian/openstack-dashboard.links (+2/-0) debian/openstack-dashboard.postinst (+63/-0) debian/openstack-dashboard.postrm (+44/-0) debian/openstack-dashboard.preinst (+17/-0) debian/patches/add_juju_settings_panel.patch (+309/-0) debian/patches/fix-dashboard-django-wsgi.patch (+11/-0) debian/patches/fix-dashboard-manage.patch (+11/-0) debian/patches/fix-requirements.patch (+13/-0) debian/patches/fix-ubuntu-tests.patch (+40/-0) debian/patches/series (+9/-0) debian/patches/ubuntu_settings.patch (+79/-0) debian/pydist-overrides (+2/-0) debian/python-django-horizon.install (+1/-0) debian/python-django-horizon.lintian-overrides (+2/-0) debian/rules (+47/-0) debian/source/format (+1/-0) debian/source/include-binaries (+5/-0) debian/static/openstack-dashboard/css/6bd71a04f0c0.css (+6567/-0) debian/static/openstack-dashboard/js/0272dc9e5c21.js (+1325/-0) debian/static/openstack-dashboard/js/b28ee7422312.js (+2339/-0) debian/static/openstack-dashboard/manifest.json (+5/-0) debian/theme/css/ubuntu.css (+6778/-0) debian/theme/templates/_stylesheets.html (+12/-0) debian/theme/ubuntu_theme.py (+5/-0) debian/watch (+3/-0) Conflict adding file debian. Moved existing file to debian.moved. |
||||
To merge this branch: | bzr merge lp:~cjohnston/ubuntu/trusty/horizon/1396318-icehouse | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu branches | Pending | ||
Review via email: mp+243582@code.launchpad.net |
Commit message
Fix Ubuntu theme region switcher dropdown
Description of the change
Unmerged revisions
- 200. By Chris Johnston
-
Fix Ubuntu theme region switcher dropdown
- 199. By Chuck Short
-
releasing package horizon version 1:2014.1.3-0ubuntu1
- 198. By James Page
-
Fix Ubuntu theme dropdown and confirmation button (LP: #1308651).
- 197. By James Page
-
* Resynchronize with stable/icehouse (4a70f4c) (LP: #1354159):
- [2b9c566] Import translations for Icehouse stable update
- [015f24c] Fix security group modal header overflow
- [785a526] Disable broken unit test (related to "Change Password")
- [eb3a40a] Replace UserManager with None in tests
- [e66fbc3] Sort security group rules by protocol and port
- [a855b0c] Avoid AttributeError: SecurityGroup error handle
- [937436f] adapt to python-novaclient- 2.18.0
- [32a7b71] Fix multiple Cross-Site Scripting (XSS) vulnerabilities.
- [43ac907] add httplib2 explicitly to requirements.txt
- [0b2352e] Prevent error message when creating a user
- [765e6d3] Fix issues with importing the Login form
- [a29cdbc] Fix formatting of heat exceptions
- [b527f22] Image uploads should always happen in the background
- [4a70f4c] Fix the dot overlaps with the table border in Availability Zones table
* d/watch: Point to tarballs.openstack. org for release artifacts. - 196. By James Page
-
releasing package horizon version 1:2014.1.1-0ubuntu1
- 195. By James Page
-
releasing package horizon version 1:2014.1-0ubuntu1
- 194. By Chuck Short
-
releasing package horizon version 1:2014.
1~rc2-0ubuntu1 - 193. By Chuck Short
-
Add missing file
- 192. By Chuck Short
-
* New upstream release candidate (LP: #1288245).
- d/static/*: Refreshed assets for new upstream release. - 191. By James Page
-
* New upstream release candidate (LP: #1288245).
- d/static/*: Refreshed assets for new upstream release.
* d/theme/*: Refresh Ubuntu theme against Icehouse templates (LP: #1291653).
Preview Diff
1 | === added directory 'debian' |
2 | === renamed directory 'debian' => 'debian.moved' |
3 | === added file 'debian/README.compression' |
4 | --- debian/README.compression 1970-01-01 00:00:00 +0000 |
5 | +++ debian/README.compression 2014-12-03 19:02:16 +0000 |
6 | @@ -0,0 +1,6 @@ |
7 | +Until this can be scripted and integrated into package build, updating the |
8 | +pre-compressed static CSS and JS requires a some manual steps: |
9 | + |
10 | + sudo apt-get install python-lesscpy python-openstack-auth python-compressor |
11 | + quilt pop top |
12 | + ./debian/rules refresh-static-assets |
13 | |
14 | === added file 'debian/changelog' |
15 | --- debian/changelog 1970-01-01 00:00:00 +0000 |
16 | +++ debian/changelog 2014-12-03 19:02:16 +0000 |
17 | @@ -0,0 +1,764 @@ |
18 | +horizon (1:2014.1.3-0ubuntu2) trusty; urgency=medium |
19 | + |
20 | + * Fix Ubuntu theme region switcher dropdown (LP: #1396318) |
21 | + |
22 | + -- Chris Johnston <chrisjohnston@ubuntu.com> Wed, 03 Dec 2014 14:00:30 -0500 |
23 | + |
24 | +horizon (1:2014.1.3-0ubuntu1) trusty; urgency=medium |
25 | + |
26 | + [ Chris Johnston ] |
27 | + * Fix Ubuntu theme dropdown and confirmation button (LP: #1308651). |
28 | + |
29 | + [ Corey Bryant ] |
30 | + * Resynchronize with stable/icehouse (dc8e46f) (LP: #1377136): |
31 | + - [ba524b0] template to rely on the the "id" attribute |
32 | + - [ad2d428] Rename add_error methods: Django 1.7 conflict |
33 | + - [8dfe113] Replace Ceilometer ClientException with HTTPException |
34 | + - [f5e1ff4] Add missing "load url from future" in a container template |
35 | + - [839c53d] Add OS_REGION_NAME to openrc |
36 | + - [737fe40] Set the correct min_disk size when creating volume from image |
37 | + - [a8eeed9] Allow forms to disable autofill in all browsers |
38 | + - [e32a00d] Fix endpoint error when running keystone on apache |
39 | + - [faac9e7] Not able to delete a pseudo-folder via horizon |
40 | + - [b6d6e15] Set python hash seed to 0 in tox.ini |
41 | + - [ba908ae] Fix XSS issue with the unordered_list filter |
42 | + - [9a5894b] Long container names no longer break the page |
43 | + - [c9cb128] TEMPLATE_DIRS must be a tuple |
44 | + - [95dcdae] Proper port for LBaaS members |
45 | + - [dc8e46f] Use default_project_id as user project for keystone v3 |
46 | + |
47 | + -- Chuck Short <zulcss@ubuntu.com> Mon, 06 Oct 2014 09:00:21 -0400 |
48 | + |
49 | +horizon (1:2014.1.2-0ubuntu1) trusty; urgency=medium |
50 | + |
51 | + [ Corey Bryant ] |
52 | + * Resynchronize with stable/icehouse (4a70f4c) (LP: #1354159): |
53 | + - [2b9c566] Import translations for Icehouse stable update |
54 | + - [015f24c] Fix security group modal header overflow |
55 | + - [785a526] Disable broken unit test (related to "Change Password") |
56 | + - [eb3a40a] Replace UserManager with None in tests |
57 | + - [e66fbc3] Sort security group rules by protocol and port |
58 | + - [a855b0c] Avoid AttributeError: SecurityGroup error handle |
59 | + - [937436f] adapt to python-novaclient-2.18.0 |
60 | + - [32a7b71] Fix multiple Cross-Site Scripting (XSS) vulnerabilities. |
61 | + - [43ac907] add httplib2 explicitly to requirements.txt |
62 | + - [0b2352e] Prevent error message when creating a user |
63 | + - [765e6d3] Fix issues with importing the Login form |
64 | + - [a29cdbc] Fix formatting of heat exceptions |
65 | + - [b527f22] Image uploads should always happen in the background |
66 | + - [4a70f4c] Fix the dot overlaps with the table border in Availability Zones table |
67 | + |
68 | + [ James Page ] |
69 | + * d/watch: Point to tarballs.openstack.org for release artifacts. |
70 | + |
71 | + -- Corey Bryant <corey.bryant@canonical.com> Fri, 08 Aug 2014 09:50:22 -0400 |
72 | + |
73 | +horizon (1:2014.1.1-0ubuntu1) trusty; urgency=medium |
74 | + |
75 | + * Resynchronize with stable/icehouse (fbd5b2e) (LP: #1328134): |
76 | + - [e492c7e] Updated from global requirements |
77 | + - [e5f04c2] Fix pseudo-folder content listing |
78 | + - [cd2f7dc] add missing references to policy files |
79 | + - [232b712] Use escapejs filter on JavaScript strings |
80 | + - [0c3b710] Add missing mock for cinder.default_quota_get |
81 | + - [7c47ec5] Add logging handler for openstack_auth in the tests |
82 | + - [306c5ca] Check host is not none in host aggregate page |
83 | + - [fbd5b2e] Add missing comma in Volume ResourceWrapper class |
84 | + * d/p/fix-requirements.patch: Drop minimum version of six to align to version |
85 | + in Ubuntu 14.04. |
86 | + |
87 | + -- Corey Bryant <corey.bryant@canonical.com> Mon, 09 Jun 2014 15:20:18 -0400 |
88 | + |
89 | +horizon (1:2014.1-0ubuntu1) trusty; urgency=medium |
90 | + |
91 | + * New upstream release (LP: #1288245). |
92 | + |
93 | + -- James Page <james.page@ubuntu.com> Thu, 17 Apr 2014 12:21:21 +0100 |
94 | + |
95 | +horizon (1:2014.1~rc2-0ubuntu1) trusty; urgency=medium |
96 | + |
97 | + * New upstream release candidate (LP: #1288245). |
98 | + - d/static/*: Refreshed assets for new upstream release. |
99 | + |
100 | + -- Chuck Short <zulcss@ubuntu.com> Wed, 09 Apr 2014 07:39:58 -0400 |
101 | + |
102 | +horizon (1:2014.1~rc1-0ubuntu1) trusty; urgency=medium |
103 | + |
104 | + * New upstream release candidate (LP: #1288245). |
105 | + - d/static/*: Refreshed assets for new upstream release. |
106 | + * d/theme/*: Refresh Ubuntu theme against Icehouse templates (LP: #1291653). |
107 | + |
108 | + -- James Page <james.page@ubuntu.com> Mon, 31 Mar 2014 17:31:49 +0100 |
109 | + |
110 | +horizon (1:2014.1~b3-0ubuntu2) trusty; urgency=medium |
111 | + |
112 | + * Ensure correct URL is used for logout/timeout (LP: #1243187): |
113 | + - d/p/ubuntu_settings.patch: Update LOGOUT_URL for /horizon prefix. |
114 | + * Ensure Apache configuration is backwards compatible with Apache 2.2 |
115 | + (LP: #1292577): |
116 | + - d/openstack-dashboard.conf: Revert changes from 1:2014.1~b2-0ubuntu2. |
117 | + |
118 | + -- James Page <james.page@ubuntu.com> Fri, 14 Mar 2014 16:21:00 +0000 |
119 | + |
120 | +horizon (1:2014.1~b3-0ubuntu1) trusty; urgency=medium |
121 | + |
122 | + * New upstream milestone release. |
123 | + * d/static/*: Refreshed assets for new upstream release. |
124 | + |
125 | + -- James Page <james.page@ubuntu.com> Thu, 06 Mar 2014 16:53:28 +0000 |
126 | + |
127 | +horizon (1:2014.1~b2-0ubuntu2) trusty; urgency=medium |
128 | + |
129 | + * d/rules: Drop override of dh_auto_clean, not required. |
130 | + * d/rules,openstack-dashboard.install: Detect and use default python |
131 | + version when creating symlink from openstack-dashboard -> horizon. |
132 | + * d/*: Tidy surplus execute bits on numerous files. |
133 | + * d/openstack-dashboard.conf: Update for Apache 2.4 stanza's. |
134 | + * d/rules: Skip tests as they don't run and results where being ignored. |
135 | + * d/control: python-django-openstack - update description, move to section |
136 | + oldlibs for transitional packages. |
137 | + * d/*: Wrap-and-sort. |
138 | + * d/control: Drop BD on python-d2to1, merged into python-pbr. |
139 | + |
140 | + -- James Page <james.page@ubuntu.com> Tue, 25 Feb 2014 14:34:33 +0000 |
141 | + |
142 | +horizon (1:2014.1~b2-0ubuntu1) trusty; urgency=medium |
143 | + |
144 | + [ Chuck Short ] |
145 | + * New upstream release. |
146 | + * debian/patches/fix-ubuntu-tests.patch: Dropped. |
147 | + * deban/patches/ubuntu-settings.patch: Refreshed |
148 | + |
149 | + [ James Page ] |
150 | + * debian/static: Refresh assets. |
151 | + |
152 | + -- James Page <james.page@ubuntu.com> Fri, 24 Jan 2014 15:12:31 +0000 |
153 | + |
154 | +horizon (1:2014.1~b1-0ubuntu1) trusty; urgency=low |
155 | + |
156 | + * New upstream release. |
157 | + * debian/control: open icehouse release. |
158 | + * debian/static/openstack-dashboard: Refreshed static assets. |
159 | + |
160 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 05 Dec 2013 14:39:15 -0500 |
161 | + |
162 | +horizon (1:2013.2-0ubuntu1) saucy; urgency=low |
163 | + |
164 | + * New upstream release (LP: #1236462). |
165 | + |
166 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 17 Oct 2013 09:43:46 -0400 |
167 | + |
168 | +horizon (1:2013.2~rc3-0ubuntu1) saucy; urgency=low |
169 | + |
170 | + * New upstream release candidate (LP: #1240665). |
171 | + |
172 | + -- Chuck Short <zulcss@ubuntu.com> Wed, 16 Oct 2013 20:10:52 -0400 |
173 | + |
174 | +horizon (1:2013.2~rc2-0ubuntu1) saucy; urgency=low |
175 | + |
176 | + * New upstream release candidate. (#1239156) |
177 | + * debian/README.compression: Updated documenation on how to |
178 | + refresh the static assets. |
179 | + |
180 | + -- Chuck Short <zulcss@ubuntu.com> Tue, 15 Oct 2013 10:20:05 -0400 |
181 | + |
182 | +horizon (1:2013.2~rc1-0ubuntu2) saucy; urgency=low |
183 | + |
184 | + * d/theme/css/ubuntu.css: Refresh Ubuntu theme against new Havana |
185 | + stylesheets, fixing network and chart layouts (LP: #1235249). |
186 | + * d/openstack-dashboard.postinst: Allow horizon user to read and |
187 | + write data in /var/lib/openstack-dashboard inline with user and |
188 | + group permissions set in Apache configuration. |
189 | + |
190 | + -- James Page <james.page@ubuntu.com> Fri, 04 Oct 2013 14:17:43 +0100 |
191 | + |
192 | +horizon (1:2013.2~rc1-0ubuntu1) saucy; urgency=low |
193 | + |
194 | + [ James Page ] |
195 | + * New upstream release candidate: |
196 | + - d/static: Refreshed static assets for 2013.2~rc1. |
197 | + - d/patches: Refreshed patches. |
198 | + |
199 | + [ Chuck Short ] |
200 | + * debian/control: Add python-lesscpy as a suggests to optionally |
201 | + support online compression of static assets (LP: #1226674). |
202 | + |
203 | + -- James Page <james.page@ubuntu.com> Thu, 03 Oct 2013 13:48:12 +0100 |
204 | + |
205 | +horizon (1:2013.2~b3-0ubuntu2) saucy; urgency=low |
206 | + |
207 | + * Don't use /etc/openstack-dashboard for in-process generated data |
208 | + (LP: #1233752): |
209 | + - d/openstack-dashboard.{dirs,postinst}: |
210 | + + Create /var/lib/openstack-dashboard with restricted permissions, |
211 | + allowing www-data user to write a secret_key if need be. |
212 | + + Move /etc/openstack-dashboard/secret_key to correct location if |
213 | + it already exists. |
214 | + - d/p/ubuntu_settings.patch: Use /var/lib/openstack-dashboard for |
215 | + secret key storage instead of /etc/openstack-dashboard. |
216 | + |
217 | + -- James Page <james.page@ubuntu.com> Wed, 02 Oct 2013 10:31:15 +0100 |
218 | + |
219 | +horizon (1:2013.2~b3-0ubuntu1) saucy; urgency=low |
220 | + |
221 | + * New upstream release. |
222 | + * debian/control: Minimum python-openstack-auth version >= 1.1.1. |
223 | + * debian/control: Add python-troveclient. |
224 | + * debian/static: Refresh static assets for 2013.2~b3. |
225 | + * debian/patches: ubuntu_local_settings.patch -> ubuntu_settings.patch, also |
226 | + patch location of secret key in openstack_dashboard/settings.py |
227 | + |
228 | + -- Adam Gandelman <adamg@ubuntu.com> Fri, 06 Sep 2013 11:59:43 -0700 |
229 | + |
230 | +horizon (1:2013.2~b2-0ubuntu6) saucy; urgency=low |
231 | + |
232 | + * debian/patches/ubuntu_local_settings.py: Set flexible |
233 | + default for ALLOWED_HOSTS that should be changed for production |
234 | + deployments (LP: #1214982). |
235 | + * Fix (LP: #1216019): |
236 | + - debian/openstack-dashboard.{postinst, postrm}: Add/remove horizon |
237 | + user. Ensure /etc/openstack-dashbard ownership. |
238 | + - debian/openstack-dashboard.conf: Run WSGIDaemonProcess as user |
239 | + horizon, set WSGIProcessGroup to horizon. |
240 | + - debian/patches/ubuntu_local_settings.py: Generate and load secret |
241 | + key from /etc/openstack-dashboard/secret_key. |
242 | + |
243 | + -- Adam Gandelman <adamg@ubuntu.com> Fri, 06 Sep 2013 10:33:18 -0700 |
244 | + |
245 | +horizon (1:2013.2~b2-0ubuntu5) saucy; urgency=low |
246 | + |
247 | + * d/static/*: Refresh static assets for 2013.2~b2. |
248 | + * d/rules: Tweak helper for refreshing static assets to link |
249 | + local_settings.py correctly. |
250 | + * d/openstack-dashboard.p*: Fix typo in configuration file name, |
251 | + ensure consistent use of tabs/spaces. |
252 | + |
253 | + -- James Page <james.page@ubuntu.com> Mon, 02 Sep 2013 16:43:56 +0100 |
254 | + |
255 | +horizon (1:2013.2~b2-0ubuntu4) saucy; urgency=low |
256 | + |
257 | + * Update for apache 2.4, preserve 2.2 compatability. (LP: #1218535) |
258 | + |
259 | + -- Adam Gandelman <adamg@ubuntu.com> Fri, 30 Aug 2013 15:31:49 -0700 |
260 | + |
261 | +horizon (1:2013.2~b2-0ubuntu3) saucy; urgency=low |
262 | + |
263 | + * debian/rules: Don't remove egg information while cleaning. |
264 | + (LP: #1210253) |
265 | + |
266 | + -- Chuck Short <zulcss@ubuntu.com> Wed, 21 Aug 2013 10:08:35 -0400 |
267 | + |
268 | +horizon (1:2013.2~b2-0ubuntu2) saucy; urgency=low |
269 | + |
270 | + * debian/control: Fix typo in depends. |
271 | + |
272 | + -- Chuck Short <zulcss@ubuntu.com> Mon, 22 Jul 2013 14:36:30 -0400 |
273 | + |
274 | +horizon (1:2013.2~b2-0ubuntu1) saucy; urgency=low |
275 | + |
276 | + [ James Page ] |
277 | + * d/control: Update VCS fields for new branch locations. |
278 | + * Automate refresh of static assets: |
279 | + - d/rules: Added refresh-static-assets helper target. |
280 | + - d/README.compression: Updated for new process. |
281 | + * d/static/*: Refreshed static assets. |
282 | + |
283 | + [ Chuck Short ] |
284 | + * New upstream release |
285 | + * debian/control: |
286 | + - Add python-ceilometerclient |
287 | + - Add python-heatclient |
288 | + - Renamed python-quantumclient to python-neturonclient. |
289 | + * debian/curles: Removed instances of quantum since its cruft |
290 | + that we dont need anymore. |
291 | + |
292 | + -- Chuck Short <zulcss@ubuntu.com> Mon, 22 Jul 2013 11:45:28 -0400 |
293 | + |
294 | +horizon (1:2013.2~b1-0ubuntu1) saucy; urgency=low |
295 | + |
296 | + * New upstream release. |
297 | + * debian/patches/ubuntu_local_settings.patch: Refreshed |
298 | + * debian/control: Add python-pbr and python-d2to1. |
299 | + |
300 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 31 May 2013 08:59:58 -0500 |
301 | + |
302 | +horizon (1:2013.1-0ubuntu3) raring; urgency=low |
303 | + |
304 | + * Re-sync Ubuntu theme with upstream changes, fixing instance network |
305 | + selection dialog and network topology screens (LP: #1157918). |
306 | + |
307 | + -- James Page <james.page@ubuntu.com> Mon, 22 Apr 2013 14:09:04 +0100 |
308 | + |
309 | +horizon (1:2013.1-0ubuntu2) raring; urgency=low |
310 | + |
311 | + * Recompress static JS and CSS and generate new manifest.json for |
312 | + offline compression. |
313 | + |
314 | + -- Chuck Short <zulcss@ubuntu.com> Wed, 10 Apr 2013 12:24:24 -0500 |
315 | + |
316 | +horizon (1:2013.1-0ubuntu1) raring; urgency=low |
317 | + |
318 | + * New upstream release. |
319 | + |
320 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 05 Apr 2013 14:20:44 -0500 |
321 | + |
322 | +horizon (1:2013.1~rc2-0ubuntu1) raring; urgency=low |
323 | + |
324 | + * New upstream release. |
325 | + |
326 | + -- Chuck Short <zulcss@ubuntu.com> Tue, 02 Apr 2013 08:40:42 -0500 |
327 | + |
328 | +horizon (1:2013.1~rc1-0ubuntu1) raring; urgency=low |
329 | + |
330 | + [ James Page ] |
331 | + * New upstream release candidate for Grizzly: |
332 | + - Recompress static JS and CSS and generate new manifest.json for |
333 | + offline compression. |
334 | + * d/watch: Update uversionmangle to deal with upstream versioning |
335 | + changes, remove tarballs.openstack.org. |
336 | + * d/control: Version python-compressor >= 1.2 (LP: #1130610). |
337 | + |
338 | + [ Adam Gandelman ] |
339 | + * debian/patches/ubuntu_local_settings.py: Refresh, specify memcache |
340 | + location as part of CACHES, as per upstream changes to example config. |
341 | + |
342 | + -- James Page <james.page@ubuntu.com> Wed, 20 Mar 2013 11:20:17 +0000 |
343 | + |
344 | +horizon (2013.1.g3-0ubuntu2) raring; urgency=low |
345 | + |
346 | + * Recompress static JS and CSS and generate new manifest.json for offline |
347 | + compression. |
348 | + |
349 | + -- James Page <james.page@ubuntu.com> Tue, 26 Feb 2013 07:35:51 +0000 |
350 | + |
351 | +horizon (2013.1.g3-0ubuntu1) raring; urgency=low |
352 | + |
353 | + [ James Page ] |
354 | + * Recompress static JS and CSS and generate new manifest.json for offline |
355 | + compression in preparation for Grizzly-3. |
356 | + |
357 | + [ Chuck Short ] |
358 | + * New usptream release. |
359 | + |
360 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 22 Feb 2013 09:43:22 -0600 |
361 | + |
362 | +horizon (2013.1~g2-0ubuntu1) raring; urgency=low |
363 | + |
364 | + [ Adam Gandelman ] |
365 | + * Recompress static JS and CSS and generate new manifest.json for offline |
366 | + compression in preparation for Grizzly-2. |
367 | + |
368 | + [ Chuck Short ] |
369 | + * New upstream release. |
370 | + |
371 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 11 Jan 2013 08:26:40 -0600 |
372 | + |
373 | +horizon (2013.1~g1-0ubuntu1) raring; urgency=low |
374 | + |
375 | + [ Adam Gandelman ] |
376 | + * debian/patches/add_juju_settings_pannel.patch: Disable during |
377 | + Grizzly dev. cycle. |
378 | + |
379 | + [ Chuck Short ] |
380 | + * New upstream relase. |
381 | + * Refreshed patches. |
382 | + |
383 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 23 Nov 2012 08:49:14 -0600 |
384 | + |
385 | +horizon (2012.2-0ubuntu2) quantal; urgency=low |
386 | + |
387 | + * debian/control: Set strict version requirements between python-django-horizon, |
388 | + openstack-dashboard, and openstack-ubuntu-theme. (LP: #1061961) |
389 | + * debian/theme/css/ubuntu.css: Refreshed against Folsom. (LP: #1064420) |
390 | + * debian/patches/add_juju_panel.patch: Update and refresh for Folsom |
391 | + compatability. (LP: #1064605) |
392 | + * debian/patches/allow_alternate_css.patch: Remove unapplied, obsolete |
393 | + patch. |
394 | + |
395 | + -- Adam Gandelman <adamg@canonical.com> Tue, 09 Oct 2012 09:59:55 -0700 |
396 | + |
397 | +horizon (2012.2-0ubuntu1) quantal; urgency=low |
398 | + |
399 | + * New upstream release. |
400 | + |
401 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 27 Sep 2012 11:56:26 -0500 |
402 | + |
403 | +horizon (2012.2~rc2-0ubuntu1) quantal; urgency=low |
404 | + |
405 | + [ Adam Gandelman ] |
406 | + * Re-enable openstack-dashboard-ubuntu-theme. |
407 | + |
408 | + [ Chuck Short ] |
409 | + * New upstream release |
410 | + |
411 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 21 Sep 2012 08:03:36 -0500 |
412 | + |
413 | +horizon (2012.2~rc1-0ubuntu1) quantal; urgency=low |
414 | + |
415 | + [ Adam Gandelman ] |
416 | + * debian/patches/ubuntu_local_settings.patch: Squash all patches that |
417 | + touch local_settings.py.example into one. |
418 | + * Drop node-less dependency (LP: #1024326). |
419 | + - debian/static/openstack-dashboard: Pre-compressed and compiled JS, CSS |
420 | + and compressor manifest.json. |
421 | + - debian/patches/ubuntu_local_settings.patch: Set COMPRESS_OFFLINE=True |
422 | + to enable offline compression and pre-compressed static files by |
423 | + default. |
424 | + |
425 | + [ Chuck Short ] |
426 | + * New upstream release |
427 | + |
428 | + -- Chuck Short <zulcss@ubuntu.com> Wed, 12 Sep 2012 12:21:33 -0500 |
429 | + |
430 | +horizon (2012.2~rc1~20120904.2043-0ubuntu1) quantal; urgency=low |
431 | + |
432 | + [ Adam Gandelman ] |
433 | + * debian/patches/fix-coverage-binary-name.patch: Drop, merge into |
434 | + fix-ubuntu-tests.patch. |
435 | + * debian/patches/set_login_redirects.patch: Configure login URLs in |
436 | + local_settings.py according to the default apache configuration |
437 | + installed. (LP: #1037349) |
438 | + * debian/patches/fix-dashboard-manage.patch: Refresh. |
439 | + |
440 | + [ Soren Hansen ] |
441 | + * Update debian/watch to account for symbolically named tarballs and |
442 | + use newer URL. |
443 | + * Fix Launchpad URLs in debian/watch. |
444 | + |
445 | + [ Chuck Short ] |
446 | + * New upstream version |
447 | + |
448 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 07 Sep 2012 12:35:36 -0500 |
449 | + |
450 | +horizon (2012.2~f3-0ubuntu2) quantal; urgency=low |
451 | + |
452 | + * Depend on python-openstack-auth rather than on the removed |
453 | + python-django-openstack-auth. |
454 | + |
455 | + -- Colin Watson <cjwatson@ubuntu.com> Wed, 22 Aug 2012 10:34:11 +0100 |
456 | + |
457 | +horizon (2012.2~f3-0ubuntu1) quantal; urgency=low |
458 | + |
459 | + [ Chuck Short ] |
460 | + * New upstream release. |
461 | + * debian/patches/fix-ubuntu-tests.patch: Fix test suites again to |
462 | + run during the builds. |
463 | + * debian/watch: Update. |
464 | + * debian/control: Add python-glanceclient. (LP: #1030911) |
465 | + * debian/openstack-dashboard.conf: Don't hijack apache's webroot. (LP: |
466 | + #1020313) |
467 | + * debian/control: Update horizon deps to reflect reality. |
468 | + |
469 | + [ Adam Gandelman ] |
470 | + * debian/control: Bump required python-django version to 1.4. |
471 | + * wrap-and-sort. |
472 | + * Fix (LP: #1036571): |
473 | + - debian/rules, openstack-dashboard.{links, dirs, postinst}: Add required |
474 | + symlinks and directories to allow Horizon to function with the packaged |
475 | + lessc. |
476 | + - debian/control: Add python-{cinder, swift, quantum}client, |
477 | + python-django-openstack-auth, python-netaddr, python-compressor, lessc. |
478 | + * debian/rules: Improve dh_auto_clean. |
479 | + |
480 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 16 Aug 2012 14:01:33 -0500 |
481 | + |
482 | +horizon (2012.2~f2-0ubuntu1) quantal; urgency=low |
483 | + |
484 | + * New usptream version. |
485 | + |
486 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 06 Jul 2012 11:38:55 -0400 |
487 | + |
488 | +horizon (2012.2~f2~20120622.1833-0ubuntu2) quantal; urgency=low |
489 | + |
490 | + * debian/patches/{use-memcache.patch, turn-off-debug.patch}: Refresh. |
491 | + |
492 | + -- Adam Gandelman <adamg@canonical.com> Tue, 03 Jul 2012 14:09:15 -0700 |
493 | + |
494 | +horizon (2012.2~f2~20120622.1833-0ubuntu1) quantal; urgency=low |
495 | + |
496 | + [ Chuck Short ] |
497 | + * New upstream version. |
498 | + * debian/copyright: Fix lintian warnings. |
499 | + |
500 | + [ Adam Gandelman ] |
501 | + * Disabled during Folsom dev cycle, to be refreshed against first Folsom RC: |
502 | + - debian/patches/add_juju_settings_panel.patch |
503 | + - debian/patches/allow_alternate_css.patch |
504 | + * debian/patches/fix-coverage-binary-name.patch: Refreshed. |
505 | + * debian/patches/turn-off-debug.patch: Refreshed. |
506 | + |
507 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 22 Jun 2012 11:31:06 -0400 |
508 | + |
509 | +horizon (2012.2~f2~20120530.1777-0ubuntu1) quantal; urgency=low |
510 | + |
511 | + * New upstream release. |
512 | + * debian/patches/add_juju_settings_panel.patch: Refreshed |
513 | + * debian/patches/turn-off-debug.patch: Refreshed |
514 | + |
515 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 01 Jun 2012 10:57:56 -0400 |
516 | + |
517 | +horizon (2012.2~f1-0ubuntu1) quantal; urgency=low |
518 | + |
519 | + * New usptream release. |
520 | + * Prepare for quantal: |
521 | + - debian/patches/fix-coverage-binary-name.patch: Refreshed. |
522 | + * Temporarily pass the testsuite. |
523 | + |
524 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 24 May 2012 14:33:20 -0400 |
525 | + |
526 | +horizon (2012.1-0ubuntu8) precise-proposed; urgency=low |
527 | + |
528 | + * debian/control: Added memcached as a Recommends of python-django-horizon, |
529 | + to ensure a memcached is running and can be used via default install. |
530 | + - LP: #988435 |
531 | + |
532 | + -- Dave Walker (Daviey) <DaveWalker@ubuntu.com> Wed, 25 Apr 2012 18:30:00 +0100 |
533 | + |
534 | +horizon (2012.1-0ubuntu7) precise; urgency=low |
535 | + |
536 | + * debian/patches/use-memcache.patch: Use memcache for session engine by |
537 | + default to avoid frequent logouts, as sessions are not shared across |
538 | + workers. LP: #968850 |
539 | + |
540 | + -- Dave Walker (Daviey) <DaveWalker@ubuntu.com> Wed, 25 Apr 2012 10:55:18 +0100 |
541 | + |
542 | +horizon (2012.1-0ubuntu6) precise; urgency=low |
543 | + |
544 | + [ Adam Gandelman ] |
545 | + * debian/openstack-dashboard.links: Create symlink to horizon's static js |
546 | + files. (LP: #987535) |
547 | + |
548 | + [ Jamie Strandboge ] |
549 | + * debian/control: don't Build-Depends on python-cherrypy3. It is used by |
550 | + only the dashboard tests and they are disabled in Ubuntu builds |
551 | + |
552 | + -- Adam Gandelman <adamg@canonical.com> Tue, 24 Apr 2012 10:43:12 -0700 |
553 | + |
554 | +horizon (2012.1-0ubuntu5) precise; urgency=low |
555 | + |
556 | + [ Adam Gandelman ] |
557 | + * debian/patches/turn-off-debug.patch: Enable again |
558 | + * debian/openstack-dashboard.conf: Add an Alias mapping '/static' |
559 | + to '/usr/share/opensack-dashboard/openstack_dashboard/static/' |
560 | + (LP: #980787) |
561 | + * debian/patches/allow_alternate_css.patch: Allow loading of ubuntu.css |
562 | + and favicon if they exists |
563 | + * debian/control: Drop libjs-jquery dependencies |
564 | + |
565 | + [ Dave Walker (Daviey) ] |
566 | + * debian/control: Drop duplicate depends python-cloudfiles. |
567 | + |
568 | + -- Dave Walker (Daviey) <DaveWalker@ubuntu.com> Mon, 23 Apr 2012 10:04:39 +0100 |
569 | + |
570 | +horizon (2012.1-0ubuntu4) precise; urgency=low |
571 | + |
572 | + * debian/patches/turn-off-debug.patch; Reverted, breaks CSS templates. |
573 | + (LP: #980787) |
574 | + |
575 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 13 Apr 2012 09:58:54 -0400 |
576 | + |
577 | +horizon (2012.1-0ubuntu3) precise; urgency=low |
578 | + |
579 | + [ Adam Gandelman ] |
580 | + * debian/patches/add_juju_settings_panel.patch, debian/rules, |
581 | + debian/juju.png: Add an Ubuntu-specific panel to easily generate |
582 | + Juju environments.yaml |
583 | + |
584 | + [ Chuck Short ] |
585 | + * debian/patches/turn-off-debug.patch: Turn off debugging. |
586 | + |
587 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 12 Apr 2012 12:42:04 -0400 |
588 | + |
589 | +horizon (2012.1-0ubuntu2) precise; urgency=low |
590 | + |
591 | + * Make openstack-dashboard Pre-Depends: dpkg (>= 1.15.7.2) for |
592 | + dpkg-maintscript-helper. |
593 | + |
594 | + -- Colin Watson <cjwatson@ubuntu.com> Tue, 10 Apr 2012 17:58:25 +0100 |
595 | + |
596 | +horizon (2012.1-0ubuntu1) precise; urgency=low |
597 | + |
598 | + * New upstream release. |
599 | + * debian/patches/turn-off-debug.patch: Turn off debugging. |
600 | + |
601 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 12 Apr 2012 10:46:00 -0400 |
602 | + |
603 | +horizon (2012.1~rc2-0ubuntu1) precise; urgency=low |
604 | + |
605 | + [ Chuck Short ] |
606 | + * New usptream release. |
607 | + * debian/control: Use python-cherrypy3 |
608 | + * debian/rules: Update pythonpath in order to run tests. |
609 | + * debian/patches/fix-coverage-binary-name.patch: Make the testsuite |
610 | + run. |
611 | + * debian/rules: Fail build if tests fail. |
612 | + |
613 | + [ A Gandelman ] |
614 | + * debian/control: Add python-memcache |
615 | + * debain/dashboard.conf: Update to match current upstream documentation |
616 | + (LP: #966069) |
617 | + |
618 | + [ Adrien Cunin ] |
619 | + * Renamed Apache config file from dashboard.conf to openstack-dashboard.conf |
620 | + (LP: #965410) |
621 | + - Updated post{inst,rm} and added preinst to handle correctly the rename |
622 | + |
623 | + -- Chuck Short <zulcss@ubuntu.com> Wed, 04 Apr 2012 07:21:15 -0400 |
624 | + |
625 | +horizon (2012.1~rc1-0ubuntu1) precise; urgency=low |
626 | + |
627 | + * New upstream release. |
628 | + |
629 | + -- Chuck Short <zulcss@ubuntu.com> Tue, 20 Mar 2012 14:49:24 -0400 |
630 | + |
631 | +horizon (2012.1~rc1~20120315.1545-0ubuntu1) precise; urgency=low |
632 | + |
633 | + [Adam Gandelman] |
634 | + * New upstream release. |
635 | + |
636 | + [Chuck Short] |
637 | + * debian/control: Update run-time depends |
638 | + |
639 | + -- Adam Gandelman <adamg@canonical.com> Fri, 16 Mar 2012 12:29:27 -0700 |
640 | + |
641 | +horizon (2012.1~rc1~20120308.1479-0ubuntu1) precise; urgency=low |
642 | + |
643 | + * New upstream version. |
644 | + * debian/rules: Fix symlink when installing horizon. |
645 | + (LP: #947118) |
646 | + * debian/control: Add python-django-nose as a dep. (LP: #944235) |
647 | + * debian/control: Fix broken depends. |
648 | + |
649 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 09 Mar 2012 11:50:22 -0500 |
650 | + |
651 | +horizon (2012.1~e4-0ubuntu1) precise; urgency=low |
652 | + |
653 | + * New upstream version. |
654 | + * debian/rules: Update due to upstream build changes. |
655 | + * debian/control: Update standards-version. |
656 | + * debian/patches/openstack-config-settings.patch: Dropped |
657 | + * debian/patches/fix-dashboard-django-wsgi.patch: Refreshed |
658 | + * debian/patches/fix-dashboard-manage.patch: Refreshed |
659 | + * debian/openstack-dashboard.install: Update due to upstream build changes. |
660 | + * debian/dashboard: Update to upstream build changes. |
661 | + * debian/pydist-overrides: Dont try to install python-django-nose-selenium. |
662 | + * debian/openstack-dashboard.install: Add missing config files. |
663 | + * debian/rules: Fix broken settings.py |
664 | + * debian/patches/pkg-setup.patch: Copy missing templates, shameously |
665 | + taken from debian |
666 | + * debian/patches/fix-broken-tarbll.patch: Add missing files. |
667 | + |
668 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 02 Mar 2012 12:11:59 -0500 |
669 | + |
670 | +horizon (2012.1~e4~20120224.1386-0ubuntu1) precise; urgency=low |
671 | + |
672 | + * New upstream version. |
673 | + |
674 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 24 Feb 2012 10:49:27 -0500 |
675 | + |
676 | +horizon (2012.1~e4~20120217.1354-0ubuntu1) precise; urgency=low |
677 | + |
678 | + * debian/patches/openstack-config-settings.patch: Refreshed. |
679 | + * debian/copyright: Updated copyright. |
680 | + * debian/rules: Diable tests since it doesnt work without a |
681 | + virtualenv. |
682 | + * New upstream release. |
683 | + |
684 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 17 Feb 2012 10:12:25 -0500 |
685 | + |
686 | +horizon (2012.1~e4~20120210.1331-0ubuntu1) precise; urgency=low |
687 | + |
688 | + * New Upstream version |
689 | + * debian/control: |
690 | + - Add python-coverage as a build dependency. |
691 | + - Add python-novaclient as a build dependency. |
692 | + |
693 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 10 Feb 2012 11:09:58 -0500 |
694 | + |
695 | +horizon (2012.1~e4~20120202.1300-0ubuntu2) precise; urgency=low |
696 | + |
697 | + * debian/control: Add python-keystoneclient as a build |
698 | + dependency. |
699 | + |
700 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 03 Feb 2012 13:29:27 -0500 |
701 | + |
702 | +horizon (2012.1~e4~20120202.1300-0ubuntu1) precise; urgency=low |
703 | + |
704 | + * New upstream version. |
705 | + * debian/control: Drop dependencies we dont need. |
706 | + |
707 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 03 Feb 2012 09:55:54 -0500 |
708 | + |
709 | +horizon (2012.1~e3-0ubuntu1) precise; urgency=low |
710 | + |
711 | + * New upstream version. |
712 | + * debian/conffiles: Don't wipe out local_settings.py on upgrade. |
713 | + (LP: #914257) |
714 | + |
715 | + -- Chuck Short <zulcss@ubuntu.com> Thu, 26 Jan 2012 09:52:53 -0500 |
716 | + |
717 | +horizon (2012.1~e3~20120120.1235-0ubuntu1) precise; urgency=low |
718 | + |
719 | + * New upstream release. |
720 | + |
721 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 20 Jan 2012 14:51:21 -0500 |
722 | + |
723 | +horizon (2012.1~e3~20120113.1213-0ubuntu1) precise; urgency=low |
724 | + |
725 | + [Chuck Short] |
726 | + * Removed python-django-horizon.postinst, let dh_python2 generate instead |
727 | + since python-support is not a dependency. |
728 | + * Dropped python-openstack-compute from debian/control. |
729 | + * Clean up debian/control. |
730 | + * Restart apache when installing the openstack dashboard. |
731 | + (LP: #905527) |
732 | + * Dropped python-coverage not needed. |
733 | + * Added transitional package for people updating from oneiric. |
734 | + * Rediffed patches. |
735 | + * More linitian fixes. |
736 | + |
737 | + [Robie Basak] |
738 | + * debian/control: put python-django-horizon in Python section. |
739 | + * debian/control: lintian fixes (LP: #899427): |
740 | + - Put python-django-horizon in Python section |
741 | + - Remove definite article from Description |
742 | + * debian/copyright: fix dep5 syntax. |
743 | + * debian/python-django-horizon.lintian-overrides: override for template shell |
744 | + script. |
745 | + |
746 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 13 Jan 2012 10:59:49 +0100 |
747 | + |
748 | +horizon (2012.1~e2-0ubuntu2) precise; urgency=low |
749 | + |
750 | + * Rebuild to drop dependencies on python2.6. |
751 | + |
752 | + -- Matthias Klose <doko@ubuntu.com> Mon, 02 Jan 2012 10:58:49 +0100 |
753 | + |
754 | +horizon (2012.1~e2-0ubuntu1) precise; urgency=low |
755 | + |
756 | + * New upstream release (LP: #904039) |
757 | + * debian/control: Update build-depends. |
758 | + * debian/watch: Fix to fetch from Launchpad ad well. |
759 | + |
760 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 16 Dec 2011 16:34:56 -0500 |
761 | + |
762 | +horizon (2012.1~e2~20111209.1104-0ubuntu1) precise; urgency=low |
763 | + |
764 | + * New upstream release. |
765 | + * Refreshed patches. |
766 | + * debian/docs: Removed README |
767 | + |
768 | + -- Chuck Short <zulcss@ubuntu.com> Fri, 09 Dec 2011 16:18:55 -0500 |
769 | + |
770 | +horizon (2012.1~e1-0ubuntu~e2.20111201.1077.1) precise; urgency=low |
771 | + |
772 | + [ Chuck Short ] |
773 | + * Initial release. |
774 | + |
775 | + [ Jamie Strandboge ] |
776 | + * debian/patches/git-2012.1~e2~20111201.1077.patch: use 2012.1~e1 release |
777 | + tarball and apply all git commits up to 2012.1~e2~20111201.1077. This |
778 | + can be dropped in 2012.1~e2. |
779 | + * rename python-djanog-horizon.postinst to python-django-horizon.postinst |
780 | + |
781 | + -- Jamie Strandboge <jamie@ubuntu.com> Fri, 02 Dec 2011 16:21:52 -0600 |
782 | |
783 | === added file 'debian/compat' |
784 | --- debian/compat 1970-01-01 00:00:00 +0000 |
785 | +++ debian/compat 2014-12-03 19:02:16 +0000 |
786 | @@ -0,0 +1,1 @@ |
787 | +8 |
788 | |
789 | === added file 'debian/control' |
790 | --- debian/control 1970-01-01 00:00:00 +0000 |
791 | +++ debian/control 2014-12-03 19:02:16 +0000 |
792 | @@ -0,0 +1,83 @@ |
793 | +Source: horizon |
794 | +Section: net |
795 | +Priority: extra |
796 | +Maintainer: Chuck Short <zulcss@ubuntu.com> |
797 | +Build-Depends: |
798 | + debhelper (>= 8.0.0), |
799 | + pylint, |
800 | + python-all (>= 2.6.6-3~), |
801 | + python-django-nose, |
802 | + python-mox, |
803 | + python-netaddr, |
804 | + python-nose, |
805 | + python-pbr, |
806 | + python-setuptools, |
807 | + python-sphinx |
808 | +Standards-Version: 3.9.3 |
809 | +Homepage: http://launchpad.net/horizon |
810 | +Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/horizon/icehouse/files |
811 | +Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/horizon/icehouse |
812 | + |
813 | +Package: python-django-horizon |
814 | +Section: python |
815 | +Architecture: all |
816 | +Depends: |
817 | + python-ceilometerclient, |
818 | + python-cinderclient, |
819 | + python-cloudfiles, |
820 | + python-compressor (>= 1.2), |
821 | + python-django (>= 1.4), |
822 | + python-glanceclient, |
823 | + python-heatclient, |
824 | + python-keystoneclient, |
825 | + python-lockfile, |
826 | + python-memcache, |
827 | + python-netaddr, |
828 | + python-neutronclient, |
829 | + python-novaclient, |
830 | + python-openstack-auth (>= 1.1.1), |
831 | + python-swiftclient, |
832 | + python-troveclient, |
833 | + python-tz, |
834 | + ${misc:Depends}, |
835 | + ${python:Depends} |
836 | +Recommends: memcached |
837 | +Suggests: python-lesscpy |
838 | +Description: Django module providing web based interaction with OpenStack |
839 | + The Django-Nova project is a Django module that is used to provide web based |
840 | + interactions with the OpenStack Nova cloud controller. |
841 | + |
842 | +Package: openstack-dashboard |
843 | +Architecture: all |
844 | +Pre-Depends: dpkg (>= 1.15.7.2) |
845 | +Depends: |
846 | + adduser, |
847 | + apache2 | httpd, |
848 | + libapache2-mod-wsgi (>= 2.3), |
849 | + python-django-horizon (= ${source:Version}), |
850 | + ${misc:Depends}, |
851 | + ${python:Depends} |
852 | +Recommends: openstack-dashboard-ubuntu-theme |
853 | +Description: django web interface to Openstack |
854 | + The OpenStack Dashboard is a reference implementation of a Django site that |
855 | + uses the Django-Nova project to provide web based interactions with the |
856 | + OpenStack Nova cloud controller. |
857 | + |
858 | +Package: python-django-openstack |
859 | +Section: oldlibs |
860 | +Architecture: all |
861 | +Depends: python-django-horizon (= ${source:Version}), ${misc:Depends} |
862 | +Description: dummy transitonal package |
863 | + This transitional package from the python-django-openstack to the |
864 | + python-django-horizon package. Once this package and its dependencies are |
865 | + installed you can remove it. |
866 | + |
867 | +Package: openstack-dashboard-ubuntu-theme |
868 | +Architecture: all |
869 | +Depends: |
870 | + openstack-dashboard (= ${source:Version}), |
871 | + ${misc:Depends}, |
872 | + ${python:Depends} |
873 | +Description: Ubuntu theme for the Openstack dashboard |
874 | + A custom Ubuntu theme for Horizon. This package is optional and overrides the |
875 | + default theme and branding. |
876 | |
877 | === added file 'debian/copyright' |
878 | --- debian/copyright 1970-01-01 00:00:00 +0000 |
879 | +++ debian/copyright 2014-12-03 19:02:16 +0000 |
880 | @@ -0,0 +1,55 @@ |
881 | +Format: http://dep.debian.net/deps/dep5 |
882 | +Upstream-Name: horizon |
883 | +Source: http://github.com/openstack/horizon |
884 | + |
885 | +Files: * |
886 | +Copyright: 2010 United States Government as represented by the Administrator of the National Aeronautics and Space Administration. |
887 | + 2011 Nebula, Inc. |
888 | + 2011 OpenStack LLC |
889 | + 2011 Midokura KK |
890 | +License: Apache-2 |
891 | + Licensed under the Apache License, Version 2.0 (the "License"); |
892 | + you may not use this file except in compliance with the License. |
893 | + You may obtain a copy of the License at |
894 | + . |
895 | + http://www.apache.org/licenses/LICENSE-2.0 |
896 | + . |
897 | + Unless required by applicable law or agreed to in writing, software |
898 | + distributed under the License is distributed on an "AS IS" BASIS, |
899 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
900 | + See the License for the specific language governing permissions and |
901 | + limitations under the License. |
902 | + . |
903 | + On Debian-based systems the full text of the Apache version 2.0 license |
904 | + can be found in `/usr/share/common-licenses/Apache-2.0'. |
905 | + |
906 | +Files: tools/rfc.sh |
907 | +Copyright: Copyright (c) 2010-2011 Gluster, Inc |
908 | +License: GPL-v3 |
909 | + GNU GENERAL PUBLIC LICENSE |
910 | + Version 3, 29 June 2007 |
911 | + . |
912 | + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
913 | + Everyone is permitted to copy and distribute verbatim copies |
914 | + of this license document, but changing it is not allowed. |
915 | + . |
916 | + On Debian-based systems the full text of the Apache version 2.0 license |
917 | + can be found in `/usr/share/common-licenses/GPL-3' |
918 | + |
919 | +Files: debian/* |
920 | +Copyright: (c) 2012 Chuck Short <chuck.short@canonical.com> |
921 | +License: Apache-2 |
922 | + Licensed under the Apache License, Version 2.0 (the "License"); |
923 | + you may not use this file except in compliance with the License. |
924 | + You may obtain a copy of the License at |
925 | + . |
926 | + http://www.apache.org/licenses/LICENSE-2.0 |
927 | + . |
928 | + Unless required by applicable law or agreed to in writing, software |
929 | + distributed under the License is distributed on an "AS IS" BASIS, |
930 | + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
931 | + See the License for the specific language governing permissions and |
932 | + limitations under the License. |
933 | + . |
934 | + On Debian-based systems the full text of the Apache version 2.0 license |
935 | + can be found in `/usr/share/common-licenses/Apache-2.0'. |
936 | |
937 | === added file 'debian/openstack-dashboard-ubuntu-theme.dirs' |
938 | --- debian/openstack-dashboard-ubuntu-theme.dirs 1970-01-01 00:00:00 +0000 |
939 | +++ debian/openstack-dashboard-ubuntu-theme.dirs 2014-12-03 19:02:16 +0000 |
940 | @@ -0,0 +1,4 @@ |
941 | +/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu |
942 | +/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/img |
943 | +/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/css |
944 | +/usr/share/openstack-dashboard-ubuntu-theme/templates |
945 | |
946 | === added file 'debian/openstack-dashboard-ubuntu-theme.install' |
947 | --- debian/openstack-dashboard-ubuntu-theme.install 1970-01-01 00:00:00 +0000 |
948 | +++ debian/openstack-dashboard-ubuntu-theme.install 2014-12-03 19:02:16 +0000 |
949 | @@ -0,0 +1,4 @@ |
950 | +debian/theme/css/* /usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/css |
951 | +debian/theme/img/* /usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/img |
952 | +debian/theme/templates/* /usr/share/openstack-dashboard-ubuntu-theme/templates |
953 | +debian/theme/ubuntu_theme.py /etc/openstack-dashboard |
954 | |
955 | === added file 'debian/openstack-dashboard-ubuntu-theme.links' |
956 | --- debian/openstack-dashboard-ubuntu-theme.links 1970-01-01 00:00:00 +0000 |
957 | +++ debian/openstack-dashboard-ubuntu-theme.links 2014-12-03 19:02:16 +0000 |
958 | @@ -0,0 +1,2 @@ |
959 | +/etc/openstack-dashboard/ubuntu_theme.py /usr/share/openstack-dashboard/openstack_dashboard/local/ubuntu_theme.py |
960 | +/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu /usr/share/openstack-dashboard/openstack_dashboard/static/ubuntu |
961 | |
962 | === added file 'debian/openstack-dashboard-ubuntu-theme.postinst' |
963 | --- debian/openstack-dashboard-ubuntu-theme.postinst 1970-01-01 00:00:00 +0000 |
964 | +++ debian/openstack-dashboard-ubuntu-theme.postinst 2014-12-03 19:02:16 +0000 |
965 | @@ -0,0 +1,11 @@ |
966 | +#!/bin/sh |
967 | + |
968 | +set -e |
969 | + |
970 | +if [ "$1" = "configure" ]; then |
971 | + if [ -x "`which invoke-rc.d 2>/dev/null`" -a -x "/etc/init.d/apache2" ] ; then |
972 | + invoke-rc.d --quiet apache2 reload |
973 | + fi |
974 | +fi |
975 | + |
976 | +#DEBHELPER# |
977 | |
978 | === added file 'debian/openstack-dashboard-ubuntu-theme.postrm' |
979 | --- debian/openstack-dashboard-ubuntu-theme.postrm 1970-01-01 00:00:00 +0000 |
980 | +++ debian/openstack-dashboard-ubuntu-theme.postrm 2014-12-03 19:02:16 +0000 |
981 | @@ -0,0 +1,9 @@ |
982 | +#!/bin/sh |
983 | + |
984 | +set -e |
985 | + |
986 | +if [ -x "`which invoke-rc.d 2>/dev/null`" -a -x "/etc/init.d/apache2" ] ; then |
987 | + invoke-rc.d --quiet apache2 reload |
988 | +fi |
989 | + |
990 | +#DEBHELPER# |
991 | |
992 | === added file 'debian/openstack-dashboard.conf' |
993 | --- debian/openstack-dashboard.conf 1970-01-01 00:00:00 +0000 |
994 | +++ debian/openstack-dashboard.conf 2014-12-03 19:02:16 +0000 |
995 | @@ -0,0 +1,8 @@ |
996 | +WSGIScriptAlias /horizon /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi |
997 | +WSGIDaemonProcess horizon user=horizon group=horizon processes=3 threads=10 |
998 | +WSGIProcessGroup horizon |
999 | +Alias /static /usr/share/openstack-dashboard/openstack_dashboard/static/ |
1000 | +<Directory /usr/share/openstack-dashboard/openstack_dashboard/wsgi> |
1001 | + Order allow,deny |
1002 | + Allow from all |
1003 | +</Directory> |
1004 | |
1005 | === added file 'debian/openstack-dashboard.dirs' |
1006 | --- debian/openstack-dashboard.dirs 1970-01-01 00:00:00 +0000 |
1007 | +++ debian/openstack-dashboard.dirs 2014-12-03 19:02:16 +0000 |
1008 | @@ -0,0 +1,6 @@ |
1009 | +/etc/openstack-dashboard |
1010 | +/usr/share/openstack-dashboard |
1011 | +/usr/share/openstack-dashboard/bin/less/ |
1012 | +/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/js |
1013 | +/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/css |
1014 | +/var/lib/openstack-dashboard |
1015 | |
1016 | === added file 'debian/openstack-dashboard.install' |
1017 | --- debian/openstack-dashboard.install 1970-01-01 00:00:00 +0000 |
1018 | +++ debian/openstack-dashboard.install 2014-12-03 19:02:16 +0000 |
1019 | @@ -0,0 +1,6 @@ |
1020 | +debian/openstack-dashboard.conf etc/apache2/conf-available |
1021 | +debian/static/openstack-dashboard/css/* usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/css |
1022 | +debian/static/openstack-dashboard/js/* usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/js |
1023 | +debian/static/openstack-dashboard/manifest.json usr/share/openstack-dashboard/openstack_dashboard/static/dashboard |
1024 | +etc/openstack-dashboard |
1025 | +usr/share/openstack-dashboard |
1026 | |
1027 | === added file 'debian/openstack-dashboard.links' |
1028 | --- debian/openstack-dashboard.links 1970-01-01 00:00:00 +0000 |
1029 | +++ debian/openstack-dashboard.links 2014-12-03 19:02:16 +0000 |
1030 | @@ -0,0 +1,2 @@ |
1031 | +/usr/share/openstack-dashboard/openstack_dashboard/static /usr/share/openstack-dashboard/static |
1032 | +/usr/bin/lessc /usr/share/openstack-dashboard/bin/less/lessc |
1033 | |
1034 | === added file 'debian/openstack-dashboard.postinst' |
1035 | --- debian/openstack-dashboard.postinst 1970-01-01 00:00:00 +0000 |
1036 | +++ debian/openstack-dashboard.postinst 2014-12-03 19:02:16 +0000 |
1037 | @@ -0,0 +1,63 @@ |
1038 | +#!/bin/sh |
1039 | +# vim: set ts=2 et: |
1040 | + |
1041 | +set -e |
1042 | + |
1043 | +CONF="openstack-dashboard.conf" |
1044 | + |
1045 | +if [ "$1" = "configure" ]; then |
1046 | + # /etc/apache2/conf.d/dashboard.conf -> /etc/apache2/conf-available/openstack-dashboard.conf |
1047 | + dpkg-maintscript-helper mv_conffile \ |
1048 | + /etc/apache2/conf.d/dashboard.conf /etc/apache2/conf-available/$CONF \ |
1049 | + 2012.1~rc1-0ubuntu1 -- "$@" |
1050 | + |
1051 | + # Transition config to apache 2.4 compatable location. |
1052 | + dpkg-maintscript-helper mv_conffile \ |
1053 | + /etc/apache2/conf.d/$CONF \ |
1054 | + /etc/apache2/conf-available/$CONF \ |
1055 | + 1:2013.2~b2-0ubuntu3 -- "$@" |
1056 | + |
1057 | + if ! getent group horizon > /dev/null 2>&1 |
1058 | + then |
1059 | + addgroup --system horizon >/dev/null |
1060 | + fi |
1061 | + if ! getent passwd horizon > /dev/null 2>&1 |
1062 | + then |
1063 | + adduser --system --home /usr/share/openstack-dashboard/ --ingroup horizon \ |
1064 | + --no-create-home --shell /bin/false horizon |
1065 | + fi |
1066 | + |
1067 | + if [ -e /usr/share/openstack-dashboard/openstack_dashboard/static ] ; then |
1068 | + chown -R horizon:horizon \ |
1069 | + /usr/share/openstack-dashboard/openstack_dashboard/static |
1070 | + fi |
1071 | + |
1072 | + if [ -d /etc/openstack-dashboard/ ] ; then |
1073 | + chown horizon:horizon /etc/openstack-dashboard/ |
1074 | + fi |
1075 | + |
1076 | + A22_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) |
1077 | + |
1078 | + if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then |
1079 | + # apache 2.4 |
1080 | + . /usr/share/apache2/apache2-maintscript-helper |
1081 | + apache2_invoke enconf $CONF || exit $? |
1082 | + elif [ "$A22_STATE" = "installed" ] || [ "$A22_STATE" = "unpacked" ] ; then |
1083 | + # apache 2.2 |
1084 | + [ -d /etc/apache2/conf.d/ ] && [ ! -L /etc/apache2/conf.d/$CONF ] && |
1085 | + ln -s ../conf-available/$CONF /etc/apache2/conf.d/$CONF |
1086 | + [ -x /etc/init.d/apache2 ] && invoke-rc.d --quiet apache2 reload |
1087 | + fi |
1088 | + |
1089 | + if [ -d /var/lib/openstack-dashboard ] ; then |
1090 | + # Generated secret storage for single node use - see local_settings.py |
1091 | + # for more details of SECRET_KEY |
1092 | + chmod 0700 /var/lib/openstack-dashboard |
1093 | + if [ -f /etc/openstack-dashboard/secret_key ]; then |
1094 | + mv /etc/openstack-dashboard/secret_key /var/lib/openstack-dashboard |
1095 | + fi |
1096 | + chown -R horizon:horizon /var/lib/openstack-dashboard |
1097 | + fi |
1098 | +fi |
1099 | + |
1100 | +#DEBHELPER# |
1101 | |
1102 | === added file 'debian/openstack-dashboard.postrm' |
1103 | --- debian/openstack-dashboard.postrm 1970-01-01 00:00:00 +0000 |
1104 | +++ debian/openstack-dashboard.postrm 2014-12-03 19:02:16 +0000 |
1105 | @@ -0,0 +1,44 @@ |
1106 | +#!/bin/sh |
1107 | +# vim: set ts=2 et: |
1108 | + |
1109 | +set -e |
1110 | + |
1111 | +CONF="openstack-dashboard.conf" |
1112 | + |
1113 | +# /etc/apache2/conf.d/dashboard.conf -> /etc/apache2/conf-available/openstack-dashboard.conf |
1114 | +dpkg-maintscript-helper mv_conffile \ |
1115 | + /etc/apache2/conf.d/dashboard.conf /etc/apache2/conf-available/$CONF \ |
1116 | + 2012.1~rc1-0ubuntu1 -- "$@" |
1117 | + |
1118 | +# Transition config to apache 2.4 compatable location. |
1119 | +dpkg-maintscript-helper mv_conffile \ |
1120 | + /etc/apache2/conf.d/openstack-dashboard.conf \ |
1121 | + /etc/apache2/conf-available/openstack-dashboard.conf \ |
1122 | + 1:2013.2~b2-0ubuntu3 -- "$@" |
1123 | + |
1124 | +if [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then |
1125 | + A22_STATE=$(dpkg-query -f '${Status}' -W 'apache2.2-common' 2>/dev/null | awk '{print $3}' || true) |
1126 | + |
1127 | + if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then |
1128 | + # apache 2.4 |
1129 | + . /usr/share/apache2/apache2-maintscript-helper |
1130 | + apache2_invoke disconf $CONF || exit $? |
1131 | + elif [ "$A22_STATE" = "installed" ] || [ "$A22_STATE" = "unpacked" ] ; then |
1132 | + # apache 2.2 |
1133 | + [ -d /etc/apache2/conf.d/ ] && [ -L /etc/apache2/conf.d/$CONF ] && |
1134 | + rm /etc/apache2/conf.d/$CONF |
1135 | + [ -x /etc/init.d/apache2 ] && invoke-rc.d --quiet apache2 reload |
1136 | + fi |
1137 | + |
1138 | +fi |
1139 | + |
1140 | +if [ "$1" = "purge" ] ; then |
1141 | + if (which deluser && getent passwd horizon) > /dev/null 2>&1; then |
1142 | + deluser --system --quiet --backup-to /var/lib horizon |
1143 | + fi |
1144 | + if (which delgroup && getent group horizon) > /dev/null 2>&1; then |
1145 | + delgroup --system --quiet horizon |
1146 | + fi |
1147 | +fi |
1148 | + |
1149 | +#DEBHELPER# |
1150 | |
1151 | === added file 'debian/openstack-dashboard.preinst' |
1152 | --- debian/openstack-dashboard.preinst 1970-01-01 00:00:00 +0000 |
1153 | +++ debian/openstack-dashboard.preinst 2014-12-03 19:02:16 +0000 |
1154 | @@ -0,0 +1,17 @@ |
1155 | +#!/bin/sh |
1156 | +# vim: set ts=2 et: |
1157 | + |
1158 | +set -e |
1159 | + |
1160 | +# /etc/apache2/conf.d/dashboard.conf -> /etc/apache2/conf.d/openstack-dashboard.conf |
1161 | +dpkg-maintscript-helper mv_conffile \ |
1162 | + /etc/apache2/conf.d/dashboard.conf /etc/apache2/conf.d/openstack-dashboard.conf \ |
1163 | + 2012.1~rc1-0ubuntu1 -- "$@" |
1164 | + |
1165 | +# Transition config to apache 2.4 compatable location. |
1166 | +dpkg-maintscript-helper mv_conffile \ |
1167 | + /etc/apache2/conf.d/openstack-dashboard.conf \ |
1168 | + /etc/apache2/conf-available/openstack-dashboard.conf \ |
1169 | + 1:2013.2~b2-0ubuntu3 -- "$@" |
1170 | + |
1171 | +#DEBHELPER# |
1172 | |
1173 | === added directory 'debian/patches' |
1174 | === added file 'debian/patches/add_juju_settings_panel.patch' |
1175 | --- debian/patches/add_juju_settings_panel.patch 1970-01-01 00:00:00 +0000 |
1176 | +++ debian/patches/add_juju_settings_panel.patch 2014-12-03 19:02:16 +0000 |
1177 | @@ -0,0 +1,309 @@ |
1178 | +Index: horizon-2012.2/horizon/dashboards/settings/dashboard.py |
1179 | +=================================================================== |
1180 | +--- horizon-2012.2.orig/horizon/dashboards/settings/dashboard.py 2012-10-09 11:54:50.986004892 -0700 |
1181 | ++++ horizon-2012.2/horizon/dashboards/settings/dashboard.py 2012-10-09 11:54:57.058004668 -0700 |
1182 | +@@ -16,6 +16,7 @@ |
1183 | + # under the License. |
1184 | + |
1185 | + from django.utils.translation import ugettext_lazy as _ |
1186 | ++from django.conf import settings |
1187 | + |
1188 | + import horizon |
1189 | + |
1190 | +@@ -23,7 +24,15 @@ |
1191 | + class Settings(horizon.Dashboard): |
1192 | + name = _("Settings") |
1193 | + slug = "settings" |
1194 | +- panels = ('user', 'project', 'ec2') |
1195 | ++ try: |
1196 | ++ juju_panel = getattr(settings, 'ENABLE_JUJU_PANEL') |
1197 | ++ if juju_panel == True: |
1198 | ++ panels = ('user', 'project', 'ec2', 'juju') |
1199 | ++ else: |
1200 | ++ panels = ('user', 'project', 'ec2') |
1201 | ++ except AttributeError: |
1202 | ++ panels = ('user', 'project', 'ec2') |
1203 | ++ |
1204 | + default_panel = 'user' |
1205 | + nav = False |
1206 | + |
1207 | +Index: horizon-2012.2/horizon/dashboards/settings/juju/forms.py |
1208 | +=================================================================== |
1209 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1210 | ++++ horizon-2012.2/horizon/dashboards/settings/juju/forms.py 2012-10-09 11:58:55.169995921 -0700 |
1211 | +@@ -0,0 +1,100 @@ |
1212 | ++# vim: tabstop=4 shiftwidth=4 softtabstop=4 |
1213 | ++ |
1214 | ++# Copyright 2012 Openstack, LLC |
1215 | ++# Copyright 2012 Canonical Ltd. |
1216 | ++# |
1217 | ++# Licensed under the Apache License, Version 2.0 (the "License"); you may |
1218 | ++# not use this file except in compliance with the License. You may obtain |
1219 | ++# a copy of the License at |
1220 | ++# |
1221 | ++# http://www.apache.org/licenses/LICENSE-2.0 |
1222 | ++# |
1223 | ++# Unless required by applicable law or agreed to in writing, software |
1224 | ++# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
1225 | ++# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
1226 | ++# License for the specific language governing permissions and limitations |
1227 | ++# under the License. |
1228 | ++ |
1229 | ++import logging |
1230 | ++import tempfile |
1231 | ++import zipfile |
1232 | ++from contextlib import closing |
1233 | ++ |
1234 | ++from django import http, shortcuts |
1235 | ++from django.template.loader import render_to_string |
1236 | ++from django.utils.translation import ugettext_lazy as _ |
1237 | ++ |
1238 | ++from horizon import api |
1239 | ++from horizon import exceptions |
1240 | ++from horizon import forms |
1241 | ++from horizon import messages |
1242 | ++ |
1243 | ++import boto |
1244 | ++import uuid |
1245 | ++ |
1246 | ++LOG = logging.getLogger(__name__) |
1247 | ++ |
1248 | ++ |
1249 | ++class DownloadJujuEnvironment(forms.SelfHandlingForm): |
1250 | ++ # This is heavily based off the ec2 credentials form |
1251 | ++ tenant = forms.ChoiceField(label=_("Select a Project")) |
1252 | ++ @classmethod |
1253 | ++ def _instantiate(cls, request, *args, **kwargs): |
1254 | ++ return cls(request, *args, **kwargs) |
1255 | ++ |
1256 | ++ def __init__(self, request, *args, **kwargs): |
1257 | ++ super(DownloadJujuEnvironment, self).__init__(request, *args, **kwargs) |
1258 | ++ tenant_choices = [] |
1259 | ++ try: |
1260 | ++ tenant_list = api.keystone.tenant_list(request) |
1261 | ++ except: |
1262 | ++ tenant_list = [] |
1263 | ++ exceptions.handle(request, _("Unable to retrieve tenant list.")) |
1264 | ++ |
1265 | ++ for tenant in tenant_list: |
1266 | ++ if tenant.enabled: |
1267 | ++ tenant_choices.append((tenant.id, tenant.name)) |
1268 | ++ if not tenant_choices: |
1269 | ++ self.fields['tenant'].choices = ('', 'No Available Tenants') |
1270 | ++ else: |
1271 | ++ self.fields['tenant'].choices = tenant_choices |
1272 | ++ |
1273 | ++ def handle(self, request, data): |
1274 | ++ def find_or_create_access_keys(request, tenant_id): |
1275 | ++ keys = api.keystone.list_ec2_credentials(request, request.user.id) |
1276 | ++ if keys: |
1277 | ++ return keys[0] |
1278 | ++ else: |
1279 | ++ return api.keystone.create_ec2_credentials(request, |
1280 | ++ request.user.id, |
1281 | ++ tenant_id) |
1282 | ++ try: |
1283 | ++ api.keystone.token_create_scoped(request, |
1284 | ++ data.get('tenant'), |
1285 | ++ request.user.token.id) |
1286 | ++ keys = find_or_create_access_keys(request, data.get('tenant')) |
1287 | ++ tenant_id = data['tenant'] |
1288 | ++ tenant_name = dict(self.fields['tenant'].choices)[tenant_id] |
1289 | ++ control_bucket = "juju-openstack-%s-%s" % (tenant_name, str(uuid.uuid4())[19:]) |
1290 | ++ context = {'ec2_access_key': keys.access, |
1291 | ++ 'ec2_secret_key': keys.secret, |
1292 | ++ 'ec2_url': api.url_for(request, 'ec2'), |
1293 | ++ 's3_url': api.url_for(request, 's3'), |
1294 | ++ 'juju_admin_secret': uuid.uuid4().hex, |
1295 | ++ 'control_bucket': control_bucket |
1296 | ++ } |
1297 | ++ except Exception, e: |
1298 | ++ # This will fail if there is not an S3 endpoint configured in the |
1299 | ++ # service catalog. |
1300 | ++ msg = "Could not generate Juju environment config: %s" % e |
1301 | ++ messages.error(request, msg) |
1302 | ++ redirect = request.build_absolute_uri() |
1303 | ++ raise exceptions.Http302(redirect) |
1304 | ++ |
1305 | ++ response = shortcuts.render(request, |
1306 | ++ 'settings/juju/environments.yaml.template', |
1307 | ++ context, |
1308 | ++ content_type='text/plain') |
1309 | ++ response['Content-Disposition'] = 'attachment; filename=environments.yaml' |
1310 | ++ response['Content-Length'] = str(len(response.content)) |
1311 | ++ return response |
1312 | +Index: horizon-2012.2/horizon/dashboards/settings/juju/__init__.py |
1313 | +=================================================================== |
1314 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1315 | ++++ horizon-2012.2/horizon/dashboards/settings/juju/__init__.py 2012-10-09 11:54:57.058004668 -0700 |
1316 | +@@ -0,0 +1 @@ |
1317 | ++# Horizon Juju settings panel |
1318 | +Index: horizon-2012.2/horizon/dashboards/settings/juju/panel.py |
1319 | +=================================================================== |
1320 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1321 | ++++ horizon-2012.2/horizon/dashboards/settings/juju/panel.py 2012-10-09 11:54:57.058004668 -0700 |
1322 | +@@ -0,0 +1,28 @@ |
1323 | ++# vim: tabstop=4 shiftwidth=4 softtabstop=4 |
1324 | ++# Copyright 2012 Openstack, LLC |
1325 | ++# Copyright 2012 Canonical Ltd. |
1326 | ++# |
1327 | ++# Licensed under the Apache License, Version 2.0 (the "License"); you may |
1328 | ++# not use this file except in compliance with the License. You may obtain |
1329 | ++# a copy of the License at |
1330 | ++# |
1331 | ++# http://www.apache.org/licenses/LICENSE-2.0 |
1332 | ++# |
1333 | ++# Unless required by applicable law or agreed to in writing, software |
1334 | ++# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
1335 | ++# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
1336 | ++# License for the specific language governing permissions and limitations |
1337 | ++# under the License. |
1338 | ++ |
1339 | ++from django.utils.translation import ugettext_lazy as _ |
1340 | ++ |
1341 | ++import horizon |
1342 | ++from horizon.dashboards.settings import dashboard |
1343 | ++ |
1344 | ++ |
1345 | ++class JujuPanel(horizon.Panel): |
1346 | ++ name = _("Juju Environment Config") |
1347 | ++ slug = 'juju' |
1348 | ++ |
1349 | ++ |
1350 | ++dashboard.Settings.register(JujuPanel) |
1351 | +Index: horizon-2012.2/horizon/dashboards/settings/juju/urls.py |
1352 | +=================================================================== |
1353 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1354 | ++++ horizon-2012.2/horizon/dashboards/settings/juju/urls.py 2012-10-09 11:54:57.058004668 -0700 |
1355 | +@@ -0,0 +1,24 @@ |
1356 | ++# vim: tabstop=4 shiftwidth=4 softtabstop=4 |
1357 | ++ |
1358 | ++# Copyright 2012 Openstack, LLC |
1359 | ++# Copyright 2012 Canonical Ltd. |
1360 | ++# |
1361 | ++# Licensed under the Apache License, Version 2.0 (the "License"); you may |
1362 | ++# not use this file except in compliance with the License. You may obtain |
1363 | ++# a copy of the License at |
1364 | ++# |
1365 | ++# http://www.apache.org/licenses/LICENSE-2.0 |
1366 | ++# |
1367 | ++# Unless required by applicable law or agreed to in writing, software |
1368 | ++# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
1369 | ++# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
1370 | ++# License for the specific language governing permissions and limitations |
1371 | ++# under the License. |
1372 | ++ |
1373 | ++from django.conf.urls.defaults import patterns, url |
1374 | ++ |
1375 | ++from .views import IndexView |
1376 | ++ |
1377 | ++urlpatterns = patterns('horizon.dashboards.settings.juju.views', |
1378 | ++ url(r'^$', IndexView.as_view(), name='index'), |
1379 | ++) |
1380 | +Index: horizon-2012.2/horizon/dashboards/settings/juju/views.py |
1381 | +=================================================================== |
1382 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1383 | ++++ horizon-2012.2/horizon/dashboards/settings/juju/views.py 2012-10-09 11:57:05.949999981 -0700 |
1384 | +@@ -0,0 +1,35 @@ |
1385 | ++# vim: tabstop=4 shiftwidth=4 softtabstop=4 |
1386 | ++ |
1387 | ++# Copyright 2012 Openstack, LLC |
1388 | ++# |
1389 | ++# Licensed under the Apache License, Version 2.0 (the "License"); you may |
1390 | ++# not use this file except in compliance with the License. You may obtain |
1391 | ++# a copy of the License at |
1392 | ++# |
1393 | ++# http://www.apache.org/licenses/LICENSE-2.0 |
1394 | ++# |
1395 | ++# Unless required by applicable law or agreed to in writing, software |
1396 | ++# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
1397 | ++# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
1398 | ++# License for the specific language governing permissions and limitations |
1399 | ++# under the License. |
1400 | ++ |
1401 | ++import logging |
1402 | ++ |
1403 | ++from django.core.urlresolvers import reverse_lazy |
1404 | ++ |
1405 | ++from horizon import forms |
1406 | ++from horizon.dashboards.settings.juju.forms import DownloadJujuEnvironment |
1407 | ++ |
1408 | ++ |
1409 | ++LOG = logging.getLogger(__name__) |
1410 | ++ |
1411 | ++ |
1412 | ++class IndexView(forms.ModalFormView): |
1413 | ++ form_class = DownloadJujuEnvironment |
1414 | ++ template_name = 'settings/juju/index.html' |
1415 | ++ success_url = reverse_lazy('horizon:settings:juju') |
1416 | ++ |
1417 | ++ def form_valid(self, form): |
1418 | ++ return form.handle(self.request, form.cleaned_data) |
1419 | ++ |
1420 | +Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/download_form.html |
1421 | +=================================================================== |
1422 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1423 | ++++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/download_form.html 2012-10-09 11:54:57.058004668 -0700 |
1424 | +@@ -0,0 +1,20 @@ |
1425 | ++{% extends "horizon/common/_modal_form.html" %} |
1426 | ++{% load i18n %} |
1427 | ++ |
1428 | ++ |
1429 | ++{% block modal-body %} |
1430 | ++<div class="left"> |
1431 | ++ <fieldset> |
1432 | ++ {% include "horizon/common/_form_fields.html" %} |
1433 | ++ </fieldset> |
1434 | ++</div> |
1435 | ++<div class="right"> |
1436 | ++ <h3>{% trans "Description:" %}</h3> |
1437 | ++ <p>{% trans 'Clicking "Download Juju Environment Config" will download a file which includes a Juju environment configured for your cloud.<br><center><img src='/static/dashboard/img/juju.png'></center><br>To find out more about Juju visit <a href='http://juju.ubuntu.com'>http://juju.ubuntu.com</a>' %}</p> |
1438 | ++</div> |
1439 | ++{% endblock %} |
1440 | ++ |
1441 | ++{% block modal-footer %} |
1442 | ++ <input class="btn btn-primary pull-right" type="submit" value="{% trans "Download Juju Environment Config" %}" /> |
1443 | ++ {% if hide %}<a href="{% url horizon:settings:juju:index %}" class="btn secondary cancel close">{% trans "Cancel" %}</a>{% endif %} |
1444 | ++{% endblock %} |
1445 | +Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/environments.yaml.template |
1446 | +=================================================================== |
1447 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1448 | ++++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/environments.yaml.template 2012-10-09 11:54:57.058004668 -0700 |
1449 | +@@ -0,0 +1,21 @@ |
1450 | ++# To use Juju with your Openstack cloud: |
1451 | ++# 1. Run: apt-get install juju |
1452 | ++# 2. Copy this file to $HOME/.juju/environments.yaml |
1453 | ++# 3. Modify the 'default-image-id' to match an Ubuntu cloud image |
1454 | ++# AMI that has been published to your cloud. |
1455 | ++# 4. Run 'juju bootstrap' and deploy services! |
1456 | ++# |
1457 | ++# To find out more about juju visit http://juju.ubuntu.com |
1458 | ++ |
1459 | ++juju: environments |
1460 | ++environments: |
1461 | ++ openstack: |
1462 | ++ type: ec2 |
1463 | ++ control-bucket: {{ control_bucket }} |
1464 | ++ admin-secret: {{ juju_admin_secret }} |
1465 | ++ access-key: {{ ec2_access_key }} |
1466 | ++ secret-key: {{ ec2_secret_key }} |
1467 | ++ ec2-uri: {{ ec2_url }} |
1468 | ++ s3-uri: {{ s3_url }} |
1469 | ++ default-series: precise |
1470 | ++ default-image-id: ami-00000001 |
1471 | +Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/index.html |
1472 | +=================================================================== |
1473 | +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1474 | ++++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/index.html 2012-10-09 11:54:57.058004668 -0700 |
1475 | +@@ -0,0 +1,11 @@ |
1476 | ++{% extends 'base.html' %} |
1477 | ++{% load i18n %} |
1478 | ++{% block title %}{% trans "Download Juju Environment Config" %}{% endblock %} |
1479 | ++ |
1480 | ++{% block page_header %} |
1481 | ++ {% include "horizon/common/_page_header.html" with title=_("Download Juju Environment Config") %} |
1482 | ++{% endblock page_header %} |
1483 | ++ |
1484 | ++{% block main %} |
1485 | ++ {% include "settings/juju/download_form.html" %} |
1486 | ++{% endblock %} |
1487 | |
1488 | === added file 'debian/patches/fix-dashboard-django-wsgi.patch' |
1489 | --- debian/patches/fix-dashboard-django-wsgi.patch 1970-01-01 00:00:00 +0000 |
1490 | +++ debian/patches/fix-dashboard-django-wsgi.patch 2014-12-03 19:02:16 +0000 |
1491 | @@ -0,0 +1,11 @@ |
1492 | +--- a/openstack_dashboard/wsgi/django.wsgi |
1493 | ++++ b/openstack_dashboard/wsgi/django.wsgi |
1494 | +@@ -9,6 +9,8 @@ sys.path.insert(0, os.path.join(os.path. |
1495 | + os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' |
1496 | + sys.stdout = sys.stderr |
1497 | + |
1498 | ++sys.path.append("/usr/share/openstack-dashboard/") |
1499 | ++ |
1500 | + DEBUG = False |
1501 | + |
1502 | + application = django.core.handlers.wsgi.WSGIHandler() |
1503 | |
1504 | === added file 'debian/patches/fix-dashboard-manage.patch' |
1505 | --- debian/patches/fix-dashboard-manage.patch 1970-01-01 00:00:00 +0000 |
1506 | +++ debian/patches/fix-dashboard-manage.patch 2014-12-03 19:02:16 +0000 |
1507 | @@ -0,0 +1,11 @@ |
1508 | +--- a/manage.py |
1509 | ++++ b/manage.py |
1510 | +@@ -17,6 +17,8 @@ import sys |
1511 | + |
1512 | + from django.core.management import execute_from_command_line # noqa |
1513 | + |
1514 | ++sys.path.append("/usr/share/openstack-dashboard") |
1515 | ++ |
1516 | + if __name__ == "__main__": |
1517 | + os.environ.setdefault("DJANGO_SETTINGS_MODULE", |
1518 | + "openstack_dashboard.settings") |
1519 | |
1520 | === added file 'debian/patches/fix-requirements.patch' |
1521 | --- debian/patches/fix-requirements.patch 1970-01-01 00:00:00 +0000 |
1522 | +++ debian/patches/fix-requirements.patch 2014-12-03 19:02:16 +0000 |
1523 | @@ -0,0 +1,13 @@ |
1524 | +Description: Set min version of six. |
1525 | +Author: Corey Bryant <corey.bryant@canonical.com> |
1526 | +Forwarded: Not needed. |
1527 | +Index: horizon/requirements.txt |
1528 | +=================================================================== |
1529 | +--- horizon.orig/requirements.txt 2014-06-13 10:14:00.816555621 -0400 |
1530 | ++++ horizon/requirements.txt 2014-06-13 11:44:13.180390616 -0400 |
1531 | +@@ -21,4 +21,4 @@ |
1532 | + python-swiftclient>=1.6 |
1533 | + python-troveclient>=1.0.3 |
1534 | + pytz>=2010h |
1535 | +-six>=1.6.0 |
1536 | ++six>=1.5.2 |
1537 | |
1538 | === added file 'debian/patches/fix-ubuntu-tests.patch' |
1539 | --- debian/patches/fix-ubuntu-tests.patch 1970-01-01 00:00:00 +0000 |
1540 | +++ debian/patches/fix-ubuntu-tests.patch 2014-12-03 19:02:16 +0000 |
1541 | @@ -0,0 +1,40 @@ |
1542 | +--- a/run_tests.sh |
1543 | ++++ b/run_tests.sh |
1544 | +@@ -298,25 +298,25 @@ function run_tests_all { |
1545 | + if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then |
1546 | + export NOSE_HTML_OUT_FILE='horizon_nose_results.html' |
1547 | + fi |
1548 | +- ${command_wrapper} coverage erase |
1549 | +- ${command_wrapper} coverage run -p $root/manage.py test horizon --settings=horizon.test.settings $testopts |
1550 | ++ ${command_wrapper} python-coverage erase |
1551 | ++ ${command_wrapper} python-coverage run -p $root/manage.py test horizon --settings=horizon.test.settings $testopts |
1552 | + # get results of the Horizon tests |
1553 | + HORIZON_RESULT=$? |
1554 | + |
1555 | +- echo "Running openstack_dashboard tests" |
1556 | +- export NOSE_XUNIT_FILE=openstack_dashboard/nosetests.xml |
1557 | +- if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then |
1558 | +- export NOSE_HTML_OUT_FILE='dashboard_nose_results.html' |
1559 | +- fi |
1560 | +- ${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings $testopts |
1561 | ++ #echo "Running openstack_dashboard tests" |
1562 | ++ #export NOSE_XUNIT_FILE=openstack_dashboard/nosetests.xml |
1563 | ++ #if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then |
1564 | ++ # export NOSE_HTML_OUT_FILE='dashboard_nose_results.html' |
1565 | ++ #fi |
1566 | ++ #${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings $testopts |
1567 | + # get results of the openstack_dashboard tests |
1568 | +- DASHBOARD_RESULT=$? |
1569 | ++ #DASHBOARD_RESULT=$? |
1570 | + |
1571 | + if [ $with_coverage -eq 1 ]; then |
1572 | + echo "Generating coverage reports" |
1573 | +- ${command_wrapper} coverage combine |
1574 | +- ${command_wrapper} coverage xml -i --omit='/usr*,setup.py,*egg*,.venv/*' |
1575 | +- ${command_wrapper} coverage html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports |
1576 | ++ ${command_wrapper} python-coverage combine |
1577 | ++ ${command_wrapper} python-coverage xml -i --omit='/usr*,setup.py,*egg*,.venv/*' |
1578 | ++ ${command_wrapper} python-coverage html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports |
1579 | + fi |
1580 | + # Remove the leftover coverage files from the -p flag earlier. |
1581 | + rm -f .coverage.* |
1582 | |
1583 | === added file 'debian/patches/series' |
1584 | --- debian/patches/series 1970-01-01 00:00:00 +0000 |
1585 | +++ debian/patches/series 2014-12-03 19:02:16 +0000 |
1586 | @@ -0,0 +1,9 @@ |
1587 | +fix-dashboard-django-wsgi.patch |
1588 | +fix-dashboard-manage.patch |
1589 | + |
1590 | +# Disabled during Grizzly dev. cycle |
1591 | +#add_juju_settings_panel.patch |
1592 | + |
1593 | +#fix-ubuntu-tests.patch |
1594 | +ubuntu_settings.patch |
1595 | +fix-requirements.patch |
1596 | |
1597 | === added file 'debian/patches/ubuntu_settings.patch' |
1598 | --- debian/patches/ubuntu_settings.patch 1970-01-01 00:00:00 +0000 |
1599 | +++ debian/patches/ubuntu_settings.patch 2014-12-03 19:02:16 +0000 |
1600 | @@ -0,0 +1,79 @@ |
1601 | +--- a/openstack_dashboard/local/local_settings.py.example |
1602 | ++++ b/openstack_dashboard/local/local_settings.py.example |
1603 | +@@ -4,7 +4,7 @@ from django.utils.translation import uge |
1604 | + |
1605 | + from openstack_dashboard import exceptions |
1606 | + |
1607 | +-DEBUG = True |
1608 | ++DEBUG = False |
1609 | + TEMPLATE_DEBUG = DEBUG |
1610 | + |
1611 | + # Required for Django 1.5. |
1612 | +@@ -90,23 +90,45 @@ LOCAL_PATH = os.path.dirname(os.path.abs |
1613 | + # requests routed to the same dashboard instance or you set the same SECRET_KEY |
1614 | + # for all of them. |
1615 | + from horizon.utils import secret_key |
1616 | +-SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, '.secret_key_store')) |
1617 | ++SECRET_KEY = secret_key.generate_or_read_from_file('/var/lib/openstack-dashboard/secret_key') |
1618 | + |
1619 | + # We recommend you use memcached for development; otherwise after every reload |
1620 | + # of the django development server, you will have to login again. To use |
1621 | + # memcached set CACHES to something like |
1622 | +-# CACHES = { |
1623 | ++CACHES = { |
1624 | ++ 'default': { |
1625 | ++ 'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache', |
1626 | ++ 'LOCATION' : '127.0.0.1:11211', |
1627 | ++ } |
1628 | ++} |
1629 | ++ |
1630 | ++#CACHES = { |
1631 | + # 'default': { |
1632 | +-# 'BACKEND' : 'django.core.cache.backends.memcached.MemcachedCache', |
1633 | +-# 'LOCATION' : '127.0.0.1:11211', |
1634 | +-# } |
1635 | ++# 'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache' |
1636 | ++# } |
1637 | + #} |
1638 | + |
1639 | +-CACHES = { |
1640 | +- 'default': { |
1641 | +- 'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache' |
1642 | +- } |
1643 | +-} |
1644 | ++# Enable the Ubuntu theme if it is present. |
1645 | ++try: |
1646 | ++ from ubuntu_theme import * |
1647 | ++except ImportError: |
1648 | ++ pass |
1649 | ++ |
1650 | ++# Default Ubuntu apache configuration uses /horizon as the application root. |
1651 | ++# Configure auth redirects here accordingly. |
1652 | ++LOGIN_URL='/horizon/auth/login/' |
1653 | ++LOGOUT_URL='/horizon/auth/logout/' |
1654 | ++LOGIN_REDIRECT_URL='/horizon' |
1655 | ++ |
1656 | ++# The Ubuntu package includes pre-compressed JS and compiled CSS to allow |
1657 | ++# offline compression by default. To enable online compression, install |
1658 | ++# the node-less package and enable the following option. |
1659 | ++COMPRESS_OFFLINE = True |
1660 | ++ |
1661 | ++# By default, validation of the HTTP Host header is disabled. Production |
1662 | ++# installations should have this set accordingly. For more information |
1663 | ++# see https://docs.djangoproject.com/en/dev/ref/settings/. |
1664 | ++ALLOWED_HOSTS = '*' |
1665 | + |
1666 | + # Send email to the console by default |
1667 | + EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' |
1668 | +--- a/openstack_dashboard/settings.py |
1669 | ++++ b/openstack_dashboard/settings.py |
1670 | +@@ -237,8 +237,7 @@ if not SECRET_KEY: |
1671 | + 'local') |
1672 | + |
1673 | + from horizon.utils import secret_key |
1674 | +- SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, |
1675 | +- '.secret_key_store')) |
1676 | ++ SECRET_KEY = secret_key.generate_or_read_from_file('/var/lib/openstack-dashboard/secret_key') |
1677 | + |
1678 | + from openstack_dashboard import policy |
1679 | + POLICY_CHECK_FUNCTION = policy.check |
1680 | |
1681 | === added file 'debian/pydist-overrides' |
1682 | --- debian/pydist-overrides 1970-01-01 00:00:00 +0000 |
1683 | +++ debian/pydist-overrides 2014-12-03 19:02:16 +0000 |
1684 | @@ -0,0 +1,2 @@ |
1685 | +python_quantumclient |
1686 | +django_nose_selenium |
1687 | |
1688 | === added file 'debian/python-django-horizon.install' |
1689 | --- debian/python-django-horizon.install 1970-01-01 00:00:00 +0000 |
1690 | +++ debian/python-django-horizon.install 2014-12-03 19:02:16 +0000 |
1691 | @@ -0,0 +1,1 @@ |
1692 | +usr/lib/python*/dist-packages/horizon |
1693 | |
1694 | === added file 'debian/python-django-horizon.lintian-overrides' |
1695 | --- debian/python-django-horizon.lintian-overrides 1970-01-01 00:00:00 +0000 |
1696 | +++ debian/python-django-horizon.lintian-overrides 2014-12-03 19:02:16 +0000 |
1697 | @@ -0,0 +1,2 @@ |
1698 | +# Templates are not intended to be executed directly: |
1699 | +python-django-horizon binary: script-not-executable usr/share/pyshared/horizon/dashboards/settings/templates/settings/tenant/openrc.sh.template |
1700 | |
1701 | === added file 'debian/rules' |
1702 | --- debian/rules 1970-01-01 00:00:00 +0000 |
1703 | +++ debian/rules 2014-12-03 19:02:16 +0000 |
1704 | @@ -0,0 +1,47 @@ |
1705 | +#!/usr/bin/make -f |
1706 | + |
1707 | +# Uncomment this to turn on verbose mode. |
1708 | +#export DH_VERBOSE=1 |
1709 | + |
1710 | +%: |
1711 | + dh $@ --with python2 |
1712 | + |
1713 | +PYVER=$(shell pyversions -d) |
1714 | + |
1715 | +override_dh_auto_install: |
1716 | + # install horizon and dashboard |
1717 | + python setup.py install --root=$(CURDIR)/debian/tmp --no-compile -O0 --install-layout=deb |
1718 | + install -d -m 755 $(CURDIR)/debian/tmp/usr/share/openstack-dashboard |
1719 | + install -d -m 755 $(CURDIR)/debian/tmp/etc/openstack-dashboard |
1720 | + install -d -m 755 $(CURDIR)/debian/tmp/etc/apache2/conf-available |
1721 | + |
1722 | + cp -a $(CURDIR)/openstack_dashboard/ $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/ |
1723 | + install -d -m 755 $(CURDIR)/debian/tmp/etc/openstack-dashboard |
1724 | + cp -a $(CURDIR)/openstack_dashboard/settings.py $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/ |
1725 | + |
1726 | + cp $(CURDIR)/openstack_dashboard/local/local_settings.py.example \ |
1727 | + $(CURDIR)/debian/tmp/etc/openstack-dashboard/local_settings.py |
1728 | + cp $(CURDIR)/manage.py \ |
1729 | + $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/manage.py |
1730 | + ln -fs /etc/openstack-dashboard/local_settings.py \ |
1731 | + $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py |
1732 | + cp $(CURDIR)/debian/theme/img/juju.png \ |
1733 | + $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/juju.png |
1734 | + ln -fs /usr/lib/$(PYVER)/dist-packages/horizon/static/horizon \ |
1735 | + $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/static/horizon |
1736 | + |
1737 | +ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS))) |
1738 | +override_dh_auto_test: |
1739 | + # Skip tests |
1740 | + : |
1741 | +endif |
1742 | + |
1743 | +get-orig-source: |
1744 | + uscan --verbose --force-download --rename --destdir=../build-area |
1745 | + |
1746 | +refresh-static-assets: |
1747 | + (cd openstack_dashboard/local; ln -sf local_settings.py.example local_settings.py) |
1748 | + python ./manage.py compress --force |
1749 | + rm -rf debian/static/openstack-dashboard/* |
1750 | + cp -r static/dashboard/* debian/static/openstack-dashboard/ |
1751 | + rm -f openstack_dashboard/local/local_settings.py |
1752 | |
1753 | === added directory 'debian/source' |
1754 | === added file 'debian/source/format' |
1755 | --- debian/source/format 1970-01-01 00:00:00 +0000 |
1756 | +++ debian/source/format 2014-12-03 19:02:16 +0000 |
1757 | @@ -0,0 +1,1 @@ |
1758 | +3.0 (quilt) |
1759 | |
1760 | === added file 'debian/source/include-binaries' |
1761 | --- debian/source/include-binaries 1970-01-01 00:00:00 +0000 |
1762 | +++ debian/source/include-binaries 2014-12-03 19:02:16 +0000 |
1763 | @@ -0,0 +1,5 @@ |
1764 | +debian/theme/img/dots.png |
1765 | +debian/theme/img/favicon-ubuntu.ico |
1766 | +debian/theme/img/header_stripes.png |
1767 | +debian/theme/img/juju.png |
1768 | +debian/theme/img/ubuntu.png |
1769 | |
1770 | === added directory 'debian/static' |
1771 | === added directory 'debian/static/openstack-dashboard' |
1772 | === added directory 'debian/static/openstack-dashboard/css' |
1773 | === added file 'debian/static/openstack-dashboard/css/6bd71a04f0c0.css' |
1774 | --- debian/static/openstack-dashboard/css/6bd71a04f0c0.css 1970-01-01 00:00:00 +0000 |
1775 | +++ debian/static/openstack-dashboard/css/6bd71a04f0c0.css 2014-12-03 19:02:16 +0000 |
1776 | @@ -0,0 +1,6567 @@ |
1777 | +article, |
1778 | +aside, |
1779 | +details, |
1780 | +figcaption, |
1781 | +figure, |
1782 | +footer, |
1783 | +header, |
1784 | +hgroup, |
1785 | +nav, |
1786 | +section { |
1787 | + display: block; |
1788 | +} |
1789 | +audio, canvas, video { |
1790 | + display: inline-block; |
1791 | + *display: inline; |
1792 | + *zoom: 1; |
1793 | +} |
1794 | +audio:not([controls]) { |
1795 | + display: none; |
1796 | +} |
1797 | +html { |
1798 | + font-size: 100%; |
1799 | + -webkit-text-size-adjust: 100%; |
1800 | + -ms-text-size-adjust: 100%; |
1801 | +} |
1802 | +a:focus { |
1803 | + outline: thin dotted #333333; |
1804 | + outline: 5px auto -webkit-focus-ring-color; |
1805 | + outline-offset: -2px; |
1806 | +} |
1807 | +a:hover, a:active { |
1808 | + outline: 0; |
1809 | +} |
1810 | +sub, sup { |
1811 | + position: relative; |
1812 | + font-size: 75%; |
1813 | + line-height: 0; |
1814 | + vertical-align: baseline; |
1815 | +} |
1816 | +sup { |
1817 | + top: -0.5em; |
1818 | +} |
1819 | +sub { |
1820 | + bottom: -0.25em; |
1821 | +} |
1822 | +img { |
1823 | + max-width: 100%; |
1824 | + height: auto; |
1825 | + border: 0; |
1826 | + -ms-interpolation-mode: bicubic; |
1827 | +} |
1828 | +button, input, select, textarea { |
1829 | + margin: 0; |
1830 | + font-size: 100%; |
1831 | + vertical-align: middle; |
1832 | +} |
1833 | +button, input { |
1834 | + *overflow: visible; |
1835 | + line-height: normal; |
1836 | +} |
1837 | +button::-moz-focus-inner, input::-moz-focus-inner { |
1838 | + padding: 0; |
1839 | + border: 0; |
1840 | +} |
1841 | +button, input[type="button"], input[type="reset"], input[type="submit"] { |
1842 | + cursor: pointer; |
1843 | + -webkit-appearance: button; |
1844 | +} |
1845 | +input[type="search"] { |
1846 | + -webkit-appearance: textfield; |
1847 | + -webkit-box-sizing: content-box; |
1848 | + -moz-box-sizing: content-box; |
1849 | + box-sizing: content-box; |
1850 | +} |
1851 | +input[type="search"]::-webkit-search-decoration, |
1852 | +input[type="search"]::-webkit-search-cancel-button { |
1853 | + -webkit-appearance: none; |
1854 | +} |
1855 | +textarea { |
1856 | + overflow: auto; |
1857 | + vertical-align: top; |
1858 | +} |
1859 | +.clearfix { |
1860 | + *zoom: 1; |
1861 | +} |
1862 | +.clearfix:before, .clearfix:after { |
1863 | + display: table; |
1864 | + content: ""; |
1865 | +} |
1866 | +.clearfix:after { |
1867 | + clear: both; |
1868 | +} |
1869 | +body { |
1870 | + margin: 0; |
1871 | + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
1872 | + font-size: 13px; |
1873 | + line-height: 18px; |
1874 | + color: #333333; |
1875 | + background-color: #ffffff; |
1876 | +} |
1877 | +a { |
1878 | + color: #0088cc; |
1879 | + text-decoration: none; |
1880 | +} |
1881 | +a:hover { |
1882 | + color: #005580; |
1883 | + text-decoration: underline; |
1884 | +} |
1885 | +.row { |
1886 | + margin-left: -20px; |
1887 | + *zoom: 1; |
1888 | +} |
1889 | +.row:before, .row:after { |
1890 | + display: table; |
1891 | + content: ""; |
1892 | +} |
1893 | +.row:after { |
1894 | + clear: both; |
1895 | +} |
1896 | +[class*="span"] { |
1897 | + float: left; |
1898 | + margin-left: 20px; |
1899 | +} |
1900 | +.span1 { |
1901 | + width: 60px; |
1902 | +} |
1903 | +.span2 { |
1904 | + width: 140px; |
1905 | +} |
1906 | +.span3 { |
1907 | + width: 220px; |
1908 | +} |
1909 | +.span4 { |
1910 | + width: 300px; |
1911 | +} |
1912 | +.span5 { |
1913 | + width: 380px; |
1914 | +} |
1915 | +.span6 { |
1916 | + width: 460px; |
1917 | +} |
1918 | +.span7 { |
1919 | + width: 540px; |
1920 | +} |
1921 | +.span8 { |
1922 | + width: 620px; |
1923 | +} |
1924 | +.span9 { |
1925 | + width: 700px; |
1926 | +} |
1927 | +.span10 { |
1928 | + width: 780px; |
1929 | +} |
1930 | +.span11 { |
1931 | + width: 860px; |
1932 | +} |
1933 | +.span12, .container { |
1934 | + width: 940px; |
1935 | +} |
1936 | +.offset1 { |
1937 | + margin-left: 100px; |
1938 | +} |
1939 | +.offset2 { |
1940 | + margin-left: 180px; |
1941 | +} |
1942 | +.offset3 { |
1943 | + margin-left: 260px; |
1944 | +} |
1945 | +.offset4 { |
1946 | + margin-left: 340px; |
1947 | +} |
1948 | +.offset5 { |
1949 | + margin-left: 420px; |
1950 | +} |
1951 | +.offset6 { |
1952 | + margin-left: 500px; |
1953 | +} |
1954 | +.offset7 { |
1955 | + margin-left: 580px; |
1956 | +} |
1957 | +.offset8 { |
1958 | + margin-left: 660px; |
1959 | +} |
1960 | +.offset9 { |
1961 | + margin-left: 740px; |
1962 | +} |
1963 | +.offset10 { |
1964 | + margin-left: 820px; |
1965 | +} |
1966 | +.offset11 { |
1967 | + margin-left: 900px; |
1968 | +} |
1969 | +.row-fluid { |
1970 | + width: 100%; |
1971 | + *zoom: 1; |
1972 | +} |
1973 | +.row-fluid:before, .row-fluid:after { |
1974 | + display: table; |
1975 | + content: ""; |
1976 | +} |
1977 | +.row-fluid:after { |
1978 | + clear: both; |
1979 | +} |
1980 | +.row-fluid > [class*="span"] { |
1981 | + float: left; |
1982 | + margin-left: 2.127659574%; |
1983 | +} |
1984 | +.row-fluid > [class*="span"]:first-child { |
1985 | + margin-left: 0; |
1986 | +} |
1987 | +.row-fluid > .span1 { |
1988 | + width: 6.382978723%; |
1989 | +} |
1990 | +.row-fluid > .span2 { |
1991 | + width: 14.89361702%; |
1992 | +} |
1993 | +.row-fluid > .span3 { |
1994 | + width: 23.404255317%; |
1995 | +} |
1996 | +.row-fluid > .span4 { |
1997 | + width: 31.914893614%; |
1998 | +} |
1999 | +.row-fluid > .span5 { |
2000 | + width: 40.425531911%; |
2001 | +} |
2002 | +.row-fluid > .span6 { |
2003 | + width: 48.936170208%; |
2004 | +} |
2005 | +.row-fluid > .span7 { |
2006 | + width: 57.446808505%; |
2007 | +} |
2008 | +.row-fluid > .span8 { |
2009 | + width: 65.957446802%; |
2010 | +} |
2011 | +.row-fluid > .span9 { |
2012 | + width: 74.468085099%; |
2013 | +} |
2014 | +.row-fluid > .span10 { |
2015 | + width: 82.978723396%; |
2016 | +} |
2017 | +.row-fluid > .span11 { |
2018 | + width: 91.489361693%; |
2019 | +} |
2020 | +.row-fluid > .span12 { |
2021 | + width: 99.99999999%; |
2022 | +} |
2023 | +.container { |
2024 | + width: 940px; |
2025 | + margin-left: auto; |
2026 | + margin-right: auto; |
2027 | + *zoom: 1; |
2028 | +} |
2029 | +.container:before, .container:after { |
2030 | + display: table; |
2031 | + content: ""; |
2032 | +} |
2033 | +.container:after { |
2034 | + clear: both; |
2035 | +} |
2036 | +.container-fluid { |
2037 | + padding-left: 20px; |
2038 | + padding-right: 20px; |
2039 | + *zoom: 1; |
2040 | +} |
2041 | +.container-fluid:before, .container-fluid:after { |
2042 | + display: table; |
2043 | + content: ""; |
2044 | +} |
2045 | +.container-fluid:after { |
2046 | + clear: both; |
2047 | +} |
2048 | +p { |
2049 | + margin: 0 0 9px; |
2050 | + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
2051 | + font-size: 13px; |
2052 | + line-height: 18px; |
2053 | +} |
2054 | +p small { |
2055 | + font-size: 11px; |
2056 | + color: #999999; |
2057 | +} |
2058 | +.lead { |
2059 | + margin-bottom: 18px; |
2060 | + font-size: 20px; |
2061 | + font-weight: 200; |
2062 | + line-height: 27px; |
2063 | +} |
2064 | +h1, h2, h3, h4, h5, h6 { |
2065 | + margin: 0; |
2066 | + font-weight: bold; |
2067 | + color: #333333; |
2068 | + text-rendering: optimizelegibility; |
2069 | +} |
2070 | +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { |
2071 | + font-weight: normal; |
2072 | + color: #999999; |
2073 | +} |
2074 | +h1 { |
2075 | + font-size: 30px; |
2076 | + line-height: 36px; |
2077 | +} |
2078 | +h1 small { |
2079 | + font-size: 18px; |
2080 | +} |
2081 | +h2 { |
2082 | + font-size: 24px; |
2083 | + line-height: 36px; |
2084 | +} |
2085 | +h2 small { |
2086 | + font-size: 18px; |
2087 | +} |
2088 | +h3 { |
2089 | + line-height: 27px; |
2090 | + font-size: 18px; |
2091 | +} |
2092 | +h3 small { |
2093 | + font-size: 14px; |
2094 | +} |
2095 | +h4, h5, h6 { |
2096 | + line-height: 18px; |
2097 | +} |
2098 | +h4 { |
2099 | + font-size: 14px; |
2100 | +} |
2101 | +h4 small { |
2102 | + font-size: 12px; |
2103 | +} |
2104 | +h5 { |
2105 | + font-size: 12px; |
2106 | +} |
2107 | +h6 { |
2108 | + font-size: 11px; |
2109 | + color: #999999; |
2110 | + text-transform: uppercase; |
2111 | +} |
2112 | +.page-header { |
2113 | + padding-bottom: 17px; |
2114 | + margin: 18px 0; |
2115 | + border-bottom: 1px solid #eeeeee; |
2116 | +} |
2117 | +.page-header h1 { |
2118 | + line-height: 1; |
2119 | +} |
2120 | +ul, ol { |
2121 | + padding: 0; |
2122 | + margin: 0 0 9px 25px; |
2123 | +} |
2124 | +ul ul, ul ol, ol ol, ol ul { |
2125 | + margin-bottom: 0; |
2126 | +} |
2127 | +ul { |
2128 | + list-style: disc; |
2129 | +} |
2130 | +ol { |
2131 | + list-style: decimal; |
2132 | +} |
2133 | +li { |
2134 | + line-height: 18px; |
2135 | +} |
2136 | +ul.unstyled, ol.unstyled { |
2137 | + margin-left: 0; |
2138 | + list-style: none; |
2139 | +} |
2140 | +table ul { |
2141 | + margin: 0; |
2142 | + list-style-type: none; |
2143 | +} |
2144 | +dl { |
2145 | + margin-bottom: 18px; |
2146 | +} |
2147 | +dt, dd { |
2148 | + line-height: 18px; |
2149 | +} |
2150 | +dt { |
2151 | + font-weight: bold; |
2152 | +} |
2153 | +dd { |
2154 | + margin-left: 9px; |
2155 | +} |
2156 | +hr { |
2157 | + margin: 18px 0; |
2158 | + border: 0; |
2159 | + border-top: 1px solid #eeeeee; |
2160 | + border-bottom: 1px solid #ffffff; |
2161 | +} |
2162 | +strong { |
2163 | + font-weight: bold; |
2164 | +} |
2165 | +em { |
2166 | + font-style: italic; |
2167 | +} |
2168 | +.muted { |
2169 | + color: #999999; |
2170 | +} |
2171 | +abbr { |
2172 | + font-size: 90%; |
2173 | + text-transform: uppercase; |
2174 | + border-bottom: 1px dotted #dddddd; |
2175 | + cursor: help; |
2176 | +} |
2177 | +blockquote { |
2178 | + padding: 0 0 0 15px; |
2179 | + margin: 0 0 18px; |
2180 | + border-left: 5px solid #eeeeee; |
2181 | +} |
2182 | +blockquote p { |
2183 | + margin-bottom: 0; |
2184 | + font-size: 16px; |
2185 | + font-weight: 300; |
2186 | + line-height: 22.5px; |
2187 | +} |
2188 | +blockquote small { |
2189 | + display: block; |
2190 | + line-height: 18px; |
2191 | + color: #999999; |
2192 | +} |
2193 | +blockquote small:before { |
2194 | + content: '\2014 \00A0'; |
2195 | +} |
2196 | +blockquote.pull-right { |
2197 | + float: right; |
2198 | + padding-left: 0; |
2199 | + padding-right: 15px; |
2200 | + border-left: 0; |
2201 | + border-right: 5px solid #eeeeee; |
2202 | +} |
2203 | +blockquote.pull-right p, blockquote.pull-right small { |
2204 | + text-align: right; |
2205 | +} |
2206 | +q:before, q:after, blockquote:before, blockquote:after { |
2207 | + content: ""; |
2208 | +} |
2209 | +address { |
2210 | + display: block; |
2211 | + margin-bottom: 18px; |
2212 | + line-height: 18px; |
2213 | + font-style: normal; |
2214 | +} |
2215 | +small { |
2216 | + font-size: 100%; |
2217 | +} |
2218 | +cite { |
2219 | + font-style: normal; |
2220 | +} |
2221 | +code, pre { |
2222 | + padding: 0 3px 2px; |
2223 | + font-family: Menlo, Monaco, "Courier New", monospace; |
2224 | + font-size: 12px; |
2225 | + color: #333333; |
2226 | + -webkit-border-radius: 3px; |
2227 | + -moz-border-radius: 3px; |
2228 | + border-radius: 3px; |
2229 | +} |
2230 | +code { |
2231 | + padding: 3px 4px; |
2232 | + color: #dd1144; |
2233 | + background-color: #f7f7f9; |
2234 | + border: 1px solid #e1e1e8; |
2235 | +} |
2236 | +pre { |
2237 | + display: block; |
2238 | + padding: 8.5px; |
2239 | + margin: 0 0 9px; |
2240 | + font-size: 12px; |
2241 | + line-height: 18px; |
2242 | + background-color: #f5f5f5; |
2243 | + border: 1px solid #cccccc; |
2244 | + border: 1px solid rgba(0,0,0,.15); |
2245 | + -webkit-border-radius: 4px; |
2246 | + -moz-border-radius: 4px; |
2247 | + border-radius: 4px; |
2248 | + white-space: pre; |
2249 | + white-space: pre-wrap; |
2250 | + word-break: break-all; |
2251 | + word-wrap: break-word; |
2252 | +} |
2253 | +pre.prettyprint { |
2254 | + margin-bottom: 18px; |
2255 | +} |
2256 | +pre code { |
2257 | + padding: 0; |
2258 | + color: inherit; |
2259 | + background-color: transparent; |
2260 | + border: 0; |
2261 | +} |
2262 | +.pre-scrollable { |
2263 | + max-height: 340px; |
2264 | + overflow-y: scroll; |
2265 | +} |
2266 | +form { |
2267 | + margin: 0 0 18px; |
2268 | +} |
2269 | +fieldset { |
2270 | + padding: 0; |
2271 | + margin: 0; |
2272 | + border: 0; |
2273 | +} |
2274 | +legend { |
2275 | + display: block; |
2276 | + width: 100%; |
2277 | + padding: 0; |
2278 | + margin-bottom: 27px; |
2279 | + font-size: 19.5px; |
2280 | + line-height: 36px; |
2281 | + color: #333333; |
2282 | + border: 0; |
2283 | + border-bottom: 1px solid #eeeeee; |
2284 | +} |
2285 | +legend small { |
2286 | + font-size: 13.5px; |
2287 | + color: #999999; |
2288 | +} |
2289 | +label, input, button, select, textarea { |
2290 | + font-size: 13px; |
2291 | + font-weight: normal; |
2292 | + line-height: 18px; |
2293 | +} |
2294 | +input, button, select, textarea { |
2295 | + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
2296 | +} |
2297 | +label { |
2298 | + display: block; |
2299 | + margin-bottom: 5px; |
2300 | + color: #333333; |
2301 | +} |
2302 | +input, textarea, select, .uneditable-input { |
2303 | + display: inline-block; |
2304 | + width: 210px; |
2305 | + height: 18px; |
2306 | + padding: 4px; |
2307 | + margin-bottom: 9px; |
2308 | + font-size: 13px; |
2309 | + line-height: 18px; |
2310 | + color: #555555; |
2311 | + border: 1px solid #cccccc; |
2312 | + -webkit-border-radius: 3px; |
2313 | + -moz-border-radius: 3px; |
2314 | + border-radius: 3px; |
2315 | +} |
2316 | +.uneditable-textarea { |
2317 | + width: auto; |
2318 | + height: auto; |
2319 | +} |
2320 | +label input, label textarea, label select { |
2321 | + display: block; |
2322 | +} |
2323 | +input[type="image"], input[type="checkbox"], input[type="radio"] { |
2324 | + width: auto; |
2325 | + height: auto; |
2326 | + padding: 0; |
2327 | + margin: 3px 0; |
2328 | + *margin-top: 0; |
2329 | + line-height: normal; |
2330 | + cursor: pointer; |
2331 | + -webkit-border-radius: 0; |
2332 | + -moz-border-radius: 0; |
2333 | + border-radius: 0; |
2334 | + border: 0 \9; |
2335 | +} |
2336 | +input[type="image"] { |
2337 | + border: 0; |
2338 | +} |
2339 | +input[type="file"] { |
2340 | + width: auto; |
2341 | + padding: initial; |
2342 | + line-height: initial; |
2343 | + border: initial; |
2344 | + background-color: #ffffff; |
2345 | + background-color: initial; |
2346 | + -webkit-box-shadow: none; |
2347 | + -moz-box-shadow: none; |
2348 | + box-shadow: none; |
2349 | +} |
2350 | +input[type="button"], input[type="reset"], input[type="submit"] { |
2351 | + width: auto; |
2352 | + height: auto; |
2353 | +} |
2354 | +select, input[type="file"] { |
2355 | + height: 28px; |
2356 | + *margin-top: 4px; |
2357 | + line-height: 28px; |
2358 | +} |
2359 | +input[type="file"] { |
2360 | + line-height: 18px \9; |
2361 | +} |
2362 | +select { |
2363 | + width: 220px; |
2364 | + background-color: #ffffff; |
2365 | +} |
2366 | +select[multiple], select[size] { |
2367 | + height: auto; |
2368 | +} |
2369 | +input[type="image"] { |
2370 | + -webkit-box-shadow: none; |
2371 | + -moz-box-shadow: none; |
2372 | + box-shadow: none; |
2373 | +} |
2374 | +textarea { |
2375 | + height: auto; |
2376 | +} |
2377 | +input[type="hidden"] { |
2378 | + display: none; |
2379 | +} |
2380 | +.radio, .checkbox { |
2381 | + padding-left: 18px; |
2382 | +} |
2383 | +.radio input[type="radio"], .checkbox input[type="checkbox"] { |
2384 | + float: left; |
2385 | + margin-left: -18px; |
2386 | +} |
2387 | +.controls > .radio:first-child, .controls > .checkbox:first-child { |
2388 | + padding-top: 5px; |
2389 | +} |
2390 | +.radio.inline, .checkbox.inline { |
2391 | + display: inline-block; |
2392 | + padding-top: 5px; |
2393 | + margin-bottom: 0; |
2394 | + vertical-align: middle; |
2395 | +} |
2396 | +.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { |
2397 | + margin-left: 10px; |
2398 | +} |
2399 | +input, textarea { |
2400 | + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); |
2401 | + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); |
2402 | + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); |
2403 | + -webkit-transition: border linear .2s, box-shadow linear .2s; |
2404 | + -moz-transition: border linear .2s, box-shadow linear .2s; |
2405 | + -ms-transition: border linear .2s, box-shadow linear .2s; |
2406 | + -o-transition: border linear .2s, box-shadow linear .2s; |
2407 | + transition: border linear .2s, box-shadow linear .2s; |
2408 | +} |
2409 | +input:focus, textarea:focus { |
2410 | + border-color: rgba(82,168,236,.8); |
2411 | + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); |
2412 | + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); |
2413 | + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); |
2414 | + outline: 0; |
2415 | + outline: thin dotted \9; |
2416 | +} |
2417 | +input[type="file"]:focus, |
2418 | +input[type="radio"]:focus, |
2419 | +input[type="checkbox"]:focus, |
2420 | +select:focus { |
2421 | + -webkit-box-shadow: none; |
2422 | + -moz-box-shadow: none; |
2423 | + box-shadow: none; |
2424 | + outline: thin dotted #333333; |
2425 | + outline: 5px auto -webkit-focus-ring-color; |
2426 | + outline-offset: -2px; |
2427 | +} |
2428 | +.input-mini { |
2429 | + width: 60px; |
2430 | +} |
2431 | +.input-small { |
2432 | + width: 90px; |
2433 | +} |
2434 | +.input-medium { |
2435 | + width: 150px; |
2436 | +} |
2437 | +.input-large { |
2438 | + width: 210px; |
2439 | +} |
2440 | +.input-xlarge { |
2441 | + width: 270px; |
2442 | +} |
2443 | +.input-xxlarge { |
2444 | + width: 530px; |
2445 | +} |
2446 | +input[class*="span"], |
2447 | +select[class*="span"], |
2448 | +textarea[class*="span"], |
2449 | +.uneditable-input { |
2450 | + float: none; |
2451 | + margin-left: 0; |
2452 | +} |
2453 | +input.span1, textarea.span1, .uneditable-input.span1 { |
2454 | + width: 50px; |
2455 | +} |
2456 | +input.span2, textarea.span2, .uneditable-input.span2 { |
2457 | + width: 130px; |
2458 | +} |
2459 | +input.span3, textarea.span3, .uneditable-input.span3 { |
2460 | + width: 210px; |
2461 | +} |
2462 | +input.span4, textarea.span4, .uneditable-input.span4 { |
2463 | + width: 290px; |
2464 | +} |
2465 | +input.span5, textarea.span5, .uneditable-input.span5 { |
2466 | + width: 370px; |
2467 | +} |
2468 | +input.span6, textarea.span6, .uneditable-input.span6 { |
2469 | + width: 450px; |
2470 | +} |
2471 | +input.span7, textarea.span7, .uneditable-input.span7 { |
2472 | + width: 530px; |
2473 | +} |
2474 | +input.span8, textarea.span8, .uneditable-input.span8 { |
2475 | + width: 610px; |
2476 | +} |
2477 | +input.span9, textarea.span9, .uneditable-input.span9 { |
2478 | + width: 690px; |
2479 | +} |
2480 | +input.span10, textarea.span10, .uneditable-input.span10 { |
2481 | + width: 770px; |
2482 | +} |
2483 | +input.span11, textarea.span11, .uneditable-input.span11 { |
2484 | + width: 850px; |
2485 | +} |
2486 | +input.span12, textarea.span12, .uneditable-input.span12 { |
2487 | + width: 930px; |
2488 | +} |
2489 | +input[disabled], |
2490 | +select[disabled], |
2491 | +textarea[disabled], |
2492 | +input[readonly], |
2493 | +select[readonly], |
2494 | +textarea[readonly] { |
2495 | + background-color: #f5f5f5; |
2496 | + border-color: #dddddd; |
2497 | + cursor: not-allowed; |
2498 | +} |
2499 | +.control-group.warning > label, |
2500 | +.control-group.warning .help-block, |
2501 | +.control-group.warning .help-inline { |
2502 | + color: #333333; |
2503 | +} |
2504 | +.control-group.warning input, |
2505 | +.control-group.warning select, |
2506 | +.control-group.warning textarea { |
2507 | + color: #333333; |
2508 | + border-color: #c09853; |
2509 | +} |
2510 | +.control-group.warning input:focus, |
2511 | +.control-group.warning select:focus, |
2512 | +.control-group.warning textarea:focus { |
2513 | + border-color: #a47e3c; |
2514 | + -webkit-box-shadow: 0 0 6px #dbc59e; |
2515 | + -moz-box-shadow: 0 0 6px #dbc59e; |
2516 | + box-shadow: 0 0 6px #dbc59e; |
2517 | +} |
2518 | +.control-group.warning .input-prepend .add-on, |
2519 | +.control-group.warning .input-append .add-on { |
2520 | + color: #333333; |
2521 | + background-color: #fcf8e3; |
2522 | + border-color: #333333; |
2523 | +} |
2524 | +.control-group.error > label, |
2525 | +.control-group.error .help-block, |
2526 | +.control-group.error .help-inline { |
2527 | + color: #333333; |
2528 | +} |
2529 | +.control-group.error input, |
2530 | +.control-group.error select, |
2531 | +.control-group.error textarea { |
2532 | + color: #333333; |
2533 | + border-color: #b94a48; |
2534 | +} |
2535 | +.control-group.error input:focus, |
2536 | +.control-group.error select:focus, |
2537 | +.control-group.error textarea:focus { |
2538 | + border-color: #953b39; |
2539 | + -webkit-box-shadow: 0 0 6px #d59392; |
2540 | + -moz-box-shadow: 0 0 6px #d59392; |
2541 | + box-shadow: 0 0 6px #d59392; |
2542 | +} |
2543 | +.control-group.error .input-prepend .add-on, |
2544 | +.control-group.error .input-append .add-on { |
2545 | + color: #333333; |
2546 | + background-color: #f2dede; |
2547 | + border-color: #333333; |
2548 | +} |
2549 | +.control-group.success > label, |
2550 | +.control-group.success .help-block, |
2551 | +.control-group.success .help-inline { |
2552 | + color: #333333; |
2553 | +} |
2554 | +.control-group.success input, |
2555 | +.control-group.success select, |
2556 | +.control-group.success textarea { |
2557 | + color: #333333; |
2558 | + border-color: #468847; |
2559 | +} |
2560 | +.control-group.success input:focus, |
2561 | +.control-group.success select:focus, |
2562 | +.control-group.success textarea:focus { |
2563 | + border-color: #356635; |
2564 | + -webkit-box-shadow: 0 0 6px #7aba7b; |
2565 | + -moz-box-shadow: 0 0 6px #7aba7b; |
2566 | + box-shadow: 0 0 6px #7aba7b; |
2567 | +} |
2568 | +.control-group.success .input-prepend .add-on, |
2569 | +.control-group.success .input-append .add-on { |
2570 | + color: #333333; |
2571 | + background-color: #dff0d8; |
2572 | + border-color: #333333; |
2573 | +} |
2574 | +input:focus:required:invalid, |
2575 | +textarea:focus:required:invalid, |
2576 | +select:focus:required:invalid { |
2577 | + color: #b94a48; |
2578 | + border-color: #ee5f5b; |
2579 | +} |
2580 | +input:focus:required:invalid:focus, |
2581 | +textarea:focus:required:invalid:focus, |
2582 | +select:focus:required:invalid:focus { |
2583 | + border-color: #e9322d; |
2584 | + -webkit-box-shadow: 0 0 6px #f8b9b7; |
2585 | + -moz-box-shadow: 0 0 6px #f8b9b7; |
2586 | + box-shadow: 0 0 6px #f8b9b7; |
2587 | +} |
2588 | +.form-actions { |
2589 | + padding: 17px 20px 18px; |
2590 | + margin-top: 18px; |
2591 | + margin-bottom: 18px; |
2592 | + background-color: #f5f5f5; |
2593 | + border-top: 1px solid #dddddd; |
2594 | +} |
2595 | +.uneditable-input { |
2596 | + display: block; |
2597 | + background-color: #ffffff; |
2598 | + border-color: #eeeeee; |
2599 | + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.025); |
2600 | + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.025); |
2601 | + box-shadow: inset 0 1px 2px rgba(0,0,0,.025); |
2602 | + cursor: not-allowed; |
2603 | +} |
2604 | +:-moz-placeholder { |
2605 | + color: #999999; |
2606 | +} |
2607 | +::-webkit-input-placeholder { |
2608 | + color: #999999; |
2609 | +} |
2610 | +.help-block { |
2611 | + display: block; |
2612 | + margin-top: 5px; |
2613 | + margin-bottom: 0; |
2614 | + color: #999999; |
2615 | +} |
2616 | +.help-inline { |
2617 | + display: inline-block; |
2618 | + *display: inline; |
2619 | + *zoom: 1; |
2620 | + margin-bottom: 9px; |
2621 | + vertical-align: middle; |
2622 | + padding-left: 5px; |
2623 | +} |
2624 | +.input-prepend, .input-append { |
2625 | + margin-bottom: 5px; |
2626 | + *zoom: 1; |
2627 | +} |
2628 | +.input-prepend:before, |
2629 | +.input-prepend:after, |
2630 | +.input-append:before, |
2631 | +.input-append:after { |
2632 | + display: table; |
2633 | + content: ""; |
2634 | +} |
2635 | +.input-prepend:after, .input-append:after { |
2636 | + clear: both; |
2637 | +} |
2638 | +.input-prepend input, |
2639 | +.input-prepend .uneditable-input, |
2640 | +.input-append input, |
2641 | +.input-append .uneditable-input { |
2642 | + -webkit-border-radius: 0 3px 3px 0; |
2643 | + -moz-border-radius: 0 3px 3px 0; |
2644 | + border-radius: 0 3px 3px 0; |
2645 | +} |
2646 | +.input-prepend input:focus, |
2647 | +.input-prepend .uneditable-input:focus, |
2648 | +.input-append input:focus, |
2649 | +.input-append .uneditable-input:focus { |
2650 | + position: relative; |
2651 | + z-index: 2; |
2652 | +} |
2653 | +.input-prepend .uneditable-input, .input-append .uneditable-input { |
2654 | + border-left-color: #cccccc; |
2655 | +} |
2656 | +.input-prepend .add-on, .input-append .add-on { |
2657 | + float: left; |
2658 | + display: block; |
2659 | + width: auto; |
2660 | + min-width: 16px; |
2661 | + height: 18px; |
2662 | + margin-right: -1px; |
2663 | + padding: 4px 5px; |
2664 | + font-weight: normal; |
2665 | + line-height: 18px; |
2666 | + color: #999999; |
2667 | + text-align: center; |
2668 | + text-shadow: 0 1px 0 #ffffff; |
2669 | + background-color: #f5f5f5; |
2670 | + border: 1px solid #cccccc; |
2671 | + -webkit-border-radius: 3px 0 0 3px; |
2672 | + -moz-border-radius: 3px 0 0 3px; |
2673 | + border-radius: 3px 0 0 3px; |
2674 | +} |
2675 | +.input-prepend .active, .input-append .active { |
2676 | + background-color: #a9dba9; |
2677 | + border-color: #46a546; |
2678 | +} |
2679 | +.input-prepend .add-on { |
2680 | + *margin-top: 1px; |
2681 | +} |
2682 | +.input-append input, .input-append .uneditable-input { |
2683 | + float: left; |
2684 | + -webkit-border-radius: 3px 0 0 3px; |
2685 | + -moz-border-radius: 3px 0 0 3px; |
2686 | + border-radius: 3px 0 0 3px; |
2687 | +} |
2688 | +.input-append .uneditable-input { |
2689 | + border-left-color: #eeeeee; |
2690 | + border-right-color: #cccccc; |
2691 | +} |
2692 | +.input-append .add-on { |
2693 | + margin-right: 0; |
2694 | + margin-left: -1px; |
2695 | + -webkit-border-radius: 0 3px 3px 0; |
2696 | + -moz-border-radius: 0 3px 3px 0; |
2697 | + border-radius: 0 3px 3px 0; |
2698 | +} |
2699 | +.input-append input:first-child { |
2700 | + *margin-left: -160px; |
2701 | +} |
2702 | +.input-append input:first-child + .add-on { |
2703 | + *margin-left: -21px; |
2704 | +} |
2705 | +.search-query { |
2706 | + padding-left: 14px; |
2707 | + padding-right: 14px; |
2708 | + margin-bottom: 0; |
2709 | + -webkit-border-radius: 14px; |
2710 | + -moz-border-radius: 14px; |
2711 | + border-radius: 14px; |
2712 | +} |
2713 | +.form-search input, |
2714 | +.form-search textarea, |
2715 | +.form-search select, |
2716 | +.form-search .help-inline, |
2717 | +.form-search .uneditable-input, |
2718 | +.form-inline input, |
2719 | +.form-inline textarea, |
2720 | +.form-inline select, |
2721 | +.form-inline .help-inline, |
2722 | +.form-inline .uneditable-input, |
2723 | +.form-horizontal input, |
2724 | +.form-horizontal textarea, |
2725 | +.form-horizontal select, |
2726 | +.form-horizontal .help-inline, |
2727 | +.form-horizontal .uneditable-input { |
2728 | + display: inline-block; |
2729 | + margin-bottom: 0; |
2730 | +} |
2731 | +.form-search .hide, .form-inline .hide, .form-horizontal .hide { |
2732 | + display: none; |
2733 | +} |
2734 | +.form-search label, |
2735 | +.form-inline label, |
2736 | +.form-search .input-append, |
2737 | +.form-inline .input-append, |
2738 | +.form-search .input-prepend, |
2739 | +.form-inline .input-prepend { |
2740 | + display: inline-block; |
2741 | +} |
2742 | +.form-search .input-append .add-on, |
2743 | +.form-inline .input-prepend .add-on, |
2744 | +.form-search .input-append .add-on, |
2745 | +.form-inline .input-prepend .add-on { |
2746 | + vertical-align: middle; |
2747 | +} |
2748 | +.form-search .radio, |
2749 | +.form-inline .radio, |
2750 | +.form-search .checkbox, |
2751 | +.form-inline .checkbox { |
2752 | + margin-bottom: 0; |
2753 | + vertical-align: middle; |
2754 | +} |
2755 | +.control-group { |
2756 | + margin-bottom: 9px; |
2757 | +} |
2758 | +legend + .control-group { |
2759 | + margin-top: 18px; |
2760 | + -webkit-margin-top-collapse: separate; |
2761 | +} |
2762 | +.form-horizontal .control-group { |
2763 | + margin-bottom: 18px; |
2764 | + *zoom: 1; |
2765 | +} |
2766 | +.form-horizontal .control-group:before, .form-horizontal .control-group:after { |
2767 | + display: table; |
2768 | + content: ""; |
2769 | +} |
2770 | +.form-horizontal .control-group:after { |
2771 | + clear: both; |
2772 | +} |
2773 | +.form-horizontal .control-label { |
2774 | + float: left; |
2775 | + width: 140px; |
2776 | + padding-top: 5px; |
2777 | + text-align: right; |
2778 | +} |
2779 | +.form-horizontal .controls { |
2780 | + margin-left: 160px; |
2781 | +} |
2782 | +.form-horizontal .form-actions { |
2783 | + padding-left: 160px; |
2784 | +} |
2785 | +table { |
2786 | + max-width: 100%; |
2787 | + border-collapse: collapse; |
2788 | + border-spacing: 0; |
2789 | +} |
2790 | +.table { |
2791 | + width: 100%; |
2792 | + margin-bottom: 18px; |
2793 | +} |
2794 | +.table th, .table td { |
2795 | + padding: 8px; |
2796 | + line-height: 18px; |
2797 | + text-align: left; |
2798 | + vertical-align: top; |
2799 | + border-top: 1px solid #dddddd; |
2800 | +} |
2801 | +.table th { |
2802 | + font-weight: bold; |
2803 | +} |
2804 | +.table thead th { |
2805 | + vertical-align: bottom; |
2806 | +} |
2807 | +.table thead:first-child tr th, .table thead:first-child tr td { |
2808 | + border-top: 0; |
2809 | +} |
2810 | +.table tbody + tbody { |
2811 | + border-top: 2px solid #dddddd; |
2812 | +} |
2813 | +.table-condensed th, .table-condensed td { |
2814 | + padding: 4px 5px; |
2815 | +} |
2816 | +.table-bordered { |
2817 | + border: 1px solid #dddddd; |
2818 | + border-collapse: separate; |
2819 | + *border-collapse: collapsed; |
2820 | + -webkit-border-radius: 4px; |
2821 | + -moz-border-radius: 4px; |
2822 | + border-radius: 4px; |
2823 | +} |
2824 | +.table-bordered th + th, |
2825 | +.table-bordered td + td, |
2826 | +.table-bordered th + td, |
2827 | +.table-bordered td + th { |
2828 | + border-left: 1px solid #dddddd; |
2829 | +} |
2830 | +.table-bordered thead:first-child tr:first-child th, |
2831 | +.table-bordered tbody:first-child tr:first-child th, |
2832 | +.table-bordered tbody:first-child tr:first-child td { |
2833 | + border-top: 0; |
2834 | +} |
2835 | +.table-bordered thead:first-child tr:first-child th:first-child, |
2836 | +.table-bordered tbody:first-child tr:first-child td:first-child { |
2837 | + -webkit-border-radius: 4px 0 0 0; |
2838 | + -moz-border-radius: 4px 0 0 0; |
2839 | + border-radius: 4px 0 0 0; |
2840 | +} |
2841 | +.table-bordered thead:first-child tr:first-child th:last-child, |
2842 | +.table-bordered tbody:first-child tr:first-child td:last-child { |
2843 | + -webkit-border-radius: 0 4px 0 0; |
2844 | + -moz-border-radius: 0 4px 0 0; |
2845 | + border-radius: 0 4px 0 0; |
2846 | +} |
2847 | +.table-bordered thead:last-child tr:last-child th:first-child, |
2848 | +.table-bordered tbody:last-child tr:last-child td:first-child { |
2849 | + -webkit-border-radius: 0 0 0 4px; |
2850 | + -moz-border-radius: 0 0 0 4px; |
2851 | + border-radius: 0 0 0 4px; |
2852 | +} |
2853 | +.table-bordered thead:last-child tr:last-child th:last-child, |
2854 | +.table-bordered tbody:last-child tr:last-child td:last-child { |
2855 | + -webkit-border-radius: 0 0 4px 0; |
2856 | + -moz-border-radius: 0 0 4px 0; |
2857 | + border-radius: 0 0 4px 0; |
2858 | +} |
2859 | +.table-striped tbody tr:nth-child(odd)td, .table-striped tbody tr:nth-child(odd)th { |
2860 | + background-color: #f9f9f9; |
2861 | +} |
2862 | +.table tbody tr:hover td, .table tbody tr:hover th { |
2863 | + background-color: #f5f5f5; |
2864 | +} |
2865 | +table .span1 { |
2866 | + float: none; |
2867 | + width: 44px; |
2868 | + margin-left: 0; |
2869 | +} |
2870 | +table .span2 { |
2871 | + float: none; |
2872 | + width: 124px; |
2873 | + margin-left: 0; |
2874 | +} |
2875 | +table .span3 { |
2876 | + float: none; |
2877 | + width: 204px; |
2878 | + margin-left: 0; |
2879 | +} |
2880 | +table .span4 { |
2881 | + float: none; |
2882 | + width: 284px; |
2883 | + margin-left: 0; |
2884 | +} |
2885 | +table .span5 { |
2886 | + float: none; |
2887 | + width: 364px; |
2888 | + margin-left: 0; |
2889 | +} |
2890 | +table .span6 { |
2891 | + float: none; |
2892 | + width: 444px; |
2893 | + margin-left: 0; |
2894 | +} |
2895 | +table .span7 { |
2896 | + float: none; |
2897 | + width: 524px; |
2898 | + margin-left: 0; |
2899 | +} |
2900 | +table .span8 { |
2901 | + float: none; |
2902 | + width: 604px; |
2903 | + margin-left: 0; |
2904 | +} |
2905 | +table .span9 { |
2906 | + float: none; |
2907 | + width: 684px; |
2908 | + margin-left: 0; |
2909 | +} |
2910 | +table .span10 { |
2911 | + float: none; |
2912 | + width: 764px; |
2913 | + margin-left: 0; |
2914 | +} |
2915 | +table .span11 { |
2916 | + float: none; |
2917 | + width: 844px; |
2918 | + margin-left: 0; |
2919 | +} |
2920 | +table .span12 { |
2921 | + float: none; |
2922 | + width: 924px; |
2923 | + margin-left: 0; |
2924 | +} |
2925 | +[class^="icon-"], [class*=" icon-"] { |
2926 | + display: inline-block; |
2927 | + width: 14px; |
2928 | + height: 14px; |
2929 | + line-height: 14px; |
2930 | + vertical-align: text-top; |
2931 | + background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); |
2932 | + background-position: 14px 14px; |
2933 | + background-repeat: no-repeat; |
2934 | + *margin-right: .3em; |
2935 | +} |
2936 | +[class^="icon-"]:last-child, [class*=" icon-"]:last-child { |
2937 | + *margin-left: 0; |
2938 | +} |
2939 | +.icon-white { |
2940 | + background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png'); |
2941 | +} |
2942 | +.icon-glass { |
2943 | + background-position: 0 0; |
2944 | +} |
2945 | +.icon-music { |
2946 | + background-position: -24px 0; |
2947 | +} |
2948 | +.icon-search { |
2949 | + background-position: -48px 0; |
2950 | +} |
2951 | +.icon-envelope { |
2952 | + background-position: -72px 0; |
2953 | +} |
2954 | +.icon-heart { |
2955 | + background-position: -96px 0; |
2956 | +} |
2957 | +.icon-star { |
2958 | + background-position: -120px 0; |
2959 | +} |
2960 | +.icon-star-empty { |
2961 | + background-position: -144px 0; |
2962 | +} |
2963 | +.icon-user { |
2964 | + background-position: -168px 0; |
2965 | +} |
2966 | +.icon-film { |
2967 | + background-position: -192px 0; |
2968 | +} |
2969 | +.icon-th-large { |
2970 | + background-position: -216px 0; |
2971 | +} |
2972 | +.icon-th { |
2973 | + background-position: -240px 0; |
2974 | +} |
2975 | +.icon-th-list { |
2976 | + background-position: -264px 0; |
2977 | +} |
2978 | +.icon-ok { |
2979 | + background-position: -288px 0; |
2980 | +} |
2981 | +.icon-remove { |
2982 | + background-position: -312px 0; |
2983 | +} |
2984 | +.icon-zoom-in { |
2985 | + background-position: -336px 0; |
2986 | +} |
2987 | +.icon-zoom-out { |
2988 | + background-position: -360px 0; |
2989 | +} |
2990 | +.icon-off { |
2991 | + background-position: -384px 0; |
2992 | +} |
2993 | +.icon-signal { |
2994 | + background-position: -408px 0; |
2995 | +} |
2996 | +.icon-cog { |
2997 | + background-position: -432px 0; |
2998 | +} |
2999 | +.icon-trash { |
3000 | + background-position: -456px 0; |
3001 | +} |
3002 | +.icon-home { |
3003 | + background-position: 0 -24px; |
3004 | +} |
3005 | +.icon-file { |
3006 | + background-position: -24px -24px; |
3007 | +} |
3008 | +.icon-time { |
3009 | + background-position: -48px -24px; |
3010 | +} |
3011 | +.icon-road { |
3012 | + background-position: -72px -24px; |
3013 | +} |
3014 | +.icon-download-alt { |
3015 | + background-position: -96px -24px; |
3016 | +} |
3017 | +.icon-download { |
3018 | + background-position: -120px -24px; |
3019 | +} |
3020 | +.icon-upload { |
3021 | + background-position: -144px -24px; |
3022 | +} |
3023 | +.icon-inbox { |
3024 | + background-position: -168px -24px; |
3025 | +} |
3026 | +.icon-play-circle { |
3027 | + background-position: -192px -24px; |
3028 | +} |
3029 | +.icon-repeat { |
3030 | + background-position: -216px -24px; |
3031 | +} |
3032 | +.icon-refresh { |
3033 | + background-position: -240px -24px; |
3034 | +} |
3035 | +.icon-list-alt { |
3036 | + background-position: -264px -24px; |
3037 | +} |
3038 | +.icon-lock { |
3039 | + background-position: -287px -24px; |
3040 | +} |
3041 | +.icon-flag { |
3042 | + background-position: -312px -24px; |
3043 | +} |
3044 | +.icon-headphones { |
3045 | + background-position: -336px -24px; |
3046 | +} |
3047 | +.icon-volume-off { |
3048 | + background-position: -360px -24px; |
3049 | +} |
3050 | +.icon-volume-down { |
3051 | + background-position: -384px -24px; |
3052 | +} |
3053 | +.icon-volume-up { |
3054 | + background-position: -408px -24px; |
3055 | +} |
3056 | +.icon-qrcode { |
3057 | + background-position: -432px -24px; |
3058 | +} |
3059 | +.icon-barcode { |
3060 | + background-position: -456px -24px; |
3061 | +} |
3062 | +.icon-tag { |
3063 | + background-position: 0 -48px; |
3064 | +} |
3065 | +.icon-tags { |
3066 | + background-position: -25px -48px; |
3067 | +} |
3068 | +.icon-book { |
3069 | + background-position: -48px -48px; |
3070 | +} |
3071 | +.icon-bookmark { |
3072 | + background-position: -72px -48px; |
3073 | +} |
3074 | +.icon-print { |
3075 | + background-position: -96px -48px; |
3076 | +} |
3077 | +.icon-camera { |
3078 | + background-position: -120px -48px; |
3079 | +} |
3080 | +.icon-font { |
3081 | + background-position: -144px -48px; |
3082 | +} |
3083 | +.icon-bold { |
3084 | + background-position: -167px -48px; |
3085 | +} |
3086 | +.icon-italic { |
3087 | + background-position: -192px -48px; |
3088 | +} |
3089 | +.icon-text-height { |
3090 | + background-position: -216px -48px; |
3091 | +} |
3092 | +.icon-text-width { |
3093 | + background-position: -240px -48px; |
3094 | +} |
3095 | +.icon-align-left { |
3096 | + background-position: -264px -48px; |
3097 | +} |
3098 | +.icon-align-center { |
3099 | + background-position: -288px -48px; |
3100 | +} |
3101 | +.icon-align-right { |
3102 | + background-position: -312px -48px; |
3103 | +} |
3104 | +.icon-align-justify { |
3105 | + background-position: -336px -48px; |
3106 | +} |
3107 | +.icon-list { |
3108 | + background-position: -360px -48px; |
3109 | +} |
3110 | +.icon-indent-left { |
3111 | + background-position: -384px -48px; |
3112 | +} |
3113 | +.icon-indent-right { |
3114 | + background-position: -408px -48px; |
3115 | +} |
3116 | +.icon-facetime-video { |
3117 | + background-position: -432px -48px; |
3118 | +} |
3119 | +.icon-picture { |
3120 | + background-position: -456px -48px; |
3121 | +} |
3122 | +.icon-pencil { |
3123 | + background-position: 0 -72px; |
3124 | +} |
3125 | +.icon-map-marker { |
3126 | + background-position: -24px -72px; |
3127 | +} |
3128 | +.icon-adjust { |
3129 | + background-position: -48px -72px; |
3130 | +} |
3131 | +.icon-tint { |
3132 | + background-position: -72px -72px; |
3133 | +} |
3134 | +.icon-edit { |
3135 | + background-position: -96px -72px; |
3136 | +} |
3137 | +.icon-share { |
3138 | + background-position: -120px -72px; |
3139 | +} |
3140 | +.icon-check { |
3141 | + background-position: -144px -72px; |
3142 | +} |
3143 | +.icon-move { |
3144 | + background-position: -168px -72px; |
3145 | +} |
3146 | +.icon-step-backward { |
3147 | + background-position: -192px -72px; |
3148 | +} |
3149 | +.icon-fast-backward { |
3150 | + background-position: -216px -72px; |
3151 | +} |
3152 | +.icon-backward { |
3153 | + background-position: -240px -72px; |
3154 | +} |
3155 | +.icon-play { |
3156 | + background-position: -264px -72px; |
3157 | +} |
3158 | +.icon-pause { |
3159 | + background-position: -288px -72px; |
3160 | +} |
3161 | +.icon-stop { |
3162 | + background-position: -312px -72px; |
3163 | +} |
3164 | +.icon-forward { |
3165 | + background-position: -336px -72px; |
3166 | +} |
3167 | +.icon-fast-forward { |
3168 | + background-position: -360px -72px; |
3169 | +} |
3170 | +.icon-step-forward { |
3171 | + background-position: -384px -72px; |
3172 | +} |
3173 | +.icon-eject { |
3174 | + background-position: -408px -72px; |
3175 | +} |
3176 | +.icon-chevron-left { |
3177 | + background-position: -432px -72px; |
3178 | +} |
3179 | +.icon-chevron-right { |
3180 | + background-position: -456px -72px; |
3181 | +} |
3182 | +.icon-plus-sign { |
3183 | + background-position: 0 -96px; |
3184 | +} |
3185 | +.icon-minus-sign { |
3186 | + background-position: -24px -96px; |
3187 | +} |
3188 | +.icon-remove-sign { |
3189 | + background-position: -48px -96px; |
3190 | +} |
3191 | +.icon-ok-sign { |
3192 | + background-position: -72px -96px; |
3193 | +} |
3194 | +.icon-question-sign { |
3195 | + background-position: -96px -96px; |
3196 | +} |
3197 | +.icon-info-sign { |
3198 | + background-position: -120px -96px; |
3199 | +} |
3200 | +.icon-screenshot { |
3201 | + background-position: -144px -96px; |
3202 | +} |
3203 | +.icon-remove-circle { |
3204 | + background-position: -168px -96px; |
3205 | +} |
3206 | +.icon-ok-circle { |
3207 | + background-position: -192px -96px; |
3208 | +} |
3209 | +.icon-ban-circle { |
3210 | + background-position: -216px -96px; |
3211 | +} |
3212 | +.icon-arrow-left { |
3213 | + background-position: -240px -96px; |
3214 | +} |
3215 | +.icon-arrow-right { |
3216 | + background-position: -264px -96px; |
3217 | +} |
3218 | +.icon-arrow-up { |
3219 | + background-position: -289px -96px; |
3220 | +} |
3221 | +.icon-arrow-down { |
3222 | + background-position: -312px -96px; |
3223 | +} |
3224 | +.icon-share-alt { |
3225 | + background-position: -336px -96px; |
3226 | +} |
3227 | +.icon-resize-full { |
3228 | + background-position: -360px -96px; |
3229 | +} |
3230 | +.icon-resize-small { |
3231 | + background-position: -384px -96px; |
3232 | +} |
3233 | +.icon-plus { |
3234 | + background-position: -408px -96px; |
3235 | +} |
3236 | +.icon-minus { |
3237 | + background-position: -433px -96px; |
3238 | +} |
3239 | +.icon-asterisk { |
3240 | + background-position: -456px -96px; |
3241 | +} |
3242 | +.icon-exclamation-sign { |
3243 | + background-position: 0 -120px; |
3244 | +} |
3245 | +.icon-gift { |
3246 | + background-position: -24px -120px; |
3247 | +} |
3248 | +.icon-leaf { |
3249 | + background-position: -48px -120px; |
3250 | +} |
3251 | +.icon-fire { |
3252 | + background-position: -72px -120px; |
3253 | +} |
3254 | +.icon-eye-open { |
3255 | + background-position: -96px -120px; |
3256 | +} |
3257 | +.icon-eye-close { |
3258 | + background-position: -120px -120px; |
3259 | +} |
3260 | +.icon-warning-sign { |
3261 | + background-position: -144px -120px; |
3262 | +} |
3263 | +.icon-plane { |
3264 | + background-position: -168px -120px; |
3265 | +} |
3266 | +.icon-calendar { |
3267 | + background-position: -192px -120px; |
3268 | +} |
3269 | +.icon-random { |
3270 | + background-position: -216px -120px; |
3271 | +} |
3272 | +.icon-comment { |
3273 | + background-position: -240px -120px; |
3274 | +} |
3275 | +.icon-magnet { |
3276 | + background-position: -264px -120px; |
3277 | +} |
3278 | +.icon-chevron-up { |
3279 | + background-position: -288px -120px; |
3280 | +} |
3281 | +.icon-chevron-down { |
3282 | + background-position: -313px -119px; |
3283 | +} |
3284 | +.icon-retweet { |
3285 | + background-position: -336px -120px; |
3286 | +} |
3287 | +.icon-shopping-cart { |
3288 | + background-position: -360px -120px; |
3289 | +} |
3290 | +.icon-folder-close { |
3291 | + background-position: -384px -120px; |
3292 | +} |
3293 | +.icon-folder-open { |
3294 | + background-position: -408px -120px; |
3295 | +} |
3296 | +.icon-resize-vertical { |
3297 | + background-position: -432px -119px; |
3298 | +} |
3299 | +.icon-resize-horizontal { |
3300 | + background-position: -456px -118px; |
3301 | +} |
3302 | +.dropdown { |
3303 | + position: relative; |
3304 | +} |
3305 | +.dropdown-toggle { |
3306 | + *margin-bottom: -3px; |
3307 | +} |
3308 | +.dropdown-toggle:active, .open .dropdown-toggle { |
3309 | + outline: 0; |
3310 | +} |
3311 | +.caret { |
3312 | + display: inline-block; |
3313 | + width: 0; |
3314 | + height: 0; |
3315 | + text-indent: -99999px; |
3316 | + *text-indent: 0; |
3317 | + vertical-align: top; |
3318 | + border-left: 4px solid transparent; |
3319 | + border-right: 4px solid transparent; |
3320 | + border-top: 4px solid #000000; |
3321 | + opacity: 0.3; |
3322 | + filter: alpha(opacity=30); |
3323 | + content: "\2193"; |
3324 | +} |
3325 | +.dropdown .caret { |
3326 | + margin-top: 8px; |
3327 | + margin-left: 2px; |
3328 | +} |
3329 | +.dropdown:hover .caret, .open.dropdown .caret { |
3330 | + opacity: 1; |
3331 | + filter: alpha(opacity=100); |
3332 | +} |
3333 | +.dropdown-menu { |
3334 | + position: absolute; |
3335 | + top: 100%; |
3336 | + left: 0; |
3337 | + z-index: 1000; |
3338 | + float: left; |
3339 | + display: none; |
3340 | + min-width: 160px; |
3341 | + _width: 160px; |
3342 | + padding: 4px 0; |
3343 | + margin: 0; |
3344 | + list-style: none; |
3345 | + background-color: #ffffff; |
3346 | + border-color: #cccccc; |
3347 | + border-color: rgba(0,0,0,.2); |
3348 | + border-style: solid; |
3349 | + border-width: 1px; |
3350 | + -webkit-border-radius: 0 0 5px 5px; |
3351 | + -moz-border-radius: 0 0 5px 5px; |
3352 | + border-radius: 0 0 5px 5px; |
3353 | + -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); |
3354 | + -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); |
3355 | + box-shadow: 0 5px 10px rgba(0,0,0,.2); |
3356 | + -webkit-background-clip: padding-box; |
3357 | + -moz-background-clip: padding; |
3358 | + background-clip: padding-box; |
3359 | + *border-right-width: 2px; |
3360 | + *border-bottom-width: 2px; |
3361 | +} |
3362 | +.dropdown-menu.bottom-up { |
3363 | + top: auto; |
3364 | + bottom: 100%; |
3365 | + margin-bottom: 2px; |
3366 | +} |
3367 | +.dropdown-menu .divider { |
3368 | + height: 1px; |
3369 | + margin: 5px 1px; |
3370 | + overflow: hidden; |
3371 | + background-color: #e5e5e5; |
3372 | + border-bottom: 1px solid #ffffff; |
3373 | + *width: 100%; |
3374 | + *margin: -5px 0 5px; |
3375 | +} |
3376 | +.dropdown-menu a { |
3377 | + display: block; |
3378 | + padding: 3px 15px; |
3379 | + clear: both; |
3380 | + font-weight: normal; |
3381 | + line-height: 18px; |
3382 | + color: #555555; |
3383 | + word-wrap: break-word; |
3384 | +} |
3385 | +.dropdown-menu li > a:hover, |
3386 | +.dropdown-menu .active > a, |
3387 | +.dropdown-menu .active > a:hover { |
3388 | + color: #ffffff; |
3389 | + text-decoration: none; |
3390 | + background-color: #0088cc; |
3391 | +} |
3392 | +.dropdown.open { |
3393 | + *z-index: 1000; |
3394 | +} |
3395 | +.dropdown.open .dropdown-toggle { |
3396 | + color: #ffffff; |
3397 | + background: #cccccc; |
3398 | + background: rgba(0,0,0,.3); |
3399 | +} |
3400 | +.dropdown.open .dropdown-menu { |
3401 | + display: block; |
3402 | +} |
3403 | +.typeahead { |
3404 | + margin-top: 2px; |
3405 | + -webkit-border-radius: 4px; |
3406 | + -moz-border-radius: 4px; |
3407 | + border-radius: 4px; |
3408 | +} |
3409 | +.well { |
3410 | + min-height: 20px; |
3411 | + padding: 19px; |
3412 | + margin-bottom: 20px; |
3413 | + background-color: #f5f5f5; |
3414 | + border: 1px solid #eeeeee; |
3415 | + border: 1px solid rgba(0,0,0,.05); |
3416 | + -webkit-border-radius: 4px; |
3417 | + -moz-border-radius: 4px; |
3418 | + border-radius: 4px; |
3419 | + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.05); |
3420 | + -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.05); |
3421 | + box-shadow: inset 0 1px 1px rgba(0,0,0,.05); |
3422 | +} |
3423 | +.well blockquote { |
3424 | + border-color: #dddddd; |
3425 | + border-color: rgba(0,0,0,.15); |
3426 | +} |
3427 | +.fade { |
3428 | + -webkit-transition: opacity .15s linear; |
3429 | + -moz-transition: opacity .15s linear; |
3430 | + -ms-transition: opacity .15s linear; |
3431 | + -o-transition: opacity .15s linear; |
3432 | + transition: opacity .15s linear; |
3433 | + opacity: 0; |
3434 | +} |
3435 | +.fade.in { |
3436 | + opacity: 1; |
3437 | +} |
3438 | +.collapse { |
3439 | + -webkit-transition: height .35s ease; |
3440 | + -moz-transition: height .35s ease; |
3441 | + -ms-transition: height .35s ease; |
3442 | + -o-transition: height .35s ease; |
3443 | + transition: height .35s ease; |
3444 | + position: relative; |
3445 | + overflow: hidden; |
3446 | + height: 0; |
3447 | +} |
3448 | +.collapse.in { |
3449 | + height: auto; |
3450 | +} |
3451 | +.close { |
3452 | + float: right; |
3453 | + font-size: 20px; |
3454 | + font-weight: bold; |
3455 | + line-height: 18px; |
3456 | + color: #000000; |
3457 | + text-shadow: 0 1px 0 #ffffff01; |
3458 | + opacity: 0.2; |
3459 | + filter: alpha(opacity=20); |
3460 | +} |
3461 | +.close:hover { |
3462 | + color: #000000; |
3463 | + text-decoration: none; |
3464 | + opacity: 0.4; |
3465 | + filter: alpha(opacity=40); |
3466 | + cursor: pointer; |
3467 | +} |
3468 | +.btn { |
3469 | + display: inline-block; |
3470 | + padding: 4px 10px 4px; |
3471 | + margin-bottom: 0; |
3472 | + font-size: 13px; |
3473 | + line-height: 18px; |
3474 | + color: #333333; |
3475 | + text-align: center; |
3476 | + text-shadow: 0 1px 1px rgba(255,255,255,.75); |
3477 | + vertical-align: middle; |
3478 | + background-color: #f5f5f5; |
3479 | + background-image: -moz-linear-gradient(top,#ffffff,#e6e6e6 ); |
3480 | + background-image: -ms-linear-gradient(top,#ffffff,#e6e6e6 ); |
3481 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#e6e6e6 )); |
3482 | + background-image: -webkit-linear-gradient(top,#ffffff,#e6e6e6 ); |
3483 | + background-image: -o-linear-gradient(top,#ffffff,#e6e6e6 ); |
3484 | + background-image: linear-gradient(top,#ffffff,#e6e6e6 ); |
3485 | + background-repeat: repeat-x; |
3486 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6 ', GradientType=0); |
3487 | + border-color: #e6e6e6 #e6e6e6 #c0c0c0; |
3488 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3489 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3490 | + border: 1px solid #cccccc; |
3491 | + border-bottom-color: #bbbbbb; |
3492 | + -webkit-border-radius: 4px; |
3493 | + -moz-border-radius: 4px; |
3494 | + border-radius: 4px; |
3495 | + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
3496 | + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
3497 | + box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
3498 | + cursor: pointer; |
3499 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3500 | + *margin-left: .3em; |
3501 | +} |
3502 | +.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { |
3503 | + background-color: #e6e6e6; |
3504 | +} |
3505 | +.btn:active, .btn.active { |
3506 | + background-color: #cdcdcd \9; |
3507 | +} |
3508 | +.btn:first-child { |
3509 | + *margin-left: 0; |
3510 | +} |
3511 | +.btn:hover { |
3512 | + color: #333333; |
3513 | + text-decoration: none; |
3514 | + background-color: #e6e6e6; |
3515 | + background-position: 0 -15px; |
3516 | + -webkit-transition: background-position .1s linear; |
3517 | + -moz-transition: background-position .1s linear; |
3518 | + -ms-transition: background-position .1s linear; |
3519 | + -o-transition: background-position .1s linear; |
3520 | + transition: background-position .1s linear; |
3521 | +} |
3522 | +.btn:focus { |
3523 | + outline: thin dotted #333333; |
3524 | + outline: 5px auto -webkit-focus-ring-color; |
3525 | + outline-offset: -2px; |
3526 | +} |
3527 | +.btn.active, .btn:active { |
3528 | + background-image: none; |
3529 | + -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); |
3530 | + -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); |
3531 | + box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); |
3532 | + background-color: #e6e6e6; |
3533 | + background-color: #d9d9d9 \9; |
3534 | + outline: 0; |
3535 | +} |
3536 | +.btn.disabled, .btn[disabled] { |
3537 | + cursor: default; |
3538 | + background-image: none; |
3539 | + background-color: #e6e6e6; |
3540 | + opacity: 0.65; |
3541 | + filter: alpha(opacity=65); |
3542 | + -webkit-box-shadow: none; |
3543 | + -moz-box-shadow: none; |
3544 | + box-shadow: none; |
3545 | +} |
3546 | +.btn-large { |
3547 | + padding: 9px 14px; |
3548 | + font-size: 15px; |
3549 | + line-height: normal; |
3550 | + -webkit-border-radius: 5px; |
3551 | + -moz-border-radius: 5px; |
3552 | + border-radius: 5px; |
3553 | +} |
3554 | +.btn-large [class^="icon-"] { |
3555 | + margin-top: 1px; |
3556 | +} |
3557 | +.btn-small { |
3558 | + padding: 5px 9px; |
3559 | + font-size: 11px; |
3560 | + line-height: 16px; |
3561 | +} |
3562 | +.btn-small [class^="icon-"] { |
3563 | + margin-top: -1px; |
3564 | +} |
3565 | +.btn-mini { |
3566 | + padding: 2px 6px; |
3567 | + font-size: 11px; |
3568 | + line-height: 14px; |
3569 | +} |
3570 | +.btn-primary, |
3571 | +.btn-primary:hover, |
3572 | +.btn-warning, |
3573 | +.btn-warning:hover, |
3574 | +.btn-danger, |
3575 | +.btn-danger:hover, |
3576 | +.btn-success, |
3577 | +.btn-success:hover, |
3578 | +.btn-info, |
3579 | +.btn-info:hover, |
3580 | +.btn-inverse, |
3581 | +.btn-inverse:hover { |
3582 | + text-shadow: 0 -1px 0 rgba(0,0,0,.25); |
3583 | + color: #ffffff; |
3584 | +} |
3585 | +.btn-primary.active, |
3586 | +.btn-warning.active, |
3587 | +.btn-danger.active, |
3588 | +.btn-success.active, |
3589 | +.btn-info.active, |
3590 | +.btn-dark.active { |
3591 | + color: rgba(255,255,255,.75); |
3592 | +} |
3593 | +.btn-primary { |
3594 | + background-color: #006ccc; |
3595 | + background-image: -moz-linear-gradient(top,#0088cc,#0044cc ); |
3596 | + background-image: -ms-linear-gradient(top,#0088cc,#0044cc ); |
3597 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#0088cc),to(#0044cc )); |
3598 | + background-image: -webkit-linear-gradient(top,#0088cc,#0044cc ); |
3599 | + background-image: -o-linear-gradient(top,#0088cc,#0044cc ); |
3600 | + background-image: linear-gradient(top,#0088cc,#0044cc ); |
3601 | + background-repeat: repeat-x; |
3602 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc ', GradientType=0); |
3603 | + border-color: #0044cc #0044cc #002a80; |
3604 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3605 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3606 | +} |
3607 | +.btn-primary:hover, |
3608 | +.btn-primary:active, |
3609 | +.btn-primary.active, |
3610 | +.btn-primary.disabled, |
3611 | +.btn-primary[disabled] { |
3612 | + background-color: #0044cc; |
3613 | +} |
3614 | +.btn-primary:active, .btn-primary.active { |
3615 | + background-color: #003399 \9; |
3616 | +} |
3617 | +.btn-warning { |
3618 | + background-color: #f9a732; |
3619 | + background-image: -moz-linear-gradient(top,#fbb450 ,#f89406); |
3620 | + background-image: -ms-linear-gradient(top,#fbb450 ,#f89406); |
3621 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#fbb450 ),to(#f89406)); |
3622 | + background-image: -webkit-linear-gradient(top,#fbb450 ,#f89406); |
3623 | + background-image: -o-linear-gradient(top,#fbb450 ,#f89406); |
3624 | + background-image: linear-gradient(top,#fbb450 ,#f89406); |
3625 | + background-repeat: repeat-x; |
3626 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450 ', endColorstr='#f89406', GradientType=0); |
3627 | + border-color: #f89406 #f89406 #ad6704; |
3628 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3629 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3630 | +} |
3631 | +.btn-warning:hover, |
3632 | +.btn-warning:active, |
3633 | +.btn-warning.active, |
3634 | +.btn-warning.disabled, |
3635 | +.btn-warning[disabled] { |
3636 | + background-color: #f89406; |
3637 | +} |
3638 | +.btn-warning:active, .btn-warning.active { |
3639 | + background-color: #c67605 \9; |
3640 | +} |
3641 | +.btn-danger { |
3642 | + background-color: #da4e49; |
3643 | + background-image: -moz-linear-gradient(top,#ee5f5b,#bd362f); |
3644 | + background-image: -ms-linear-gradient(top,#ee5f5b,#bd362f); |
3645 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f)); |
3646 | + background-image: -webkit-linear-gradient(top,#ee5f5b,#bd362f); |
3647 | + background-image: -o-linear-gradient(top,#ee5f5b,#bd362f); |
3648 | + background-image: linear-gradient(top,#ee5f5b,#bd362f); |
3649 | + background-repeat: repeat-x; |
3650 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); |
3651 | + border-color: #bd362f #bd362f #802420; |
3652 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3653 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3654 | +} |
3655 | +.btn-danger:hover, |
3656 | +.btn-danger:active, |
3657 | +.btn-danger.active, |
3658 | +.btn-danger.disabled, |
3659 | +.btn-danger[disabled] { |
3660 | + background-color: #bd362f; |
3661 | +} |
3662 | +.btn-danger:active, .btn-danger.active { |
3663 | + background-color: #942a25 \9; |
3664 | +} |
3665 | +.btn-success { |
3666 | + background-color: #5bb65b; |
3667 | + background-image: -moz-linear-gradient(top,#62c462,#51a351); |
3668 | + background-image: -ms-linear-gradient(top,#62c462,#51a351); |
3669 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351)); |
3670 | + background-image: -webkit-linear-gradient(top,#62c462,#51a351); |
3671 | + background-image: -o-linear-gradient(top,#62c462,#51a351); |
3672 | + background-image: linear-gradient(top,#62c462,#51a351); |
3673 | + background-repeat: repeat-x; |
3674 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); |
3675 | + border-color: #51a351 #51a351 #387038; |
3676 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3677 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3678 | +} |
3679 | +.btn-success:hover, |
3680 | +.btn-success:active, |
3681 | +.btn-success.active, |
3682 | +.btn-success.disabled, |
3683 | +.btn-success[disabled] { |
3684 | + background-color: #51a351; |
3685 | +} |
3686 | +.btn-success:active, .btn-success.active { |
3687 | + background-color: #408140 \9; |
3688 | +} |
3689 | +.btn-info { |
3690 | + background-color: #49afcd; |
3691 | + background-image: -moz-linear-gradient(top,#5bc0de,#2f96b4); |
3692 | + background-image: -ms-linear-gradient(top,#5bc0de,#2f96b4); |
3693 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4)); |
3694 | + background-image: -webkit-linear-gradient(top,#5bc0de,#2f96b4); |
3695 | + background-image: -o-linear-gradient(top,#5bc0de,#2f96b4); |
3696 | + background-image: linear-gradient(top,#5bc0de,#2f96b4); |
3697 | + background-repeat: repeat-x; |
3698 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); |
3699 | + border-color: #2f96b4 #2f96b4 #1f6377; |
3700 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3701 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3702 | +} |
3703 | +.btn-info:hover, |
3704 | +.btn-info:active, |
3705 | +.btn-info.active, |
3706 | +.btn-info.disabled, |
3707 | +.btn-info[disabled] { |
3708 | + background-color: #2f96b4; |
3709 | +} |
3710 | +.btn-info:active, .btn-info.active { |
3711 | + background-color: #24748c \9; |
3712 | +} |
3713 | +.btn-inverse { |
3714 | + background-color: #383838; |
3715 | + background-image: -moz-linear-gradient(top,#454545,#262626); |
3716 | + background-image: -ms-linear-gradient(top,#454545,#262626); |
3717 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#454545),to(#262626)); |
3718 | + background-image: -webkit-linear-gradient(top,#454545,#262626); |
3719 | + background-image: -o-linear-gradient(top,#454545,#262626); |
3720 | + background-image: linear-gradient(top,#454545,#262626); |
3721 | + background-repeat: repeat-x; |
3722 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545', endColorstr='#262626', GradientType=0); |
3723 | + border-color: #262626 #262626 #000000; |
3724 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
3725 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
3726 | +} |
3727 | +.btn-inverse:hover, |
3728 | +.btn-inverse:active, |
3729 | +.btn-inverse.active, |
3730 | +.btn-inverse.disabled, |
3731 | +.btn-inverse[disabled] { |
3732 | + background-color: #262626; |
3733 | +} |
3734 | +.btn-inverse:active, .btn-inverse.active { |
3735 | + background-color: #0c0c0c \9; |
3736 | +} |
3737 | +button.btn, input[type="submit"].btn { |
3738 | + *padding-top: 2px; |
3739 | + *padding-bottom: 2px; |
3740 | +} |
3741 | +button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { |
3742 | + padding: 0; |
3743 | + border: 0; |
3744 | +} |
3745 | +button.btn.large, input[type="submit"].btn.large { |
3746 | + *padding-top: 7px; |
3747 | + *padding-bottom: 7px; |
3748 | +} |
3749 | +button.btn.small, input[type="submit"].btn.small { |
3750 | + *padding-top: 3px; |
3751 | + *padding-bottom: 3px; |
3752 | +} |
3753 | +.btn-group { |
3754 | + position: relative; |
3755 | + *zoom: 1; |
3756 | + *margin-left: .3em; |
3757 | +} |
3758 | +.btn-group:before, .btn-group:after { |
3759 | + display: table; |
3760 | + content: ""; |
3761 | +} |
3762 | +.btn-group:after { |
3763 | + clear: both; |
3764 | +} |
3765 | +.btn-group:first-child { |
3766 | + *margin-left: 0; |
3767 | +} |
3768 | +.btn-group + .btn-group { |
3769 | + margin-left: 5px; |
3770 | +} |
3771 | +.btn-toolbar { |
3772 | + margin-top: 9px; |
3773 | + margin-bottom: 9px; |
3774 | +} |
3775 | +.btn-toolbar .btn-group { |
3776 | + display: inline-block; |
3777 | + *display: inline; |
3778 | + *zoom: 1; |
3779 | +} |
3780 | +.btn-group .btn { |
3781 | + position: relative; |
3782 | + float: left; |
3783 | + margin-left: -1px; |
3784 | + -webkit-border-radius: 0; |
3785 | + -moz-border-radius: 0; |
3786 | + border-radius: 0; |
3787 | +} |
3788 | +.btn-group .btn:first-child { |
3789 | + margin-left: 0; |
3790 | + -webkit-border-top-left-radius: 4px; |
3791 | + -moz-border-radius-topleft: 4px; |
3792 | + border-top-left-radius: 4px; |
3793 | + -webkit-border-bottom-left-radius: 4px; |
3794 | + -moz-border-radius-bottomleft: 4px; |
3795 | + border-bottom-left-radius: 4px; |
3796 | +} |
3797 | +.btn-group .btn:last-child, .btn-group .dropdown-toggle { |
3798 | + -webkit-border-top-right-radius: 4px; |
3799 | + -moz-border-radius-topright: 4px; |
3800 | + border-top-right-radius: 4px; |
3801 | + -webkit-border-bottom-right-radius: 4px; |
3802 | + -moz-border-radius-bottomright: 4px; |
3803 | + border-bottom-right-radius: 4px; |
3804 | +} |
3805 | +.btn-group .btn.large:first-child { |
3806 | + margin-left: 0; |
3807 | + -webkit-border-top-left-radius: 6px; |
3808 | + -moz-border-radius-topleft: 6px; |
3809 | + border-top-left-radius: 6px; |
3810 | + -webkit-border-bottom-left-radius: 6px; |
3811 | + -moz-border-radius-bottomleft: 6px; |
3812 | + border-bottom-left-radius: 6px; |
3813 | +} |
3814 | +.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { |
3815 | + -webkit-border-top-right-radius: 6px; |
3816 | + -moz-border-radius-topright: 6px; |
3817 | + border-top-right-radius: 6px; |
3818 | + -webkit-border-bottom-right-radius: 6px; |
3819 | + -moz-border-radius-bottomright: 6px; |
3820 | + border-bottom-right-radius: 6px; |
3821 | +} |
3822 | +.btn-group .btn:hover, |
3823 | +.btn-group .btn:focus, |
3824 | +.btn-group .btn:active, |
3825 | +.btn-group .btn.active { |
3826 | + z-index: 2; |
3827 | +} |
3828 | +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { |
3829 | + outline: 0; |
3830 | +} |
3831 | +.btn-group .dropdown-toggle { |
3832 | + padding-left: 8px; |
3833 | + padding-right: 8px; |
3834 | + -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
3835 | + -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
3836 | + box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); |
3837 | + *padding-top: 5px; |
3838 | + *padding-bottom: 5px; |
3839 | +} |
3840 | +.btn-group.open { |
3841 | + *z-index: 1000; |
3842 | +} |
3843 | +.btn-group.open .dropdown-menu { |
3844 | + display: block; |
3845 | + margin-top: 1px; |
3846 | + -webkit-border-radius: 5px; |
3847 | + -moz-border-radius: 5px; |
3848 | + border-radius: 5px; |
3849 | +} |
3850 | +.btn-group.open .dropdown-toggle { |
3851 | + background-image: none; |
3852 | + -webkit-box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); |
3853 | + -moz-box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); |
3854 | + box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); |
3855 | +} |
3856 | +.btn .caret { |
3857 | + margin-top: 7px; |
3858 | + margin-left: 0; |
3859 | +} |
3860 | +.btn:hover .caret, .open.btn-group .caret { |
3861 | + opacity: 1; |
3862 | + filter: alpha(opacity=100); |
3863 | +} |
3864 | +.btn-primary .caret, |
3865 | +.btn-danger .caret, |
3866 | +.btn-info .caret, |
3867 | +.btn-success .caret, |
3868 | +.btn-inverse .caret { |
3869 | + border-top-color: #ffffff; |
3870 | + opacity: 0.75; |
3871 | + filter: alpha(opacity=75); |
3872 | +} |
3873 | +.btn-small .caret { |
3874 | + margin-top: 4px; |
3875 | +} |
3876 | +.alert { |
3877 | + padding: 8px 35px 8px 14px; |
3878 | + margin-bottom: 18px; |
3879 | + text-shadow: 0 1px 0 rgba(255,255,255,.5); |
3880 | + background-color: #fcf8e3; |
3881 | + border: 1px solid #fbefd5; |
3882 | + -webkit-border-radius: 4px; |
3883 | + -moz-border-radius: 4px; |
3884 | + border-radius: 4px; |
3885 | +} |
3886 | +.alert, .alert-heading { |
3887 | + color: #c09853; |
3888 | +} |
3889 | +.alert .close { |
3890 | + position: relative; |
3891 | + top: -2px; |
3892 | + right: -21px; |
3893 | + line-height: 18px; |
3894 | +} |
3895 | +.alert-success { |
3896 | + background-color: #dff0d8; |
3897 | + border-color: #d6e9c6; |
3898 | +} |
3899 | +.alert-success, .alert-success .alert-heading { |
3900 | + color: #468847; |
3901 | +} |
3902 | +.alert-danger, .alert-error { |
3903 | + background-color: #f2dede; |
3904 | + border-color: #eed3d7; |
3905 | +} |
3906 | +.alert-danger, |
3907 | +.alert-error, |
3908 | +.alert-danger .alert-heading, |
3909 | +.alert-error .alert-heading { |
3910 | + color: #b94a48; |
3911 | +} |
3912 | +.alert-info { |
3913 | + background-color: #d9edf7; |
3914 | + border-color: #bce8f1; |
3915 | +} |
3916 | +.alert-info, .alert-info .alert-heading { |
3917 | + color: #3a87ad; |
3918 | +} |
3919 | +.alert-block { |
3920 | + padding-top: 14px; |
3921 | + padding-bottom: 14px; |
3922 | +} |
3923 | +.alert-block > p, .alert-block > ul { |
3924 | + margin-bottom: 0; |
3925 | +} |
3926 | +.alert-block p + p { |
3927 | + margin-top: 5px; |
3928 | +} |
3929 | +.nav { |
3930 | + margin-left: 0; |
3931 | + margin-bottom: 18px; |
3932 | + list-style: none; |
3933 | +} |
3934 | +.nav > li > a { |
3935 | + display: block; |
3936 | +} |
3937 | +.nav > li > a:hover { |
3938 | + text-decoration: none; |
3939 | + background-color: #eeeeee; |
3940 | +} |
3941 | +.nav .nav-header { |
3942 | + display: block; |
3943 | + padding: 3px 15px; |
3944 | + font-size: 11px; |
3945 | + font-weight: bold; |
3946 | + line-height: 18px; |
3947 | + color: #999999; |
3948 | + text-shadow: 0 1px 0 rgba(255,255,255,.5); |
3949 | + text-transform: uppercase; |
3950 | +} |
3951 | +.nav li + .nav-header { |
3952 | + margin-top: 9px; |
3953 | +} |
3954 | +.nav-list { |
3955 | + padding-left: 14px; |
3956 | + padding-right: 14px; |
3957 | + margin-bottom: 0; |
3958 | +} |
3959 | +.nav-list > li > a, .nav-list .nav-header { |
3960 | + margin-left: -15px; |
3961 | + margin-right: -15px; |
3962 | + text-shadow: 0 1px 0 rgba(255,255,255,.5); |
3963 | +} |
3964 | +.nav-list > li > a { |
3965 | + padding: 3px 15px; |
3966 | +} |
3967 | +.nav-list .active > a, .nav-list .active > a:hover { |
3968 | + color: #ffffff; |
3969 | + text-shadow: 0 -1px 0 rgba(0,0,0,.2); |
3970 | + background-color: #0088cc; |
3971 | +} |
3972 | +.nav-list [class^="icon-"] { |
3973 | + margin-right: 2px; |
3974 | +} |
3975 | +.nav-tabs, .nav-pills { |
3976 | + *zoom: 1; |
3977 | +} |
3978 | +.nav-tabs:before, .nav-tabs:after, .nav-pills:before, .nav-pills:after { |
3979 | + display: table; |
3980 | + content: ""; |
3981 | +} |
3982 | +.nav-tabs:after, .nav-pills:after { |
3983 | + clear: both; |
3984 | +} |
3985 | +.nav-tabs > li, .nav-pills > li { |
3986 | + float: left; |
3987 | +} |
3988 | +.nav-tabs > li > a, .nav-pills > li > a { |
3989 | + padding-right: 12px; |
3990 | + padding-left: 12px; |
3991 | + margin-right: 2px; |
3992 | + line-height: 14px; |
3993 | +} |
3994 | +.nav-tabs { |
3995 | + border-bottom: 1px solid #dddddd; |
3996 | +} |
3997 | +.nav-tabs > li { |
3998 | + margin-bottom: -1px; |
3999 | +} |
4000 | +.nav-tabs > li > a { |
4001 | + padding-top: 9px; |
4002 | + padding-bottom: 9px; |
4003 | + border: 1px solid transparent; |
4004 | + -webkit-border-radius: 4px 4px 0 0; |
4005 | + -moz-border-radius: 4px 4px 0 0; |
4006 | + border-radius: 4px 4px 0 0; |
4007 | +} |
4008 | +.nav-tabs > li > a:hover { |
4009 | + border-color: #eeeeee #eeeeee #dddddd; |
4010 | +} |
4011 | +.nav-tabs > .active > a, .nav-tabs > .active > a:hover { |
4012 | + color: #555555; |
4013 | + background-color: #ffffff; |
4014 | + border: 1px solid #dddddd; |
4015 | + border-bottom-color: transparent; |
4016 | + cursor: default; |
4017 | +} |
4018 | +.nav-pills > li > a { |
4019 | + padding-top: 8px; |
4020 | + padding-bottom: 8px; |
4021 | + margin-top: 2px; |
4022 | + margin-bottom: 2px; |
4023 | + -webkit-border-radius: 5px; |
4024 | + -moz-border-radius: 5px; |
4025 | + border-radius: 5px; |
4026 | +} |
4027 | +.nav-pills .active > a, .nav-pills .active > a:hover { |
4028 | + color: #ffffff; |
4029 | + background-color: #0088cc; |
4030 | +} |
4031 | +.nav-stacked > li { |
4032 | + float: none; |
4033 | +} |
4034 | +.nav-stacked > li > a { |
4035 | + margin-right: 0; |
4036 | +} |
4037 | +.nav-tabs.nav-stacked { |
4038 | + border-bottom: 0; |
4039 | +} |
4040 | +.nav-tabs.nav-stacked > li > a { |
4041 | + border: 1px solid #dddddd; |
4042 | + -webkit-border-radius: 0; |
4043 | + -moz-border-radius: 0; |
4044 | + border-radius: 0; |
4045 | +} |
4046 | +.nav-tabs.nav-stacked > li:first-child > a { |
4047 | + -webkit-border-radius: 4px 4px 0 0; |
4048 | + -moz-border-radius: 4px 4px 0 0; |
4049 | + border-radius: 4px 4px 0 0; |
4050 | +} |
4051 | +.nav-tabs.nav-stacked > li:last-child > a { |
4052 | + -webkit-border-radius: 0 0 4px 4px; |
4053 | + -moz-border-radius: 0 0 4px 4px; |
4054 | + border-radius: 0 0 4px 4px; |
4055 | +} |
4056 | +.nav-tabs.nav-stacked > li > a:hover { |
4057 | + border-color: #dddddd; |
4058 | + z-index: 2; |
4059 | +} |
4060 | +.nav-pills.nav-stacked > li > a { |
4061 | + margin-bottom: 3px; |
4062 | +} |
4063 | +.nav-pills.nav-stacked > li:last-child > a { |
4064 | + margin-bottom: 1px; |
4065 | +} |
4066 | +.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { |
4067 | + margin-top: 1px; |
4068 | + border-width: 1px; |
4069 | +} |
4070 | +.nav-pills .dropdown-menu { |
4071 | + -webkit-border-radius: 4px; |
4072 | + -moz-border-radius: 4px; |
4073 | + border-radius: 4px; |
4074 | +} |
4075 | +.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { |
4076 | + border-top-color: #0088cc; |
4077 | + margin-top: 6px; |
4078 | +} |
4079 | +.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { |
4080 | + border-top-color: #005580; |
4081 | +} |
4082 | +.nav-tabs .active .dropdown-toggle .caret, |
4083 | +.nav-pills .active .dropdown-toggle .caret { |
4084 | + border-top-color: #333333; |
4085 | +} |
4086 | +.nav > .dropdown.active > a:hover { |
4087 | + color: #000000; |
4088 | + cursor: pointer; |
4089 | +} |
4090 | +.nav-tabs .open .dropdown-toggle, |
4091 | +.nav-pills .open .dropdown-toggle, |
4092 | +.nav > .open.active > a:hover { |
4093 | + color: #ffffff; |
4094 | + background-color: #999999; |
4095 | + border-color: #999999; |
4096 | +} |
4097 | +.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { |
4098 | + border-top-color: #ffffff; |
4099 | + opacity: 1; |
4100 | + filter: alpha(opacity=100); |
4101 | +} |
4102 | +.tabs-stacked .open > a:hover { |
4103 | + border-color: #999999; |
4104 | +} |
4105 | +.tabbable { |
4106 | + *zoom: 1; |
4107 | +} |
4108 | +.tabbable:before, .tabbable:after { |
4109 | + display: table; |
4110 | + content: ""; |
4111 | +} |
4112 | +.tabbable:after { |
4113 | + clear: both; |
4114 | +} |
4115 | +.tab-content { |
4116 | + overflow: hidden; |
4117 | +} |
4118 | +.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { |
4119 | + border-bottom: 0; |
4120 | +} |
4121 | +.tab-content > .tab-pane, .pill-content > .pill-pane { |
4122 | + display: none; |
4123 | +} |
4124 | +.tab-content > .active, .pill-content > .active { |
4125 | + display: block; |
4126 | +} |
4127 | +.tabs-below .nav-tabs { |
4128 | + border-top: 1px solid #dddddd; |
4129 | +} |
4130 | +.tabs-below .nav-tabs > li { |
4131 | + margin-top: -1px; |
4132 | + margin-bottom: 0; |
4133 | +} |
4134 | +.tabs-below .nav-tabs > li > a { |
4135 | + -webkit-border-radius: 0 0 4px 4px; |
4136 | + -moz-border-radius: 0 0 4px 4px; |
4137 | + border-radius: 0 0 4px 4px; |
4138 | +} |
4139 | +.tabs-below .nav-tabs > li > a:hover { |
4140 | + border-bottom-color: transparent; |
4141 | + border-top-color: #dddddd; |
4142 | +} |
4143 | +.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover { |
4144 | + border-color: transparent #dddddd #dddddd #dddddd; |
4145 | +} |
4146 | +.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li { |
4147 | + float: none; |
4148 | +} |
4149 | +.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a { |
4150 | + min-width: 74px; |
4151 | + margin-right: 0; |
4152 | + margin-bottom: 3px; |
4153 | +} |
4154 | +.tabs-left .nav-tabs { |
4155 | + float: left; |
4156 | + margin-right: 19px; |
4157 | + border-right: 1px solid #dddddd; |
4158 | +} |
4159 | +.tabs-left .nav-tabs > li > a { |
4160 | + margin-right: -1px; |
4161 | + -webkit-border-radius: 4px 0 0 4px; |
4162 | + -moz-border-radius: 4px 0 0 4px; |
4163 | + border-radius: 4px 0 0 4px; |
4164 | +} |
4165 | +.tabs-left .nav-tabs > li > a:hover { |
4166 | + border-color: #eeeeee #dddddd #eeeeee #eeeeee; |
4167 | +} |
4168 | +.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover { |
4169 | + border-color: #dddddd transparent #dddddd #dddddd; |
4170 | + *border-right-color: #ffffff; |
4171 | +} |
4172 | +.tabs-right .nav-tabs { |
4173 | + float: right; |
4174 | + margin-left: 19px; |
4175 | + border-left: 1px solid #dddddd; |
4176 | +} |
4177 | +.tabs-right .nav-tabs > li > a { |
4178 | + margin-left: -1px; |
4179 | + -webkit-border-radius: 0 4px 4px 0; |
4180 | + -moz-border-radius: 0 4px 4px 0; |
4181 | + border-radius: 0 4px 4px 0; |
4182 | +} |
4183 | +.tabs-right .nav-tabs > li > a:hover { |
4184 | + border-color: #eeeeee #eeeeee #eeeeee #dddddd; |
4185 | +} |
4186 | +.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover { |
4187 | + border-color: #dddddd #dddddd #dddddd transparent; |
4188 | + *border-left-color: #ffffff; |
4189 | +} |
4190 | +.navbar { |
4191 | + overflow: visible; |
4192 | + margin-bottom: 18px; |
4193 | +} |
4194 | +.navbar-inner { |
4195 | + padding-left: 20px; |
4196 | + padding-right: 20px; |
4197 | + background-color: #2c2c2c; |
4198 | + background-image: -moz-linear-gradient(top,#333333,#222222); |
4199 | + background-image: -ms-linear-gradient(top,#333333,#222222); |
4200 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#333333),to(#222222)); |
4201 | + background-image: -webkit-linear-gradient(top,#333333,#222222); |
4202 | + background-image: -o-linear-gradient(top,#333333,#222222); |
4203 | + background-image: linear-gradient(top,#333333,#222222); |
4204 | + background-repeat: repeat-x; |
4205 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); |
4206 | + -webkit-border-radius: 4px; |
4207 | + -moz-border-radius: 4px; |
4208 | + border-radius: 4px; |
4209 | + -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); |
4210 | + -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); |
4211 | + box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); |
4212 | +} |
4213 | +.btn-navbar { |
4214 | + display: none; |
4215 | + float: right; |
4216 | + padding: 7px 10px; |
4217 | + margin-left: 5px; |
4218 | + margin-right: 5px; |
4219 | + background-color: #2c2c2c; |
4220 | + background-image: -moz-linear-gradient(top,#333333,#222222); |
4221 | + background-image: -ms-linear-gradient(top,#333333,#222222); |
4222 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#333333),to(#222222)); |
4223 | + background-image: -webkit-linear-gradient(top,#333333,#222222); |
4224 | + background-image: -o-linear-gradient(top,#333333,#222222); |
4225 | + background-image: linear-gradient(top,#333333,#222222); |
4226 | + background-repeat: repeat-x; |
4227 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); |
4228 | + border-color: #222222 #222222 #000000; |
4229 | + border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); |
4230 | + filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); |
4231 | + -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); |
4232 | + -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); |
4233 | + box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); |
4234 | +} |
4235 | +.btn-navbar:hover, |
4236 | +.btn-navbar:active, |
4237 | +.btn-navbar.active, |
4238 | +.btn-navbar.disabled, |
4239 | +.btn-navbar[disabled] { |
4240 | + background-color: #222222; |
4241 | +} |
4242 | +.btn-navbar:active, .btn-navbar.active { |
4243 | + background-color: #080808 \9; |
4244 | +} |
4245 | +.btn-navbar .icon-bar { |
4246 | + display: block; |
4247 | + width: 18px; |
4248 | + height: 2px; |
4249 | + background-color: #f5f5f5; |
4250 | + -webkit-border-radius: 1px; |
4251 | + -moz-border-radius: 1px; |
4252 | + border-radius: 1px; |
4253 | + -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.25); |
4254 | + -moz-box-shadow: 0 1px 0 rgba(0,0,0,.25); |
4255 | + box-shadow: 0 1px 0 rgba(0,0,0,.25); |
4256 | +} |
4257 | +.btn-navbar .icon-bar + .icon-bar { |
4258 | + margin-top: 3px; |
4259 | +} |
4260 | +.nav-collapse.collapse { |
4261 | + height: auto; |
4262 | +} |
4263 | +.navbar .brand:hover { |
4264 | + text-decoration: none; |
4265 | +} |
4266 | +.navbar .brand { |
4267 | + float: left; |
4268 | + display: block; |
4269 | + padding: 8px 20px 12px; |
4270 | + margin-left: -20px; |
4271 | + font-size: 20px; |
4272 | + font-weight: 200; |
4273 | + line-height: 1; |
4274 | + color: #ffffff; |
4275 | +} |
4276 | +.navbar .navbar-text { |
4277 | + margin-bottom: 0; |
4278 | + line-height: 40px; |
4279 | + color: #999999; |
4280 | +} |
4281 | +.navbar .navbar-text a:hover { |
4282 | + color: #ffffff; |
4283 | + background-color: transparent; |
4284 | +} |
4285 | +.navbar .btn, .navbar .btn-group { |
4286 | + margin-top: 5px; |
4287 | +} |
4288 | +.navbar .btn-group .btn { |
4289 | + margin-top: 0; |
4290 | +} |
4291 | +.navbar-form { |
4292 | + margin-bottom: 0; |
4293 | + *zoom: 1; |
4294 | +} |
4295 | +.navbar-form:before, .navbar-form:after { |
4296 | + display: table; |
4297 | + content: ""; |
4298 | +} |
4299 | +.navbar-form:after { |
4300 | + clear: both; |
4301 | +} |
4302 | +.navbar-form input, .navbar-form select { |
4303 | + display: inline-block; |
4304 | + margin-top: 5px; |
4305 | + margin-bottom: 0; |
4306 | +} |
4307 | +.navbar-form .radio, .navbar-form .checkbox { |
4308 | + margin-top: 5px; |
4309 | +} |
4310 | +.navbar-form input[type="image"], |
4311 | +.navbar-form input[type="checkbox"], |
4312 | +.navbar-form input[type="radio"] { |
4313 | + margin-top: 3px; |
4314 | +} |
4315 | +.navbar-form .input-append, .navbar-form .input-prepend { |
4316 | + margin-top: 6px; |
4317 | + white-space: nowrap; |
4318 | +} |
4319 | +.navbar-form .input-append input, .navbar-form .input-prepend input { |
4320 | + margin-top: 0; |
4321 | +} |
4322 | +.navbar-search { |
4323 | + position: relative; |
4324 | + float: left; |
4325 | + margin-top: 6px; |
4326 | + margin-bottom: 0; |
4327 | +} |
4328 | +.navbar-search .search-query { |
4329 | + padding: 4px 9px; |
4330 | + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; |
4331 | + font-size: 13px; |
4332 | + font-weight: normal; |
4333 | + line-height: 1; |
4334 | + color: #ffffff; |
4335 | + color: rgba(255,255,255,.75); |
4336 | + background: #666666; |
4337 | + background: rgba(255,255,255,.3); |
4338 | + border: 1px solid #111111; |
4339 | + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); |
4340 | + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); |
4341 | + box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); |
4342 | + -webkit-transition: none; |
4343 | + -moz-transition: none; |
4344 | + -ms-transition: none; |
4345 | + -o-transition: none; |
4346 | + transition: none; |
4347 | +} |
4348 | +.navbar-search .search-query :-moz-placeholder { |
4349 | + color: #eeeeee; |
4350 | +} |
4351 | +.navbar-search .search-query ::-webkit-input-placeholder { |
4352 | + color: #eeeeee; |
4353 | +} |
4354 | +.navbar-search .search-query:hover { |
4355 | + color: #ffffff; |
4356 | + background-color: #999999; |
4357 | + background-color: rgba(255,255,255,.5); |
4358 | +} |
4359 | +.navbar-search .search-query:focus, .navbar-search .search-query.focused { |
4360 | + padding: 5px 10px; |
4361 | + color: #333333; |
4362 | + text-shadow: 0 1px 0 #ffffff; |
4363 | + background-color: #ffffff; |
4364 | + border: 0; |
4365 | + -webkit-box-shadow: 0 0 3px rgba(0,0,0,.15); |
4366 | + -moz-box-shadow: 0 0 3px rgba(0,0,0,.15); |
4367 | + box-shadow: 0 0 3px rgba(0,0,0,.15); |
4368 | + outline: 0; |
4369 | +} |
4370 | +.navbar-fixed-top { |
4371 | + position: fixed; |
4372 | + top: 0; |
4373 | + right: 0; |
4374 | + left: 0; |
4375 | + z-index: 1030; |
4376 | +} |
4377 | +.navbar-fixed-top .navbar-inner { |
4378 | + padding-left: 0; |
4379 | + padding-right: 0; |
4380 | + -webkit-border-radius: 0; |
4381 | + -moz-border-radius: 0; |
4382 | + border-radius: 0; |
4383 | +} |
4384 | +.navbar .nav { |
4385 | + position: relative; |
4386 | + left: 0; |
4387 | + display: block; |
4388 | + float: left; |
4389 | + margin: 0 10px 0 0; |
4390 | +} |
4391 | +.navbar .nav.pull-right { |
4392 | + float: right; |
4393 | +} |
4394 | +.navbar .nav > li { |
4395 | + display: block; |
4396 | + float: left; |
4397 | +} |
4398 | +.navbar .nav > li > a { |
4399 | + float: none; |
4400 | + padding: 10px 10px 11px; |
4401 | + line-height: 19px; |
4402 | + color: #999999; |
4403 | + text-decoration: none; |
4404 | + text-shadow: 0 -1px 0 rgba(0,0,0,.25); |
4405 | +} |
4406 | +.navbar .nav > li > a:hover { |
4407 | + background-color: transparent; |
4408 | + color: #ffffff; |
4409 | + text-decoration: none; |
4410 | +} |
4411 | +.navbar .nav .active > a, .navbar .nav .active > a:hover { |
4412 | + color: #ffffff; |
4413 | + text-decoration: none; |
4414 | + background-color: #222222; |
4415 | +} |
4416 | +.navbar .divider-vertical { |
4417 | + height: 40px; |
4418 | + width: 1px; |
4419 | + margin: 0 9px; |
4420 | + overflow: hidden; |
4421 | + background-color: #222222; |
4422 | + border-right: 1px solid #333333; |
4423 | +} |
4424 | +.navbar .nav.pull-right { |
4425 | + margin-left: 10px; |
4426 | + margin-right: 0; |
4427 | +} |
4428 | +.navbar .dropdown-menu { |
4429 | + margin-top: 1px; |
4430 | + -webkit-border-radius: 4px; |
4431 | + -moz-border-radius: 4px; |
4432 | + border-radius: 4px; |
4433 | +} |
4434 | +.navbar .dropdown-menu:before { |
4435 | + content: ''; |
4436 | + display: inline-block; |
4437 | + border-left: 7px solid transparent; |
4438 | + border-right: 7px solid transparent; |
4439 | + border-bottom: 7px solid #cccccc; |
4440 | + border-bottom-color: rgba(0,0,0,.2); |
4441 | + position: absolute; |
4442 | + top: -7px; |
4443 | + left: 9px; |
4444 | +} |
4445 | +.navbar .dropdown-menu:after { |
4446 | + content: ''; |
4447 | + display: inline-block; |
4448 | + border-left: 6px solid transparent; |
4449 | + border-right: 6px solid transparent; |
4450 | + border-bottom: 6px solid #ffffff; |
4451 | + position: absolute; |
4452 | + top: -6px; |
4453 | + left: 10px; |
4454 | +} |
4455 | +.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { |
4456 | + border-top-color: #ffffff; |
4457 | +} |
4458 | +.navbar .nav .active .caret { |
4459 | + opacity: 1; |
4460 | + filter: alpha(opacity=100); |
4461 | +} |
4462 | +.navbar .nav .open > .dropdown-toggle, |
4463 | +.navbar .nav .active > .dropdown-toggle, |
4464 | +.navbar .nav .open.active > .dropdown-toggle { |
4465 | + background-color: transparent; |
4466 | +} |
4467 | +.navbar .nav .active > .dropdown-toggle:hover { |
4468 | + color: #ffffff; |
4469 | +} |
4470 | +.navbar .nav.pull-right .dropdown-menu { |
4471 | + left: auto; |
4472 | + right: 0; |
4473 | +} |
4474 | +.navbar .nav.pull-right .dropdown-menu:before { |
4475 | + left: auto; |
4476 | + right: 12px; |
4477 | +} |
4478 | +.navbar .nav.pull-right .dropdown-menu:after { |
4479 | + left: auto; |
4480 | + right: 13px; |
4481 | +} |
4482 | +.breadcrumb { |
4483 | + padding: 7px 14px; |
4484 | + margin: 0 0 18px; |
4485 | + background-color: #fbfbfb; |
4486 | + background-image: -moz-linear-gradient(top,#ffffff,#f5f5f5); |
4487 | + background-image: -ms-linear-gradient(top,#ffffff,#f5f5f5); |
4488 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#f5f5f5)); |
4489 | + background-image: -webkit-linear-gradient(top,#ffffff,#f5f5f5); |
4490 | + background-image: -o-linear-gradient(top,#ffffff,#f5f5f5); |
4491 | + background-image: linear-gradient(top,#ffffff,#f5f5f5); |
4492 | + background-repeat: repeat-x; |
4493 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); |
4494 | + border: 1px solid #dddddd; |
4495 | + -webkit-border-radius: 3px; |
4496 | + -moz-border-radius: 3px; |
4497 | + border-radius: 3px; |
4498 | + -webkit-box-shadow: inset 0 1px 0 #ffffff; |
4499 | + -moz-box-shadow: inset 0 1px 0 #ffffff; |
4500 | + box-shadow: inset 0 1px 0 #ffffff; |
4501 | +} |
4502 | +.breadcrumb li { |
4503 | + display: inline-block; |
4504 | + text-shadow: 0 1px 0 #ffffff; |
4505 | +} |
4506 | +.breadcrumb .divider { |
4507 | + padding: 0 5px; |
4508 | + color: #999999; |
4509 | +} |
4510 | +.breadcrumb .active a { |
4511 | + color: #333333; |
4512 | +} |
4513 | +.pagination { |
4514 | + height: 36px; |
4515 | + margin: 18px 0; |
4516 | +} |
4517 | +.pagination ul { |
4518 | + display: inline-block; |
4519 | + *display: inline; |
4520 | + *zoom: 1; |
4521 | + margin-left: 0; |
4522 | + margin-bottom: 0; |
4523 | + -webkit-border-radius: 3px; |
4524 | + -moz-border-radius: 3px; |
4525 | + border-radius: 3px; |
4526 | + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05); |
4527 | + -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05); |
4528 | + box-shadow: 0 1px 2px rgba(0,0,0,.05); |
4529 | +} |
4530 | +.pagination li { |
4531 | + display: inline; |
4532 | +} |
4533 | +.pagination a { |
4534 | + float: left; |
4535 | + padding: 0 14px; |
4536 | + line-height: 34px; |
4537 | + text-decoration: none; |
4538 | + border: 1px solid #dddddd; |
4539 | + border-left-width: 0; |
4540 | +} |
4541 | +.pagination a:hover, .pagination .active a { |
4542 | + background-color: #f5f5f5; |
4543 | +} |
4544 | +.pagination .active a { |
4545 | + color: #999999; |
4546 | + cursor: default; |
4547 | +} |
4548 | +.pagination .disabled a, .pagination .disabled a:hover { |
4549 | + color: #999999; |
4550 | + background-color: transparent; |
4551 | + cursor: default; |
4552 | +} |
4553 | +.pagination li:first-child a { |
4554 | + border-left-width: 1px; |
4555 | + -webkit-border-radius: 3px 0 0 3px; |
4556 | + -moz-border-radius: 3px 0 0 3px; |
4557 | + border-radius: 3px 0 0 3px; |
4558 | +} |
4559 | +.pagination li:last-child a { |
4560 | + -webkit-border-radius: 0 3px 3px 0; |
4561 | + -moz-border-radius: 0 3px 3px 0; |
4562 | + border-radius: 0 3px 3px 0; |
4563 | +} |
4564 | +.pagination-centered { |
4565 | + text-align: center; |
4566 | +} |
4567 | +.pagination-right { |
4568 | + text-align: right; |
4569 | +} |
4570 | +.pager { |
4571 | + margin: 18px 0; |
4572 | + list-style: none; |
4573 | + text-align: center; |
4574 | + *zoom: 1; |
4575 | +} |
4576 | +.pager:before, .pager:after { |
4577 | + display: table; |
4578 | + content: ""; |
4579 | +} |
4580 | +.pager:after { |
4581 | + clear: both; |
4582 | +} |
4583 | +.pager li { |
4584 | + display: inline; |
4585 | +} |
4586 | +.pager li > a, .pager li > span { |
4587 | + display: inline-block; |
4588 | + padding: 5px 14px; |
4589 | + background-color: #ffffff; |
4590 | + border: 1px solid #dddddd; |
4591 | + -webkit-border-radius: 15px; |
4592 | + -moz-border-radius: 15px; |
4593 | + border-radius: 15px; |
4594 | +} |
4595 | +.pager li > a:hover, .pager li > a:focus { |
4596 | + text-decoration: none; |
4597 | + background-color: #f5f5f5; |
4598 | +} |
4599 | +.pager .next > a, .pager .next > span { |
4600 | + float: right; |
4601 | +} |
4602 | +.pager .previous > a, .pager .previous > span { |
4603 | + float: left; |
4604 | +} |
4605 | +.pager .disabled > a, |
4606 | +.pager .disabled > a:hover, |
4607 | +.pager .disabled > a:focus, |
4608 | +.pager .disabled > span { |
4609 | + color: #999999; |
4610 | + background-color: #ffffff; |
4611 | + cursor: default; |
4612 | +} |
4613 | +.modal-open .dropdown-menu { |
4614 | + z-index: 2050; |
4615 | +} |
4616 | +.modal-open .dropdown.open { |
4617 | + *z-index: 2050; |
4618 | +} |
4619 | +.modal-open .popover { |
4620 | + z-index: 2060; |
4621 | +} |
4622 | +.modal-open .tooltip { |
4623 | + z-index: 2070; |
4624 | +} |
4625 | +.modal-backdrop { |
4626 | + position: fixed; |
4627 | + top: 0; |
4628 | + right: 0; |
4629 | + bottom: 0; |
4630 | + left: 0; |
4631 | + z-index: 1040; |
4632 | + background-color: #000000; |
4633 | +} |
4634 | +.modal-backdrop.fade { |
4635 | + opacity: 0; |
4636 | +} |
4637 | +.modal-backdrop, .modal-backdrop.fade.in { |
4638 | + opacity: 0.8; |
4639 | + filter: alpha(opacity=80); |
4640 | +} |
4641 | +.modal { |
4642 | + position: fixed; |
4643 | + top: 50%; |
4644 | + left: 50%; |
4645 | + z-index: 1050; |
4646 | + max-height: 500px; |
4647 | + overflow: auto; |
4648 | + width: 560px; |
4649 | + margin: -250px 0 0 -280px; |
4650 | + background-color: #ffffff; |
4651 | + border: 1px solid #999999; |
4652 | + border: 1px solid rgba(0,0,0,.3); |
4653 | + *border: 1px solid #999999; |
4654 | + -webkit-border-radius: 6px; |
4655 | + -moz-border-radius: 6px; |
4656 | + border-radius: 6px; |
4657 | + -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
4658 | + -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
4659 | + box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
4660 | + -webkit-background-clip: padding-box; |
4661 | + -moz-background-clip: padding-box; |
4662 | + background-clip: padding-box; |
4663 | +} |
4664 | +.modal.fade { |
4665 | + -webkit-transition: opacity .3s linear, top .3s ease-out; |
4666 | + -moz-transition: opacity .3s linear, top .3s ease-out; |
4667 | + -ms-transition: opacity .3s linear, top .3s ease-out; |
4668 | + -o-transition: opacity .3s linear, top .3s ease-out; |
4669 | + transition: opacity .3s linear, top .3s ease-out; |
4670 | + top: -25%; |
4671 | +} |
4672 | +.modal.fade.in { |
4673 | + top: 50%; |
4674 | +} |
4675 | +.modal-header { |
4676 | + padding: 9px 15px; |
4677 | + border-bottom: 1px solid #eeeeee; |
4678 | +} |
4679 | +.modal-header .close { |
4680 | + margin-top: 2px; |
4681 | +} |
4682 | +.modal-body { |
4683 | + padding: 15px; |
4684 | +} |
4685 | +.modal-body .modal-form { |
4686 | + margin-bottom: 0; |
4687 | +} |
4688 | +.modal-footer { |
4689 | + padding: 14px 15px 15px; |
4690 | + margin-bottom: 0; |
4691 | + background-color: #f5f5f5; |
4692 | + border-top: 1px solid #dddddd; |
4693 | + -webkit-border-radius: 0 0 6px 6px; |
4694 | + -moz-border-radius: 0 0 6px 6px; |
4695 | + border-radius: 0 0 6px 6px; |
4696 | + -webkit-box-shadow: inset 0 1px 0 #ffffff; |
4697 | + -moz-box-shadow: inset 0 1px 0 #ffffff; |
4698 | + box-shadow: inset 0 1px 0 #ffffff; |
4699 | + *zoom: 1; |
4700 | +} |
4701 | +.modal-footer:before, .modal-footer:after { |
4702 | + display: table; |
4703 | + content: ""; |
4704 | +} |
4705 | +.modal-footer:after { |
4706 | + clear: both; |
4707 | +} |
4708 | +.modal-footer .btn { |
4709 | + float: right; |
4710 | + margin-left: 5px; |
4711 | + margin-bottom: 0; |
4712 | +} |
4713 | +.tooltip { |
4714 | + position: absolute; |
4715 | + z-index: 1020; |
4716 | + display: block; |
4717 | + visibility: visible; |
4718 | + padding: 5px; |
4719 | + font-size: 11px; |
4720 | + opacity: 0; |
4721 | + filter: alpha(opacity=0); |
4722 | +} |
4723 | +.tooltip.in { |
4724 | + opacity: 0.8; |
4725 | + filter: alpha(opacity=80); |
4726 | +} |
4727 | +.tooltip.top { |
4728 | + margin-top: -2px; |
4729 | +} |
4730 | +.tooltip.right { |
4731 | + margin-left: 2px; |
4732 | +} |
4733 | +.tooltip.bottom { |
4734 | + margin-top: 2px; |
4735 | +} |
4736 | +.tooltip.left { |
4737 | + margin-left: -2px; |
4738 | +} |
4739 | +.tooltip.top .tooltip-arrow { |
4740 | + bottom: 0; |
4741 | + left: 50%; |
4742 | + margin-left: -5px; |
4743 | + border-left: 5px solid transparent; |
4744 | + border-right: 5px solid transparent; |
4745 | + border-top: 5px solid #000000; |
4746 | +} |
4747 | +.tooltip.left .tooltip-arrow { |
4748 | + top: 50%; |
4749 | + right: 0; |
4750 | + margin-top: -5px; |
4751 | + border-top: 5px solid transparent; |
4752 | + border-bottom: 5px solid transparent; |
4753 | + border-left: 5px solid #000000; |
4754 | +} |
4755 | +.tooltip.bottom .tooltip-arrow { |
4756 | + top: 0; |
4757 | + left: 50%; |
4758 | + margin-left: -5px; |
4759 | + border-left: 5px solid transparent; |
4760 | + border-right: 5px solid transparent; |
4761 | + border-bottom: 5px solid #000000; |
4762 | +} |
4763 | +.tooltip.right .tooltip-arrow { |
4764 | + top: 50%; |
4765 | + left: 0; |
4766 | + margin-top: -5px; |
4767 | + border-top: 5px solid transparent; |
4768 | + border-bottom: 5px solid transparent; |
4769 | + border-right: 5px solid #000000; |
4770 | +} |
4771 | +.tooltip-inner { |
4772 | + max-width: 200px; |
4773 | + padding: 3px 8px; |
4774 | + color: #ffffff; |
4775 | + text-align: center; |
4776 | + text-decoration: none; |
4777 | + background-color: #000000; |
4778 | + -webkit-border-radius: 4px; |
4779 | + -moz-border-radius: 4px; |
4780 | + border-radius: 4px; |
4781 | +} |
4782 | +.tooltip-arrow { |
4783 | + position: absolute; |
4784 | + width: 0; |
4785 | + height: 0; |
4786 | +} |
4787 | +.popover { |
4788 | + position: absolute; |
4789 | + top: 0; |
4790 | + left: 0; |
4791 | + z-index: 1010; |
4792 | + display: none; |
4793 | + padding: 5px; |
4794 | +} |
4795 | +.popover.top { |
4796 | + margin-top: -5px; |
4797 | +} |
4798 | +.popover.right { |
4799 | + margin-left: 5px; |
4800 | +} |
4801 | +.popover.bottom { |
4802 | + margin-top: 5px; |
4803 | +} |
4804 | +.popover.left { |
4805 | + margin-left: -5px; |
4806 | +} |
4807 | +.popover.top .arrow { |
4808 | + bottom: 0; |
4809 | + left: 50%; |
4810 | + margin-left: -5px; |
4811 | + border-left: 5px solid transparent; |
4812 | + border-right: 5px solid transparent; |
4813 | + border-top: 5px solid #000000; |
4814 | +} |
4815 | +.popover.right .arrow { |
4816 | + top: 50%; |
4817 | + left: 0; |
4818 | + margin-top: -5px; |
4819 | + border-top: 5px solid transparent; |
4820 | + border-bottom: 5px solid transparent; |
4821 | + border-right: 5px solid #000000; |
4822 | +} |
4823 | +.popover.bottom .arrow { |
4824 | + top: 0; |
4825 | + left: 50%; |
4826 | + margin-left: -5px; |
4827 | + border-left: 5px solid transparent; |
4828 | + border-right: 5px solid transparent; |
4829 | + border-bottom: 5px solid #000000; |
4830 | +} |
4831 | +.popover.left .arrow { |
4832 | + top: 50%; |
4833 | + right: 0; |
4834 | + margin-top: -5px; |
4835 | + border-top: 5px solid transparent; |
4836 | + border-bottom: 5px solid transparent; |
4837 | + border-left: 5px solid #000000; |
4838 | +} |
4839 | +.popover .arrow { |
4840 | + position: absolute; |
4841 | + width: 0; |
4842 | + height: 0; |
4843 | +} |
4844 | +.popover-inner { |
4845 | + padding: 3px; |
4846 | + width: 280px; |
4847 | + overflow: hidden; |
4848 | + background: #000000; |
4849 | + background: rgba(0,0,0,.8); |
4850 | + -webkit-border-radius: 6px; |
4851 | + -moz-border-radius: 6px; |
4852 | + border-radius: 6px; |
4853 | + -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
4854 | + -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
4855 | + box-shadow: 0 3px 7px rgba(0,0,0,0.3); |
4856 | +} |
4857 | +.popover-title { |
4858 | + padding: 9px 15px; |
4859 | + line-height: 1; |
4860 | + background-color: #f5f5f5; |
4861 | + border-bottom: 1px solid #eeeeee; |
4862 | + -webkit-border-radius: 3px 3px 0 0; |
4863 | + -moz-border-radius: 3px 3px 0 0; |
4864 | + border-radius: 3px 3px 0 0; |
4865 | +} |
4866 | +.popover-content { |
4867 | + padding: 14px; |
4868 | + background-color: #ffffff; |
4869 | + -webkit-border-radius: 0 0 3px 3px; |
4870 | + -moz-border-radius: 0 0 3px 3px; |
4871 | + border-radius: 0 0 3px 3px; |
4872 | + -webkit-background-clip: padding-box; |
4873 | + -moz-background-clip: padding-box; |
4874 | + background-clip: padding-box; |
4875 | +} |
4876 | +.popover-content p, .popover-content ul, .popover-content ol { |
4877 | + margin-bottom: 0; |
4878 | +} |
4879 | +.thumbnails { |
4880 | + margin-left: -20px; |
4881 | + list-style: none; |
4882 | + *zoom: 1; |
4883 | +} |
4884 | +.thumbnails:before, .thumbnails:after { |
4885 | + display: table; |
4886 | + content: ""; |
4887 | +} |
4888 | +.thumbnails:after { |
4889 | + clear: both; |
4890 | +} |
4891 | +.thumbnails > li { |
4892 | + float: left; |
4893 | + margin: 0 0 18px 20px; |
4894 | +} |
4895 | +.thumbnail { |
4896 | + display: block; |
4897 | + padding: 4px; |
4898 | + line-height: 1; |
4899 | + border: 1px solid #dddddd; |
4900 | + -webkit-border-radius: 4px; |
4901 | + -moz-border-radius: 4px; |
4902 | + border-radius: 4px; |
4903 | + -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.075); |
4904 | + -moz-box-shadow: 0 1px 1px rgba(0,0,0,.075); |
4905 | + box-shadow: 0 1px 1px rgba(0,0,0,.075); |
4906 | +} |
4907 | +a.thumbnail:hover { |
4908 | + border-color: #0088cc; |
4909 | + -webkit-box-shadow: 0 1px 4px rgba(0,105,214,.25); |
4910 | + -moz-box-shadow: 0 1px 4px rgba(0,105,214,.25); |
4911 | + box-shadow: 0 1px 4px rgba(0,105,214,.25); |
4912 | +} |
4913 | +.thumbnail > img { |
4914 | + display: block; |
4915 | + max-width: 100%; |
4916 | + margin-left: auto; |
4917 | + margin-right: auto; |
4918 | +} |
4919 | +.thumbnail .caption { |
4920 | + padding: 9px; |
4921 | +} |
4922 | +.label { |
4923 | + padding: 2px 4px 3px; |
4924 | + font-size: 11.05px; |
4925 | + font-weight: bold; |
4926 | + color: #ffffff; |
4927 | + text-shadow: 0 -1px 0 rgba(0,0,0,.25); |
4928 | + background-color: #999999; |
4929 | + -webkit-border-radius: 3px; |
4930 | + -moz-border-radius: 3px; |
4931 | + border-radius: 3px; |
4932 | +} |
4933 | +.label:hover { |
4934 | + color: #ffffff; |
4935 | + text-decoration: none; |
4936 | +} |
4937 | +.label-important { |
4938 | + background-color: #b94a48; |
4939 | +} |
4940 | +.label-important:hover { |
4941 | + background-color: #953b39; |
4942 | +} |
4943 | +.label-warning { |
4944 | + background-color: #f89406; |
4945 | +} |
4946 | +.label-warning:hover { |
4947 | + background-color: #c67605; |
4948 | +} |
4949 | +.label-success { |
4950 | + background-color: #468847; |
4951 | +} |
4952 | +.label-success:hover { |
4953 | + background-color: #356635; |
4954 | +} |
4955 | +.label-info { |
4956 | + background-color: #3a87ad; |
4957 | +} |
4958 | +.label-info:hover { |
4959 | + background-color: #2d6987; |
4960 | +} |
4961 | +@-webkit-keyframes progress-bar-stripes { |
4962 | + from { |
4963 | + background-position: 0 0; |
4964 | + } |
4965 | + to { |
4966 | + background-position: 40px 0; |
4967 | + } |
4968 | +} |
4969 | +@-moz-keyframes progress-bar-stripes { |
4970 | + from { |
4971 | + background-position: 0 0; |
4972 | + } |
4973 | + to { |
4974 | + background-position: 40px 0; |
4975 | + } |
4976 | +} |
4977 | +@keyframes progress-bar-stripes { |
4978 | + from { |
4979 | + background-position: 0 0; |
4980 | + } |
4981 | + to { |
4982 | + background-position: 40px 0; |
4983 | + } |
4984 | +} |
4985 | +.progress { |
4986 | + overflow: hidden; |
4987 | + height: 18px; |
4988 | + margin-bottom: 18px; |
4989 | + background-color: #f6f6f6; |
4990 | + background-image: -moz-linear-gradient(top,#f5f5f5,#f9f9f9); |
4991 | + background-image: -ms-linear-gradient(top,#f5f5f5,#f9f9f9); |
4992 | + background-image: -webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9)); |
4993 | + background-image: -webkit-linear-gradient(top,#f5f5f5,#f9f9f9); |
4994 | + background-image: -o-linear-gradient(top,#f5f5f5,#f9f9f9); |
4995 | + background-image: linear-gradient(top,#f5f5f5,#f9f9f9); |
4996 | + background-repeat: repeat-x; |
4997 | + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); |
4998 | + -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); |
4999 | + -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); |
5000 | + box-shadow: inset 0 1px 2px rgba(0,0,0,.1); |