From 0681101cdd2591c719c94fe1212acb4e2ec24f68 Mon Sep 17 00:00:00 2001 From: iberezovskiy Date: Mon, 6 Apr 2015 13:17:40 +0300 Subject: [PATCH] Build horizon 2015.1.0 (stable/kilo) * add xstatic-magic-search and xstatic-angular-lrdragndrop to dependencies according to https://github.com/openstack/horizon/blob/master/requirements.txt * sync dependencies with global requirements https://github.com/openstack/horizon/blob/stable/kilo/requirements.txt https://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt * remove all debian patches, source files, templates and pictures related to ubuntu and juju * rewrite runtests.sh script Change-Id: I62b956f39c2a85c415c92932ef3488ac9d0870ce --- debian/README.compression | 6 - debian/changelog | 715 -- debian/compat | 1 - debian/openstack-dashboard-ubuntu-theme.dirs | 4 - .../openstack-dashboard-ubuntu-theme.install | 4 - debian/openstack-dashboard-ubuntu-theme.links | 2 - .../openstack-dashboard-ubuntu-theme.postinst | 11 - .../openstack-dashboard-ubuntu-theme.postrm | 9 - debian/patches/add_juju_settings_panel.patch | 309 - .../patches/fix-dashboard-django-wsgi.patch | 12 - debian/patches/fix-ubuntu-tests.patch | 40 - debian/patches/series | 8 - debian/patches/ubuntu_settings.patch | 54 - debian/pydist-overrides | 2 - debian/source/include-binaries | 5 - debian/theme/css/ubuntu.css | 6772 ----------------- debian/theme/img/favicon-ubuntu.ico | Bin 623 -> 0 bytes debian/theme/img/juju.png | Bin 4206 -> 0 bytes debian/theme/img/ubuntu.png | Bin 4167 -> 0 bytes debian/theme/ubuntu_theme.py | 5 - debian/watch | 3 - tests/runtests.sh | 21 +- trusty/debian/changelog | 9 + trusty/debian/compat | 1 + {debian => trusty/debian}/control | 95 +- {debian => trusty/debian}/copyright | 0 .../debian}/openstack-dashboard.conf | 0 .../debian}/openstack-dashboard.dirs | 0 .../debian}/openstack-dashboard.install | 0 .../debian}/openstack-dashboard.links | 0 .../debian}/openstack-dashboard.postinst | 8 + .../debian}/openstack-dashboard.postrm | 0 .../debian}/openstack-dashboard.preinst | 0 trusty/debian/patches/embedded-xstatic.patch | 166 + .../patches/fix-dashboard-django-wsgi.patch | 25 + .../patches/fix-dashboard-manage.patch | 0 trusty/debian/patches/series | 3 + trusty/debian/pydist-overrides | 2 + .../debian}/python-django-horizon.install | 0 .../python-django-horizon.lintian-overrides | 0 {debian => trusty/debian}/rules | 24 +- {debian => trusty/debian}/source/format | 0 trusty/debian/source/include-binaries | 2 + .../openstack-dashboard/css/6bd71a04f0c0.css | 0 .../openstack-dashboard/js/0272dc9e5c21.js | 0 .../openstack-dashboard/js/b28ee7422312.js | 0 .../static/openstack-dashboard/manifest.json | 0 {debian => trusty/debian}/theme/img/dots.png | Bin .../debian}/theme/img/header_stripes.png | Bin .../debian}/theme/templates/_stylesheets.html | 4 - 50 files changed, 290 insertions(+), 8032 deletions(-) delete mode 100644 debian/README.compression delete mode 100644 debian/changelog delete mode 100644 debian/compat delete mode 100644 debian/openstack-dashboard-ubuntu-theme.dirs delete mode 100644 debian/openstack-dashboard-ubuntu-theme.install delete mode 100644 debian/openstack-dashboard-ubuntu-theme.links delete mode 100644 debian/openstack-dashboard-ubuntu-theme.postinst delete mode 100644 debian/openstack-dashboard-ubuntu-theme.postrm delete mode 100644 debian/patches/add_juju_settings_panel.patch delete mode 100644 debian/patches/fix-dashboard-django-wsgi.patch delete mode 100644 debian/patches/fix-ubuntu-tests.patch delete mode 100644 debian/patches/series delete mode 100644 debian/patches/ubuntu_settings.patch delete mode 100644 debian/pydist-overrides delete mode 100755 debian/source/include-binaries delete mode 100644 debian/theme/css/ubuntu.css delete mode 100644 debian/theme/img/favicon-ubuntu.ico delete mode 100644 debian/theme/img/juju.png delete mode 100644 debian/theme/img/ubuntu.png delete mode 100644 debian/theme/ubuntu_theme.py delete mode 100644 debian/watch create mode 100644 trusty/debian/changelog create mode 100644 trusty/debian/compat rename {debian => trusty/debian}/control (52%) rename {debian => trusty/debian}/copyright (100%) rename {debian => trusty/debian}/openstack-dashboard.conf (100%) rename {debian => trusty/debian}/openstack-dashboard.dirs (100%) rename {debian => trusty/debian}/openstack-dashboard.install (100%) rename {debian => trusty/debian}/openstack-dashboard.links (100%) rename {debian => trusty/debian}/openstack-dashboard.postinst (88%) rename {debian => trusty/debian}/openstack-dashboard.postrm (100%) rename {debian => trusty/debian}/openstack-dashboard.preinst (100%) create mode 100644 trusty/debian/patches/embedded-xstatic.patch create mode 100644 trusty/debian/patches/fix-dashboard-django-wsgi.patch rename {debian => trusty/debian}/patches/fix-dashboard-manage.patch (100%) create mode 100644 trusty/debian/patches/series create mode 100644 trusty/debian/pydist-overrides rename {debian => trusty/debian}/python-django-horizon.install (100%) rename {debian => trusty/debian}/python-django-horizon.lintian-overrides (100%) rename {debian => trusty/debian}/rules (72%) rename {debian => trusty/debian}/source/format (100%) create mode 100755 trusty/debian/source/include-binaries rename {debian => trusty/debian}/static/openstack-dashboard/css/6bd71a04f0c0.css (100%) rename {debian => trusty/debian}/static/openstack-dashboard/js/0272dc9e5c21.js (100%) rename {debian => trusty/debian}/static/openstack-dashboard/js/b28ee7422312.js (100%) rename {debian => trusty/debian}/static/openstack-dashboard/manifest.json (100%) rename {debian => trusty/debian}/theme/img/dots.png (100%) rename {debian => trusty/debian}/theme/img/header_stripes.png (100%) rename {debian => trusty/debian}/theme/templates/_stylesheets.html (73%) diff --git a/debian/README.compression b/debian/README.compression deleted file mode 100644 index a74700f..0000000 --- a/debian/README.compression +++ /dev/null @@ -1,6 +0,0 @@ -Until this can be scripted and integrated into package build, updating the -pre-compressed static CSS and JS requires a some manual steps: - - sudo apt-get install python-lesscpy python-openstack-auth python-compressor - quilt pop top - ./debian/rules refresh-static-assets diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index bca6266..0000000 --- a/debian/changelog +++ /dev/null @@ -1,715 +0,0 @@ -horizon (1:2014.2~b3-0ubuntu1) utopic; urgency=medium - - * Update requirements - - -- Ivan Berezovskiy Tue, 23 Sep 2014 16:27:02 +0400 - -horizon (1:2014.2~b2-0ubuntu1) utopic; urgency=medium - - * New upstream release. - * debian/patches/ubuntu_settings.patch: Refresed - * debian/patches/fix-dashboard-manage.patch: Refreshed - * debian/patches/fix-dashboard-django-wsgi.patch: Refreshed - - -- Chuck Short Fri, 25 Jul 2014 11:39:09 -0400 - -horizon (1:2014.2~b1-0ubuntu1) utopic; urgency=medium - - * New upstream release. - * debian/control: Open up juno release - - -- Chuck Short Tue, 22 Apr 2014 11:23:26 -0400 - -horizon (1:2014.1-0ubuntu1) trusty; urgency=medium - - * New upstream release (LP: #1288245). - - -- James Page Thu, 17 Apr 2014 12:21:21 +0100 - -horizon (1:2014.1~rc2-0ubuntu1) trusty; urgency=medium - - * New upstream release candidate (LP: #1288245). - - d/static/*: Refreshed assets for new upstream release. - - -- Chuck Short Wed, 09 Apr 2014 07:39:58 -0400 - -horizon (1:2014.1~rc1-0ubuntu1) trusty; urgency=medium - - * New upstream release candidate (LP: #1288245). - - d/static/*: Refreshed assets for new upstream release. - * d/theme/*: Refresh Ubuntu theme against Icehouse templates (LP: #1291653). - - -- James Page Mon, 31 Mar 2014 17:31:49 +0100 - -horizon (1:2014.1~b3-0ubuntu2) trusty; urgency=medium - - * Ensure correct URL is used for logout/timeout (LP: #1243187): - - d/p/ubuntu_settings.patch: Update LOGOUT_URL for /horizon prefix. - * Ensure Apache configuration is backwards compatible with Apache 2.2 - (LP: #1292577): - - d/openstack-dashboard.conf: Revert changes from 1:2014.1~b2-0ubuntu2. - - -- James Page Fri, 14 Mar 2014 16:21:00 +0000 - -horizon (1:2014.1~b3-0ubuntu1) trusty; urgency=medium - - * New upstream milestone release. - * d/static/*: Refreshed assets for new upstream release. - - -- James Page Thu, 06 Mar 2014 16:53:28 +0000 - -horizon (1:2014.1~b2-0ubuntu2) trusty; urgency=medium - - * d/rules: Drop override of dh_auto_clean, not required. - * d/rules,openstack-dashboard.install: Detect and use default python - version when creating symlink from openstack-dashboard -> horizon. - * d/*: Tidy surplus execute bits on numerous files. - * d/openstack-dashboard.conf: Update for Apache 2.4 stanza's. - * d/rules: Skip tests as they don't run and results where being ignored. - * d/control: python-django-openstack - update description, move to section - oldlibs for transitional packages. - * d/*: Wrap-and-sort. - * d/control: Drop BD on python-d2to1, merged into python-pbr. - - -- James Page Tue, 25 Feb 2014 14:34:33 +0000 - -horizon (1:2014.1~b2-0ubuntu1) trusty; urgency=medium - - [ Chuck Short ] - * New upstream release. - * debian/patches/fix-ubuntu-tests.patch: Dropped. - * deban/patches/ubuntu-settings.patch: Refreshed - - [ James Page ] - * debian/static: Refresh assets. - - -- James Page Fri, 24 Jan 2014 15:12:31 +0000 - -horizon (1:2014.1~b1-0ubuntu1) trusty; urgency=low - - * New upstream release. - * debian/control: open icehouse release. - * debian/static/openstack-dashboard: Refreshed static assets. - - -- Chuck Short Thu, 05 Dec 2013 14:39:15 -0500 - -horizon (1:2013.2-0ubuntu1) saucy; urgency=low - - * New upstream release (LP: #1236462). - - -- Chuck Short Thu, 17 Oct 2013 09:43:46 -0400 - -horizon (1:2013.2~rc3-0ubuntu1) saucy; urgency=low - - * New upstream release candidate (LP: #1240665). - - -- Chuck Short Wed, 16 Oct 2013 20:10:52 -0400 - -horizon (1:2013.2~rc2-0ubuntu1) saucy; urgency=low - - * New upstream release candidate. (#1239156) - * debian/README.compression: Updated documenation on how to - refresh the static assets. - - -- Chuck Short Tue, 15 Oct 2013 10:20:05 -0400 - -horizon (1:2013.2~rc1-0ubuntu2) saucy; urgency=low - - * d/theme/css/ubuntu.css: Refresh Ubuntu theme against new Havana - stylesheets, fixing network and chart layouts (LP: #1235249). - * d/openstack-dashboard.postinst: Allow horizon user to read and - write data in /var/lib/openstack-dashboard inline with user and - group permissions set in Apache configuration. - - -- James Page Fri, 04 Oct 2013 14:17:43 +0100 - -horizon (1:2013.2~rc1-0ubuntu1) saucy; urgency=low - - [ James Page ] - * New upstream release candidate: - - d/static: Refreshed static assets for 2013.2~rc1. - - d/patches: Refreshed patches. - - [ Chuck Short ] - * debian/control: Add python-lesscpy as a suggests to optionally - support online compression of static assets (LP: #1226674). - - -- James Page Thu, 03 Oct 2013 13:48:12 +0100 - -horizon (1:2013.2~b3-0ubuntu2) saucy; urgency=low - - * Don't use /etc/openstack-dashboard for in-process generated data - (LP: #1233752): - - d/openstack-dashboard.{dirs,postinst}: - + Create /var/lib/openstack-dashboard with restricted permissions, - allowing www-data user to write a secret_key if need be. - + Move /etc/openstack-dashboard/secret_key to correct location if - it already exists. - - d/p/ubuntu_settings.patch: Use /var/lib/openstack-dashboard for - secret key storage instead of /etc/openstack-dashboard. - - -- James Page Wed, 02 Oct 2013 10:31:15 +0100 - -horizon (1:2013.2~b3-0ubuntu1) saucy; urgency=low - - * New upstream release. - * debian/control: Minimum python-openstack-auth version >= 1.1.1. - * debian/control: Add python-troveclient. - * debian/static: Refresh static assets for 2013.2~b3. - * debian/patches: ubuntu_local_settings.patch -> ubuntu_settings.patch, also - patch location of secret key in openstack_dashboard/settings.py - - -- Adam Gandelman Fri, 06 Sep 2013 11:59:43 -0700 - -horizon (1:2013.2~b2-0ubuntu6) saucy; urgency=low - - * debian/patches/ubuntu_local_settings.py: Set flexible - default for ALLOWED_HOSTS that should be changed for production - deployments (LP: #1214982). - * Fix (LP: #1216019): - - debian/openstack-dashboard.{postinst, postrm}: Add/remove horizon - user. Ensure /etc/openstack-dashbard ownership. - - debian/openstack-dashboard.conf: Run WSGIDaemonProcess as user - horizon, set WSGIProcessGroup to horizon. - - debian/patches/ubuntu_local_settings.py: Generate and load secret - key from /etc/openstack-dashboard/secret_key. - - -- Adam Gandelman Fri, 06 Sep 2013 10:33:18 -0700 - -horizon (1:2013.2~b2-0ubuntu5) saucy; urgency=low - - * d/static/*: Refresh static assets for 2013.2~b2. - * d/rules: Tweak helper for refreshing static assets to link - local_settings.py correctly. - * d/openstack-dashboard.p*: Fix typo in configuration file name, - ensure consistent use of tabs/spaces. - - -- James Page Mon, 02 Sep 2013 16:43:56 +0100 - -horizon (1:2013.2~b2-0ubuntu4) saucy; urgency=low - - * Update for apache 2.4, preserve 2.2 compatability. (LP: #1218535) - - -- Adam Gandelman Fri, 30 Aug 2013 15:31:49 -0700 - -horizon (1:2013.2~b2-0ubuntu3) saucy; urgency=low - - * debian/rules: Don't remove egg information while cleaning. - (LP: #1210253) - - -- Chuck Short Wed, 21 Aug 2013 10:08:35 -0400 - -horizon (1:2013.2~b2-0ubuntu2) saucy; urgency=low - - * debian/control: Fix typo in depends. - - -- Chuck Short Mon, 22 Jul 2013 14:36:30 -0400 - -horizon (1:2013.2~b2-0ubuntu1) saucy; urgency=low - - [ James Page ] - * d/control: Update VCS fields for new branch locations. - * Automate refresh of static assets: - - d/rules: Added refresh-static-assets helper target. - - d/README.compression: Updated for new process. - * d/static/*: Refreshed static assets. - - [ Chuck Short ] - * New upstream release - * debian/control: - - Add python-ceilometerclient - - Add python-heatclient - - Renamed python-quantumclient to python-neturonclient. - * debian/curles: Removed instances of quantum since its cruft - that we dont need anymore. - - -- Chuck Short Mon, 22 Jul 2013 11:45:28 -0400 - -horizon (1:2013.2~b1-0ubuntu1) saucy; urgency=low - - * New upstream release. - * debian/patches/ubuntu_local_settings.patch: Refreshed - * debian/control: Add python-pbr and python-d2to1. - - -- Chuck Short Fri, 31 May 2013 08:59:58 -0500 - -horizon (1:2013.1-0ubuntu3) raring; urgency=low - - * Re-sync Ubuntu theme with upstream changes, fixing instance network - selection dialog and network topology screens (LP: #1157918). - - -- James Page Mon, 22 Apr 2013 14:09:04 +0100 - -horizon (1:2013.1-0ubuntu2) raring; urgency=low - - * Recompress static JS and CSS and generate new manifest.json for - offline compression. - - -- Chuck Short Wed, 10 Apr 2013 12:24:24 -0500 - -horizon (1:2013.1-0ubuntu1) raring; urgency=low - - * New upstream release. - - -- Chuck Short Fri, 05 Apr 2013 14:20:44 -0500 - -horizon (1:2013.1~rc2-0ubuntu1) raring; urgency=low - - * New upstream release. - - -- Chuck Short Tue, 02 Apr 2013 08:40:42 -0500 - -horizon (1:2013.1~rc1-0ubuntu1) raring; urgency=low - - [ James Page ] - * New upstream release candidate for Grizzly: - - Recompress static JS and CSS and generate new manifest.json for - offline compression. - * d/watch: Update uversionmangle to deal with upstream versioning - changes, remove tarballs.openstack.org. - * d/control: Version python-compressor >= 1.2 (LP: #1130610). - - [ Adam Gandelman ] - * debian/patches/ubuntu_local_settings.py: Refresh, specify memcache - location as part of CACHES, as per upstream changes to example config. - - -- James Page Wed, 20 Mar 2013 11:20:17 +0000 - -horizon (2013.1.g3-0ubuntu2) raring; urgency=low - - * Recompress static JS and CSS and generate new manifest.json for offline - compression. - - -- James Page Tue, 26 Feb 2013 07:35:51 +0000 - -horizon (2013.1.g3-0ubuntu1) raring; urgency=low - - [ James Page ] - * Recompress static JS and CSS and generate new manifest.json for offline - compression in preparation for Grizzly-3. - - [ Chuck Short ] - * New usptream release. - - -- Chuck Short Fri, 22 Feb 2013 09:43:22 -0600 - -horizon (2013.1~g2-0ubuntu1) raring; urgency=low - - [ Adam Gandelman ] - * Recompress static JS and CSS and generate new manifest.json for offline - compression in preparation for Grizzly-2. - - [ Chuck Short ] - * New upstream release. - - -- Chuck Short Fri, 11 Jan 2013 08:26:40 -0600 - -horizon (2013.1~g1-0ubuntu1) raring; urgency=low - - [ Adam Gandelman ] - * debian/patches/add_juju_settings_pannel.patch: Disable during - Grizzly dev. cycle. - - [ Chuck Short ] - * New upstream relase. - * Refreshed patches. - - -- Chuck Short Fri, 23 Nov 2012 08:49:14 -0600 - -horizon (2012.2-0ubuntu2) quantal; urgency=low - - * debian/control: Set strict version requirements between python-django-horizon, - openstack-dashboard, and openstack-ubuntu-theme. (LP: #1061961) - * debian/theme/css/ubuntu.css: Refreshed against Folsom. (LP: #1064420) - * debian/patches/add_juju_panel.patch: Update and refresh for Folsom - compatability. (LP: #1064605) - * debian/patches/allow_alternate_css.patch: Remove unapplied, obsolete - patch. - - -- Adam Gandelman Tue, 09 Oct 2012 09:59:55 -0700 - -horizon (2012.2-0ubuntu1) quantal; urgency=low - - * New upstream release. - - -- Chuck Short Thu, 27 Sep 2012 11:56:26 -0500 - -horizon (2012.2~rc2-0ubuntu1) quantal; urgency=low - - [ Adam Gandelman ] - * Re-enable openstack-dashboard-ubuntu-theme. - - [ Chuck Short ] - * New upstream release - - -- Chuck Short Fri, 21 Sep 2012 08:03:36 -0500 - -horizon (2012.2~rc1-0ubuntu1) quantal; urgency=low - - [ Adam Gandelman ] - * debian/patches/ubuntu_local_settings.patch: Squash all patches that - touch local_settings.py.example into one. - * Drop node-less dependency (LP: #1024326). - - debian/static/openstack-dashboard: Pre-compressed and compiled JS, CSS - and compressor manifest.json. - - debian/patches/ubuntu_local_settings.patch: Set COMPRESS_OFFLINE=True - to enable offline compression and pre-compressed static files by - default. - - [ Chuck Short ] - * New upstream release - - -- Chuck Short Wed, 12 Sep 2012 12:21:33 -0500 - -horizon (2012.2~rc1~20120904.2043-0ubuntu1) quantal; urgency=low - - [ Adam Gandelman ] - * debian/patches/fix-coverage-binary-name.patch: Drop, merge into - fix-ubuntu-tests.patch. - * debian/patches/set_login_redirects.patch: Configure login URLs in - local_settings.py according to the default apache configuration - installed. (LP: #1037349) - * debian/patches/fix-dashboard-manage.patch: Refresh. - - [ Soren Hansen ] - * Update debian/watch to account for symbolically named tarballs and - use newer URL. - * Fix Launchpad URLs in debian/watch. - - [ Chuck Short ] - * New upstream version - - -- Chuck Short Fri, 07 Sep 2012 12:35:36 -0500 - -horizon (2012.2~f3-0ubuntu2) quantal; urgency=low - - * Depend on python-openstack-auth rather than on the removed - python-django-openstack-auth. - - -- Colin Watson Wed, 22 Aug 2012 10:34:11 +0100 - -horizon (2012.2~f3-0ubuntu1) quantal; urgency=low - - [ Chuck Short ] - * New upstream release. - * debian/patches/fix-ubuntu-tests.patch: Fix test suites again to - run during the builds. - * debian/watch: Update. - * debian/control: Add python-glanceclient. (LP: #1030911) - * debian/openstack-dashboard.conf: Don't hijack apache's webroot. (LP: - #1020313) - * debian/control: Update horizon deps to reflect reality. - - [ Adam Gandelman ] - * debian/control: Bump required python-django version to 1.4. - * wrap-and-sort. - * Fix (LP: #1036571): - - debian/rules, openstack-dashboard.{links, dirs, postinst}: Add required - symlinks and directories to allow Horizon to function with the packaged - lessc. - - debian/control: Add python-{cinder, swift, quantum}client, - python-django-openstack-auth, python-netaddr, python-compressor, lessc. - * debian/rules: Improve dh_auto_clean. - - -- Chuck Short Thu, 16 Aug 2012 14:01:33 -0500 - -horizon (2012.2~f2-0ubuntu1) quantal; urgency=low - - * New usptream version. - - -- Chuck Short Fri, 06 Jul 2012 11:38:55 -0400 - -horizon (2012.2~f2~20120622.1833-0ubuntu2) quantal; urgency=low - - * debian/patches/{use-memcache.patch, turn-off-debug.patch}: Refresh. - - -- Adam Gandelman Tue, 03 Jul 2012 14:09:15 -0700 - -horizon (2012.2~f2~20120622.1833-0ubuntu1) quantal; urgency=low - - [ Chuck Short ] - * New upstream version. - * debian/copyright: Fix lintian warnings. - - [ Adam Gandelman ] - * Disabled during Folsom dev cycle, to be refreshed against first Folsom RC: - - debian/patches/add_juju_settings_panel.patch - - debian/patches/allow_alternate_css.patch - * debian/patches/fix-coverage-binary-name.patch: Refreshed. - * debian/patches/turn-off-debug.patch: Refreshed. - - -- Chuck Short Fri, 22 Jun 2012 11:31:06 -0400 - -horizon (2012.2~f2~20120530.1777-0ubuntu1) quantal; urgency=low - - * New upstream release. - * debian/patches/add_juju_settings_panel.patch: Refreshed - * debian/patches/turn-off-debug.patch: Refreshed - - -- Chuck Short Fri, 01 Jun 2012 10:57:56 -0400 - -horizon (2012.2~f1-0ubuntu1) quantal; urgency=low - - * New usptream release. - * Prepare for quantal: - - debian/patches/fix-coverage-binary-name.patch: Refreshed. - * Temporarily pass the testsuite. - - -- Chuck Short Thu, 24 May 2012 14:33:20 -0400 - -horizon (2012.1-0ubuntu8) precise-proposed; urgency=low - - * debian/control: Added memcached as a Recommends of python-django-horizon, - to ensure a memcached is running and can be used via default install. - - LP: #988435 - - -- Dave Walker (Daviey) Wed, 25 Apr 2012 18:30:00 +0100 - -horizon (2012.1-0ubuntu7) precise; urgency=low - - * debian/patches/use-memcache.patch: Use memcache for session engine by - default to avoid frequent logouts, as sessions are not shared across - workers. LP: #968850 - - -- Dave Walker (Daviey) Wed, 25 Apr 2012 10:55:18 +0100 - -horizon (2012.1-0ubuntu6) precise; urgency=low - - [ Adam Gandelman ] - * debian/openstack-dashboard.links: Create symlink to horizon's static js - files. (LP: #987535) - - [ Jamie Strandboge ] - * debian/control: don't Build-Depends on python-cherrypy3. It is used by - only the dashboard tests and they are disabled in Ubuntu builds - - -- Adam Gandelman Tue, 24 Apr 2012 10:43:12 -0700 - -horizon (2012.1-0ubuntu5) precise; urgency=low - - [ Adam Gandelman ] - * debian/patches/turn-off-debug.patch: Enable again - * debian/openstack-dashboard.conf: Add an Alias mapping '/static' - to '/usr/share/opensack-dashboard/openstack_dashboard/static/' - (LP: #980787) - * debian/patches/allow_alternate_css.patch: Allow loading of ubuntu.css - and favicon if they exists - * debian/control: Drop libjs-jquery dependencies - - [ Dave Walker (Daviey) ] - * debian/control: Drop duplicate depends python-cloudfiles. - - -- Dave Walker (Daviey) Mon, 23 Apr 2012 10:04:39 +0100 - -horizon (2012.1-0ubuntu4) precise; urgency=low - - * debian/patches/turn-off-debug.patch; Reverted, breaks CSS templates. - (LP: #980787) - - -- Chuck Short Fri, 13 Apr 2012 09:58:54 -0400 - -horizon (2012.1-0ubuntu3) precise; urgency=low - - [ Adam Gandelman ] - * debian/patches/add_juju_settings_panel.patch, debian/rules, - debian/juju.png: Add an Ubuntu-specific panel to easily generate - Juju environments.yaml - - [ Chuck Short ] - * debian/patches/turn-off-debug.patch: Turn off debugging. - - -- Chuck Short Thu, 12 Apr 2012 12:42:04 -0400 - -horizon (2012.1-0ubuntu2) precise; urgency=low - - * Make openstack-dashboard Pre-Depends: dpkg (>= 1.15.7.2) for - dpkg-maintscript-helper. - - -- Colin Watson Tue, 10 Apr 2012 17:58:25 +0100 - -horizon (2012.1-0ubuntu1) precise; urgency=low - - * New upstream release. - * debian/patches/turn-off-debug.patch: Turn off debugging. - - -- Chuck Short Thu, 12 Apr 2012 10:46:00 -0400 - -horizon (2012.1~rc2-0ubuntu1) precise; urgency=low - - [ Chuck Short ] - * New usptream release. - * debian/control: Use python-cherrypy3 - * debian/rules: Update pythonpath in order to run tests. - * debian/patches/fix-coverage-binary-name.patch: Make the testsuite - run. - * debian/rules: Fail build if tests fail. - - [ A Gandelman ] - * debian/control: Add python-memcache - * debain/dashboard.conf: Update to match current upstream documentation - (LP: #966069) - - [ Adrien Cunin ] - * Renamed Apache config file from dashboard.conf to openstack-dashboard.conf - (LP: #965410) - - Updated post{inst,rm} and added preinst to handle correctly the rename - - -- Chuck Short Wed, 04 Apr 2012 07:21:15 -0400 - -horizon (2012.1~rc1-0ubuntu1) precise; urgency=low - - * New upstream release. - - -- Chuck Short Tue, 20 Mar 2012 14:49:24 -0400 - -horizon (2012.1~rc1~20120315.1545-0ubuntu1) precise; urgency=low - - [Adam Gandelman] - * New upstream release. - - [Chuck Short] - * debian/control: Update run-time depends - - -- Adam Gandelman Fri, 16 Mar 2012 12:29:27 -0700 - -horizon (2012.1~rc1~20120308.1479-0ubuntu1) precise; urgency=low - - * New upstream version. - * debian/rules: Fix symlink when installing horizon. - (LP: #947118) - * debian/control: Add python-django-nose as a dep. (LP: #944235) - * debian/control: Fix broken depends. - - -- Chuck Short Fri, 09 Mar 2012 11:50:22 -0500 - -horizon (2012.1~e4-0ubuntu1) precise; urgency=low - - * New upstream version. - * debian/rules: Update due to upstream build changes. - * debian/control: Update standards-version. - * debian/patches/openstack-config-settings.patch: Dropped - * debian/patches/fix-dashboard-django-wsgi.patch: Refreshed - * debian/patches/fix-dashboard-manage.patch: Refreshed - * debian/openstack-dashboard.install: Update due to upstream build changes. - * debian/dashboard: Update to upstream build changes. - * debian/pydist-overrides: Dont try to install python-django-nose-selenium. - * debian/openstack-dashboard.install: Add missing config files. - * debian/rules: Fix broken settings.py - * debian/patches/pkg-setup.patch: Copy missing templates, shameously - taken from debian - * debian/patches/fix-broken-tarbll.patch: Add missing files. - - -- Chuck Short Fri, 02 Mar 2012 12:11:59 -0500 - -horizon (2012.1~e4~20120224.1386-0ubuntu1) precise; urgency=low - - * New upstream version. - - -- Chuck Short Fri, 24 Feb 2012 10:49:27 -0500 - -horizon (2012.1~e4~20120217.1354-0ubuntu1) precise; urgency=low - - * debian/patches/openstack-config-settings.patch: Refreshed. - * debian/copyright: Updated copyright. - * debian/rules: Diable tests since it doesnt work without a - virtualenv. - * New upstream release. - - -- Chuck Short Fri, 17 Feb 2012 10:12:25 -0500 - -horizon (2012.1~e4~20120210.1331-0ubuntu1) precise; urgency=low - - * New Upstream version - * debian/control: - - Add python-coverage as a build dependency. - - Add python-novaclient as a build dependency. - - -- Chuck Short Fri, 10 Feb 2012 11:09:58 -0500 - -horizon (2012.1~e4~20120202.1300-0ubuntu2) precise; urgency=low - - * debian/control: Add python-keystoneclient as a build - dependency. - - -- Chuck Short Fri, 03 Feb 2012 13:29:27 -0500 - -horizon (2012.1~e4~20120202.1300-0ubuntu1) precise; urgency=low - - * New upstream version. - * debian/control: Drop dependencies we dont need. - - -- Chuck Short Fri, 03 Feb 2012 09:55:54 -0500 - -horizon (2012.1~e3-0ubuntu1) precise; urgency=low - - * New upstream version. - * debian/conffiles: Don't wipe out local_settings.py on upgrade. - (LP: #914257) - - -- Chuck Short Thu, 26 Jan 2012 09:52:53 -0500 - -horizon (2012.1~e3~20120120.1235-0ubuntu1) precise; urgency=low - - * New upstream release. - - -- Chuck Short Fri, 20 Jan 2012 14:51:21 -0500 - -horizon (2012.1~e3~20120113.1213-0ubuntu1) precise; urgency=low - - [Chuck Short] - * Removed python-django-horizon.postinst, let dh_python2 generate instead - since python-support is not a dependency. - * Dropped python-openstack-compute from debian/control. - * Clean up debian/control. - * Restart apache when installing the openstack dashboard. - (LP: #905527) - * Dropped python-coverage not needed. - * Added transitional package for people updating from oneiric. - * Rediffed patches. - * More linitian fixes. - - [Robie Basak] - * debian/control: put python-django-horizon in Python section. - * debian/control: lintian fixes (LP: #899427): - - Put python-django-horizon in Python section - - Remove definite article from Description - * debian/copyright: fix dep5 syntax. - * debian/python-django-horizon.lintian-overrides: override for template shell - script. - - -- Chuck Short Fri, 13 Jan 2012 10:59:49 +0100 - -horizon (2012.1~e2-0ubuntu2) precise; urgency=low - - * Rebuild to drop dependencies on python2.6. - - -- Matthias Klose Mon, 02 Jan 2012 10:58:49 +0100 - -horizon (2012.1~e2-0ubuntu1) precise; urgency=low - - * New upstream release (LP: #904039) - * debian/control: Update build-depends. - * debian/watch: Fix to fetch from Launchpad ad well. - - -- Chuck Short Fri, 16 Dec 2011 16:34:56 -0500 - -horizon (2012.1~e2~20111209.1104-0ubuntu1) precise; urgency=low - - * New upstream release. - * Refreshed patches. - * debian/docs: Removed README - - -- Chuck Short Fri, 09 Dec 2011 16:18:55 -0500 - -horizon (2012.1~e1-0ubuntu~e2.20111201.1077.1) precise; urgency=low - - [ Chuck Short ] - * Initial release. - - [ Jamie Strandboge ] - * debian/patches/git-2012.1~e2~20111201.1077.patch: use 2012.1~e1 release - tarball and apply all git commits up to 2012.1~e2~20111201.1077. This - can be dropped in 2012.1~e2. - * rename python-djanog-horizon.postinst to python-django-horizon.postinst - - -- Jamie Strandboge Fri, 02 Dec 2011 16:21:52 -0600 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 45a4fb7..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/debian/openstack-dashboard-ubuntu-theme.dirs b/debian/openstack-dashboard-ubuntu-theme.dirs deleted file mode 100644 index a2d44ff..0000000 --- a/debian/openstack-dashboard-ubuntu-theme.dirs +++ /dev/null @@ -1,4 +0,0 @@ -/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu -/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/img -/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/css -/usr/share/openstack-dashboard-ubuntu-theme/templates diff --git a/debian/openstack-dashboard-ubuntu-theme.install b/debian/openstack-dashboard-ubuntu-theme.install deleted file mode 100644 index a4095e9..0000000 --- a/debian/openstack-dashboard-ubuntu-theme.install +++ /dev/null @@ -1,4 +0,0 @@ -debian/theme/css/* /usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/css -debian/theme/img/* /usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu/img -debian/theme/templates/* /usr/share/openstack-dashboard-ubuntu-theme/templates -debian/theme/ubuntu_theme.py /etc/openstack-dashboard diff --git a/debian/openstack-dashboard-ubuntu-theme.links b/debian/openstack-dashboard-ubuntu-theme.links deleted file mode 100644 index 5685f42..0000000 --- a/debian/openstack-dashboard-ubuntu-theme.links +++ /dev/null @@ -1,2 +0,0 @@ -/etc/openstack-dashboard/ubuntu_theme.py /usr/share/openstack-dashboard/openstack_dashboard/local/ubuntu_theme.py -/usr/share/openstack-dashboard-ubuntu-theme/static/ubuntu /usr/share/openstack-dashboard/openstack_dashboard/static/ubuntu diff --git a/debian/openstack-dashboard-ubuntu-theme.postinst b/debian/openstack-dashboard-ubuntu-theme.postinst deleted file mode 100644 index d0eb0c3..0000000 --- a/debian/openstack-dashboard-ubuntu-theme.postinst +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -set -e - -if [ "$1" = "configure" ]; then - if [ -x "`which invoke-rc.d 2>/dev/null`" -a -x "/etc/init.d/apache2" ] ; then - invoke-rc.d --quiet apache2 reload - fi -fi - -#DEBHELPER# diff --git a/debian/openstack-dashboard-ubuntu-theme.postrm b/debian/openstack-dashboard-ubuntu-theme.postrm deleted file mode 100644 index 79115b4..0000000 --- a/debian/openstack-dashboard-ubuntu-theme.postrm +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -set -e - -if [ -x "`which invoke-rc.d 2>/dev/null`" -a -x "/etc/init.d/apache2" ] ; then - invoke-rc.d --quiet apache2 reload -fi - -#DEBHELPER# diff --git a/debian/patches/add_juju_settings_panel.patch b/debian/patches/add_juju_settings_panel.patch deleted file mode 100644 index 35ccd7e..0000000 --- a/debian/patches/add_juju_settings_panel.patch +++ /dev/null @@ -1,309 +0,0 @@ -Index: horizon-2012.2/horizon/dashboards/settings/dashboard.py -=================================================================== ---- horizon-2012.2.orig/horizon/dashboards/settings/dashboard.py 2012-10-09 11:54:50.986004892 -0700 -+++ horizon-2012.2/horizon/dashboards/settings/dashboard.py 2012-10-09 11:54:57.058004668 -0700 -@@ -16,6 +16,7 @@ - # under the License. - - from django.utils.translation import ugettext_lazy as _ -+from django.conf import settings - - import horizon - -@@ -23,7 +24,15 @@ - class Settings(horizon.Dashboard): - name = _("Settings") - slug = "settings" -- panels = ('user', 'project', 'ec2') -+ try: -+ juju_panel = getattr(settings, 'ENABLE_JUJU_PANEL') -+ if juju_panel == True: -+ panels = ('user', 'project', 'ec2', 'juju') -+ else: -+ panels = ('user', 'project', 'ec2') -+ except AttributeError: -+ panels = ('user', 'project', 'ec2') -+ - default_panel = 'user' - nav = False - -Index: horizon-2012.2/horizon/dashboards/settings/juju/forms.py -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/juju/forms.py 2012-10-09 11:58:55.169995921 -0700 -@@ -0,0 +1,100 @@ -+# vim: tabstop=4 shiftwidth=4 softtabstop=4 -+ -+# Copyright 2012 Openstack, LLC -+# Copyright 2012 Canonical Ltd. -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); you may -+# not use this file except in compliance with the License. You may obtain -+# a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -+# License for the specific language governing permissions and limitations -+# under the License. -+ -+import logging -+import tempfile -+import zipfile -+from contextlib import closing -+ -+from django import http, shortcuts -+from django.template.loader import render_to_string -+from django.utils.translation import ugettext_lazy as _ -+ -+from horizon import api -+from horizon import exceptions -+from horizon import forms -+from horizon import messages -+ -+import boto -+import uuid -+ -+LOG = logging.getLogger(__name__) -+ -+ -+class DownloadJujuEnvironment(forms.SelfHandlingForm): -+ # This is heavily based off the ec2 credentials form -+ tenant = forms.ChoiceField(label=_("Select a Project")) -+ @classmethod -+ def _instantiate(cls, request, *args, **kwargs): -+ return cls(request, *args, **kwargs) -+ -+ def __init__(self, request, *args, **kwargs): -+ super(DownloadJujuEnvironment, self).__init__(request, *args, **kwargs) -+ tenant_choices = [] -+ try: -+ tenant_list = api.keystone.tenant_list(request) -+ except: -+ tenant_list = [] -+ exceptions.handle(request, _("Unable to retrieve tenant list.")) -+ -+ for tenant in tenant_list: -+ if tenant.enabled: -+ tenant_choices.append((tenant.id, tenant.name)) -+ if not tenant_choices: -+ self.fields['tenant'].choices = ('', 'No Available Tenants') -+ else: -+ self.fields['tenant'].choices = tenant_choices -+ -+ def handle(self, request, data): -+ def find_or_create_access_keys(request, tenant_id): -+ keys = api.keystone.list_ec2_credentials(request, request.user.id) -+ if keys: -+ return keys[0] -+ else: -+ return api.keystone.create_ec2_credentials(request, -+ request.user.id, -+ tenant_id) -+ try: -+ api.keystone.token_create_scoped(request, -+ data.get('tenant'), -+ request.user.token.id) -+ keys = find_or_create_access_keys(request, data.get('tenant')) -+ tenant_id = data['tenant'] -+ tenant_name = dict(self.fields['tenant'].choices)[tenant_id] -+ control_bucket = "juju-openstack-%s-%s" % (tenant_name, str(uuid.uuid4())[19:]) -+ context = {'ec2_access_key': keys.access, -+ 'ec2_secret_key': keys.secret, -+ 'ec2_url': api.url_for(request, 'ec2'), -+ 's3_url': api.url_for(request, 's3'), -+ 'juju_admin_secret': uuid.uuid4().hex, -+ 'control_bucket': control_bucket -+ } -+ except Exception, e: -+ # This will fail if there is not an S3 endpoint configured in the -+ # service catalog. -+ msg = "Could not generate Juju environment config: %s" % e -+ messages.error(request, msg) -+ redirect = request.build_absolute_uri() -+ raise exceptions.Http302(redirect) -+ -+ response = shortcuts.render(request, -+ 'settings/juju/environments.yaml.template', -+ context, -+ content_type='text/plain') -+ response['Content-Disposition'] = 'attachment; filename=environments.yaml' -+ response['Content-Length'] = str(len(response.content)) -+ return response -Index: horizon-2012.2/horizon/dashboards/settings/juju/__init__.py -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/juju/__init__.py 2012-10-09 11:54:57.058004668 -0700 -@@ -0,0 +1 @@ -+# Horizon Juju settings panel -Index: horizon-2012.2/horizon/dashboards/settings/juju/panel.py -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/juju/panel.py 2012-10-09 11:54:57.058004668 -0700 -@@ -0,0 +1,28 @@ -+# vim: tabstop=4 shiftwidth=4 softtabstop=4 -+# Copyright 2012 Openstack, LLC -+# Copyright 2012 Canonical Ltd. -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); you may -+# not use this file except in compliance with the License. You may obtain -+# a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -+# License for the specific language governing permissions and limitations -+# under the License. -+ -+from django.utils.translation import ugettext_lazy as _ -+ -+import horizon -+from horizon.dashboards.settings import dashboard -+ -+ -+class JujuPanel(horizon.Panel): -+ name = _("Juju Environment Config") -+ slug = 'juju' -+ -+ -+dashboard.Settings.register(JujuPanel) -Index: horizon-2012.2/horizon/dashboards/settings/juju/urls.py -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/juju/urls.py 2012-10-09 11:54:57.058004668 -0700 -@@ -0,0 +1,24 @@ -+# vim: tabstop=4 shiftwidth=4 softtabstop=4 -+ -+# Copyright 2012 Openstack, LLC -+# Copyright 2012 Canonical Ltd. -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); you may -+# not use this file except in compliance with the License. You may obtain -+# a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -+# License for the specific language governing permissions and limitations -+# under the License. -+ -+from django.conf.urls.defaults import patterns, url -+ -+from .views import IndexView -+ -+urlpatterns = patterns('horizon.dashboards.settings.juju.views', -+ url(r'^$', IndexView.as_view(), name='index'), -+) -Index: horizon-2012.2/horizon/dashboards/settings/juju/views.py -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/juju/views.py 2012-10-09 11:57:05.949999981 -0700 -@@ -0,0 +1,35 @@ -+# vim: tabstop=4 shiftwidth=4 softtabstop=4 -+ -+# Copyright 2012 Openstack, LLC -+# -+# Licensed under the Apache License, Version 2.0 (the "License"); you may -+# not use this file except in compliance with the License. You may obtain -+# a copy of the License at -+# -+# http://www.apache.org/licenses/LICENSE-2.0 -+# -+# Unless required by applicable law or agreed to in writing, software -+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -+# License for the specific language governing permissions and limitations -+# under the License. -+ -+import logging -+ -+from django.core.urlresolvers import reverse_lazy -+ -+from horizon import forms -+from horizon.dashboards.settings.juju.forms import DownloadJujuEnvironment -+ -+ -+LOG = logging.getLogger(__name__) -+ -+ -+class IndexView(forms.ModalFormView): -+ form_class = DownloadJujuEnvironment -+ template_name = 'settings/juju/index.html' -+ success_url = reverse_lazy('horizon:settings:juju') -+ -+ def form_valid(self, form): -+ return form.handle(self.request, form.cleaned_data) -+ -Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/download_form.html -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/download_form.html 2012-10-09 11:54:57.058004668 -0700 -@@ -0,0 +1,20 @@ -+{% extends "horizon/common/_modal_form.html" %} -+{% load i18n %} -+ -+ -+{% block modal-body %} -+
-+
-+ {% include "horizon/common/_form_fields.html" %} -+
-+
-+
-+

{% trans "Description:" %}

-+

{% trans 'Clicking "Download Juju Environment Config" will download a file which includes a Juju environment configured for your cloud.


To find out more about Juju visit http://juju.ubuntu.com' %}

-+
-+{% endblock %} -+ -+{% block modal-footer %} -+ -+ {% if hide %}{% trans "Cancel" %}{% endif %} -+{% endblock %} -Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/environments.yaml.template -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/environments.yaml.template 2012-10-09 11:54:57.058004668 -0700 -@@ -0,0 +1,21 @@ -+# To use Juju with your Openstack cloud: -+# 1. Run: apt-get install juju -+# 2. Copy this file to $HOME/.juju/environments.yaml -+# 3. Modify the 'default-image-id' to match an Ubuntu cloud image -+# AMI that has been published to your cloud. -+# 4. Run 'juju bootstrap' and deploy services! -+# -+# To find out more about juju visit http://juju.ubuntu.com -+ -+juju: environments -+environments: -+ openstack: -+ type: ec2 -+ control-bucket: {{ control_bucket }} -+ admin-secret: {{ juju_admin_secret }} -+ access-key: {{ ec2_access_key }} -+ secret-key: {{ ec2_secret_key }} -+ ec2-uri: {{ ec2_url }} -+ s3-uri: {{ s3_url }} -+ default-series: precise -+ default-image-id: ami-00000001 -Index: horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/index.html -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ horizon-2012.2/horizon/dashboards/settings/templates/settings/juju/index.html 2012-10-09 11:54:57.058004668 -0700 -@@ -0,0 +1,11 @@ -+{% extends 'base.html' %} -+{% load i18n %} -+{% block title %}{% trans "Download Juju Environment Config" %}{% endblock %} -+ -+{% block page_header %} -+ {% include "horizon/common/_page_header.html" with title=_("Download Juju Environment Config") %} -+{% endblock page_header %} -+ -+{% block main %} -+ {% include "settings/juju/download_form.html" %} -+{% endblock %} diff --git a/debian/patches/fix-dashboard-django-wsgi.patch b/debian/patches/fix-dashboard-django-wsgi.patch deleted file mode 100644 index 3c629ab..0000000 --- a/debian/patches/fix-dashboard-django-wsgi.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naurp horizon-2014.2.b2.orig/openstack_dashboard/wsgi/django.wsgi horizon-2014.2.b2/openstack_dashboard/wsgi/django.wsgi ---- horizon-2014.2.b2.orig/openstack_dashboard/wsgi/django.wsgi 2014-07-23 15:25:01.000000000 -0400 -+++ horizon-2014.2.b2/openstack_dashboard/wsgi/django.wsgi 2014-07-25 11:19:00.825608706 -0400 -@@ -9,6 +9,8 @@ sys.path.insert(0, os.path.join(os.path. - os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' - sys.stdout = sys.stderr - -+sys.path.append("/usr/share/openstack-dashboard/") -+ - DEBUG = False - - application = get_wsgi_application() diff --git a/debian/patches/fix-ubuntu-tests.patch b/debian/patches/fix-ubuntu-tests.patch deleted file mode 100644 index 585ff02..0000000 --- a/debian/patches/fix-ubuntu-tests.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- a/run_tests.sh -+++ b/run_tests.sh -@@ -298,25 +298,25 @@ function run_tests_all { - if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then - export NOSE_HTML_OUT_FILE='horizon_nose_results.html' - fi -- ${command_wrapper} coverage erase -- ${command_wrapper} coverage run -p $root/manage.py test horizon --settings=horizon.test.settings $testopts -+ ${command_wrapper} python-coverage erase -+ ${command_wrapper} python-coverage run -p $root/manage.py test horizon --settings=horizon.test.settings $testopts - # get results of the Horizon tests - HORIZON_RESULT=$? - -- echo "Running openstack_dashboard tests" -- export NOSE_XUNIT_FILE=openstack_dashboard/nosetests.xml -- if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then -- export NOSE_HTML_OUT_FILE='dashboard_nose_results.html' -- fi -- ${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings $testopts -+ #echo "Running openstack_dashboard tests" -+ #export NOSE_XUNIT_FILE=openstack_dashboard/nosetests.xml -+ #if [ "$NOSE_WITH_HTML_OUTPUT" = '1' ]; then -+ # export NOSE_HTML_OUT_FILE='dashboard_nose_results.html' -+ #fi -+ #${command_wrapper} coverage run -p $root/manage.py test openstack_dashboard --settings=openstack_dashboard.test.settings $testopts - # get results of the openstack_dashboard tests -- DASHBOARD_RESULT=$? -+ #DASHBOARD_RESULT=$? - - if [ $with_coverage -eq 1 ]; then - echo "Generating coverage reports" -- ${command_wrapper} coverage combine -- ${command_wrapper} coverage xml -i --omit='/usr*,setup.py,*egg*,.venv/*' -- ${command_wrapper} coverage html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports -+ ${command_wrapper} python-coverage combine -+ ${command_wrapper} python-coverage xml -i --omit='/usr*,setup.py,*egg*,.venv/*' -+ ${command_wrapper} python-coverage html -i --omit='/usr*,setup.py,*egg*,.venv/*' -d reports - fi - # Remove the leftover coverage files from the -p flag earlier. - rm -f .coverage.* diff --git a/debian/patches/series b/debian/patches/series deleted file mode 100644 index 42b36b8..0000000 --- a/debian/patches/series +++ /dev/null @@ -1,8 +0,0 @@ -fix-dashboard-django-wsgi.patch -fix-dashboard-manage.patch - -# Disabled during Grizzly dev. cycle -#add_juju_settings_panel.patch - -#fix-ubuntu-tests.patch -ubuntu_settings.patch diff --git a/debian/patches/ubuntu_settings.patch b/debian/patches/ubuntu_settings.patch deleted file mode 100644 index 7095f4a..0000000 --- a/debian/patches/ubuntu_settings.patch +++ /dev/null @@ -1,54 +0,0 @@ -diff -Naurp horizon-2014.2.b2.orig/openstack_dashboard/local/local_settings.py.example horizon-2014.2.b2/openstack_dashboard/local/local_settings.py.example ---- horizon-2014.2.b2.orig/openstack_dashboard/local/local_settings.py.example 2014-07-23 15:25:01.000000000 -0400 -+++ horizon-2014.2.b2/openstack_dashboard/local/local_settings.py.example 2014-07-25 11:22:46.361608816 -0400 -@@ -4,7 +4,7 @@ from django.utils.translation import uge - - from openstack_dashboard import exceptions - --DEBUG = True -+DEBUG = False - TEMPLATE_DEBUG = DEBUG - - # Required for Django 1.5. -@@ -100,19 +100,19 @@ SECRET_KEY = secret_key.generate_or_read - # We recommend you use memcached for development; otherwise after every reload - # of the django development server, you will have to login again. To use - # memcached set CACHES to something like --# CACHES = { -+CACHES = { -+ 'default': { -+ 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -+ 'LOCATION': '127.0.0.1:11211', -+ } -+} -+ -+#CACHES = { - # 'default': { --# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', --# 'LOCATION': '127.0.0.1:11211', -+# 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache' - # } - #} - --CACHES = { -- 'default': { -- 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache' -- } --} -- - # Send email to the console by default - EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' - # Or send them to /dev/null -diff -Naurp horizon-2014.2.b2.orig/openstack_dashboard/settings.py horizon-2014.2.b2/openstack_dashboard/settings.py ---- horizon-2014.2.b2.orig/openstack_dashboard/settings.py 2014-07-23 15:25:01.000000000 -0400 -+++ horizon-2014.2.b2/openstack_dashboard/settings.py 2014-07-25 11:23:50.129608847 -0400 -@@ -272,8 +272,7 @@ if not SECRET_KEY: - 'local') - - from horizon.utils import secret_key -- SECRET_KEY = secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH, -- '.secret_key_store')) -+ SECRET_KEY = secret_key.generate_or_read_from_file('/var/lib/openstack-dashboard/secret_key') - - from openstack_dashboard import policy_backend - POLICY_CHECK_FUNCTION = policy_backend.check diff --git a/debian/pydist-overrides b/debian/pydist-overrides deleted file mode 100644 index f8c9076..0000000 --- a/debian/pydist-overrides +++ /dev/null @@ -1,2 +0,0 @@ -python_quantumclient -django_nose_selenium diff --git a/debian/source/include-binaries b/debian/source/include-binaries deleted file mode 100755 index 4343feb..0000000 --- a/debian/source/include-binaries +++ /dev/null @@ -1,5 +0,0 @@ -debian/theme/img/dots.png -debian/theme/img/favicon-ubuntu.ico -debian/theme/img/header_stripes.png -debian/theme/img/juju.png -debian/theme/img/ubuntu.png diff --git a/debian/theme/css/ubuntu.css b/debian/theme/css/ubuntu.css deleted file mode 100644 index 33ef88d..0000000 --- a/debian/theme/css/ubuntu.css +++ /dev/null @@ -1,6772 +0,0 @@ -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block; -} -audio, canvas, video { - display: inline-block; - *display: inline; - *zoom: 1; -} -audio:not([controls]) { - display: none; -} -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; -} -a:focus { - outline: thin dotted #333333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -a:hover, a:active { - outline: 0; -} -sub, sup { - position: relative; - font-size: 75%; - line-height: 0; - vertical-align: baseline; -} -sup { - top: -0.5em; -} -sub { - bottom: -0.25em; -} -img { - max-width: 100%; - height: auto; - border: 0; - -ms-interpolation-mode: bicubic; -} -button, input, select, textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; -} -button, input { - *overflow: visible; - line-height: normal; -} -button::-moz-focus-inner, input::-moz-focus-inner { - padding: 0; - border: 0; -} -button, input[type="button"], input[type="reset"], input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; -} -input[type="search"] { - -webkit-appearance: textfield; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; -} -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; -} -textarea { - overflow: auto; - vertical-align: top; -} -.clearfix { - *zoom: 1; -} -.clearfix:before, .clearfix:after { - display: table; - content: ""; -} -.clearfix:after { - clear: both; -} -body { - background: #fff url(../img/dots.png); - margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - line-height: 18px; - color: #333333; - background-color: #ffffff; -} -a { - color: #dd4814; - text-decoration: none; -} -a:hover { - color: #005580; - text-decoration: underline; -} -.row { - margin-left: -20px; - *zoom: 1; -} -.row:before, .row:after { - display: table; - content: ""; -} -.row:after { - clear: both; -} -[class*="span"] { - float: left; - margin-left: 20px; -} -.span1 { - width: 60px; -} -.span2 { - width: 140px; -} -.span3 { - width: 220px; -} -.span4 { - width: 300px; -} -.span5 { - width: 380px; -} -.span6 { - width: 460px; -} -.span7 { - width: 540px; -} -.span8 { - width: 620px; -} -.span9 { - width: 700px; -} -.span10 { - width: 780px; -} -.span11 { - width: 860px; -} -.span12, .container { - width: 940px; -} -.offset1 { - margin-left: 100px; -} -.offset2 { - margin-left: 180px; -} -.offset3 { - margin-left: 260px; -} -.offset4 { - margin-left: 340px; -} -.offset5 { - margin-left: 420px; -} -.offset6 { - margin-left: 500px; -} -.offset7 { - margin-left: 580px; -} -.offset8 { - margin-left: 660px; -} -.offset9 { - margin-left: 740px; -} -.offset10 { - margin-left: 820px; -} -.offset11 { - margin-left: 900px; -} -.row-fluid { - width: 100%; - *zoom: 1; -} -.row-fluid:before, .row-fluid:after { - display: table; - content: ""; -} -.row-fluid:after { - clear: both; -} -.row-fluid > [class*="span"] { - float: left; - margin-left: 2.127659574%; -} -.row-fluid > [class*="span"]:first-child { - margin-left: 0; -} -.row-fluid > .span1 { - width: 6.382978723%; -} -.row-fluid > .span2 { - width: 14.89361702%; -} -.row-fluid > .span3 { - width: 23.404255317%; -} -.row-fluid > .span4 { - width: 31.914893614%; -} -.row-fluid > .span5 { - width: 40.425531911%; -} -.row-fluid > .span6 { - width: 48.936170208%; -} -.row-fluid > .span7 { - width: 57.446808505%; -} -.row-fluid > .span8 { - width: 65.957446802%; -} -.row-fluid > .span9 { - width: 74.468085099%; -} -.row-fluid > .span10 { - width: 82.978723396%; -} -.row-fluid > .span11 { - width: 91.489361693%; -} -.row-fluid > .span12 { - width: 99.99999999%; -} -.container { - width: 940px; - margin-left: auto; - margin-right: auto; - *zoom: 1; -} -.container:before, .container:after { - display: table; - content: ""; -} -.container:after { - clear: both; -} -.container-fluid { - padding-left: 20px; - padding-right: 20px; - *zoom: 1; -} -.container-fluid:before, .container-fluid:after { - display: table; - content: ""; -} -.container-fluid:after { - clear: both; -} -p { - margin: 0 0 9px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - line-height: 18px; -} -p small { - font-size: 11px; - color: #999999; -} -.lead { - margin-bottom: 18px; - font-size: 20px; - font-weight: 200; - line-height: 27px; -} -h1, h2, h3, h4, h5, h6 { - margin: 0; - font-weight: bold; - color: #333333; - text-rendering: optimizelegibility; -} -h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { - font-weight: normal; - color: #999999; -} -h1 { - font-size: 30px; - line-height: 36px; -} -h1 small { - font-size: 18px; -} -h2 { - font-size: 24px; - line-height: 36px; -} -h2 small { - font-size: 18px; -} -h3 { - line-height: 27px; - font-size: 18px; -} -h3 small { - font-size: 14px; -} -h4, h5, h6 { - line-height: 18px; -} -h4 { - font-size: 14px; -} -h4 small { - font-size: 12px; -} -h5 { - font-size: 12px; -} -h6 { - font-size: 11px; - color: #999999; - text-transform: uppercase; -} -.page-header { - padding-bottom: 17px; - margin: 18px 0; - border-bottom: 1px solid #eeeeee; -} -.page-header h1 { - line-height: 1; -} -ul, ol { - padding: 0; - margin: 0 0 9px 25px; -} -ul ul, ul ol, ol ol, ol ul { - margin-bottom: 0; -} -ul { - list-style: disc; -} -ol { - list-style: decimal; -} -li { - line-height: 18px; -} -ul.unstyled, ol.unstyled { - margin-left: 0; - list-style: none; -} -table ul { - margin: 0; - list-style-type: none; -} -dl { - margin-bottom: 18px; -} -dt, dd { - line-height: 18px; -} -dt { - font-weight: bold; -} -dd { - margin-left: 9px; -} -hr { - margin: 18px 0; - border: 0; - border-top: 1px solid #eeeeee; - border-bottom: 1px solid #ffffff; -} -strong { - font-weight: bold; -} -em { - font-style: italic; -} -.muted { - color: #999999; -} -abbr { - font-size: 90%; - text-transform: uppercase; - border-bottom: 1px dotted #dddddd; - cursor: help; -} -blockquote { - padding: 0 0 0 15px; - margin: 0 0 18px; - border-left: 5px solid #eeeeee; -} -blockquote p { - margin-bottom: 0; - font-size: 16px; - font-weight: 300; - line-height: 22.5px; -} -blockquote small { - display: block; - line-height: 18px; - color: #999999; -} -blockquote small:before { - content: '\2014 \00A0'; -} -blockquote.pull-right { - float: right; - padding-left: 0; - padding-right: 15px; - border-left: 0; - border-right: 5px solid #eeeeee; -} -blockquote.pull-right p, blockquote.pull-right small { - text-align: right; -} -q:before, q:after, blockquote:before, blockquote:after { - content: ""; -} -address { - display: block; - margin-bottom: 18px; - line-height: 18px; - font-style: normal; -} -small { - font-size: 100%; -} -cite { - font-style: normal; -} -code, pre { - padding: 0 3px 2px; - font-family: Menlo, Monaco, "Courier New", monospace; - font-size: 12px; - color: #333333; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -code { - padding: 3px 4px; - color: #dd1144; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} -pre { - display: block; - padding: 8.5px; - margin: 0 0 9px; - font-size: 12px; - line-height: 18px; - background-color: #f5f5f5; - border: 1px solid #cccccc; - border: 1px solid rgba(0,0,0,.15); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - white-space: pre; - white-space: pre-wrap; - word-break: break-all; - word-wrap: break-word; -} -pre.prettyprint { - margin-bottom: 18px; -} -pre code { - padding: 0; - color: inherit; - background-color: transparent; - border: 0; -} -.pre-scrollable { - max-height: 340px; - overflow-y: scroll; -} -form { - margin: 0 0 18px; -} -fieldset { - padding: 0; - margin: 0; - border: 0; -} -legend { - display: block; - width: 100%; - padding: 0; - margin-bottom: 27px; - font-size: 19.5px; - line-height: 36px; - color: #333333; - border: 0; - border-bottom: 1px solid #eeeeee; -} -legend small { - font-size: 13.5px; - color: #999999; -} -label, input, button, select, textarea { - font-size: 13px; - font-weight: normal; - line-height: 18px; -} -input, button, select, textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} -label { - display: block; - margin-bottom: 5px; - color: #333333; -} -input, textarea, select, .uneditable-input { - display: inline-block; - width: 210px; - height: 18px; - padding: 4px; - margin-bottom: 9px; - font-size: 13px; - line-height: 18px; - color: #555555; - border: 1px solid #cccccc; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.uneditable-textarea { - width: auto; - height: auto; -} -label input, label textarea, label select { - display: block; -} -input[type="image"], input[type="checkbox"], input[type="radio"] { - width: auto; - height: auto; - padding: 0; - margin: 3px 0; - *margin-top: 0; - line-height: normal; - cursor: pointer; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - border: 0 \9; -} -input[type="image"] { - border: 0; -} -input[type="file"] { - width: auto; - padding: initial; - line-height: initial; - border: initial; - background-color: #ffffff; - background-color: initial; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -input[type="button"], input[type="reset"], input[type="submit"] { - width: auto; - height: auto; -} -select, input[type="file"] { - height: 28px; - *margin-top: 4px; - line-height: 28px; -} -input[type="file"] { - line-height: 18px \9; -} -select { - width: 220px; - background-color: #ffffff; -} -select[multiple], select[size] { - height: auto; -} -input[type="image"] { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -textarea { - height: auto; -} -input[type="hidden"] { - display: none; -} -.radio, .checkbox { - padding-left: 18px; -} -.radio input[type="radio"], .checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; -} -.controls > .radio:first-child, .controls > .checkbox:first-child { - padding-top: 5px; -} -.radio.inline, .checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} -.radio.inline + .radio.inline, .checkbox.inline + .checkbox.inline { - margin-left: 10px; -} -input, textarea { - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075); - -webkit-transition: border linear .2s, box-shadow linear .2s; - -moz-transition: border linear .2s, box-shadow linear .2s; - -ms-transition: border linear .2s, box-shadow linear .2s; - -o-transition: border linear .2s, box-shadow linear .2s; - transition: border linear .2s, box-shadow linear .2s; -} -input:focus, textarea:focus { - border-color: rgba(82,168,236,.8); - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); - outline: 0; - outline: thin dotted \9; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus, -select:focus { - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - outline: thin dotted #333333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.input-mini { - width: 60px; -} -.input-small { - width: 90px; -} -.input-medium { - width: 150px; -} -.input-large { - width: 210px; -} -.input-xlarge { - width: 270px; -} -.input-xxlarge { - width: 530px; -} -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input { - float: none; - margin-left: 0; -} -input.span1, textarea.span1, .uneditable-input.span1 { - width: 50px; -} -input.span2, textarea.span2, .uneditable-input.span2 { - width: 130px; -} -input.span3, textarea.span3, .uneditable-input.span3 { - width: 210px; -} -input.span4, textarea.span4, .uneditable-input.span4 { - width: 290px; -} -input.span5, textarea.span5, .uneditable-input.span5 { - width: 370px; -} -input.span6, textarea.span6, .uneditable-input.span6 { - width: 450px; -} -input.span7, textarea.span7, .uneditable-input.span7 { - width: 530px; -} -input.span8, textarea.span8, .uneditable-input.span8 { - width: 610px; -} -input.span9, textarea.span9, .uneditable-input.span9 { - width: 690px; -} -input.span10, textarea.span10, .uneditable-input.span10 { - width: 770px; -} -input.span11, textarea.span11, .uneditable-input.span11 { - width: 850px; -} -input.span12, textarea.span12, .uneditable-input.span12 { - width: 930px; -} -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - background-color: #f5f5f5; - border-color: #dddddd; - cursor: not-allowed; -} -.control-group.warning > label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #333333; -} -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #333333; - border-color: #c09853; -} -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: 0 0 6px #dbc59e; - -moz-box-shadow: 0 0 6px #dbc59e; - box-shadow: 0 0 6px #dbc59e; -} -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #333333; - background-color: #fcf8e3; - border-color: #333333; -} -.control-group.error > label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #333333; -} -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #333333; - border-color: #b94a48; -} -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: 0 0 6px #d59392; - -moz-box-shadow: 0 0 6px #d59392; - box-shadow: 0 0 6px #d59392; -} -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #333333; - background-color: #f2dede; - border-color: #333333; -} -.control-group.success > label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #333333; -} -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #333333; - border-color: #468847; -} -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: 0 0 6px #7aba7b; - -moz-box-shadow: 0 0 6px #7aba7b; - box-shadow: 0 0 6px #7aba7b; -} -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #333333; - background-color: #dff0d8; - border-color: #333333; -} -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { - color: #b94a48; - border-color: #ee5f5b; -} -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} -.form-actions { - padding: 17px 20px 18px; - margin-top: 18px; - margin-bottom: 18px; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; -} -.uneditable-input { - display: block; - background-color: #ffffff; - border-color: #eeeeee; - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.025); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.025); - box-shadow: inset 0 1px 2px rgba(0,0,0,.025); - cursor: not-allowed; -} -:-moz-placeholder { - color: #999999; -} -::-webkit-input-placeholder { - color: #999999; -} -.help-block { - display: block; - margin-top: 5px; - margin-bottom: 0; - color: #999999; -} -.help-inline { - display: inline-block; - *display: inline; - *zoom: 1; - margin-bottom: 9px; - vertical-align: middle; - padding-left: 5px; -} -.input-prepend, .input-append { - margin-bottom: 5px; - *zoom: 1; -} -.input-prepend:before, -.input-prepend:after, -.input-append:before, -.input-append:after { - display: table; - content: ""; -} -.input-prepend:after, .input-append:after { - clear: both; -} -.input-prepend input, -.input-prepend .uneditable-input, -.input-append input, -.input-append .uneditable-input { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-prepend input:focus, -.input-prepend .uneditable-input:focus, -.input-append input:focus, -.input-append .uneditable-input:focus { - position: relative; - z-index: 2; -} -.input-prepend .uneditable-input, .input-append .uneditable-input { - border-left-color: #cccccc; -} -.input-prepend .add-on, .input-append .add-on { - float: left; - display: block; - width: auto; - min-width: 16px; - height: 18px; - margin-right: -1px; - padding: 4px 5px; - font-weight: normal; - line-height: 18px; - color: #999999; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - background-color: #f5f5f5; - border: 1px solid #cccccc; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-prepend .active, .input-append .active { - background-color: #a9dba9; - border-color: #46a546; -} -.input-prepend .add-on { - *margin-top: 1px; -} -.input-append input, .input-append .uneditable-input { - float: left; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-append .uneditable-input { - border-left-color: #eeeeee; - border-right-color: #cccccc; -} -.input-append .add-on { - margin-right: 0; - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-append input:first-child { - *margin-left: -160px; -} -.input-append input:first-child + .add-on { - *margin-left: -21px; -} -.search-query { - padding-left: 14px; - padding-right: 14px; - margin-bottom: 0; - -webkit-border-radius: 14px; - -moz-border-radius: 14px; - border-radius: 14px; -} -.form-search input, -.form-search textarea, -.form-search select, -.form-search .help-inline, -.form-search .uneditable-input, -.form-inline input, -.form-inline textarea, -.form-inline select, -.form-inline .help-inline, -.form-inline .uneditable-input, -.form-horizontal input, -.form-horizontal textarea, -.form-horizontal select, -.form-horizontal .help-inline, -.form-horizontal .uneditable-input { - display: inline-block; - margin-bottom: 0; -} -.form-search .hide, .form-inline .hide, .form-horizontal .hide { - display: none; -} -.form-search label, -.form-inline label, -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - display: inline-block; -} -.form-search .input-append .add-on, -.form-inline .input-prepend .add-on, -.form-search .input-append .add-on, -.form-inline .input-prepend .add-on { - vertical-align: middle; -} -.form-search .radio, -.form-inline .radio, -.form-search .checkbox, -.form-inline .checkbox { - margin-bottom: 0; - vertical-align: middle; -} -.control-group { - margin-bottom: 9px; -} -legend + .control-group { - margin-top: 18px; - -webkit-margin-top-collapse: separate; -} -.form-horizontal .control-group { - margin-bottom: 18px; - *zoom: 1; -} -.form-horizontal .control-group:before, .form-horizontal .control-group:after { - display: table; - content: ""; -} -.form-horizontal .control-group:after { - clear: both; -} -.form-horizontal .control-label { - float: left; - width: 140px; - padding-top: 5px; - text-align: right; -} -.form-horizontal .controls { - margin-left: 160px; -} -.form-horizontal .form-actions { - padding-left: 160px; -} -table { - max-width: 100%; - border-collapse: collapse; - border-spacing: 0; -} -.table { - width: 100%; - margin-bottom: 18px; -} -.table th, .table td { - padding: 8px; - line-height: 18px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} -.table th { - font-weight: bold; -} -.table thead th { - vertical-align: bottom; -} -.table thead:first-child tr th, .table thead:first-child tr td { - border-top: 0; -} -.table tbody + tbody { - border-top: 2px solid #dddddd; -} -.table-condensed th, .table-condensed td { - padding: 4px 5px; -} -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapsed; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.table-bordered th + th, -.table-bordered td + td, -.table-bordered th + td, -.table-bordered td + th { - border-left: 1px solid #dddddd; -} -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; - border-radius: 4px 0 0 0; -} -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-radius: 0 4px 0 0; - -moz-border-radius: 0 4px 0 0; - border-radius: 0 4px 0 0; -} -.table-bordered thead:last-child tr:last-child th:first-child, -.table-bordered tbody:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; -} -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child { - -webkit-border-radius: 0 0 4px 0; - -moz-border-radius: 0 0 4px 0; - border-radius: 0 0 4px 0; -} -.table-striped tbody tr:nth-child(odd)td, .table-striped tbody tr:nth-child(odd)th { - background-color: #f9f9f9; -} -.table tbody tr:hover td, .table tbody tr:hover th { - background-color: #f5f5f5; -} -table .span1 { - float: none; - width: 44px; - margin-left: 0; -} -table .span2 { - float: none; - width: 124px; - margin-left: 0; -} -table .span3 { - float: none; - width: 204px; - margin-left: 0; -} -table .span4 { - float: none; - width: 284px; - margin-left: 0; -} -table .span5 { - float: none; - width: 364px; - margin-left: 0; -} -table .span6 { - float: none; - width: 444px; - margin-left: 0; -} -table .span7 { - float: none; - width: 524px; - margin-left: 0; -} -table .span8 { - float: none; - width: 604px; - margin-left: 0; -} -table .span9 { - float: none; - width: 684px; - margin-left: 0; -} -table .span10 { - float: none; - width: 764px; - margin-left: 0; -} -table .span11 { - float: none; - width: 844px; - margin-left: 0; -} -table .span12 { - float: none; - width: 924px; - margin-left: 0; -} -[class^="icon-"], [class*=" icon-"] { - display: inline-block; - width: 14px; - height: 14px; - line-height: 14px; - vertical-align: text-top; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: 14px 14px; - background-repeat: no-repeat; - *margin-right: .3em; -} -[class^="icon-"]:last-child, [class*=" icon-"]:last-child { - *margin-left: 0; -} -.icon-white { - background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png'); -} -.icon-glass { - background-position: 0 0; -} -.icon-music { - background-position: -24px 0; -} -.icon-search { - background-position: -48px 0; -} -.icon-envelope { - background-position: -72px 0; -} -.icon-heart { - background-position: -96px 0; -} -.icon-star { - background-position: -120px 0; -} -.icon-star-empty { - background-position: -144px 0; -} -.icon-user { - background-position: -168px 0; -} -.icon-film { - background-position: -192px 0; -} -.icon-th-large { - background-position: -216px 0; -} -.icon-th { - background-position: -240px 0; -} -.icon-th-list { - background-position: -264px 0; -} -.icon-ok { - background-position: -288px 0; -} -.icon-remove { - background-position: -312px 0; -} -.icon-zoom-in { - background-position: -336px 0; -} -.icon-zoom-out { - background-position: -360px 0; -} -.icon-off { - background-position: -384px 0; -} -.icon-signal { - background-position: -408px 0; -} -.icon-cog { - background-position: -432px 0; -} -.icon-trash { - background-position: -456px 0; -} -.icon-home { - background-position: 0 -24px; -} -.icon-file { - background-position: -24px -24px; -} -.icon-time { - background-position: -48px -24px; -} -.icon-road { - background-position: -72px -24px; -} -.icon-download-alt { - background-position: -96px -24px; -} -.icon-download { - background-position: -120px -24px; -} -.icon-upload { - background-position: -144px -24px; -} -.icon-inbox { - background-position: -168px -24px; -} -.icon-play-circle { - background-position: -192px -24px; -} -.icon-repeat { - background-position: -216px -24px; -} -.icon-refresh { - background-position: -240px -24px; -} -.icon-list-alt { - background-position: -264px -24px; -} -.icon-lock { - background-position: -287px -24px; -} -.icon-flag { - background-position: -312px -24px; -} -.icon-headphones { - background-position: -336px -24px; -} -.icon-volume-off { - background-position: -360px -24px; -} -.icon-volume-down { - background-position: -384px -24px; -} -.icon-volume-up { - background-position: -408px -24px; -} -.icon-qrcode { - background-position: -432px -24px; -} -.icon-barcode { - background-position: -456px -24px; -} -.icon-tag { - background-position: 0 -48px; -} -.icon-tags { - background-position: -25px -48px; -} -.icon-book { - background-position: -48px -48px; -} -.icon-bookmark { - background-position: -72px -48px; -} -.icon-print { - background-position: -96px -48px; -} -.icon-camera { - background-position: -120px -48px; -} -.icon-font { - background-position: -144px -48px; -} -.icon-bold { - background-position: -167px -48px; -} -.icon-italic { - background-position: -192px -48px; -} -.icon-text-height { - background-position: -216px -48px; -} -.icon-text-width { - background-position: -240px -48px; -} -.icon-align-left { - background-position: -264px -48px; -} -.icon-align-center { - background-position: -288px -48px; -} -.icon-align-right { - background-position: -312px -48px; -} -.icon-align-justify { - background-position: -336px -48px; -} -.icon-list { - background-position: -360px -48px; -} -.icon-indent-left { - background-position: -384px -48px; -} -.icon-indent-right { - background-position: -408px -48px; -} -.icon-facetime-video { - background-position: -432px -48px; -} -.icon-picture { - background-position: -456px -48px; -} -.icon-pencil { - background-position: 0 -72px; -} -.icon-map-marker { - background-position: -24px -72px; -} -.icon-adjust { - background-position: -48px -72px; -} -.icon-tint { - background-position: -72px -72px; -} -.icon-edit { - background-position: -96px -72px; -} -.icon-share { - background-position: -120px -72px; -} -.icon-check { - background-position: -144px -72px; -} -.icon-move { - background-position: -168px -72px; -} -.icon-step-backward { - background-position: -192px -72px; -} -.icon-fast-backward { - background-position: -216px -72px; -} -.icon-backward { - background-position: -240px -72px; -} -.icon-play { - background-position: -264px -72px; -} -.icon-pause { - background-position: -288px -72px; -} -.icon-stop { - background-position: -312px -72px; -} -.icon-forward { - background-position: -336px -72px; -} -.icon-fast-forward { - background-position: -360px -72px; -} -.icon-step-forward { - background-position: -384px -72px; -} -.icon-eject { - background-position: -408px -72px; -} -.icon-chevron-left { - background-position: -432px -72px; -} -.icon-chevron-right { - background-position: -456px -72px; -} -.icon-plus-sign { - background-position: 0 -96px; -} -.icon-minus-sign { - background-position: -24px -96px; -} -.icon-remove-sign { - background-position: -48px -96px; -} -.icon-ok-sign { - background-position: -72px -96px; -} -.icon-question-sign { - background-position: -96px -96px; -} -.icon-info-sign { - background-position: -120px -96px; -} -.icon-screenshot { - background-position: -144px -96px; -} -.icon-remove-circle { - background-position: -168px -96px; -} -.icon-ok-circle { - background-position: -192px -96px; -} -.icon-ban-circle { - background-position: -216px -96px; -} -.icon-arrow-left { - background-position: -240px -96px; -} -.icon-arrow-right { - background-position: -264px -96px; -} -.icon-arrow-up { - background-position: -289px -96px; -} -.icon-arrow-down { - background-position: -312px -96px; -} -.icon-share-alt { - background-position: -336px -96px; -} -.icon-resize-full { - background-position: -360px -96px; -} -.icon-resize-small { - background-position: -384px -96px; -} -.icon-plus { - background-position: -408px -96px; -} -.icon-minus { - background-position: -433px -96px; -} -.icon-asterisk { - background-position: -456px -96px; -} -.icon-exclamation-sign { - background-position: 0 -120px; -} -.icon-gift { - background-position: -24px -120px; -} -.icon-leaf { - background-position: -48px -120px; -} -.icon-fire { - background-position: -72px -120px; -} -.icon-eye-open { - background-position: -96px -120px; -} -.icon-eye-close { - background-position: -120px -120px; -} -.icon-warning-sign { - background-position: -144px -120px; -} -.icon-plane { - background-position: -168px -120px; -} -.icon-calendar { - background-position: -192px -120px; -} -.icon-random { - background-position: -216px -120px; -} -.icon-comment { - background-position: -240px -120px; -} -.icon-magnet { - background-position: -264px -120px; -} -.icon-chevron-up { - background-position: -288px -120px; -} -.icon-chevron-down { - background-position: -313px -119px; -} -.icon-retweet { - background-position: -336px -120px; -} -.icon-shopping-cart { - background-position: -360px -120px; -} -.icon-folder-close { - background-position: -384px -120px; -} -.icon-folder-open { - background-position: -408px -120px; -} -.icon-resize-vertical { - background-position: -432px -119px; -} -.icon-resize-horizontal { - background-position: -456px -118px; -} -.dropdown { - position: relative; -} -.dropdown-toggle { - *margin-bottom: -3px; -} -.dropdown-toggle:active, .open .dropdown-toggle { - outline: 0; -} -.caret { - display: inline-block; - width: 0; - height: 0; - text-indent: -99999px; - *text-indent: 0; - vertical-align: top; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #000000; - opacity: 0.3; - filter: alpha(opacity=30); - content: "\2193"; -} -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} -.dropdown:hover .caret, .open.dropdown .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - float: left; - display: none; - min-width: 160px; - _width: 160px; - padding: 4px 0; - margin: 0; - list-style: none; - background-color: #ffffff; - border-color: #cccccc; - border-color: rgba(0,0,0,.2); - border-style: solid; - border-width: 1px; - -webkit-border-radius: 0 0 5px 5px; - -moz-border-radius: 0 0 5px 5px; - border-radius: 0 0 5px 5px; - -webkit-box-shadow: 0 5px 10px rgba(0,0,0,.2); - -moz-box-shadow: 0 5px 10px rgba(0,0,0,.2); - box-shadow: 0 5px 10px rgba(0,0,0,.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; - *border-right-width: 2px; - *border-bottom-width: 2px; -} -.dropdown-menu.bottom-up { - top: auto; - bottom: 100%; - margin-bottom: 2px; -} -.dropdown-menu .divider { - height: 1px; - margin: 5px 1px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; - *width: 100%; - *margin: -5px 0 5px; -} -.dropdown-menu a { - display: block; - padding: 3px 15px; - clear: both; - font-weight: normal; - line-height: 18px; - color: #555555; - word-wrap: break-word; -} -.dropdown-menu li > a:hover, -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #dd4814; -} -.dropdown.open { - *z-index: 1000; -} -.dropdown.open .dropdown-toggle { - color: #ffffff; - background: #cccccc; - background: rgba(0,0,0,.3); -} -.dropdown.open .dropdown-menu { - display: block; -} -.typeahead { - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #eeeeee; - border: 1px solid rgba(0,0,0,.05); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.05); - box-shadow: inset 0 1px 1px rgba(0,0,0,.05); -} -.well blockquote { - border-color: #dddddd; - border-color: rgba(0,0,0,.15); -} -.fade { - -webkit-transition: opacity .15s linear; - -moz-transition: opacity .15s linear; - -ms-transition: opacity .15s linear; - -o-transition: opacity .15s linear; - transition: opacity .15s linear; - opacity: 0; -} -.fade.in { - opacity: 1; -} -.collapse { - -webkit-transition: height .35s ease; - -moz-transition: height .35s ease; - -ms-transition: height .35s ease; - -o-transition: height .35s ease; - transition: height .35s ease; - position: relative; - overflow: hidden; - height: 0; -} -.collapse.in { - height: auto; -} -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 18px; - color: #000000; - text-shadow: 0 1px 0 #ffffff01; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover { - color: #000000; - text-decoration: none; - opacity: 0.4; - filter: alpha(opacity=40); - cursor: pointer; -} -.btn { - display: inline-block; - padding: 4px 10px 4px; - margin-bottom: 0; - font-size: 13px; - line-height: 18px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255,255,255,.75); - vertical-align: middle; - background-color: #f5f5f5; - background-image: -moz-linear-gradient(top,#ffffff,#e6e6e6 ); - background-image: -ms-linear-gradient(top,#ffffff,#e6e6e6 ); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#e6e6e6 )); - background-image: -webkit-linear-gradient(top,#ffffff,#e6e6e6 ); - background-image: -o-linear-gradient(top,#ffffff,#e6e6e6 ); - background-image: linear-gradient(top,#ffffff,#e6e6e6 ); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6 ', GradientType=0); - border-color: #e6e6e6 #e6e6e6 #c0c0c0; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - border: 1px solid #cccccc; - border-bottom-color: #bbbbbb; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - cursor: pointer; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - *margin-left: .3em; -} -.btn:hover, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { - background-color: #e6e6e6; -} -.btn:active, .btn.active { - background-color: #cdcdcd \9; -} -.btn:first-child { - *margin-left: 0; -} -.btn:hover { - color: #333333; - text-decoration: none; - background-color: #e6e6e6; - background-position: 0 -15px; - -webkit-transition: background-position .1s linear; - -moz-transition: background-position .1s linear; - -ms-transition: background-position .1s linear; - -o-transition: background-position .1s linear; - transition: background-position .1s linear; -} -.btn:focus { - outline: thin dotted #333333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn.active, .btn:active { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - outline: 0; -} -.btn.disabled, .btn[disabled] { - cursor: default; - background-image: none; - background-color: #e6e6e6; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.btn-large { - padding: 9px 14px; - font-size: 15px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.btn-large [class^="icon-"] { - margin-top: 1px; -} -.btn-small { - padding: 5px 9px; - font-size: 11px; - line-height: 16px; -} -.btn-small [class^="icon-"] { - margin-top: -1px; -} -.btn-mini { - padding: 2px 6px; - font-size: 11px; - line-height: 14px; -} -.btn-primary, -.btn-primary:hover, -.btn-warning, -.btn-warning:hover, -.btn-danger, -.btn-danger:hover, -.btn-success, -.btn-success:hover, -.btn-info, -.btn-info:hover, -.btn-inverse, -.btn-inverse:hover { - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - color: #ffffff; -} -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-dark.active { - color: rgba(255,255,255,.75); -} -.btn-primary { - background-color: #006ccc; - background-image: -moz-linear-gradient(top,#dd4814,#dd4a14 ); - background-image: -ms-linear-gradient(top,#dd4814,#dd4a14 ); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd4a14 )); - background-image: -webkit-linear-gradient(top,#dd4814,#dd4a14 ); - background-image: -o-linear-gradient(top,#dd4814,#dd4a14 ); - background-image: linear-gradient(top,#dd4814,#dd4a14 ); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#dd4814', endColorstr='#dd4a14 ', GradientType=0); - border-color: #dd4a14 #dd4a14 #002a80; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - background-color: #dd4a14; -} -.btn-primary:active, .btn-primary.active { - background-color: #003399 \9; -} -.btn-warning { - background-color: #f9a732; - background-image: -moz-linear-gradient(top,#fbb450 ,#f89406); - background-image: -ms-linear-gradient(top,#fbb450 ,#f89406); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#fbb450 ),to(#f89406)); - background-image: -webkit-linear-gradient(top,#fbb450 ,#f89406); - background-image: -o-linear-gradient(top,#fbb450 ,#f89406); - background-image: linear-gradient(top,#fbb450 ,#f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450 ', endColorstr='#f89406', GradientType=0); - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - background-color: #f89406; -} -.btn-warning:active, .btn-warning.active { - background-color: #c67605 \9; -} -.btn-danger { - background-color: #da4e49; - background-image: -moz-linear-gradient(top,#ee5f5b,#bd362f); - background-image: -ms-linear-gradient(top,#ee5f5b,#bd362f); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f)); - background-image: -webkit-linear-gradient(top,#ee5f5b,#bd362f); - background-image: -o-linear-gradient(top,#ee5f5b,#bd362f); - background-image: linear-gradient(top,#ee5f5b,#bd362f); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); - border-color: #bd362f #bd362f #802420; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - background-color: #bd362f; -} -.btn-danger:active, .btn-danger.active { - background-color: #942a25 \9; -} -.btn-success { - background-color: #5bb65b; - background-image: -moz-linear-gradient(top,#62c462,#51a351); - background-image: -ms-linear-gradient(top,#62c462,#51a351); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351)); - background-image: -webkit-linear-gradient(top,#62c462,#51a351); - background-image: -o-linear-gradient(top,#62c462,#51a351); - background-image: linear-gradient(top,#62c462,#51a351); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); - border-color: #51a351 #51a351 #387038; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - background-color: #51a351; -} -.btn-success:active, .btn-success.active { - background-color: #408140 \9; -} -.btn-info { - background-color: #49afcd; - background-image: -moz-linear-gradient(top,#5bc0de,#2f96b4); - background-image: -ms-linear-gradient(top,#5bc0de,#2f96b4); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4)); - background-image: -webkit-linear-gradient(top,#5bc0de,#2f96b4); - background-image: -o-linear-gradient(top,#5bc0de,#2f96b4); - background-image: linear-gradient(top,#5bc0de,#2f96b4); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - background-color: #2f96b4; -} -.btn-info:active, .btn-info.active { - background-color: #24748c \9; -} -.btn-inverse { - background-color: #383838; - background-image: -moz-linear-gradient(top,#454545,#262626); - background-image: -ms-linear-gradient(top,#454545,#262626); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#454545),to(#262626)); - background-image: -webkit-linear-gradient(top,#454545,#262626); - background-image: -o-linear-gradient(top,#454545,#262626); - background-image: linear-gradient(top,#454545,#262626); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545', endColorstr='#262626', GradientType=0); - border-color: #262626 #262626 #000000; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-inverse:hover, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - background-color: #262626; -} -.btn-inverse:active, .btn-inverse.active { - background-color: #0c0c0c \9; -} -button.btn, input[type="submit"].btn { - *padding-top: 2px; - *padding-bottom: 2px; -} -button.btn::-moz-focus-inner, input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} -button.btn.large, input[type="submit"].btn.large { - *padding-top: 7px; - *padding-bottom: 7px; -} -button.btn.small, input[type="submit"].btn.small { - *padding-top: 3px; - *padding-bottom: 3px; -} -.btn-group { - position: relative; - *zoom: 1; - *margin-left: .3em; -} -.btn-group:before, .btn-group:after { - display: table; - content: ""; -} -.btn-group:after { - clear: both; -} -.btn-group:first-child { - *margin-left: 0; -} -.btn-group + .btn-group { - margin-left: 5px; -} -.btn-toolbar { - margin-top: 9px; - margin-bottom: 9px; -} -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - *zoom: 1; -} -.btn-group .btn { - position: relative; - float: left; - margin-left: -1px; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.btn-group .btn:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -.btn-group .btn:last-child, .btn-group .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -.btn-group .btn.large:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 6px; - -moz-border-radius-topleft: 6px; - border-top-left-radius: 6px; - -webkit-border-bottom-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - border-bottom-left-radius: 6px; -} -.btn-group .btn.large:last-child, .btn-group .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - -moz-border-radius-topright: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - -moz-border-radius-bottomright: 6px; - border-bottom-right-radius: 6px; -} -.btn-group .btn:hover, -.btn-group .btn:focus, -.btn-group .btn:active, -.btn-group .btn.active { - z-index: 2; -} -.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; - -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); - -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); - 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); - *padding-top: 5px; - *padding-bottom: 5px; -} -.btn-group.open { - *z-index: 1000; -} -.btn-group.open .dropdown-menu { - display: block; - margin-top: 1px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 1px 6px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); -} -.btn .caret { - margin-top: 7px; - margin-left: 0; -} -.btn:hover .caret, .open.btn-group .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.btn-primary .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - opacity: 0.75; - filter: alpha(opacity=75); -} -.btn-small .caret { - margin-top: 4px; -} -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 18px; - text-shadow: 0 1px 0 rgba(255,255,255,.5); - background-color: #fcf8e3; - border: 1px solid #fbefd5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.alert, .alert-heading { - color: #c09853; -} -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 18px; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; -} -.alert-success, .alert-success .alert-heading { - color: #468847; -} -.alert-danger, .alert-error { - background-color: #f2dede; - border-color: #eed3d7; -} -.alert-danger, -.alert-error, -.alert-danger .alert-heading, -.alert-error .alert-heading { - color: #b94a48; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; -} -.alert-info, .alert-info .alert-heading { - color: #3a87ad; -} -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} -.alert-block > p, .alert-block > ul { - margin-bottom: 0; -} -.alert-block p + p { - margin-top: 5px; -} -.nav { - margin-left: 0; - margin-bottom: 18px; - list-style: none; -} -.nav > li > a { - display: block; -} -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; -} -.nav .nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 18px; - color: #999999; - text-shadow: 0 1px 0 rgba(255,255,255,.5); - text-transform: uppercase; -} -.nav li + .nav-header { - margin-top: 9px; -} -.nav-list { - padding-left: 14px; - padding-right: 14px; - margin-bottom: 0; -} -.nav-list > li > a, .nav-list .nav-header { - margin-left: -15px; - margin-right: -15px; - text-shadow: 0 1px 0 rgba(255,255,255,.5); -} -.nav-list > li > a { - padding: 3px 15px; -} -.nav-list .active > a, .nav-list .active > a:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0,0,0,.2); - background-color: #dd4814; -} -.nav-list [class^="icon-"] { - margin-right: 2px; -} -.nav-tabs, .nav-pills { - *zoom: 1; -} -.nav-tabs:before, .nav-tabs:after, .nav-pills:before, .nav-pills:after { - display: table; - content: ""; -} -.nav-tabs:after, .nav-pills:after { - clear: both; -} -.nav-tabs > li, .nav-pills > li { - float: left; -} -.nav-tabs > li > a, .nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} -.nav-tabs { - border-bottom: 1px solid #dddddd; -} -.nav-tabs > li { - margin-bottom: -1px; -} -.nav-tabs > li > a { - padding-top: 9px; - padding-bottom: 9px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; -} -.nav-tabs > .active > a, .nav-tabs > .active > a:hover { - color: #555555; - background-color: #ffffff; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.nav-pills .active > a, .nav-pills .active > a:hover { - color: #ffffff; - background-color: #dd4814; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li > a { - margin-right: 0; -} -.nav-tabs.nav-stacked { - border-bottom: 0; -} -.nav-tabs.nav-stacked > li > a { - border: 1px solid #dddddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} -.nav-tabs.nav-stacked > li > a:hover { - border-color: #dddddd; - z-index: 2; -} -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} -.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu { - margin-top: 1px; - border-width: 1px; -} -.nav-pills .dropdown-menu { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.nav-tabs .dropdown-toggle .caret, .nav-pills .dropdown-toggle .caret { - border-top-color: #dd4814; - margin-top: 6px; -} -.nav-tabs .dropdown-toggle:hover .caret, .nav-pills .dropdown-toggle:hover .caret { - border-top-color: #005580; -} -.nav-tabs .active .dropdown-toggle .caret, -.nav-pills .active .dropdown-toggle .caret { - border-top-color: #333333; -} -.nav > .dropdown.active > a:hover { - color: #000000; - cursor: pointer; -} -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > .open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} -.nav .open .caret, .nav .open.active .caret, .nav .open a:hover .caret { - border-top-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} -.tabs-stacked .open > a:hover { - border-color: #999999; -} -.tabbable { - *zoom: 1; -} -.tabbable:before, .tabbable:after { - display: table; - content: ""; -} -.tabbable:after { - clear: both; -} -.tab-content { - overflow: hidden; -} -.tabs-below .nav-tabs, .tabs-right .nav-tabs, .tabs-left .nav-tabs { - border-bottom: 0; -} -.tab-content > .tab-pane, .pill-content > .pill-pane { - display: none; -} -.tab-content > .active, .pill-content > .active { - display: block; -} -.tabs-below .nav-tabs { - border-top: 1px solid #dddddd; -} -.tabs-below .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} -.tabs-below .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} -.tabs-below .nav-tabs > li > a:hover { - border-bottom-color: transparent; - border-top-color: #dddddd; -} -.tabs-below .nav-tabs .active > a, .tabs-below .nav-tabs .active > a:hover { - border-color: transparent #dddddd #dddddd #dddddd; -} -.tabs-left .nav-tabs > li, .tabs-right .nav-tabs > li { - float: none; -} -.tabs-left .nav-tabs > li > a, .tabs-right .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} -.tabs-left .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #dddddd; -} -.tabs-left .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} -.tabs-left .nav-tabs > li > a:hover { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} -.tabs-left .nav-tabs .active > a, .tabs-left .nav-tabs .active > a:hover { - border-color: #dddddd transparent #dddddd #dddddd; - *border-right-color: #ffffff; -} -.tabs-right .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #dddddd; -} -.tabs-right .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} -.tabs-right .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} -.tabs-right .nav-tabs .active > a, .tabs-right .nav-tabs .active > a:hover { - border-color: #dddddd #dddddd #dddddd transparent; - *border-left-color: #ffffff; -} -.navbar { - overflow: visible; - margin-bottom: 18px; -} -.navbar-inner { - padding-left: 20px; - padding-right: 20px; - background-color: #2c2c2c; - background-image: -moz-linear-gradient(top,#333333,#222222); - background-image: -ms-linear-gradient(top,#333333,#222222); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#333333),to(#222222)); - background-image: -webkit-linear-gradient(top,#333333,#222222); - background-image: -o-linear-gradient(top,#333333,#222222); - background-image: linear-gradient(top,#333333,#222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); - -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); - box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); -} -.btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-left: 5px; - margin-right: 5px; - background-color: #2c2c2c; - background-image: -moz-linear-gradient(top,#333333,#222222); - background-image: -ms-linear-gradient(top,#333333,#222222); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#333333),to(#222222)); - background-image: -webkit-linear-gradient(top,#333333,#222222); - background-image: -o-linear-gradient(top,#333333,#222222); - background-image: linear-gradient(top,#333333,#222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - border-color: #222222 #222222 #000000; - border-color: rgba(0,0,0,.1)rgba(0,0,0,.1)fadein(rgba(0,0,0,.1),15%); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); - -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); - box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); -} -.btn-navbar:hover, -.btn-navbar:active, -.btn-navbar.active, -.btn-navbar.disabled, -.btn-navbar[disabled] { - background-color: #222222; -} -.btn-navbar:active, .btn-navbar.active { - background-color: #080808 \9; -} -.btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.25); - -moz-box-shadow: 0 1px 0 rgba(0,0,0,.25); - box-shadow: 0 1px 0 rgba(0,0,0,.25); -} -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} -.nav-collapse.collapse { - height: auto; -} -.navbar .brand:hover { - text-decoration: none; -} -.navbar .brand { - float: left; - display: block; - padding: 8px 20px 12px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - line-height: 1; - color: #ffffff; -} -.navbar .navbar-text { - margin-bottom: 0; - line-height: 40px; - color: #999999; -} -.navbar .navbar-text a:hover { - color: #ffffff; - background-color: transparent; -} -.navbar .btn, .navbar .btn-group { - margin-top: 5px; -} -.navbar .btn-group .btn { - margin-top: 0; -} -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} -.navbar-form:before, .navbar-form:after { - display: table; - content: ""; -} -.navbar-form:after { - clear: both; -} -.navbar-form input, .navbar-form select { - display: inline-block; - margin-top: 5px; - margin-bottom: 0; -} -.navbar-form .radio, .navbar-form .checkbox { - margin-top: 5px; -} -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} -.navbar-form .input-append, .navbar-form .input-prepend { - margin-top: 6px; - white-space: nowrap; -} -.navbar-form .input-append input, .navbar-form .input-prepend input { - margin-top: 0; -} -.navbar-search { - position: relative; - float: left; - margin-top: 6px; - margin-bottom: 0; -} -.navbar-search .search-query { - padding: 4px 9px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - color: #ffffff; - color: rgba(255,255,255,.75); - background: #666666; - background: rgba(255,255,255,.3); - border: 1px solid #111111; - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); - box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0 rgba(255,255,255,.15); - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - -o-transition: none; - transition: none; -} -.navbar-search .search-query :-moz-placeholder { - color: #eeeeee; -} -.navbar-search .search-query ::-webkit-input-placeholder { - color: #eeeeee; -} -.navbar-search .search-query:hover { - color: #ffffff; - background-color: #999999; - background-color: rgba(255,255,255,.5); -} -.navbar-search .search-query:focus, .navbar-search .search-query.focused { - padding: 5px 10px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - -webkit-box-shadow: 0 0 3px rgba(0,0,0,.15); - -moz-box-shadow: 0 0 3px rgba(0,0,0,.15); - box-shadow: 0 0 3px rgba(0,0,0,.15); - outline: 0; -} -.navbar-fixed-top { - position: fixed; - top: 0; - right: 0; - left: 0; - z-index: 1030; -} -.navbar-fixed-top .navbar-inner { - padding-left: 0; - padding-right: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} -.navbar .nav.pull-right { - float: right; -} -.navbar .nav > li { - display: block; - float: left; -} -.navbar .nav > li > a { - float: none; - padding: 10px 10px 11px; - line-height: 19px; - color: #999999; - text-decoration: none; - text-shadow: 0 -1px 0 rgba(0,0,0,.25); -} -.navbar .nav > li > a:hover { - background-color: transparent; - color: #ffffff; - text-decoration: none; -} -.navbar .nav .active > a, .navbar .nav .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #222222; -} -.navbar .divider-vertical { - height: 40px; - width: 1px; - margin: 0 9px; - overflow: hidden; - background-color: #222222; - border-right: 1px solid #333333; -} -.navbar .nav.pull-right { - margin-left: 10px; - margin-right: 0; -} -.navbar .dropdown-menu { - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.navbar .dropdown-menu:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #cccccc; - border-bottom-color: rgba(0,0,0,.2); - position: absolute; - top: -7px; - left: 9px; -} -.navbar .dropdown-menu:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - position: absolute; - top: -6px; - left: 10px; -} -.navbar .nav .dropdown-toggle .caret, .navbar .nav .open.dropdown .caret { - border-top-color: #ffffff; -} -.navbar .nav .active .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.navbar .nav .open > .dropdown-toggle, -.navbar .nav .active > .dropdown-toggle, -.navbar .nav .open.active > .dropdown-toggle { - background-color: transparent; -} -.navbar .nav .active > .dropdown-toggle:hover { - color: #ffffff; -} -.navbar .nav.pull-right .dropdown-menu { - left: auto; - right: 0; -} -.navbar .nav.pull-right .dropdown-menu:before { - left: auto; - right: 12px; -} -.navbar .nav.pull-right .dropdown-menu:after { - left: auto; - right: 13px; -} -.breadcrumb { - padding: 7px 14px; - margin: 0 0 18px; - background-color: #fbfbfb; - background-image: -moz-linear-gradient(top,#ffffff,#f5f5f5); - background-image: -ms-linear-gradient(top,#ffffff,#f5f5f5); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#f5f5f5)); - background-image: -webkit-linear-gradient(top,#ffffff,#f5f5f5); - background-image: -o-linear-gradient(top,#ffffff,#f5f5f5); - background-image: linear-gradient(top,#ffffff,#f5f5f5); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); - border: 1px solid #dddddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} -.breadcrumb li { - display: inline-block; - text-shadow: 0 1px 0 #ffffff; -} -.breadcrumb .divider { - padding: 0 5px; - color: #999999; -} -.breadcrumb .active a { - color: #333333; -} -.pagination { - height: 36px; - margin: 18px 0; -} -.pagination ul { - display: inline-block; - *display: inline; - *zoom: 1; - margin-left: 0; - margin-bottom: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05); - box-shadow: 0 1px 2px rgba(0,0,0,.05); -} -.pagination li { - display: inline; -} -.pagination a { - float: left; - padding: 0 14px; - line-height: 34px; - text-decoration: none; - border: 1px solid #dddddd; - border-left-width: 0; -} -.pagination a:hover, .pagination .active a { - background-color: #f5f5f5; -} -.pagination .active a { - color: #999999; - cursor: default; -} -.pagination .disabled a, .pagination .disabled a:hover { - color: #999999; - background-color: transparent; - cursor: default; -} -.pagination li:first-child a { - border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.pagination li:last-child a { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.pagination-centered { - text-align: center; -} -.pagination-right { - text-align: right; -} -.pager { - margin: 18px 0; - list-style: none; - text-align: center; - *zoom: 1; -} -.pager:before, .pager:after { - display: table; - content: ""; -} -.pager:after { - clear: both; -} -.pager li { - display: inline; -} -.pager li > a, .pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #ffffff; - border: 1px solid #dddddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} -.pager li > a:hover, .pager li > a:focus { - text-decoration: none; - background-color: #f5f5f5; -} -.pager .next > a, .pager .next > span { - float: right; -} -.pager .previous > a, .pager .previous > span { - float: left; -} -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #999999; - background-color: #ffffff; - cursor: default; -} -.modal-open .dropdown-menu { - z-index: 2050; -} -.modal-open .dropdown.open { - *z-index: 2050; -} -.modal-open .popover { - z-index: 2060; -} -.modal-open .tooltip { - z-index: 2070; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; -} -.modal-backdrop, .modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 1050; - max-height: 500px; - overflow: auto; - width: 560px; - margin: -250px 0 0 -280px; - background-color: #ffffff; - border: 1px solid #999999; - border: 1px solid rgba(0,0,0,.3); - *border: 1px solid #999999; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - box-shadow: 0 3px 7px rgba(0,0,0,0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.modal.fade { - -webkit-transition: opacity .3s linear, top .3s ease-out; - -moz-transition: opacity .3s linear, top .3s ease-out; - -ms-transition: opacity .3s linear, top .3s ease-out; - -o-transition: opacity .3s linear, top .3s ease-out; - transition: opacity .3s linear, top .3s ease-out; - top: -25%; -} -.modal.fade.in { - top: 50%; -} -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eeeeee; -} -.modal-header .close { - margin-top: 2px; -} -.modal-body { - padding: 15px; -} -.modal-body .modal-form { - margin-bottom: 0; -} -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - background-color: #f5f5f5; - border-top: 1px solid #dddddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; - *zoom: 1; -} -.modal-footer:before, .modal-footer:after { - display: table; - content: ""; -} -.modal-footer:after { - clear: both; -} -.modal-footer .btn { - float: right; - margin-left: 5px; - margin-bottom: 0; -} -.tooltip { - position: absolute; - z-index: 1020; - display: block; - visibility: visible; - padding: 5px; - font-size: 11px; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} -.tooltip.top { - margin-top: -2px; -} -.tooltip.right { - margin-left: 2px; -} -.tooltip.bottom { - margin-top: 2px; -} -.tooltip.left { - margin-left: -2px; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - padding: 5px; -} -.popover.top { - margin-top: -5px; -} -.popover.right { - margin-left: 5px; -} -.popover.bottom { - margin-top: 5px; -} -.popover.left { - margin-left: -5px; -} -.popover.top .arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.popover.right .arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.popover.bottom .arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.popover.left .arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.popover .arrow { - position: absolute; - width: 0; - height: 0; -} -.popover-inner { - padding: 3px; - width: 280px; - overflow: hidden; - background: #000000; - background: rgba(0,0,0,.8); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - box-shadow: 0 3px 7px rgba(0,0,0,0.3); -} -.popover-title { - padding: 9px 15px; - line-height: 1; - background-color: #f5f5f5; - border-bottom: 1px solid #eeeeee; - -webkit-border-radius: 3px 3px 0 0; - -moz-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; -} -.popover-content { - padding: 14px; - background-color: #ffffff; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.popover-content p, .popover-content ul, .popover-content ol { - margin-bottom: 0; -} -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} -.thumbnails:before, .thumbnails:after { - display: table; - content: ""; -} -.thumbnails:after { - clear: both; -} -.thumbnails > li { - float: left; - margin: 0 0 18px 20px; -} -.thumbnail { - display: block; - padding: 4px; - line-height: 1; - border: 1px solid #dddddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.075); - -moz-box-shadow: 0 1px 1px rgba(0,0,0,.075); - box-shadow: 0 1px 1px rgba(0,0,0,.075); -} -a.thumbnail:hover { - border-color: #dd4814; - -webkit-box-shadow: 0 1px 4px rgba(0,105,214,.25); - -moz-box-shadow: 0 1px 4px rgba(0,105,214,.25); - box-shadow: 0 1px 4px rgba(0,105,214,.25); -} -.thumbnail > img { - display: block; - max-width: 100%; - margin-left: auto; - margin-right: auto; -} -.thumbnail .caption { - padding: 9px; -} -.label { - padding: 2px 4px 3px; - font-size: 11.05px; - font-weight: bold; - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - background-color: #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.label:hover { - color: #ffffff; - text-decoration: none; -} -.label-important { - background-color: #b94a48; -} -.label-important:hover { - background-color: #953b39; -} -.label-warning { - background-color: #f89406; -} -.label-warning:hover { - background-color: #c67605; -} -.label-success { - background-color: #468847; -} -.label-success:hover { - background-color: #356635; -} -.label-info { - background-color: #3a87ad; -} -.label-info:hover { - background-color: #2d6987; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@-moz-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -.progress { - overflow: hidden; - height: 18px; - margin-bottom: 18px; - background-color: #f6f6f6; - background-image: -moz-linear-gradient(top,#f5f5f5,#f9f9f9); - background-image: -ms-linear-gradient(top,#f5f5f5,#f9f9f9); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9)); - background-image: -webkit-linear-gradient(top,#f5f5f5,#f9f9f9); - background-image: -o-linear-gradient(top,#f5f5f5,#f9f9f9); - background-image: linear-gradient(top,#f5f5f5,#f9f9f9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1); - box-shadow: inset 0 1px 2px rgba(0,0,0,.1); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.progress .bar { - width: 0%; - height: 18px; - color: #ffffff; - font-size: 12px; - text-align: center; - text-shadow: 0 -1px 0 rgba(0,0,0,.25); - background-color: #0d90d1; - background-image: -moz-linear-gradient(top,#149bdf,#0480be); - background-image: -ms-linear-gradient(top,#149bdf,#0480be); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be)); - background-image: -webkit-linear-gradient(top,#149bdf,#0480be); - background-image: -o-linear-gradient(top,#149bdf,#0480be); - background-image: linear-gradient(top,#149bdf,#0480be); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0,0,0,.15); - box-shadow: inset 0 -1px 0 rgba(0,0,0,.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width .6s ease; - -moz-transition: width .6s ease; - -ms-transition: width .6s ease; - -o-transition: width .6s ease; - transition: width .6s ease; -} -.progress-striped .bar { - background-color: #62c462; - background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent)); - background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-danger .bar { - background-color: #dd514b; - background-image: -moz-linear-gradient(top,#ee5f5b,#c43c35); - background-image: -ms-linear-gradient(top,#ee5f5b,#c43c35); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35)); - background-image: -webkit-linear-gradient(top,#ee5f5b,#c43c35); - background-image: -o-linear-gradient(top,#ee5f5b,#c43c35); - background-image: linear-gradient(top,#ee5f5b,#c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); -} -.progress-danger.progress-striped .bar { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent)); - background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); -} -.progress-success .bar { - background-color: #5db95d; - background-image: -moz-linear-gradient(top,#62c462,#57a957); - background-image: -ms-linear-gradient(top,#62c462,#57a957); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957)); - background-image: -webkit-linear-gradient(top,#62c462,#57a957); - background-image: -o-linear-gradient(top,#62c462,#57a957); - background-image: linear-gradient(top,#62c462,#57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); -} -.progress-success.progress-striped .bar { - background-color: #62c462; - background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent)); - background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); -} -.progress-info .bar { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top,#5bc0de,#339bb9); - background-image: -ms-linear-gradient(top,#5bc0de,#339bb9); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9)); - background-image: -webkit-linear-gradient(top,#5bc0de,#339bb9); - background-image: -o-linear-gradient(top,#5bc0de,#339bb9); - background-image: linear-gradient(top,#5bc0de,#339bb9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); -} -.progress-info.progress-striped .bar { - background-color: #5bc0de; - background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(.25,rgba(255,255,255,.15)),color-stop(.25,transparent),color-stop(.5,transparent),color-stop(.5,rgba(255,255,255,.15)),color-stop(.75,rgba(255,255,255,.15)),color-stop(.75,transparent),to(transparent)); - background-image: -webkit-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -moz-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -ms-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: -o-linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); - background-image: linear-gradient(-45deg,rgba(255,255,255,.15)25%,transparent 25%,transparent 50%,rgba(255,255,255,.15)50%,rgba(255,255,255,.15)75%,transparent 75%,transparent); -} -.accordion { - margin-bottom: 18px; -} -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.accordion-heading { - border-bottom: 0; -} -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} -.carousel { - position: relative; - margin-bottom: 18px; - line-height: 1; -} -.carousel-inner { - overflow: hidden; - width: 100%; - position: relative; -} -.carousel .item { - display: none; - position: relative; - -webkit-transition: .6s ease-in-out left; - -moz-transition: .6s ease-in-out left; - -ms-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - transition: .6s ease-in-out left; -} -.carousel .item > img { - display: block; - line-height: 1; -} -.carousel .active, .carousel .next, .carousel .prev { - display: block; -} -.carousel .active { - left: 0; -} -.carousel .next, .carousel .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel .next { - left: 100%; -} -.carousel .prev { - left: -100%; -} -.carousel .next.left, .carousel .prev.right { - left: 0; -} -.carousel .active.left { - left: -100%; -} -.carousel .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} -.carousel-control.right { - left: auto; - right: 15px; -} -.carousel-control:hover { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-caption { - position: absolute; - left: 0; - right: 0; - bottom: 0; - padding: 10px 15px 5px; - background: #333333; - background: rgba(0,0,0,.75); -} -.carousel-caption h4, .carousel-caption p { - color: #ffffff; -} -.hero-unit { - padding: 60px; - margin-bottom: 30px; - background-color: #f5f5f5; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - letter-spacing: -1px; -} -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 27px; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.hide { - display: none; -} -.show { - display: block; -} -.invisible { - visibility: hidden; -} -.datepicker { - top: 0; - left: 0; - padding: 4px; - margin-top: 1px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.datepicker:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #cccccc; - border-bottom-color: rgba(0,0,0,0.2); - position: absolute; - top: -7px; - left: 6px; -} -.datepicker:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - position: absolute; - top: -6px; - left: 7px; -} -.datepicker > div { - display: none; -} -.datepicker table { - width: 100%; - margin: 0; -} -.datepicker td, .datepicker th { - text-align: center; - width: 20px; - height: 20px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.datepicker td.day:hover { - background: #eeeeee; - cursor: pointer; -} -.datepicker td.day.disabled { - color: #eeeeee; -} -.datepicker td.old, .datepicker td.new { - color: #999999; -} -.datepicker td.active, .datepicker td.active:hover { - color: #ffffff; - background-color: #006dcc; - background-image: -moz-linear-gradient(top,#dd4814,#dd4a14); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd4a14)); - background-image: -webkit-linear-gradient(top,#dd4814,#dd4a14); - background-image: -o-linear-gradient(top,#dd4814,#dd4a14); - background-image: linear-gradient(to bottom,#dd4814,#dd4a14); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - border-color: #dd4a14 #dd4a14 #002a80; - border-color: rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25); - *background-color: #dd4a14; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0,0,0,0.25); -} -.datepicker td.active:hover, -.datepicker td.active:hover:hover, -.datepicker td.active:focus, -.datepicker td.active:hover:focus, -.datepicker td.active:active, -.datepicker td.active:hover:active, -.datepicker td.active.active, -.datepicker td.active:hover.active, -.datepicker td.active.disabled, -.datepicker td.active:hover.disabled, -.datepicker td.active[disabled], -.datepicker td.active:hover[disabled] { - color: #ffffff; - background-color: #dd4a14; - *background-color: #003bb3; -} -.datepicker td.active:active, -.datepicker td.active:hover:active, -.datepicker td.active.active, -.datepicker td.active:hover.active { - background-color: #003399 \9; -} -.datepicker td span { - display: block; - width: 47px; - height: 54px; - line-height: 54px; - float: left; - margin: 2px; - cursor: pointer; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.datepicker td span:hover { - background: #eeeeee; -} -.datepicker td span.active { - color: #ffffff; - background-color: #006dcc; - background-image: -moz-linear-gradient(top,#dd4814,#dd4a14); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#dd4814),to(#dd4a14)); - background-image: -webkit-linear-gradient(top,#dd4814,#dd4a14); - background-image: -o-linear-gradient(top,#dd4814,#dd4a14); - background-image: linear-gradient(to bottom,#dd4814,#dd4a14); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); - border-color: #dd4a14 #dd4a14 #002a80; - border-color: rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25); - *background-color: #dd4a14; - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0,0,0,0.25); -} -.datepicker td span.active:hover, -.datepicker td span.active:focus, -.datepicker td span.active:active, -.datepicker td span.active.active, -.datepicker td span.active.disabled, -.datepicker td span.active[disabled] { - color: #ffffff; - background-color: #dd4a14; - *background-color: #003bb3; -} -.datepicker td span.active:active, .datepicker td span.active.active { - background-color: #003399 \9; -} -.datepicker td span.old { - color: #999999; -} -.datepicker th.switch { - width: 145px; -} -.datepicker th.next, .datepicker th.prev { - font-size: 21px; -} -.datepicker thead tr:first-child th { - cursor: pointer; -} -.datepicker thead tr:first-child th:hover { - background: #eeeeee; -} -.input-append.date .add-on i, .input-prepend.date .add-on i { - display: block; - cursor: pointer; - width: 16px; - height: 16px; -} -.nav_accordion { - background-color: #f9f9f9; - color: #6e6e6e; - margin: 0px 0px; -} -.nav_accordion dt, .nav_accordion dd { - padding: 10px 0 10px 0; - line-height: 18px; -} -.nav_accordion dt h4, .nav_accordion dd h4 { - border: 1px solid #bbbbbb; - border-right: 0; - border-bottom: 0; - background-color: #f0f0f0; - background-repeat: no-repeat; - background-position: 96% center; - background-image: url('/static/dashboard/img/right_droparrow.png'); - padding: 10px 0 10px 0; - line-height: 16px; - margin-top: 0; - color: #6e6e6e; - font-weight: bold; - text-rendering: optimizelegibility; - max-width: 193px; - padding-right: 16px; - cursor: pointer; -} -.nav_accordion dt h4 div, .nav_accordion dd h4 div { - color: #6e6e6e; - font-size: 14px; - margin: 0 0 0 14px; - display: block; - font-weight: bold; - outline: none; - -moz-outline-style: none; - overflow: hidden; - text-overflow: ellipsis; - max-width: 177px; -} -.nav_accordion dt h4.active, .nav_accordion dd h4.active { - border-bottom: 1px solid #bbbbbb; - background-image: url('/static/dashboard/img/drop_arrow.png'); -} -.nav_accordion dt a, .nav_accordion dd a { - color: #6e6e6e; - font-size: 16px; - margin: 0 0 0 14px; - padding: 0; - display: block; - font-weight: bold; - outline: none; - -moz-outline-style: none; - text-decoration: none; -} -.nav_accordion dt ul, .nav_accordion dd ul { - list-style: none outside none; - margin: 10px 0 0; - width: 222px; -} -.nav_accordion dt li a, .nav_accordion dd li a { - width: 185px; - padding: 10px; - display: block; - line-height: 18px; - margin-left: 20px; - font-weight: normal; - font-size: 13px; -} -.nav_accordion dt li a.active, .nav_accordion dd li a.active { - background: #ffffff; - border-top: 2px solid #e5e5e5; - border-left: 4px solid #d93c27; - border-bottom: 2px solid #e5e5e5; - margin-left: 18px; - -webkit-border-radius: 5px 0 0 5px; - -moz-border-radius: 5px 0 0 5px; - border-radius: 5px 0 0 5px; -} -.nav_accordion dt li a:last-child, .nav_accordion dd li a:last-child { - margin-bottom: 8px; -} -.nav_accordion dd { - padding: 0; - font-size: 12px; -} -.nav_accordion dt { - border-top: 1px solid #bbbbbb; - background-color: #e5e5e5; - background-repeat: no-repeat; - background-position: 96% center; - background-image: url('/static/dashboard/img/right_droparrow.png'); - padding-right: 16px; - max-width: 217px; - cursor: pointer; -} -.nav_accordion dt div { - color: #6e6e6e; - font-size: 14px; - margin: 0 0 0 14px; - padding: 0; - font-weight: bold; - outline: none; - -moz-outline-style: none; - overflow: hidden; - text-overflow: ellipsis; - max-width: 201px; -} -.nav_accordion dt.active { - background-image: url('/static/dashboard/img/drop_arrow.png'); -} -.nav_accordion dt:first-child { - border-top: 0; -} -.nav_accordion dt a { - text-decoration: none; -} -.clearfix:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; -} -* html .clearfix { - zoom: 1; -} -* :first-child + html .clearfix { - zoom: 1; -} -@font-face { - font-family: 'anivers'; - src: url('/static/dashboard/fonts/Anivers_Regular-webfont.eot'); - src: url('/static/dashboard/fonts/Anivers_Regular-webfont.eot?iefix')format('eot'), url('/static/dashboard/fonts/Anivers_Regular-webfont.woff')format('woff'), url('/static/dashboard/fonts/Anivers_Regular-webfont.ttf')format('truetype'), url('/static/dashboard/fonts/Anivers_Regular-webfont.svg#webfont3JLVF59W') format('svg'); - font-weight: normal; - font-style: normal; -} -a { - color: #43a1d6; -} -ul { - list-style: none; - margin: 0; -} -dt { - font-weight: bold; -} -.topbar { - background: #f2f2f2; - background-color: #efefef; - background-image: -moz-linear-gradient(top,#ffffff,#d8d8d8); - background-image: -ms-linear-gradient(top,#ffffff,#d8d8d8); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#ffffff),to(#d8d8d8)); - background-image: -webkit-linear-gradient(top,#ffffff,#d8d8d8); - background-image: -o-linear-gradient(top,#ffffff,#d8d8d8); - background-image: linear-gradient(top,#ffffff,#d8d8d8); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#d8d8d8', GradientType=0); - border-bottom: 1px solid #cccccc; - padding: 10px 0px 15px 0px; -} -.topbar .switcher_bar { - display: inline-block; - height: auto; - width: 160px; - background-position: 140px center; - margin-bottom: 0; - margin-right: 10px; - padding: 0; - background-image: url('/static/dashboard/img/drop_arrow.png'); - background-color: #eeeeee; - background-repeat: no-repeat; - border: 1px solid #cccccc; - border-bottom-color: #bbbbbb; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); -} -.topbar .switcher_bar a { - margin-left: 0; - display: block; -} -.topbar .switcher_bar ul { - width: 130px; -} -.topbar .switcher_bar h3 { - padding: 2px 10px 1px; - font-size: 13px !important; - line-height: 20px; - color: #6e6e6e; - text-decoration: none; -} -.topbar .switcher_bar div { - padding: 2px 10px 1px; - font-size: 11px !important; - line-height: 20px; - color: #6e6e6e; - text-decoration: none; - overflow: hidden; - padding-right: 32px; - text-overflow: ellipsis; -} -.topbar .context-box { - display: inline; -} -#profile_editor_switcher { - width: auto; - max-width: 200px; - vertical-align: top; - white-space: nowrap; - background-image: url('/static/dashboard/img/profile_drop.png'); - background-repeat: no-repeat; - background-position: right center; -} -#user_info { - color: #ffffff; - margin: auto 10px; - padding-bottom: 15px; - padding-right: 25px; -} -#user_info > a { - color: #ffffff; - margin-left: 15px; - line-height: 20px; - font-size: 13px !important; -} -.page-header { - margin: 0 0 5px 0; - padding: 0 0 5px 0; - border-bottom: 2px solid #e5e5e5; - font-family: anivers; - height: auto; - width: 100%; -} -h2 { - color: #6a6a6a; - font-size: 30px; - font-weight: normal; -} -body { - background-color: #ffffff; - min-width: 890px; -} -#splash { - background: #fafafa url(../img/dots.png) repeat center top; -} -#splash .login { - background: #dd4814 url('../img/ubuntu.png') no-repeat center 35px; - position: absolute; - top: 80px; - left: 50%; - margin: 0 0 0 -195px; - padding-top: 100px; - width: 390px; - border: 1px solid #e1e1e1; - max-height: none; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - box-shadow: 0 3px 7px rgba(0,0,0,0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} - -#splash .login form, -#splash .login .modal-header { - background-color: #ffffff; -} - -#splash .login .modal-header { - border-top: 1px solid #c44012; -} - -#splash .login form .error { - width: 100%; -} -#splash .login form input { - width: 350px; -} -#splash .login form select { - width: 360px; -} -#splash .help-block { - display: none; -} -#create_container_form .modal-footer { - margin-top: 190px; -} -.nav li a { - color: #8eacb7; - text-shadow: none; -} -.container-fluid { - padding-left: 0; -} -.sidebar { - background-color: #f9f9f9; - border-right: 5px solid #e5e5e5; - border-bottom: 5px solid #e5e5e5; - -webkit-border-radius: 0 0 5px 0; - -moz-border-radius: 0 0 5px 0; - border-radius: 0 0 5px 0; - float: left; - min-width: 231px; -} -.sidebar h4 { - margin-left: 14px; - color: #999999; -} -.sidebar .nav-tabs { - margin-top: -34px; -} -.sidebar .nav-tabs li.active a { - background-color: #edf9ff; -} -h1.brand { - width: 100%; - margin: 0; -} -h1.brand a { - background: url('/static/dashboard/img/logo.png') top left no-repeat; - display: block; - float: left; - width: 216px; - height: 35px; - text-indent: -9999px; - margin-left: 16px; -} -a.current_item { - width: 163px; - float: left; -} -a.current_item:hover { - text-decoration: none; -} -a.current_item:hover h3, a.current_item:hover h4 { - color: #39738c; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.sidebar .switcher_bar { - width: 190px; - height: 38px; - padding: 5px 0; - margin-left: 14px; - margin-bottom: 15px; -} -.sidebar .switcher_bar a.dropdown-toggle { - display: block; - padding: 5px 0; - background-image: url('/static/dashboard/img/drop_arrow.png'); - border: 1px solid #c0d9e4; - background-color: #e9f5fa; - background-repeat: no-repeat; - background-position: 167px 23px; -} -.sidebar .switcher_bar a.dropdown-toggle:hover { - text-decoration: none; - background-color: #cde8f4; -} -.sidebar .switcher_bar:focus { - outline: none; -} -.sidebar .switcher_bar h3 { - color: #4790ae; - font-size: 16px; - margin: -6px 0 0 14px; - padding: 0; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.sidebar .switcher_bar h3:hover { - white-space: normal; - overflow: visible; - text-overflow: none; - padding-right: 1em; - word-wrap: break-word; -} -.sidebar .switcher_bar h4 { - color: #6fabc4; - font-size: 10px; - text-transform: uppercase; - font-weight: normal; - padding: 0; -} -.sidebar .switcher_bar ul { - border: 1px solid #c0d9e4; - margin-left: -1px; - width: 190px; -} -.sidebar .switcher_bar li a:hover { - background: #92d6f1; -} -#usage { - margin-bottom: 25px; - height: 125px; -} -.usage_block { - background: #e8f8ff; - color: #84b6c5; - border: 1px solid #afe3fb; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - float: left; - width: 29%; - margin-right: 5%; - min-height: 125px; -} -.usage_block.last { - margin-right: 0; -} -.usage_block h3 { - background: #cef0ff; - color: #4fa5bf; - font-weight: normal; - padding: 0 0 0 10px; - border-bottom: 1px solid #c6e7f5; - -webkit-border-top-left-radius: 5px; - -webkit-border-top-right-radius: 5px; - -moz-border-radius-topleft: 5px; - -moz-border-radius-topright: 5px; - border-top-left-radius: 5px; - border-top-right-radius: 5px; -} -.usage_block ul { - margin: 10px; -} -.usage_block .quantity { - font-size: 25px; -} -.usage_block li { - font-size: 11px; - margin: 0 0 15px 0; -} -.usage_block .unit { - font-size: 11px; - text-transform: uppercase; - padding: 0 0 0 1px; -} -.table-bordered { - border: none; -} -.table_header { - min-height: 35px; - padding: 5px 0; -} -.table_caption th { - background-color: transparent; - border: none; -} -.table-bordered tr.table_caption + tr th { - border-top: 1px solid #dddddd; -} -.table-bordered tr.table_caption + tr th:first-child, -.table-bordered tr.table_caption + tr th.hide + th { - -moz-border-radius-topleft: 4px; - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - border-left: 1px solid #dddddd; -} -.table-bordered tr.table_caption + tr th:last-child { - -moz-border-radius-topright: 4px; - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - border-right: 1px solid #dddddd; -} -.table-bordered tbody tr td:first-child, .table-bordered tfoot tr td:first-child { - border-left: 1px solid #dddddd; -} -.table-bordered tbody tr td:last-child, .table-bordered tfoot tr td:last-child { - border-right: 1px solid #dddddd; -} -.table-bordered tfoot tr td:first-child { - border-bottom: 1px solid #dddddd; - -moz-border-radius-bottomleft: 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; -} -.table-bordered tfoot tr td:last-child { - border-bottom: 1px solid #dddddd; - -moz-border-radius-bottomright: 4px; - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; -} -.table_title h3, .table_header h3 { - font-family: anivers; - font-weight: normal; - font-size: 24px; - margin-bottom: 5px; - float: left; -} -.table th.header { - cursor: pointer; -} -.table th.header:hover { - background-color: #e8e8e8; - text-decoration: underline; -} -.table tbody td.anchor a { - display: block; - padding: 8px; -} -.table tr.table_caption th.header:hover { - background-color: transparent; - cursor: default; -} -.table th.headerSortUp:hover, .table th.headerSortDown:hover { - background-color: #dfdfdf; -} -.table th.headerSortUp, .table th.headerSortDown { - background-color: #dfdfdf; - background-repeat: no-repeat; - background-position: 98% center; -} -.table th.headerSortDown { - background-image: url('/static/dashboard/img/drop_arrow.png'); -} -.table th.headerSortUp { - background-image: url('/static/dashboard/img/up_arrow.png'); -} -.table tr.summation td:first-child, .table tr.summation td:last-child { - border-radius: 0; - border-bottom: 0 none; -} -th { - background: #f1f1f1; -} -td.anchor { - padding: 0; -} -small { - font-size: 11px; -} -.main_nav { - list-style: none; - width: 222px; - margin: 10px 0 20px 0; -} -.main_nav a { - color: #999999; - width: 185px; - padding: 10px; - display: block; - margin-left: 20px; -} -.main_nav a.active { - background: #ffffff; - border: 2px solid #d8d8d8; - border-right: 0; - border-bottom-color: #cccccc; -} -table form { - margin-bottom: 0; - width: 1px; -} -.messages { - position: fixed; - z-index: 9999; - top: 20px; - right: 20px; - width: 300px; -} -.messages .alert-block { - -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3); - box-shadow: 0 3px 7px rgba(0,0,0,0.3); -} -.messages .alert-block.alert-error { - border: 1px solid #9d261d; -} -.messages .alert-block.alert-success { - border: 1px solid #46a546; -} -.alert-block .alert-actions { - margin-top: -23px; - margin-right: -23px; -} -.modal > form, .login > form, .alert-actions > form { - margin-bottom: 0; -} -.alert-block p { - overflow: hidden; - word-wrap: break-word; -} -.alert-block p:last-child { - margin-bottom: 0; -} -#actions.single { - width: 90px; -} -.table-striped tr td { - transition: background 0.2s; - -webkit-transition: background 0.2s; - -moz-transition: background 0.2s; - -o-transition: background 0.2s; -} -.inspect { - float: left; - display: block; - margin-top: 5px; - margin-right: 25px; -} -.table { - margin-bottom: 25px; -} -.table tr td { - vertical-align: middle; -} -.table tr.empty td { - text-align: center; -} -.table tfoot tr td { - border-top: 1px solid #dddddd; - background-color: #f1f1f1; - font-size: 11px; - line-height: 14px; -} -.table_actions { - float: right; - min-width: 400px; -} -.table_actions .table_search, .table_actions .table_filter { - display: inline-block; -} -.table_search input { - background: url('/static/dashboard/img/search.png') no-repeat 195px 5px; - display: inline-block; - margin-bottom: 0; -} -.table_actions a, .table_actions button { - float: right; - margin-left: 10px; -} -.table_actions button.filter { - margin-left: 0; -} -.table_actions a.btn-create, -.table_actions button.btn-create, -.table_actions a.btn-launch { - padding-left: 23px; - position: relative; -} -.table_actions a.btn-create:before, -.table_actions button.btn-create:before, -.table_actions a.btn-launch:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 1px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: -403px -92px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -.table_actions a.btn-download, .table_actions button.btn-download { - padding-left: 23px; - position: relative; -} -.table_actions a.btn-download:before, .table_actions button.btn-download:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 1px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: -91px -19px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -.table_actions a.btn-upload, .table_actions button.btn-upload { - padding-left: 23px; - position: relative; -} -.table_actions a.btn-upload:before, .table_actions button.btn-upload:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 1px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: -283px -92px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -.table_actions button.btn-delete, .table_actions button.btn-terminate { - padding-left: 23px; - position: relative; -} -.table_actions button.btn-delete:before, .table_actions button.btn-terminate:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 1px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png'); - background-position: -451px 5px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -td.no-transition { - -webkit-transition: none !important; - -moz-transition: none !important; - -o-transition: none !important; - -ms-transition: none !important; - transition: none !important; -} -td.success { - background-color: #dff0d8 !important; -} -td.loading { - background-color: #e6e6e6 !important; -} -td.inline_edit_available div.table_cell_wrapper .table_cell_action button.ajax-inline-edit { - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; - padding: 10px 10px 10px 10px; - position: relative; - display: block; - background: none; - border: 0 none; -} -td.inline_edit_available div.table_cell_wrapper .table_cell_action button.ajax-inline-edit:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: 0 -72px; - background-repeat: no-repeat; - position: absolute; - top: 2px; - left: 4px; -} -div.table_cell_wrapper { - min-height: 18px; - position: relative; -} -div.table_cell_wrapper .inline-edit-label { - display: inline; -} -div.table_cell_wrapper .inline-edit-form { - float: left; -} -div.table_cell_wrapper .inline-edit-actions, -div.table_cell_wrapper .table_cell_action { - float: right; - width: 20px; - margin: 0; -} -div.table_cell_wrapper .inline-edit-actions button.inline-edit-cancel, -div.table_cell_wrapper .table_cell_action button.inline-edit-cancel { - float: right; - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; -} -div.table_cell_wrapper .inline-edit-actions button.inline-edit-cancel:before, -div.table_cell_wrapper .table_cell_action button.inline-edit-cancel:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: -312px 0; - background-repeat: no-repeat; - position: absolute; - top: 1px; - left: 5px; -} -div.table_cell_wrapper .inline-edit-actions button.inline-edit-submit, -div.table_cell_wrapper .table_cell_action button.inline-edit-submit { - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; -} -div.table_cell_wrapper .inline-edit-actions button.inline-edit-submit:before, -div.table_cell_wrapper .table_cell_action button.inline-edit-submit:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings-white.png'); - background-position: -288px 0; - background-repeat: no-repeat; - position: absolute; - top: 1px; - left: 5px; -} -div.table_cell_wrapper .inline-edit-actions button.ajax-inline-edit, -div.table_cell_wrapper .table_cell_action button.ajax-inline-edit { - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; - padding: 10px 10px 10px 10px; - position: relative; - display: none; - background: none; - border: 0 none; -} -div.table_cell_wrapper .inline-edit-actions button.ajax-inline-edit:before, -div.table_cell_wrapper .table_cell_action button.ajax-inline-edit:before { - display: inline-block; - content: ""; - width: 18px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: 0 -72px; - background-repeat: no-repeat; - position: absolute; - top: 2px; - left: 4px; -} -div.table_cell_wrapper .table_cell_action { - width: auto; - margin: auto 0px 0px 0px; - display: none; - position: absolute; - top: -3px; - right: 0px; - z-index: 99; -} -div.table_cell_wrapper .table_cell_action.hovered { - background-image: -webkit-linear-gradient(top,#ffffff,#e6e6e6); - border-color: rgba(0,0,0,0.1)rgba(0,0,0,0.1)rgba(0,0,0,0.25); - border: 1px solid #cccccc; - border-bottom-color: #bbbbbb; - border-radius: 4px; -} -div.table_cell_wrapper .inline-edit-error .error { - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; - position: absolute; - width: 18px; - height: 20px; - top: 20px; - left: 2px; - padding: 0; -} -div.table_cell_wrapper .inline-edit-error .error:before { - display: inline-block; - content: ""; - width: 20px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: -144px -120px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -div.table_cell_wrapper .inline-edit-status .success { - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; - padding: 0; - position: absolute; - top: 2px; - right: 18px; - width: 18px; - height: 20px; - z-index: 100; -} -div.table_cell_wrapper .inline-edit-status .success:before { - display: inline-block; - content: ""; - width: 20px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/bootstrap/img/glyphicons-halflings.png'); - background-position: -288px 0px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -div.table_cell_wrapper .inline-edit-status .loading { - padding: 9px 12px 9px 12px; - position: relative; - border-radius: 0px; - padding: 0; - position: absolute; - top: 0px; - right: 24px; - width: 18px; - height: 20px; - z-index: 100; -} -div.table_cell_wrapper .inline-edit-status .loading:before { - display: inline-block; - content: ""; - width: 20px; - height: 20px; - margin-top: 0px; - *margin-right: .3em; - line-height: 14px; - background-image: url('/static/dashboard/img/spinner.gif'); - background-position: 0px 0px; - background-repeat: no-repeat; - position: absolute; - top: 0px; - left: 0px; -} -div.table_cell_wrapper .inline-edit-status.inline-edit-mod .loading { - top: 15px; - right: 34px; -} -.table_header .table_actions { - min-width: 0; -} -.table_header .table_actions a, -.table_header .table_actions > button, -.table_header .table_actions .table_search button { - display: inline-block; - float: none; -} -.table_header .table_actions .table_search select { - margin-bottom: 0; - line-height: 22px; -} -.table_header .table_filter { - vertical-align: bottom; - margin-right: 20px; -} -.table_header .table_filter i { - vertical-align: middle; -} -.table_actions form { - float: right; - margin-left: 10px; -} -.hidden { - display: none; -} -.table-striped.datatable tbody tr.odd td { - background-color: #f9f9f9; -} -.table-striped.datatable tbody tr.even td { - background-color: inherit; -} -.table-striped.datatable tbody tr.odd:hover td, -.table-striped.datatable tbody tr.even:hover td, -.table-striped.datatable tbody tr:hover th { - background-color: #f5f5f5; -} -.table-striped tbody tr.status_unknown:nth-child(odd)td { - background-color: #ffffb5; -} -.table-striped tbody tr.status_unknown:nth-child(even)td { - background-color: #ffffc6; -} -.nowrap-col { - white-space: nowrap; -} -.overview { - font-size: 24px; -} -#monitoring { - background: #f8f8f8; - font-size: 14px; - height: 20px; - margin: -18px 0 25px; - padding: 10px; - border: 1px solid #e1e1e1; - font-family: "anivers"; -} -#monitoring h3 { - font-size: 14px; - font-weight: normal; - float: left; - line-height: 18px; -} -#external_links, #external_links li { - float: left; -} -#external_links li { - margin: 0 0 0 15px; -} -.datatable th.narrow { - width: 1em; -} -.datatable input { - padding: 2px 5px; - margin: 0; -} -.datatable th span.required:after { - content: "*"; - font-weight: bold; - line-height: 0; - padding-left: 4px; - color: #3290c0; -} -form label { - text-align: left; - color: #555555; - font-weight: bold; -} -.modal { - width: 700px; - max-height: none; - top: 80px; - margin-top: 0; - position: absolute; -} -.modal.fullscreen { - width: 90%; - margin: auto; - left: 5%; -} -.modal.loading { - width: 150px; - height: 150px; - margin: 0 auto; - overflow: hidden; -} -.modal.loading p { - text-align: center; - position: absolute; - bottom: 0; - width: 150px; -} -.datepicker { - margin-top: 10px; -} -.datepicker input { - width: 65px; - margin-right: 10px; -} -.datepicker .btn { - margin-right: 10px; -} -form.horizontal .form-field { - float: left; -} -form.horizontal.split_half .form-field { - width: 334px; -} -form.horizontal.split_quarter .form-field { - width: 167px; -} -form.horizontal.split_five .form-field { - width: 133px; -} -form.horizontal fieldset { - width: 100%; -} -.modal-body { - overflow-y: visible; - max-height: none; -} -.modal-body table { - margin-bottom: 30px; -} -.modal-body ~ hr { - margin-bottom: 0; -} -.static_page { - float: left; - width: 700px; - background-color: #ffffff; - border: 1px solid #dddddd; -} -.static_page > form { - margin-bottom: 0; -} -.left { - float: left; - width: 347px; - margin-right: 15px; -} -.left form { - margin: 0; -} -.right { - float: left; - width: 308px; -} -.clear { - clear: both; - width: 0; - height: 0; - padding: 0; - margin: 0; -} -.modal-body fieldset { - margin: 0; - padding: 0; -} -.modal-body fieldset ul { - width: 90%; -} -.modal-body fieldset .form-field input, .modal-body fieldset .form-field textarea { - width: 298px; -} -.modal-body fieldset .form-field select { - width: 308px; -} -.modal-body fieldset .form-field textarea { - height: 36px; -} -.modal-footer input { - width: auto; -} -.modal-body .modal-footer { - width: 670px; - margin-left: -25px; - margin-right: -15px; -} -.modal-footer a.close { - margin-top: 0; - margin-right: 5px; - font-size: 12px; - color: #666666; - font-weight: normal; - filter: alpha(opacity=100); - -khtml-opacity: 1; - -moz-opacity: 1; - opacity: 1; -} -.modal-footer a.close:hover { - color: #333333; - text-decoration: underline; -} -.modal-body .help-block { - text-align: left; - float: left; - width: 100%; - margin-bottom: 10px; -} -#create_keypair_modal .clearfix { - margin-bottom: 115px; -} -#actions { - width: 90px; -} -#actions .btn { - margin-bottom: 5px; -} -#actions a.btn { - width: 70px; -} -#actions input.btn { - text-align: left; -} -#images #actions { - width: 100px; -} -.details-modal .modal-body { - padding-bottom: 20px; -} -.form-inline { - display: inline; -} -.form-inline input, .form-inline button, .form-inline a.btn { - margin-left: 5px; -} -td.select { - width: 10px; -} -td.actions_column { - white-space: nowrap; - padding: 10px; - position: relative; - width: 200px; -} -td.actions_column .btn-group { - display: inline-block; -} -td.actions_column .row_actions a, -td.actions_column .row_actions input, -td.actions_column .row_actions button { - background: none; - float: none; - display: block; - padding: 5px 10px; - color: black; - text-align: left; - border-radius: 0; - border: 0 none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -td.actions_column .row_actions .hide { - display: none; -} -td.actions_column .btn-action-required { - font-weight: bold; -} -.tab-content { - overflow: visible; -} -.btn.hide, .btn-group .hide { - display: none; -} -.btn-group .dropdown-toggle:focus { - outline: none; -} -.dropdown-menu button { - line-height: 18px; - width: 100%; -} -.btn-group .dropdown-menu .btn { - border-radius: 0; -} -.dropdown-menu .btn.btn-danger, -.dropdown-menu .btn.btn-danger:hover, -.dropdown-menu .btn.btn-success, -.dropdown-menu .btn.btn-success:hover, -.dropdown-menu .btn.btn-info, -.dropdown-menu .btn.btn-info:hover { - text-shadow: none; -} -.dropdown-menu li:hover { - background: none; -} -.dropdown-menu li.divider:hover { - background-color: #e5e5e5; -} -td.actions_column .dropdown-menu a:hover, -td.actions_column .dropdown-menu button:hover { - background-color: #cdcdcd; -} -.dropdown-menu .btn.btn-danger { - color: #c43c35; -} -.dropdown-menu .btn.btn-danger:hover { - background-color: #f6e0df; -} -tr td.actions_column ul.row_actions.single, -tr:hover td.actions_column ul.row_actions.single, -td.actions_column ul.row_actions.single, -td.actions_column ul.row_actions.single:hover { - border: none; -} -td.actions_column ul.row_actions.single li.action { - display: block; -} -td.actions_column ul.row_actions.single li.action:hover { - background-color: transparent; -} -td.actions_column ul.row_actions.single a, -td.actions_column ul.row_actions.single input, -td.actions_column ul.row_actions.single button { - color: #43a1d6; -} -td.actions_column ul.row_actions.single a:hover, -td.actions_column ul.row_actions.single input:hover, -td.actions_column ul.row_actions.single button:hover { - color: black; -} -th.multi_select_column, td.multi_select_column { - width: 25px; -} -th.multi_select_column, td.multi_select_column { - text-align: center; -} -.table-fixed { - table-layout: fixed; -} -.table input[type="checkbox"] { - display: inline; -} -div.input input[type="checkbox"] { - float: left; - width: 25px; -} -.table_title a { - font-size: 11px; - float: right; - margin-left: 10px; - margin-top: 10px; -} -tr.terminated { - color: #999999; -} -#instance_tabs { - float: left; - width: 100%; - border-bottom: 1px solid #e1e1e1; -} -#instance_tabs li a { - background: #f2f2f2; - display: block; - font-size: 14px; - float: left; - padding: 5px 10px; - margin-right: 10px; - border: 1px solid #e1e1e1; - border-bottom: none; -} -#instance_tabs li.active a { - background: #ffffff; - padding-bottom: 8px; - margin-bottom: -5px; -} -#main_content .nav-tabs { - margin-bottom: 0; -} -#main_content .tab-content { - border: 1px solid #dddddd; - border-top: 0 none; - padding: 10px; -} -#main_content .workflow .modal-body { - padding-left: 0; - padding-right: 0; -} -#main_content .workflow .modal-body .tab-content { - border-left: 0 none; - border-right: 0 none; - border-bottom: 0 none; -} -#content_body { - padding-left: 255px; - padding-right: 25px; -} -.tab_wrapper { - padding-top: 50px; -} -.tooltip { - z-index: 12000; -} -.volume_boot_disclosure { - font-weight: bold; - color: #555555; - cursor: pointer; - background-image: url('/static/dashboard/img/right_droparrow.png'); - background-repeat: no-repeat; - background-position: 130px center; -} -.volume_boot_disclosure.on { - width: 334px; - margin-bottom: 10px; - border-bottom: solid 1px #e1e1e1; - background-image: url('/static/dashboard/img/drop_arrow.png'); -} -form div.clearfix.error { - width: 308px; -} -.nav-tabs a { - cursor: pointer; -} -.nav-tabs li.error a { - color: #b94a48; -} -.nav-tabs li.error a:after { - content: "*"; -} -.nav-tabs li.required a:after, form .form-field.required > label:after { - content: "*"; - font-weight: bold; - line-height: 0; - padding-left: 4px; - color: #3290c0; -} -#region_selector { - position: absolute; - z-index: 9999; - right: 0; - top: 24px; -} -#region_selector a { - margin-left: 0; -} -#region_selector ul { - float: left; - margin-left: 5px; - padding-right: 21px; - width: 125px; -} -#region_selector ul:hover a { - display: block; -} -#region_selector li a { - padding: 3px 3px 3px 5px; - display: none; - background: #e1e1e1; - margin-top: -10px; -} -#region_selector li:first-child p { - background: #ededed url('/static/dashboard/img/drop_arrow.png') no-repeat 106px 9px !important; - display: block; - border: 1px solid #e1e1e1; - padding: 5px; -} -iframe { - border: none; -} -.item_detail ul li label { - color: #000000; - font-weight: bold; - display: block; - margin-top: 5px; -} -.progress_bar { - height: 100%; - width: 100%; - border: 1px solid #cccccc; - background-color: #cccccc; -} -.progress_bar_fill, .progress_bar_selected { - height: 100%; - float: left; -} -.progress_bar_fill { - background-color: #666666; -} -.progress_bar_selected { - background-color: #4790ae; - width: 0; -} -.progress_bar_over { - background-color: red; -} -.d3_quota_bar { - width: 20%; - margin-bottom: 8px; - margin-top: 10px; - float: left; - text-align: center; -} -.quota-dynamic { - overflow: hidden; - margin-bottom: 8px; -} -.quota_title { - color: #999999; - padding-bottom: 0; - margin-bottom: 8px; -} -.quota_title strong { - color: #000000; -} -.quota_title strong span { - font-weight: normal; -} -.quota_title p { - float: right; - margin-bottom: 0; -} -.quota_bar { - height: 15px; - margin: -8px 0 8px; -} -div .flavor_table { - border: 1px solid #aaaaaa; - width: 100%; - margin-bottom: 14px; -} -.flavor_table .flavor_name { - white-space: nowrap; - font-weight: bold; - text-align: left; - padding: 7px 12px 7px 7px; - width: 160px; -} -#main_content .row-fluid { - margin: 10px 0 20px; -} -#main_content .row-fluid:last-child { - margin-bottom: 0; -} -.header_rule { - margin: 0 0 10px; -} -.item_detail .detail_section { - margin-bottom: 25px; - float: left; - margin-right: 50px; -} -.error .help-inline, .dynamic-error { - background: #efdfdf; - border: 1px solid #ead5d8; - padding: 10px; - display: block; -} -.dynamic-error { - color: #b94a48; - margin-bottom: 0.5em; -} -label.log-length { - line-height: 28px; - margin-right: 10px; -} -.progress-success.bar { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top,#62c462,#57a957); - background-image: -ms-linear-gradient(top,#62c462,#57a957); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957)); - background-image: -webkit-linear-gradient(top,#62c462,#57a957); - background-image: -o-linear-gradient(top,#62c462,#57a957); - background-image: linear-gradient(top,#62c462,#57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); -} -.progress_bar_fill.progress-warning.bar { - background-color: #898989; - background-image: -moz-linear-gradient(top,#999999,#333333); - background-image: -ms-linear-gradient(top,#999999,#333333); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#999999),to(#333333)); - background-image: -webkit-linear-gradient(top,#999999,#333333); - background-image: -o-linear-gradient(top,#999999,#333333); - background-image: linear-gradient(top,#999999,#333333); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#999999', endColorstr='#333333', GradientType=0); -} -.progress_bar_over.bar { - background-color: #dd514c; - background-image: -moz-linear-gradient(top,#ee5f5b,#c43c35); - background-image: -ms-linear-gradient(top,#ee5f5b,#c43c35); - background-image: -webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35)); - background-image: -webkit-linear-gradient(top,#ee5f5b,#c43c35); - background-image: -o-linear-gradient(top,#ee5f5b,#c43c35); - background-image: linear-gradient(top,#ee5f5b,#c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); -} -.split_five div.control-group input[type="text"], -.split_five div.control-group select { - width: 120px; -} -.warning { - background-color: #f2dede; - border-bottom: 1px solid #9d261d; - padding: 5px 10px; -} -.warning .warning-text { - text-align: center; -} -.warning .warning-text h3, .warning .warning-text a { - display: inline-block; -} -.warning .warning-text h3 { - vertical-align: bottom; -} -#admin_warning_detail ul { - list-style: circle; - padding-left: 20px; - margin-bottom: 10px; -} -.no_split { - margin-top: -60px; -} -.membership { - min-height: 200px; -} -.membership .btn-group { - margin-left: 0px; - padding: 2px 10px 0 0; - margin-bottom: 0px; - border: 1px solid #dddddd; - border-bottom: none; -} -.membership .btn-group .active { - float: right; -} -.membership a.btn-primary:hover { - background-color: #dd4a14; -} -.membership .help_text { - margin-left: 15px; - margin-bottom: 15px; -} -.membership .members_title { - color: #555555; - font-weight: bold; - padding-left: 10px; - float: left; -} -.membership input { - background: url('/static/dashboard/img/search.png') no-repeat 105px 5px whiteSmoke; -} -.membership .fake_table_header { - background-color: #f1f1f1; - width: 306px; - height: 38px; - padding-top: 15px; - border: 1px solid #dddddd; - border-bottom: none; -} -.membership .fake_table { - margin-left: 5px; - width: 315px; -} -.membership .fake_table ul.no_results { - width: 298px; -} -.membership .fake_table ul.btn-group:hover { - background-color: #dddddd; -} -.membership .left .fake_table_header { - width: 318px; -} -.membership .right .fake_table_header { - width: 318px; - margin-left: -15px; -} -.membership .right .fake_table ul.no_results { - margin-left: -20px; -} -.membership .member { - padding: 10px; - text-align: left; -} -.membership .members { - margin-left: -20px; -} -.membership .members ul.btn-group, .membership .available_members ul.btn-group { - width: 308px; -} -.membership .dark_stripe { - background-color: #f9f9f9; -} -.membership .light_stripe { - background-color: white; -} -.membership .last_stripe { - border-bottom: 1px solid #dddddd; -} -.membership .filter { - width: 120px; - margin: -5px 13px 15px 0px; - float: right; -} -.membership .no_results { - border: 1px solid #dddddd; - padding: 10px; - opacity: 0.5; -} -.membership .role_dropdown li { - cursor: pointer; - background: none; - float: none; - display: block; - padding: 5px 10px; - color: black; - text-align: left; - border-radius: 0; - border: 0 none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - z-index: 99999; -} -.membership .role_dropdown li i { - opacity: 0; -} -.membership .role_dropdown li:hover { - background-color: #cdcdcd; -} -.membership .role_dropdown li.selected i { - opacity: 1; -} -.membership .dropdown-menu.role_dropdown { - right: 0; - left: auto; -} -.membership .nav .role_options { - float: right; - padding-right: 5px; -} -.add_member_btn { - display: inline; -} -#add_member { - clear: both; -} -.add_member { - float: right; - margin-top: 10px; - margin-right: 15px; -} -.dropdown_fix { - overflow: visible; -} -.loading_gif { - width: 35px; - height: 13px; - padding-top: 2px; - padding-right: 5px; - float: left; -} -.action_required_img { - width: 35px; - height: 13px; - padding-top: 2px; - padding-right: 5px; - float: left; -} -#browser_wrapper { - width: 100%; - min-width: 1000px; - background-color: #eeeeee; - border: 1px solid #dddddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -#browser_wrapper .tfoot { - clear: both; - padding: 8px; - border-top: 1px solid #dddddd; - background-color: #f1f1f1; - font-size: 11px; - line-height: 14px; -} -#browser_wrapper .tfoot span { - display: inline-block; -} -#browser_wrapper .tfoot span.navigation_table_count { - width: 30%; -} -#browser_wrapper form, #browser_wrapper table { - margin-bottom: 0; -} -#browser_wrapper .navigation_wrapper, #browser_wrapper .content_wrapper { - position: relative; - float: left; -} -#browser_wrapper div.navigation_wrapper { - z-index: 10; - width: 30%; -} -#browser_wrapper div.navigation_wrapper div.table_wrapper, -#browser_wrapper div.navigation_wrapper thead th.table_header { - border-right: 0 none; - border-top-right-radius: 0; -} -#browser_wrapper div.navigation_wrapper td:first-child { - border-left: 0 none; -} -#browser_wrapper div.navigation_wrapper td.breadcrumb_td { - padding-right: 0px; - max-width: 200px; -} -#browser_wrapper div.navigation_wrapper tr.current_selected td { - background-color: #e9f5fa; -} -#browser_wrapper div.navigation_wrapper tfoot td { - border-right: 0 none; - border-bottom-right-radius: 0; -} -#browser_wrapper div.navigation_wrapper ul.breadcrumb { - padding-right: 0px; - border-top-right-radius: 0px; - border-bottom-right-radius: 0px; - border-right: none; - white-space: nowrap; -} -#browser_wrapper div.navigation_wrapper tbody td { - border-right: 1px solid #dddddd; - background-color: #ffffff; -} -#browser_wrapper div.content_wrapper { - width: 70%; -} -#browser_wrapper div.content_wrapper div.table_wrapper, -#browser_wrapper div.content_wrapper thead th.table_header { - border-left: 0 none; - border-top-left-radius: 0; -} -#browser_wrapper div.content_wrapper td { - border-bottom: 1px solid #dddddd; -} -#browser_wrapper div.content_wrapper td:last-child { - border-right: 0 none; -} -#browser_wrapper div.content_wrapper td.breadcrumb_td { - padding-left: 0px; -} -#browser_wrapper div.content_wrapper tfoot td { - border-left: 0 none; - border-bottom-left-radius: 0; -} -#browser_wrapper div.content_wrapper ul.breadcrumb { - padding-left: 0px; - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; - border-left: none; -} -#browser_wrapper div.content_wrapper ul.breadcrumb li { - visibility: hidden; -} -#browser_wrapper table { - border-collapse: collapse; -} -#browser_wrapper table thead tr th { - border-bottom: none; - background-color: #eeeeee; -} -#browser_wrapper table tbody tr:last-child td { - border-bottom: 1px solid #dddddd; - border-radius: 0; -} -#browser_wrapper table tbody tr.empty td { - height: 28px; - padding: 10px; -} -#browser_wrapper table tbody td.actions_column { - position: static; -} -#browser_wrapper .breadcrumb { - padding: 6px; - margin: 0 0 1px 0; -} -.btn-inline { - margin-bottom: 9px; -} -.modal-body fieldset .form-field select[data-add-item-url] { - width: 275px; - margin-right: 2px; -} -#networkListSortContainer { - display: none; -} -.networklist { - padding: 6px; - background: #eeeeee; - border: 1px solid #cccccc; - min-height: 2em; - width: auto !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.networklist li { - width: 226px; - list-style-type: none; - margin: 6px auto; - padding: 3px; - background: #ffffff; - border: 1px solid #aaaaaa; - line-height: 18px; - border-radius: 3px; - cursor: move; - padding-left: 23px; - background: white url('/static/dashboard/img/drag.png') no-repeat 11px 50%; -} -.networklist li em { - font-size: 0.5em; - line-height: 1em; - color: #999999; - font-style: normal; - margin-left: 0.8em; -} -.networklist li i { - margin-right: 5px; - vertical-align: middle; -} -.networklist li a.btn { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - font-size: 11px; - line-height: 12px; - padding: 2px 5px 3px; - margin-right: 1px; - width: 18px; - text-align: center; - right: 5px; - vertical-align: middle; - float: right; -} -.networklist li a.btn:before { - content: "+"; -} -.networklist li.ui-sortable-helper { - background-color: #ddeeff; -} -.networklist li.ui-state-highlight { - border: 1px dotted #cccccc; - background: #efefef; - height: 0.5em; -} -.networklist li:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; -} -#selected_network { - margin-bottom: 1.5em; - counter-reset: v1 0; - background: #edf9ff; - border: 1px solid #c0d9e4; -} -#selected_network li { - position: relative; -} -#selected_network li a.btn:before { - content: "-"; -} -#selected_network li:before { - content: "nic:"counter(v1); - counter-increment: v1; - display: inline-block; - margin-right: 5px; - background: #666666; - color: #ffffff; - font-size: 90%; - padding: 0px 4px; - vertical-align: middle; - border-radius: 2px; - position: absolute; - left: -2em; -} -#selected_network.dragging li:before { - content: "nic:"; - background-color: rgba(102,102,102,0.5); - padding-right: 10px; -} -#selected_network.dragging li.ui-state-highlight:before { - content: ""; - background: transparent; -} -#topologyCanvasContainer { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - width: 100%; - height: auto; - padding: 25px; - padding-left: 50px; - background: #efefef; - min-height: 400px; -} -#topologyCanvasContainer div.nodata { - font-size: 150%; - text-align: center; - padding-top: 150px; - display: none; -} -#topologyCanvasContainer.noinfo div.nodata { - display: block; -} -#topologyCanvasContainer.noinfo #topology_canvas { - display: none; -} -.topologyNavi { - overflow: hidden; - margin: 10px 0 20px; -} -.topologyNavi i { - margin-right: 3px; -} -.topologyNavi .toggleView { - float: left; -} -.topologyNavi .launchButtons { - float: right; - text-align: right; -} -.topologyNavi .launchButtons a.btn { - margin-left: 10px; -} -.topologyBalloon { - display: none; - background: #ffffff; - position: absolute; - left: 100px; - top: 20px; - z-index: 600; - border-radius: 5px; - color: #333333; - min-width: 200px; - line-height: 1.2; - font-size: 11px; - -webkit-box-shadow: 0px 1px 6px #777777; - -moz-box-shadow: 0px 1px 6px #777777; - box-shadow: 0px 1px 6px #777777; -} -.topologyBalloon.on { - display: block; -} -.topologyBalloon .vnc_window { - margin-left: 10px; -} -.topologyBalloon .closeTopologyBalloon { - font-size: 16px; - line-height: 1; - display: block; - position: absolute; - font-weight: bold; - right: 6px; - top: 0px; - cursor: pointer; - padding: 3px; - color: #aaaaaa; -} -.topologyBalloon .closeTopologyBalloon:hover { - color: #777777; - text-decoration: none; -} -.topologyBalloon .contentBody { - padding: 8px 8px 0; -} -.topologyBalloon span.active:before, .topologyBalloon span.down:before { - content: ""; - width: 9px; - height: 9px; - display: inline-block; - background: #0d925b; - margin-right: 3px; - border-radius: 10px; - vertical-align: middle; -} -.topologyBalloon span.down:before { - background: #e64b41; -} -.topologyBalloon .footer { - background: #efefef; - border-top: 1px solid #d9d9d9; - padding: 8px; - border-radius: 0px 0px 7px 7px; -} -.topologyBalloon .footer .footerInner { - display: table; - width: 100%; -} -.topologyBalloon .footer .cell { - display: table-cell; - padding-right: 10px; -} -.topologyBalloon .footer .link { - font-size: 12px; -} -.topologyBalloon .footer .delete { - padding-right: 0; - text-align: right; -} -.topologyBalloon .footer .delete .btn:before { - content: "Delete "; -} -.topologyBalloon .footer .delete .btn.deleting:before { - content: "Deleting "; -} -.topologyBalloon .footer .delete .btn.instance:before { - content: "Terminate "; -} -.topologyBalloon .footer .delete .btn.instance.deleting:before { - content: "Terminating "; -} -.topologyBalloon table.detailInfoTable { - margin-bottom: 5px; -} -.topologyBalloon table.detailInfoTable caption { - text-align: left; - font-size: 12px; - font-weight: bold; - margin-bottom: 0px; -} -.topologyBalloon table.detailInfoTable th, .topologyBalloon table.detailInfoTable td { - text-align: left; - vertical-align: middle; - padding-bottom: 3px; - background: transparent; -} -.topologyBalloon table.detailInfoTable th { - color: #999999; - padding-right: 8px; - width: 80px; -} -.topologyBalloon table.detailInfoTable th span { - vertical-align: middle; - width: 80px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - display: inline-block; -} -.topologyBalloon table.detailInfoTable th.device { - text-align: right; -} -.topologyBalloon table.detailInfoTable td { - padding-right: 5px; - white-space: nowrap; -} -.topologyBalloon table.detailInfoTable td.delete { - padding-right: 0; - text-align: right; -} -.topologyBalloon table.detailInfoTable .btn { - line-height: 1.4; -} -.topologyBalloon table.detailInfoTable .btn:before { - content: "Delete "; -} -.topologyBalloon table.detailInfoTable .btn.deleting:before { - content: "Deleting "; -} -.topologyBalloon:before { - border-top: 7px solid transparent; - border-bottom: 7px solid transparent; - border-right: 9px solid #bbbbbb; - display: block; - position: absolute; - top: 30px; - left: -9px; - width: 0; - height: 0; - content: ""; -} -.topologyBalloon:after { - border-top: 6px solid transparent; - border-bottom: 6px solid transparent; - border-right: 8px solid #ffffff; - display: block; - position: absolute; - top: 31px; - left: -8px; - width: 0; - height: 0; - content: ""; -} -.topologyBalloon.leftPosition:before { - border-right: none; - border-left: 9px solid #bbbbbb; - right: -9px; - top: 30px; - left: auto; -} -.topologyBalloon.leftPosition:after { - border-right: none; - border-left: 8px solid #ffffff; - right: -8px; - top: 31px; - left: auto; -} -#topologyMessages { - width: 1px; - height: 1px; - visibility: hidden; - position: absolute; - top: -100px; -} -.quota-heading { - font-family: anivers; - font-weight: normal; - font-size: 24px; - margin-bottom: 10px; -} -.link { - stroke: #999999; - stroke-width: 1.5px; -} -.node { - cursor: pointer; -} -.node text { - font: 12px sans-serif; -} -#resource_container { - position: relative; -} -#stack_box { - position: absolute; - width: 300px; - top: 10px; - left: 10px; -} -#stack_box h3 { - font-size: 11pt; - line-height: 20px; -} -#stack_box p { - margin: 0; - font-size: 9pt; - line-height: 14px; -} -#stack_box a { - margin: 0; - font-size: 9pt; - line-height: 14px; -} -#stack_box img { - float: left; -} -#stack_box #stack_info { - float: left; - white-space: normal; - width: 200px; -} -#info_box { - position: absolute; - width: 300px; - top: 100px; - left: 10px; -} -#info_box h3 { - font-size: 9pt; - line-height: 20px; -} -#info_box p { - margin: 0; - font-size: 9pt; - line-height: 14px; -} -#info_box a { - margin: 0; - font-size: 9pt; - line-height: 14px; -} -#info_box .error { - color: darkred; -} -#ceilometer-stats .form-horizontal .control-label { - width: auto; -} -#ceilometer-stats .form-horizontal .controls { - float: left; - margin-left: 0; -} -#ceilometer-stats .form-horizontal .control-group { - float: left; - margin-right: 20px; -} -#ceilometer-stats .form-horizontal .btn { - float: left; - margin-right: 20px; - margin-bottom: 18px; -} -#ruleListSortContainer { - display: none; -} -.rulelist { - padding: 6px; - background: #eeeeee; - border: 1px solid #cccccc; - min-height: 2em; - width: auto !important; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.rulelist li { - width: 226px; - list-style-type: none; - margin: 6px auto; - padding: 3px; - background: #ffffff; - border: 1px solid #aaaaaa; - line-height: 18px; - border-radius: 3px; - cursor: move; - padding-left: 23px; - background: white url('/static/dashboard/img/drag.png') no-repeat 11px 50%; -} -.rulelist li em { - font-size: 0.5em; - line-height: 1em; - color: #999999; - font-style: normal; - margin-left: 0.8em; -} -.rulelist li i { - margin-right: 5px; - vertical-align: middle; -} -.rulelist li a.btn { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - font-size: 11px; - line-height: 12px; - padding: 2px 5px 3px; - margin-right: 1px; - width: 18px; - text-align: center; - right: 5px; - vertical-align: middle; - float: right; -} -.rulelist li a.btn:before { - content: "+"; -} -.rulelist li.ui-sortable-helper { - background-color: #ddeeff; -} -.rulelist li.ui-state-highlight { - border: 1px dotted #cccccc; - background: #efefef; - height: 0.5em; -} -.rulelist li:after { - visibility: hidden; - display: block; - font-size: 0; - content: " "; - clear: both; - height: 0; -} -#selected_rule { - margin-bottom: 1.5em; - counter-reset: v1 0; - background: #edf9ff; - border: 1px solid #c0d9e4; -} -#selected_rule li { - position: relative; -} -#selected_rule li a.btn:before { - content: "-"; -} -#selected_rule li:before { - content: "rule:"counter(v1); - counter-increment: v1; - display: inline-block; - margin-right: 5px; - background: #666666; - color: #ffffff; - font-size: 90%; - padding: 0px 4px; - vertical-align: middle; - border-radius: 2px; - position: absolute; - left: -2em; -} -#selected_rule.dragging li:before { - content: "rule:"; - background-color: rgba(102,102,102,0.5); - padding-right: 10px; -} -#selected_rule.dragging li.ui-state-highlight:before { - content: ""; - background: transparent; -} - -.rickshaw_graph .detail { - pointer-events: none; - position: absolute; - top: 0; - z-index: 2; - background: rgba(0, 0, 0, 0.1); - bottom: 0; - width: 1px; - transition: opacity 0.25s linear; - -moz-transition: opacity 0.25s linear; - -o-transition: opacity 0.25s linear; - -webkit-transition: opacity 0.25s linear; -} -.rickshaw_graph .detail.inactive { - opacity: 0; -} -.rickshaw_graph .detail .item.active { - opacity: 1; -} -.rickshaw_graph .detail .x_label { - font-family: Arial, sans-serif; - border-radius: 3px; - padding: 6px; - opacity: 0.5; - border: 1px solid #e0e0e0; - font-size: 12px; - position: absolute; - background: white; - white-space: nowrap; -} -.rickshaw_graph .detail .item { - position: absolute; - z-index: 2; - border-radius: 3px; - padding: 0.25em; - font-size: 12px; - font-family: Arial, sans-serif; - opacity: 0; - background: rgba(0, 0, 0, 0.4); - color: white; - border: 1px solid rgba(0, 0, 0, 0.4); - margin-left: 1em; - margin-top: -1em; - white-space: nowrap; -} -.rickshaw_graph .detail .item.active { - opacity: 1; - background: rgba(0, 0, 0, 0.8); -} -.rickshaw_graph .detail .item:before { - content: "\25c2"; - position: absolute; - left: -0.5em; - color: rgba(0, 0, 0, 0.7); - width: 0; -} -.rickshaw_graph .detail .dot { - width: 4px; - height: 4px; - margin-left: -4px; - margin-top: -3px; - border-radius: 5px; - position: absolute; - box-shadow: 0 0 2px rgba(0, 0, 0, 0.6); - background: white; - border-width: 2px; - border-style: solid; - display: none; - background-clip: padding-box; -} -.rickshaw_graph .detail .dot.active { - display: block; -} -/* graph */ - -.rickshaw_graph { - position: relative; -} -.rickshaw_graph svg { - display: block; - overflow: hidden; -} - -/* ticks */ - -.rickshaw_graph .x_tick { - position: absolute; - top: 0; - bottom: 0; - width: 0px; - border-left: 1px dotted rgba(0, 0, 0, 0.2); - pointer-events: none; -} -.rickshaw_graph .x_tick .title { - position: absolute; - font-size: 12px; - font-family: Arial, sans-serif; - opacity: 0.5; - white-space: nowrap; - margin-left: 3px; - bottom: 1px; -} - -/* annotations */ - -.rickshaw_annotation_timeline { - height: 1px; - border-top: 1px solid #e0e0e0; - margin-top: 10px; - position: relative; -} -.rickshaw_annotation_timeline .annotation { - position: absolute; - height: 6px; - width: 6px; - margin-left: -2px; - top: -3px; - border-radius: 5px; - background-color: rgba(0, 0, 0, 0.25); -} -.rickshaw_graph .annotation_line { - position: absolute; - top: 0; - bottom: -6px; - width: 0px; - border-left: 2px solid rgba(0, 0, 0, 0.3); - display: none; -} -.rickshaw_graph .annotation_line.active { - display: block; -} - -.rickshaw_graph .annotation_range { - background: rgba(0, 0, 0, 0.1); - display: none; - position: absolute; - top: 0; - bottom: -6px; -} -.rickshaw_graph .annotation_range.active { - display: block; -} -.rickshaw_graph .annotation_range.active.offscreen { - display: none; -} - -.rickshaw_annotation_timeline .annotation .content { - background: white; - color: black; - opacity: 0.9; - padding: 5px 5px; - box-shadow: 0 0 2px rgba(0, 0, 0, 0.8); - border-radius: 3px; - position: relative; - z-index: 20; - font-size: 12px; - padding: 6px 8px 8px; - top: 18px; - left: -11px; - width: 160px; - display: none; - cursor: pointer; -} -.rickshaw_annotation_timeline .annotation .content:before { - content: "\25b2"; - position: absolute; - top: -11px; - color: white; - text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.8); -} -.rickshaw_annotation_timeline .annotation.active, -.rickshaw_annotation_timeline .annotation:hover { - background-color: rgba(0, 0, 0, 0.8); - cursor: none; -} -.rickshaw_annotation_timeline .annotation .content:hover { - z-index: 50; -} -.rickshaw_annotation_timeline .annotation.active .content { - display: block; -} -.rickshaw_annotation_timeline .annotation:hover .content { - display: block; - z-index: 50; -} -.rickshaw_graph .y_axis, -.rickshaw_graph .x_axis_d3 { - fill: none; -} -.rickshaw_graph .y_ticks .tick, -.rickshaw_graph .x_ticks_d3 .tick { - stroke: rgba(0, 0, 0, 0.16); - stroke-width: 2px; - shape-rendering: crisp-edges; - pointer-events: none; -} -.rickshaw_graph .y_grid .tick, -.rickshaw_graph .x_grid_d3 .tick { - z-index: -1; - stroke: rgba(0, 0, 0, 0.20); - stroke-width: 1px; - stroke-dasharray: 1 1; -} -.rickshaw_graph .y_grid path, -.rickshaw_graph .x_grid_d3 path { - fill: none; - stroke: none; -} -.rickshaw_graph .y_ticks path, -.rickshaw_graph .x_ticks_d3 path { - fill: none; - stroke: #808080; -} -.rickshaw_graph .y_ticks text, -.rickshaw_graph .x_ticks_d3 text { - opacity: 0.5; - font-size: 12px; - pointer-events: none; -} -.rickshaw_graph .x_tick.glow .title, -.rickshaw_graph .y_ticks.glow text { - fill: black; - color: black; - text-shadow: - -1px 1px 0 rgba(255, 255, 255, 0.1), - 1px -1px 0 rgba(255, 255, 255, 0.1), - 1px 1px 0 rgba(255, 255, 255, 0.1), - 0px 1px 0 rgba(255, 255, 255, 0.1), - 0px -1px 0 rgba(255, 255, 255, 0.1), - 1px 0px 0 rgba(255, 255, 255, 0.1), - -1px 0px 0 rgba(255, 255, 255, 0.1), - -1px -1px 0 rgba(255, 255, 255, 0.1); -} -.rickshaw_graph .x_tick.inverse .title, -.rickshaw_graph .y_ticks.inverse text { - fill: white; - color: white; - text-shadow: - -1px 1px 0 rgba(0, 0, 0, 0.8), - 1px -1px 0 rgba(0, 0, 0, 0.8), - 1px 1px 0 rgba(0, 0, 0, 0.8), - 0px 1px 0 rgba(0, 0, 0, 0.8), - 0px -1px 0 rgba(0, 0, 0, 0.8), - 1px 0px 0 rgba(0, 0, 0, 0.8), - -1px 0px 0 rgba(0, 0, 0, 0.8), - -1px -1px 0 rgba(0, 0, 0, 0.8); -} -.rickshaw_legend { - font-family: Arial; - font-size: 12px; - color: white; - background: #404040; - display: inline-block; - padding: 12px 5px; - border-radius: 2px; - position: relative; -} -.rickshaw_legend:hover { - z-index: 10; -} -.rickshaw_legend .swatch { - width: 10px; - height: 10px; - border: 1px solid rgba(0, 0, 0, 0.2); -} -.rickshaw_legend .line { - clear: both; - line-height: 140%; - padding-right: 15px; -} -.rickshaw_legend .line .swatch { - display: inline-block; - margin-right: 3px; - border-radius: 2px; -} -.rickshaw_legend .label { - margin: 0; - white-space: nowrap; - display: inline; - font-size: inherit; - background-color: transparent; - color: inherit; - font-weight: normal; - line-height: normal; - padding: 0px; - text-shadow: none; -} -.rickshaw_legend .action:hover { - opacity: 0.6; -} -.rickshaw_legend .action { - margin-right: 0.2em; - font-size: 10px; - opacity: 0.2; - cursor: pointer; - font-size: 14px; -} -.rickshaw_legend .line.disabled { - opacity: 0.4; -} -.rickshaw_legend ul { - list-style-type: none; - margin: 0; - padding: 0; - margin: 2px; - cursor: pointer; -} -.rickshaw_legend li { - padding: 0 0 0 2px; - min-width: 80px; - white-space: nowrap; -} -.rickshaw_legend li:hover { - background: rgba(255, 255, 255, 0.08); - border-radius: 3px; -} -.rickshaw_legend li:active { - background: rgba(255, 255, 255, 0.2); - border-radius: 3px; -} - -.chart { - height: inherit; - width: inherit; - min-height: inherit; - min-width: inherit; -} -.chart .tooltip_detail { - position: absolute; - z-index: 2; - border-radius: 3px; - padding: 0.25em; - font-size: 12px; - font-family: Arial, sans-serif; - color: white; - border: 1px solid rgba(0,0,0,0.4); - margin-left: 1em; - margin-top: -1em; - white-space: nowrap; - background: rgba(0,0,0,0.8); -} -.chart .tooltip_detail:before { - content: "\25c2"; - position: absolute; - left: -0.5em; - color: rgba(0,0,0,0.7); - width: 0; - top: 12px; -} -.overview_chart { - width: 214px; - height: 81px; - border: 1px ridge black; - padding: 8px 8px 8px 8px !important; -} -.overview_chart .chart_container { - width: 140px; - min-width: 140px; -} -.overview_chart .chart_container .chart svg { - padding-right: 4px !important; -} -.overview_chart .bar_chart_container { - width: 74px; - min-width: 74px; -} -.overview_chart .bar_chart_container, .overview_chart .chart_container { - float: left; - min-height: 81px; - height: 81px; -} -.overview_chart .bar_chart_container .chart, .overview_chart .chart_container .chart { - height: inherit; - width: inherit; - min-height: inherit; - min-width: inherit; -} -.overview_chart .bar_chart_container .chart .modal-backdrop, -.overview_chart .chart_container .chart .modal-backdrop { - min-height: inherit; - min-width: inherit; -} -.overview_chart .tooltip_detail { - position: absolute; - z-index: 2; - border-radius: 3px; - padding: 0.25em; - font-size: 12px; - font-family: Arial, sans-serif; - color: white; - border: 1px solid rgba(0,0,0,0.4); - margin-left: 1em; - margin-top: -1em; - white-space: nowrap; - background: rgba(0,0,0,0.8); -} -.overview_chart .tooltip_detail:before { - content: "\25c2"; - position: absolute; - left: -0.5em; - color: rgba(0,0,0,0.7); - width: 0; - top: 12px; -} -.chart_container { - position: relative; - min-height: 300px; - min-width: 400px; -} -.chart_container .chart { - position: relative; - min-height: 300px; - min-width: 400px; -} -.chart_container .chart .detail .x_label { - display: none; -} -.chart_container .chart .detail .item { - line-height: 1.4; - padding: 0.5em; -} -.chart_container .chart .detail .date { - color: #a0a0a0; -} -.chart_container .chart .modal-backdrop { - position: absolute; - opacity: 0.5; - top: 0; - left: 0; - min-height: 300px; - min-width: 400px; -} -.chart_container .chart svg { - padding: 0 0 5px 0; -} -.chart_container .detail_swatch { - float: right; - display: inline-block; - width: 10px; - height: 10px; - margin: 0 4px 0 0; -} -.legend_container { - min-width: 90px; - margin-left: 20px; -} -.legend_container .swatch { - float: right; - display: inline-block; - width: 10px; - height: 10px; - margin: 0 4px 0 0; -} -.legend_container .modal-backdrop { - position: absolute; - opacity: 0.5; - top: 0; - left: 0; - min-width: 90px; -} -.legend_container .rickshaw_legend.disabled { - padding: 0; -} -.spinner_wrapper { - position: absolute; - top: 40%; - left: 40%; -} -.rickshaw_legend { - background: white; - color: #404040; -} -.rickshaw_legend .action { - text-decoration: none; - color: #000000; -} - -.workflow ul.nav-tabs { - padding: 0 10px; -} -.workflow td.actions { - vertical-align: top; - width: 308px; - padding-right: 10px; -} -.workflow td.help_text { - vertical-align: top; - width: 340px; - padding-left: 10px; - border-left: 1px solid #dddddd; -} -.workflow fieldset > table { - margin-bottom: 0; -} -.workflow.wizard .row-fluid .btn { - float: none; - margin: 0; -} -.workflow.wizard .row-fluid .next { - text-align: right; -} -.workflow.wizard .nav-tabs.wizard-tabs { - border-bottom: none; - background: #efefef; - padding: 0; -} -.workflow.wizard .nav-tabs.wizard-tabs li { - margin-bottom: 0; - position: relative; -} -.workflow.wizard .nav-tabs.wizard-tabs li:before { - position: absolute; - top: 0; - right: -20px; - z-index: 2; - display: block; - border: 20px solid transparent; - border-right: 0; - border-left: 20px solid #dddddd; - content: ""; -} -.workflow.wizard .nav-tabs.wizard-tabs li:after { - position: absolute; - top: -2px; - right: -22px; - z-index: 1; - display: block; - border: 22px solid transparent; - border-right: 0; - border-left: 22px solid #ffffff; - content: ""; -} -.workflow.wizard .nav-tabs.wizard-tabs li.active:before, -.workflow.wizard .nav-tabs.wizard-tabs li.done:before { - border-left: 20px solid #007acc; -} -.workflow.wizard .nav-tabs.wizard-tabs li a { - border: none; - border-radius: 0; - background: #dddddd; - color: #43a4d7; - padding: 0 15px; - padding-left: 35px; - line-height: 40px; - position: relative; - margin: 0; -} -.workflow.wizard .nav-tabs.wizard-tabs li:first-child a { - padding-left: 15px; -} -.workflow.wizard .nav-tabs.wizard-tabs li.active a { - background: #007acc; - color: #ffffff; -} -.workflow.wizard .nav-tabs.wizard-tabs li.done a { - background: #007acc; -} -.workflow.wizard label.error { - color: #ff0000; -} - - -/*************************** - * Ubuntu styling - ***************************/ - - /* Graham Bancroft graham.bancroft@canonical.com 03 October 2012 */ -@import url("https://fonts.googleapis.com/css?family=Ubuntu:300,400,400italic"); - -html { height: 100%; } - -body { - color: #333; - font-family: Ubuntu, Arial, 'libra sans', sans-serif; - font-weight: 300; - font-size: 16px; - height: 100%; -} - -h1, h2, h3, h4 { - color: #333; - font-family: Ubuntu, Arial, 'libra sans', sans-serif; - font-weight: 300; -} -strong { - font-weight: normal; -} -.warning { - background-color: #eca918; - border-bottom: 1px solid #8d6817; - -moz-box-shadow: 0 5px 10px 1px #000; - -webkit-box-shadow: 0 5px 10px 1px #000; - box-shadow: 0 5px 10px 1px #d12a03; - display: block; - z-index: 999; - position: relative; -} - -.warning h3 { - background-color: #eca918; - color: #624a16; -} - -#container { height: 100%; } - -/* topbar */ -.topbar { - background-image: none; - background-color: #dd4814; - border-bottom: 0; - color: #fff; - width: 100%; -} - -.page-header { - padding-top: 30px; - font-family: Ubuntu, Arial, 'libra sans', sans-serif; -} - - -#user_info, #user_info a { - color: #fff; -} - -/* logo */ -h1.brand { - background: none; - color: #fff; -} - -h1.brand a { - background: url('../img/ubuntu.png') top left no-repeat; - color: #fff; -} - -#user_info, #user_info a { font-size: 14px; } - -/* main nav (in sidebar) */ -.main_nav li { - position: relative; -} - -.main_nav a { - -moz-transition-duration: .5s; - -webkit-transition-duration: .5s; - border: 1px solid #eee; - border-left: 0; - border-right: 0; - color: #888; - margin-left: 0; - padding-left: 20px; - transition-duration: .5s; - width: 192px; - float: left; - position: relative; -} - -.main_nav a:hover { - background: #fbfbfb; - color: #282828; - text-decoration: none; -} - -.main_nav li a.active { - border-color: #d8d8d8; - border-width: 1px 1px 1px 0; - color: #333; - width: 193px; - z-index: 3; -} - -.main_nav a.active:hover { - background: #fff; - color: #333; - text-decoration: none; -} - -.nav-tabs a:link { - color: #dd4814; -} - -/* sidebar */ -.sidebar { - background: #eee; - border: solid #d7d6d6; - border-width: 0 1px 0 0; - min-height: 100%; - border-bottom: 1px solid #d7d6d6; -} - -.sidebar h4 { - color: #333; -} - -.sidebar a { font-size: 14px; } - -.sidebar .switcher_bar h4 { margin-left: 15px; } - -/* main content */ - -/* tables */ -.table tbody tr td, -.table tbody tr th { - -moz-transition-duration: .5s; - -webkit-transition-duration: .5s; - transition-duration: .5s; -} - -.table_header h3 { - font-family: Ubuntu, Arial, 'libra sans', sans-serif; - margin-left: -10px; -} - -h3.table_title { - position: absolute; - left: -999em; -} - -table th { - font-size: 14px; - font-weight: 500; - color: #444; -} - -.table_actions { margin-right: -7px; } - -.table tfoot tr td { background-color: #F7F2F6; } - -/* static pages */ -.static_page, .quota-dynamic { margin-top: 30px; } - -.static_page, .quota-dynamic h3 { margin-bottom: 20px; } - -.static_page, .quota-dynamic .progress_bar { - max-width: 50%; - margin-top: 10px; -} - -.static_page, .quota-dynamic, .table_wrapper, .usage_info_wrapper, .tab-content { - background: #fff; - background: rgba(255, 255, 255, 0.70); -} - -a:link, -a:visited, -a:hover { - color: #dd4814; -} - -#splash .modal { - background: #fff url('../img/ubuntu.png') no-repeat center 35px; -} - -h1.brand a { - background: url('../img/ubuntu.png') top left no-repeat; - width: 350px; -} diff --git a/debian/theme/img/favicon-ubuntu.ico b/debian/theme/img/favicon-ubuntu.ico deleted file mode 100644 index a95179330e7d6324457b10c3d499e9dbeaa1b142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 623 zcmV-#0+9WQP)e?6Hyd}zdJLeji$Dt6Mv9u%_5*HC2MJMAtnui z5i6~rf*@EZX%>RkMO_6!{6px*g<7b%6>D2T5!~vC3qcSYTofuvv`DOhw$62tOf%6a z3ZBJVy!Xzz_nz~fs49Ns`yw%11`*;YaR3Ad#lhfS^ilDh|GumVh)6zRXHarLkmjf$ zj7DclH>eS-0wR(>U{3+brZf@EjtJiu3*OFjbhea2RSkfA!p<}!o8bs%=Vsc|XV^aZ zhCugD?P-Vsemn`lr(0vVOJC~a80ApVIg_T4H+$?K^_CsmtGB5SIa&OV|%lQUGEF*mn07-<)R@uMXEOumW`5 ze!^Kq#;#R&=o|$OyLRXhrypv=7-h&_lUUEv@XmopR`D+*m z4nX1Z5QR&pFS6iA zTd)0Wbh>!`|2$<>H9A{LA!LEdF9NC_xq^`O$l(8tHT>&${sF5S%uw1auQ31s002ov JPDHLkV1n+_4S4_n diff --git a/debian/theme/img/juju.png b/debian/theme/img/juju.png deleted file mode 100644 index 87a8e263d6fee77b1a3e19898be209fdc29d9a09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4206 zcmV-!5RvbRP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2iyb< z0wW-hJ?u*W01xg-L_t(|+U=craO359$3I`$-hsRWE*Mr;oy))z|U_Qf?x;_C}@%7f+w5LcZ<;@&Nz&j&N9V{9Lf zbQ*Ah;eCQWn`6M8lE7dXDHxiF-E>18lqQOqLD~vgE$4Z9oo3 zZ(esCiNPZ{;=VT`iOwX?GrCN$3VgoN(lV2_DQgA+3o4#jMg*Y5i?aXQ(xYIDGYDGFlB9{-Qs`p&1n*PS z!tz|<-3>@FlOmqYQ_S?mjL#F!8Lgb=^j9cSFk%zTNMyw<5VmhA*pBi;T2II}IL!9RlO;0S`+0Ik4Bz1Dp+fQuwzI zHGK~DP+*=?taM#`-KLGjbc%TJXY(GAfpjm4+$M_Y)FO*-0U6bbl&0hwjHJ7b|00ns z>;l-CK50o$Zp)q^04rqv-T1^}F$0{^er2k9e;C-J&5Ub;=#Lfj$!~ z$+#GH%IaZnmbkn-TX?3pruY4h#eRU@BiMj+WjveTJdjD94c-tmv4*=hSd!RcbYUXf z|K?yOMRztoe*yXR>Qho<5HlPbvWE%$5tYlgpy zp#_Kyz{cvco6%V{dDW>;X`j^IlF`6ds=~=(QJJYG7F-K7u zD@*6bq%KGPVzSg+QNE%J4PPu?-PKVkUW( z?LU#!U{B{sGDWspz7=yTxW5XmJ-`KtTwcHr#&s5fbq=x8wLN!lWydwW^8*k){&-n@ zKZ97>=-?yNs3!0(0w@V~BX&y~J|v+ugW>5=b<@!P?*Nuhvk2K#fDB|(A@@k0VZ2JH zWhx0{0i2f?)2ZtL2Gf154M-xy@RB}+IN5ef;ekerIDZb%J&i=M=_Ih2NyULxSg}K0 zZUcnab=W_b(@#&y2L)j=&|6HWerukDy*|O_d}L+;k4YyKa1?!64zpVoGmq6@CIVCL zGX6Ng;M!D+M_Ja1l8;xAx4LH6Awn`G+odW&cfC$Mv{@X1K}mSm*f)TXWA^T1x;KWj z+_q|)EpnX zIjHv1Kz(%ybF^IhG~&j@y26$nYm+NFO8O*t$kMt*HviLNI`wCuQ*2HjGyR7(gm#p_ zf3uiL=HuD?bHFWw>At1$T>tI>^pTibkdB#n1waUv0>`$rhFFSWj-70!Bic>{wtkq% z<+r?bRdPYhdI{(u%3anDq>~pQZv(ysx}&1-QE3i`4p9&HrQ|oq9gZ zn?`-EIjxvU-bBgAffkON(y-1V(QR~{?d!to$Ji2#DC?OHV@$h%B`qEHhN@LpJ>FL^ zgta%ka`I>(R4$3zCkK(=Ul|NVbxQUL?y-2@hjI9!v(d+){;Tl<-xPohrh6-_k%#Nh zqex0sX~I;UFC4jZO>%{;71ANIK4Q}e3{7=|#1wO#k(M-B-MLK+uIcS6MH4w_vt+6Z zwBw9<^v?y7I)GHANGsaV6Bn$;^Z~J1S~ndw>}_3>6>|(U0{m(^tL3VGW5yR zvU|E(G;7hKFn&9p&G)x7APXPg2)F>+HdXa-oiNo^exEraBba9ac3pQy>jDzEc~j=u z(faLl{m5ugjLVDVqlG^xg?}55jj{1T#E$?*cJFR&K;pUlcFRx6s@rU-R-p?W9sb{A z`R%gO2uk2BQDEogYWy5X*3Lw>@F+0uWLL`pvOUvV&J`X(Z1GI|y7*A2gcM{wV0$-W zpRHGH-33sRK4816q52^({szF{np378{WlXJM`kybwd7~Olfkr1zQk7}kvDv#m`<*W zXY;!-p9j_&J_W2!P(ZG_attaIk|C{{Yav{`Dz$(R3T-%7=0cUlUqA(HJYw z3?91gTIH>E*AdJuwq7ni`Pqb%pW~L`ZllnvOZ@xo&>cYyE|Hty*#_cR-C3OTa=32PIX)7I&xG0{@zYfr~XyzxSV=bZ~EYIZ+Byxq1 zB7Wr2r2Ei~aC2awFqXtt;PiMl|3-OtVs`_s-DnjJVQ_6<2#X6JL;SPsLBfu@IRa(W zTFN{LT%5?|Hw~ndQ{J7}@;+oV^2+qm9kTgiCbb&41^di!NO`t=$f#Ce?F0X#O1dq6 zZ+^#Y@Yr&9oxFAJsT_UxYh_b*5^#g$&yL;Y(=fim#SKwdD|poM7fa}w<=Onu&MSNA zSkyuH-Tm)wKmZ2T_K{c@O++!BidjBQ)|V_U*8~aS)WNXAagR47-voL%p3UzKr56&p z*|`y@qi5U|nmo%*Hj zkN;PG&H{&daid%{6*H$SwMRZGxEMGaIRRP*ED9x-G9)9w0ps05gTQ9nPsSAckM3;$ zYhzK~>}kZj2E>1Q4mQYEzqdx@B~vl zdsjiLIdpY!7`ShmZHEFMhoe=%iB+#H2<`SvgNGjA!;D`-k3s!gPk$0Z#C;VHGx-_1 z&jY(_w7X&kLbR=_zXQOII)$%R+qddy`(O~fYCd|W$-~*e_Nx9yfbZA4$zcK0+b+`? z+I7{?uIbXkkl?y4>YmKy5(UfV8O%NE?tgwE<}Z(xx^b z?}B-61Jc%zHWAJ^wgG8tNSoS#v;k>T8<6H9%@;sA=LsMktp>xdZv56m{_K}Ar ztp>+MIk7$67cijUa_WXA+aP^)bZ+&%#x$wtrhYy3jy-#1pe@nDfZ)c3Xt*_=ZS9SRE_tpY9T+GY{EP&iqLqZ&+>+3B9%6(OQl)? zQSa^lo5JTyRqcm>F9XZ!OtLzGfg0ne=N>&x(6(474~dF4)qD&B*AQ)ft0#LuH;lP@ zEDz09#(V?tL&lx%!(oEI0DK(C0?&ql4u#Kj1SXdO#{*}+gTcT+5T09V@UaZI8@M`X z(niL%hbr*72#6Ey5nja%cS6ooLj-)MhJ=-BNZa0!zwDeqiu?{~2t>aL@??#%mumF8 zE95T&fv0--cxbKw0XPPD_%MShO)}V0697^U*NPz3*V<`BU-Jy?%fIq6Yp8s>;Jyoa*Sk5$l0ic2|3(|Hv&>b9KXN44vgn^gO zro0s*wikgHfd8FBIJr15-d*+juY)ntb?gLrOrvf&h=RjOf z(TUimp-$ka5Fxw~oM&fnfFBI?nH~j9b8w)Gh*l;)23#4;Rka_y zs{z46!|4x##B2@`M}G(}tFz0>4D%CBs0m*WKoo%2!ry@j$~6w*?s?6q(zi^p4DcNe zJmC;>M&tBrl2&brG%qKfUZCgtPpI>Fcre6yLIUjHO%{(j))ph?Y2i|Qy> z>;j$#);2R3oxueCMsVak!RhS_HnyK=J^4R_k7-s~0NfsuzvDtOTdJrNy%y?m56^P) zIb$kE9LoX|iz{j`<>K84twTM5mqis}ZJCcYwQ1_~|9F#QU=PKPP5=M^07*qoM6N<$ Eg4=5Mu>b%7 diff --git a/debian/theme/img/ubuntu.png b/debian/theme/img/ubuntu.png deleted file mode 100644 index f0ecf73a80ec9e3ae6c8fb340caf0d32ca5fb00a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4167 zcmV-N5V-G&P)(&)Ev9qGA)Cl)a9Spqf z=}5(27X?YpfK%$5(HwGUD9CAWUknsrM_TS%_%iveiz)b07xG&d*C5Jo*_Ku#uBAzr zllW#}Ba%f;E00w!#R{;AH(Dy+xR{$RaTa(n^8ktr-ffG=C)>3zDOH%eUW=4Wzp+|dTM81#b&1|p5$CGB(BEh{r^Js@B;p=&ic2Y$CTr;akz)OG% zGrK9leJ)R-4l}bSyfWYS(%(qZjzJ+_{Jh75jIzfk+PV=Xwtv|Iv%^((4Uor zX(aJ55?F+^!c3zd(zueL5cnnV6p)`$j%ts`fI|T7uKy9OE*?$g>i1cHRd+Uit1sIg z_#RFB52j@NFKN`Qc~B;|i(3EagEaMHI1h^}&pfSZ`@27IjQmpC_RogbvwD&;Dri|zCt};6IITK($dTr}y&>EPC zc4PYhJCGY=8t})XtUKLk3XBD=MbEJk*Z|A}?gzFbH^y+(m#Z?wM_m`ji-CUuI-|{@ zGUNvO5cp3LyJ(IEsq)*<7W`z$hs5l_1p~(#J0}>0kJ=7o10qy}h0XF~?_8dTA&jA2f)j=xPE(^j#767BD9(Y|_oD2Nk z-S0iLBDM$41};T?Gn)Ean3CalXkl861bZ`}7cd5x>}Up|HeE~R1YBJ)2)G=08`uOC z178KM1AYihLUSgES|F1G?scjQHy^)3&h+3-fIHE2Xjl`W z3Tc|pBJ=ZPAP*p~pb5oefA$%0AMglAC*0a1Grb9L39&u_Z8AN9TnuY~A0Nei(uE#K zxXlMHpnBU|0Oi?Ws*bn~xo!fSix%HUkkv3V8%%vsk4G%NuZU@lr9+5%^wNxX>keMRIxpaaqr{}jsG3w#qO1^yNIFJe2!S0Dj%JTm<^ zqc5CHK^kuuXCdwVB((EA3;2VVUj&Rpv3w;+xPA=0M)i*gba&^a)D-Md!fgzC#i?D+FfU~n5;zR?Z**yT#x)wy?|Z79N@tSI)FB=o?S>AI~<2D3U4AIw;K6}Uq>1q zNK3yGI2O5EmZE3(saL)w5}N0s@v<3NG1Ei$`KfD*AveUMM7KN8;JX4F(O8@oLDvNM zp1W@wG(I0j{yraL&?0&)8e5B98_GPIL9U%W(YP!}8v6{F-wwDP7>H!rQeVr!x1z90vwwyMpDF1;8o=3Oy?((h9jR<)W8Lqr4OS)e4dv+5edb1u6z&V zH~au;n?7zr=GZw%6C8%jN8hj64!D`jmU zflyvL!$fLR*XthbouNEGOk{lu?ZeU+CQ@HV3o|=nW^X5}C17jQ=ZSxeaWv!H z?{4n*v;<|QIhwX!+Ax>)gqJqbrTxH5%Xc*9`YK3&G@_q-nC4-rnH47B=MGo)+g{on z)ANp^f6CEc>ZKK$##>dkU)Aze>8{ygA_RZ8s&Ur1$R4^Nzux8~bb-d$Eg==WfL8gz zNaF$cI?x>X?-^TAE zjp}X^`#B4cxjh1z?(>g=4~X@5B1`94ckb%WyAhAQsjk%}!+fNfo)M9^!Mi?;G^fKz zYXWJw|BU*7hDW;=Y5m=)sm1vS+K_BqfyU4`&~u*SrB@g}mC=te?$v2VcUHjT1=$5@L>n$+YaC^ zk{sR9V*GwQf&%1g2n0=s6e>+8x_j4QXMP#64z6#$;=$h)&P%b3?<`FwG#Uc-A|cnC z#9t!m@6M^j{2g%T=ArXEqT{=geZwx$`r>VpEkjz|a^&2ffP6rS&=)!M_o7|mAXLMj zjQQ?3l%y_zcafm|cQmozOrcC740PwJ=LAJ zVFC9EvB6cJd?mt8@49V@Wqjv<2Q)$I;%Kf<%tO0`*P}@HFbaWN&_qvV;s&dGY3RHX zX%(5m?~#BDw3Z-duXzORl`j2!r1b^3-Mg+t8)JP*{v6*$8!2xh^Jxe&pX-7WIhIY2YSPXm%nbohNUCJ3aGwvu+g68Mj?)PdW$ofUl2J<({vR zU}Ep4cL2Vh;=MmYN=I0ze~v~}pMdrG5y!iUMMqaq^WkTUuSD45UAH7PHQH}S0aD2u zIwqh2cOP(3D6ct+#p;Z9$<~DOn^4_%S%M<;Hxn~aW}|^QhV-}}iipJn80_0cA zLvfQJ)BQQLPz>>C+akfWjhH_&|0sE>K>d0i@^eNqI2XmWfFh@R5!-gp6fUB=$#5@< z5%Mt?O#qOyb1<=0B3sxJ`h7Wx-*y1`KGqV`V#cC)yR?2QKFugY4*MBsLcE2{zV>L) zc1A*Kazxn_jyGy$2oe@3S2amYlxp_csqBk*f9K1z|MbtZZ> zupEV0fK1<&$O&GAV)IUQJidUmpGV#A)kye;-(kKNO{Ry?^Iw7%x?_o+WFI0;We)1k zWQ+BK$W$vvW2QZt8+TAWZ09*NKV~8y-#Thq6}{2;d=L4!yP$yRjjkW+g0aND^fL^F zs>~v`IRMgnhoCX=G@qWJ9@>s=X=ckkx@2J@UkT;qnORpe`?)C$A;8)=+s2K|>_d-kkC|O#X01YW zMP@e7qni{_S2{yZ=6m_;&FpM1uh0}8^X*WX(V@P1!L)7ODAYffcr@7x6Y-BWrswq+ zGuv-wn;h>~#GzkeX4}nds_D6IcJxEz(0|?KuQ#);uKai}zr++;GcHuFmrK9e{qAdK zzc#ZE9G_KY_KBJO!OZ%E%62icKbqO!%xs;z?(Fg|FteA1<@OsgJVGr`>}{AHj2FtZoE-~G(&Y15qCYGzwZVLso9!&`e(2+10g ze3@%z=SI+tbUbfzZ74N`YF+Ko+~e+*Xq^7S%ody3F4rH6%xp^Vr!zO870`#F=<+J0 zT8F7nd zGlImsTF;}1c3eG^Liv|c^F{MLNb~4~)b-t{&jKG!0ov&a`z7|fwiF>#&NuBUXjr?) zc_i05m!Njk#%#(28WI0B!5sb{ArKso16NV~b(%aRl)4f9DV0=q5u2mIelj(M+bowJ zPq=~9@QbMVVa-k`8apbsC)M4}y5a?7n)wdqR>(vN?%kT$t`}&LIGdQCB0v$^R_{d3 zn7d53qqbE+iha75wzXQ5F+^HEx R5q1Co002ovPDHLkV1oY2@T~v< diff --git a/debian/theme/ubuntu_theme.py b/debian/theme/ubuntu_theme.py deleted file mode 100644 index 5e71043..0000000 --- a/debian/theme/ubuntu_theme.py +++ /dev/null @@ -1,5 +0,0 @@ -# The presence of this file in /etc/openstack-dashboard/ and/or -# /usr/share/openstack-dashboard/openstack_dashboard/local/ will -# enable the Ubuntu theme for Horizon. To disable, remove the -# openstack-dashboard-ubuntu-theme package, or remove this file. -TEMPLATE_DIRS = ('/usr/share/openstack-dashboard-ubuntu-theme/templates', ) diff --git a/debian/watch b/debian/watch deleted file mode 100644 index 9742cfb..0000000 --- a/debian/watch +++ /dev/null @@ -1,3 +0,0 @@ -version=3 -opts="uversionmangle=s/\.([a-zA-Z])/~$1/;s/%7E/~/" \ - https://launchpad.net/horizon/+download https://launchpad.net/horizon/.*/.*/.*/horizon-(.*)\.tar\.gz diff --git a/tests/runtests.sh b/tests/runtests.sh index 0e8f52f..47b6fbf 100755 --- a/tests/runtests.sh +++ b/tests/runtests.sh @@ -2,6 +2,18 @@ RES=0 +horizon_apache_conf() { + echo -e " + ServerName localhost + WSGIScriptAlias / /usr/share/openstack-dashboard/openstack_dashboard/wsgi/django.wsgi + Alias /static /usr/share/openstack-dashboard/static + + Order allow,deny + Allow from all + +" > /etc/$apache/sites-enabled/horizon.conf +} + case $1 in openstack-dashboard) python -c "import lesscpy" @@ -13,18 +25,21 @@ case $1 in if [[ `cat /etc/*-release | head -n 1 | awk '{print $1}'` =~ Ubuntu ]]; then apache="apache2" - page="horizon" chown -R horizon:horizon /usr/share/openstack-dashboard sed -i "s/\#ALLOWED_HOSTS = \[.*/ALLOWED_HOSTS = \['127.0.0.1', \]/g" /etc/openstack-dashboard/local_settings.py else apache="httpd" - page="dashboard" chown -R apache:apache /usr/share/openstack-dashboard sed -i "s/LOCAL_PATH = .*/LOCAL_PATH = '\/tmp'/g" /etc/openstack-dashboard/local_settings fi + + horizon_apache_conf + # Disable default configuration + a2dissite 000-default + service $apache restart - wget http://127.0.0.1/$page -O - | grep 'Login - OpenStack Dashboard' + wget http://127.0.0.1 -O - | grep 'Login - OpenStack Dashboard' RES=$? ;; python-django-horizon) diff --git a/trusty/debian/changelog b/trusty/debian/changelog new file mode 100644 index 0000000..6b57ab2 --- /dev/null +++ b/trusty/debian/changelog @@ -0,0 +1,9 @@ +horizon (1:2015.1.0-1~u14.04+mos1) mos7.0; urgency=medium + + * Build horizon 2015.1.0 (stable/kilo) + * Update requirements for Kilo accroding to + https://github.com/openstack/horizon/blob/stable/kilo/requirements.txt and + https://github.com/openstack/requirements/blob/stable/kilo/global-requirements.txt + + -- Ivan Berezovskiy Thu, 07 May 2015 17:13:50 +0300 + diff --git a/trusty/debian/compat b/trusty/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/trusty/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/trusty/debian/control similarity index 52% rename from debian/control rename to trusty/debian/control index c21c50c..9920329 100644 --- a/debian/control +++ b/trusty/debian/control @@ -1,79 +1,83 @@ Source: horizon Section: net Priority: extra -Maintainer: Chuck Short +Maintainer: MOS Horizon Team Build-Depends: - debhelper (>= 8.0.0), + debhelper (>= 9), pylint, - python-all (>= 2.6.6-3~), + python-all (>= 2.7.1), python-django-nose, python-lesscpy, python-mox, - python-netaddr, + python-netaddr (>= 0.7.12), python-nose, - python-pbr, + python-pbr (>= 0.10), python-setuptools, python-sphinx Standards-Version: 3.9.3 Homepage: http://launchpad.net/horizon -Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/horizon/juno/files -Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/horizon/juno Package: python-django-horizon Section: python Architecture: all Depends: - python-ceilometerclient (>= 1.0.6), - python-cinderclient (>= 1.0.7), + python-pbr (>= 0.10), + python-babel (>= 1.3), + python-django (>= 1.4.2), + python-pint (>= 0.5), python-cloudfiles, python-compressor (>= 1.4), - python-oslo.concurrency (>= 1.4.1), - python-django (>= 1.4.2), python-django (<< 1.7), + python-openstack-auth (>= 1.1.7), python-django-pyscss (>= 1.0.3), - python-eventlet (>= 0.15.1), - python-glanceclient (>= 0.14.0), - python-heatclient (>= 0.2.9), + python-eventlet (>= 0.16.1), python-httplib2 (>= 0.7.5), python-iso8601 (>= 0.1.9), - python-keystoneclient (>= 1:0.10.0), python-kombu (>= 2.5.0), python-lesscpy, - python-lockfile (>= 0.8), + python-lockfile (>= 1:0.8), python-memcache, python-netaddr (>= 0.7.12), - python-neutronclient (>= 1:2.3.6), python-neutronclient (<< 1:3.0), - python-novaclient (>= 2.18.0), - python-openstack-auth (>= 1.1.7), - python-oslo.serialization (>= 1.0.0), - python-pbr (>= 0.6), python-pbr (<< 0.7) | python-pbr (>> 0.7), python-pbr (<< 1.0), - python-pint (>= 0.5), - python-saharaclient (>= 0.7.3), - python-six (>= 1.7.0), - python-swiftclient (>= 2.2.0), - python-troveclient (>= 1.0.4), - python-tz, + python-oslo-concurrency (>= 1.8.0), + python-oslo-config (>= 1:1.9.3), + python-oslo-i18n (>= 1.5.0), + python-oslo-serialization (>= 1.4.0), + python-oslo-utils (>= 1.4.0), + python-pyscss (>= 1.2.1), + python-ceilometerclient (>= 1.0.13), + python-cinderclient (>= 1:1.1.0), + python-glanceclient (>= 0.15.0), + python-heatclient (>= 0.3.0), + python-keystoneclient (>= 1:1.1.0), + python-neutronclient (>= 1:2.3.11), + python-novaclient (>= 1:2.22.0), + python-saharaclient (>= 0.8.0), + python-swiftclient (>= 1:2.2.0), + python-troveclient (>= 1:1.0.7), + python-tz (>= 2013.6), + python-yaml (>= 3.1.0), + python-six (>= 1.9.0), + python-xstatic (>= 1.0.0), + python-xstatic-angular (>= 1.3.7), python-xstatic-angular-bootstrap (>= 0.11.0.2), - python-xstatic-angular-cookies (>= 1.2.1.1), - python-xstatic-angular-mock (>= 1.2.1.1), - python-xstatic-angular (>= 1.2.1.1), + python-xstatic-angular-lrdragndrop (>= 1.0.2.2), + python-xstatic-bootstrap-datepicker (>= 1.3.1.0), python-xstatic-bootstrap-scss (>= 3), python-xstatic-d3 (>= 3.1.6.2), - python-xstatic-bootstrap-datepicker (>= 1.3.1.0), - python-xstatic-font-awesome (>= 4.1.0), python-xstatic-hogan (>= 2.0.0.2), - python-xstatic-jasmine (>= 1.3.1.1), + python-xstatic-font-awesome (>= 4.2.0), + python-xstatic-jasmine (>= 2.1.2.0), + python-xstatic-jquery (>= 1.7.2), python-xstatic-jquery-migrate (>= 1.2.1.1), python-xstatic-jquery.quicksearch (>= 2.0.3.1), python-xstatic-jquery.tablesorter (>= 2.0.5b.0), python-xstatic-jquery-ui (>= 1.10.1), - python-xstatic-jquery (>= 1.7.2), python-xstatic-jsencrypt (>= 2.0.0.2), + python-xstatic-magic-search (>= 0.2.0.1), python-xstatic-qunit (>= 1.14.0.2), python-xstatic-rickshaw (>= 1.5.0), python-xstatic-smart-table (>= 1.4.5.3), python-xstatic-spin (>= 1.2.5.2), python-xstatic-term.js (>= 0.0.4), - python-xstatic (>= 1.0.0), ${misc:Depends}, ${python:Depends} Recommends: memcached @@ -83,6 +87,8 @@ Description: Django module providing web based interaction with OpenStack interactions with the OpenStack Nova cloud controller. Package: openstack-dashboard +Provides: sahara-dashboard +Replaces: sahara-dashboard Architecture: all Pre-Depends: dpkg (>= 1.15.7.2) Depends: @@ -92,27 +98,8 @@ Depends: python-django-horizon (= ${source:Version}), ${misc:Depends}, ${python:Depends} -Recommends: openstack-dashboard-ubuntu-theme Description: django web interface to Openstack The OpenStack Dashboard is a reference implementation of a Django site that uses the Django-Nova project to provide web based interactions with the OpenStack Nova cloud controller. -Package: python-django-openstack -Section: oldlibs -Architecture: all -Depends: python-django-horizon (= ${source:Version}), ${misc:Depends} -Description: dummy transitonal package - This transitional package from the python-django-openstack to the - python-django-horizon package. Once this package and its dependencies are - installed you can remove it. - -Package: openstack-dashboard-ubuntu-theme -Architecture: all -Depends: - openstack-dashboard (= ${source:Version}), - ${misc:Depends}, - ${python:Depends} -Description: Ubuntu theme for the Openstack dashboard - A custom Ubuntu theme for Horizon. This package is optional and overrides the - default theme and branding. \ No newline at end of file diff --git a/debian/copyright b/trusty/debian/copyright similarity index 100% rename from debian/copyright rename to trusty/debian/copyright diff --git a/debian/openstack-dashboard.conf b/trusty/debian/openstack-dashboard.conf similarity index 100% rename from debian/openstack-dashboard.conf rename to trusty/debian/openstack-dashboard.conf diff --git a/debian/openstack-dashboard.dirs b/trusty/debian/openstack-dashboard.dirs similarity index 100% rename from debian/openstack-dashboard.dirs rename to trusty/debian/openstack-dashboard.dirs diff --git a/debian/openstack-dashboard.install b/trusty/debian/openstack-dashboard.install similarity index 100% rename from debian/openstack-dashboard.install rename to trusty/debian/openstack-dashboard.install diff --git a/debian/openstack-dashboard.links b/trusty/debian/openstack-dashboard.links similarity index 100% rename from debian/openstack-dashboard.links rename to trusty/debian/openstack-dashboard.links diff --git a/debian/openstack-dashboard.postinst b/trusty/debian/openstack-dashboard.postinst similarity index 88% rename from debian/openstack-dashboard.postinst rename to trusty/debian/openstack-dashboard.postinst index 7e75670..702422b 100644 --- a/debian/openstack-dashboard.postinst +++ b/trusty/debian/openstack-dashboard.postinst @@ -27,6 +27,14 @@ if [ "$1" = "configure" ]; then --no-create-home --shell /bin/false horizon fi + ( + cd /usr/share/openstack-dashboard + echo "Collecting and compressing static assets..." + rm -rf ./static/horizon 2>&1 > /dev/null + python manage.py collectstatic --noinput 2>&1 > /dev/null + python manage.py compress --force 2>&1 > /dev/null + ) + if [ -e /usr/share/openstack-dashboard/openstack_dashboard/static ] ; then chown -R horizon:horizon \ /usr/share/openstack-dashboard/openstack_dashboard/static diff --git a/debian/openstack-dashboard.postrm b/trusty/debian/openstack-dashboard.postrm similarity index 100% rename from debian/openstack-dashboard.postrm rename to trusty/debian/openstack-dashboard.postrm diff --git a/debian/openstack-dashboard.preinst b/trusty/debian/openstack-dashboard.preinst similarity index 100% rename from debian/openstack-dashboard.preinst rename to trusty/debian/openstack-dashboard.preinst diff --git a/trusty/debian/patches/embedded-xstatic.patch b/trusty/debian/patches/embedded-xstatic.patch new file mode 100644 index 0000000..966f47a --- /dev/null +++ b/trusty/debian/patches/embedded-xstatic.patch @@ -0,0 +1,166 @@ +From 4736af89b4d6d01354896c7a1063bd1cec26ec71 Mon Sep 17 00:00:00 2001 +From: Your Name +Date: Tue, 11 Nov 2014 12:24:22 -0500 +Subject: [PATCH] xstatic + +Signed-off-by: Your Name +--- + horizon/test/settings.py | 76 +++++++++++++++++++-------------------- + openstack_dashboard/settings.py | 78 ++++++++++++++++++++--------------------- + 2 files changed, 77 insertions(+), 77 deletions(-) + +--- a/openstack_dashboard/static_settings.py ++++ b/openstack_dashboard/static_settings.py +@@ -17,107 +17,107 @@ distributions can edit or replace this f + to match their distribution's standards. + """ + +-import xstatic.main +-import xstatic.pkg.angular +-import xstatic.pkg.angular_bootstrap +-import xstatic.pkg.angular_lrdragndrop +-import xstatic.pkg.angular_smart_table +-import xstatic.pkg.bootstrap_datepicker +-import xstatic.pkg.bootstrap_scss +-import xstatic.pkg.d3 +-import xstatic.pkg.font_awesome +-import xstatic.pkg.hogan +-import xstatic.pkg.jasmine +-import xstatic.pkg.jquery +-import xstatic.pkg.jquery_migrate +-import xstatic.pkg.jquery_quicksearch +-import xstatic.pkg.jquery_tablesorter +-import xstatic.pkg.jquery_ui +-import xstatic.pkg.jsencrypt +-import xstatic.pkg.magic_search +-import xstatic.pkg.qunit +-import xstatic.pkg.rickshaw +-import xstatic.pkg.spin +-import xstatic.pkg.termjs ++import horizon.xstatic.main ++import horizon.xstatic.pkg.angular ++import horizon.xstatic.pkg.angular_bootstrap ++import horizon.xstatic.pkg.angular_lrdragndrop ++import horizon.xstatic.pkg.angular_smart_table ++import horizon.xstatic.pkg.bootstrap_datepicker ++import horizon.xstatic.pkg.bootstrap_scss ++import horizon.xstatic.pkg.d3 ++import horizon.xstatic.pkg.font_awesome ++import horizon.xstatic.pkg.hogan ++import horizon.xstatic.pkg.jasmine ++import horizon.xstatic.pkg.jquery ++import horizon.xstatic.pkg.jquery_migrate ++import horizon.xstatic.pkg.jquery_quicksearch ++import horizon.xstatic.pkg.jquery_tablesorter ++import horizon.xstatic.pkg.jquery_ui ++import horizon.xstatic.pkg.jsencrypt ++import horizon.xstatic.pkg.magic_search ++import horizon.xstatic.pkg.qunit ++import horizon.xstatic.pkg.rickshaw ++import horizon.xstatic.pkg.spin ++import horizon.xstatic.pkg.termjs + + + def get_staticfiles_dirs(webroot='/'): + STATICFILES_DIRS = [ + ('horizon/lib/angular', +- xstatic.main.XStatic(xstatic.pkg.angular, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular, + root_url=webroot).base_dir), + ('horizon/lib/angular', +- xstatic.main.XStatic(xstatic.pkg.angular_bootstrap, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular_bootstrap, + root_url=webroot).base_dir), + ('horizon/lib/angular', +- xstatic.main.XStatic(xstatic.pkg.angular_lrdragndrop, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular_lrdragndrop, + root_url=webroot).base_dir), + ('horizon/lib/angular', +- xstatic.main.XStatic(xstatic.pkg.angular_smart_table, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.angular_smart_table, + root_url=webroot).base_dir), + ('horizon/lib/bootstrap_datepicker', +- xstatic.main.XStatic(xstatic.pkg.bootstrap_datepicker, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.bootstrap_datepicker, + root_url=webroot).base_dir), + ('bootstrap', +- xstatic.main.XStatic(xstatic.pkg.bootstrap_scss, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.bootstrap_scss, + root_url=webroot).base_dir), + ('horizon/lib', +- xstatic.main.XStatic(xstatic.pkg.d3, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.d3, + root_url=webroot).base_dir), + ('horizon/lib', +- xstatic.main.XStatic(xstatic.pkg.hogan, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.hogan, + root_url=webroot).base_dir), + ('horizon/lib/font-awesome', +- xstatic.main.XStatic(xstatic.pkg.font_awesome, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.font_awesome, + root_url=webroot).base_dir), + ('horizon/lib/jasmine', +- xstatic.main.XStatic(xstatic.pkg.jasmine, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jasmine, + root_url=webroot).base_dir), + ('horizon/lib/jquery', +- xstatic.main.XStatic(xstatic.pkg.jquery, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery, + root_url=webroot).base_dir), + ('horizon/lib/jquery', +- xstatic.main.XStatic(xstatic.pkg.jquery_migrate, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_migrate, + root_url=webroot).base_dir), + ('horizon/lib/jquery', +- xstatic.main.XStatic(xstatic.pkg.jquery_quicksearch, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_quicksearch, + root_url=webroot).base_dir), + ('horizon/lib/jquery', +- xstatic.main.XStatic(xstatic.pkg.jquery_tablesorter, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_tablesorter, + root_url=webroot).base_dir), + ('horizon/lib/jsencrypt', +- xstatic.main.XStatic(xstatic.pkg.jsencrypt, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jsencrypt, + root_url=webroot).base_dir), + ('horizon/lib/magic_search', +- xstatic.main.XStatic(xstatic.pkg.magic_search, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.magic_search, + root_url=webroot).base_dir), + ('horizon/lib/qunit', +- xstatic.main.XStatic(xstatic.pkg.qunit, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.qunit, + root_url=webroot).base_dir), + ('horizon/lib', +- xstatic.main.XStatic(xstatic.pkg.rickshaw, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.rickshaw, + root_url=webroot).base_dir), + ('horizon/lib', +- xstatic.main.XStatic(xstatic.pkg.spin, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.spin, + root_url=webroot).base_dir), + ('horizon/lib', +- xstatic.main.XStatic(xstatic.pkg.termjs, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.termjs, + root_url=webroot).base_dir), + ] + +- if xstatic.main.XStatic(xstatic.pkg.jquery_ui, ++ if horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_ui, + root_url=webroot).version.startswith('1.10.'): + # The 1.10.x versions already contain the 'ui' directory. + STATICFILES_DIRS.append( + ('horizon/lib/jquery-ui', +- xstatic.main.XStatic(xstatic.pkg.jquery_ui, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_ui, + root_url=webroot).base_dir)) + else: + # Newer versions dropped the directory, add it to keep the path the + # same. + STATICFILES_DIRS.append( + ('horizon/lib/jquery-ui/ui', +- xstatic.main.XStatic(xstatic.pkg.jquery_ui, ++ horizon.xstatic.main.XStatic(horizon.xstatic.pkg.jquery_ui, + root_url=webroot).base_dir)) + + return STATICFILES_DIRS diff --git a/trusty/debian/patches/fix-dashboard-django-wsgi.patch b/trusty/debian/patches/fix-dashboard-django-wsgi.patch new file mode 100644 index 0000000..028d302 --- /dev/null +++ b/trusty/debian/patches/fix-dashboard-django-wsgi.patch @@ -0,0 +1,25 @@ +From a0e71f08e46805a076d4f5cde7cb39ab64d82be3 Mon Sep 17 00:00:00 2001 +From: Maksym Yatsenko +Date: Fri, 30 Jan 2015 18:19:22 +0200 +Subject: [PATCH] fix-dashboard-django-wsgi + +--- + openstack_dashboard/wsgi/django.wsgi | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/openstack_dashboard/wsgi/django.wsgi b/openstack_dashboard/wsgi/django.wsgi +index 1be0e06..05c8631 100644 +--- a/openstack_dashboard/wsgi/django.wsgi ++++ b/openstack_dashboard/wsgi/django.wsgi +@@ -9,6 +9,8 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.realpath(__file__)), '.. + os.environ['DJANGO_SETTINGS_MODULE'] = 'openstack_dashboard.settings' + sys.stdout = sys.stderr + ++sys.path.append("/usr/share/openstack-dashboard/") ++ + DEBUG = False + + application = get_wsgi_application() +-- +1.9.1 + diff --git a/debian/patches/fix-dashboard-manage.patch b/trusty/debian/patches/fix-dashboard-manage.patch similarity index 100% rename from debian/patches/fix-dashboard-manage.patch rename to trusty/debian/patches/fix-dashboard-manage.patch diff --git a/trusty/debian/patches/series b/trusty/debian/patches/series new file mode 100644 index 0000000..3195bc8 --- /dev/null +++ b/trusty/debian/patches/series @@ -0,0 +1,3 @@ +#embedded-xstatic.patch +fix-dashboard-django-wsgi.patch +fix-dashboard-manage.patch diff --git a/trusty/debian/pydist-overrides b/trusty/debian/pydist-overrides new file mode 100644 index 0000000..5e51238 --- /dev/null +++ b/trusty/debian/pydist-overrides @@ -0,0 +1,2 @@ +python_quantumclient +django_nose_selenium diff --git a/debian/python-django-horizon.install b/trusty/debian/python-django-horizon.install similarity index 100% rename from debian/python-django-horizon.install rename to trusty/debian/python-django-horizon.install diff --git a/debian/python-django-horizon.lintian-overrides b/trusty/debian/python-django-horizon.lintian-overrides similarity index 100% rename from debian/python-django-horizon.lintian-overrides rename to trusty/debian/python-django-horizon.lintian-overrides diff --git a/debian/rules b/trusty/debian/rules similarity index 72% rename from debian/rules rename to trusty/debian/rules index 69e7b95..e2be240 100755 --- a/debian/rules +++ b/trusty/debian/rules @@ -8,9 +8,24 @@ PYVER=$(shell pyversions -d) +DEB_VERSION := $(shell dpkg-parsechangelog | egrep '^Version:' | cut -f 2 -d ' ') +DEB_NOEPOCH_VERSION := $(shell echo $(DEB_VERSION) | cut -d: -f2-) +DEB_UPSTREAM_VERSION := $(shell echo $(DEB_NOEPOCH_VERSION) | sed 's/-[^-]*$$//') + +override_dh_auto_clean: + find . -name "django*.mo" -delete || : + rm -f horizon/xstatic + dh_auto_clean + rm -f horizon/openstack_dashboard/local/.secret_key_store + +override_dh_auto_build: + #dh_auto_build + override_dh_auto_install: # install horizon and dashboard python setup.py install --root=$(CURDIR)/debian/tmp --no-compile -O0 --install-layout=deb + # install vendorfied xstatic assets + #cp -r xstatic $(CURDIR)/debian/tmp/usr/lib/$(PYVER)/dist-packages/horizon install -d -m 755 $(CURDIR)/debian/tmp/usr/share/openstack-dashboard install -d -m 755 $(CURDIR)/debian/tmp/etc/openstack-dashboard install -d -m 755 $(CURDIR)/debian/tmp/etc/apache2/conf-available @@ -25,8 +40,6 @@ override_dh_auto_install: $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/manage.py ln -fs /etc/openstack-dashboard/local_settings.py \ $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/local/local_settings.py - cp $(CURDIR)/debian/theme/img/juju.png \ - $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/static/dashboard/img/juju.png ln -fs /usr/lib/$(PYVER)/dist-packages/horizon/static/horizon \ $(CURDIR)/debian/tmp/usr/share/openstack-dashboard/openstack_dashboard/static/horizon @@ -38,10 +51,3 @@ endif get-orig-source: uscan --verbose --force-download --rename --destdir=../build-area - -refresh-static-assets: - (cd openstack_dashboard/local; ln -sf local_settings.py.example local_settings.py) - python ./manage.py compress --force - rm -rf debian/static/openstack-dashboard/* - cp -r static/dashboard/* debian/static/openstack-dashboard/ - rm -f openstack_dashboard/local/local_settings.py diff --git a/debian/source/format b/trusty/debian/source/format similarity index 100% rename from debian/source/format rename to trusty/debian/source/format diff --git a/trusty/debian/source/include-binaries b/trusty/debian/source/include-binaries new file mode 100755 index 0000000..f5a2750 --- /dev/null +++ b/trusty/debian/source/include-binaries @@ -0,0 +1,2 @@ +debian/theme/img/header_stripes.png +debian/theme/img/dots.png diff --git a/debian/static/openstack-dashboard/css/6bd71a04f0c0.css b/trusty/debian/static/openstack-dashboard/css/6bd71a04f0c0.css similarity index 100% rename from debian/static/openstack-dashboard/css/6bd71a04f0c0.css rename to trusty/debian/static/openstack-dashboard/css/6bd71a04f0c0.css diff --git a/debian/static/openstack-dashboard/js/0272dc9e5c21.js b/trusty/debian/static/openstack-dashboard/js/0272dc9e5c21.js similarity index 100% rename from debian/static/openstack-dashboard/js/0272dc9e5c21.js rename to trusty/debian/static/openstack-dashboard/js/0272dc9e5c21.js diff --git a/debian/static/openstack-dashboard/js/b28ee7422312.js b/trusty/debian/static/openstack-dashboard/js/b28ee7422312.js similarity index 100% rename from debian/static/openstack-dashboard/js/b28ee7422312.js rename to trusty/debian/static/openstack-dashboard/js/b28ee7422312.js diff --git a/debian/static/openstack-dashboard/manifest.json b/trusty/debian/static/openstack-dashboard/manifest.json similarity index 100% rename from debian/static/openstack-dashboard/manifest.json rename to trusty/debian/static/openstack-dashboard/manifest.json diff --git a/debian/theme/img/dots.png b/trusty/debian/theme/img/dots.png similarity index 100% rename from debian/theme/img/dots.png rename to trusty/debian/theme/img/dots.png diff --git a/debian/theme/img/header_stripes.png b/trusty/debian/theme/img/header_stripes.png similarity index 100% rename from debian/theme/img/header_stripes.png rename to trusty/debian/theme/img/header_stripes.png diff --git a/debian/theme/templates/_stylesheets.html b/trusty/debian/theme/templates/_stylesheets.html similarity index 73% rename from debian/theme/templates/_stylesheets.html rename to trusty/debian/theme/templates/_stylesheets.html index 6dca9d6..9989e49 100644 --- a/debian/theme/templates/_stylesheets.html +++ b/trusty/debian/theme/templates/_stylesheets.html @@ -6,7 +6,3 @@ {% endcompress %} - - - - -- 2.45.2