Kimchi-devel
Threads by month
- ----- 2025 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
December 2015
- 21 participants
- 133 discussions

[PATCH V2] Create new storage volume when attaching disk to a guest.
by pvital@linux.vnet.ibm.com 29 Jan '16
by pvital@linux.vnet.ibm.com 29 Jan '16
29 Jan '16
From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
Changes in V2:
* Updated test cases
* Modified dictionary return of parameters
V1:
Add back-end support to create new storage volume (new virtual disk) when
attaching disk to a guest created before.
There are three essential parameters to create the new volume:
* vol: Storage volume name of disk image, that should be 'new_vol'.
* capacity: The total space which can be used to store new volumes.
The unit is bytes.
* format: The format of the defined Storage Volume. Only used when creating
a storage volume with 'capacity'.
To test this patch:
$ curl -k -u test -H "Content-Type: application/json" -H "Accept: application/json" 'https://localhost:8001/plugins/kimchi/vms/kimchi-vm-new/storages' -X POST -d '{ "vol": "new_vol", "type": "disk", "pool": "default", "format": "qcow2", "capacity": 1024 }'
Enter host password for user 'test':
{
"bus":"virtio",
"path":"/var/lib/libvirt/images/2477bfd8-a9e2-4887-a683-e89015b3ba11
-1.img",
"type":"disk",
"dev":"vdb",
"format":"qcow2"
}
$ curl -k -u test -H "Content-Type: application/json" -H "Accept: application/json" 'https://localhost:8001/plugins/kimchi/vms/kimchi-vm-new/storages' -X GET
Enter host password for user 'test':
[
{
"bus":"virtio",
"path":"/var/lib/libvirt/images/2477bfd8-a9e2-4887-a683
-e89015b3ba11-0.img",
"type":"disk",
"dev":"vda",
"format":"qcow2"
},
{
"bus":"virtio",
"path":"/var/lib/libvirt/images/2477bfd8-a9e2-4887-a683
-e89015b3ba11-1.img",
"type":"disk",
"dev":"vdb",
"format":"qcow2"
},
{
"bus":"ide",
"path":"/var/lib/kimchi/tests/ubuntu14.04.iso",
"type":"cdrom",
"dev":"hdc",
"format":"raw"
}
]
Paulo Vital (1):
Create new storage volume when attaching disk to a guest.
src/wok/plugins/kimchi/API.json | 12 ++++++++++++
src/wok/plugins/kimchi/docs/API.md | 6 +++++-
src/wok/plugins/kimchi/i18n.py | 1 +
src/wok/plugins/kimchi/model/vmstorages.py | 28 +++++++++++++++++++++++++++-
src/wok/plugins/kimchi/tests/test_model.py | 25 +++++++++++++++++++++++++
5 files changed, 70 insertions(+), 2 deletions(-)
--
2.4.3
5
7

[RFC] Usage of Bootstrap Switch (http://www.bootstrap-switch.org/) for plugins ginger new ui developments
by Atreye Mukhopadhyay 22 Jan '16
by Atreye Mukhopadhyay 22 Jan '16
22 Jan '16
Hi All,
I would like propose the use of Bootstrap Switch
(https://github.com/nostalgiaz/bootstrap-switch) for showing
checkbox/radio element in form of switch button .This toggle switch can
be used for showing status of certain component in form of switch and
trigger action based on the current state.
Official Github location of Bootstrap Switch implementation is @
https://github.com/nostalgiaz/bootstrap-switch. Bootstrap Switch code is
of license type MIT so I guess it can be used safely.
Please feel free to comment on this topic and have your opinion.
Thanks & Regards,
Atreyee
6
7

Re: [Kimchi-devel] Guest disk: Allocate storage volume when attaching disk to vm
by Aline Manera 12 Jan '16
by Aline Manera 12 Jan '16
12 Jan '16
Adding Samuel and Andre to this discussion and also forward to Kimchi ML.
On 16/11/2015 14:21, Aline Manera wrote:
>
> Hi Socorro,
>
> On 12/11/2015 21:20, Socorro Stoppler wrote:
>> Hi Aline,
>>
>> I chatted w/Paulo about the UI portion of this. He stated that the
>> user has the option to select to add a new volume (in which the the
>> UI must execute two requests: one to create a volume, and other to
>> attach the new volume to the guest being edited). So in this screen
>> (I know it's the old UI but this shows better than current new UI :)):
>>
>>
>>
>> What do you think of 3. being radio buttons? -
>
> I think 2 should be that radio buttons.
>
> So:
>
> 1. Device type
> <disk>
>
> 2. ( ) Create a new disk image
>
> ( ) Select existing disk image
>
> 3. Storage pool
> <pools>
>
> 4. Capacity or Volume (depends on selection on 2.)
>
> Below is how virt-manage does it.
>
>
>
>> <New Volume> -
>> Volume: Storage volume name of 'new_vol' --- we prob do not
>> need to show this in the UI, right?
>> Capacity: in bytes
>> Format: qcow2 -- is this the only option we want to provide?
>> <Create Button>
>>
>> <Existing Volume> - which consists of current combobox above
>>
>> Also, if user selects to do the new volume, then created it, but
>> decided that they didn't want to attach it, is that ok? Not sure of
>> the different scenarios we have
>> or if I'm totally missing the intent here.
>>
>> Let me know if you had envisioned something else for this UI.
>>
>> Thanks
>> -Socorro
>>
>>
>
3
4

[PATCH v2][Wok] Change plugins get_list to return only loaded plugins
by Rodrigo Trujillo 07 Jan '16
by Rodrigo Trujillo 07 Jan '16
07 Jan '16
When using multiple plugins, it is possible that some plugin has a
problem and is not loaded (like when there is a missing module).
In this cases, Wok is not going to load the plugin in cherrypy
configuration, but plugins API return the missing plugin name.
When this occours, UI becomes broken and it is not possible to use any
other plugin, because Wok UI is blank.
This patch fix this problem, returning only plugins names that were
loaded by Wok.
Signed-off-by: Rodrigo Trujillo <rodrigo.trujillo(a)linux.vnet.ibm.com>
---
src/wok/model/plugins.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/wok/model/plugins.py b/src/wok/model/plugins.py
index 3a5a89e..85d60b6 100644
--- a/src/wok/model/plugins.py
+++ b/src/wok/model/plugins.py
@@ -19,6 +19,8 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+import cherrypy
+
from wok.utils import get_enabled_plugins
@@ -27,4 +29,7 @@ class PluginsModel(object):
pass
def get_list(self):
- return [plugin for (plugin, config) in get_enabled_plugins()]
+ # Will only return plugins that were loaded correctly by WOK and are
+ # properly configured in cherrypy
+ return [plugin for (plugin, config) in get_enabled_plugins()
+ if config.get('wok').get('uri') in cherrypy.tree.apps.keys()]
--
2.1.0
3
3

[PATCH V5] [Wok] Make run_command log its output into a file.
by pvital@linux.vnet.ibm.com 07 Jan '16
by pvital@linux.vnet.ibm.com 07 Jan '16
07 Jan '16
From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
V4 -> V5:
- Added try/exception to control file IO.
V3 -> V4:
- PEP8 fixes.
V2 -> V3:
- Changed the place of the log_file creation control.
V1 -> V2:
- Removed fixed log file, changing parameter of run_command() method to
accept the path of the log file instead of a boolean.
V1:
Adds the ability of run_command to log the output of a console command into the
file /tmp/wok_tee_log_file, like the "tee" command does.
Using this patch, a command that takes too many time to execute can be monitored
by reading the log file while other tasks are executed.
Paulo Vital (1):
Make run_command log its output into a file.
src/wok/utils.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 48 insertions(+), 2 deletions(-)
--
2.5.0
4
5
Signed-off-by: Lucio Correia <luciojhc(a)linux.vnet.ibm.com>
---
configure.ac | 1 -
1 file changed, 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 692f4ac..d753b67 100644
--- a/configure.ac
+++ b/configure.ac
@@ -38,7 +38,6 @@ AM_INIT_AUTOMAKE([-Wno-portability])
AM_PATH_PYTHON([2.6])
AC_PATH_PROG([PEP8], [pep8], [/usr/bin/pep8])
AC_PYTHON_MODULE([unittest])
-AC_PYTHON_MODULE([cython], [fatal])
AC_SUBST([HAVE_PYMOD_UNITTEST])
AC_SUBST([PYTHON_VERSION])
AM_GNU_GETTEXT([external])
--
1.9.1
3
3
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
---
Changes:
v2:
fix pep8 issues
isoinfo.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/isoinfo.py b/isoinfo.py
index 731c45a..c232fa8 100644
--- a/isoinfo.py
+++ b/isoinfo.py
@@ -111,6 +111,8 @@ iso_dir = [
'openSUSE-DVD-i586-Build0039|openSUSE-DVD-x86_640039'),
('opensuse', '12.2',
'openSUSE-DVD-i586-Build0167|openSUSE-DVD-x86_640167'),
+ ('opensuse', '42.1',
+ 'openSUSE-Leap-42.1-DVD-x86_64026|openSUSE-Leap-42.1-NET-x86_64026'),
('rhel', '4.8', 'RHEL/4-U8'),
('rhel', lambda m: m.group(2), 'RHEL(-LE)?[_/-](\d+\.\d+)'),
('debian', lambda m: m.group(1), 'Debian (\d+\.\d+)'),
--
2.1.0
3
2

Aline is out on vacations, Daniel is taking temp maintainership ***use the temp repo*** !
by Daniel Henrique Barboza 07 Jan '16
by Daniel Henrique Barboza 07 Jan '16
07 Jan '16
Hello everyone,
Aline is out on well deserved vacations. I'll be her replacement while
she's out.
As we did earlier this year, I'll resume her duties in the community
reviewing
and applying patches, but I'll do it so in my fork @ github:
WoK temp repo: https://github.com/danielhb/wok.git
Kimchi temp repo: https://github.com/danielhb/kimchi.git
So, in these 2-3 weeks she's out, use these temp repos to get the latest
changes in Wok and Kimchi. Aline will merge this fork with the official
WoK/Kimchi
repo when she comes back.
All coding standards and best practices she enforces in WoK/Kimchi
contributions
will be enforced by me as well. So no need to worry, but no reason to
get lazy either!
So, long story short, use those 2 temp repos and keep doing the same
thing as
always.
Happy coding!
Daniel
2
1

Re: [Kimchi-devel] [PATCH] Fixed the comments for debugreports in report tool and removed the check for platform s390x and introduced wok_log errors in log_errors.
by Megha Smriti 29 Dec '15
by Megha Smriti 29 Dec '15
29 Dec '15
Hi Aline,
Please find my comments below.
Regards,
Megha
> Subject: Re: [Kimchi-devel] [PATCH] Fixed the comments for
> debugreports in report tool and removed the check for platform s390x
> and introduced wok_log errors in log_errors.
> Date: Mon, 30 Nov 2015 12:03:46 -0200
> From: Aline Manera <alinefm(a)linux.vnet.ibm.com>
> To: mesmriti(a)linux.vnet.ibm.com, Kimchi Devel <kimchi-devel(a)ovirt.org>
>
>
>
> Almost there! =)
>
> Some comments below
>
> On 19/11/2015 02:56,mesmriti@linux.vnet.ibm.com wrote:
> > From: root<root(a)localhost.localdomain>
> >
> > Signed-off-by:mesmriti@linux.vnet.ibm.com
> > ---
> > src/wok/plugins/gingerbase/i18n.py | 4 +-
> > src/wok/plugins/gingerbase/model/debugreports.py | 181 ++++++++++++++++++-----
> > 2 files changed, 143 insertions(+), 42 deletions(-)
> >
> > diff --git a/src/wok/plugins/gingerbase/i18n.py b/src/wok/plugins/gingerbase/i18n.py
> > index af75c70..6ff783b 100644
> > --- a/src/wok/plugins/gingerbase/i18n.py
> > +++ b/src/wok/plugins/gingerbase/i18n.py
> > @@ -36,7 +36,9 @@ messages = {
> > "GGBDR0007E": _("Debug report name must be a string. Only letters, digits, underscore ('_') and "
> > "hyphen ('-') are allowed."),
> > "GGBDR0008E": _("The debug report with specified name \"%(name)s\" already exists. Please use another one."),
> > -
> > + "GGBDR0009E": _("Unable to create dbginfo report with %(retcode)s. Details: %(err)s"),
> > + "GGBDR0010E": _("Unable to compress the final debug report tar file with %(retcode)s. Details: %(error)s"),
> > + "GGBDR0011E": _("Unable to generate final debug report %(name)s. Details: %(err)s"),
> > "GGBHOST0001E": _("Unable to shutdown host machine as there are running virtual machines"),
> > "GGBHOST0002E": _("Unable to reboot host machine as there are running virtual machines"),
> > "GGBHOST0003E": _("There may be virtual machines running on the host"),
> > diff --git a/src/wok/plugins/gingerbase/model/debugreports.py b/src/wok/plugins/gingerbase/model/debugreports.py
> > index 94ab7fe..c6b60e8 100644
> > --- a/src/wok/plugins/gingerbase/model/debugreports.py
> > +++ b/src/wok/plugins/gingerbase/model/debugreports.py
> > @@ -19,13 +19,13 @@
> > # License along with this library; if not, write to the Free Software
> > # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> >
> > -import fnmatch
> > import glob
> > import logging
> > import os
> > import shutil
> > import subprocess
> > import time
> > +import re
> >
> > from wok.exception import InvalidParameter, NotFoundError, OperationFailed
> > from wok.exception import WokException
> > @@ -71,54 +71,107 @@ class DebugReportsModel(object):
> > raise OperationFailed("GGBDR0002E")
> >
> > @staticmethod
> > - def sosreport_generate(cb, name):
> > + def debugreport_generate(cb, name):
> > def log_error(e):
> > - log = logging.getLogger('Model')
> > - log.warning('Exception in generating debug file: %s', e)
> > + wok_log = logging.getLogger('Model')
> > + wok_log.warning('Exception in generating debug file: %s', e)
> >
> > try:
> > - command = ['sosreport', '--batch', '--name=%s' % name]
> > + # Sosreport generation
> > + sosreport_file = sosreport_collection(name)
> > + md5_report_file = sosreport_file + '.md5'
> > + report_file_extension = '.' + sosreport_file.split('.', 1)[1]
> > + # If the platform is a system Z machine.
> > + path_debugreport = '/var/tmp/'
> > + dbgreport_regex = '(\S+\s+)(' + path_debugreport + \
> > + 'DBGINFO-[\d+]{4}-[\d+]{2}' \
> > + '-[\d+]{2}-[\d+]{2}-[\d+]{2}' \
> > + '-[\d+]{2}-\w+-\d+\S+)(\s+\S+)'
> > + command = ['/usr/sbin/dbginfo.sh', '-d', path_debugreport]
> > output, error, retcode = run_command(command)
> > -
> > if retcode != 0:
> > - raise OperationFailed("GGBDR0003E", {'name': name,
> > - 'err': retcode})
> > -
> > - # SOSREPORT might create file in /tmp or /var/tmp
> > - # FIXME: The right way should be passing the tar.xz file directory
> > - # though the parameter '--tmp-dir', but it is failing in Fedora 20
> > - patterns = ['/tmp/sosreport-%s-*', '/var/tmp/sosreport-%s-*']
> > - reports = []
> > - reportFile = None
> > - for p in patterns:
> > - reports = reports + [f for f in glob.glob(p % name)]
> > - for f in reports:
> > - if not fnmatch.fnmatch(f, '*.md5'):
> > - reportFile = f
> > + raise OperationFailed("GGBDR0009E",
> > + {'retcode': retcode, 'err': error})
>
> > + output = output.splitlines()
> > + dbginfo_report = None
> > + for line in output:
> > + line = line.strip()
> > + n = re.match(dbgreport_regex, line)
> > + if n:
> > + dbginfo_report = n.groups()[1]
> > break
>
> As you know where dbg report will be created, you can change the
> dbgreport_regex to be a string pattern and use glob.
>
> import glob
>
> file = glob.glob(dgbreport_pattern)
> if len(file) == 0:
> # error
[Megha:] Will incorporate this in my next patch.
> I included I more detailed example on how use glob below.
>
> > - # Some error in sosreport happened
> > - if reportFile is None:
> > - wok_log.error('Debug report file not found. See sosreport '
> > - 'output for detail:\n%s', output)
> > - fname = (patterns[0] % name).split('/')[-1]
> > - raise OperationFailed('GGBDR0004E', {'name': fname})
> > -
> > - md5_report_file = reportFile + '.md5'
> > - report_file_extension = '.' + reportFile.split('.', 1)[1]
> > + final_tar_report_name = name + report_file_extension
> > + sosreport_tar = sosreport_file.split('/', 3)[3]
> > + dbginfo_tar = dbginfo_report.split('/', 3)[3]
> > + msg = 'Compressing the sosreport and debug info files into ' \
> > + 'final report file'
> > + wok_log.info(msg)
> > + # Compressing the sosreport and dbginfo reports into one
> > + # tar file
> > + command = ['tar', '-cvzf', '%s' % final_tar_report_name,
> > + '-C', path_debugreport, dbginfo_tar,
> > + sosreport_tar]
> > + output, error, retcode = run_command(command)
> > + if retcode != 0:
> > + raise OperationFailed("GGBDR0010E",
> > + {'retcode': retcode,
> > + 'error': error})
> > path = config.get_debugreports_path()
> > - target = os.path.join(path, name + report_file_extension)
> > - # Moving report
> > - msg = 'Moving debug report file "%s" to "%s"' % (reportFile,
> > - target)
> > + dbg_target = os.path.join(path,
> > + name + report_file_extension)
> > + # Moving final tar file to debugreports path
> > + msg = 'Moving final debug report file "%s" to "%s"' % \
> > + (final_tar_report_name, dbg_target)
> > + wok_log.info(msg)
> > + shutil.move(final_tar_report_name, dbg_target)
> > + # Deleting the sosreport md5 file
> > + delete_the_sosreport_md5_file(md5_report_file)
> > + # Deleting the dbingo report file
> > + msg = 'Deleting the dbginfo file "%s" ' \
> > + % dbginfo_report
> > wok_log.info(msg)
> > - shutil.move(reportFile, target)
> > - # Deleting md5
> > - msg = 'Deleting report md5 file: "%s"' % (md5_report_file)
> > + os.remove(dbginfo_report)
> > + # Deleting the sosreport file
> > + msg = 'Deleting the sosreport file "%s" ' % sosreport_file
> > wok_log.info(msg)
> > - with open(md5_report_file) as f:
> > - md5 = f.read().strip()
> > - wok_log.info('Md5 file content: "%s"', md5)
> > - os.remove(md5_report_file)
> > + os.remove(sosreport_file)
> > + wok_log.info('The debug report file has been moved')
> > + cb('OK', True)
> > + return
> > +
>
> > + except WokException as e:
> > + log_error(e)
> > + raise
> > +
> > + except OSError as e:
> > + log_error(e)
> > + raise
> > +
>
> Please, raise an appropriated exception. Otherwise, the user will not be
> able to understand what went wrong.
> [Megha]: As far as exceptions are concerned These are the exception I think can be thrown back from the try block and
it is also similar to what is done in sosreport.
Please correct me if I any suggestions.
> > + except Exception, e:
> > + # No need to call cb to update the task status here.
> > + # The task object will catch the exception raised here
> > + # and update the task status there
> > + log_error(e)
> > + raise OperationFailed("GGBDR0011E", {'name': name, 'err': e})
> > +
> > + @staticmethod
> > + def sosreport_generate(cb, name):
> > + def log_error(e):
> > + wok_log = logging.getLogger('Model')
> > + wok_log.warning('Exception in generating debug file: %s', e)
> > + try:
> > + # Sosreport collection
> > + sosreport_file = sosreport_collection(name)
> > + md5_report_file = sosreport_file + '.md5'
> > + report_file_extension = '.' + sosreport_file.split('.', 1)[1]
> > + path = config.get_debugreports_path()
> > + sosreport_target = os.path.join(path,
> > + name + report_file_extension)
> > + msg = 'Moving debug report file "%s" to "%s"' \
> > + % (sosreport_file, sosreport_target)
> > + wok_log.info(msg)
> > + shutil.move(sosreport_file, sosreport_target)
> > + delete_the_sosreport_md5_file(md5_report_file)
> > cb('OK', True)
> > return
> >
> > @@ -142,7 +195,9 @@ class DebugReportsModel(object):
> > # Please add new possible debug report command here
> > # and implement the report generating function
> > # based on the new report command
> > - report_tools = ({'cmd': 'sosreport --help',
> > + report_tools = ({'cmd': '/usr/sbin/dbginfo.sh --help',
> > + 'fn': DebugReportsModel.debugreport_generate},
> > + {'cmd': 'sosreport --help',
> > 'fn': DebugReportsModel.sosreport_generate},)
> >
> > # check if the command can be found by shell one by one
> > @@ -213,3 +268,47 @@ class DebugReportContentModel(object):
> >
> > def lookup(self, name):
> > return self._debugreport.lookup(name)
> > +
> > +
> > +def delete_the_sosreport_md5_file(md5_file):
> > + """
> > + Deleting md5 file and displaying the contents of the same.
> > + """
> > + msg = 'Deleting report md5 file: "%s"' % md5_file
> > + wok_log.info(msg)
> > + with open(md5_file) as f:
> > + md5 = f.read().strip()
> > + wok_log.info('Md5 file content: "%s"', md5)
> > + os.remove(md5_file)
> > +
> > +
> > +def sosreport_collection(name):
> > + """
> > + Code for the collection of sosreport n the path
> > + /var/tmp as specified in the command.
> > + """
> > + path_sosreport = '/var/tmp/'
> > + command = ['sosreport', '--batch', '--name=%s' % name,
> > + '--tmp-dir=%s' % path_sosreport]
> > + output, error, retcode = run_command(command)
> > + if retcode != 0:
> > + raise OperationFailed("GGBDR0003E", {'name': name,
> > + 'err': retcode})
> > +
>
> > + sosreport_name_regex = '(\s+)(' + path_sosreport + \
> > + 'sosreport-' +\
> > + name + '-\d+.tar.xz)'
> > + sosreport_file = None
> > + output = output.splitlines()
> > + for line in output:
> > + if line:
> > + matched_name = re.match(sosreport_name_regex, line)
> > + if matched_name:
> > + sosreport_file = matched_name.groups()[1]
> > + break
> > + # Some error in sosreport happened
> > + if sosreport_file is None:
> > + wok_log.error('Debug report file not found. See sosreport '
> > + 'output for detail:\n%s', output)
> > + raise OperationFailed('GGBDR0004E', {'name': name})
> > + return sosreport_file
>
> You know the sosreport file was created under /var/tmp so you don't need
> to query the command output to know the file was created or not.
>
> If you want to confirm the file was created you can use 'glob'
>
> import glob
>
> sosreport_pattern = path_sosreport + 'sosreport-' + name + '.tar.xz'
> sosreport_file = glob.glob(sosreport_pattern)
>
> if len(sosreport_file) == 0:
> raise OperationFailed()
>
> return sosreport_file[0]
>
> [Megha]: Will incorporate in my next patch
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel(a)ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>
>
>
2
1
.git isn't a directory on submodles, it's handler for a directory in
Wok. This will avoid this kind of error:
./.git:1:7: invalid syntax
gitdir: ../../../../.git/modules/src/wok/plugins/<plugin>
^
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 1c5af68..bb3311b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -59,7 +59,7 @@ I18N_FILES = ./i18n.py \
check-local:
contrib/check_i18n.py $(I18N_FILES)
- find . -path './.git' -prune -type f -o \
+ find . -path -prune -type f -o \
-name '*.py' -o -name '*.py.in' | xargs $(PYFLAKES) | \
while read LINE; do echo "$$LINE"; false; done
--
2.1.0
2
1
.git isn't a directory on submodles, it's handler for a directory in
Wok. This will avoid this kind of error:
./.git:1:7: invalid syntax
gitdir: ../../../../.git/modules/src/wok/plugins/<plugin>
^
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 58abe84..e0c371d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -58,7 +58,7 @@ I18N_FILES = ./i18n.py \
# $ git hash-object -t tree /dev/null
check-local:
contrib/check_i18n.py $(I18N_FILES)
- find . -path './.git' -prune -type f -o \
+ find . -path -prune -type f -o \
-name '*.py' -o -name '*.py.in' | xargs $(PYFLAKES) | \
while read LINE; do echo "$$LINE"; false; done
$(PEP8) --version
--
2.1.0
1
1
.git isn't a directory on submodles, it's handler for a directory in
Wok. This will avoid this kind of error:
./.git:1:7: invalid syntax
gitdir: ../../../../.git/modules/src/wok/plugins/<plugin>
^
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index 1f6d703..5e875d1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -58,7 +58,7 @@ I18N_FILES = ./i18n.py \
check-local:
contrib/check_i18n.py $(I18N_FILES)
- find . -path './.git' -prune -type f -o \
+ find . -path -prune -type f -o \
-name '*.py' -o -name '*.py.in' | xargs $(PYFLAKES) | \
while read LINE; do echo "$$LINE"; false; done
--
2.1.0
1
0
Changes:
v2:
Fix pep8 issues
This patch changes how templates are created. Instead of specifying cdrom and
disks, add them into a single field and kimchi will identify it.
Points to take noteL
1) UI support. Another task will need to change UI for a single entry.
2) Old support for cdrom and disk installation are still available. All tests
are running under tests/test*.
Ramon Medeiros (4):
Create new field to create VM
Method to retrieve stored templates at object store
Fix checking duplicate template before creating it
Identify installation media while creating template
API.json | 5 +++
model/templates.py | 9 ++--
utils.py | 30 +++++++++++++
vmtemplate.py | 121 +++++++++++++++++++++++++++++++++++++++++++++++------
4 files changed, 149 insertions(+), 16 deletions(-)
--
2.1.0
1
4
This patch changes how templates are created. Instead of specifying cdrom and
disks, add them into a single field and kimchi will identify it.
Points to take noteL
1) UI support. Another task will need to change UI for a single entry.
2) Old support for cdrom and disk installation are still available. All tests
are running under tests/test*.
Ramon Medeiros (4):
Create new field to create VM
Method to retrieve stored templates at object store
Fix checking duplicate template before creating it
Identify installation media while creating template
API.json | 5 +++
model/templates.py | 9 ++--
utils.py | 28 ++++++++++++
vmtemplate.py | 122 +++++++++++++++++++++++++++++++++++++++++++++++------
4 files changed, 146 insertions(+), 18 deletions(-)
--
2.1.0
3
10

[PATCH V4] [Wok] Make run_command log its output into a file.
by pvital@linux.vnet.ibm.com 28 Dec '15
by pvital@linux.vnet.ibm.com 28 Dec '15
28 Dec '15
From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
V3 -> V4:
- PEP8 fixes.
V2 -> V3:
- Changed the place of the log_file creation control.
V1 -> V2:
- Removed fixed log file, changing parameter of run_command() method to
accept the path of the log file instead of a boolean.
V1:
Adds the ability of run_command to log the output of a console command into the
file /tmp/wok_tee_log_file, like the "tee" command does.
Using this patch, a command that takes too many time to execute can be monitored
by reading the log file while other tasks are executed.
Paulo Vital (1):
Make run_command log its output into a file.
src/wok/utils.py | 45 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 43 insertions(+), 2 deletions(-)
--
2.5.0
3
3

[PATCH V3] [Wok] Make run_command log its output into a file.
by pvital@linux.vnet.ibm.com 24 Dec '15
by pvital@linux.vnet.ibm.com 24 Dec '15
24 Dec '15
From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
Adds the ability of run_command to log the output of a console command into a
given file, like the "tee" command does.
Using this patch, a command that takes too many time to execute can be monitored
by reading the log file while other tasks are executed.
Signed-off-by: Paulo Vital <pvital(a)linux.vnet.ibm.com>
---
src/wok/utils.py | 45 ++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 42 insertions(+), 3 deletions(-)
diff --git a/src/wok/utils.py b/src/wok/utils.py
index 7b1b309..c8a6862 100644
--- a/src/wok/utils.py
+++ b/src/wok/utils.py
@@ -135,13 +135,15 @@ def import_module(module_name, class_name=''):
return __import__(module_name, globals(), locals(), [class_name])
-def run_command(cmd, timeout=None, silent=False):
+def run_command(cmd, timeout=None, silent=False, tee=None):
"""
cmd is a sequence of command arguments.
timeout is a float number in seconds.
timeout default value is None, means command run without timeout.
silent is bool, it will log errors using debug handler not error.
silent default value is False.
+ tee is a file path to store the output of the command, like 'tee' command.
+ tee default value is None, means output will not be logged.
"""
# subprocess.kill() can leave descendants running
# and halting the execution. Using psutil to
@@ -159,6 +161,19 @@ def run_command(cmd, timeout=None, silent=False):
else:
timeout_flag[0] = True
+ # function to append the given msg into the log_file
+ def tee_log(msg=None, log_file=None):
+ if (msg is None) or (log_file is None):
+ return
+
+ f = open(log_file, 'a')
+ msg +='\n'
+ try:
+ f.write(msg)
+ except TypeError:
+ f.write(msg.encode('utf_8'))
+ f.close()
+
proc = None
timer = None
timeout_flag = [False]
@@ -171,8 +186,33 @@ def run_command(cmd, timeout=None, silent=False):
timer.setDaemon(True)
timer.start()
- out, error = proc.communicate()
wok_log.debug("Run command: '%s'", " ".join(cmd))
+ if tee is not None:
+ if os.path.exists(tee):
+ os.remove(tee)
+ output = []
+ while True:
+ line = ""
+ try:
+ line = proc.stdout.readline()
+ line = line.decode('utf_8')
+ except Exception:
+ type, e, tb = sys.exc_info()
+ wok_log.error(e)
+ wok_log.error("The output of the command could not be "
+ " decoded as %s\ncmd: %s\n line ignored: %s" %
+ ('utf_8', cmd, repr(line)))
+ pass
+
+ output.append(line)
+ if not line:
+ break
+ line = line.rstrip('\n\r')
+ tee_log(line, tee)
+ out = ''.join(output)
+ error = proc.stderr.read()
+ else:
+ out, error = proc.communicate()
if out:
wok_log.debug("out:\n%s", out)
@@ -219,7 +259,6 @@ def run_command(cmd, timeout=None, silent=False):
if timer and not timeout_flag[0]:
timer.cancel()
-
def parse_cmd_output(output, output_items):
res = []
for line in output.split("\n"):
--
2.5.0
2
1

[PATCH V2] [Wok] Make run_command log its output into a file.
by pvital@linux.vnet.ibm.com 24 Dec '15
by pvital@linux.vnet.ibm.com 24 Dec '15
24 Dec '15
From: Paulo Vital <pvital(a)linux.vnet.ibm.com>
Adds the ability of run_command to log the output of a console command into a
given file, like the "tee" command does.
Using this patch, a command that takes too many time to execute can be monitored
by reading the log file while other tasks are executed.
Signed-off-by: Paulo Vital <pvital(a)linux.vnet.ibm.com>
---
src/wok/utils.py | 45 ++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 42 insertions(+), 3 deletions(-)
diff --git a/src/wok/utils.py b/src/wok/utils.py
index 7b1b309..df48563 100644
--- a/src/wok/utils.py
+++ b/src/wok/utils.py
@@ -135,13 +135,15 @@ def import_module(module_name, class_name=''):
return __import__(module_name, globals(), locals(), [class_name])
-def run_command(cmd, timeout=None, silent=False):
+def run_command(cmd, timeout=None, silent=False, tee=None):
"""
cmd is a sequence of command arguments.
timeout is a float number in seconds.
timeout default value is None, means command run without timeout.
silent is bool, it will log errors using debug handler not error.
silent default value is False.
+ tee is a file path to store the output of the command, like 'tee' command.
+ tee default value is None, means output will not be logged.
"""
# subprocess.kill() can leave descendants running
# and halting the execution. Using psutil to
@@ -159,6 +161,19 @@ def run_command(cmd, timeout=None, silent=False):
else:
timeout_flag[0] = True
+ # function to append the given msg into the log_file
+ def tee_log(msg=None, log_file=None):
+ if (msg is None) or (log_file is None):
+ return
+
+ f = open(log_file, 'a')
+ msg +='\n'
+ try:
+ f.write(msg)
+ except TypeError:
+ f.write(msg.encode('utf_8'))
+ f.close()
+
proc = None
timer = None
timeout_flag = [False]
@@ -171,8 +186,31 @@ def run_command(cmd, timeout=None, silent=False):
timer.setDaemon(True)
timer.start()
- out, error = proc.communicate()
wok_log.debug("Run command: '%s'", " ".join(cmd))
+ if tee is not None:
+ output = []
+ while True:
+ line = ""
+ try:
+ line = proc.stdout.readline()
+ line = line.decode('utf_8')
+ except Exception:
+ type, e, tb = sys.exc_info()
+ wok_log.error(e)
+ wok_log.error("The output of the command could not be "
+ " decoded as %s\ncmd: %s\n line ignored: %s" %
+ ('utf_8', cmd, repr(line)))
+ pass
+
+ output.append(line)
+ if not line:
+ break
+ line = line.rstrip('\n\r')
+ tee_log(line, tee)
+ out = ''.join(output)
+ error = proc.stderr.read()
+ else:
+ out, error = proc.communicate()
if out:
wok_log.debug("out:\n%s", out)
@@ -218,7 +256,8 @@ def run_command(cmd, timeout=None, silent=False):
finally:
if timer and not timeout_flag[0]:
timer.cancel()
-
+ if tee is not None and os.path.exists(tee):
+ os.remove(tee)
def parse_cmd_output(output, output_items):
res = []
--
2.5.0
1
0
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
---
isoinfo.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/isoinfo.py b/isoinfo.py
index 731c45a..3e04624 100644
--- a/isoinfo.py
+++ b/isoinfo.py
@@ -111,6 +111,8 @@ iso_dir = [
'openSUSE-DVD-i586-Build0039|openSUSE-DVD-x86_640039'),
('opensuse', '12.2',
'openSUSE-DVD-i586-Build0167|openSUSE-DVD-x86_640167'),
+ ('opensuse','42.1',
+ 'openSUSE-Leap-42.1-DVD-x86_64026|openSUSE-Leap-42.1-NET-x86_64026'),
('rhel', '4.8', 'RHEL/4-U8'),
('rhel', lambda m: m.group(2), 'RHEL(-LE)?[_/-](\d+\.\d+)'),
('debian', lambda m: m.group(1), 'Debian (\d+\.\d+)'),
--
2.1.0
3
2

23 Dec '15
From: Andre Teodoro <andreteodoro.work(a)gmail.com>
Adding Gallery View at Templates screen
Andre Teodoro (1):
Adding Gallery View at Templates screen
ui/css/src/modules/_templates.scss | 115 ++++++++++++++++++++++++++++++++++---
ui/js/src/kimchi.template_main.js | 20 ++++++-
ui/pages/tabs/templates.html.tmpl | 17 +++---
3 files changed, 134 insertions(+), 18 deletions(-)
--
1.8.3.1
2
5

[PATCH] [Kimchi V2] Do not rely on python-pip to install build dependencies
by Aline Manera 23 Dec '15
by Aline Manera 23 Dec '15
23 Dec '15
Thi patch add kimchi.css file to the source control. That way the
build process does not need to rely on python-pip to install build
dependencies.
The python-pip is still required for UI development to install cython
and libsass libraries. They will be needed to generate kimchi.css file
according to changes in .scss files.
When modifying the .scss files, make sure to run:
$ make -C ui/css css
to update kimchi.css accordingly.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
V1 -> V2:
- Update README.md
---
.gitignore | 1 -
contrib/DEBIAN/control.in | 4 +-
contrib/kimchi.spec.fedora.in | 2 -
contrib/kimchi.spec.suse.in | 2 -
docs/README.md | 28 +-
ui/css/Makefile.am | 6 +-
ui/css/kimchi.css | 2036 +++++++++++++++++++++++++++++++++++++++++
7 files changed, 2063 insertions(+), 16 deletions(-)
create mode 100644 ui/css/kimchi.css
diff --git a/.gitignore b/.gitignore
index d3db739..0cd7265 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,3 @@ po/gen-pot
*.rej
*.pem
ui/pages/help/*/*.html
-ui/css/kimchi.css
\ No newline at end of file
diff --git a/contrib/DEBIAN/control.in b/contrib/DEBIAN/control.in
index 6071d0b..b6acdaf 100644
--- a/contrib/DEBIAN/control.in
+++ b/contrib/DEBIAN/control.in
@@ -29,8 +29,6 @@ Depends: wok,
python-paramiko
Build-Depends: xsltproc,
gettext,
- python-lxml,
- python-dev,
- python-pip
+ python-lxml
Maintainer: Aline Manera <alinefm(a)br.ibm.com>
Description: Kimchi web application
diff --git a/contrib/kimchi.spec.fedora.in b/contrib/kimchi.spec.fedora.in
index b30637d..163a702 100644
--- a/contrib/kimchi.spec.fedora.in
+++ b/contrib/kimchi.spec.fedora.in
@@ -34,8 +34,6 @@ Requires: python-paramiko
BuildRequires: gettext-devel
BuildRequires: libxslt
BuildRequires: python-lxml
-BuildRequires: python-devel
-BuildRequires: python-pip
%if 0%{?rhel} >= 6 || 0%{?fedora} >= 19
Requires: spice-html5
diff --git a/contrib/kimchi.spec.suse.in b/contrib/kimchi.spec.suse.in
index e65df67..2206e09 100644
--- a/contrib/kimchi.spec.suse.in
+++ b/contrib/kimchi.spec.suse.in
@@ -34,8 +34,6 @@ Requires: python-paramiko
BuildRequires: gettext-tools
BuildRequires: libxslt-tools
BuildRequires: python-lxml
-BuildRequires: python-devel
-BuildRequires: python-pip
%if 0%{?suse_version} == 1100
Requires: python-ordereddict
diff --git a/docs/README.md b/docs/README.md
index 19ae0b0..1219bbd 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -56,15 +56,19 @@ Install Dependencies
python-websockify novnc spice-html5 \
python-configobj python-magic python-paramiko
- # If using RHEL, install the following additional packages:
- $ sudo yum install python-unittest2 python-ordereddict
+ # If using RHEL, install the following additional packages:
+ $ sudo yum install python-unittest2 python-ordereddict
- # Restart libvirt to allow configuration changes to take effect
- $ sudo service libvirtd restart
+ # Restart libvirt to allow configuration changes to take effect
+ $ sudo service libvirtd restart
# These dependencies are only required if you want to run the tests:
$ sudo yum install pyflakes python-pep8 python-requests python-mock
+ # For UI development
+ $ sudo yum install gcc-c++ python-devel python pip
+ $ sudo pip install cython libsass
+
*Note for RHEL users*: Some of the above packages are located in the Red Hat
EPEL repositories. See
@@ -86,6 +90,10 @@ channel at RHN Classic or Red Hat Satellite.
# These dependencies are only required if you want to run the tests:
$ sudo apt-get install pep8 pyflakes python-requests python-mock
+ # For UI development
+ $ sudo apt-get install g++ python-dev python pip
+ $ sudo pip install cython libsass
+
**For openSUSE:**
$ sudo zypper install wok libvirt-python libvirt gettext-tools \
@@ -98,6 +106,10 @@ channel at RHN Classic or Red Hat Satellite.
# These dependencies are only required if you want to run the tests:
$ sudo zypper install python-pyflakes python-pep8 python-requests python-mock
+ # For UI development
+ $ sudo zypper install python-devel python pip
+ $ sudo pip install cython libsass
+
*Note for openSUSE users*: Some of the above packages are located in different
openSUSE repositories. See
[this FAQ](http://download.opensuse.org/repositories/home:GRNET:synnefo/) for
@@ -173,6 +185,14 @@ Test
After all tests are executed, a summary will be displayed containing any
errors/failures which might have occurred.
+
+UI Development
+----
+Make sure to update the CSS files when modifying the SCSS files by running:
+
+ $ sudo make -C ui/css css
+
+
Usage
-----
diff --git a/ui/css/Makefile.am b/ui/css/Makefile.am
index 47c01fc..5758e59 100644
--- a/ui/css/Makefile.am
+++ b/ui/css/Makefile.am
@@ -18,8 +18,6 @@
cssdir = $(datadir)/wok/plugins/kimchi/ui/css
dist_css_DATA = kimchi.css
-%.css: src/%.scss
+css: src/*.scss src/modules/*.scss
echo "Compiling .scss file $<"
- sassc -s expanded $< $(@:.scss=.css)
-
-CLEANFILES = kimchi.css
+ sassc -s expanded $< kimchi.css
diff --git a/ui/css/kimchi.css b/ui/css/kimchi.css
new file mode 100644
index 0000000..ec57c93
--- /dev/null
+++ b/ui/css/kimchi.css
@@ -0,0 +1,2036 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * 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.
+ */
+/*
+ * A partial implementation of the Ruby list functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/…
+ */
+/*
+ * A partial implementation of the Ruby constants functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/…
+ */
+/*
+ * A partial implementation of the Ruby display functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/core/lib/compass/core/sass_e…
+ */
+.absolute-middle {
+ margin: auto;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ text-align: center;
+}
+
+.animate-spin {
+ -webkit-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+ display: inline-block;
+}
+
+@keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+/* Template & Guests Modal Windows */
+#template-add-window.modal-content label.box-iso-outer,
+#guest-add-window.modal-content label.box-iso-outer {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 14px !important;
+ font-weight: 400;
+ border-radius: 3px;
+ overflow: hidden;
+ display: block;
+ -webkit-user-select: none;
+ user-select: none;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-border,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-border {
+ display: block;
+ border: 3px solid transparent;
+ transition: all .1s ease-in-out;
+}
+
+#template-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border,
+#template-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border,
+#guest-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border,
+#guest-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border {
+ border-color: #8cc63f;
+}
+
+#template-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border > .box-iso-inner,
+#template-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border > .box-iso-inner,
+#guest-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border > .box-iso-inner,
+#guest-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border > .box-iso-inner {
+ border-color: #000;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner {
+ display: block;
+ border: 1px solid transparent;
+ background: #fff;
+ transition: all .1s ease-in-out;
+}
+
+#template-add-window.modal-content ul.list-template,
+#template-add-window.modal-content ul.list-iso,
+#guest-add-window.modal-content ul.list-template,
+#guest-add-window.modal-content ul.list-iso {
+ display: block;
+ overflow-x: hidden;
+ overflow-y: auto;
+ max-height: 462px;
+ list-style: none;
+ margin: 0 -5px 10px -5px;
+ padding: 0;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dl,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dl {
+ margin-bottom: 16px;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dt,
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dd,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dt,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dd {
+ padding: 0 12px 0 20px;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dt,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dt {
+ padding-top: 5px;
+ text-transform: capitalize;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dd,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dd {
+ padding-bottom: 5px;
+}
+
+#template-add-window.modal-content ul#templateTile input[type="radio"].iso-radio-hidden,
+#template-add-window.modal-content ul#list-local-iso input[type="checkbox"].iso-checkbox-hidden,
+#template-add-window.modal-content ul#list-remote-iso input[type="checkbox"].iso-checkbox-hidden,
+#guest-add-window.modal-content ul#templateTile input[type="radio"].iso-radio-hidden,
+#guest-add-window.modal-content ul#list-local-iso input[type="checkbox"].iso-checkbox-hidden,
+#guest-add-window.modal-content ul#list-remote-iso input[type="checkbox"].iso-checkbox-hidden {
+ display: none;
+}
+
+#template-add-window.modal-content label.box-iso-outer,
+#guest-add-window.modal-content label.box-iso-outer {
+ cursor: pointer;
+}
+
+#template-add-window.modal-content ul#list-local-iso li.col-md-3,
+#template-add-window.modal-content ul#list-remote-iso li.col-md-3,
+#guest-add-window.modal-content ul#list-local-iso li.col-md-3,
+#guest-add-window.modal-content ul#list-remote-iso li.col-md-3 {
+ width: 241px;
+ margin: 10px 5px 0;
+}
+
+#template-add-window.modal-content h3.iso-title,
+#guest-add-window.modal-content h3.iso-title {
+ font-size: 22px;
+ font-weight: 300;
+ line-height: 22px;
+ margin: 0;
+ padding: 13px 40px 13px 20px;
+ background-color: transparent;
+ background-position: right 10px center;
+ background-repeat: no-repeat;
+ background-size: auto 27px;
+ background-origin: padding-box;
+ max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+#template-add-window.modal-content h3.iso-title.centos,
+#guest-add-window.modal-content h3.iso-title.centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#template-add-window.modal-content h3.iso-title.debian,
+#guest-add-window.modal-content h3.iso-title.debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#template-add-window.modal-content h3.iso-title.fedora,
+#guest-add-window.modal-content h3.iso-title.fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#template-add-window.modal-content h3.iso-title.opensuse,
+#guest-add-window.modal-content h3.iso-title.opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#template-add-window.modal-content h3.iso-title.ubuntu,
+#guest-add-window.modal-content h3.iso-title.ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#template-add-window.modal-content h3.iso-title.gentoo,
+#guest-add-window.modal-content h3.iso-title.gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#template-add-window.modal-content h3.iso-title.unknown,
+#guest-add-window.modal-content h3.iso-title.unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+/* Create Guest Modal */
+.guests-modal .modal-dialog {
+ width: 1100px;
+}
+
+.guests-modal .page-list {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+}
+
+.guests-modal .page {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ padding: 10px 30px;
+}
+
+#guest-add-window .modal-body {
+ margin: 0;
+ padding: 0;
+}
+
+#guest-add-window .modal-footer {
+ margin-top: 0;
+}
+
+#guest-add-window .modal-footer .btn + .btn {
+ margin-left: 0;
+}
+
+#guest-add-window .modal-footer .btn {
+ margin-right: 5px;
+}
+
+#guest-add-window .modal-dialog {
+ width: 900px;
+}
+
+#guest-add-window .guest-modal-container {
+ padding: 10px 30px;
+ position: relative;
+}
+
+#guest-add-window .guest-pager {
+ background: #eee;
+ overflow: hidden;
+ position: relative;
+ height: 530px;
+}
+
+#guest-add-window.modal-content p {
+ margin: 0 0 10px 0;
+}
+
+#guest-add-window.modal-content h5 {
+ font-size: 13pt;
+ font-weight: 400;
+ margin-top: 0;
+}
+
+#guest-add-window.modal-content label {
+ font-size: 16px;
+ font-weight: 400;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+}
+
+#guest-add-window form#form-vm-add {
+ margin: 0;
+}
+
+#guest-add-window input#guest-vm-name,
+#guest-add-window p.help-block {
+ width: 592px;
+}
+
+#guest-content-container .wok-guest-list {
+ display: block;
+ width: 100%;
+ padding: 0;
+ list-style-type: none;
+}
+
+#guest-content-container .wok-guest-list > li:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#guest-content-container .wok-guest-list > li:nth-child(odd) {
+ background-color: #fff;
+}
+
+#guest-content-container .wok-guest-list > li:first-child {
+ border-top: 0;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header {
+ border-top: 0 none;
+ height: 36px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span {
+ height: 36px;
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300;
+ font-size: 12.5pt;
+ line-height: 1.42857;
+ border-bottom: none;
+ border-top: 0;
+ overflow: hidden;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span > span {
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ display: block;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body {
+ border-top: 1px solid #eee;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 12.5pt;
+ line-height: 2.42857;
+ font-weight: 400;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress {
+ display: inline-block;
+ width: 60%;
+ position: relative;
+ vertical-align: top;
+ margin-top: 15px;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar {
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar.dark-grey {
+ background-color: #929497;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar.medium-grey {
+ background-color: #bbbdbf;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar.light-grey {
+ background-color: #e6e7e8;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body div.percentage-label {
+ display: inline-block;
+ width: 25%;
+ margin-top: 6px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body div.measure-label {
+ display: inline-block;
+ width: 35%;
+ margin-top: 6px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state {
+ width: 40px;
+ text-align: center;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state {
+ font-size: 22px;
+ position: relative;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-ban {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-power-off {
+ color: #a8d46f;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-undo {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-refresh {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-ban {
+ color: #999;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-power-off {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-undo {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-refresh {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-ban {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-power-off {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-undo {
+ color: #999;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-refresh {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-ban {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-power-off {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-undo {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-refresh {
+ color: #a8d46f;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.paused > .fa,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.paused > .fa {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-name,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-name {
+ width: 13.7%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+@media (min-width: 1330px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-name,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-name {
+ width: 9.7%;
+ }
+}
+
+@media (min-width: 1540px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-name,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-name {
+ width: 14.15%;
+ }
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-type,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-type {
+ width: 11.74%;
+ background-position: 0 50%;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+@media (min-width: 1330px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-type,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-type {
+ width: 10.74%;
+ }
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc > a,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc > a {
+ font-weight: normal;
+ color: #5ab3d4 !important;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc .fa-spin,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc .fa-spin {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc .fa-spin.active,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc .fa-spin.active {
+ display: inline-block;
+ margin-right: 8px;
+ font-size: 22px;
+ color: #5ab3d4 !important;
+}
+
+@media (min-width: 1330px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc {
+ width: 10.84%;
+ display: inline-block;
+ }
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-processors,
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-memory,
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-storage,
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-network,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-processors,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-memory,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-storage,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-network {
+ width: 12.5%;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-processors > div > div.progress-bar.cpu-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-processors > div > div.progress-bar.cpu-progress-bar {
+ background-color: #d9182d;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-memory > div > div.progress-bar.memory-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-memory > div > div.progress-bar.memory-progress-bar {
+ background-color: #008abf;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-storage > div > div.progress-bar.storage-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-storage > div > div.progress-bar.storage-progress-bar {
+ background-color: #fdb813;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-network > div > div.progress-bar.network-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-network > div > div.progress-bar.network-progress-bar {
+ background-color: #7f1c7d;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-action,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-action {
+ width: 165px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.item-hidden,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.item-hidden {
+ display: none !important;
+}
+
+#guest-content-container .wok-guest-list .distro-icon {
+ background-color: transparent;
+ background-size: 27px 27px;
+ background-repeat: no-repeat;
+ background-position: left;
+}
+
+#guest-content-container .wok-guest-list .distro-icon.inactive {
+ -webkit-filter: grayscale(100%) contrast(0.8) brightness(110%);
+ -moz-filter: grayscale(100%) contrast(0.8) brightness(110%);
+ filter: grayscale(100%) contrast(0.8) brightness(110%);
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body.inactive {
+ color: #999 !important;
+}
+
+#guest-edit-window .tab-content {
+ overflow: hidden;
+ height: 559px;
+}
+
+#guest-edit-window .tab-content .tab-pane {
+ position: relative;
+}
+
+#guest-edit-window #form-guest-edit-interface .column-actions {
+ width: 23%;
+}
+
+#guest-edit-window #form-guest-edit-storage .column-actions {
+ width: 26%;
+}
+
+#guest-edit-window #form-guest-edit-snapshot .column-actions {
+ width: 22%;
+}
+
+#guest-edit-window #form-guest-edit-pci .column-actions {
+ width: 4.47%;
+}
+
+#guest-edit-window form {
+ margin: 15px 0 0;
+}
+
+#guest-edit-window form .header .column-actions,
+#guest-edit-window form .task .column-actions,
+#guest-edit-window form .body .column-actions {
+ text-align: right;
+}
+
+#guest-edit-window form .header .column-device,
+#guest-edit-window form .task .column-device,
+#guest-edit-window form .body .column-device {
+ width: 12.7%;
+}
+
+#guest-edit-window form .header .column-path,
+#guest-edit-window form .task .column-path,
+#guest-edit-window form .body .column-path {
+ width: 60.25%;
+}
+
+#guest-edit-window form .header .cell.column-network,
+#guest-edit-window form .task .cell.column-network,
+#guest-edit-window form .body .cell.column-network {
+ width: 18%;
+}
+
+#guest-edit-window form .header .cell.column-network > span,
+#guest-edit-window form .task .cell.column-network > span,
+#guest-edit-window form .body .cell.column-network > span {
+ width: 100%;
+ display: inline-block;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+#guest-edit-window form .header .cell.column-network .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn),
+#guest-edit-window form .task .cell.column-network .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn),
+#guest-edit-window form .body .cell.column-network .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
+ width: 180px;
+}
+
+#guest-edit-window form .header .cell.column-type,
+#guest-edit-window form .task .cell.column-type,
+#guest-edit-window form .body .cell.column-type {
+ width: 11.35%;
+}
+
+#guest-edit-window form .header .cell.column-mac,
+#guest-edit-window form .task .cell.column-mac,
+#guest-edit-window form .body .cell.column-mac {
+ width: 14.5%;
+}
+
+#guest-edit-window form .header .cell.column-ip,
+#guest-edit-window form .task .cell.column-ip,
+#guest-edit-window form .body .cell.column-ip {
+ width: 31%;
+}
+
+#guest-edit-window form .header .cell.column-sel,
+#guest-edit-window form .task .cell.column-sel,
+#guest-edit-window form .body .cell.column-sel {
+ width: 1.77%;
+}
+
+#guest-edit-window form .header .cell.column-snapshot-name,
+#guest-edit-window form .task .cell.column-snapshot-name,
+#guest-edit-window form .body .cell.column-snapshot-name {
+ width: 58%;
+}
+
+#guest-edit-window form .header .cell.column-snapshot-created,
+#guest-edit-window form .task .cell.column-snapshot-created,
+#guest-edit-window form .body .cell.column-snapshot-created {
+ width: 16.5%;
+}
+
+#guest-edit-window form .header .cell.column-pci-status,
+#guest-edit-window form .task .cell.column-pci-status,
+#guest-edit-window form .body .cell.column-pci-status {
+ width: 3.7%;
+}
+
+#guest-edit-window form .header .cell.column-pci-status .fa,
+#guest-edit-window form .task .cell.column-pci-status .fa,
+#guest-edit-window form .body .cell.column-pci-status .fa {
+ color: #8cc63f;
+ font-size: 24px;
+}
+
+#guest-edit-window form .header .cell.column-pci-name,
+#guest-edit-window form .task .cell.column-pci-name,
+#guest-edit-window form .body .cell.column-pci-name {
+ width: 21%;
+}
+
+#guest-edit-window form .header .cell.column-product,
+#guest-edit-window form .task .cell.column-product,
+#guest-edit-window form .body .cell.column-product {
+ width: 45%;
+}
+
+#guest-edit-window form .header .cell.column-vendor,
+#guest-edit-window form .task .cell.column-vendor,
+#guest-edit-window form .body .cell.column-vendor {
+ width: 24.1%;
+}
+
+#guest-edit-window form .header {
+ background: #fff;
+ display: block;
+ border-bottom: 1px solid #eee;
+ overflow: hidden;
+ clear: both;
+}
+
+#guest-edit-window form .header > span {
+ padding: 6px 2px;
+ display: inline-block;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: bottom;
+ border-bottom: none;
+ border-top: 0;
+ line-height: 1.42857;
+}
+
+#guest-edit-window form .header > span.column-actions {
+ height: 36px;
+}
+
+#guest-edit-window form .body {
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 471px;
+}
+
+#guest-edit-window form .body .item,
+#guest-edit-window form .task .item {
+ border-top: 1px solid #eee;
+ height: 53px;
+}
+
+#guest-edit-window form .body .item:first-child,
+#guest-edit-window form .task .item:first-child {
+ border-top: 0;
+}
+
+#guest-edit-window form .body .item:nth-child(even),
+#guest-edit-window form .task .item:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#guest-edit-window form .body .item:nth-child(odd),
+#guest-edit-window form .task .item:nth-child(odd) {
+ background-color: #fff;
+}
+
+#guest-edit-window form .body .item > span,
+#guest-edit-window form .task .item > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+#guest-edit-window form .body .item > span input[type="text"],
+#guest-edit-window form .task .item > span input[type="text"] {
+ height: 40px;
+}
+
+#guest-edit-window form .body .item > span input[readonly],
+#guest-edit-window form .body .item > span input[readonly]:hover,
+#guest-edit-window form .body .item > span input[readonly]:focus,
+#guest-edit-window form .body .item > span input[readonly]:active,
+#guest-edit-window form .task .item > span input[readonly],
+#guest-edit-window form .task .item > span input[readonly]:hover,
+#guest-edit-window form .task .item > span input[readonly]:focus,
+#guest-edit-window form .task .item > span input[readonly]:active {
+ background-color: transparent !important;
+ border-color: transparent !important;
+ box-shadow: none !important;
+ border-radius: 0 !important;
+ text-overflow: ellipsis;
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ width: 100%;
+}
+
+.guest-edit-snapshot .hide,
+.guest-edit-interface .hide {
+ display: none !important;
+}
+
+.guest-edit-pci .filter {
+ height: 40px;
+ overflow: visible;
+ clear: both;
+}
+
+.guest-edit-pci .pull-right .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
+ width: 133px;
+}
+
+.guest-edit-pci .filter input[type="text"].form-control {
+ width: 460px;
+ height: 40px;
+ float: right;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.guest-edit-pci .filter .bootstrap-select.btn-group .btn .caret {
+ border-left: 0;
+}
+
+.guest-edit-pci .filter button.btn.dropdown-toggle.form-control.selectpicker.btn-default {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+ background: #fcfcfc;
+ border-right: 0;
+}
+
+.guest-edit-pci .body {
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 442px !important;
+}
+
+.guest-edit-pci .body .item.disabled input[type="text"].form-control {
+ color: #999;
+}
+
+.guest-edit-pci .body .item.disabled span.column-pci-status i {
+ display: none;
+}
+
+.guest-edit-permission .pam {
+ height: 540px;
+}
+
+.guest-edit-permission .pam .column {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.guest-edit-permission .pam .v-center {
+ min-height: 532px;
+ display: flex;
+ justify-content: center;
+ flex-flow: column wrap;
+}
+
+.guest-edit-permission .pam .center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.guest-edit-permission .pam .center-block + .center-block {
+ margin-top: 5px;
+}
+
+.guest-edit-permission .pam .title {
+ font-size: 13pt;
+}
+
+.guest-edit-permission .pam .body {
+ margin-top: 4px;
+ border-radius: 3px;
+ border: 1px solid #eee;
+ height: 460px !important;
+}
+
+.guest-edit-permission .pam .body .head .item {
+ display: block;
+ padding: 6px 2px;
+ margin-bottom: 5px;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: bottom;
+ line-height: 1.42857;
+ height: auto !important;
+ background: #fff;
+ border-top: 0;
+ border-bottom: 1px solid #eee;
+ cursor: default;
+}
+
+.guest-edit-permission .pam .body > .column-user .item,
+.guest-edit-permission .pam .body > .column-group .item {
+ height: auto !important;
+ margin-bottom: 0;
+ margin-left: 5px;
+}
+
+.guest-edit-permission .pam .body > .column-group .item {
+ margin-right: 5px;
+}
+
+.guest-edit-permission .pam .column-user label,
+.guest-edit-permission .pam .column-group label {
+ cursor: pointer;
+ margin-bottom: 0;
+ margin-left: 5px;
+ width: 160px;
+ height: 24px;
+ line-height: 22px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+}
+
+.guest-edit-permission .pam .body > .column .item {
+ background-color: #fff !important;
+ border: 1px solid #eee !important;
+ margin-bottom: 3px;
+ display: block;
+ padding: .2em .6em .3em;
+ font-weight: 700;
+ line-height: 1;
+ text-align: left;
+ white-space: nowrap;
+ vertical-align: middle;
+ border-radius: .25em;
+ overflow: hidden;
+}
+
+.guest-edit-permission .pam .body > .column .item:hover {
+ color: #444 !important;
+ background-color: #e6e6e6 !important;
+ border-color: #adadad !important;
+}
+
+.guest-edit-permission .pam .body > .column .item:hover label {
+ color: #444 !important;
+}
+
+.guest-edit-permission .pam .body > .column .item.item-picked {
+ color: #fff !important;
+ background-color: #3a393b !important;
+ border-color: #1b1b1c !important;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.guest-edit-permission .pam .body > .column .item.item-picked label {
+ color: #fff !important;
+}
+
+.guest-edit-permission .hide {
+ display: none;
+}
+
+#form-guest-edit-permission .ldap .body .item {
+ margin: 8px 0;
+}
+
+#form-guest-edit-permission .ldap .cell {
+ width: 250px;
+}
+
+#form-guest-edit-permission .ldap .action-area {
+ float: right;
+ line-height: 24px;
+}
+
+#form-guest-edit-permission .ldap .header button {
+ margin-bottom: 1px;
+}
+
+#form-guest-edit-permission .ldap .checked {
+ border-color: red;
+ border-style: solid;
+ border-width: 1px;
+}
+
+#form-guest-edit-permission .ldap .checked.hide {
+ display: none;
+}
+
+#form-guest-storage-add .form-section .field {
+ overflow: visible;
+}
+
+/* Add Template Modal Window */
+.templates-modal .modal-dialog {
+ width: 1100px;
+}
+
+.templates-modal .page-list {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+}
+
+.templates-modal .page {
+ position: absolute;
+ left: 100%;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ padding: 10px 30px;
+}
+
+#template-edit-window .tab-content .tab-pane {
+ position: relative;
+}
+
+#template-edit-window form {
+ margin: 15px 0 0;
+}
+
+#template-edit-window .hide {
+ display: none;
+}
+
+#template-edit-window .form-template-inline-wrapper {
+ display: inline-block;
+ vertical-align: top;
+}
+
+#template-edit-window .template-edit-wrapper-label {
+ vertical-align: top;
+ min-width: 100px;
+ height: 35px;
+ line-height: 35px;
+ margin: 7px 0 8px;
+}
+
+#template-edit-window .template-edit-wrapper-controls {
+ vertical-align: top;
+ width: 400px;
+ vertical-align: top;
+ min-width: 100px;
+ height: 35px;
+ line-height: 35px;
+ margin: 7px 0 8px;
+}
+
+#template-edit-window .template-tab-header {
+ background: #fff;
+ display: block;
+ border-bottom: 1px solid #eee;
+}
+
+#template-edit-window .template-tab-header > span {
+ padding: 6px 2px;
+ display: inline-block;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: baseline;
+ border-bottom: none;
+ border-top: 0;
+ line-height: 42px;
+ height: 42px;
+}
+
+#template-edit-window .template-tab-body .item {
+ border-top: 1px solid #eee;
+ height: 53px;
+}
+
+#template-edit-window .template-tab-body .item:first-child {
+ border-top: 0;
+}
+
+#template-edit-window .template-tab-body .item:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#template-edit-window .template-tab-body .item:nth-child(odd) {
+ background-color: #fff;
+}
+
+#template-edit-window .template-tab-body .item > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+#template-edit-window .template-tab-body .item > span input[type="text"].form-control {
+ height: 40px;
+}
+
+#template-edit-window .manual {
+ margin-top: 5px;
+ margin-bottom: 10px;
+}
+
+#template-edit-window .topology {
+ margin: 0 24px;
+}
+
+#template-edit-window .topology .form-inline {
+ margin-bottom: 10px;
+}
+
+#template-edit-window .template-storage-cell.storage-pool {
+ width: 220px !important;
+}
+
+#template-edit-window .template-storage-cell.type {
+ width: 100px;
+}
+
+#template-edit-window .template-storage-cell.disk {
+ width: 100px;
+}
+
+#template-edit-window .template-storage-cell.format {
+ width: 320px;
+}
+
+#template-edit-window .template-interface-cell.network {
+ width: 220px;
+}
+
+#template-edit-window .template-interface-cell.type {
+ width: 250px;
+}
+
+#template-add-window .modal-body {
+ margin: 0;
+ padding: 0;
+}
+
+#template-add-window .modal-footer {
+ margin-top: 0;
+}
+
+#template-add-window .modal-footer .btn + .btn {
+ margin-left: 0;
+}
+
+#template-add-window .modal-footer .btn {
+ margin-right: 5px;
+}
+
+#template-add-window .template-modal-container {
+ padding: 10px 30px;
+ position: relative;
+}
+
+#template-add-window .template-pager {
+ background: #eee;
+ width: 1082px;
+ height: 689px;
+ position: relative;
+ overflow: hidden;
+}
+
+#template-add-window .template-pager-container {
+ position: absolute;
+ height: 664px;
+ width: 2164px;
+ left: 0;
+ transition: left .2s ease-in-out;
+}
+
+#template-add-window.modal-content p {
+ margin: 0;
+}
+
+#template-add-window.modal-content h5 {
+ font-size: 13pt;
+ font-weight: 400;
+ margin-top: 0;
+}
+
+#template-add-window.modal-content label {
+ font-size: 16px;
+ font-weight: 400;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+}
+
+#template-add-window.modal-content button#iso-more,
+#template-add-window.modal-content button#iso-more-loading {
+ margin-bottom: 17px;
+ clear: both;
+}
+
+#template-add-window.modal-content div#iso-remote-box {
+ left: 1082px;
+}
+
+#template-add-window.modal-content div#iso-local-box {
+ left: 0;
+}
+
+/* VM List View classes*/
+#templates-root-container .wok-vm-list {
+ display: block;
+ width: 100%;
+ list-style-type: none;
+ margin: 0;
+ padding-left: 0;
+ background: #fff;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-header {
+ border-bottom: 1px solid #e3e3e3;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-header > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: bottom;
+ height: 36px;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300;
+ font-size: 12.5pt;
+ line-height: 1.42857;
+ border-bottom: none;
+ border-top: 0;
+ background-color: #fff;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body {
+ clear: both;
+ border-top: 1px solid #eee;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body:first-child {
+ border-top: 0;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: top;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 12.5pt;
+ line-height: 2.42857;
+ font-weight: 400;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body .column-type {
+ padding-left: 40px !important;
+}
+
+#templates-root-container .wok-vm-list .ul-body {
+ display: block;
+ width: 100%;
+ clear: both;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+#templates-root-container .wok-vm-list .ul-body > li:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#templates-root-container .wok-vm-list .ul-body > li:nth-child(odd) {
+ background-color: #fff;
+}
+
+#templates-root-container .wok-vm-list .column-name {
+ width: 17.4900%;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#templates-root-container .wok-vm-list .column-type {
+ width: 14.2435%;
+ font-weight: bold;
+}
+
+#templates-root-container .wok-vm-list .column-version {
+ width: 14.2435%;
+ font-weight: bold;
+}
+
+#templates-root-container .wok-vm-list .column-processors {
+ width: 12.8413%;
+}
+
+#templates-root-container .wok-vm-list .column-memory {
+ width: 7.3800%;
+}
+
+#templates-root-container .wok-vm-list .column-action {
+ width: 33.8000%;
+}
+
+#templates-root-container .wok-vm-list .item-hidden {
+ display: none !important;
+}
+
+#templates-root-container .wok-vm-list .distro-icon {
+ background-color: transparent;
+ background-size: 27px 27px;
+ background-repeat: no-repeat;
+ background-position: 8px 50%;
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+#templates-root-container .wok-vm-gallery {
+ display: block;
+ width: 100%;
+ list-style-type: none;
+ margin: 0;
+ padding-left: 5px;
+}
+
+#templates-root-container .wok-vm-gallery .wok-vm-header {
+ display: none;
+}
+
+#templates-root-container .wok-vm-gallery .wok-vm-body {
+ padding: 0 20px 0 20px;
+ width: 240px;
+ display: inline-block;
+ border: 1px solid #e3e3e3;
+ margin-right: 20px;
+}
+
+#templates-root-container .wok-vm-gallery .wok-vm-body > span {
+ display: inline-block;
+ width: 100%;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 12.5pt;
+ line-height: 1.42857;
+ font-weight: 400;
+}
+
+#templates-root-container .wok-vm-gallery .ul-body {
+ display: inline-block;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+#templates-root-container .wok-vm-gallery .column-name {
+ line-height: 2.5 !important;
+ font-size: 15.3pt !important;
+ font-weight: 500 !important;
+ text-overflow: ellipsis !important;
+ overflow: hidden !important;
+ padding-right: 35px !important;
+}
+
+#templates-root-container .wok-vm-gallery .item-hidden.column-type, #templates-root-container .wok-vm-gallery .item-hidden.column-version, #templates-root-container .wok-vm-gallery .item-hidden.column-processors {
+ padding-bottom: 11px;
+}
+
+#templates-root-container .wok-vm-gallery .item-hidden.column-memory {
+ padding-bottom: 38px;
+}
+
+#templates-root-container .wok-vm-gallery .font-bold {
+ font-weight: bold !important;
+}
+
+#templates-root-container .wok-vm-gallery .pull-right {
+ float: none !important;
+ padding-bottom: 22px;
+}
+
+#templates-root-container .wok-vm-gallery .dropdown-menu {
+ width: 100%;
+}
+
+#templates-root-container .wok-vm-gallery .menu-flat {
+ width: 239px;
+ margin-left: -20px;
+}
+
+#templates-root-container .wok-vm-gallery .btn {
+ width: 100%;
+ text-align: left;
+ padding-left: 42px;
+ border-radius: 0;
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon {
+ background-color: transparent;
+ background-size: 32px 32px;
+ background-repeat: no-repeat;
+ background-position: 100% 50%;
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+.network-config input.invalid-field[type="text"] {
+ border-color: #FF4444;
+}
+
+.network-config input.invalid-field[type="text"][disabled] {
+ border-color: #666666;
+}
+
+#add-network-window #vlan-enabled {
+ padding-left: 26px;
+}
+
+#add-network-window #vlan-enabled label, #add-network-window #vlan-enabled input[type="text"] {
+ display: block;
+}
+
+#network-root-container .wok-nw-loading-icon {
+ background: transparent url("/images/theme-default/spin5.svg") no-repeat 50% 50%;
+ -webkit-animation: spin 3s infinite linear;
+ -o-animation: spin 3s infinite linear;
+ animation: spin 3s infinite linear;
+ height: 16px;
+ width: 16px;
+ background-size: 100%;
+ display: block;
+ position: relative;
+ top: 12px;
+ left: 50%;
+ margin-left: -8px;
+}
+
+#network-root-container .up .wok-nw-loading-icon,
+#network-root-container .down .wok-nw-loading-icon {
+ display: none;
+}
+
+#network-root-container .wok-datagrid-body span > .fa {
+ font-size: 22px;
+ width: 20px;
+ height: 20px;
+ position: relative;
+}
+
+#network-root-container .wok-datagrid-body .up .fa {
+ color: #a8d46f;
+}
+
+#network-root-container .wok-datagrid-body .loading > .fa,
+#network-root-container .wok-datagrid-body .down .fa {
+ display: none;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-state,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ width: 2.92207%;
+ text-align: center;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-name,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-name {
+ width: 19.2207%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-type,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-type {
+ width: 11.3896%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-interface,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-interface {
+ width: 10.3896%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-space,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-space {
+ width: 30%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-action,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-action {
+ width: 25.909%;
+ text-align: right;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ height: 53px;
+ vertical-align: middle;
+}
+
+#storage-root-container .wok-datagrid-body span > .fa {
+ font-size: 22px;
+ width: 20px;
+ height: 20px;
+ position: relative;
+}
+
+#storage-root-container .wok-datagrid-body .handle {
+ user-select: none;
+ position: relative;
+}
+
+#storage-root-container .wok-datagrid-body .active .handle {
+ cursor: pointer;
+}
+
+#storage-root-container .wok-datagrid-body .active .fa-power-off {
+ color: #a8d46f;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .handle {
+ cursor: default;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .fa-power-off {
+ display: none;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-high {
+ background-image: url("/images/theme-default/high_disabled.png") !important;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-med {
+ background-image: url("/images/theme-default/med_disabled.png") !important;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-low {
+ background-image: url("/images/theme-default/low_disabled.png") !important;
+}
+
+#storage-root-container .volumes {
+ width: 100%;
+ background: #ddd;
+ display: none;
+}
+
+#storage-root-container .volumes > .footer {
+ z-index: 100;
+}
+
+#storage-root-container .volumes .volumeslist {
+ padding: 11px;
+ max-height: 285px;
+ min-height: 136px;
+ overflow: auto;
+}
+
+#storage-root-container .volumes .volume-box {
+ background: #fff;
+ padding: 4px 20px;
+ margin: 11px;
+ display: inline-block;
+ width: 409px;
+ height: 110px;
+}
+
+#storage-root-container .volumes .volume-title {
+ height: 46px;
+ width: 100%;
+ border-bottom: 1px solid #ccc;
+ position: relative;
+}
+
+#storage-root-container .volumes .volume-name {
+ font-size: 15pt;
+ font-weight: 300;
+ width: 274px;
+ line-height: 46px;
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+#storage-root-container .volumes .volume-utilization {
+ vertical-align: top;
+ text-align: right;
+ display: inline-block;
+ width: 90px;
+ height: 46px;
+ line-height: 46px;
+}
+
+#storage-root-container .volumes .volume-icon {
+ display: inline-block;
+ width: 27px;
+ height: 46px;
+ line-height: 46px;
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-color: transparent;
+}
+
+#storage-root-container .volumes .volume-usage {
+ vertical-align: top;
+ font-size: 15pt;
+ font-weight: 400;
+ display: inline-block;
+ text-align: right;
+ line-height: 46px;
+ padding-left: 0;
+ margin-left: 5px;
+}
+
+#storage-root-container .volumes .volume-icon.icon-high {
+ background-image: url("/images/theme-default/high.png");
+}
+
+#storage-root-container .volumes .volume-icon.icon-med {
+ background-image: url("/images/theme-default/med.png");
+}
+
+#storage-root-container .volumes .volume-icon.icon-low {
+ background-image: url("/images/theme-default/low.png");
+}
+
+#storage-root-container .volumes .volume-progress {
+ position: absolute;
+ margin: 0;
+ width: 409px;
+ top: -4px;
+ left: -20px;
+}
+
+#storage-root-container .volumes .volume-progress .progress-bar-outer {
+ background: transparent;
+ height: 6px;
+ overflow: hidden;
+ width: 100%;
+}
+
+#storage-root-container .volumes .volume-progress .progress-bar-inner {
+ background: #8BC53E;
+ height: 100%;
+ width: 100%;
+}
+
+#storage-root-container .volumes .volume-data {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+#storage-root-container .volumes .volume-data > li {
+ display: inline-block;
+ width: 89px;
+}
+
+#storage-root-container .volumes .volume-data > li span {
+ display: block;
+ font-size: 12pt;
+}
+
+#storage-root-container .volumes .volume-data > li span.value {
+ font-weight: 600;
+}
+
+#storage-root-container .volumes .volume-data > li span.key {
+ font-weight: 300;
+}
+
+#storage-root-container .volumes .pool-empty {
+ text-align: center;
+ line-height: 136px;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row[data-stat="inactive"] {
+ color: #999 !important;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-state,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ width: 3.0519%;
+ text-align: center;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-name,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-name {
+ width: 12.7272%;
+ text-overflow: ellipsis;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-type,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-type {
+ width: 11.6883%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-location,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-location {
+ width: 21.4285%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage {
+ width: 9.41558%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon {
+ padding-left: 35px;
+ display: inline-block;
+ background-repeat: no-repeat;
+ background-position: 0 50%;
+ background-color: transparent;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon.icon-high,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon.icon-high {
+ background-image: url("/images/theme-default/high.png");
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon.icon-med,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon.icon-med {
+ background-image: url("/images/theme-default/med.png");
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon.icon-low,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon.icon-low {
+ background-image: url("/images/theme-default/low.png");
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-capacity,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-capacity {
+ width: 8.701298%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-allocated,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-allocated {
+ width: 9.35064%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-disks,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks {
+ text-align: center;
+ width: 2.9870%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-action,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-action {
+ width: 20.64%;
+ text-align: right;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ height: 53px;
+ vertical-align: middle;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks {
+ height: 53px;
+ vertical-align: middle;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-down,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-up {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-down:before {
+ content: "\f078";
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-up:before {
+ content: "\f077";
+}
+
+#storage-root-container #logicalPoolExtend .modal-body {
+ max-height: 438px;
+}
+
+#storage-root-container #logicalPoolExtend .modal-body p span {
+ vertical-align: middle !important;
+}
+
+#storage-root-container #logicalPoolExtend form,
+.storage-modal form {
+ margin: 0 !important;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition,
+.storage-modal .host-partition {
+ overflow-y: auto;
+ overflow-x: hidden;
+ max-height: 430px;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label,
+.storage-modal .host-partition label {
+ display: block;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label > div,
+.storage-modal .host-partition label > div {
+ vertical-align: top;
+ display: inline-block;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label span.device-name,
+#storage-root-container #logicalPoolExtend .host-partition label span.device-path,
+.storage-modal .host-partition label span.device-name,
+.storage-modal .host-partition label span.device-path {
+ display: block;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label span.device-name,
+.storage-modal .host-partition label span.device-name {
+ font-weight: 600;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label span.device-path,
+.storage-modal .host-partition label span.device-path {
+ font-weight: 400;
+ word-wrap: break-word;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label > div {
+ width: 388px;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label > div span.device-path {
+ width: 388px;
+}
+
+.storage-modal .filter-select.popable .popover,
+.storage-modal .storage-target-input .popover,
+.storage-modal .storage-add-input .popover {
+ max-width: 100% !important;
+ width: 100%;
+ top: 34px;
+ left: -2px;
+ border: 0 !important;
+ background: 0 !important;
+ box-shadow: none !important;
+}
+
+.storage-modal .filter-select.popable .popover ul,
+.storage-modal .storage-target-input .popover ul,
+.storage-modal .storage-add-input .popover ul {
+ z-index: 1000;
+ padding: 5px 0;
+ margin: 2px 2px 0;
+ list-style: none;
+ font-size: 14px;
+ text-align: left;
+ background-color: #fcfcfc;
+ border: 1px solid #ccc;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: compact(0 6px 12px rgba(0, 0, 0, 0.175));
+ -moz-box-shadow: compact(0 6px 12px rgba(0, 0, 0, 0.175));
+ box-shadow: compact(0 6px 12px rgba(0, 0, 0, 0.175));
+ background-clip: padding-box;
+}
+
+.storage-modal .filter-select.popable .popover ul li,
+.storage-modal .storage-target-input .popover ul li,
+.storage-modal .storage-add-input .popover ul li {
+ cursor: pointer;
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857;
+ color: #222;
+ white-space: nowrap;
+}
+
+.storage-modal .filter-select.popable .popover ul li:hover, .storage-modal .filter-select.popable .popover ul li:focus,
+.storage-modal .storage-target-input .popover ul li:hover,
+.storage-modal .storage-target-input .popover ul li:focus,
+.storage-modal .storage-add-input .popover ul li:hover,
+.storage-modal .storage-add-input .popover ul li:focus {
+ text-decoration: none;
+ color: #151515;
+ background-color: #f5f5f5;
+}
+
+.storage-modal #nfspathId[style],
+.storage-modal #nfsserverId[style] {
+ width: 100% !important;
+}
+
+.storage-modal .iscsi-section .form-group > .col-md-12 > .col-md-10 + .col-md-2 {
+ padding-left: 5px;
+}
+
+.storage-modal .iscsi-section .form-group > .col-md-12 > .col-md-10 {
+ padding-right: 5px;
+}
+
+.storage-modal .authenticationfield > div > .col-md-6 + .col-md-6 {
+ padding-left: 5px;
+}
+
+.storage-modal .authenticationfield > div > .col-md-6 {
+ padding-right: 5px;
+}
+
+.storage-modal .host-partition label > div {
+ width: 688px;
+}
+
+.storage-modal .host-partition label > div span.device-path {
+ width: 688px;
+}
--
2.5.0
2
2

23 Dec '15
Thi patch add the .css files to the source control. That way the
build process does not need to rely on python-pip to install build
dependencies.
The python-pip is still required for UI development to install cython
and libsass libraries. They will be needed to generate .css files
according to changes in .scss files.
When modifying the .scss files, make sure to run:
$ make -C ui/css css
to update .css files accordingly.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
.gitignore | 3 -
configure.ac | 6 -
contrib/DEBIAN/control.in | 4 +-
contrib/wok.spec.fedora.in | 2 -
contrib/wok.spec.suse.in | 2 -
docs/README.md | 42 +-
ui/css/Makefile.am | 18 +-
ui/css/bootstrap-select.custom.css | 66 +
ui/css/bootstrap.custom.css | 6806 ++++++++++++++++++++++++++++++++++++
ui/css/wok.css | 996 ++++++
10 files changed, 7909 insertions(+), 36 deletions(-)
create mode 100644 ui/css/bootstrap-select.custom.css
create mode 100644 ui/css/bootstrap.custom.css
create mode 100644 ui/css/wok.css
diff --git a/.gitignore b/.gitignore
index d2eb180..7b4ebcb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,9 +39,6 @@ src/wok/plugins/sample/po/POTFILES
src/wok/plugins/sample/sample.conf
po/POTFILES
po/gen-pot
-ui/css/wok.css
-ui/css/bootstrap.custom.css
-ui/css/bootstrap-select.custom.css
!ui/css/src/modules
*.orig
*.rej
diff --git a/configure.ac b/configure.ac
index ac5ae13..0f6cd83 100644
--- a/configure.ac
+++ b/configure.ac
@@ -51,12 +51,6 @@ if test "x$PYFLAKES" = "x"; then
AC_MSG_WARN([pyflakes not found])
fi
-# Checking for libsass
-AC_PATH_PROG([LIBSASS], [sassc])
-if test "x$LIBSASS" = "x"; then
- AC_MSG_ERROR([sassc not found. Please execute "pip install libsass"])
-fi
-
AC_ARG_ENABLE(
[sample],
[AS_HELP_STRING(
diff --git a/contrib/DEBIAN/control.in b/contrib/DEBIAN/control.in
index 9105ea6..1f39ad8 100644
--- a/contrib/DEBIAN/control.in
+++ b/contrib/DEBIAN/control.in
@@ -19,8 +19,6 @@ Build-Depends: xsltproc,
gettext,
openssl,
python-lxml,
- pkg-config,
- python-dev,
- python-pip
+ pkg-config
Maintainer: Aline Manera <alinefm(a)br.ibm.com>
Description: Wok - Webserver Originated from Kimchi
diff --git a/contrib/wok.spec.fedora.in b/contrib/wok.spec.fedora.in
index a73ca76..34b3ac3 100644
--- a/contrib/wok.spec.fedora.in
+++ b/contrib/wok.spec.fedora.in
@@ -23,8 +23,6 @@ BuildRequires: gettext-devel
BuildRequires: libxslt
BuildRequires: openssl
BuildRequires: python-lxml
-BuildRequires: python-devel
-BuildRequires: python-pip
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
%global with_systemd 1
diff --git a/contrib/wok.spec.suse.in b/contrib/wok.spec.suse.in
index a13c154..aab4a80 100644
--- a/contrib/wok.spec.suse.in
+++ b/contrib/wok.spec.suse.in
@@ -24,8 +24,6 @@ BuildRequires: gettext-tools
BuildRequires: libxslt-tools
BuildRequires: openssl
BuildRequires: python-lxml
-BuildRequires: python-devel
-BuildRequires: python-pip
%if 0%{?suse_version} == 1100
Requires: python-ordereddict
diff --git a/docs/README.md b/docs/README.md
index 5a2e7c5..4d719f3 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -53,14 +53,11 @@ Install Dependencies
python-cherrypy python-cheetah python-imaging\
PyPAM m2crypto python-jsonschema rpm-build \
python-psutil python-ldap python-lxml \
- libxslt nginx openssl python-devel python-pip \
- gcc-c++ open-sans-fonts fontawesome-fonts
+ libxslt nginx openssl gcc-c++ open-sans-fonts \
+ fontawesome-fonts
- $ sudo pip install cython libsass
-
-
- # If using RHEL, install the following additional packages:
- $ sudo yum install python-unittest2 python-ordereddict
+ # If using RHEL, install the following additional packages:
+ $ sudo yum install python-unittest2 python-ordereddict
Packages version requirement:
python-psutil >= 0.6.0
@@ -68,6 +65,10 @@ Install Dependencies
# These dependencies are only required if you want to run the tests:
$ sudo yum install pyflakes python-pep8 python-requests
+ # For UI development
+ $ sudo yum install gcc-c++ python-devel python pip
+ $ sudo pip install cython libsass
+
*Note for RHEL users*: Some of the above packages are located in the Red Hat
EPEL repositories. See
[this FAQ](http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.…
@@ -82,10 +83,8 @@ channel at RHN Classic or Red Hat Satellite.
python-cherrypy3 python-cheetah python-imaging \
python-pam python-m2crypto python-jsonschema \
python-psutil python-ldap python-lxml nginx \
- xsltproc openssl python-dev python-pip \
- g++ fonts-font-awesome texlive-fonts-extra
-
- $ sudo pip install cython libsass
+ xsltproc openssl fonts-font-awesome \
+ texlive-fonts-extra
Packages version requirement:
python-jsonschema >= 1.3.0
@@ -94,17 +93,18 @@ channel at RHN Classic or Red Hat Satellite.
# These dependencies are only required if you want to run the tests:
$ sudo apt-get install pep8 pyflakes python-requests
+ # For UI development
+ $ sudo apt-get install g++ python-dev python pip
+ $ sudo pip install cython libsass
+
**For openSUSE:**
$ sudo zypper install gcc make autoconf automake gettext-tools git \
python-CherryPy python-Cheetah python-pam \
python-imaging python-M2Crypto python-jsonschema \
rpm-build python-psutil python-ldap python-lxml \
- libxslt-tools python-xml nginx openssl python-devel \
- python-pip gcc-c++ google-opensans-fonts \
- fontawesome-fonts
-
- $ sudo pip install cython libsass
+ libxslt-tools python-xml nginx openssl \
+ google-opensans-fonts fontawesome-fonts
Packages version requirement:
python-psutil >= 0.6.0
@@ -112,6 +112,9 @@ channel at RHN Classic or Red Hat Satellite.
# These dependencies are only required if you want to run the tests:
$ sudo zypper install python-pyflakes python-pep8 python-requests
+ # For UI development
+ $ sudo zypper install gcc-c++ python-devel python pip
+ $ sudo pip install cython libsass
Build and Install
-----------------
@@ -158,6 +161,13 @@ Allow httpd_t context for Wok web server:
$ sudo semanage permissive -a httpd_t
+UI Development
+----
+Make sure to update the CSS files when modifying the SCSS files by running:
+
+ $ sudo make -C ui/css css
+
+
Wok Plugins
-----------
diff --git a/ui/css/Makefile.am b/ui/css/Makefile.am
index d137c3b..170cc63 100644
--- a/ui/css/Makefile.am
+++ b/ui/css/Makefile.am
@@ -22,13 +22,23 @@ SUBDIRS = fontawesome opensans
EXTRA_DIST = theme-default
cssdir = $(datadir)/wok/ui/css
-dist_css_DATA = theme-default.min.css jquery-ui.custom.css wok.css bootstrap.custom.css bootstrap-select.custom.css
+dist_css_DATA = theme-default.min.css jquery-ui.custom.css wok.css bootstrap.custom.css bootstrap-select.custom.css
-%.css: src/%.scss
+wok: src/wok.scss src/modules/*.scss
echo "Compiling .scss file $<"
- sassc -s expanded $< $(@:.scss=.css)
+ sassc -s expanded $< wok.css
+
+bootstrap: src/bootstrap.custom.scss
+ echo "Compiling .scss file $<"
+ sassc -s expanded $< bootstrap.custom.css
+
+bootstrap-select: src/bootstrap-select.custom.scss
+ echo "Compiling .scss file $<"
+ sassc -s expanded $< bootstrap-select.custom.css
+
+css: wok bootstrap bootstrap-select
theme-default.min.css: theme-default/*.css
cat $^ > $@
-CLEANFILES = theme-default.min.css wok.css bootstrap.custom.css bootstrap-select.custom.css
+CLEANFILES = theme-default.min.css
diff --git a/ui/css/bootstrap-select.custom.css b/ui/css/bootstrap-select.custom.css
new file mode 100644
index 0000000..fc4a936
--- /dev/null
+++ b/ui/css/bootstrap-select.custom.css
@@ -0,0 +1,66 @@
+/*
+ * Project Wok
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * 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.
+ */
+.bootstrap-select > .btn {
+ height: 40px;
+}
+
+.bootstrap-select.btn-group .btn .caret {
+ position: absolute;
+ top: 0;
+ right: 40px;
+ margin-top: 0;
+ vertical-align: top;
+ border: 0;
+ border-left: 1px solid #ccc;
+ height: 38px;
+}
+
+.bootstrap-select.btn-group .btn .caret:before {
+ content: '\f078';
+ font-family: "FontAwesome";
+ font-size: 15px;
+ color: #666666;
+ position: absolute;
+ left: 12px;
+ top: 9px;
+ display: block;
+}
+
+.bootstrap-select.btn-group .btn:hover .caret {
+ border-color: #adadad;
+}
+
+.bootstrap-select.btn-group .btn:focus .caret {
+ border-color: #8c8c8c;
+}
+
+.bootstrap-select.btn-group.open .btn .caret {
+ border-left-color: #adadad;
+}
+
+.bootstrap-select.btn-group.open .btn:hover .caret {
+ border-left-color: #8c8c8c;
+}
+
+.bootstrap-select.btn-group .dropdown-menu {
+ z-index: 2035;
+}
+
+.bootstrap-select.btn-group .dropdown-menu li a {
+ outline: none;
+}
diff --git a/ui/css/bootstrap.custom.css b/ui/css/bootstrap.custom.css
new file mode 100644
index 0000000..08746a7
--- /dev/null
+++ b/ui/css/bootstrap.custom.css
@@ -0,0 +1,6806 @@
+@charset "UTF-8";
+/*
+ * Project Wok
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * 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.
+ */
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+
+body {
+ margin: 0;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+[hidden],
+template {
+ display: none;
+}
+
+a {
+ background-color: transparent;
+}
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+b,
+strong {
+ font-weight: bold;
+}
+
+dfn {
+ font-style: italic;
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+img {
+ border: 0;
+}
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+figure {
+ margin: 1em 40px;
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0;
+}
+
+pre {
+ overflow: auto;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+
+button {
+ overflow: visible;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+input {
+ line-height: normal;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box;
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+legend {
+ border: 0;
+ padding: 0;
+}
+
+textarea {
+ overflow: auto;
+}
+
+optgroup {
+ font-weight: bold;
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+td,
+th {
+ padding: 0;
+}
+
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important;
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+ thead {
+ display: table-header-group;
+ }
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+ img {
+ max-width: 100% !important;
+ }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+ .navbar {
+ display: none;
+ }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important;
+ }
+ .label {
+ border: 1px solid #000;
+ }
+ .table {
+ border-collapse: collapse !important;
+ }
+ .table td,
+ .table th {
+ background-color: #fff !important;
+ }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important;
+ }
+}
+
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: transparent;
+}
+
+body {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #222;
+ background-color: #fff;
+}
+
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+a {
+ color: #3a393b;
+ text-decoration: none;
+}
+
+a:hover, a:focus {
+ color: #141314;
+ text-decoration: underline;
+}
+
+a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+figure {
+ margin: 0;
+}
+
+img {
+ vertical-align: middle;
+}
+
+.img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+.img-rounded {
+ border-radius: 3px;
+}
+
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+
+.img-circle {
+ border-radius: 50%;
+}
+
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #fff;
+}
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+
+[role="button"] {
+ cursor: pointer;
+}
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit;
+}
+
+h1 small,
+h1 .small, h2 small,
+h2 .small, h3 small,
+h3 .small, h4 small,
+h4 .small, h5 small,
+h5 .small, h6 small,
+h6 .small,
+.h1 small,
+.h1 .small, .h2 small,
+.h2 .small, .h3 small,
+.h3 .small, .h4 small,
+.h4 .small, .h5 small,
+.h5 .small, .h6 small,
+.h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #999;
+}
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+
+h1 small,
+h1 .small, .h1 small,
+.h1 .small,
+h2 small,
+h2 .small, .h2 small,
+.h2 .small,
+h3 small,
+h3 .small, .h3 small,
+.h3 .small {
+ font-size: 65%;
+}
+
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+h4 small,
+h4 .small, .h4 small,
+.h4 .small,
+h5 small,
+h5 .small, .h5 small,
+.h5 .small,
+h6 small,
+h6 .small, .h6 small,
+.h6 .small {
+ font-size: 75%;
+}
+
+h1, .h1 {
+ font-size: 1.571em;
+}
+
+h2, .h2 {
+ font-size: 22px;
+}
+
+h3, .h3 {
+ font-size: 17px;
+}
+
+h4, .h4 {
+ font-size: 14px;
+}
+
+h5, .h5 {
+ font-size: 14px;
+}
+
+h6, .h6 {
+ font-size: 14px;
+}
+
+p {
+ margin: 0 0 10px;
+}
+
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4;
+}
+
+@media (min-width: 768px) {
+ .lead {
+ font-size: 21px;
+ }
+}
+
+small,
+.small {
+ font-size: 85%;
+}
+
+mark,
+.mark {
+ background-color: #f1e3c2;
+ padding: .2em;
+}
+
+.text-left {
+ text-align: left;
+}
+
+.text-right {
+ text-align: right;
+}
+
+.text-center {
+ text-align: center;
+}
+
+.text-justify {
+ text-align: justify;
+}
+
+.text-nowrap {
+ white-space: nowrap;
+}
+
+.text-lowercase {
+ text-transform: lowercase;
+}
+
+.text-uppercase, .initialism {
+ text-transform: uppercase;
+}
+
+.text-capitalize {
+ text-transform: capitalize;
+}
+
+.text-muted {
+ color: #999;
+}
+
+.text-primary {
+ color: #3a393b;
+}
+
+a.text-primary:hover,
+a.text-primary:focus {
+ color: #212021;
+}
+
+.text-success {
+ color: #6c6c6c;
+}
+
+a.text-success:hover,
+a.text-success:focus {
+ color: #535353;
+}
+
+.text-info {
+ color: #6c6c6c;
+}
+
+a.text-info:hover,
+a.text-info:focus {
+ color: #535353;
+}
+
+.text-warning {
+ color: #6c6c6c;
+}
+
+a.text-warning:hover,
+a.text-warning:focus {
+ color: #535353;
+}
+
+.text-danger {
+ color: #6c6c6c;
+}
+
+a.text-danger:hover,
+a.text-danger:focus {
+ color: #535353;
+}
+
+.bg-primary {
+ color: #fff;
+}
+
+.bg-primary {
+ background-color: #3a393b;
+}
+
+a.bg-primary:hover,
+a.bg-primary:focus {
+ background-color: #212021;
+}
+
+.bg-success {
+ background-color: #dae6cb;
+}
+
+a.bg-success:hover,
+a.bg-success:focus {
+ background-color: #c1d5a9;
+}
+
+.bg-info {
+ background-color: #d9edf7;
+}
+
+a.bg-info:hover,
+a.bg-info:focus {
+ background-color: #afd9ee;
+}
+
+.bg-warning {
+ background-color: #f1e3c2;
+}
+
+a.bg-warning:hover,
+a.bg-warning:focus {
+ background-color: #e7d099;
+}
+
+.bg-danger {
+ background-color: #eac3c7;
+}
+
+a.bg-danger:hover,
+a.bg-danger:focus {
+ background-color: #dd9da4;
+}
+
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #fff;
+}
+
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px;
+}
+
+ul ul,
+ul ol,
+ol ul,
+ol ol {
+ margin-bottom: 0;
+}
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+ margin-left: -5px;
+}
+
+.list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px;
+}
+
+dl {
+ margin-top: 0;
+ margin-bottom: 20px;
+}
+
+dt,
+dd {
+ line-height: 1.42857;
+}
+
+dt {
+ font-weight: bold;
+}
+
+dd {
+ margin-left: 0;
+}
+
+.dl-horizontal dd:before, .dl-horizontal dd:after {
+ content: " ";
+ display: table;
+}
+
+.dl-horizontal dd:after {
+ clear: both;
+}
+
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ .dl-horizontal dd {
+ margin-left: 180px;
+ }
+}
+
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #999;
+}
+
+.initialism {
+ font-size: 90%;
+}
+
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #fff;
+}
+
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+ margin-bottom: 0;
+}
+
+blockquote footer,
+blockquote small,
+blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857;
+ color: #999;
+}
+
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+ content: '\2014 \00A0';
+}
+
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #fff;
+ border-left: 0;
+ text-align: right;
+}
+
+.blockquote-reverse footer:before,
+.blockquote-reverse small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right footer:before,
+blockquote.pull-right small:before,
+blockquote.pull-right .small:before {
+ content: '';
+}
+
+.blockquote-reverse footer:after,
+.blockquote-reverse small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right footer:after,
+blockquote.pull-right small:after,
+blockquote.pull-right .small:after {
+ content: '\00A0 \2014';
+}
+
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 3px;
+}
+
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+
+kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none;
+}
+
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #222;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+}
+
+pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0;
+}
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll;
+}
+
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.container:before, .container:after {
+ content: " ";
+ display: table;
+}
+
+.container:after {
+ clear: both;
+}
+
+@media (min-width: 768px) {
+ .container {
+ width: 100%;
+ }
+}
+
+@media (min-width: 992px) {
+ .container {
+ width: 100%;
+ }
+}
+
+@media (min-width: 1200px) {
+ .container {
+ width: 100%;
+ padding-left: 80px;
+ padding-right: 60px;
+ }
+}
+
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.container-fluid:before, .container-fluid:after {
+ content: " ";
+ display: table;
+}
+
+.container-fluid:after {
+ clear: both;
+}
+
+.row {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+.row:before, .row:after {
+ content: " ";
+ display: table;
+}
+
+.row:after {
+ clear: both;
+}
+
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left;
+}
+
+.col-xs-1 {
+ width: 8.33333%;
+}
+
+.col-xs-2 {
+ width: 16.66667%;
+}
+
+.col-xs-3 {
+ width: 25%;
+}
+
+.col-xs-4 {
+ width: 33.33333%;
+}
+
+.col-xs-5 {
+ width: 41.66667%;
+}
+
+.col-xs-6 {
+ width: 50%;
+}
+
+.col-xs-7 {
+ width: 58.33333%;
+}
+
+.col-xs-8 {
+ width: 66.66667%;
+}
+
+.col-xs-9 {
+ width: 75%;
+}
+
+.col-xs-10 {
+ width: 83.33333%;
+}
+
+.col-xs-11 {
+ width: 91.66667%;
+}
+
+.col-xs-12 {
+ width: 100%;
+}
+
+.col-xs-pull-0 {
+ right: auto;
+}
+
+.col-xs-pull-1 {
+ right: 8.33333%;
+}
+
+.col-xs-pull-2 {
+ right: 16.66667%;
+}
+
+.col-xs-pull-3 {
+ right: 25%;
+}
+
+.col-xs-pull-4 {
+ right: 33.33333%;
+}
+
+.col-xs-pull-5 {
+ right: 41.66667%;
+}
+
+.col-xs-pull-6 {
+ right: 50%;
+}
+
+.col-xs-pull-7 {
+ right: 58.33333%;
+}
+
+.col-xs-pull-8 {
+ right: 66.66667%;
+}
+
+.col-xs-pull-9 {
+ right: 75%;
+}
+
+.col-xs-pull-10 {
+ right: 83.33333%;
+}
+
+.col-xs-pull-11 {
+ right: 91.66667%;
+}
+
+.col-xs-pull-12 {
+ right: 100%;
+}
+
+.col-xs-push-0 {
+ left: auto;
+}
+
+.col-xs-push-1 {
+ left: 8.33333%;
+}
+
+.col-xs-push-2 {
+ left: 16.66667%;
+}
+
+.col-xs-push-3 {
+ left: 25%;
+}
+
+.col-xs-push-4 {
+ left: 33.33333%;
+}
+
+.col-xs-push-5 {
+ left: 41.66667%;
+}
+
+.col-xs-push-6 {
+ left: 50%;
+}
+
+.col-xs-push-7 {
+ left: 58.33333%;
+}
+
+.col-xs-push-8 {
+ left: 66.66667%;
+}
+
+.col-xs-push-9 {
+ left: 75%;
+}
+
+.col-xs-push-10 {
+ left: 83.33333%;
+}
+
+.col-xs-push-11 {
+ left: 91.66667%;
+}
+
+.col-xs-push-12 {
+ left: 100%;
+}
+
+.col-xs-offset-0 {
+ margin-left: 0%;
+}
+
+.col-xs-offset-1 {
+ margin-left: 8.33333%;
+}
+
+.col-xs-offset-2 {
+ margin-left: 16.66667%;
+}
+
+.col-xs-offset-3 {
+ margin-left: 25%;
+}
+
+.col-xs-offset-4 {
+ margin-left: 33.33333%;
+}
+
+.col-xs-offset-5 {
+ margin-left: 41.66667%;
+}
+
+.col-xs-offset-6 {
+ margin-left: 50%;
+}
+
+.col-xs-offset-7 {
+ margin-left: 58.33333%;
+}
+
+.col-xs-offset-8 {
+ margin-left: 66.66667%;
+}
+
+.col-xs-offset-9 {
+ margin-left: 75%;
+}
+
+.col-xs-offset-10 {
+ margin-left: 83.33333%;
+}
+
+.col-xs-offset-11 {
+ margin-left: 91.66667%;
+}
+
+.col-xs-offset-12 {
+ margin-left: 100%;
+}
+
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left;
+ }
+ .col-sm-1 {
+ width: 8.33333%;
+ }
+ .col-sm-2 {
+ width: 16.66667%;
+ }
+ .col-sm-3 {
+ width: 25%;
+ }
+ .col-sm-4 {
+ width: 33.33333%;
+ }
+ .col-sm-5 {
+ width: 41.66667%;
+ }
+ .col-sm-6 {
+ width: 50%;
+ }
+ .col-sm-7 {
+ width: 58.33333%;
+ }
+ .col-sm-8 {
+ width: 66.66667%;
+ }
+ .col-sm-9 {
+ width: 75%;
+ }
+ .col-sm-10 {
+ width: 83.33333%;
+ }
+ .col-sm-11 {
+ width: 91.66667%;
+ }
+ .col-sm-12 {
+ width: 100%;
+ }
+ .col-sm-pull-0 {
+ right: auto;
+ }
+ .col-sm-pull-1 {
+ right: 8.33333%;
+ }
+ .col-sm-pull-2 {
+ right: 16.66667%;
+ }
+ .col-sm-pull-3 {
+ right: 25%;
+ }
+ .col-sm-pull-4 {
+ right: 33.33333%;
+ }
+ .col-sm-pull-5 {
+ right: 41.66667%;
+ }
+ .col-sm-pull-6 {
+ right: 50%;
+ }
+ .col-sm-pull-7 {
+ right: 58.33333%;
+ }
+ .col-sm-pull-8 {
+ right: 66.66667%;
+ }
+ .col-sm-pull-9 {
+ right: 75%;
+ }
+ .col-sm-pull-10 {
+ right: 83.33333%;
+ }
+ .col-sm-pull-11 {
+ right: 91.66667%;
+ }
+ .col-sm-pull-12 {
+ right: 100%;
+ }
+ .col-sm-push-0 {
+ left: auto;
+ }
+ .col-sm-push-1 {
+ left: 8.33333%;
+ }
+ .col-sm-push-2 {
+ left: 16.66667%;
+ }
+ .col-sm-push-3 {
+ left: 25%;
+ }
+ .col-sm-push-4 {
+ left: 33.33333%;
+ }
+ .col-sm-push-5 {
+ left: 41.66667%;
+ }
+ .col-sm-push-6 {
+ left: 50%;
+ }
+ .col-sm-push-7 {
+ left: 58.33333%;
+ }
+ .col-sm-push-8 {
+ left: 66.66667%;
+ }
+ .col-sm-push-9 {
+ left: 75%;
+ }
+ .col-sm-push-10 {
+ left: 83.33333%;
+ }
+ .col-sm-push-11 {
+ left: 91.66667%;
+ }
+ .col-sm-push-12 {
+ left: 100%;
+ }
+ .col-sm-offset-0 {
+ margin-left: 0%;
+ }
+ .col-sm-offset-1 {
+ margin-left: 8.33333%;
+ }
+ .col-sm-offset-2 {
+ margin-left: 16.66667%;
+ }
+ .col-sm-offset-3 {
+ margin-left: 25%;
+ }
+ .col-sm-offset-4 {
+ margin-left: 33.33333%;
+ }
+ .col-sm-offset-5 {
+ margin-left: 41.66667%;
+ }
+ .col-sm-offset-6 {
+ margin-left: 50%;
+ }
+ .col-sm-offset-7 {
+ margin-left: 58.33333%;
+ }
+ .col-sm-offset-8 {
+ margin-left: 66.66667%;
+ }
+ .col-sm-offset-9 {
+ margin-left: 75%;
+ }
+ .col-sm-offset-10 {
+ margin-left: 83.33333%;
+ }
+ .col-sm-offset-11 {
+ margin-left: 91.66667%;
+ }
+ .col-sm-offset-12 {
+ margin-left: 100%;
+ }
+}
+
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left;
+ }
+ .col-md-1 {
+ width: 8.33333%;
+ }
+ .col-md-2 {
+ width: 16.66667%;
+ }
+ .col-md-3 {
+ width: 25%;
+ }
+ .col-md-4 {
+ width: 33.33333%;
+ }
+ .col-md-5 {
+ width: 41.66667%;
+ }
+ .col-md-6 {
+ width: 50%;
+ }
+ .col-md-7 {
+ width: 58.33333%;
+ }
+ .col-md-8 {
+ width: 66.66667%;
+ }
+ .col-md-9 {
+ width: 75%;
+ }
+ .col-md-10 {
+ width: 83.33333%;
+ }
+ .col-md-11 {
+ width: 91.66667%;
+ }
+ .col-md-12 {
+ width: 100%;
+ }
+ .col-md-pull-0 {
+ right: auto;
+ }
+ .col-md-pull-1 {
+ right: 8.33333%;
+ }
+ .col-md-pull-2 {
+ right: 16.66667%;
+ }
+ .col-md-pull-3 {
+ right: 25%;
+ }
+ .col-md-pull-4 {
+ right: 33.33333%;
+ }
+ .col-md-pull-5 {
+ right: 41.66667%;
+ }
+ .col-md-pull-6 {
+ right: 50%;
+ }
+ .col-md-pull-7 {
+ right: 58.33333%;
+ }
+ .col-md-pull-8 {
+ right: 66.66667%;
+ }
+ .col-md-pull-9 {
+ right: 75%;
+ }
+ .col-md-pull-10 {
+ right: 83.33333%;
+ }
+ .col-md-pull-11 {
+ right: 91.66667%;
+ }
+ .col-md-pull-12 {
+ right: 100%;
+ }
+ .col-md-push-0 {
+ left: auto;
+ }
+ .col-md-push-1 {
+ left: 8.33333%;
+ }
+ .col-md-push-2 {
+ left: 16.66667%;
+ }
+ .col-md-push-3 {
+ left: 25%;
+ }
+ .col-md-push-4 {
+ left: 33.33333%;
+ }
+ .col-md-push-5 {
+ left: 41.66667%;
+ }
+ .col-md-push-6 {
+ left: 50%;
+ }
+ .col-md-push-7 {
+ left: 58.33333%;
+ }
+ .col-md-push-8 {
+ left: 66.66667%;
+ }
+ .col-md-push-9 {
+ left: 75%;
+ }
+ .col-md-push-10 {
+ left: 83.33333%;
+ }
+ .col-md-push-11 {
+ left: 91.66667%;
+ }
+ .col-md-push-12 {
+ left: 100%;
+ }
+ .col-md-offset-0 {
+ margin-left: 0%;
+ }
+ .col-md-offset-1 {
+ margin-left: 8.33333%;
+ }
+ .col-md-offset-2 {
+ margin-left: 16.66667%;
+ }
+ .col-md-offset-3 {
+ margin-left: 25%;
+ }
+ .col-md-offset-4 {
+ margin-left: 33.33333%;
+ }
+ .col-md-offset-5 {
+ margin-left: 41.66667%;
+ }
+ .col-md-offset-6 {
+ margin-left: 50%;
+ }
+ .col-md-offset-7 {
+ margin-left: 58.33333%;
+ }
+ .col-md-offset-8 {
+ margin-left: 66.66667%;
+ }
+ .col-md-offset-9 {
+ margin-left: 75%;
+ }
+ .col-md-offset-10 {
+ margin-left: 83.33333%;
+ }
+ .col-md-offset-11 {
+ margin-left: 91.66667%;
+ }
+ .col-md-offset-12 {
+ margin-left: 100%;
+ }
+}
+
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left;
+ }
+ .col-lg-1 {
+ width: 8.33333%;
+ }
+ .col-lg-2 {
+ width: 16.66667%;
+ }
+ .col-lg-3 {
+ width: 25%;
+ }
+ .col-lg-4 {
+ width: 33.33333%;
+ }
+ .col-lg-5 {
+ width: 41.66667%;
+ }
+ .col-lg-6 {
+ width: 50%;
+ }
+ .col-lg-7 {
+ width: 58.33333%;
+ }
+ .col-lg-8 {
+ width: 66.66667%;
+ }
+ .col-lg-9 {
+ width: 75%;
+ }
+ .col-lg-10 {
+ width: 83.33333%;
+ }
+ .col-lg-11 {
+ width: 91.66667%;
+ }
+ .col-lg-12 {
+ width: 100%;
+ }
+ .col-lg-pull-0 {
+ right: auto;
+ }
+ .col-lg-pull-1 {
+ right: 8.33333%;
+ }
+ .col-lg-pull-2 {
+ right: 16.66667%;
+ }
+ .col-lg-pull-3 {
+ right: 25%;
+ }
+ .col-lg-pull-4 {
+ right: 33.33333%;
+ }
+ .col-lg-pull-5 {
+ right: 41.66667%;
+ }
+ .col-lg-pull-6 {
+ right: 50%;
+ }
+ .col-lg-pull-7 {
+ right: 58.33333%;
+ }
+ .col-lg-pull-8 {
+ right: 66.66667%;
+ }
+ .col-lg-pull-9 {
+ right: 75%;
+ }
+ .col-lg-pull-10 {
+ right: 83.33333%;
+ }
+ .col-lg-pull-11 {
+ right: 91.66667%;
+ }
+ .col-lg-pull-12 {
+ right: 100%;
+ }
+ .col-lg-push-0 {
+ left: auto;
+ }
+ .col-lg-push-1 {
+ left: 8.33333%;
+ }
+ .col-lg-push-2 {
+ left: 16.66667%;
+ }
+ .col-lg-push-3 {
+ left: 25%;
+ }
+ .col-lg-push-4 {
+ left: 33.33333%;
+ }
+ .col-lg-push-5 {
+ left: 41.66667%;
+ }
+ .col-lg-push-6 {
+ left: 50%;
+ }
+ .col-lg-push-7 {
+ left: 58.33333%;
+ }
+ .col-lg-push-8 {
+ left: 66.66667%;
+ }
+ .col-lg-push-9 {
+ left: 75%;
+ }
+ .col-lg-push-10 {
+ left: 83.33333%;
+ }
+ .col-lg-push-11 {
+ left: 91.66667%;
+ }
+ .col-lg-push-12 {
+ left: 100%;
+ }
+ .col-lg-offset-0 {
+ margin-left: 0%;
+ }
+ .col-lg-offset-1 {
+ margin-left: 8.33333%;
+ }
+ .col-lg-offset-2 {
+ margin-left: 16.66667%;
+ }
+ .col-lg-offset-3 {
+ margin-left: 25%;
+ }
+ .col-lg-offset-4 {
+ margin-left: 33.33333%;
+ }
+ .col-lg-offset-5 {
+ margin-left: 41.66667%;
+ }
+ .col-lg-offset-6 {
+ margin-left: 50%;
+ }
+ .col-lg-offset-7 {
+ margin-left: 58.33333%;
+ }
+ .col-lg-offset-8 {
+ margin-left: 66.66667%;
+ }
+ .col-lg-offset-9 {
+ margin-left: 75%;
+ }
+ .col-lg-offset-10 {
+ margin-left: 83.33333%;
+ }
+ .col-lg-offset-11 {
+ margin-left: 91.66667%;
+ }
+ .col-lg-offset-12 {
+ margin-left: 100%;
+ }
+}
+
+table {
+ background-color: #fff;
+}
+
+caption {
+ padding-top: 6px 2px;
+ padding-bottom: 6px 2px;
+ color: #999;
+ text-align: left;
+}
+
+th {
+ text-align: left;
+}
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px;
+}
+
+.table > thead > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > th,
+.table > tbody > tr > td,
+.table > tfoot > tr > th,
+.table > tfoot > tr > td {
+ padding: 6px 2px;
+ line-height: 1.42857;
+ vertical-align: top;
+ border-top: 1px solid #eee;
+}
+
+.table > thead > tr > th {
+ font-family: "HelveticaNeueLight", "HelveticaNeue-Light", "HelveticaNeue Light", "HelveticaNeue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: bottom;
+ border-bottom: none;
+ border-top: 0;
+}
+
+.table > tbody > tr > td {
+ font-size: 12.5pt;
+}
+
+.table > caption + thead > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > th,
+.table > thead:first-child > tr:first-child > td {
+ border-top: 0;
+}
+
+.table > tbody + tbody {
+ border-top: 2px solid #eee;
+}
+
+.table .table {
+ background-color: #fff;
+}
+
+.table-condensed > thead > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > th,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > th,
+.table-condensed > tfoot > tr > td {
+ padding: 5px 0;
+}
+
+.table-bordered {
+ border: 1px solid #eee;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > th,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > th,
+.table-bordered > tfoot > tr > td {
+ border: 1px solid #eee;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+ border-bottom-width: 2px;
+}
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #fcfcfc;
+}
+
+.table-hover > tbody > tr:hover {
+ background-color: #ddd;
+}
+
+table col[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-column;
+}
+
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-cell;
+}
+
+.table > thead > tr > td.active,
+.table > thead > tr > th.active,
+.table > thead > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr > td.active,
+.table > tbody > tr > th.active,
+.table > tbody > tr.active > td,
+.table > tbody > tr.active > th,
+.table > tfoot > tr > td.active,
+.table > tfoot > tr > th.active,
+.table > tfoot > tr.active > td,
+.table > tfoot > tr.active > th {
+ background-color: #ddd;
+}
+
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #d0d0d0;
+}
+
+.table > thead > tr > td.success,
+.table > thead > tr > th.success,
+.table > thead > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr > td.success,
+.table > tbody > tr > th.success,
+.table > tbody > tr.success > td,
+.table > tbody > tr.success > th,
+.table > tfoot > tr > td.success,
+.table > tfoot > tr > th.success,
+.table > tfoot > tr.success > td,
+.table > tfoot > tr.success > th {
+ background-color: #dae6cb;
+}
+
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #cedeba;
+}
+
+.table > thead > tr > td.info,
+.table > thead > tr > th.info,
+.table > thead > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr > td.info,
+.table > tbody > tr > th.info,
+.table > tbody > tr.info > td,
+.table > tbody > tr.info > th,
+.table > tfoot > tr > td.info,
+.table > tfoot > tr > th.info,
+.table > tfoot > tr.info > td,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7;
+}
+
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3;
+}
+
+.table > thead > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr > td.warning,
+.table > tbody > tr > th.warning,
+.table > tbody > tr.warning > td,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr > td.warning,
+.table > tfoot > tr > th.warning,
+.table > tfoot > tr.warning > td,
+.table > tfoot > tr.warning > th {
+ background-color: #f1e3c2;
+}
+
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #ecd9ad;
+}
+
+.table > thead > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr > td.danger,
+.table > tbody > tr > th.danger,
+.table > tbody > tr.danger > td,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr > td.danger,
+.table > tfoot > tr > th.danger,
+.table > tfoot > tr.danger > td,
+.table > tfoot > tr.danger > th {
+ background-color: #eac3c7;
+}
+
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #e3b0b5;
+}
+
+.table-responsive {
+ overflow-x: auto;
+ min-height: 0.01%;
+}
+
+@media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #eee;
+ }
+ .table-responsive > .table {
+ margin-bottom: 0;
+ }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap;
+ }
+ .table-responsive > .table-bordered {
+ border: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+ }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+ }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0;
+ }
+}
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0;
+}
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #222;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5;
+}
+
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold;
+}
+
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal;
+}
+
+input[type="file"] {
+ display: block;
+}
+
+input[type="range"] {
+ display: block;
+ width: 100%;
+}
+
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #444;
+}
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #444;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+}
+
+.form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+}
+
+.form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1;
+}
+
+.form-control:-ms-input-placeholder {
+ color: #999;
+}
+
+.form-control::-webkit-input-placeholder {
+ color: #999;
+}
+
+.form-control[disabled], .form-control[readonly],
+fieldset[disabled] .form-control {
+ background-color: #eee;
+ opacity: 1;
+}
+
+.form-control[disabled],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+}
+
+textarea.form-control {
+ height: auto;
+}
+
+input[type="search"] {
+ -webkit-appearance: none;
+}
+
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"].form-control,
+ input[type="time"].form-control,
+ input[type="datetime-local"].form-control,
+ input[type="month"].form-control {
+ line-height: 34px;
+ }
+ input[type="date"].input-sm, .input-group-sm > input[type="date"].form-control,
+ .input-group-sm > input[type="date"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="date"].btn,
+ .input-group-sm input[type="date"],
+ input[type="time"].input-sm,
+ .input-group-sm > input[type="time"].form-control,
+ .input-group-sm > input[type="time"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="time"].btn,
+ .input-group-sm
+ input[type="time"],
+ input[type="datetime-local"].input-sm,
+ .input-group-sm > input[type="datetime-local"].form-control,
+ .input-group-sm > input[type="datetime-local"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="datetime-local"].btn,
+ .input-group-sm
+ input[type="datetime-local"],
+ input[type="month"].input-sm,
+ .input-group-sm > input[type="month"].form-control,
+ .input-group-sm > input[type="month"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="month"].btn,
+ .input-group-sm
+ input[type="month"] {
+ line-height: 30px;
+ }
+ input[type="date"].input-lg, .input-group-lg > input[type="date"].form-control,
+ .input-group-lg > input[type="date"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="date"].btn,
+ .input-group-lg input[type="date"],
+ input[type="time"].input-lg,
+ .input-group-lg > input[type="time"].form-control,
+ .input-group-lg > input[type="time"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="time"].btn,
+ .input-group-lg
+ input[type="time"],
+ input[type="datetime-local"].input-lg,
+ .input-group-lg > input[type="datetime-local"].form-control,
+ .input-group-lg > input[type="datetime-local"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="datetime-local"].btn,
+ .input-group-lg
+ input[type="datetime-local"],
+ input[type="month"].input-lg,
+ .input-group-lg > input[type="month"].form-control,
+ .input-group-lg > input[type="month"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="month"].btn,
+ .input-group-lg
+ input[type="month"] {
+ line-height: 46px;
+ }
+}
+
+.form-group {
+ margin-bottom: 15px;
+}
+
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+.radio label,
+.checkbox label {
+ min-height: 20px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer;
+}
+
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-left: -20px;
+ margin-top: 4px \9;
+}
+
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px;
+}
+
+.radio-inline,
+.checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer;
+}
+
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px;
+}
+
+input[type="radio"][disabled], input[type="radio"].disabled,
+fieldset[disabled] input[type="radio"],
+input[type="checkbox"][disabled],
+input[type="checkbox"].disabled,
+fieldset[disabled]
+input[type="checkbox"] {
+ cursor: not-allowed;
+}
+
+.radio-inline.disabled,
+fieldset[disabled] .radio-inline,
+.checkbox-inline.disabled,
+fieldset[disabled]
+.checkbox-inline {
+ cursor: not-allowed;
+}
+
+.radio.disabled label,
+fieldset[disabled] .radio label,
+.checkbox.disabled label,
+fieldset[disabled]
+.checkbox label {
+ cursor: not-allowed;
+}
+
+.form-control-static {
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+ min-height: 34px;
+}
+
+.form-control-static.input-lg, .input-group-lg > .form-control-static.form-control,
+.input-group-lg > .form-control-static.input-group-addon,
+.input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,
+.input-group-sm > .form-control-static.input-group-addon,
+.input-group-sm > .input-group-btn > .form-control-static.btn {
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.input-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+select.input-sm, .input-group-sm > select.form-control,
+.input-group-sm > select.input-group-addon,
+.input-group-sm > .input-group-btn > select.btn {
+ height: 30px;
+ line-height: 30px;
+}
+
+textarea.input-sm, .input-group-sm > textarea.form-control,
+.input-group-sm > textarea.input-group-addon,
+.input-group-sm > .input-group-btn > textarea.btn,
+select[multiple].input-sm,
+.input-group-sm > select[multiple].form-control,
+.input-group-sm > select[multiple].input-group-addon,
+.input-group-sm > .input-group-btn > select[multiple].btn {
+ height: auto;
+}
+
+.form-group-sm .form-control {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+.form-group-sm select.form-control {
+ height: 30px;
+ line-height: 30px;
+}
+
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+ height: auto;
+}
+
+.form-group-sm .form-control-static {
+ height: 30px;
+ min-height: 32px;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+
+.input-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 3px;
+}
+
+select.input-lg, .input-group-lg > select.form-control,
+.input-group-lg > select.input-group-addon,
+.input-group-lg > .input-group-btn > select.btn {
+ height: 46px;
+ line-height: 46px;
+}
+
+textarea.input-lg, .input-group-lg > textarea.form-control,
+.input-group-lg > textarea.input-group-addon,
+.input-group-lg > .input-group-btn > textarea.btn,
+select[multiple].input-lg,
+.input-group-lg > select[multiple].form-control,
+.input-group-lg > select[multiple].input-group-addon,
+.input-group-lg > .input-group-btn > select[multiple].btn {
+ height: auto;
+}
+
+.form-group-lg .form-control {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 3px;
+}
+
+.form-group-lg select.form-control {
+ height: 46px;
+ line-height: 46px;
+}
+
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto;
+}
+
+.form-group-lg .form-control-static {
+ height: 46px;
+ min-height: 38px;
+ padding: 11px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+}
+
+.has-feedback {
+ position: relative;
+}
+
+.has-feedback .form-control {
+ padding-right: 42.5px;
+}
+
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ pointer-events: none;
+}
+
+.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,
+.input-group-lg > .input-group-addon + .form-control-feedback,
+.input-group-lg > .input-group-btn > .btn + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+ width: 46px;
+ height: 46px;
+ line-height: 46px;
+}
+
+.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,
+.input-group-sm > .input-group-addon + .form-control-feedback,
+.input-group-sm > .input-group-btn > .btn + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+ width: 30px;
+ height: 30px;
+ line-height: 30px;
+}
+
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+ color: #6c6c6c;
+}
+
+.has-success .form-control {
+ border-color: #6c6c6c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-success .form-control:focus {
+ border-color: #535353;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+}
+
+.has-success .input-group-addon {
+ color: #6c6c6c;
+ border-color: #6c6c6c;
+ background-color: #dae6cb;
+}
+
+.has-success .form-control-feedback {
+ color: #6c6c6c;
+}
+
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+ color: #6c6c6c;
+}
+
+.has-warning .form-control {
+ border-color: #6c6c6c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-warning .form-control:focus {
+ border-color: #535353;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+}
+
+.has-warning .input-group-addon {
+ color: #6c6c6c;
+ border-color: #6c6c6c;
+ background-color: #f1e3c2;
+}
+
+.has-warning .form-control-feedback {
+ color: #6c6c6c;
+}
+
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+ color: #6c6c6c;
+}
+
+.has-error .form-control {
+ border-color: #6c6c6c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-error .form-control:focus {
+ border-color: #535353;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #9f9f9f;
+}
+
+.has-error .input-group-addon {
+ color: #6c6c6c;
+ border-color: #6c6c6c;
+ background-color: #eac3c7;
+}
+
+.has-error .form-control-feedback {
+ color: #6c6c6c;
+}
+
+.has-feedback label ~ .form-control-feedback {
+ top: 25px;
+}
+
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0;
+}
+
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #626262;
+}
+
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .form-inline .form-control-static {
+ display: inline-block;
+ }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto;
+ }
+ .form-inline .input-group > .form-control {
+ width: 100%;
+ }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0;
+ }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
+
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 27px;
+}
+
+.form-horizontal .form-group {
+ margin-left: 0;
+ margin-right: 0;
+}
+
+.form-horizontal .form-group:before, .form-horizontal .form-group:after {
+ content: " ";
+ display: table;
+}
+
+.form-horizontal .form-group:after {
+ clear: both;
+}
+
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: right;
+ margin-bottom: 0;
+ padding-top: 7px;
+ }
+}
+
+.form-horizontal .has-feedback .form-control-feedback {
+ right: 0;
+}
+
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 14.33333px;
+ font-size: 18px;
+ }
+}
+
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ font-size: 12px;
+ }
+}
+
+.btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: normal;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857;
+ border-radius: 3px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.btn:hover, .btn:focus, .btn.focus {
+ color: #444;
+ text-decoration: none;
+}
+
+.btn:active, .btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn.disabled, .btn[disabled],
+fieldset[disabled] .btn {
+ cursor: not-allowed;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none;
+}
+
+.btn-default {
+ color: #444;
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-default:focus, .btn-default.focus {
+ color: #444;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c;
+}
+
+.btn-default:hover {
+ color: #444;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+
+.btn-default:active, .btn-default.active,
+.open > .btn-default.dropdown-toggle {
+ color: #444;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
+
+.btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus,
+.open > .btn-default.dropdown-toggle:hover,
+.open > .btn-default.dropdown-toggle:focus,
+.open > .btn-default.dropdown-toggle.focus {
+ color: #444;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
+
+.btn-default:active, .btn-default.active,
+.open > .btn-default.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled].active,
+fieldset[disabled] .btn-default,
+fieldset[disabled] .btn-default:hover,
+fieldset[disabled] .btn-default:focus,
+fieldset[disabled] .btn-default.focus,
+fieldset[disabled] .btn-default:active,
+fieldset[disabled] .btn-default.active {
+ background-color: #fff;
+ border-color: #ccc;
+}
+
+.btn-default .badge {
+ color: #fff;
+ background-color: #444;
+}
+
+.btn-primary {
+ color: #fff;
+ background-color: #3a393b;
+ border-color: #3a393b;
+}
+
+.btn-primary:focus, .btn-primary.focus {
+ color: #fff;
+ background-color: #212021;
+ border-color: black;
+}
+
+.btn-primary:hover {
+ color: #fff;
+ background-color: #212021;
+ border-color: #1b1b1c;
+}
+
+.btn-primary:active, .btn-primary.active,
+.open > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #212021;
+ border-color: #1b1b1c;
+}
+
+.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,
+.open > .btn-primary.dropdown-toggle:hover,
+.open > .btn-primary.dropdown-toggle:focus,
+.open > .btn-primary.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #0f0e0f;
+ border-color: black;
+}
+
+.btn-primary:active, .btn-primary.active,
+.open > .btn-primary.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled].active,
+fieldset[disabled] .btn-primary,
+fieldset[disabled] .btn-primary:hover,
+fieldset[disabled] .btn-primary:focus,
+fieldset[disabled] .btn-primary.focus,
+fieldset[disabled] .btn-primary:active,
+fieldset[disabled] .btn-primary.active {
+ background-color: #3a393b;
+ border-color: #3a393b;
+}
+
+.btn-primary .badge {
+ color: #3a393b;
+ background-color: #fff;
+}
+
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-success:focus, .btn-success.focus {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #2d672d;
+}
+
+.btn-success:hover {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #419641;
+}
+
+.btn-success:active, .btn-success.active,
+.open > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #419641;
+}
+
+.btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,
+.open > .btn-success.dropdown-toggle:hover,
+.open > .btn-success.dropdown-toggle:focus,
+.open > .btn-success.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #2d672d;
+}
+
+.btn-success:active, .btn-success.active,
+.open > .btn-success.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled].active,
+fieldset[disabled] .btn-success,
+fieldset[disabled] .btn-success:hover,
+fieldset[disabled] .btn-success:focus,
+fieldset[disabled] .btn-success.focus,
+fieldset[disabled] .btn-success:active,
+fieldset[disabled] .btn-success.active {
+ background-color: #5cb85c;
+ border-color: #5cb85c;
+}
+
+.btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff;
+}
+
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-info:focus, .btn-info.focus {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #1f7e9a;
+}
+
+.btn-info:hover {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #2aabd2;
+}
+
+.btn-info:active, .btn-info.active,
+.open > .btn-info.dropdown-toggle {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #2aabd2;
+}
+
+.btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus,
+.open > .btn-info.dropdown-toggle:hover,
+.open > .btn-info.dropdown-toggle:focus,
+.open > .btn-info.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1f7e9a;
+}
+
+.btn-info:active, .btn-info.active,
+.open > .btn-info.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled].active,
+fieldset[disabled] .btn-info,
+fieldset[disabled] .btn-info:hover,
+fieldset[disabled] .btn-info:focus,
+fieldset[disabled] .btn-info.focus,
+fieldset[disabled] .btn-info:active,
+fieldset[disabled] .btn-info.active {
+ background-color: #5bc0de;
+ border-color: #5bc0de;
+}
+
+.btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff;
+}
+
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-warning:focus, .btn-warning.focus {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #b06d0f;
+}
+
+.btn-warning:hover {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #eb9316;
+}
+
+.btn-warning:active, .btn-warning.active,
+.open > .btn-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #eb9316;
+}
+
+.btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus,
+.open > .btn-warning.dropdown-toggle:hover,
+.open > .btn-warning.dropdown-toggle:focus,
+.open > .btn-warning.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #b06d0f;
+}
+
+.btn-warning:active, .btn-warning.active,
+.open > .btn-warning.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled].active,
+fieldset[disabled] .btn-warning,
+fieldset[disabled] .btn-warning:hover,
+fieldset[disabled] .btn-warning:focus,
+fieldset[disabled] .btn-warning.focus,
+fieldset[disabled] .btn-warning:active,
+fieldset[disabled] .btn-warning.active {
+ background-color: #f0ad4e;
+ border-color: #f0ad4e;
+}
+
+.btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff;
+}
+
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-danger:focus, .btn-danger.focus {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #8b211e;
+}
+
+.btn-danger:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #c12e2a;
+}
+
+.btn-danger:active, .btn-danger.active,
+.open > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #c12e2a;
+}
+
+.btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus,
+.open > .btn-danger.dropdown-toggle:hover,
+.open > .btn-danger.dropdown-toggle:focus,
+.open > .btn-danger.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #8b211e;
+}
+
+.btn-danger:active, .btn-danger.active,
+.open > .btn-danger.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled].active,
+fieldset[disabled] .btn-danger,
+fieldset[disabled] .btn-danger:hover,
+fieldset[disabled] .btn-danger:focus,
+fieldset[disabled] .btn-danger.focus,
+fieldset[disabled] .btn-danger:active,
+fieldset[disabled] .btn-danger.active {
+ background-color: #d9534f;
+ border-color: #d9534f;
+}
+
+.btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff;
+}
+
+.btn-link {
+ color: #3a393b;
+ font-weight: normal;
+ border-radius: 0;
+}
+
+.btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled],
+fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
+ border-color: transparent;
+}
+
+.btn-link:hover, .btn-link:focus {
+ color: #141314;
+ text-decoration: underline;
+ background-color: transparent;
+}
+
+.btn-link[disabled]:hover, .btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:hover,
+fieldset[disabled] .btn-link:focus {
+ color: #999;
+ text-decoration: none;
+}
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 3px;
+}
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+.btn-xs, .btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+
+.btn-block {
+ display: block;
+ width: 100%;
+}
+
+.btn-block + .btn-block {
+ margin-top: 5px;
+}
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%;
+}
+
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear;
+}
+
+.fade.in {
+ opacity: 1;
+}
+
+.collapse {
+ display: none;
+}
+
+.collapse.in {
+ display: block;
+}
+
+tr.collapse.in {
+ display: table-row;
+}
+
+tbody.collapse.in {
+ display: table-row-group;
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-property: height, visibility;
+ transition-property: height, visibility;
+ -webkit-transition-duration: 0.35s;
+ transition-duration: 0.35s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease;
+}
+
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-top: 4px solid \9;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+}
+
+.dropup,
+.dropdown {
+ position: relative;
+}
+
+.dropdown-toggle:focus {
+ outline: 0;
+}
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 14px;
+ text-align: left;
+ background-color: #fcfcfc;
+ border: 1px solid #ccc;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box;
+}
+
+.dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+
+.dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #eee;
+}
+
+.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857;
+ color: #222;
+ white-space: nowrap;
+}
+
+.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #151515;
+ background-color: #f5f5f5;
+}
+
+.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #3a393b;
+}
+
+.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ color: #999;
+}
+
+.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ cursor: not-allowed;
+}
+
+.open > .dropdown-menu {
+ display: block;
+}
+
+.open > a {
+ outline: 0;
+}
+
+.dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857;
+ color: #999;
+ white-space: nowrap;
+}
+
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
+ content: "";
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+}
+
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+ position: relative;
+ float: left;
+}
+
+.btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+.btn-group-vertical > .btn:hover,
+.btn-group-vertical > .btn:focus,
+.btn-group-vertical > .btn:active,
+.btn-group-vertical > .btn.active {
+ z-index: 2;
+}
+
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px;
+}
+
+.btn-toolbar {
+ margin-left: -5px;
+}
+
+.btn-toolbar:before, .btn-toolbar:after {
+ content: " ";
+ display: table;
+}
+
+.btn-toolbar:after {
+ clear: both;
+}
+
+.btn-toolbar .btn,
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+ float: left;
+}
+
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+ margin-left: 5px;
+}
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0;
+}
+
+.btn-group > .btn:first-child {
+ margin-left: 0;
+}
+
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group > .btn-group {
+ float: left;
+}
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0;
+}
+
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px;
+}
+
+.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px;
+}
+
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+
+.btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.btn .caret {
+ margin-left: 0;
+}
+
+.btn-lg .caret, .btn-group-lg > .btn .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0;
+}
+
+.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {
+ border-width: 0 5px 5px;
+}
+
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%;
+}
+
+.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {
+ content: " ";
+ display: table;
+}
+
+.btn-group-vertical > .btn-group:after {
+ clear: both;
+}
+
+.btn-group-vertical > .btn-group > .btn {
+ float: none;
+}
+
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0;
+}
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-bottom-left-radius: 3px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate;
+}
+
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%;
+}
+
+.btn-group-justified > .btn-group .btn {
+ width: 100%;
+}
+
+.btn-group-justified > .btn-group .dropdown-menu {
+ left: auto;
+}
+
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none;
+}
+
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate;
+}
+
+.input-group[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0;
+}
+
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell;
+}
+
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0;
+}
+
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ color: #444;
+ text-align: center;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+}
+
+.input-group-addon.input-sm,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .input-group-addon.btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px;
+}
+
+.input-group-addon.input-lg,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .input-group-addon.btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 3px;
+}
+
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+ margin-top: 0;
+}
+
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.input-group-addon:first-child {
+ border-right: 0;
+}
+
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.input-group-addon:last-child {
+ border-left: 0;
+}
+
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+}
+
+.input-group-btn > .btn {
+ position: relative;
+}
+
+.input-group-btn > .btn + .btn {
+ margin-left: -1px;
+}
+
+.input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {
+ z-index: 2;
+}
+
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+ margin-right: -1px;
+}
+
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+ z-index: 2;
+ margin-left: -1px;
+}
+
+.nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+
+.nav:before, .nav:after {
+ content: " ";
+ display: table;
+}
+
+.nav:after {
+ clear: both;
+}
+
+.nav > li {
+ position: relative;
+ display: block;
+}
+
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+
+.nav > li > a:hover, .nav > li > a:focus {
+ text-decoration: none;
+ background-color: #fff;
+}
+
+.nav > li.disabled > a {
+ color: #999;
+}
+
+.nav > li.disabled > a:hover, .nav > li.disabled > a:focus {
+ color: #999;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed;
+}
+
+.nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
+ background-color: #fff;
+ border-color: #3a393b;
+}
+
+.nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+
+.nav > li > a > img {
+ max-width: none;
+}
+
+.nav-tabs {
+ border-bottom: 1px solid #ddd;
+}
+
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857;
+ border: 1px solid transparent;
+ border-radius: 3px 3px 0 0;
+}
+
+.nav-tabs > li > a:hover {
+ border-color: #fff #fff #ddd;
+}
+
+.nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
+ color: #444;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default;
+}
+
+.nav-pills > li {
+ float: left;
+}
+
+.nav-pills > li > a {
+ border-radius: 3px;
+}
+
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+
+.nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #3a393b;
+}
+
+.nav-stacked > li {
+ float: none;
+}
+
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+
+.nav-justified, .nav-tabs.nav-justified {
+ width: 100%;
+}
+
+.nav-justified > li, .nav-tabs.nav-justified > li {
+ float: none;
+}
+
+.nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px;
+}
+
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+
+@media (min-width: 768px) {
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+
+.nav-tabs-justified, .nav-tabs.nav-justified {
+ border-bottom: 0;
+}
+
+.nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 3px;
+}
+
+.nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
+.nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd;
+}
+
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 3px 3px 0 0;
+ }
+ .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff;
+ }
+}
+
+.tab-content > .tab-pane {
+ display: none;
+}
+
+.tab-content > .active {
+ display: block;
+}
+
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.navbar {
+ position: relative;
+ min-height: 40px;
+ margin-bottom: 0;
+ border: 0;
+}
+
+.navbar:before, .navbar:after {
+ content: " ";
+ display: table;
+}
+
+.navbar:after {
+ clear: both;
+}
+
+@media (min-width: 768px) {
+ .navbar {
+ border-radius: 0;
+ }
+}
+
+.navbar-header:before, .navbar-header:after {
+ content: " ";
+ display: table;
+}
+
+.navbar-header:after {
+ clear: both;
+}
+
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left;
+ }
+}
+
+.navbar-collapse {
+ overflow-x: visible;
+ padding-right: 0;
+ padding-left: 0;
+ border-top: 0;
+ box-shadow: none;
+ -webkit-overflow-scrolling: touch;
+}
+
+.navbar-collapse:before, .navbar-collapse:after {
+ content: " ";
+ display: table;
+}
+
+.navbar-collapse:after {
+ clear: both;
+}
+
+.navbar-collapse.in {
+ overflow-y: auto;
+}
+
+@media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none;
+ }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important;
+ }
+ .navbar-collapse.in {
+ overflow-y: visible;
+ }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
+
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px;
+}
+
+@media (max-device-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px;
+ }
+}
+
+.container > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-header,
+.container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+}
+
+@media (min-width: 768px) {
+ .container > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-header,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0;
+ }
+}
+
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px;
+}
+
+@media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0;
+ }
+}
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030;
+}
+
+@media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0;
+ }
+}
+
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px;
+}
+
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0;
+}
+
+.navbar-brand {
+ display: block;
+ padding: 0 0 0 60px;
+ height: 55px;
+ background: transparent url("/images/theme-default/logo-white.png") no-repeat 5px 3px;
+ color: #fff;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 700;
+ font-size: 1.571em;
+ line-height: 55px;
+ cursor: default;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ user-select: none;
+}
+
+.navbar-brand:hover, .navbar-brand:focus {
+ text-decoration: none;
+}
+
+.navbar-brand > img {
+ display: block;
+}
+
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 0;
+ padding: 9px 10px;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 3px;
+}
+
+.navbar-toggle:focus {
+ outline: 0;
+}
+
+.navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px;
+}
+
+.navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px;
+}
+
+@media (min-width: 768px) {
+ .navbar-toggle {
+ display: none;
+ }
+}
+
+.navbar-nav {
+ margin: 5px 0;
+}
+
+.navbar-nav > li > a > .fa {
+ font-size: 26px;
+}
+
+.navbar-nav > li > a.dropdown-toggle {
+ padding-right: 22px;
+ padding-left: 22px;
+}
+
+@media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none;
+ }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px;
+ }
+ .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none;
+ }
+}
+
+@media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0;
+ }
+ .navbar-nav > li {
+ float: left;
+ }
+ .navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ }
+}
+
+.navbar-form {
+ margin-left: 0;
+ margin-right: 0;
+ padding: 10px 0;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+@media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle;
+ }
+ .navbar-form .form-control-static {
+ display: inline-block;
+ }
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle;
+ }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto;
+ }
+ .navbar-form .input-group > .form-control {
+ width: 100%;
+ }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0;
+ }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0;
+ }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0;
+ }
+}
+
+@media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px;
+ }
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0;
+ }
+}
+
+@media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ box-shadow: none;
+ }
+}
+
+.navbar-nav > li > a.dropdown-toggle > .caret {
+ border-top: 0;
+ border-left: 0;
+ border-right: 0;
+ border-bottom: 0;
+ margin-left: 10px;
+ width: 40px;
+ height: 39px;
+}
+
+.navbar-nav > li > a.dropdown-toggle > .caret:before {
+ content: '\f078';
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: 13px;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ transform: translate(0, 0);
+ color: #fff;
+ position: absolute;
+ top: 24px;
+ margin-left: 14px;
+ display: block;
+}
+
+.navbar-nav > li.dropdown.open > a > .caret {
+ background-color: #3a393b;
+}
+
+.navbar-nav > li.dropdown.open > a > .caret:before {
+ content: '\f077';
+}
+
+.navbar-right > li > a {
+ height: 49px;
+}
+
+.navbar-right > li > a .fa {
+ margin-right: 15px;
+}
+
+.navbar-right > li > a .topbar-text, .navbar-right > li > a .caret, .navbar-right > li > a .fa {
+ vertical-align: middle;
+}
+
+.navbar-nav > li > .dropdown-menu {
+ padding: 0;
+ margin-top: 0;
+ background-color: #3a393b;
+ border: 0;
+ border-radius: 0;
+ box-shadow: none !important;
+ background-clip: padding-box;
+ height: auto;
+ max-height: 400px;
+ overflow-x: hidden;
+ margin-right: 22px;
+}
+
+.navbar-nav > li > .dropdown-menu > li {
+ display: block;
+}
+
+.navbar-nav > li > .dropdown-menu > li > a,
+.navbar-nav > li > .dropdown-menu > li > span {
+ margin: 0 !important;
+ display: block;
+ vertical-align: middle;
+ color: #fff;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 13pt;
+ font-weight: normal;
+ line-height: 24px;
+ padding: 7px 30px;
+ height: 40px;
+ border-top: 1px solid #2e2e2e;
+ -webkit-box-shadow: inset 0px 1px 0px 0px #404042;
+ box-shadow: inset 0px 1px 0px 0px #404042;
+ clear: both;
+ white-space: nowrap;
+}
+
+.navbar-nav > li > .dropdown-menu > li > a:hover, .navbar-nav > li > .dropdown-menu > li > a:focus,
+.navbar-nav > li > .dropdown-menu > li > span:hover,
+.navbar-nav > li > .dropdown-menu > li > span:focus {
+ text-decoration: none;
+ color: #fff;
+ background-color: #3a393b;
+}
+
+.navbar-nav > li > .dropdown-menu > li > a > .fa {
+ vertical-align: middle;
+ font-size: 26px;
+ margin-right: 15px;
+ margin-left: -15px;
+}
+
+.navbar-nav > li > .dropdown-menu > li.critical > a {
+ background: #d9182d;
+}
+
+.navbar-nav > li > .dropdown-menu::-webkit-scrollbar {
+ width: 12px;
+}
+
+.navbar-nav > li > .dropdown-menu::-webkit-scrollbar-track {
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+}
+
+.navbar-nav > li > .dropdown-menu::-webkit-scrollbar-thumb {
+ border-radius: 4px;
+ background: #797979;
+ border-left: 1px solid #B3B3B3;
+ -webkit-box-shadow: inset 6px 1px 6px #9e9e9e;
+ box-shadow: inset 6px 1px 6px #9e9e9e;
+}
+
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.navbar-btn {
+ margin-top: 3px;
+ margin-bottom: 3px;
+}
+
+.navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {
+ margin-top: 5px;
+ margin-bottom: 5px;
+}
+
+.navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {
+ margin-top: 9px;
+ margin-bottom: 9px;
+}
+
+.navbar-text {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+
+@media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-left: 0;
+ margin-right: 0;
+ }
+}
+
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important;
+ }
+ .navbar-right {
+ float: right !important;
+ margin-right: 10px;
+ }
+ .navbar-right ~ .navbar-right {
+ margin-right: 0;
+ }
+}
+
+.navbar-default {
+ background-color: #3a393b;
+ border-color: #3a393b;
+}
+
+.navbar-default .navbar-brand {
+ color: #fff;
+}
+
+.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
+ color: #e6e6e6;
+ background-color: transparent;
+}
+
+.navbar-default .container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 0;
+ padding-right: 0;
+}
+
+.navbar-default .container:before, .navbar-default .container:after {
+ content: " ";
+ display: table;
+}
+
+.navbar-default .container:after {
+ clear: both;
+}
+
+@media (min-width: 768px) {
+ .navbar-default .container {
+ width: 100%;
+ }
+}
+
+@media (min-width: 992px) {
+ .navbar-default .container {
+ width: 100%;
+ }
+}
+
+@media (min-width: 1200px) {
+ .navbar-default .container {
+ width: 100%;
+ padding-left: 80px;
+ padding-right: 60px;
+ }
+ .navbar-default .container #tabPanel {
+ margin-left: -80px;
+ margin-right: -60px;
+ padding-left: 80px;
+ padding-right: 60px;
+ }
+}
+
+.navbar-default .navbar-text {
+ color: #fff;
+}
+
+.navbar-default .navbar-nav > li > a {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0;
+ font-size: 12pt;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 700;
+ color: #fff;
+ text-decoration: none;
+ outline: none;
+ min-width: 156px;
+ text-align: center;
+ height: 40px;
+}
+
+@media (min-width: 1200px) {
+ .navbar-default .navbar-nav > li > a {
+ min-width: 190px;
+ font-size: 13pt;
+ }
+}
+
+.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus {
+ cursor: default;
+ color: #999;
+ background-color: transparent;
+}
+
+.navbar-default .navbar-nav > .active > a.hostSelected, .navbar-default .navbar-nav > .active > a.hostSelected:hover, .navbar-default .navbar-nav > .active > a.hostSelected:focus {
+ height: 41px;
+ background-color: #008abf !important;
+}
+
+.navbar-default .navbar-nav > .active > a.host, .navbar-default .navbar-nav > .active > a.host:hover, .navbar-default .navbar-nav > .active > a.host:focus {
+ height: 41px;
+ background-color: #008abf !important;
+}
+
+.navbar-default .navbar-nav > .active > a.guests, .navbar-default .navbar-nav > .active > a.guests:hover, .navbar-default .navbar-nav > .active > a.guests:focus {
+ height: 41px;
+ background-color: #8cc63f !important;
+}
+
+.navbar-default .navbar-nav > .active > a.templates, .navbar-default .navbar-nav > .active > a.templates:hover, .navbar-default .navbar-nav > .active > a.templates:focus {
+ height: 41px;
+ background-color: #00a6a0 !important;
+}
+
+.navbar-default .navbar-nav > .active > a.storage, .navbar-default .navbar-nav > .active > a.storage:hover, .navbar-default .navbar-nav > .active > a.storage:focus {
+ height: 41px;
+ background-color: #feb813 !important;
+ color: #000 !important;
+}
+
+.navbar-default .navbar-nav > .active > a.network, .navbar-default .navbar-nav > .active > a.network:hover, .navbar-default .navbar-nav > .active > a.network:focus {
+ height: 41px;
+ background-color: #7f1c7d !important;
+}
+
+.navbar-default .navbar-nav > .active > a.administration, .navbar-default .navbar-nav > .active > a.administration:hover, .navbar-default .navbar-nav > .active > a.administration:focus {
+ height: 41px;
+ background-color: #d9182d !important;
+}
+
+.navbar-default .navbar-nav > .active > a.virtualizationTab, .navbar-default .navbar-nav > .active > a.virtualizationTab:hover, .navbar-default .navbar-nav > .active > a.virtualizationTab:focus {
+ height: 41px;
+ background-color: #59930c !important;
+}
+
+.navbar-default .navbar-nav > .active > a.hostTab, .navbar-default .navbar-nav > .active > a.hostTab:hover, .navbar-default .navbar-nav > .active > a.hostTab:focus {
+ height: 41px;
+ background-color: #00578c !important;
+}
+
+.navbar-default .navbar-nav > .active > a.virtualizationSelected, .navbar-default .navbar-nav > .active > a.virtualizationSelected:hover, .navbar-default .navbar-nav > .active > a.virtualizationSelected:focus {
+ height: 41px;
+ background-color: #8cc63f !important;
+}
+
+.navbar-default .navbar-nav > .hostname {
+ margin: 0;
+ padding: 8px 10px;
+ vertical-align: top;
+ width: 156px;
+ padding-left: 60px;
+ height: 40px;
+}
+
+@media (min-width: 1200px) {
+ .navbar-default .navbar-nav > .hostname {
+ width: 190px;
+ }
+}
+
+.navbar-default .navbar-nav > .hostname .host-location {
+ display: inline-block;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ color: #fff;
+ font-size: 8.5pt;
+ font-weight: 300;
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-align: left;
+}
+
+@media (min-width: 768px) {
+ .navbar-default .navbar-nav > .hostname .host-location {
+ margin-top: 8px;
+ }
+}
+
+@media (min-width: 992px) {
+ .navbar-default .navbar-nav > .hostname .host-location {
+ margin-top: 4px;
+ font-size: 11pt;
+ }
+}
+
+.navbar-default .navbar-toggle {
+ border-color: #ddd;
+}
+
+.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
+ background-color: #ddd;
+}
+
+.navbar-default .navbar-toggle .icon-bar {
+ background-color: #888;
+}
+
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+ border-color: #3a393b;
+}
+
+.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {
+ background-color: transparent;
+ color: #fff;
+}
+
+@media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #fff;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #999;
+ background-color: transparent;
+ }
+}
+
+.navbar-default .navbar-link {
+ color: #fff;
+}
+
+.navbar-default .navbar-link:hover {
+ color: #fff;
+}
+
+.navbar-default .btn-link {
+ color: #fff;
+}
+
+.navbar-default .btn-link:hover, .navbar-default .btn-link:focus {
+ color: #fff;
+}
+
+.navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:hover,
+fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #999;
+}
+
+.navbar-inverse {
+ background-color: #222;
+ border-color: #222;
+}
+
+.navbar-inverse .navbar-brand {
+ color: #fff;
+}
+
+.navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-text {
+ color: #fff;
+}
+
+.navbar-inverse .navbar-nav > li > a {
+ color: #fff;
+}
+
+.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #999;
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-toggle {
+ border-color: #333;
+}
+
+.navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
+ background-color: transparent;
+}
+
+.navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff;
+}
+
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+ border-color: #101010;
+}
+
+.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: transparent;
+ color: #fff;
+}
+
+@media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #222;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #222;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #fff;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: transparent;
+ }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #999;
+ background-color: transparent;
+ }
+}
+
+.navbar-inverse .navbar-link {
+ color: #fff;
+}
+
+.navbar-inverse .navbar-link:hover {
+ color: #fff;
+}
+
+.navbar-inverse .btn-link {
+ color: #fff;
+}
+
+.navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {
+ color: #fff;
+}
+
+.navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #999;
+}
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 3px;
+}
+
+.breadcrumb > li {
+ display: inline-block;
+}
+
+.breadcrumb > li + li:before {
+ content: "/ ";
+ padding: 0 5px;
+ color: #ccc;
+}
+
+.breadcrumb > .active {
+ color: #999;
+}
+
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 3px;
+}
+
+.pagination > li {
+ display: inline;
+}
+
+.pagination > li > a,
+.pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.42857;
+ text-decoration: none;
+ color: #3a393b;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px;
+}
+
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.pagination > li > a:hover, .pagination > li > a:focus,
+.pagination > li > span:hover,
+.pagination > li > span:focus {
+ z-index: 3;
+ color: #141314;
+ background-color: #fff;
+ border-color: #ddd;
+}
+
+.pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,
+.pagination > .active > span,
+.pagination > .active > span:hover,
+.pagination > .active > span:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #3a393b;
+ border-color: #3a393b;
+ cursor: default;
+}
+
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+ color: #999;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed;
+}
+
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+}
+
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px;
+}
+
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px;
+}
+
+.pager {
+ padding-left: 0;
+ margin: 20px 0;
+ list-style: none;
+ text-align: center;
+}
+
+.pager:before, .pager:after {
+ content: " ";
+ display: table;
+}
+
+.pager:after {
+ clear: both;
+}
+
+.pager li {
+ display: inline;
+}
+
+.pager li > a,
+.pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px;
+}
+
+.pager li > a:hover,
+.pager li > a:focus {
+ text-decoration: none;
+ background-color: #fff;
+}
+
+.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: #999;
+ background-color: #fff;
+ cursor: not-allowed;
+}
+
+.label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em;
+}
+
+.label:empty {
+ display: none;
+}
+
+.btn .label {
+ position: relative;
+ top: -1px;
+}
+
+a.label:hover, a.label:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.label-default {
+ background-color: #999;
+}
+
+.label-default[href]:hover, .label-default[href]:focus {
+ background-color: gray;
+}
+
+.label-primary {
+ background-color: #3a393b;
+}
+
+.label-primary[href]:hover, .label-primary[href]:focus {
+ background-color: #212021;
+}
+
+.label-success {
+ background-color: #5cb85c;
+}
+
+.label-success[href]:hover, .label-success[href]:focus {
+ background-color: #449d44;
+}
+
+.label-info {
+ background-color: #5bc0de;
+}
+
+.label-info[href]:hover, .label-info[href]:focus {
+ background-color: #31b0d5;
+}
+
+.label-warning {
+ background-color: #f0ad4e;
+}
+
+.label-warning[href]:hover, .label-warning[href]:focus {
+ background-color: #ec971f;
+}
+
+.label-danger {
+ background-color: #d9534f;
+}
+
+.label-danger[href]:hover, .label-danger[href]:focus {
+ background-color: #c9302c;
+}
+
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ color: #fff;
+ line-height: 1;
+ vertical-align: middle;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #999;
+ border-radius: 10px;
+}
+
+.badge:empty {
+ display: none;
+}
+
+.btn .badge {
+ position: relative;
+ top: -1px;
+}
+
+.btn-xs .badge, .btn-group-xs > .btn .badge,
+.btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px;
+}
+
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+ color: #3a393b;
+ background-color: #fff;
+}
+
+.list-group-item > .badge {
+ float: right;
+}
+
+.list-group-item > .badge + .badge {
+ margin-right: 5px;
+}
+
+.nav-pills > li > a > .badge {
+ margin-left: 3px;
+}
+
+a.badge:hover, a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.jumbotron {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #fff;
+}
+
+.jumbotron h1,
+.jumbotron .h1 {
+ color: inherit;
+}
+
+.jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200;
+}
+
+.jumbotron > hr {
+ border-top-color: #e6e6e6;
+}
+
+.container .jumbotron,
+.container-fluid .jumbotron {
+ border-radius: 3px;
+}
+
+.jumbotron .container {
+ max-width: 100%;
+}
+
+@media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px;
+ }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px;
+ }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 63px;
+ }
+}
+
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 20px;
+ line-height: 1.42857;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ -webkit-transition: border 0.2s ease-in-out;
+ -o-transition: border 0.2s ease-in-out;
+ transition: border 0.2s ease-in-out;
+}
+
+.thumbnail > img,
+.thumbnail a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.thumbnail .caption {
+ padding: 9px;
+ color: #222;
+}
+
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #3a393b;
+}
+
+@media (min-width: 1200px) {
+ #alert-fields {
+ padding-top: 10px;
+ }
+}
+
+.alert {
+ padding: 8px 15px;
+ margin-bottom: 10px;
+ border: 1px solid transparent;
+ border-radius: 0;
+ border-width: 0 0 0 5px;
+ position: relative;
+}
+
+.alert h4 {
+ margin-top: 0;
+ color: inherit;
+}
+
+.alert .alert-link {
+ font-weight: bold;
+}
+
+.alert > p,
+.alert > ul {
+ margin-bottom: 0;
+}
+
+.alert > p + p {
+ margin-top: 5px;
+}
+
+.alert-dismissable,
+.alert-dismissible {
+ padding-right: 8px 15px20;
+}
+
+.alert-dismissable .close,
+.alert-dismissible .close {
+ opacity: 1;
+ position: absolute;
+ top: 6px;
+ right: 15px;
+ color: inherit;
+}
+
+.alert-success {
+ background-color: #dae6cb;
+ border-color: #8cc63f;
+ color: #6c6c6c;
+}
+
+.alert-success hr {
+ border-top-color: #7fb636;
+}
+
+.alert-success .alert-link {
+ color: #535353;
+}
+
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #008abf;
+ color: #6c6c6c;
+}
+
+.alert-info hr {
+ border-top-color: #0078a6;
+}
+
+.alert-info .alert-link {
+ color: #535353;
+}
+
+.alert-warning {
+ background-color: #f1e3c2;
+ border-color: #fdb813;
+ color: #6c6c6c;
+}
+
+.alert-warning hr {
+ border-top-color: #f4ad02;
+}
+
+.alert-warning .alert-link {
+ color: #535353;
+}
+
+.alert-danger {
+ background-color: #eac3c7;
+ border-color: #d9182d;
+ color: #6c6c6c;
+}
+
+.alert-danger hr {
+ border-top-color: #c21528;
+}
+
+.alert-danger .alert-link {
+ color: #535353;
+}
+
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+
+.progress {
+ overflow: hidden;
+ height: 20px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+
+.progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: 12px;
+ line-height: 20px;
+ color: #fff;
+ text-align: center;
+ background-color: #3a393b;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ -o-transition: width 0.6s ease;
+ transition: width 0.6s ease;
+}
+
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 40px 40px;
+}
+
+.progress.active .progress-bar,
+.progress-bar.active {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+}
+
+.progress-bar-success {
+ background-color: #5cb85c;
+}
+
+.progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-bar-info {
+ background-color: #5bc0de;
+}
+
+.progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-bar-warning {
+ background-color: #f0ad4e;
+}
+
+.progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.progress-bar-danger {
+ background-color: #d9534f;
+}
+
+.progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+
+.media {
+ margin-top: 15px;
+}
+
+.media:first-child {
+ margin-top: 0;
+}
+
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden;
+}
+
+.media-body {
+ width: 10000px;
+}
+
+.media-object {
+ display: block;
+}
+
+.media-object.img-thumbnail {
+ max-width: none;
+}
+
+.media-right,
+.media > .pull-right {
+ padding-left: 10px;
+}
+
+.media-left,
+.media > .pull-left {
+ padding-right: 10px;
+}
+
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top;
+}
+
+.media-middle {
+ vertical-align: middle;
+}
+
+.media-bottom {
+ vertical-align: bottom;
+}
+
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+.media-list {
+ padding-left: 0;
+ list-style: none;
+}
+
+.list-group {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+
+.list-group-item:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+
+.list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+}
+
+a.list-group-item,
+button.list-group-item {
+ color: #555;
+}
+
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
+ color: #333;
+}
+
+a.list-group-item:hover, a.list-group-item:focus,
+button.list-group-item:hover,
+button.list-group-item:focus {
+ text-decoration: none;
+ color: #555;
+ background-color: #f5f5f5;
+}
+
+button.list-group-item {
+ width: 100%;
+ text-align: left;
+}
+
+.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {
+ background-color: #fff;
+ color: #999;
+ cursor: not-allowed;
+}
+
+.list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit;
+}
+
+.list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text {
+ color: #999;
+}
+
+.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #3a393b;
+ border-color: #3a393b;
+}
+
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit;
+}
+
+.list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text {
+ color: #a09ea2;
+}
+
+.list-group-item-success {
+ color: #6c6c6c;
+ background-color: #dae6cb;
+}
+
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #6c6c6c;
+}
+
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-success:hover, a.list-group-item-success:focus,
+button.list-group-item-success:hover,
+button.list-group-item-success:focus {
+ color: #6c6c6c;
+ background-color: #cedeba;
+}
+
+a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus,
+button.list-group-item-success.active,
+button.list-group-item-success.active:hover,
+button.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #6c6c6c;
+ border-color: #6c6c6c;
+}
+
+.list-group-item-info {
+ color: #6c6c6c;
+ background-color: #d9edf7;
+}
+
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #6c6c6c;
+}
+
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-info:hover, a.list-group-item-info:focus,
+button.list-group-item-info:hover,
+button.list-group-item-info:focus {
+ color: #6c6c6c;
+ background-color: #c4e3f3;
+}
+
+a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus,
+button.list-group-item-info.active,
+button.list-group-item-info.active:hover,
+button.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #6c6c6c;
+ border-color: #6c6c6c;
+}
+
+.list-group-item-warning {
+ color: #6c6c6c;
+ background-color: #f1e3c2;
+}
+
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #6c6c6c;
+}
+
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-warning:hover, a.list-group-item-warning:focus,
+button.list-group-item-warning:hover,
+button.list-group-item-warning:focus {
+ color: #6c6c6c;
+ background-color: #ecd9ad;
+}
+
+a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active,
+button.list-group-item-warning.active:hover,
+button.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #6c6c6c;
+ border-color: #6c6c6c;
+}
+
+.list-group-item-danger {
+ color: #6c6c6c;
+ background-color: #eac3c7;
+}
+
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #6c6c6c;
+}
+
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+ color: inherit;
+}
+
+a.list-group-item-danger:hover, a.list-group-item-danger:focus,
+button.list-group-item-danger:hover,
+button.list-group-item-danger:focus {
+ color: #6c6c6c;
+ background-color: #e3b0b5;
+}
+
+a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active,
+button.list-group-item-danger.active:hover,
+button.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #6c6c6c;
+ border-color: #6c6c6c;
+}
+
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px;
+}
+
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3;
+}
+
+.panel {
+ margin-bottom: 20px;
+ background-color: transparent;
+ border: 1px solid transparent;
+ border-radius: 0;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+.panel-body {
+ padding: 11px 0;
+}
+
+.panel-body:before, .panel-body:after {
+ content: " ";
+ display: table;
+}
+
+.panel-body:after {
+ clear: both;
+}
+
+.panel-heading {
+ padding: 2px 0;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: -1;
+ border-top-left-radius: -1;
+}
+
+.panel-heading > .dropdown .dropdown-toggle {
+ color: inherit;
+}
+
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit;
+}
+
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+ color: inherit;
+}
+
+.panel-footer {
+ padding: 2px 0;
+ background-color: transparent;
+ border-top: 1px solid transparent;
+ border-bottom-right-radius: -1;
+ border-bottom-left-radius: -1;
+}
+
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+ margin-bottom: 0;
+}
+
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0;
+}
+
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-right-radius: -1;
+ border-top-left-radius: -1;
+}
+
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: -1;
+ border-bottom-left-radius: -1;
+}
+
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+}
+
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0;
+}
+
+.list-group + .panel-footer {
+ border-top-width: 0;
+}
+
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+ margin-bottom: 0;
+}
+
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+ padding-left: 11px 0;
+ padding-right: 11px 0;
+}
+
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-right-radius: -1;
+ border-top-left-radius: -1;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: -1;
+ border-top-right-radius: -1;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: -1;
+}
+
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: -1;
+}
+
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: -1;
+ border-bottom-left-radius: -1;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-left-radius: -1;
+ border-bottom-right-radius: -1;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: -1;
+}
+
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: -1;
+}
+
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+ border-top: 1px solid #eee;
+}
+
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0;
+}
+
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0;
+}
+
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0;
+}
+
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0;
+}
+
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0;
+}
+
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0;
+}
+
+.panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0;
+}
+
+.panel-group {
+ margin-bottom: 20px;
+}
+
+.panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 0;
+}
+
+.panel-group .panel + .panel {
+ margin-top: 5px;
+}
+
+.panel-group .panel-heading {
+ border-bottom: 0;
+}
+
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid transparent;
+}
+
+.panel-group .panel-footer {
+ border-top: 0;
+}
+
+.panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid transparent;
+}
+
+.panel-default {
+ border-color: transparent;
+}
+
+.panel-default > .panel-heading {
+ color: #222;
+ background-color: transparent;
+ border-color: transparent;
+}
+
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: transparent;
+}
+
+.panel-default > .panel-heading .badge {
+ color: transparent;
+ background-color: #222;
+}
+
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: transparent;
+}
+
+.panel-primary {
+ border-color: #3a393b;
+}
+
+.panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #3a393b;
+ border-color: #3a393b;
+}
+
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #3a393b;
+}
+
+.panel-primary > .panel-heading .badge {
+ color: #3a393b;
+ background-color: #fff;
+}
+
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #3a393b;
+}
+
+.panel-success {
+ border-color: #8cc63f;
+}
+
+.panel-success > .panel-heading {
+ color: #6c6c6c;
+ background-color: #dae6cb;
+ border-color: #8cc63f;
+}
+
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #8cc63f;
+}
+
+.panel-success > .panel-heading .badge {
+ color: #dae6cb;
+ background-color: #6c6c6c;
+}
+
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #8cc63f;
+}
+
+.panel-info {
+ border-color: #008abf;
+}
+
+.panel-info > .panel-heading {
+ color: #6c6c6c;
+ background-color: #d9edf7;
+ border-color: #008abf;
+}
+
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #008abf;
+}
+
+.panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #6c6c6c;
+}
+
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #008abf;
+}
+
+.panel-warning {
+ border-color: #fdb813;
+}
+
+.panel-warning > .panel-heading {
+ color: #6c6c6c;
+ background-color: #f1e3c2;
+ border-color: #fdb813;
+}
+
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #fdb813;
+}
+
+.panel-warning > .panel-heading .badge {
+ color: #f1e3c2;
+ background-color: #6c6c6c;
+}
+
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #fdb813;
+}
+
+.panel-danger {
+ border-color: #d9182d;
+}
+
+.panel-danger > .panel-heading {
+ color: #6c6c6c;
+ background-color: #eac3c7;
+ border-color: #d9182d;
+}
+
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d9182d;
+}
+
+.panel-danger > .panel-heading .badge {
+ color: #eac3c7;
+ background-color: #6c6c6c;
+}
+
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d9182d;
+}
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden;
+}
+
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0;
+}
+
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%;
+}
+
+.embed-responsive-4by3 {
+ padding-bottom: 75%;
+}
+
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 3px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+
+.well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15);
+}
+
+.well-lg {
+ padding: 24px;
+ border-radius: 3px;
+}
+
+.well-sm {
+ padding: 9px;
+ border-radius: 3px;
+}
+
+.close {
+ float: right;
+ font-size: 21px;
+ font-weight: bold;
+ line-height: 1;
+ color: #555;
+ text-shadow: 0 1px 0 #fff;
+ opacity: 0.2;
+ filter: alpha(opacity=20);
+}
+
+.close:hover, .close:focus {
+ color: #555;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none;
+}
+
+.modal-open {
+ overflow: hidden;
+}
+
+.modal {
+ display: none;
+ overflow: hidden;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ -webkit-overflow-scrolling: touch;
+ outline: 0;
+}
+
+.modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out;
+}
+
+.modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0);
+}
+
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px;
+ border: 6px solid #aaa;
+ border: 6px solid rgba(170, 170, 170, 0.3);
+ border-radius: 5px;
+ background-clip: padding-box;
+}
+
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ border-radius: 0;
+ border: 3px solid #999;
+ background-clip: padding-box;
+ box-shadow: none !important;
+ border-radius: 0;
+ outline: 0;
+}
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #fff;
+}
+
+.modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+
+.modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+}
+
+.modal-header {
+ padding: 27px 14px 14px 30px;
+ border-bottom: 1px solid transparent;
+ min-height: 27px 14px 14px 30px23px;
+}
+
+.modal-header .close {
+ margin-top: -2px;
+}
+
+.modal-title {
+ margin: 0;
+ line-height: 23px;
+ font-size: 27px;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300 !important;
+}
+
+.modal-body {
+ position: relative;
+ padding: 10px 30px;
+}
+
+.modal-footer {
+ padding: 10px 30px;
+ text-align: left !important;
+ border-top: 0;
+ margin-top: 20px;
+ background-color: #8cc63f;
+}
+
+.modal-footer:before, .modal-footer:after {
+ content: " ";
+ display: table;
+}
+
+.modal-footer:after {
+ clear: both;
+}
+
+.modal-footer .btn {
+ padding: 6px 12px;
+ min-width: 75px;
+}
+
+.modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0;
+}
+
+.modal-footer .btn-group .btn + .btn {
+ margin-left: -1px;
+}
+
+.modal-footer .btn-block + .btn-block {
+ margin-left: 0;
+}
+
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 824px;
+ margin: 30px auto;
+ }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ }
+ .modal-sm {
+ width: 524px;
+ }
+}
+
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 1124px;
+ }
+}
+
+.modal {
+ text-align: center;
+}
+
+@media screen and (min-width: 768px) {
+ .modal:before {
+ display: inline-block;
+ vertical-align: middle;
+ content: " ";
+ height: 100%;
+ }
+}
+
+.modal-dialog {
+ display: inline-block;
+ text-align: left;
+ vertical-align: middle;
+}
+
+.modal label {
+ color: #222;
+ font-weight: 400;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 20px;
+}
+
+.modal-body .nav {
+ margin-left: -30px;
+ margin-right: -30px;
+ display: table;
+ width: 1082px;
+ width: calc(100% + 60px);
+}
+
+.modal-body .nav-tabs {
+ border-bottom: 0;
+}
+
+.modal-body .nav-tabs > li.active > a, .modal-body .nav-tabs > li.active > a:hover, .modal-body .nav-tabs > li.active > a:focus {
+ border: 0;
+ border-radius: 0;
+ border-bottom: 5px solid #8cc63f;
+ font-weight: 600;
+}
+
+.modal-body .nav-tabs > li {
+ margin-bottom: 0;
+ width: auto;
+ float: none;
+ position: static;
+ display: table-cell;
+ border: 0;
+}
+
+.modal-body .nav-tabs > li > a {
+ font-size: 17px;
+ font-weight: 300;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ border: 0;
+ border-bottom: 5px solid #eee;
+ text-align: center;
+ border-radius: 0;
+ margin: 0;
+}
+
+.modal-body .nav-tabs > li > a:hover {
+ background-color: transparent;
+}
+
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 12px;
+ opacity: 0;
+ filter: alpha(opacity=0);
+}
+
+.tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90);
+}
+
+.tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0;
+}
+
+.tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px;
+}
+
+.tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0;
+}
+
+.tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px;
+}
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 3px;
+}
+
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000;
+}
+
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000;
+}
+
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000;
+}
+
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000;
+}
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 14px;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 3px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+}
+
+.popover.top {
+ margin-top: -10px;
+}
+
+.popover.right {
+ margin-left: 10px;
+}
+
+.popover.bottom {
+ margin-top: 10px;
+}
+
+.popover.left {
+ margin-left: -10px;
+}
+
+.popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 14px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 2px 2px 0 0;
+}
+
+.popover-content {
+ padding: 9px 14px;
+}
+
+.popover > .arrow, .popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid;
+}
+
+.popover > .arrow {
+ border-width: 11px;
+}
+
+.popover > .arrow:after {
+ border-width: 10px;
+ content: "";
+}
+
+.popover.top > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px;
+}
+
+.popover.top > .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff;
+}
+
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999999;
+ border-right-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.right > .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff;
+}
+
+.popover.bottom > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px;
+}
+
+.popover.bottom > .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff;
+}
+
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999999;
+ border-left-color: rgba(0, 0, 0, 0.25);
+}
+
+.popover.left > .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px;
+}
+
+.clearfix:before, .clearfix:after {
+ content: " ";
+ display: table;
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.pull-right {
+ float: right !important;
+}
+
+.pull-left {
+ float: left !important;
+}
+
+.hide {
+ display: none !important;
+}
+
+.show {
+ display: block !important;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+.hidden {
+ display: none !important;
+}
+
+.affix {
+ position: fixed;
+}
+
+@-ms-viewport {
+ width: device-width;
+}
+
+.visible-xs {
+ display: none !important;
+}
+
+.visible-sm {
+ display: none !important;
+}
+
+.visible-md {
+ display: none !important;
+}
+
+.visible-lg {
+ display: none !important;
+}
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important;
+}
+
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important;
+ }
+ table.visible-xs {
+ display: table !important;
+ }
+ tr.visible-xs {
+ display: table-row !important;
+ }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important;
+ }
+ table.visible-sm {
+ display: table !important;
+ }
+ tr.visible-sm {
+ display: table-row !important;
+ }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important;
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important;
+ }
+ table.visible-md {
+ display: table !important;
+ }
+ tr.visible-md {
+ display: table-row !important;
+ }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important;
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important;
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important;
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important;
+ }
+ table.visible-lg {
+ display: table !important;
+ }
+ tr.visible-lg {
+ display: table-row !important;
+ }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important;
+ }
+}
+
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important;
+ }
+}
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important;
+ }
+}
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important;
+ }
+}
+
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important;
+ }
+}
+
+.visible-print {
+ display: none !important;
+}
+
+@media print {
+ .visible-print {
+ display: block !important;
+ }
+ table.visible-print {
+ display: table !important;
+ }
+ tr.visible-print {
+ display: table-row !important;
+ }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important;
+ }
+}
+
+.visible-print-block {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-block {
+ display: block !important;
+ }
+}
+
+.visible-print-inline {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-inline {
+ display: inline !important;
+ }
+}
+
+.visible-print-inline-block {
+ display: none !important;
+}
+
+@media print {
+ .visible-print-inline-block {
+ display: inline-block !important;
+ }
+}
+
+@media print {
+ .hidden-print {
+ display: none !important;
+ }
+}
diff --git a/ui/css/wok.css b/ui/css/wok.css
new file mode 100644
index 0000000..ec69ec4
--- /dev/null
+++ b/ui/css/wok.css
@@ -0,0 +1,996 @@
+/*
+ * Project Wok
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * Code derived from Project Kimchi
+ *
+ * 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.
+ */
+/*
+ * A partial implementation of the Ruby list functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/…
+ */
+/*
+ * A partial implementation of the Ruby constants functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/…
+ */
+/*
+ * A partial implementation of the Ruby display functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/core/lib/compass/core/sass_e…
+ */
+.container {
+ margin-right: auto;
+ margin-left: auto;
+}
+
+.hide-content {
+ display: none !important;
+}
+
+.help-block {
+ color: #aaa;
+}
+
+.panel {
+ box-shadow: none !important;
+ -webkit-box-shadow: none !important;
+}
+
+.panel-title {
+ font-size: 21.5pt;
+}
+
+.login-area {
+ margin: 90px auto 0;
+ width: 300px;
+}
+
+.login-area .btn-login {
+ display: block;
+ position: static;
+ float: none;
+ margin-bottom: 50px;
+}
+
+.login-area .col-md-12, .login-area .col-lg-12 {
+ width: 100%;
+}
+
+.login-area .bootstrap-select,
+.login-area .selectpicker {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 13pt;
+}
+
+.login-area .dropdown-toggle.selectpicker {
+ height: 40px;
+}
+
+.login-area .form-group {
+ margin-bottom: 20px;
+}
+
+.login-area .form-group:last-child {
+ margin-bottom: 0;
+}
+
+.navbar-default.toolbar {
+ height: 40px;
+ padding: 0;
+ margin: 0;
+ overflow: hidden;
+ background: #3a393b;
+}
+
+.navbar-default.toolbar .tools {
+ height: 40px;
+}
+
+.navbar-default.toolbar .navbar-nav > li > a.dropdown-toggle > .caret {
+ margin-top: -5px;
+ width: 20px;
+ margin-left: 5px;
+}
+
+.navbar-default.toolbar .navbar-nav > li > a.dropdown-toggle > .caret:before {
+ top: 15px;
+ margin-left: 0;
+}
+
+.navbar-default.toolbar .navbar-right.tools > li > a {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ display: inline-block;
+ color: #fff;
+ text-decoration: none;
+ font-size: 13pt;
+ vertical-align: middle;
+ padding: 6px 0;
+ margin-left: 20px;
+ font-weight: 600;
+ width: auto;
+ min-width: auto;
+}
+
+.navbar-default.toolbar span,
+.navbar-default.toolbar .fa {
+ display: inline-block;
+ vertical-align: middle;
+}
+
+.navbar-default.toolbar .fa {
+ font-size: 24px;
+ margin-right: 15px;
+}
+
+#host-root-container .navbar-default.toolbar {
+ background-color: #008abf !important;
+}
+
+#guests-root-container .navbar-default.toolbar {
+ background-color: #8cc63f !important;
+}
+
+#templates-root-container .navbar-default.toolbar {
+ background-color: #8cc63f !important;
+}
+
+#storage-root-container .navbar-default.toolbar {
+ background-color: #8cc63f !important;
+}
+
+#network-root-container .navbar-default.toolbar {
+ background-color: #8cc63f !important;
+}
+
+#administration-root-container .navbar-default.toolbar {
+ background-color: #008abf !important;
+}
+
+#tabPanel.hostSelected {
+ background-color: #008abf !important;
+}
+
+#tabPanel.host {
+ background-color: #008abf !important;
+}
+
+#tabPanel.guests {
+ background-color: #8cc63f !important;
+}
+
+#tabPanel.templates {
+ background-color: #00a6a0 !important;
+}
+
+#tabPanel.storage {
+ background-color: #feb813 !important;
+}
+
+#tabPanel.network {
+ background-color: #7f1c7d !important;
+}
+
+#tabPanel.administration {
+ background-color: #d9182d !important;
+}
+
+#tabPanel.virtualizationTab {
+ background-color: #59930c !important;
+}
+
+#tabPanel.hostTab {
+ background-color: #00578c !important;
+}
+
+#tabPanel.virtualizationSelected {
+ background-color: #8cc63f !important;
+}
+
+@media (min-width: 991px) and (max-width: 992px) {
+ .host-dashboard .container {
+ padding-right: 10px;
+ padding-left: 10px;
+ }
+}
+
+@media (min-width: 1199px) and (max-width: 1200px) {
+ .navbar-default.toolbar .navbar-right.tools > li > a {
+ margin-left: 50px;
+ }
+}
+
+.btn {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 13pt;
+}
+
+.btn-login {
+ color: #fff;
+ background-color: #008abf;
+ border-color: #008abf;
+}
+
+.btn-login:focus, .btn-login.focus {
+ color: #fff;
+ background-color: #00658c;
+ border-color: #002e40;
+}
+
+.btn-login:hover {
+ color: #fff;
+ background-color: #00658c;
+ border-color: #005e82;
+}
+
+.btn-login:active, .btn-login.active,
+.open > .btn-login.dropdown-toggle {
+ color: #fff;
+ background-color: #00658c;
+ border-color: #005e82;
+}
+
+.btn-login:active:hover, .btn-login:active:focus, .btn-login:active.focus, .btn-login.active:hover, .btn-login.active:focus, .btn-login.active.focus,
+.open > .btn-login.dropdown-toggle:hover,
+.open > .btn-login.dropdown-toggle:focus,
+.open > .btn-login.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #004b68;
+ border-color: #002e40;
+}
+
+.btn-login:active, .btn-login.active,
+.open > .btn-login.dropdown-toggle {
+ background-image: none;
+}
+
+.btn-login.disabled, .btn-login.disabled:hover, .btn-login.disabled:focus, .btn-login.disabled.focus, .btn-login.disabled:active, .btn-login.disabled.active, .btn-login[disabled], .btn-login[disabled]:hover, .btn-login[disabled]:focus, .btn-login[disabled].focus, .btn-login[disabled]:active, .btn-login[disabled].active,
+fieldset[disabled] .btn-login,
+fieldset[disabled] .btn-login:hover,
+fieldset[disabled] .btn-login:focus,
+fieldset[disabled] .btn-login.focus,
+fieldset[disabled] .btn-login:active,
+fieldset[disabled] .btn-login.active {
+ background-color: #008abf;
+ border-color: #008abf;
+}
+
+.btn-login .badge {
+ color: #008abf;
+ background-color: #fff;
+}
+
+.menu-flat .btn {
+ background: #4d4c4e !important;
+ min-width: 160px;
+ border: 0 !important;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 700;
+ font-size: 13.5pt;
+ position: relative;
+ height: 40px;
+ padding: 4px 45px 5px 38px;
+}
+
+.menu-flat .btn > i {
+ font-size: 22px;
+ vertical-align: bottom;
+ width: 26px;
+ height: 40px;
+ text-align: left;
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 6px;
+}
+
+.menu-flat .btn > i:before {
+ line-height: 40px;
+}
+
+.menu-flat .btn .edit-alt {
+ background: transparent url("/images/theme-default/edit-alt.svg") no-repeat 50% 50%;
+ background-size: 100%;
+ vertical-align: bottom;
+ width: 22px;
+ height: 40px;
+ display: block;
+ position: absolute;
+ top: 0;
+ left: 12px;
+}
+
+.menu-flat .caret {
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: block;
+ width: 40px;
+ height: 40px;
+ margin-left: 0;
+ vertical-align: middle;
+ border-top: 0;
+ border-top: 0 \9;
+ border-right: 0;
+ border-left: 0;
+}
+
+.menu-flat .caret:before {
+ content: '\f078';
+ font: normal normal normal 14px/1 FontAwesome;
+ speak: none;
+ display: inline-block;
+ text-decoration: inherit;
+ width: 1.2em;
+ height: 1.2em;
+ margin: .5em;
+ text-align: center;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 2em;
+}
+
+.menu-flat.dropup, .menu-flat.dropdown {
+ position: relative;
+}
+
+.menu-flat .dropdown-toggle:focus {
+ outline: 0;
+}
+
+.menu-flat .dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ font-size: 13.5pt;
+ text-align: left;
+ background-color: #3a393b;
+ border: 0;
+ border-radius: 0;
+ box-shadow: none !important;
+ background-clip: padding-box;
+}
+
+.menu-flat .dropdown-menu.pull-right {
+ right: 0;
+ left: auto;
+}
+
+.menu-flat .dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #404042;
+}
+
+.menu-flat .dropdown-menu > li.wok-hide-action-item {
+ display: none;
+}
+
+.menu-flat .dropdown-menu > li > a {
+ border-top: 1px solid #2e2e2e;
+ -webkit-box-shadow: inset 0px 1px 0px 0px #404042;
+ box-shadow: inset 0px 1px 0px 0px #404042;
+}
+
+.menu-flat .dropdown-menu > li:first-child > a {
+ border-top: 1px solid #3a393b;
+ box-shadow: none;
+}
+
+.menu-flat .dropdown-menu > li.critical:last-child > a,
+.menu-flat .dropdown-menu > li.critical:last-child > a:hover {
+ box-shadow: none;
+}
+
+.menu-flat .dropdown-menu > li > a {
+ cursor: pointer;
+ display: block;
+ padding: 4px 6px;
+ clear: both;
+ font-weight: normal;
+ line-height: 31px;
+ color: #fff;
+ white-space: nowrap;
+}
+
+.menu-flat .dropdown-menu > li > a > i {
+ font-size: 22px;
+ margin-left: 8px;
+ vertical-align: middle;
+ width: 26px;
+ height: 26px;
+ text-align: left;
+ display: inline-block;
+}
+
+.menu-flat .dropdown-menu > li > a:hover, .menu-flat .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #fff;
+ background-color: #3a393b;
+}
+
+.menu-flat .dropdown-menu > .active > a, .menu-flat .dropdown-menu > .active > a:hover, .menu-flat .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #3a393b;
+}
+
+.menu-flat .dropdown-menu > li.critical > a,
+.menu-flat .dropdown-menu > li.critical > a:hover {
+ background: #d9182d;
+}
+
+.menu-flat .dropdown-menu > li.critical.disabled > a,
+.menu-flat .dropdown-menu > li.critical.disabled > a:hover {
+ background-color: #3a393b;
+}
+
+.menu-flat .dropdown-menu > .disabled > a, .menu-flat .dropdown-menu > .disabled > a:hover, .menu-flat .dropdown-menu > .disabled > a:focus {
+ color: #999;
+}
+
+.menu-flat .dropdown-menu > .disabled > a:hover, .menu-flat .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ cursor: not-allowed;
+}
+
+.menu-flat.open .btn {
+ border-bottom-left-radius: 0;
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0;
+}
+
+.menu-flat.open > .dropdown-menu {
+ display: block;
+}
+
+.menu-flat.open .caret {
+ background: #3a393b;
+}
+
+.menu-flat.open .caret:before {
+ content: '\f077';
+}
+
+.menu-flat.open > a {
+ outline: 0;
+}
+
+.dropdown-menu-right {
+ left: auto;
+ right: 0;
+}
+
+.dropdown-menu-left {
+ left: 0;
+ right: auto;
+}
+
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857;
+ color: #999;
+ white-space: nowrap;
+}
+
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990;
+}
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto;
+}
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
+ content: "";
+}
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px;
+}
+
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto;
+ }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto;
+ }
+}
+
+/* Bootstrap Tables override */
+.table > tbody > tr:first-child > td {
+ border-color: #e3e3e3;
+}
+
+/* Wok Grid widget */
+.wok-grid-content .btn-group {
+ padding-bottom: 16px;
+}
+
+.wok-grid-mask {
+ top: 100px !important;
+}
+
+.wok-list-mask {
+ top: 37px !important;
+}
+
+.wok-list-cell {
+ position: relative;
+ padding-left: 45px;
+}
+
+.wok-repository-status {
+ position: absolute;
+ left: 6px;
+ top: 0;
+}
+
+.wok-repository-status .fa {
+ font-size: 23px;
+ color: #a8d46f;
+}
+
+.wok-list-name, .wok-list-description {
+ display: block;
+}
+
+.wok-list-name {
+ font-weight: 600;
+ font-size: 13pt;
+}
+
+.wok-list-description {
+ font-weight: 300;
+ font-size: 10pt;
+ overflow: hidden;
+}
+
+.wok-list-content tbody tr, .wok-list-content tbody tr * {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.wok-list-content tbody tr:hover {
+ text-decoration: underline;
+ cursor: pointer;
+}
+
+.wok-list-content tbody tr.generating:hover {
+ text-decoration: none;
+ cursor: default;
+}
+
+.wok-list-content tbody tr.selected {
+ background: #ddd;
+}
+
+span.wok-repository-status.disabled {
+ display: none;
+}
+
+.wok-list-cell.disabled span {
+ color: #999;
+}
+
+.wok-single-button {
+ padding-bottom: 16px;
+ margin-top: -11px;
+}
+
+.generating .wok-list-description {
+ padding-left: 24px;
+}
+
+.generating .wok-list-loading-icon-inline {
+ background: transparent url("/images/theme-default/spin5.svg") no-repeat 50% 50%;
+ -webkit-animation: spin 3s infinite linear;
+ -o-animation: spin 3s infinite linear;
+ animation: spin 3s infinite linear;
+ height: 16px;
+ width: 16px;
+ background-size: 100%;
+ display: block;
+ position: absolute;
+}
+
+.grid-control {
+ padding: 5px;
+}
+
+.grid-control input[type="text"] {
+ width: 514px;
+}
+
+.wok-datagrid {
+ background: #fff;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+.wok-datagrid .wok-datagrid-header,
+.wok-datagrid .wok-datagrid-body {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+}
+
+.wok-datagrid .wok-datagrid-header,
+.wok-datagrid .wok-datagrid-body > .wok-datagrid-row {
+ display: block;
+ width: 100%;
+}
+
+.wok-datagrid .wok-datagrid-header > span,
+.wok-datagrid .wok-datagrid-header > .wok-datagrid-row > span,
+.wok-datagrid .wok-datagrid-body > .wok-datagrid-row > span,
+.wok-datagrid .wok-datagrid-body > .wok-datagrid-row > .wok-datagrid-row > span {
+ padding: 6px 2px;
+ display: inline-block;
+}
+
+.wok-datagrid > .wok-datagrid-header > span {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300;
+ font-size: 12.5pt;
+ vertical-align: bottom;
+ border-bottom: none;
+ border-top: 0;
+ line-height: 1.42857;
+ height: 36px;
+}
+
+.wok-datagrid > .wok-datagrid-body > .wok-datagrid-row {
+ border-top: 1px solid #eee;
+}
+
+.wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ line-height: 2.42857;
+ vertical-align: top;
+ font-size: 12.5pt;
+ font-weight: 400;
+}
+
+.wok-datagrid .wok-datagrid-hybrid > .wok-datagrid-body > .wok-datagrid-row:first-child {
+ border-color: #e3e3e3;
+}
+
+.wok-datagrid .wok-datagrid-row.odd,
+.wok-datagrid .wok-datagrid-row:nth-child(odd) {
+ background-color: #fcfcfc;
+}
+
+.wok-datagrid .wok-datagrid-row.even,
+.wok-datagrid .wok-datagrid-row:nth-child(even) {
+ background-color: #fff;
+}
+
+.wok-datagrid .wok-datagrid-body.wok-datagrid-row {
+ border-top: 1px solid #fcfcfc;
+}
+
+.wok-datagrid .wok-datagrid-body.no-border > .wok-datagrid-row {
+ background-color: #fff !important;
+ border: 0 !important;
+}
+
+.wok-loading-icon {
+ background: transparent url("/images/theme-default/spin5.svg") no-repeat 50% 50%;
+ -webkit-animation: spin 3s infinite linear;
+ -o-animation: spin 3s infinite linear;
+ animation: spin 3s infinite linear;
+ height: 16px;
+ width: 16px;
+ background-size: 100%;
+ display: inline-block;
+ margin-right: 5px;
+}
+
+.wok-mask, .wok-grid-mask, .wok-list-mask {
+ background: rgba(255, 255, 255, 0.7);
+}
+
+.wok-mask {
+ top: 180px !important;
+}
+
+@media (max-width: 767px) {
+ .wok-mask {
+ top: 0 !important;
+ }
+}
+
+.wok-mask-loading, .wok-grid-loading, .wok-list-loading {
+ width: 100%;
+ white-space: nowrap;
+}
+
+.wok-mask-loader-container, .wok-grid-loader-container, .wok-list-loader-container {
+ width: 120px;
+ height: 40px;
+}
+
+.wok-mask-loading-icon, .wok-grid-loading-icon, .wok-list-loading-icon {
+ background: transparent url("/images/theme-default/spin5.svg") no-repeat 50% 50%;
+ -webkit-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+ height: 20px;
+ width: 20px;
+}
+
+.wok-mask-loading-text, .wok-grid-loading-text, .wok-list-loading-text {
+ color: #444;
+ padding-top: 40px;
+ text-shadow: 0px 0px 10px #fff;
+}
+
+.form-group {
+ font-size: 1em;
+}
+
+label {
+ font-size: 1.143em;
+ font-weight: 400;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+}
+
+input[type=checkbox].wok-checkbox,
+input[type=radio].wok-radio {
+ display: none;
+}
+
+input[type=checkbox].wok-checkbox + label:before,
+input[type=radio].wok-radio + label:before {
+ font-family: FontAwesome;
+ display: inline-block;
+}
+
+input[type=checkbox].wok-checkbox + label:before {
+ content: "\f096";
+ letter-spacing: 10px;
+}
+
+input[type=checkbox].wok-checkbox:checked + label:before {
+ content: "\f14a";
+ letter-spacing: 8px;
+}
+
+input[type=radio].wok-radio + label:before {
+ content: "\f10c";
+ letter-spacing: 5px;
+}
+
+input[type=radio].wok-radio:checked + label:before {
+ content: "\f192";
+ letter-spacing: 5px;
+}
+
+input[type=radio].wok-checkbox + label,
+input[type=radio].wok-radio + label {
+ cursor: pointer;
+ margin-right: 10px;
+}
+
+#wok-confirm-modal .modal-title .fa {
+ font-size: 47px;
+ color: #fdb813;
+ position: absolute;
+ left: 38px;
+ top: 19px;
+}
+
+#wok-confirm-modal .modal-footer {
+ background-color: #fdb813;
+}
+
+#wok-confirm-modal .modal-header,
+#wok-confirm-modal .modal-body {
+ padding-left: 100px;
+}
+
+#wok-confirm-modal .modal-header.icon {
+ padding: 19px 0 0 0;
+}
+
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+ color: #71a230;
+}
+
+.has-success .form-control {
+ border-color: #71a230;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-success .form-control:focus {
+ border-color: #567b24;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #a4d266;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #a4d266;
+}
+
+.has-success .input-group-addon {
+ color: #71a230;
+ border-color: #71a230;
+ background-color: #dae6cb;
+}
+
+.has-success .form-control-feedback {
+ color: #71a230;
+}
+
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+ color: #db9b02;
+}
+
+.has-warning .form-control {
+ border-color: #db9b02;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-warning .form-control:focus {
+ border-color: #a97701;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fdc746;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fdc746;
+}
+
+.has-warning .input-group-addon {
+ color: #db9b02;
+ border-color: #db9b02;
+ background-color: #f1e3c2;
+}
+
+.has-warning .form-control-feedback {
+ color: #db9b02;
+}
+
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+ color: #ab1323;
+}
+
+.has-error .form-control {
+ border-color: #ab1323;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+
+.has-error .form-control:focus {
+ border-color: #7d0e1a;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #e93b4e;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #e93b4e;
+}
+
+.has-error .input-group-addon {
+ color: #ab1323;
+ border-color: #ab1323;
+ background-color: #eac3c7;
+}
+
+.has-error .form-control-feedback {
+ color: #ab1323;
+}
+
+.form-control.invalid-field {
+ border-color: #ab1323;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(217, 83, 79, 0.6);
+}
+
+#aboutModal .modal-body > .content {
+ text-align: center;
+ margin: 0 auto;
+}
+
+#aboutModal .modal-body > .content > img {
+ width: 225px;
+}
+
+#aboutModal .modal-body > .content h2 {
+ border-top: 1px solid #999;
+ padding-top: 15px;
+}
+
+.absolute-middle, .wok-mask, .wok-grid-mask, .wok-list-mask, .wok-mask-loading, .wok-grid-loading, .wok-list-loading, .wok-mask-loader-container, .wok-grid-loader-container, .wok-list-loader-container, .wok-mask-loading-icon, .wok-grid-loading-icon, .wok-list-loading-icon {
+ margin: auto;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ text-align: center;
+}
+
+.animate-spin {
+ -webkit-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+ display: inline-block;
+}
+
+@keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
--
2.5.0
2
2

23 Dec '15
From: Atreyee Mukhopadhyay <atreyee(a)linux.vnet.ibm.com>
X-editable library allows in-place editing with Bootstrap.UI grid
cell data can be editted using this library.
---
configure.ac | 4 +
ui/libs/Makefile.am | 2 +-
ui/libs/bootstrap-editable/LICENSE | 19 +
ui/libs/bootstrap-editable/Makefile.am | 18 +
ui/libs/bootstrap-editable/dist/Makefile.am | 18 +
ui/libs/bootstrap-editable/dist/css/Makefile.am | 20 +
.../dist/css/bootstrap-editable.css | 663 +++++++++++++++++++++
ui/libs/bootstrap-editable/dist/js/Makefile.am | 20 +
.../dist/js/bootstrap-editable.min.js | 7 +
ui/pages/wok-ui.html.tmpl | 2 +
10 files changed, 772 insertions(+), 1 deletion(-)
create mode 100644 ui/libs/bootstrap-editable/LICENSE
create mode 100644 ui/libs/bootstrap-editable/Makefile.am
create mode 100644 ui/libs/bootstrap-editable/dist/Makefile.am
create mode 100644 ui/libs/bootstrap-editable/dist/css/Makefile.am
create mode 100644 ui/libs/bootstrap-editable/dist/css/bootstrap-editable.css
create mode 100644 ui/libs/bootstrap-editable/dist/js/Makefile.am
create mode 100644 ui/libs/bootstrap-editable/dist/js/bootstrap-editable.min.js
diff --git a/configure.ac b/configure.ac
index 1c4420e..b27634a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -133,6 +133,10 @@ AC_CONFIG_FILES([
ui/libs/bootstrap-switch/dist/Makefile
ui/libs/bootstrap-switch/dist/js/Makefile
ui/libs/bootstrap-switch/dist/css/Makefile
+ ui/libs/bootstrap-editable/Makefile
+ ui/libs/bootstrap-editable/dist/Makefile
+ ui/libs/bootstrap-editable/dist/js/Makefile
+ ui/libs/bootstrap-editable/dist/css/Makefile
ui/libs/es5-shim/Makefile
ui/libs/jquery/Makefile
ui/libs/jquery-i18n/Makefile
diff --git a/ui/libs/Makefile.am b/ui/libs/Makefile.am
index 1b3f6f4..5eb624a 100644
--- a/ui/libs/Makefile.am
+++ b/ui/libs/Makefile.am
@@ -17,4 +17,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-SUBDIRS = bootstrap jquery jquery-ui bootstrap-select es5-shim jquery-i18n list-js jquery-bootgrid bootstrap-switch
+SUBDIRS = bootstrap jquery jquery-ui bootstrap-select es5-shim jquery-i18n list-js jquery-bootgrid bootstrap-switch bootstrap-editable
diff --git a/ui/libs/bootstrap-editable/LICENSE b/ui/libs/bootstrap-editable/LICENSE
new file mode 100644
index 0000000..25ef01c
--- /dev/null
+++ b/ui/libs/bootstrap-editable/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2012 Vitaliy Potapov
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/ui/libs/bootstrap-editable/Makefile.am b/ui/libs/bootstrap-editable/Makefile.am
new file mode 100644
index 0000000..af0ec14
--- /dev/null
+++ b/ui/libs/bootstrap-editable/Makefile.am
@@ -0,0 +1,18 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# 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.
+
+SUBDIRS = dist
diff --git a/ui/libs/bootstrap-editable/dist/Makefile.am b/ui/libs/bootstrap-editable/dist/Makefile.am
new file mode 100644
index 0000000..1b43864
--- /dev/null
+++ b/ui/libs/bootstrap-editable/dist/Makefile.am
@@ -0,0 +1,18 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# 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.
+
+SUBDIRS = css js
diff --git a/ui/libs/bootstrap-editable/dist/css/Makefile.am b/ui/libs/bootstrap-editable/dist/css/Makefile.am
new file mode 100644
index 0000000..6816ea9
--- /dev/null
+++ b/ui/libs/bootstrap-editable/dist/css/Makefile.am
@@ -0,0 +1,20 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# 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.
+
+bootstrapeditablecssdir = $(datadir)/wok/ui/libs/bootstrap-editable/dist/css
+
+dist_bootstrapeditablecss_DATA = $(wildcard *.css) $(NULL)
diff --git a/ui/libs/bootstrap-editable/dist/css/bootstrap-editable.css b/ui/libs/bootstrap-editable/dist/css/bootstrap-editable.css
new file mode 100644
index 0000000..eaef0de
--- /dev/null
+++ b/ui/libs/bootstrap-editable/dist/css/bootstrap-editable.css
@@ -0,0 +1,663 @@
+/*! X-editable - v1.5.1
+* In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
+* http://github.com/vitalets/x-editable
+* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */
+.editableform {
+ margin-bottom: 0; /* overwrites bootstrap margin */
+}
+
+.editableform .control-group {
+ margin-bottom: 0; /* overwrites bootstrap margin */
+ white-space: nowrap; /* prevent wrapping buttons on new line */
+ line-height: 20px; /* overwriting bootstrap line-height. See #133 */
+}
+
+/*
+ BS3 width:1005 for inputs breaks editable form in popup
+ See: https://github.com/vitalets/x-editable/issues/393
+*/
+.editableform .form-control {
+ width: auto;
+}
+
+.editable-buttons {
+ display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */
+ vertical-align: top;
+ margin-left: 7px;
+ /* inline-block emulation for IE7*/
+ zoom: 1;
+ *display: inline;
+}
+
+.editable-buttons.editable-buttons-bottom {
+ display: block;
+ margin-top: 7px;
+ margin-left: 0;
+}
+
+.editable-input {
+ vertical-align: top;
+ display: inline-block; /* should be inline to take effect of parent's white-space: nowrap */
+ width: auto; /* bootstrap-responsive has width: 100% that breakes layout */
+ white-space: normal; /* reset white-space decalred in parent*/
+ /* display-inline emulation for IE7*/
+ zoom: 1;
+ *display: inline;
+}
+
+.editable-buttons .editable-cancel {
+ margin-left: 7px;
+}
+
+/*for jquery-ui buttons need set height to look more pretty*/
+.editable-buttons button.ui-button-icon-only {
+ height: 24px;
+ width: 30px;
+}
+
+.editableform-loading {
+ background: url('../img/loading.gif') center center no-repeat;
+ height: 25px;
+ width: auto;
+ min-width: 25px;
+}
+
+.editable-inline .editableform-loading {
+ background-position: left 5px;
+}
+
+ .editable-error-block {
+ max-width: 300px;
+ margin: 5px 0 0 0;
+ width: auto;
+ white-space: normal;
+}
+
+/*add padding for jquery ui*/
+.editable-error-block.ui-state-error {
+ padding: 3px;
+}
+
+.editable-error {
+ color: red;
+}
+
+/* ---- For specific types ---- */
+
+.editableform .editable-date {
+ padding: 0;
+ margin: 0;
+ float: left;
+}
+
+/* move datepicker icon to center of add-on button. See https://github.com/vitalets/x-editable/issues/183 */
+.editable-inline .add-on .icon-th {
+ margin-top: 3px;
+ margin-left: 1px;
+}
+
+
+/* checklist vertical alignment */
+.editable-checklist label input[type="checkbox"],
+.editable-checklist label span {
+ vertical-align: middle;
+ margin: 0;
+}
+
+.editable-checklist label {
+ white-space: nowrap;
+}
+
+/* set exact width of textarea to fit buttons toolbar */
+.editable-wysihtml5 {
+ width: 566px;
+ height: 250px;
+}
+
+/* clear button shown as link in date inputs */
+.editable-clear {
+ clear: both;
+ font-size: 0.9em;
+ text-decoration: none;
+ text-align: right;
+}
+
+/* IOS-style clear button for text inputs */
+.editable-clear-x {
+ background: url('../img/clear.png') center center no-repeat;
+ display: block;
+ width: 13px;
+ height: 13px;
+ position: absolute;
+ opacity: 0.6;
+ z-index: 100;
+
+ top: 50%;
+ right: 6px;
+ margin-top: -6px;
+
+}
+
+.editable-clear-x:hover {
+ opacity: 1;
+}
+
+.editable-pre-wrapped {
+ white-space: pre-wrap;
+}
+.editable-container.editable-popup {
+ max-width: none !important; /* without this rule poshytip/tooltip does not stretch */
+}
+
+.editable-container.popover {
+ width: auto; /* without this rule popover does not stretch */
+}
+
+.editable-container.editable-inline {
+ display: inline-block;
+ vertical-align: middle;
+ width: auto;
+ /* inline-block emulation for IE7*/
+ zoom: 1;
+ *display: inline;
+}
+
+.editable-container.ui-widget {
+ font-size: inherit; /* jqueryui widget font 1.1em too big, overwrite it */
+ z-index: 9990; /* should be less than select2 dropdown z-index to close dropdown first when click */
+}
+.editable-click,
+a.editable-click,
+a.editable-click:hover {
+ text-decoration: none;
+ border-bottom: dashed 1px #0088cc;
+}
+
+.editable-click.editable-disabled,
+a.editable-click.editable-disabled,
+a.editable-click.editable-disabled:hover {
+ color: #585858;
+ cursor: default;
+ border-bottom: none;
+}
+
+.editable-empty, .editable-empty:hover, .editable-empty:focus{
+ font-style: italic;
+ color: #DD1144;
+ /* border-bottom: none; */
+ text-decoration: none;
+}
+
+.editable-unsaved {
+ font-weight: bold;
+}
+
+.editable-unsaved:after {
+/* content: '*'*/
+}
+
+.editable-bg-transition {
+ -webkit-transition: background-color 1400ms ease-out;
+ -moz-transition: background-color 1400ms ease-out;
+ -o-transition: background-color 1400ms ease-out;
+ -ms-transition: background-color 1400ms ease-out;
+ transition: background-color 1400ms ease-out;
+}
+
+/*see https://github.com/vitalets/x-editable/issues/139 */
+.form-horizontal .editable
+{
+ padding-top: 5px;
+ display:inline-block;
+}
+
+
+/*!
+ * Datepicker for Bootstrap
+ *
+ * Copyright 2012 Stefan Petre
+ * Improvements by Andrew Rowls
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ */
+.datepicker {
+ padding: 4px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ direction: ltr;
+ /*.dow {
+ border-top: 1px solid #ddd !important;
+ }*/
+
+}
+.datepicker-inline {
+ width: 220px;
+}
+.datepicker.datepicker-rtl {
+ direction: rtl;
+}
+.datepicker.datepicker-rtl table tr td span {
+ float: right;
+}
+.datepicker-dropdown {
+ top: 0;
+ left: 0;
+}
+.datepicker-dropdown:before {
+ content: '';
+ display: inline-block;
+ border-left: 7px solid transparent;
+ border-right: 7px solid transparent;
+ border-bottom: 7px solid #ccc;
+ border-bottom-color: rgba(0, 0, 0, 0.2);
+ position: absolute;
+ top: -7px;
+ left: 6px;
+}
+.datepicker-dropdown: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.days div.datepicker-days {
+ display: block;
+}
+.datepicker.months div.datepicker-months {
+ display: block;
+}
+.datepicker.years div.datepicker-years {
+ display: block;
+}
+.datepicker table {
+ margin: 0;
+}
+.datepicker td,
+.datepicker th {
+ text-align: center;
+ width: 20px;
+ height: 20px;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ border: none;
+}
+.table-striped .datepicker table tr td,
+.table-striped .datepicker table tr th {
+ background-color: transparent;
+}
+.datepicker table tr td.day:hover {
+ background: #eeeeee;
+ cursor: pointer;
+}
+.datepicker table tr td.old,
+.datepicker table tr td.new {
+ color: #999999;
+}
+.datepicker table tr td.disabled,
+.datepicker table tr td.disabled:hover {
+ background: none;
+ color: #999999;
+ cursor: default;
+}
+.datepicker table tr td.today,
+.datepicker table tr td.today:hover,
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today.disabled:hover {
+ background-color: #fde19a;
+ background-image: -moz-linear-gradient(top, #fdd49a, #fdf59a);
+ background-image: -ms-linear-gradient(top, #fdd49a, #fdf59a);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fdd49a), to(#fdf59a));
+ background-image: -webkit-linear-gradient(top, #fdd49a, #fdf59a);
+ background-image: -o-linear-gradient(top, #fdd49a, #fdf59a);
+ background-image: linear-gradient(top, #fdd49a, #fdf59a);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fdd49a', endColorstr='#fdf59a', GradientType=0);
+ border-color: #fdf59a #fdf59a #fbed50;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #000;
+}
+.datepicker table tr td.today:hover,
+.datepicker table tr td.today:hover:hover,
+.datepicker table tr td.today.disabled:hover,
+.datepicker table tr td.today.disabled:hover:hover,
+.datepicker table tr td.today:active,
+.datepicker table tr td.today:hover:active,
+.datepicker table tr td.today.disabled:active,
+.datepicker table tr td.today.disabled:hover:active,
+.datepicker table tr td.today.active,
+.datepicker table tr td.today:hover.active,
+.datepicker table tr td.today.disabled.active,
+.datepicker table tr td.today.disabled:hover.active,
+.datepicker table tr td.today.disabled,
+.datepicker table tr td.today:hover.disabled,
+.datepicker table tr td.today.disabled.disabled,
+.datepicker table tr td.today.disabled:hover.disabled,
+.datepicker table tr td.today[disabled],
+.datepicker table tr td.today:hover[disabled],
+.datepicker table tr td.today.disabled[disabled],
+.datepicker table tr td.today.disabled:hover[disabled] {
+ background-color: #fdf59a;
+}
+.datepicker table tr td.today:active,
+.datepicker table tr td.today:hover:active,
+.datepicker table tr td.today.disabled:active,
+.datepicker table tr td.today.disabled:hover:active,
+.datepicker table tr td.today.active,
+.datepicker table tr td.today:hover.active,
+.datepicker table tr td.today.disabled.active,
+.datepicker table tr td.today.disabled:hover.active {
+ background-color: #fbf069 \9;
+}
+.datepicker table tr td.today:hover:hover {
+ color: #000;
+}
+.datepicker table tr td.today.active:hover {
+ color: #fff;
+}
+.datepicker table tr td.range,
+.datepicker table tr td.range:hover,
+.datepicker table tr td.range.disabled,
+.datepicker table tr td.range.disabled:hover {
+ background: #eeeeee;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.datepicker table tr td.range.today,
+.datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today.disabled:hover {
+ background-color: #f3d17a;
+ background-image: -moz-linear-gradient(top, #f3c17a, #f3e97a);
+ background-image: -ms-linear-gradient(top, #f3c17a, #f3e97a);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f3c17a), to(#f3e97a));
+ background-image: -webkit-linear-gradient(top, #f3c17a, #f3e97a);
+ background-image: -o-linear-gradient(top, #f3c17a, #f3e97a);
+ background-image: linear-gradient(top, #f3c17a, #f3e97a);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f3c17a', endColorstr='#f3e97a', GradientType=0);
+ border-color: #f3e97a #f3e97a #edde34;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ border-radius: 0;
+}
+.datepicker table tr td.range.today:hover,
+.datepicker table tr td.range.today:hover:hover,
+.datepicker table tr td.range.today.disabled:hover,
+.datepicker table tr td.range.today.disabled:hover:hover,
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today:hover:active,
+.datepicker table tr td.range.today.disabled:active,
+.datepicker table tr td.range.today.disabled:hover:active,
+.datepicker table tr td.range.today.active,
+.datepicker table tr td.range.today:hover.active,
+.datepicker table tr td.range.today.disabled.active,
+.datepicker table tr td.range.today.disabled:hover.active,
+.datepicker table tr td.range.today.disabled,
+.datepicker table tr td.range.today:hover.disabled,
+.datepicker table tr td.range.today.disabled.disabled,
+.datepicker table tr td.range.today.disabled:hover.disabled,
+.datepicker table tr td.range.today[disabled],
+.datepicker table tr td.range.today:hover[disabled],
+.datepicker table tr td.range.today.disabled[disabled],
+.datepicker table tr td.range.today.disabled:hover[disabled] {
+ background-color: #f3e97a;
+}
+.datepicker table tr td.range.today:active,
+.datepicker table tr td.range.today:hover:active,
+.datepicker table tr td.range.today.disabled:active,
+.datepicker table tr td.range.today.disabled:hover:active,
+.datepicker table tr td.range.today.active,
+.datepicker table tr td.range.today:hover.active,
+.datepicker table tr td.range.today.disabled.active,
+.datepicker table tr td.range.today.disabled:hover.active {
+ background-color: #efe24b \9;
+}
+.datepicker table tr td.selected,
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected.disabled,
+.datepicker table tr td.selected.disabled:hover {
+ background-color: #9e9e9e;
+ background-image: -moz-linear-gradient(top, #b3b3b3, #808080);
+ background-image: -ms-linear-gradient(top, #b3b3b3, #808080);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#b3b3b3), to(#808080));
+ background-image: -webkit-linear-gradient(top, #b3b3b3, #808080);
+ background-image: -o-linear-gradient(top, #b3b3b3, #808080);
+ background-image: linear-gradient(top, #b3b3b3, #808080);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b3b3b3', endColorstr='#808080', GradientType=0);
+ border-color: #808080 #808080 #595959;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.selected:hover,
+.datepicker table tr td.selected:hover:hover,
+.datepicker table tr td.selected.disabled:hover,
+.datepicker table tr td.selected.disabled:hover:hover,
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected:hover:active,
+.datepicker table tr td.selected.disabled:active,
+.datepicker table tr td.selected.disabled:hover:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected:hover.active,
+.datepicker table tr td.selected.disabled.active,
+.datepicker table tr td.selected.disabled:hover.active,
+.datepicker table tr td.selected.disabled,
+.datepicker table tr td.selected:hover.disabled,
+.datepicker table tr td.selected.disabled.disabled,
+.datepicker table tr td.selected.disabled:hover.disabled,
+.datepicker table tr td.selected[disabled],
+.datepicker table tr td.selected:hover[disabled],
+.datepicker table tr td.selected.disabled[disabled],
+.datepicker table tr td.selected.disabled:hover[disabled] {
+ background-color: #808080;
+}
+.datepicker table tr td.selected:active,
+.datepicker table tr td.selected:hover:active,
+.datepicker table tr td.selected.disabled:active,
+.datepicker table tr td.selected.disabled:hover:active,
+.datepicker table tr td.selected.active,
+.datepicker table tr td.selected:hover.active,
+.datepicker table tr td.selected.disabled.active,
+.datepicker table tr td.selected.disabled:hover.active {
+ background-color: #666666 \9;
+}
+.datepicker table tr td.active,
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active.disabled,
+.datepicker table tr td.active.disabled:hover {
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
+ background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -o-linear-gradient(top, #0088cc, #0044cc);
+ background-image: linear-gradient(top, #0088cc, #0044cc);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td.active:hover,
+.datepicker table tr td.active:hover:hover,
+.datepicker table tr td.active.disabled:hover,
+.datepicker table tr td.active.disabled:hover:hover,
+.datepicker table tr td.active:active,
+.datepicker table tr td.active:hover:active,
+.datepicker table tr td.active.disabled:active,
+.datepicker table tr td.active.disabled:hover:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active:hover.active,
+.datepicker table tr td.active.disabled.active,
+.datepicker table tr td.active.disabled:hover.active,
+.datepicker table tr td.active.disabled,
+.datepicker table tr td.active:hover.disabled,
+.datepicker table tr td.active.disabled.disabled,
+.datepicker table tr td.active.disabled:hover.disabled,
+.datepicker table tr td.active[disabled],
+.datepicker table tr td.active:hover[disabled],
+.datepicker table tr td.active.disabled[disabled],
+.datepicker table tr td.active.disabled:hover[disabled] {
+ background-color: #0044cc;
+}
+.datepicker table tr td.active:active,
+.datepicker table tr td.active:hover:active,
+.datepicker table tr td.active.disabled:active,
+.datepicker table tr td.active.disabled:hover:active,
+.datepicker table tr td.active.active,
+.datepicker table tr td.active:hover.active,
+.datepicker table tr td.active.disabled.active,
+.datepicker table tr td.active.disabled:hover.active {
+ background-color: #003399 \9;
+}
+.datepicker table tr td span {
+ display: block;
+ width: 23%;
+ height: 54px;
+ line-height: 54px;
+ float: left;
+ margin: 1%;
+ cursor: pointer;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+}
+.datepicker table tr td span:hover {
+ background: #eeeeee;
+}
+.datepicker table tr td span.disabled,
+.datepicker table tr td span.disabled:hover {
+ background: none;
+ color: #999999;
+ cursor: default;
+}
+.datepicker table tr td span.active,
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active.disabled:hover {
+ background-color: #006dcc;
+ background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -ms-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
+ background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
+ background-image: -o-linear-gradient(top, #0088cc, #0044cc);
+ background-image: linear-gradient(top, #0088cc, #0044cc);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0);
+ border-color: #0044cc #0044cc #002a80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ color: #fff;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.datepicker table tr td span.active:hover,
+.datepicker table tr td span.active:hover:hover,
+.datepicker table tr td span.active.disabled:hover,
+.datepicker table tr td span.active.disabled:hover:hover,
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active,
+.datepicker table tr td span.active.disabled,
+.datepicker table tr td span.active:hover.disabled,
+.datepicker table tr td span.active.disabled.disabled,
+.datepicker table tr td span.active.disabled:hover.disabled,
+.datepicker table tr td span.active[disabled],
+.datepicker table tr td span.active:hover[disabled],
+.datepicker table tr td span.active.disabled[disabled],
+.datepicker table tr td span.active.disabled:hover[disabled] {
+ background-color: #0044cc;
+}
+.datepicker table tr td span.active:active,
+.datepicker table tr td span.active:hover:active,
+.datepicker table tr td span.active.disabled:active,
+.datepicker table tr td span.active.disabled:hover:active,
+.datepicker table tr td span.active.active,
+.datepicker table tr td span.active:hover.active,
+.datepicker table tr td span.active.disabled.active,
+.datepicker table tr td span.active.disabled:hover.active {
+ background-color: #003399 \9;
+}
+.datepicker table tr td span.old,
+.datepicker table tr td span.new {
+ color: #999999;
+}
+.datepicker th.datepicker-switch {
+ width: 145px;
+}
+.datepicker thead tr:first-child th,
+.datepicker tfoot tr th {
+ cursor: pointer;
+}
+.datepicker thead tr:first-child th:hover,
+.datepicker tfoot tr th:hover {
+ background: #eeeeee;
+}
+.datepicker .cw {
+ font-size: 10px;
+ width: 12px;
+ padding: 0 2px 0 5px;
+ vertical-align: middle;
+}
+.datepicker thead tr:first-child th.cw {
+ cursor: default;
+ background-color: transparent;
+}
+.input-append.date .add-on i,
+.input-prepend.date .add-on i {
+ display: block;
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+}
+.input-daterange input {
+ text-align: center;
+}
+.input-daterange input:first-child {
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.input-daterange input:last-child {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+.input-daterange .add-on {
+ display: inline-block;
+ width: auto;
+ min-width: 16px;
+ height: 18px;
+ padding: 4px 5px;
+ font-weight: normal;
+ line-height: 18px;
+ text-align: center;
+ text-shadow: 0 1px 0 #ffffff;
+ vertical-align: middle;
+ background-color: #eeeeee;
+ border: 1px solid #ccc;
+ margin-left: -5px;
+ margin-right: -5px;
+}
diff --git a/ui/libs/bootstrap-editable/dist/js/Makefile.am b/ui/libs/bootstrap-editable/dist/js/Makefile.am
new file mode 100644
index 0000000..880fc49
--- /dev/null
+++ b/ui/libs/bootstrap-editable/dist/js/Makefile.am
@@ -0,0 +1,20 @@
+#
+# Project Wok
+#
+# Copyright IBM, Corp. 2015
+#
+# 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.
+
+bootstrapeditablejsdir = $(datadir)/wok/ui/libs/bootstrap-editable/dist/js
+
+dist_bootstrapeditablejs_DATA = $(wildcard *.js) $(NULL)
diff --git a/ui/libs/bootstrap-editable/dist/js/bootstrap-editable.min.js b/ui/libs/bootstrap-editable/dist/js/bootstrap-editable.min.js
new file mode 100644
index 0000000..e2703ae
--- /dev/null
+++ b/ui/libs/bootstrap-editable/dist/js/bootstrap-editable.min.js
@@ -0,0 +1,7 @@
+/*! X-editable - v1.5.1
+* In-place editing with Twitter Bootstrap, jQuery UI or pure jQuery
+* http://github.com/vitalets/x-editable
+* Copyright (c) 2013 Vitaliy Potapov; Licensed MIT */
+!function(a){"use strict";var b=function(b,c){this.options=a.extend({},a.fn.editableform.defaults,c),this.$div=a(b),this.options.scope||(this.options.scope=this)};b.prototype={constructor:b,initInput:function(){this.input=this.options.input,this.value=this.input.str2value(this.options.value),this.input.prerender()},initTemplate:function(){this.$form=a(a.fn.editableform.template)},initButtons:function(){var b=this.$form.find(".editable-buttons");b.append(a.fn.editableform.buttons),"bottom"===this.options.showbuttons&&b.addClass("editable-buttons-bottom")},render:function(){this.$loading=a(a.fn.editableform.loading),this.$div.empty().append(this.$loading),this.initTemplate(),this.options.showbuttons?this.initButtons():this.$form.find(".editable-buttons").remove(),this.showLoading(),this.isSaving=!1,this.$div.triggerHandler("rendering"),this.initInput(),this.$form.find("div.editable-input").append(this.input.$tpl),this.$div.append(this.$form),a.when(this.input.render()).then(a!
.proxy(function(){if(this.options.showbuttons||this.input.autosubmit(),this.$form.find(".editable-cancel").click(a.proxy(this.cancel,this)),this.input.error)this.error(this.input.error),this.$form.find(".editable-submit").attr("disabled",!0),this.input.$input.attr("disabled",!0),this.$form.submit(function(a){a.preventDefault()});else{this.error(!1),this.input.$input.removeAttr("disabled"),this.$form.find(".editable-submit").removeAttr("disabled");var b=null===this.value||void 0===this.value||""===this.value?this.options.defaultValue:this.value;this.input.value2input(b),this.$form.submit(a.proxy(this.submit,this))}this.$div.triggerHandler("rendered"),this.showForm(),this.input.postrender&&this.input.postrender()},this))},cancel:function(){this.$div.triggerHandler("cancel")},showLoading:function(){var a,b;this.$form?(a=this.$form.outerWidth(),b=this.$form.outerHeight(),a&&this.$loading.width(a),b&&this.$loading.height(b),this.$form.hide()):(a=this.$loading.parent().width(),a&!
&this.$loading.width(a)),this.$loading.show()},showForm:function(a){this.$loading.hide(),this.$form.show(),a!==!1&&this.input.activate(),this.$div.triggerHandler("show")},error:function(b){var c,d=this.$form.find(".control-group"),e=this.$form.find(".editable-error-block");if(b===!1)d.removeClass(a.fn.editableform.errorGroupClass),e.removeClass(a.fn.editableform.errorBlockClass).empty().hide();else{if(b){c=(""+b).split("\n");for(var f=0;f<c.length;f++)c[f]=a("<div>").text(c[f]).html();b=c.join("<br>")}d.addClass(a.fn.editableform.errorGroupClass),e.addClass(a.fn.editableform.errorBlockClass).html(b).show()}},submit:function(b){b.stopPropagation(),b.preventDefault();var c=this.input.input2value(),d=this.validate(c);if("object"===a.type(d)&&void 0!==d.newValue){if(c=d.newValue,this.input.value2input(c),"string"==typeof d.msg)return this.error(d.msg),this.showForm(),void 0}else if(d)return this.error(d),this.showForm(),void 0;if(!this.options.savenochange&&this.input.value2str!
(c)==this.input.value2str(this.value))return this.$div.triggerHandler("!
nochange"),void 0;var e=this.input.value2submit(c);this.isSaving=!0,a.when(this.save(e)).done(a.proxy(function(a){this.isSaving=!1;var b="function"==typeof this.options.success?this.options.success.call(this.options.scope,a,c):null;return b===!1?(this.error(!1),this.showForm(!1),void 0):"string"==typeof b?(this.error(b),this.showForm(),void 0):(b&&"object"==typeof b&&b.hasOwnProperty("newValue")&&(c=b.newValue),this.error(!1),this.value=c,this.$div.triggerHandler("save",{newValue:c,submitValue:e,response:a}),void 0)},this)).fail(a.proxy(function(a){this.isSaving=!1;var b;b="function"==typeof this.options.error?this.options.error.call(this.options.scope,a,c):"string"==typeof a?a:a.responseText||a.statusText||"Unknown error!",this.error(b),this.showForm()},this))},save:function(b){this.options.pk=a.fn.editableutils.tryParseJson(this.options.pk,!0);var c,d="function"==typeof this.options.pk?this.options.pk.call(this.options.scope):this.options.pk,e=!!("function"==typeof this.o!
ptions.url||this.options.url&&("always"===this.options.send||"auto"===this.options.send&&null!==d&&void 0!==d));return e?(this.showLoading(),c={name:this.options.name||"",value:b,pk:d},"function"==typeof this.options.params?c=this.options.params.call(this.options.scope,c):(this.options.params=a.fn.editableutils.tryParseJson(this.options.params,!0),a.extend(c,this.options.params)),"function"==typeof this.options.url?this.options.url.call(this.options.scope,c):a.ajax(a.extend({url:this.options.url,data:c,type:"POST"},this.options.ajaxOptions))):void 0},validate:function(a){return void 0===a&&(a=this.value),"function"==typeof this.options.validate?this.options.validate.call(this.options.scope,a):void 0},option:function(a,b){a in this.options&&(this.options[a]=b),"value"===a&&this.setValue(b)},setValue:function(a,b){this.value=b?this.input.str2value(a):a,this.$form&&this.$form.is(":visible")&&this.input.value2input(this.value)}},a.fn.editableform=function(c){var d=arguments;ret!
urn this.each(function(){var e=a(this),f=e.data("editableform"),g="obje!
ct"==typeof c&&c;f||e.data("editableform",f=new b(this,g)),"string"==typeof c&&f[c].apply(f,Array.prototype.slice.call(d,1))})},a.fn.editableform.Constructor=b,a.fn.editableform.defaults={type:"text",url:null,params:null,name:null,pk:null,value:null,defaultValue:null,send:"auto",validate:null,success:null,error:null,ajaxOptions:null,showbuttons:!0,scope:null,savenochange:!1},a.fn.editableform.template='<form class="form-inline editableform"><div class="control-group"><div><div class="editable-input"></div><div class="editable-buttons"></div></div><div class="editable-error-block"></div></div></form>',a.fn.editableform.loading='<div class="editableform-loading"></div>',a.fn.editableform.buttons='<button type="submit" class="editable-submit">ok</button><button type="button" class="editable-cancel">cancel</button>',a.fn.editableform.errorGroupClass=null,a.fn.editableform.errorBlockClass="editable-error",a.fn.editableform.engine="jquery"}(window.jQuery),function(a){"use strict"!
;a.fn.editableutils={inherit:function(a,b){var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a,a.superclass=b.prototype},setCursorPosition:function(a,b){if(a.setSelectionRange)a.setSelectionRange(b,b);else if(a.createTextRange){var c=a.createTextRange();c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",b),c.select()}},tryParseJson:function(a,b){if("string"==typeof a&&a.length&&a.match(/^[\{\[].*[\}\]]$/))if(b)try{a=new Function("return "+a)()}catch(c){}finally{return a}else a=new Function("return "+a)();return a},sliceObj:function(b,c,d){var e,f,g={};if(!a.isArray(c)||!c.length)return g;for(var h=0;h<c.length;h++)e=c[h],b.hasOwnProperty(e)&&(g[e]=b[e]),d!==!0&&(f=e.toLowerCase(),b.hasOwnProperty(f)&&(g[e]=b[f]));return g},getConfigData:function(b){var c={};return a.each(b.data(),function(a,b){("object"!=typeof b||b&&"object"==typeof b&&(b.constructor===Object||b.constructor===Array))&&(c[a]=b)}),c},objectKeys:function(a){if(O!
bject.keys)return Object.keys(a);if(a!==Object(a))throw new TypeError("!
Object.keys called on a non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c},escape:function(b){return a("<div>").text(b).html()},itemsByValue:function(b,c,d){if(!c||null===b)return[];if("function"!=typeof d){var e=d||"value";d=function(a){return a[e]}}var f=a.isArray(b),g=[],h=this;return a.each(c,function(c,e){if(e.children)g=g.concat(h.itemsByValue(b,e.children,d));else if(f)a.grep(b,function(a){return a==(e&&"object"==typeof e?d(e):e)}).length&&g.push(e);else{var i=e&&"object"==typeof e?d(e):e;b==i&&g.push(e)}}),g},createInput:function(b){var c,d,e,f=b.type;return"date"===f&&("inline"===b.mode?a.fn.editabletypes.datefield?f="datefield":a.fn.editabletypes.dateuifield&&(f="dateuifield"):a.fn.editabletypes.date?f="date":a.fn.editabletypes.dateui&&(f="dateui"),"date"!==f||a.fn.editabletypes.date||(f="combodate")),"datetime"===f&&"inline"===b.mode&&(f="datetimefield"),"wysihtml5"!==f||a.fn.editabletypes[f]||(f="textarea"),"functio!
n"==typeof a.fn.editabletypes[f]?(c=a.fn.editabletypes[f],d=this.sliceObj(b,this.objectKeys(c.defaults)),e=new c(d)):(a.error("Unknown type: "+f),!1)},supportsTransitions:function(){var a=document.body||document.documentElement,b=a.style,c="transition",d=["Moz","Webkit","Khtml","O","ms"];if("string"==typeof b[c])return!0;c=c.charAt(0).toUpperCase()+c.substr(1);for(var e=0;e<d.length;e++)if("string"==typeof b[d[e]+c])return!0;return!1}}}(window.jQuery),function(a){"use strict";var b=function(a,b){this.init(a,b)},c=function(a,b){this.init(a,b)};b.prototype={containerName:null,containerDataName:null,innerCss:null,containerClass:"editable-container editable-popup",defaults:{},init:function(c,d){this.$element=a(c),this.options=a.extend({},a.fn.editableContainer.defaults,d),this.splitOptions(),this.formOptions.scope=this.$element[0],this.initContainer(),this.delayedHide=!1,this.$element.on("destroyed",a.proxy(function(){this.destroy()},this)),a(document).data("editable-handlers-a!
ttached")||(a(document).on("keyup.editable",function(b){27===b.which&&a!
(".editable-open").editableContainer("hide")}),a(document).on("click.editable",function(c){var d,e=a(c.target),f=[".editable-container",".ui-datepicker-header",".datepicker",".modal-backdrop",".bootstrap-wysihtml5-insert-image-modal",".bootstrap-wysihtml5-insert-link-modal"];if(a.contains(document.documentElement,c.target)&&!e.is(document)){for(d=0;d<f.length;d++)if(e.is(f[d])||e.parents(f[d]).length)return;b.prototype.closeOthers(c.target)}}),a(document).data("editable-handlers-attached",!0))},splitOptions:function(){if(this.containerOptions={},this.formOptions={},!a.fn[this.containerName])throw new Error(this.containerName+" not found. Have you included corresponding js file?");for(var b in this.options)b in this.defaults?this.containerOptions[b]=this.options[b]:this.formOptions[b]=this.options[b]},tip:function(){return this.container()?this.container().$tip:null},container:function(){var a;return this.containerDataName&&(a=this.$element.data(this.containerDataName))?a:a=!
this.$element.data(this.containerName)},call:function(){this.$element[this.containerName].apply(this.$element,arguments)},initContainer:function(){this.call(this.containerOptions)},renderForm:function(){this.$form.editableform(this.formOptions).on({save:a.proxy(this.save,this),nochange:a.proxy(function(){this.hide("nochange")},this),cancel:a.proxy(function(){this.hide("cancel")},this),show:a.proxy(function(){this.delayedHide?(this.hide(this.delayedHide.reason),this.delayedHide=!1):this.setPosition()},this),rendering:a.proxy(this.setPosition,this),resize:a.proxy(this.setPosition,this),rendered:a.proxy(function(){this.$element.triggerHandler("shown",a(this.options.scope).data("editable"))},this)}).editableform("render")},show:function(b){this.$element.addClass("editable-open"),b!==!1&&this.closeOthers(this.$element[0]),this.innerShow(),this.tip().addClass(this.containerClass),this.$form,this.$form=a("<div>"),this.tip().is(this.innerCss)?this.tip().append(this.$form):this.tip(!
).find(this.innerCss).append(this.$form),this.renderForm()},hide:functi!
on(a){if(this.tip()&&this.tip().is(":visible")&&this.$element.hasClass("editable-open")){if(this.$form.data("editableform").isSaving)return this.delayedHide={reason:a},void 0;this.delayedHide=!1,this.$element.removeClass("editable-open"),this.innerHide(),this.$element.triggerHandler("hidden",a||"manual")}},innerShow:function(){},innerHide:function(){},toggle:function(a){this.container()&&this.tip()&&this.tip().is(":visible")?this.hide():this.show(a)},setPosition:function(){},save:function(a,b){this.$element.triggerHandler("save",b),this.hide("save")},option:function(a,b){this.options[a]=b,a in this.containerOptions?(this.containerOptions[a]=b,this.setContainerOption(a,b)):(this.formOptions[a]=b,this.$form&&this.$form.editableform("option",a,b))},setContainerOption:function(a,b){this.call("option",a,b)},destroy:function(){this.hide(),this.innerDestroy(),this.$element.off("destroyed"),this.$element.removeData("editableContainer")},innerDestroy:function(){},closeOthers:functio!
n(b){a(".editable-open").each(function(c,d){if(d!==b&&!a(d).find(b).length){var e=a(d),f=e.data("editableContainer");f&&("cancel"===f.options.onblur?e.data("editableContainer").hide("onblur"):"submit"===f.options.onblur&&e.data("editableContainer").tip().find("form").submit())}})},activate:function(){this.tip&&this.tip().is(":visible")&&this.$form&&this.$form.data("editableform").input.activate()}},a.fn.editableContainer=function(d){var e=arguments;return this.each(function(){var f=a(this),g="editableContainer",h=f.data(g),i="object"==typeof d&&d,j="inline"===i.mode?c:b;h||f.data(g,h=new j(this,i)),"string"==typeof d&&h[d].apply(h,Array.prototype.slice.call(e,1))})},a.fn.editableContainer.Popup=b,a.fn.editableContainer.Inline=c,a.fn.editableContainer.defaults={value:null,placement:"top",autohide:!0,onblur:"cancel",anim:!1,mode:"popup"},jQuery.event.special.destroyed={remove:function(a){a.handler&&a.handler()}}}(window.jQuery),function(a){"use strict";a.extend(a.fn.editableC!
ontainer.Inline.prototype,a.fn.editableContainer.Popup.prototype,{conta!
inerName:"editableform",innerCss:".editable-inline",containerClass:"editable-container editable-inline",initContainer:function(){this.$tip=a("<span></span>"),this.options.anim||(this.options.anim=0)},splitOptions:function(){this.containerOptions={},this.formOptions=this.options},tip:function(){return this.$tip},innerShow:function(){this.$element.hide(),this.tip().insertAfter(this.$element).show()},innerHide:function(){this.$tip.hide(this.options.anim,a.proxy(function(){this.$element.show(),this.innerDestroy()},this))},innerDestroy:function(){this.tip()&&this.tip().empty().remove()}})}(window.jQuery),function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.editable.defaults,c,a.fn.editableutils.getConfigData(this.$element)),this.options.selector?this.initLive():this.init(),this.options.highlight&&!a.fn.editableutils.supportsTransitions()&&(this.options.highlight=!1)};b.prototype={constructor:b,init:function(){var b,c=!1;if(this.options.na!
me=this.options.name||this.$element.attr("id"),this.options.scope=this..$element[0],this.input=a.fn.editableutils.createInput(this.options),this.input){switch(void 0===this.options.value||null===this.options.value?(this.value=this.input.html2value(a.trim(this.$element.html())),c=!0):(this.options.value=a.fn.editableutils.tryParseJson(this.options.value,!0),this.value="string"==typeof this.options.value?this.input.str2value(this.options.value):this.options.value),this.$element.addClass("editable"),"textarea"===this.input.type&&this.$element.addClass("editable-pre-wrapped"),"manual"!==this.options.toggle?(this.$element.addClass("editable-click"),this.$element.on(this.options.toggle+".editable",a.proxy(function(a){if(this.options.disabled||a.preventDefault(),"mouseenter"===this.options.toggle)this.show();else{var b="click"!==this.options.toggle;this.toggle(b)}},this))):this.$element.attr("tabindex",-1),"function"==typeof this.options.display&&(this.options.autotext="always"),t!
his.options.autotext){case"always":b=!0;break;case"auto":b=!a.trim(this.!
$element.text()).length&&null!==this.value&&void 0!==this.value&&!c;break;default:b=!1}a.when(b?this.render():!0).then(a.proxy(function(){this.options.disabled?this.disable():this.enable(),this.$element.triggerHandler("init",this)},this))}},initLive:function(){var b=this.options.selector;this.options.selector=!1,this.options.autotext="never",this.$element.on(this.options.toggle+".editable",b,a.proxy(function(b){var c=a(b.target);c.data("editable")||(c.hasClass(this.options.emptyclass)&&c.empty(),c.editable(this.options).trigger(b))},this))},render:function(a){return this.options.display!==!1?this.input.value2htmlFinal?this.input.value2html(this.value,this.$element[0],this.options.display,a):"function"==typeof this.options.display?this.options.display.call(this.$element[0],this.value,a):this.input.value2html(this.value,this.$element[0]):void 0},enable:function(){this.options.disabled=!1,this.$element.removeClass("editable-disabled"),this.handleEmpty(this.isEmpty),"manual"!==!
this.options.toggle&&"-1"===this.$element.attr("tabindex")&&this.$element.removeAttr("tabindex")},disable:function(){this.options.disabled=!0,this.hide(),this.$element.addClass("editable-disabled"),this.handleEmpty(this.isEmpty),this.$element.attr("tabindex",-1)},toggleDisabled:function(){this.options.disabled?this.enable():this.disable()},option:function(b,c){return b&&"object"==typeof b?(a.each(b,a.proxy(function(b,c){this.option(a.trim(b),c)},this)),void 0):(this.options[b]=c,"disabled"===b?c?this.disable():this.enable():("value"===b&&this.setValue(c),this.container&&this.container.option(b,c),this.input.option&&this.input.option(b,c),void 0))},handleEmpty:function(b){this.options.display!==!1&&(this.isEmpty=void 0!==b?b:"function"==typeof this.input.isEmpty?this.input.isEmpty(this.$element):""===a.trim(this.$element.html()),this.options.disabled?this.isEmpty&&(this.$element.empty(),this.options.emptyclass&&this.$element.removeClass(this.options.emptyclass)):this.isEmpty!
?(this.$element.html(this.options.emptytext),this.options.emptyclass&&t!
his.$element.addClass(this.options.emptyclass)):this.options.emptyclass&&this.$element.removeClass(this.options.emptyclass))},show:function(b){if(!this.options.disabled){if(this.container){if(this.container.tip().is(":visible"))return}else{var c=a.extend({},this.options,{value:this.value,input:this.input});this.$element.editableContainer(c),this.$element.on("save.internal",a.proxy(this.save,this)),this.container=this.$element.data("editableContainer")}this.container.show(b)}},hide:function(){this.container&&this.container.hide()},toggle:function(a){this.container&&this.container.tip().is(":visible")?this.hide():this.show(a)},save:function(a,b){if(this.options.unsavedclass){var c=!1;c=c||"function"==typeof this.options.url,c=c||this.options.display===!1,c=c||void 0!==b.response,c=c||this.options.savenochange&&this.input.value2str(this.value)!==this.input.value2str(b.newValue),c?this.$element.removeClass(this.options.unsavedclass):this.$element.addClass(this.options.unsavedcl!
ass)}if(this.options.highlight){var d=this.$element,e=d.css("background-color");d.css("background-color",this.options.highlight),setTimeout(function(){"transparent"===e&&(e=""),d.css("background-color",e),d.addClass("editable-bg-transition"),setTimeout(function(){d.removeClass("editable-bg-transition")},1700)},10)}this.setValue(b.newValue,!1,b.response)},validate:function(){return"function"==typeof this.options.validate?this.options.validate.call(this,this.value):void 0},setValue:function(b,c,d){this.value=c?this.input.str2value(b):b,this.container&&this.container.option("value",this.value),a.when(this.render(d)).then(a.proxy(function(){this.handleEmpty()},this))},activate:function(){this.container&&this.container.activate()},destroy:function(){this.disable(),this.container&&this.container.destroy(),this.input.destroy(),"manual"!==this.options.toggle&&(this.$element.removeClass("editable-click"),this.$element.off(this.options.toggle+".editable")),this.$element.off("save.int!
ernal"),this.$element.removeClass("editable editable-open editable-disa!
bled"),this.$element.removeData("editable")}},a.fn.editable=function(c){var d={},e=arguments,f="editable";switch(c){case"validate":return this.each(function(){var b,c=a(this),e=c.data(f);e&&(b=e.validate())&&(d[e.options.name]=b)}),d;case"getValue":return 2===arguments.length&&arguments[1]===!0?d=this.eq(0).data(f).value:this.each(function(){var b=a(this),c=b.data(f);c&&void 0!==c.value&&null!==c.value&&(d[c.options.name]=c.input.value2submit(c.value))}),d;case"submit":var g=arguments[1]||{},h=this,i=this.editable("validate");if(a.isEmptyObject(i)){var j={};if(1===h.length){var k=h.data("editable"),l={name:k.options.name||"",value:k.input.value2submit(k.value),pk:"function"==typeof k.options.pk?k.options.pk.call(k.options.scope):k.options.pk};"function"==typeof k.options.params?l=k.options.params.call(k.options.scope,l):(k.options.params=a.fn.editableutils.tryParseJson(k.options.params,!0),a.extend(l,k.options.params)),j={url:k.options.url,data:l,type:"POST"},g.success=g.su!
ccess||k.options.success,g.error=g.error||k.options.error}else{var m=this.editable("getValue");j={url:g.url,data:m,type:"POST"}}j.success="function"==typeof g.success?function(a){g.success.call(h,a,g)}:a.noop,j.error="function"==typeof g.error?function(){g.error.apply(h,arguments)}:a.noop,g.ajaxOptions&&a.extend(j,g.ajaxOptions),g.data&&a.extend(j.data,g.data),a.ajax(j)}else"function"==typeof g.error&&g.error.call(h,i);return this}return this.each(function(){var d=a(this),g=d.data(f),h="object"==typeof c&&c;return h&&h.selector?(g=new b(this,h),void 0):(g||d.data(f,g=new b(this,h)),"string"==typeof c&&g[c].apply(g,Array.prototype.slice.call(e,1)),void 0)})},a.fn.editable.defaults={type:"text",disabled:!1,toggle:"click",emptytext:"Empty",autotext:"auto",value:null,display:null,emptyclass:"editable-empty",unsavedclass:"editable-unsaved",selector:null,highlight:"#FFFF80"}}(window.jQuery),function(a){"use strict";a.fn.editabletypes={};var b=function(){};b.prototype={init:functi!
on(b,c,d){this.type=b,this.options=a.extend({},d,c)},prerender:function!
(){this.$tpl=a(this.options.tpl),this.$input=this.$tpl,this.$clear=null,this.error=null},render:function(){},value2html:function(b,c){a(c)[this.options.escape?"text":"html"](a.trim(b))},html2value:function(b){return a("<div>").html(b).text()},value2str:function(a){return a},str2value:function(a){return a},value2submit:function(a){return a},value2input:function(a){this.$input.val(a)},input2value:function(){return this.$input.val()},activate:function(){this.$input.is(":visible")&&this.$input.focus()},clear:function(){this.$input.val(null)},escape:function(b){return a("<div>").text(b).html()},autosubmit:function(){},destroy:function(){},setClass:function(){this.options.inputclass&&this.$input.addClass(this.options.inputclass)},setAttr:function(a){void 0!==this.options[a]&&null!==this.options[a]&&this.$input.attr(a,this.options[a])},option:function(a,b){this.options[a]=b}},b.defaults={tpl:"",inputclass:null,escape:!0,scope:null,showbuttons:!0},a.extend(a.fn.editabletypes,{abstr!
actinput:b})}(window.jQuery),function(a){"use strict";var b=function(){};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){var b=a.Deferred();return this.error=null,this.onSourceReady(function(){this.renderList(),b.resolve()},function(){this.error=this.options.sourceError,b.resolve()}),b.promise()},html2value:function(){return null},value2html:function(b,c,d,e){var f=a.Deferred(),g=function(){"function"==typeof d?d.call(c,b,this.sourceData,e):this.value2htmlFinal(b,c),f.resolve()};return null===b?g.call(this):this.onSourceReady(g,function(){f.resolve()}),f.promise()},onSourceReady:function(b,c){var d;if(a.isFunction(this.options.source)?(d=this.options.source.call(this.options.scope),this.sourceData=null):d=this.options.source,this.options.sourceCache&&a.isArray(this.sourceData))return b.call(this),void 0;try{d=a.fn.editableutils.tryParseJson(d,!1)}catch(e){return c.call(this),void 0}if("string"==typeof d){if(this.options!
.sourceCache){var f,g=d;if(a(document).data(g)||a(document).data(g,{}),!
f=a(document).data(g),f.loading===!1&&f.sourceData)return this.sourceData=f.sourceData,this.doPrepend(),b.call(this),void 0;if(f.loading===!0)return f.callbacks.push(a.proxy(function(){this.sourceData=f.sourceData,this.doPrepend(),b.call(this)},this)),f.err_callbacks.push(a.proxy(c,this)),void 0;f.loading=!0,f.callbacks=[],f.err_callbacks=[]}var h=a.extend({url:d,type:"get",cache:!1,dataType:"json",success:a.proxy(function(d){f&&(f.loading=!1),this.sourceData=this.makeArray(d),a.isArray(this.sourceData)?(f&&(f.sourceData=this.sourceData,a.each(f.callbacks,function(){this.call()})),this.doPrepend(),b.call(this)):(c.call(this),f&&a.each(f.err_callbacks,function(){this.call()}))},this),error:a.proxy(function(){c.call(this),f&&(f.loading=!1,a.each(f.err_callbacks,function(){this.call()}))},this)},this.options.sourceOptions);a.ajax(h)}else this.sourceData=this.makeArray(d),a.isArray(this.sourceData)?(this.doPrepend(),b.call(this)):c.call(this)},doPrepend:function(){null!==this.o!
ptions.prepend&&void 0!==this.options.prepend&&(a.isArray(this.prependData)||(a.isFunction(this.options.prepend)&&(this.options.prepend=this.options.prepend.call(this.options.scope)),this.options.prepend=a.fn.editableutils.tryParseJson(this.options.prepend,!0),"string"==typeof this.options.prepend&&(this.options.prepend={"":this.options.prepend}),this.prependData=this.makeArray(this.options.prepend)),a.isArray(this.prependData)&&a.isArray(this.sourceData)&&(this.sourceData=this.prependData.concat(this.sourceData)))},renderList:function(){},value2htmlFinal:function(){},makeArray:function(b){var c,d,e,f,g=[];if(!b||"string"==typeof b)return null;if(a.isArray(b)){f=function(a,b){return d={value:a,text:b},c++>=2?!1:void 0};for(var h=0;h<b.length;h++)e=b[h],"object"==typeof e?(c=0,a.each(e,f),1===c?g.push(d):c>1&&(e.children&&(e.children=this.makeArray(e.children)),g.push(e))):g.push({value:e,text:e})}else a.each(b,function(a,b){g.push({value:a,text:b})});return g},option:functi!
on(a,b){this.options[a]=b,"source"===a&&(this.sourceData=null),"prepend!
"===a&&(this.prependData=null)}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{source:null,prepend:!1,sourceError:"Error when loading list",sourceCache:!0,sourceOptions:null}),a.fn.editabletypes.list=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("text",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.renderClear(),this.setClass(),this.setAttr("placeholder")},activate:function(){this.$input.is(":visible")&&(this.$input.focus(),a.fn.editableutils.setCursorPosition(this.$input.get(0),this.$input.val().length),this.toggleClear&&this.toggleClear())},renderClear:function(){this.options.clear&&(this.$clear=a('<span class="editable-clear-x"></span>'),this.$input.after(this.$clear).css("padding-right",24).keyup(a.proxy(function(b){if(!~a.inArray(b.keyCode,[40,38,9,13,27])){clearTimeout(this.t);var c=this;this.t=setTimeout(function(){c.toggleClear(b)},100)}},this)).!
parent().css("position","relative"),this.$clear.click(a.proxy(this.clear,this)))},postrender:function(){},toggleClear:function(){if(this.$clear){var a=this.$input.val().length,b=this.$clear.is(":visible");a&&!b&&this.$clear.show(),!a&&b&&this.$clear.hide()}},clear:function(){this.$clear.hide(),this.$input.val("").focus()}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="text">',placeholder:null,clear:!0}),a.fn.editabletypes.text=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("textarea",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.setClass(),this.setAttr("placeholder"),this.setAttr("rows"),this.$input.keydown(function(b){b.ctrlKey&&13===b.which&&a(this).closest("form").submit()})},activate:function(){a.fn.editabletypes.text.prototype.activate.call(this)}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:"<textarea></!
textarea>",inputclass:"input-large",placeholder:null,rows:7}),a.fn.edit!
abletypes.textarea=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("select",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.list),a.extend(b.prototype,{renderList:function(){this.$input.empty();var b=function(c,d){var e;if(a.isArray(d))for(var f=0;f<d.length;f++)e={},d[f].children?(e.label=d[f].text,c.append(b(a("<optgroup>",e),d[f].children))):(e.value=d[f].value,d[f].disabled&&(e.disabled=!0),c.append(a("<option>",e).text(d[f].text)));return c};b(this.$input,this.sourceData),this.setClass(),this.$input.on("keydown.editable",function(b){13===b.which&&a(this).closest("form").submit()})},value2htmlFinal:function(b,c){var d="",e=a.fn.editableutils.itemsByValue(b,this.sourceData);e.length&&(d=e[0].text),a.fn.editabletypes.abstractinput.prototype.value2html.call(this,d,c)},autosubmit:function(){this.$input.off("keydown.editable").on("change.editable",function(){a(this).closest("form").submit()})}}),b.defaults=a.extend({},a.fn.editabletypes.!
list.defaults,{tpl:"<select></select>"}),a.fn.editabletypes.select=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("checklist",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.list),a.extend(b.prototype,{renderList:function(){var b;if(this.$tpl.empty(),a.isArray(this.sourceData)){for(var c=0;c<this.sourceData.length;c++)b=a("<label>").append(a("<input>",{type:"checkbox",value:this.sourceData[c].value})).append(a("<span>").text(" "+this.sourceData[c].text)),a("<div>").append(b).appendTo(this.$tpl);this.$input=this.$tpl.find('input[type="checkbox"]'),this.setClass()}},value2str:function(b){return a.isArray(b)?b.sort().join(a.trim(this.options.separator)):""},str2value:function(b){var c,d=null;return"string"==typeof b&&b.length?(c=new RegExp("\\s*"+a.trim(this.options.separator)+"\\s*"),d=b.split(c)):d=a.isArray(b)?b:[b],d},value2input:function(b){this.$input.prop("checked",!1),a.isArray(b)&&b.length&&this.$input.each(function(c,d){var e=a(!
d);a.each(b,function(a,b){e.val()==b&&e.prop("checked",!0)})})},input2v!
alue:function(){var b=[];return this.$input.filter(":checked").each(function(c,d){b.push(a(d).val())}),b},value2htmlFinal:function(b,c){var d=[],e=a.fn.editableutils.itemsByValue(b,this.sourceData),f=this.options.escape;e.length?(a.each(e,function(b,c){var e=f?a.fn.editableutils.escape(c.text):c.text;d.push(e)}),a(c).html(d.join("<br>"))):a(c).empty()},activate:function(){this.$input.first().focus()},autosubmit:function(){this.$input.on("keydown",function(b){13===b.which&&a(this).closest("form").submit()})}}),b.defaults=a.extend({},a.fn.editabletypes.list.defaults,{tpl:'<div class="editable-checklist"></div>',inputclass:null,separator:","}),a.fn.editabletypes.checklist=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("password",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),a.extend(b.prototype,{value2html:function(b,c){b?a(c).text("[hidden]"):a(c).empty()},html2value:function(){return null}}),b.defaults=a.extend({},a.fn.editablet!
ypes.text.defaults,{tpl:'<input type="password">'}),a.fn.editabletypes..password=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("email",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="email">'}),a.fn.editabletypes.email=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("url",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="url">'}),a.fn.editabletypes.url=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("tel",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.text),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="tel">'}),a.fn.editabletypes.tel=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("number",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes!
.text),a.extend(b.prototype,{render:function(){b.superclass.render.call(!
this),this.setAttr("min"),this.setAttr("max"),this.setAttr("step")},postrender:function(){this.$clear&&this.$clear.css({right:24})}}),b.defaults=a.extend({},a.fn.editabletypes.text.defaults,{tpl:'<input type="number">',inputclass:"input-mini",min:null,max:null,step:null}),a.fn.editabletypes.number=b}(window.jQuery),function(a){"use strict";
+var b=function(a){this.init("range",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.number),a.extend(b.prototype,{render:function(){this.$input=this.$tpl.filter("input"),this.setClass(),this.setAttr("min"),this.setAttr("max"),this.setAttr("step"),this.$input.on("input",function(){a(this).siblings("output").text(a(this).val())})},activate:function(){this.$input.focus()}}),b.defaults=a.extend({},a.fn.editabletypes.number.defaults,{tpl:'<input type="range"><output style="width: 30px; display: inline-block"></output>',inputclass:"input-medium"}),a.fn.editabletypes.range=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("time",a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.setClass()}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="time">'}),a.fn.editabletypes.time=b}(window.jQuery),function(a){"use strict";var b=function(c){if(thi!
s.init("select2",c,b.defaults),c.select2=c.select2||{},this.sourceData=null,c.placeholder&&(c.select2.placeholder=c.placeholder),!c.select2.tags&&c.source){var d=c.source;a.isFunction(c.source)&&(d=c.source.call(c.scope)),"string"==typeof d?(c.select2.ajax=c.select2.ajax||{},c.select2.ajax.data||(c.select2.ajax.data=function(a){return{query:a}}),c.select2.ajax.results||(c.select2.ajax.results=function(a){return{results:a}}),c.select2.ajax.url=d):(this.sourceData=this.convertSource(d),c.select2.data=this.sourceData)}if(this.options.select2=a.extend({},b.defaults.select2,c.select2),this.isMultiple=this.options.select2.tags||this.options.select2.multiple,this.isRemote="ajax"in this.options.select2,this.idFunc=this.options.select2.id,"function"!=typeof this.idFunc){var e=this.idFunc||"id";this.idFunc=function(a){return a[e]}}this.formatSelection=this.options.select2.formatSelection,"function"!=typeof this.formatSelection&&(this.formatSelection=function(a){return a.text})};a.fn.!
editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.setClass(),this.isRemote&&this.$input.on("select2-loaded",a.proxy(function(a){this.sourceData=a.items.results},this)),this.isMultiple&&this.$input.on("change",function(){a(this).closest("form").parent().triggerHandler("resize")})},value2html:function(c,d){var e,f="",g=this;this.options.select2.tags?e=c:this.sourceData&&(e=a.fn.editableutils.itemsByValue(c,this.sourceData,this.idFunc)),a.isArray(e)?(f=[],a.each(e,function(a,b){f.push(b&&"object"==typeof b?g.formatSelection(b):b)})):e&&(f=g.formatSelection(e)),f=a.isArray(f)?f.join(this.options.viewseparator):f,b.superclass.value2html.call(this,f,d)},html2value:function(a){return this.options.select2.tags?this.str2value(a,this.options.viewseparator):null},value2input:function(b){if(a.isArray(b)&&(b=b.join(this.getSeparator())),this.$input.data("select2")?this.$input.val(b).trigger("change",!0):(this.$input.val(b),this.$input!
.select2(this.options.select2)),this.isRemote&&!this.isMultiple&&!this.!
options.select2.initSelection){var c=this.options.select2.id,d=this.options.select2.formatSelection;if(!c&&!d){var e=a(this.options.scope);if(!e.data("editable").isEmpty){var f={id:b,text:e.text()};this.$input.select2("data",f)}}}},input2value:function(){return this.$input.select2("val")},str2value:function(b,c){if("string"!=typeof b||!this.isMultiple)return b;c=c||this.getSeparator();var d,e,f;if(null===b||b.length<1)return null;for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(d[e]);return d},autosubmit:function(){this.$input.on("change",function(b,c){c||a(this).closest("form").submit()})},getSeparator:function(){return this.options.select2.separator||a.fn.select2.defaults.separator},convertSource:function(b){if(a.isArray(b)&&b.length&&void 0!==b[0].value)for(var c=0;c<b.length;c++)void 0!==b[c].value&&(b[c].id=b[c].value,delete b[c].value);return b},destroy:function(){this.$input.data("select2")&&this.$input.select2("destroy")}}),b.defaults=a.extend({},a.fn.editablety!
pes.abstractinput.defaults,{tpl:'<input type="hidden">',select2:null,placeholder:null,source:null,viewseparator:", "}),a.fn.editabletypes.select2=b}(window.jQuery),function(a){var b=function(b,c){return this.$element=a(b),this.$element.is("input")?(this.options=a.extend({},a.fn.combodate.defaults,c,this.$element.data()),this.init(),void 0):(a.error("Combodate should be applied to INPUT element"),void 0)};b.prototype={constructor:b,init:function(){this.map={day:["D","date"],month:["M","month"],year:["Y","year"],hour:["[Hh]","hours"],minute:["m","minutes"],second:["s","seconds"],ampm:["[Aa]",""]},this.$widget=a('<span class="combodate"></span>').html(this.getTemplate()),this.initCombos(),this.$widget.on("change","select",a.proxy(function(b){this.$element.val(this.getValue()).change(),this.options.smartDays&&(a(b.target).is(".month")||a(b.target).is(".year"))&&this.fillCombo("day")},this)),this.$widget.find("select").css("width","auto"),this.$element.hide().after(this.$widget)!
,this.setValue(this.$element.val()||this.options.value)},getTemplate:fu!
nction(){var b=this.options.template;return a.each(this.map,function(a,c){c=c[0];var d=new RegExp(c+"+"),e=c.length>1?c.substring(1,2):c;b=b.replace(d,"{"+e+"}")}),b=b.replace(/ /g," "),a.each(this.map,function(a,c){c=c[0];var d=c.length>1?c.substring(1,2):c;b=b.replace("{"+d+"}",'<select class="'+a+'"></select>')}),b},initCombos:function(){for(var a in this.map){var b=this.$widget.find("."+a);this["$"+a]=b.length?b:null,this.fillCombo(a)}},fillCombo:function(a){var b=this["$"+a];if(b){var c="fill"+a.charAt(0).toUpperCase()+a.slice(1),d=this[c](),e=b.val();b.empty();for(var f=0;f<d.length;f++)b.append('<option value="'+d[f][0]+'">'+d[f][1]+"</option>");b.val(e)}},fillCommon:function(a){var b,c=[];if("name"===this.options.firstItem){b=moment.relativeTime||moment.langData()._relativeTime;var d="function"==typeof b[a]?b[a](1,!0,a,!1):b[a];d=d.split(" ").reverse()[0],c.push(["",d])}else"empty"===this.options.firstItem&&c.push(["",""]);return c},fillDay:function(){var a,b,c!
=this.fillCommon("d"),d=-1!==this.options.template.indexOf("DD"),e=31;if(this.options.smartDays&&this.$month&&this.$year){var f=parseInt(this.$month.val(),10),g=parseInt(this.$year.val(),10);isNaN(f)||isNaN(g)||(e=moment([g,f]).daysInMonth())}for(b=1;e>=b;b++)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillMonth:function(){var a,b,c=this.fillCommon("M"),d=-1!==this.options.template.indexOf("MMMM"),e=-1!==this.options.template.indexOf("MMM"),f=-1!==this.options.template.indexOf("MM");for(b=0;11>=b;b++)a=d?moment().date(1).month(b).format("MMMM"):e?moment().date(1).month(b).format("MMM"):f?this.leadZero(b+1):b+1,c.push([b,a]);return c},fillYear:function(){var a,b,c=[],d=-1!==this.options.template.indexOf("YYYY");for(b=this.options.maxYear;b>=this.options.minYear;b--)a=d?b:(b+"").substring(2),c[this.options.yearDescending?"push":"unshift"]([b,a]);return c=this.fillCommon("y").concat(c)},fillHour:function(){var a,b,c=this.fillCommon("h"),d=-1!==this.options.template.indexOf(!
"h"),e=(-1!==this.options.template.indexOf("H"),-1!==this.options.templ!
ate.toLowerCase().indexOf("hh")),f=d?1:0,g=d?12:23;for(b=f;g>=b;b++)a=e?this.leadZero(b):b,c.push([b,a]);return c},fillMinute:function(){var a,b,c=this.fillCommon("m"),d=-1!==this.options.template.indexOf("mm");for(b=0;59>=b;b+=this.options.minuteStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillSecond:function(){var a,b,c=this.fillCommon("s"),d=-1!==this.options.template.indexOf("ss");for(b=0;59>=b;b+=this.options.secondStep)a=d?this.leadZero(b):b,c.push([b,a]);return c},fillAmpm:function(){var a=-1!==this.options.template.indexOf("a"),b=(-1!==this.options.template.indexOf("A"),[["am",a?"am":"AM"],["pm",a?"pm":"PM"]]);return b},getValue:function(b){var c,d={},e=this,f=!1;return a.each(this.map,function(a){if("ampm"!==a){var b="day"===a?1:0;return d[a]=e["$"+a]?parseInt(e["$"+a].val(),10):b,isNaN(d[a])?(f=!0,!1):void 0}}),f?"":(this.$ampm&&(d.hour=12===d.hour?"am"===this.$ampm.val()?0:12:"am"===this.$ampm.val()?d.hour:d.hour+12),c=moment([d.year,d.month,d.day,d.hour,d!
.minute,d.second]),this.highlight(c),b=void 0===b?this.options.format:b,null===b?c.isValid()?c:null:c.isValid()?c.format(b):"")},setValue:function(b){function c(b,c){var d={};return b.children("option").each(function(b,e){var f,g=a(e).attr("value");""!==g&&(f=Math.abs(g-c),("undefined"==typeof d.distance||f<d.distance)&&(d={value:g,distance:f}))}),d.value}if(b){var d="string"==typeof b?moment(b,this.options.format):moment(b),e=this,f={};d.isValid()&&(a.each(this.map,function(a,b){"ampm"!==a&&(f[a]=d[b[1]]())}),this.$ampm&&(f.hour>=12?(f.ampm="pm",f.hour>12&&(f.hour-=12)):(f.ampm="am",0===f.hour&&(f.hour=12))),a.each(f,function(a,b){e["$"+a]&&("minute"===a&&e.options.minuteStep>1&&e.options.roundTime&&(b=c(e["$"+a],b)),"second"===a&&e.options.secondStep>1&&e.options.roundTime&&(b=c(e["$"+a],b)),e["$"+a].val(b))}),this.options.smartDays&&this.fillCombo("day"),this.$element.val(d.format(this.options.format)).change())}},highlight:function(a){a.isValid()?this.options.errorClass!
?this.$widget.removeClass(this.options.errorClass):this.$widget.find("s!
elect").css("border-color",this.borderColor):this.options.errorClass?this.$widget.addClass(this.options.errorClass):(this.borderColor||(this.borderColor=this.$widget.find("select").css("border-color")),this.$widget.find("select").css("border-color","red"))},leadZero:function(a){return 9>=a?"0"+a:a},destroy:function(){this.$widget.remove(),this.$element.removeData("combodate").show()}},a.fn.combodate=function(c){var d,e=Array.apply(null,arguments);return e.shift(),"getValue"===c&&this.length&&(d=this.eq(0).data("combodate"))?d.getValue.apply(d,e):this.each(function(){var d=a(this),f=d.data("combodate"),g="object"==typeof c&&c;f||d.data("combodate",f=new b(this,g)),"string"==typeof c&&"function"==typeof f[c]&&f[c].apply(f,e)})},a.fn.combodate.defaults={format:"DD-MM-YYYY HH:mm",template:"D / MMM / YYYY H : mm",value:null,minYear:1970,maxYear:2015,yearDescending:!0,minuteStep:5,secondStep:1,firstItem:"empty",errorClass:null,roundTime:!0,smartDays:!1}}(window.jQuery),function!
(a){"use strict";var b=function(c){this.init("combodate",c,b.defaults),this.options.viewformat||(this.options.viewformat=this.options.format),c.combodate=a.fn.editableutils.tryParseJson(c.combodate,!0),this.options.combodate=a.extend({},b.defaults.combodate,c.combodate,{format:this.options.format,template:this.options.template})};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{render:function(){this.$input.combodate(this.options.combodate),"bs3"===a.fn.editableform.engine&&this.$input.siblings().find("select").addClass("form-control"),this.options.inputclass&&this.$input.siblings().find("select").addClass(this.options.inputclass)},value2html:function(a,c){var d=a?a.format(this.options.viewformat):"";b.superclass.value2html.call(this,d,c)},html2value:function(a){return a?moment(a,this.options.viewformat):null},value2str:function(a){return a?a.format(this.options.format):""},str2value:function(a){return a?moment(a,this.options.format):null!
},value2submit:function(a){return this.value2str(a)},value2input:functi!
on(a){this.$input.combodate("setValue",a)},input2value:function(){return this.$input.combodate("getValue",null)},activate:function(){this.$input.siblings(".combodate").find("select").eq(0).focus()},autosubmit:function(){}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<input type="text">',inputclass:null,format:"YYYY-MM-DD",viewformat:null,template:"D / MMM / YYYY",combodate:null}),a.fn.editabletypes.combodate=b}(window.jQuery),function(a){"use strict";var b=a.fn.editableform.Constructor.prototype.initInput;a.extend(a.fn.editableform.Constructor.prototype,{initTemplate:function(){this.$form=a(a.fn.editableform.template),this.$form.find(".control-group").addClass("form-group"),this.$form.find(".editable-error-block").addClass("help-block")},initInput:function(){b.apply(this);var c=null===this.input.options.inputclass||this.input.options.inputclass===!1,d="input-sm",e="text,select,textarea,password,email,url,tel,number,range,time,typeaheadjs".split("!
,");~a.inArray(this.input.type,e)&&(this.input.$input.addClass("form-control"),c&&(this.input.options.inputclass=d,this.input.$input.addClass(d)));for(var f=this.$form.find(".editable-buttons"),g=c?[d]:this.input.options.inputclass.split(" "),h=0;h<g.length;h++)"input-lg"===g[h].toLowerCase()&&f.find("button").removeClass("btn-sm").addClass("btn-lg")}}),a.fn.editableform.buttons='<button type="submit" class="btn btn-primary btn-sm editable-submit"><i class="glyphicon glyphicon-ok"></i></button><button type="button" class="btn btn-default btn-sm editable-cancel"><i class="glyphicon glyphicon-remove"></i></button>',a.fn.editableform.errorGroupClass="has-error",a.fn.editableform.errorBlockClass=null,a.fn.editableform.engine="bs3"}(window.jQuery),function(a){"use strict";a.extend(a.fn.editableContainer.Popup.prototype,{containerName:"popover",containerDataName:"bs.popover",innerCss:".popover-content",defaults:a.fn.popover.Constructor.DEFAULTS,initContainer:function(){a.extend(t!
his.containerOptions,{trigger:"manual",selector:!1,content:" ",template!
:this.defaults.template});var b;this.$element.data("template")&&(b=this.$element.data("template"),this.$element.removeData("template")),this.call(this.containerOptions),b&&this.$element.data("template",b)},innerShow:function(){this.call("show")},innerHide:function(){this.call("hide")},innerDestroy:function(){this.call("destroy")},setContainerOption:function(a,b){this.container().options[a]=b},setPosition:function(){!function(){var a=this.tip(),b="function"==typeof this.options.placement?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,c=/\s?auto?\s?/i,d=c.test(b);d&&(b=b.replace(c,"")||"top");var e=this.getPosition(),f=a[0].offsetWidth,g=a[0].offsetHeight;if(d){var h=this.$element.parent(),i=b,j=document.documentElement.scrollTop||document.body.scrollTop,k="body"==this.options.container?window.innerWidth:h.outerWidth(),l="body"==this.options.container?window.innerHeight:h.outerHeight(),m="body"==this.options.container?0:h.offset().left;b="botto!
m"==b&&e.top+e.height+g-j>l?"top":"top"==b&&e.top-j-g<0?"bottom":"right"==b&&e.right+f>k?"left":"left"==b&&e.left-f<m?"right":b,a.removeClass(i).addClass(b)}var n=this.getCalculatedOffset(b,e,f,g);this.applyPlacement(n,b)}.call(this.container())}})}(window.jQuery),function(a){function b(){return new Date(Date.UTC.apply(Date,arguments))}function c(b,c){var d,e=a(b).data(),f={},g=new RegExp("^"+c.toLowerCase()+"([A-Z])"),c=new RegExp("^"+c.toLowerCase());for(var h in e)c.test(h)&&(d=h.replace(g,function(a,b){return b.toLowerCase()}),f[d]=e[h]);return f}function d(b){var c={};if(k[b]||(b=b.split("-")[0],k[b])){var d=k[b];return a.each(j,function(a,b){b in d&&(c[b]=d[b])}),c}}var e=function(b,c){this._process_options(c),this.element=a(b),this.isInline=!1,this.isInput=this.element.is("input"),this.component=this.element.is(".date")?this.element.find(".add-on, .btn"):!1,this.hasInput=this.component&&this.element.find("input").length,this.component&&0===this.component.length&&(thi!
s.component=!1),this.picker=a(l.template),this._buildEvents(),this._att!
achEvents(),this.isInline?this.picker.addClass("datepicker-inline").appendTo(this.element):this.picker.addClass("datepicker-dropdown dropdown-menu"),this.o.rtl&&(this.picker.addClass("datepicker-rtl"),this.picker.find(".prev i, .next i").toggleClass("icon-arrow-left icon-arrow-right")),this.viewMode=this.o.startView,this.o.calendarWeeks&&this.picker.find("tfoot th.today").attr("colspan",function(a,b){return parseInt(b)+1}),this._allow_update=!1,this.setStartDate(this.o.startDate),this.setEndDate(this.o.endDate),this.setDaysOfWeekDisabled(this.o.daysOfWeekDisabled),this.fillDow(),this.fillMonths(),this._allow_update=!0,this.update(),this.showMode(),this.isInline&&this.show()};e.prototype={constructor:e,_process_options:function(b){this._o=a.extend({},this._o,b);var c=this.o=a.extend({},this._o),d=c.language;switch(k[d]||(d=d.split("-")[0],k[d]||(d=i.language)),c.language=d,c.startView){case 2:case"decade":c.startView=2;break;case 1:case"year":c.startView=1;break;default:c.st!
artView=0}switch(c.minViewMode){case 1:case"months":c.minViewMode=1;break;case 2:case"years":c.minViewMode=2;break;default:c.minViewMode=0}c.startView=Math.max(c.startView,c.minViewMode),c.weekStart%=7,c.weekEnd=(c.weekStart+6)%7;var e=l.parseFormat(c.format);c.startDate!==-1/0&&(c.startDate=l.parseDate(c.startDate,e,c.language)),1/0!==c.endDate&&(c.endDate=l.parseDate(c.endDate,e,c.language)),c.daysOfWeekDisabled=c.daysOfWeekDisabled||[],a.isArray(c.daysOfWeekDisabled)||(c.daysOfWeekDisabled=c.daysOfWeekDisabled.split(/[,\s]*/)),c.daysOfWeekDisabled=a.map(c.daysOfWeekDisabled,function(a){return parseInt(a,10)})},_events:[],_secondaryEvents:[],_applyEvents:function(a){for(var b,c,d=0;d<a.length;d++)b=a[d][0],c=a[d][1],b.on(c)},_unapplyEvents:function(a){for(var b,c,d=0;d<a.length;d++)b=a[d][0],c=a[d][1],b.off(c)},_buildEvents:function(){this.isInput?this._events=[[this.element,{focus:a.proxy(this.show,this),keyup:a.proxy(this.update,this),keydown:a.proxy(this.keydown,this)}!
]]:this.component&&this.hasInput?this._events=[[this.element.find("inpu!
t"),{focus:a.proxy(this.show,this),keyup:a.proxy(this.update,this),keydown:a.proxy(this.keydown,this)}],[this.component,{click:a.proxy(this.show,this)}]]:this.element.is("div")?this.isInline=!0:this._events=[[this.element,{click:a.proxy(this.show,this)}]],this._secondaryEvents=[[this.picker,{click:a.proxy(this.click,this)}],[a(window),{resize:a.proxy(this.place,this)}],[a(document),{mousedown:a.proxy(function(a){this.element.is(a.target)||this.element.find(a.target).size()||this.picker.is(a.target)||this.picker.find(a.target).size()||this.hide()},this)}]]},_attachEvents:function(){this._detachEvents(),this._applyEvents(this._events)},_detachEvents:function(){this._unapplyEvents(this._events)},_attachSecondaryEvents:function(){this._detachSecondaryEvents(),this._applyEvents(this._secondaryEvents)},_detachSecondaryEvents:function(){this._unapplyEvents(this._secondaryEvents)},_trigger:function(b,c){var d=c||this.date,e=new Date(d.getTime()+6e4*d.getTimezoneOffset());this.eleme!
nt.trigger({type:b,date:e,format:a.proxy(function(a){var b=a||this.o.format;return l.formatDate(d,b,this.o.language)},this)})},show:function(a){this.isInline||this.picker.appendTo("body"),this.picker.show(),this.height=this.component?this.component.outerHeight():this.element.outerHeight(),this.place(),this._attachSecondaryEvents(),a&&a.preventDefault(),this._trigger("show")},hide:function(){this.isInline||this.picker.is(":visible")&&(this.picker.hide().detach(),this._detachSecondaryEvents(),this.viewMode=this.o.startView,this.showMode(),this.o.forceParse&&(this.isInput&&this.element.val()||this.hasInput&&this.element.find("input").val())&&this.setValue(),this._trigger("hide"))},remove:function(){this.hide(),this._detachEvents(),this._detachSecondaryEvents(),this.picker.remove(),delete this.element.data().datepicker,this.isInput||delete this.element.data().date},getDate:function(){var a=this.getUTCDate();return new Date(a.getTime()+6e4*a.getTimezoneOffset())},getUTCDate:func!
tion(){return this.date},setDate:function(a){this.setUTCDate(new Date(a!
.getTime()-6e4*a.getTimezoneOffset()))},setUTCDate:function(a){this.date=a,this.setValue()},setValue:function(){var a=this.getFormattedDate();this.isInput?this.element.val(a):this.component&&this.element.find("input").val(a)},getFormattedDate:function(a){return void 0===a&&(a=this.o.format),l.formatDate(this.date,a,this.o.language)},setStartDate:function(a){this._process_options({startDate:a}),this.update(),this.updateNavArrows()},setEndDate:function(a){this._process_options({endDate:a}),this.update(),this.updateNavArrows()},setDaysOfWeekDisabled:function(a){this._process_options({daysOfWeekDisabled:a}),this.update(),this.updateNavArrows()},place:function(){if(!this.isInline){var b=parseInt(this.element.parents().filter(function(){return"auto"!=a(this).css("z-index")}).first().css("z-index"))+10,c=this.component?this.component.parent().offset():this.element.offset(),d=this.component?this.component.outerHeight(!0):this.element.outerHeight(!0);this.picker.css({top:c.top+d,lef!
t:c.left,zIndex:b})}},_allow_update:!0,update:function(){if(this._allow_update){var a,b=!1;arguments&&arguments.length&&("string"==typeof arguments[0]||arguments[0]instanceof Date)?(a=arguments[0],b=!0):(a=this.isInput?this.element.val():this.element.data("date")||this.element.find("input").val(),delete this.element.data().date),this.date=l.parseDate(a,this.o.format,this.o.language),b&&this.setValue(),this.viewDate=this.date<this.o.startDate?new Date(this.o.startDate):this.date>this.o.endDate?new Date(this.o.endDate):new Date(this.date),this.fill()}},fillDow:function(){var a=this.o.weekStart,b="<tr>";if(this.o.calendarWeeks){var c='<th class="cw"> </th>';b+=c,this.picker.find(".datepicker-days thead tr:first-child").prepend(c)}for(;a<this.o.weekStart+7;)b+='<th class="dow">'+k[this.o.language].daysMin[a++%7]+"</th>";b+="</tr>",this.picker.find(".datepicker-days thead").append(b)},fillMonths:function(){for(var a="",b=0;12>b;)a+='<span class="month">'+k[this.o.language].!
monthsShort[b++]+"</span>";this.picker.find(".datepicker-months td").ht!
ml(a)},setRange:function(b){b&&b.length?this.range=a.map(b,function(a){return a.valueOf()}):delete this.range,this.fill()},getClassNames:function(b){var c=[],d=this.viewDate.getUTCFullYear(),e=this.viewDate.getUTCMonth(),f=this.date.valueOf(),g=new Date;return b.getUTCFullYear()<d||b.getUTCFullYear()==d&&b.getUTCMonth()<e?c.push("old"):(b.getUTCFullYear()>d||b.getUTCFullYear()==d&&b.getUTCMonth()>e)&&c.push("new"),this.o.todayHighlight&&b.getUTCFullYear()==g.getFullYear()&&b.getUTCMonth()==g.getMonth()&&b.getUTCDate()==g.getDate()&&c.push("today"),f&&b.valueOf()==f&&c.push("active"),(b.valueOf()<this.o.startDate||b.valueOf()>this.o.endDate||-1!==a.inArray(b.getUTCDay(),this.o.daysOfWeekDisabled))&&c.push("disabled"),this.range&&(b>this.range[0]&&b<this.range[this.range.length-1]&&c.push("range"),-1!=a.inArray(b.valueOf(),this.range)&&c.push("selected")),c},fill:function(){var c,d=new Date(this.viewDate),e=d.getUTCFullYear(),f=d.getUTCMonth(),g=this.o.startDate!==-1/0?this.o!
.startDate.getUTCFullYear():-1/0,h=this.o.startDate!==-1/0?this.o.startDate.getUTCMonth():-1/0,i=1/0!==this.o.endDate?this.o.endDate.getUTCFullYear():1/0,j=1/0!==this.o.endDate?this.o.endDate.getUTCMonth():1/0;this.date&&this.date.valueOf(),this.picker.find(".datepicker-days thead th.datepicker-switch").text(k[this.o.language].months[f]+" "+e),this.picker.find("tfoot th.today").text(k[this.o.language].today).toggle(this.o.todayBtn!==!1),this.picker.find("tfoot th.clear").text(k[this.o.language].clear).toggle(this.o.clearBtn!==!1),this.updateNavArrows(),this.fillMonths();var m=b(e,f-1,28,0,0,0,0),n=l.getDaysInMonth(m.getUTCFullYear(),m.getUTCMonth());m.setUTCDate(n),m.setUTCDate(n-(m.getUTCDay()-this.o.weekStart+7)%7);var o=new Date(m);o.setUTCDate(o.getUTCDate()+42),o=o.valueOf();for(var p,q=[];m.valueOf()<o;){if(m.getUTCDay()==this.o.weekStart&&(q.push("<tr>"),this.o.calendarWeeks)){var r=new Date(+m+864e5*((this.o.weekStart-m.getUTCDay()-7)%7)),s=new Date(+r+864e5*((11-r.!
getUTCDay())%7)),t=new Date(+(t=b(s.getUTCFullYear(),0,1))+864e5*((11-t!
.getUTCDay())%7)),u=(s-t)/864e5/7+1;q.push('<td class="cw">'+u+"</td>")}p=this.getClassNames(m),p.push("day");var v=this.o.beforeShowDay(m);void 0===v?v={}:"boolean"==typeof v?v={enabled:v}:"string"==typeof v&&(v={classes:v}),v.enabled===!1&&p.push("disabled"),v.classes&&(p=p.concat(v.classes.split(/\s+/))),v.tooltip&&(c=v.tooltip),p=a.unique(p),q.push('<td class="'+p.join(" ")+'"'+(c?' title="'+c+'"':"")+">"+m.getUTCDate()+"</td>"),m.getUTCDay()==this.o.weekEnd&&q.push("</tr>"),m.setUTCDate(m.getUTCDate()+1)}this.picker.find(".datepicker-days tbody").empty().append(q.join(""));var w=this.date&&this.date.getUTCFullYear(),x=this.picker.find(".datepicker-months").find("th:eq(1)").text(e).end().find("span").removeClass("active");w&&w==e&&x.eq(this.date.getUTCMonth()).addClass("active"),(g>e||e>i)&&x.addClass("disabled"),e==g&&x.slice(0,h).addClass("disabled"),e==i&&x.slice(j+1).addClass("disabled"),q="",e=10*parseInt(e/10,10);var y=this.picker.find(".datepicker-years").find("t!
h:eq(1)").text(e+"-"+(e+9)).end().find("td");e-=1;for(var z=-1;11>z;z++)q+='<span class="year'+(-1==z?" old":10==z?" new":"")+(w==e?" active":"")+(g>e||e>i?" disabled":"")+'">'+e+"</span>",e+=1;y.html(q)},updateNavArrows:function(){if(this._allow_update){var a=new Date(this.viewDate),b=a.getUTCFullYear(),c=a.getUTCMonth();switch(this.viewMode){case 0:this.o.startDate!==-1/0&&b<=this.o.startDate.getUTCFullYear()&&c<=this.o.startDate.getUTCMonth()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),1/0!==this.o.endDate&&b>=this.o.endDate.getUTCFullYear()&&c>=this.o.endDate.getUTCMonth()?this.picker.find(".next").css({visibility:"hidden"}):this.picker.find(".next").css({visibility:"visible"});break;case 1:case 2:this.o.startDate!==-1/0&&b<=this.o.startDate.getUTCFullYear()?this.picker.find(".prev").css({visibility:"hidden"}):this.picker.find(".prev").css({visibility:"visible"}),1/0!==this.o.endDate&&b>=this.o.endDate.getUT!
CFullYear()?this.picker.find(".next").css({visibility:"hidden"}):this.p!
icker.find(".next").css({visibility:"visible"})}}},click:function(c){c.preventDefault();var d=a(c.target).closest("span, td, th");if(1==d.length)switch(d[0].nodeName.toLowerCase()){case"th":switch(d[0].className){case"datepicker-switch":this.showMode(1);break;case"prev":case"next":var e=l.modes[this.viewMode].navStep*("prev"==d[0].className?-1:1);switch(this.viewMode){case 0:this.viewDate=this.moveMonth(this.viewDate,e);break;case 1:case 2:this.viewDate=this.moveYear(this.viewDate,e)}this.fill();break;case"today":var f=new Date;f=b(f.getFullYear(),f.getMonth(),f.getDate(),0,0,0),this.showMode(-2);var g="linked"==this.o.todayBtn?null:"view";this._setDate(f,g);break;case"clear":var h;this.isInput?h=this.element:this.component&&(h=this.element.find("input")),h&&h.val("").change(),this._trigger("changeDate"),this.update(),this.o.autoclose&&this.hide()}break;case"span":if(!d.is(".disabled")){if(this.viewDate.setUTCDate(1),d.is(".month")){var i=1,j=d.parent().find("span").index(d!
),k=this.viewDate.getUTCFullYear();this.viewDate.setUTCMonth(j),this._trigger("changeMonth",this.viewDate),1===this.o.minViewMode&&this._setDate(b(k,j,i,0,0,0,0))}else{var k=parseInt(d.text(),10)||0,i=1,j=0;this.viewDate.setUTCFullYear(k),this._trigger("changeYear",this.viewDate),2===this.o.minViewMode&&this._setDate(b(k,j,i,0,0,0,0))}this.showMode(-1),this.fill()}break;case"td":if(d.is(".day")&&!d.is(".disabled")){var i=parseInt(d.text(),10)||1,k=this.viewDate.getUTCFullYear(),j=this.viewDate.getUTCMonth();d.is(".old")?0===j?(j=11,k-=1):j-=1:d.is(".new")&&(11==j?(j=0,k+=1):j+=1),this._setDate(b(k,j,i,0,0,0,0))}}},_setDate:function(a,b){b&&"date"!=b||(this.date=new Date(a)),b&&"view"!=b||(this.viewDate=new Date(a)),this.fill(),this.setValue(),this._trigger("changeDate");var c;this.isInput?c=this.element:this.component&&(c=this.element.find("input")),c&&(c.change(),!this.o.autoclose||b&&"date"!=b||this.hide())},moveMonth:function(a,b){if(!b)return a;var c,d,e=new Date(a.valu!
eOf()),f=e.getUTCDate(),g=e.getUTCMonth(),h=Math.abs(b);if(b=b>0?1:-1,1!
==h)d=-1==b?function(){return e.getUTCMonth()==g}:function(){return e.getUTCMonth()!=c},c=g+b,e.setUTCMonth(c),(0>c||c>11)&&(c=(c+12)%12);else{for(var i=0;h>i;i++)e=this.moveMonth(e,b);c=e.getUTCMonth(),e.setUTCDate(f),d=function(){return c!=e.getUTCMonth()}}for(;d();)e.setUTCDate(--f),e.setUTCMonth(c);return e},moveYear:function(a,b){return this.moveMonth(a,12*b)},dateWithinRange:function(a){return a>=this.o.startDate&&a<=this.o.endDate},keydown:function(a){if(this.picker.is(":not(:visible)"))return 27==a.keyCode&&this.show(),void 0;var b,c,d,e=!1;switch(a.keyCode){case 27:this.hide(),a.preventDefault();break;case 37:case 39:if(!this.o.keyboardNavigation)break;b=37==a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.date,b),d=this.moveYear(this.viewDate,b)):a.shiftKey?(c=this.moveMonth(this.date,b),d=this.moveMonth(this.viewDate,b)):(c=new Date(this.date),c.setUTCDate(this.date.getUTCDate()+b),d=new Date(this.viewDate),d.setUTCDate(this.viewDate.getUTCDate()+b)),this.dateWithi!
nRange(c)&&(this.date=c,this.viewDate=d,this.setValue(),this.update(),a.preventDefault(),e=!0);break;case 38:case 40:if(!this.o.keyboardNavigation)break;b=38==a.keyCode?-1:1,a.ctrlKey?(c=this.moveYear(this.date,b),d=this.moveYear(this.viewDate,b)):a.shiftKey?(c=this.moveMonth(this.date,b),d=this.moveMonth(this.viewDate,b)):(c=new Date(this.date),c.setUTCDate(this.date.getUTCDate()+7*b),d=new Date(this.viewDate),d.setUTCDate(this.viewDate.getUTCDate()+7*b)),this.dateWithinRange(c)&&(this.date=c,this.viewDate=d,this.setValue(),this.update(),a.preventDefault(),e=!0);break;case 13:this.hide(),a.preventDefault();break;case 9:this.hide()}if(e){this._trigger("changeDate");var f;this.isInput?f=this.element:this.component&&(f=this.element.find("input")),f&&f.change()}},showMode:function(a){a&&(this.viewMode=Math.max(this.o.minViewMode,Math.min(2,this.viewMode+a))),this.picker.find(">div").hide().filter(".datepicker-"+l.modes[this.viewMode].clsName).css("display","block"),this.update!
NavArrows()}};var f=function(b,c){this.element=a(b),this.inputs=a.map(c!
.inputs,function(a){return a.jquery?a[0]:a}),delete c.inputs,a(this.inputs).datepicker(c).bind("changeDate",a.proxy(this.dateUpdated,this)),this.pickers=a.map(this.inputs,function(b){return a(b).data("datepicker")}),this.updateDates()};f.prototype={updateDates:function(){this.dates=a.map(this.pickers,function(a){return a.date}),this.updateRanges()},updateRanges:function(){var b=a.map(this.dates,function(a){return a.valueOf()});a.each(this.pickers,function(a,c){c.setRange(b)})},dateUpdated:function(b){var c=a(b.target).data("datepicker"),d=c.getUTCDate(),e=a.inArray(b.target,this.inputs),f=this.inputs.length;if(-1!=e){if(d<this.dates[e])for(;e>=0&&d<this.dates[e];)this.pickers[e--].setUTCDate(d);else if(d>this.dates[e])for(;f>e&&d>this.dates[e];)this.pickers[e++].setUTCDate(d);this.updateDates()}},remove:function(){a.map(this.pickers,function(a){a.remove()}),delete this.element.data().datepicker}};var g=a.fn.datepicker,h=a.fn.datepicker=function(b){var g=Array.apply(null,arg!
uments);g.shift();var h;return this.each(function(){var j=a(this),k=j.data("datepicker"),l="object"==typeof b&&b;if(!k){var m=c(this,"date"),n=a.extend({},i,m,l),o=d(n.language),p=a.extend({},i,o,m,l);if(j.is(".input-daterange")||p.inputs){var q={inputs:p.inputs||j.find("input").toArray()};j.data("datepicker",k=new f(this,a.extend(p,q)))}else j.data("datepicker",k=new e(this,p))}return"string"==typeof b&&"function"==typeof k[b]&&(h=k[b].apply(k,g),void 0!==h)?!1:void 0}),void 0!==h?h:this},i=a.fn.datepicker.defaults={autoclose:!1,beforeShowDay:a.noop,calendarWeeks:!1,clearBtn:!1,daysOfWeekDisabled:[],endDate:1/0,forceParse:!0,format:"mm/dd/yyyy",keyboardNavigation:!0,language:"en",minViewMode:0,rtl:!1,startDate:-1/0,startView:0,todayBtn:!1,todayHighlight:!1,weekStart:0},j=a.fn.datepicker.locale_opts=["format","rtl","weekStart"];a.fn.datepicker.Constructor=e;var k=a.fn.datepicker.dates={en:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"!
],daysShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"],daysMin:[!
"Su","Mo","Tu","We","Th","Fr","Sa","Su"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],monthsShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],today:"Today",clear:"Clear"}},l={modes:[{clsName:"days",navFnc:"Month",navStep:1},{clsName:"months",navFnc:"FullYear",navStep:1},{clsName:"years",navFnc:"FullYear",navStep:10}],isLeapYear:function(a){return 0===a%4&&0!==a%100||0===a%400
+},getDaysInMonth:function(a,b){return[31,l.isLeapYear(a)?29:28,31,30,31,30,31,31,30,31,30,31][b]},validParts:/dd?|DD?|mm?|MM?|yy(?:yy)?/g,nonpunctuation:/[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,parseFormat:function(a){var b=a.replace(this.validParts,"\0").split("\0"),c=a.match(this.validParts);if(!b||!b.length||!c||0===c.length)throw new Error("Invalid date format.");return{separators:b,parts:c}},parseDate:function(c,d,f){if(c instanceof Date)return c;if("string"==typeof d&&(d=l.parseFormat(d)),/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(c)){var g,h,i=/([\-+]\d+)([dmwy])/,j=c.match(/([\-+]\d+)([dmwy])/g);c=new Date;for(var m=0;m<j.length;m++)switch(g=i.exec(j[m]),h=parseInt(g[1]),g[2]){case"d":c.setUTCDate(c.getUTCDate()+h);break;case"m":c=e.prototype.moveMonth.call(e.prototype,c,h);break;case"w":c.setUTCDate(c.getUTCDate()+7*h);break;case"y":c=e.prototype.moveYear.call(e.prototype,c,h)}return b(c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate(),0,0,0)}var n,o,g,j=c&&c.ma!
tch(this.nonpunctuation)||[],c=new Date,p={},q=["yyyy","yy","M","MM","m","mm","d","dd"],r={yyyy:function(a,b){return a.setUTCFullYear(b)},yy:function(a,b){return a.setUTCFullYear(2e3+b)},m:function(a,b){for(b-=1;0>b;)b+=12;for(b%=12,a.setUTCMonth(b);a.getUTCMonth()!=b;)a.setUTCDate(a.getUTCDate()-1);return a},d:function(a,b){return a.setUTCDate(b)}};r.M=r.MM=r.mm=r.m,r.dd=r.d,c=b(c.getFullYear(),c.getMonth(),c.getDate(),0,0,0);var s=d.parts.slice();if(j.length!=s.length&&(s=a(s).filter(function(b,c){return-1!==a.inArray(c,q)}).toArray()),j.length==s.length){for(var m=0,t=s.length;t>m;m++){if(n=parseInt(j[m],10),g=s[m],isNaN(n))switch(g){case"MM":o=a(k[f].months).filter(function(){var a=this.slice(0,j[m].length),b=j[m].slice(0,a.length);return a==b}),n=a.inArray(o[0],k[f].months)+1;break;case"M":o=a(k[f].monthsShort).filter(function(){var a=this.slice(0,j[m].length),b=j[m].slice(0,a.length);return a==b}),n=a.inArray(o[0],k[f].monthsShort)+1}p[g]=n}for(var u,m=0;m<q.length;m+!
+)u=q[m],u in p&&!isNaN(p[u])&&r[u](c,p[u])}return c},formatDate:function(b,c,d){"string"==typeof c&&(c=l.parseFormat(c));var e={d:b.getUTCDate(),D:k[d].daysShort[b.getUTCDay()],DD:k[d].days[b.getUTCDay()],m:b.getUTCMonth()+1,M:k[d].monthsShort[b.getUTCMonth()],MM:k[d].months[b.getUTCMonth()],yy:b.getUTCFullYear().toString().substring(2),yyyy:b.getUTCFullYear()};e.dd=(e.d<10?"0":"")+e.d,e.mm=(e.m<10?"0":"")+e.m;for(var b=[],f=a.extend([],c.separators),g=0,h=c.parts.length;h>=g;g++)f.length&&b.push(f.shift()),b.push(e[c.parts[g]]);return b.join("")},headTemplate:'<thead><tr><th class="prev"><i class="icon-arrow-left"/></th><th colspan="5" class="datepicker-switch"></th><th class="next"><i class="icon-arrow-right"/></th></tr></thead>',contTemplate:'<tbody><tr><td colspan="7"></td></tr></tbody>',footTemplate:'<tfoot><tr><th colspan="7" class="today"></th></tr><tr><th colspan="7" class="clear"></th></tr></tfoot>'};l.template='<div class="datepicker"><div class="datepicker-days"!
><table class=" table-condensed">'+l.headTemplate+"<tbody></tbody>"+l.f!
ootTemplate+"</table>"+"</div>"+'<div class="datepicker-months">'+'<table class="table-condensed">'+l.headTemplate+l.contTemplate+l.footTemplate+"</table>"+"</div>"+'<div class="datepicker-years">'+'<table class="table-condensed">'+l.headTemplate+l.contTemplate+l.footTemplate+"</table>"+"</div>"+"</div>",a.fn.datepicker.DPGlobal=l,a.fn.datepicker.noConflict=function(){return a.fn.datepicker=g,this},a(document).on("focus.datepicker.data-api click.datepicker.data-api",'[data-provide="datepicker"]',function(b){var c=a(this);c.data("datepicker")||(b.preventDefault(),h.call(c,"show"))}),a(function(){h.call(a('[data-provide="datepicker-inline"]'))})}(window.jQuery),function(a){"use strict";a.fn.bdatepicker=a.fn.datepicker.noConflict(),a.fn.datepicker||(a.fn.datepicker=a.fn.bdatepicker);var b=function(a){this.init("date",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{initPicker:function(b,c){this.op!
tions.viewformat||(this.options.viewformat=this.options.format),b.datepicker=a.fn.editableutils.tryParseJson(b.datepicker,!0),this.options.datepicker=a.extend({},c.datepicker,b.datepicker,{format:this.options.viewformat}),this.options.datepicker.language=this.options.datepicker.language||"en",this.dpg=a.fn.bdatepicker.DPGlobal,this.parsedFormat=this.dpg.parseFormat(this.options.format),this.parsedViewFormat=this.dpg.parseFormat(this.options.viewformat)},render:function(){this.$input.bdatepicker(this.options.datepicker),this.options.clear&&(this.$clear=a('<a href="#"></a>').html(this.options.clear).click(a.proxy(function(a){a.preventDefault(),a.stopPropagation(),this.clear()},this)),this.$tpl.parent().append(a('<div class="editable-clear">').append(this.$clear)))},value2html:function(a,c){var d=a?this.dpg.formatDate(a,this.parsedViewFormat,this.options.datepicker.language):"";b.superclass.value2html.call(this,d,c)},html2value:function(a){return this.parseDate(a,this.parsedVi!
ewFormat)},value2str:function(a){return a?this.dpg.formatDate(a,this.pa!
rsedFormat,this.options.datepicker.language):""},str2value:function(a){return this.parseDate(a,this.parsedFormat)},value2submit:function(a){return this.value2str(a)},value2input:function(a){this.$input.bdatepicker("update",a)},input2value:function(){return this.$input.data("datepicker").date},activate:function(){},clear:function(){this.$input.data("datepicker").date=null,this.$input.find(".active").removeClass("active"),this.options.showbuttons||this.$input.closest("form").submit()},autosubmit:function(){this.$input.on("mouseup",".day",function(b){if(!a(b.currentTarget).is(".old")&&!a(b.currentTarget).is(".new")){var c=a(this).closest("form");setTimeout(function(){c.submit()},200)}})},parseDate:function(a,b){var c,d=null;return a&&(d=this.dpg.parseDate(a,b,this.options.datepicker.language),"string"==typeof a&&(c=this.dpg.formatDate(d,b,this.options.datepicker.language),a!==c&&(d=null))),d}}),b.defaults=a.extend({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<div class="!
editable-date well"></div>',inputclass:null,format:"yyyy-mm-dd",viewformat:null,datepicker:{weekStart:0,startView:0,minViewMode:0,autoclose:!1},clear:"× clear"}),a.fn.editabletypes.date=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("datefield",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.date),a.extend(b.prototype,{render:function(){this.$input=this.$tpl.find("input"),this.setClass(),this.setAttr("placeholder"),this.$tpl.bdatepicker(this.options.datepicker),this.$input.off("focus keydown"),this.$input.keyup(a.proxy(function(){this.$tpl.removeData("date"),this.$tpl.bdatepicker("update")},this))},value2input:function(a){this.$input.val(a?this.dpg.formatDate(a,this.parsedViewFormat,this.options.datepicker.language):""),this.$tpl.bdatepicker("update")},input2value:function(){return this.html2value(this.$input.val())},activate:function(){a.fn.editabletypes.text.prototype.activate.call(this)},autosubmi!
t:function(){}}),b.defaults=a.extend({},a.fn.editabletypes.date.default!
s,{tpl:'<div class="input-append date"><input type="text"/><span class="add-on"><i class="icon-th"></i></span></div>',inputclass:"input-small",datepicker:{weekStart:0,startView:0,minViewMode:0,autoclose:!0}}),a.fn.editabletypes.datefield=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("datetime",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.abstractinput),a.extend(b.prototype,{initPicker:function(b,c){this.options.viewformat||(this.options.viewformat=this.options.format),b.datetimepicker=a.fn.editableutils.tryParseJson(b.datetimepicker,!0),this.options.datetimepicker=a.extend({},c.datetimepicker,b.datetimepicker,{format:this.options.viewformat}),this.options.datetimepicker.language=this.options.datetimepicker.language||"en",this.dpg=a.fn.datetimepicker.DPGlobal,this.parsedFormat=this.dpg.parseFormat(this.options.format,this.options.formatType),this.parsedViewFormat=this.dpg.parseFormat(this.options.viewfo!
rmat,this.options.formatType)},render:function(){this.$input.datetimepicker(this.options.datetimepicker),this.$input.on("changeMode",function(){var b=a(this).closest("form").parent();setTimeout(function(){b.triggerHandler("resize")},0)}),this.options.clear&&(this.$clear=a('<a href="#"></a>').html(this.options.clear).click(a.proxy(function(a){a.preventDefault(),a.stopPropagation(),this.clear()},this)),this.$tpl.parent().append(a('<div class="editable-clear">').append(this.$clear)))},value2html:function(a,c){var d=a?this.dpg.formatDate(this.toUTC(a),this.parsedViewFormat,this.options.datetimepicker.language,this.options.formatType):"";return c?(b.superclass.value2html.call(this,d,c),void 0):d},html2value:function(a){var b=this.parseDate(a,this.parsedViewFormat);return b?this.fromUTC(b):null},value2str:function(a){return a?this.dpg.formatDate(this.toUTC(a),this.parsedFormat,this.options.datetimepicker.language,this.options.formatType):""},str2value:function(a){var b=this.parse!
Date(a,this.parsedFormat);return b?this.fromUTC(b):null},value2submit:f!
unction(a){return this.value2str(a)},value2input:function(a){a&&this.$input.data("datetimepicker").setDate(a)},input2value:function(){var a=this.$input.data("datetimepicker");return a.date?a.getDate():null},activate:function(){},clear:function(){this.$input.data("datetimepicker").date=null,this.$input.find(".active").removeClass("active"),this.options.showbuttons||this.$input.closest("form").submit()},autosubmit:function(){this.$input.on("mouseup",".minute",function(){var b=a(this).closest("form");setTimeout(function(){b.submit()},200)})},toUTC:function(a){return a?new Date(a.valueOf()-6e4*a.getTimezoneOffset()):a},fromUTC:function(a){return a?new Date(a.valueOf()+6e4*a.getTimezoneOffset()):a},parseDate:function(a,b){var c,d=null;return a&&(d=this.dpg.parseDate(a,b,this.options.datetimepicker.language,this.options.formatType),"string"==typeof a&&(c=this.dpg.formatDate(d,b,this.options.datetimepicker.language,this.options.formatType),a!==c&&(d=null))),d}}),b.defaults=a.exten!
d({},a.fn.editabletypes.abstractinput.defaults,{tpl:'<div class="editable-date well"></div>',inputclass:null,format:"yyyy-mm-dd hh:ii",formatType:"standard",viewformat:null,datetimepicker:{todayHighlight:!1,autoclose:!1},clear:"× clear"}),a.fn.editabletypes.datetime=b}(window.jQuery),function(a){"use strict";var b=function(a){this.init("datetimefield",a,b.defaults),this.initPicker(a,b.defaults)};a.fn.editableutils.inherit(b,a.fn.editabletypes.datetime),a.extend(b.prototype,{render:function(){this.$input=this.$tpl.find("input"),this.setClass(),this.setAttr("placeholder"),this.$tpl.datetimepicker(this.options.datetimepicker),this.$input.off("focus keydown"),this.$input.keyup(a.proxy(function(){this.$tpl.removeData("date"),this.$tpl.datetimepicker("update")},this))},value2input:function(a){this.$input.val(this.value2html(a)),this.$tpl.datetimepicker("update")},input2value:function(){return this.html2value(this.$input.val())},activate:function(){a.fn.editabletypes.text.pr!
ototype.activate.call(this)},autosubmit:function(){}}),b.defaults=a.ext!
end({},a.fn.editabletypes.datetime.defaults,{tpl:'<div class="input-append date"><input type="text"/><span class="add-on"><i class="icon-th"></i></span></div>',inputclass:"input-medium",datetimepicker:{todayHighlight:!1,autoclose:!0}}),a.fn.editabletypes.datetimefield=b}(window.jQuery);
\ No newline at end of file
diff --git a/ui/pages/wok-ui.html.tmpl b/ui/pages/wok-ui.html.tmpl
index eb0208b..cb42358 100644
--- a/ui/pages/wok-ui.html.tmpl
+++ b/ui/pages/wok-ui.html.tmpl
@@ -56,6 +56,7 @@
<link rel="stylesheet" href="$href('libs/bootstrap-select/dist/css/bootstrap-select.min.css')">
<link rel="stylesheet" href="$href('libs/jquery-bootgrid/dist/css/jquery.bootgrid.min.css')">
<link rel="stylesheet" href="$href('libs/bootstrap-switch/dist/css/bootstrap-switch.min.css')">
+ <link rel="stylesheet" href="$href('libs/bootstrap-editable/dist/css/bootstrap-editable.css')">
<link rel="stylesheet" href="$href('css/fontawesome/fontawesome.css')">
<link rel="stylesheet" href="$href('css/opensans/opensans.css')">
<link rel="stylesheet" href="$href('css/bootstrap-select.custom.css')">
@@ -70,6 +71,7 @@
<script src="$href('libs/bootstrap-select/dist/js/bootstrap-select.min.js')"></script>
<script src="$href('libs/jquery-bootgrid/dist/js/jquery.bootgrid.min.js')"></script>
<script src="$href('libs/bootstrap-switch/dist/js/bootstrap-switch.min.js')"></script>
+ <script src="$href('libs/bootstrap-editable/dist/js/bootstrap-editable.min.js')"></script>
<script src="$href('base64/jquery.base64.js')"></script>
<script src="$href('js/wok.min.js')"></script>
<!-- This is used for detecting if the UI needs to be built -->
--
1.8.3.1
3
3

23 Dec '15
From: Atreyee Mukhopadhyay <atreyee(a)linux.vnet.ibm.com>
Bootstrap- switch provides bootstrap based on-off toggle button.
Checkbox and radio buttons can be turned in switch button using
this library and corresponding action handling can be done.
Added library css files.
Atreyee Mukhopadhyay (1):
Library files for bootstrap-switch plugin
configure.ac | 4 ++++
ui/libs/Makefile.am | 2 +-
ui/libs/bootstrap-switch/LICENSE | 21 +++++++++++++++++++++
ui/libs/bootstrap-switch/Makefile.am | 18 ++++++++++++++++++
ui/libs/bootstrap-switch/dist/Makefile.am | 18 ++++++++++++++++++
ui/libs/bootstrap-switch/dist/css/Makefile.am | 20 ++++++++++++++++++++
.../dist/css/bootstrap-switch.min.css | 22 ++++++++++++++++++++++
ui/libs/bootstrap-switch/dist/js/Makefile.am | 20 ++++++++++++++++++++
.../dist/js/bootstrap-switch.min.js | 22 ++++++++++++++++++++++
ui/pages/wok-ui.html.tmpl | 2 ++
10 files changed, 148 insertions(+), 1 deletion(-)
create mode 100644 ui/libs/bootstrap-switch/LICENSE
create mode 100644 ui/libs/bootstrap-switch/Makefile.am
create mode 100644 ui/libs/bootstrap-switch/dist/Makefile.am
create mode 100644 ui/libs/bootstrap-switch/dist/css/Makefile.am
create mode 100644 ui/libs/bootstrap-switch/dist/css/bootstrap-switch.min.css
create mode 100644 ui/libs/bootstrap-switch/dist/js/Makefile.am
create mode 100644 ui/libs/bootstrap-switch/dist/js/bootstrap-switch.min.js
--
2.1.0
2
3

23 Dec '15
Hi Aline,
Please find the attached bootstrap-switch patch.
Thanks & regards,
Atreyee
2
2

22 Dec '15
Thi patch add kimchi.css file to the source control. That way the
build process does not need to rely on python-pip to install build
dependencies.
The python-pip is still required for UI development to install cython
and libsass libraries. They will be needed to generate kimchi.css file
according to changes in .scss files.
When modifying the .scss files, make sure to run:
$ make -C ui/css css
to update kimchi.css accordingly.
Signed-off-by: Aline Manera <alinefm(a)linux.vnet.ibm.com>
---
.gitignore | 1 -
contrib/DEBIAN/control.in | 4 +-
contrib/kimchi.spec.fedora.in | 2 -
contrib/kimchi.spec.suse.in | 2 -
docs/README.md | 28 +-
ui/css/Makefile.am | 6 +-
ui/css/kimchi.css | 2036 +++++++++++++++++++++++++++++++++++++++++
7 files changed, 2063 insertions(+), 16 deletions(-)
create mode 100644 ui/css/kimchi.css
diff --git a/.gitignore b/.gitignore
index d3db739..0cd7265 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,3 @@ po/gen-pot
*.rej
*.pem
ui/pages/help/*/*.html
-ui/css/kimchi.css
\ No newline at end of file
diff --git a/contrib/DEBIAN/control.in b/contrib/DEBIAN/control.in
index 6071d0b..b6acdaf 100644
--- a/contrib/DEBIAN/control.in
+++ b/contrib/DEBIAN/control.in
@@ -29,8 +29,6 @@ Depends: wok,
python-paramiko
Build-Depends: xsltproc,
gettext,
- python-lxml,
- python-dev,
- python-pip
+ python-lxml
Maintainer: Aline Manera <alinefm(a)br.ibm.com>
Description: Kimchi web application
diff --git a/contrib/kimchi.spec.fedora.in b/contrib/kimchi.spec.fedora.in
index b30637d..163a702 100644
--- a/contrib/kimchi.spec.fedora.in
+++ b/contrib/kimchi.spec.fedora.in
@@ -34,8 +34,6 @@ Requires: python-paramiko
BuildRequires: gettext-devel
BuildRequires: libxslt
BuildRequires: python-lxml
-BuildRequires: python-devel
-BuildRequires: python-pip
%if 0%{?rhel} >= 6 || 0%{?fedora} >= 19
Requires: spice-html5
diff --git a/contrib/kimchi.spec.suse.in b/contrib/kimchi.spec.suse.in
index e65df67..2206e09 100644
--- a/contrib/kimchi.spec.suse.in
+++ b/contrib/kimchi.spec.suse.in
@@ -34,8 +34,6 @@ Requires: python-paramiko
BuildRequires: gettext-tools
BuildRequires: libxslt-tools
BuildRequires: python-lxml
-BuildRequires: python-devel
-BuildRequires: python-pip
%if 0%{?suse_version} == 1100
Requires: python-ordereddict
diff --git a/docs/README.md b/docs/README.md
index 19ae0b0..9f885da 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -56,15 +56,19 @@ Install Dependencies
python-websockify novnc spice-html5 \
python-configobj python-magic python-paramiko
- # If using RHEL, install the following additional packages:
- $ sudo yum install python-unittest2 python-ordereddict
+ # If using RHEL, install the following additional packages:
+ $ sudo yum install python-unittest2 python-ordereddict
- # Restart libvirt to allow configuration changes to take effect
- $ sudo service libvirtd restart
+ # Restart libvirt to allow configuration changes to take effect
+ $ sudo service libvirtd restart
# These dependencies are only required if you want to run the tests:
$ sudo yum install pyflakes python-pep8 python-requests python-mock
+ # For UI development
+ $ sudo yum install python-devel python pip
+ $ sudo pip install cython libsass
+
*Note for RHEL users*: Some of the above packages are located in the Red Hat
EPEL repositories. See
@@ -86,6 +90,10 @@ channel at RHN Classic or Red Hat Satellite.
# These dependencies are only required if you want to run the tests:
$ sudo apt-get install pep8 pyflakes python-requests python-mock
+ # For UI development
+ $ sudo yum install python-dev python pip
+ $ sudo pip install cython libsass
+
**For openSUSE:**
$ sudo zypper install wok libvirt-python libvirt gettext-tools \
@@ -98,6 +106,10 @@ channel at RHN Classic or Red Hat Satellite.
# These dependencies are only required if you want to run the tests:
$ sudo zypper install python-pyflakes python-pep8 python-requests python-mock
+ # For UI development
+ $ sudo yum install python-devel python pip
+ $ sudo pip install cython libsass
+
*Note for openSUSE users*: Some of the above packages are located in different
openSUSE repositories. See
[this FAQ](http://download.opensuse.org/repositories/home:GRNET:synnefo/) for
@@ -173,6 +185,14 @@ Test
After all tests are executed, a summary will be displayed containing any
errors/failures which might have occurred.
+
+UI Development
+----
+Make sure to update the CSS files when modifying the SCSS files by running:
+
+ $ sudo make -C ui/css css
+
+
Usage
-----
diff --git a/ui/css/Makefile.am b/ui/css/Makefile.am
index 47c01fc..5758e59 100644
--- a/ui/css/Makefile.am
+++ b/ui/css/Makefile.am
@@ -18,8 +18,6 @@
cssdir = $(datadir)/wok/plugins/kimchi/ui/css
dist_css_DATA = kimchi.css
-%.css: src/%.scss
+css: src/*.scss src/modules/*.scss
echo "Compiling .scss file $<"
- sassc -s expanded $< $(@:.scss=.css)
-
-CLEANFILES = kimchi.css
+ sassc -s expanded $< kimchi.css
diff --git a/ui/css/kimchi.css b/ui/css/kimchi.css
new file mode 100644
index 0000000..ec57c93
--- /dev/null
+++ b/ui/css/kimchi.css
@@ -0,0 +1,2036 @@
+/*
+ * Project Kimchi
+ *
+ * Copyright IBM, Corp. 2015
+ *
+ * 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.
+ */
+/*
+ * A partial implementation of the Ruby list functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/…
+ */
+/*
+ * A partial implementation of the Ruby constants functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/lib/compass/sass_extensions/…
+ */
+/*
+ * A partial implementation of the Ruby display functions from Compass:
+ * https://github.com/Compass/compass/blob/stable/core/lib/compass/core/sass_e…
+ */
+.absolute-middle {
+ margin: auto;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ text-align: center;
+}
+
+.animate-spin {
+ -webkit-animation: spin 2s infinite linear;
+ -o-animation: spin 2s infinite linear;
+ animation: spin 2s infinite linear;
+ display: inline-block;
+}
+
+@keyframes spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ -o-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ -moz-transform: rotate(359deg);
+ -ms-transform: rotate(359deg);
+ -o-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+
+/* Template & Guests Modal Windows */
+#template-add-window.modal-content label.box-iso-outer,
+#guest-add-window.modal-content label.box-iso-outer {
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 14px !important;
+ font-weight: 400;
+ border-radius: 3px;
+ overflow: hidden;
+ display: block;
+ -webkit-user-select: none;
+ user-select: none;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-border,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-border {
+ display: block;
+ border: 3px solid transparent;
+ transition: all .1s ease-in-out;
+}
+
+#template-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border,
+#template-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border,
+#guest-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border,
+#guest-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border {
+ border-color: #8cc63f;
+}
+
+#template-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border > .box-iso-inner,
+#template-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border > .box-iso-inner,
+#guest-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border > .box-iso-inner,
+#guest-add-window.modal-content label.box-iso-outer .iso-checkbox-hidden:checked + span.box-iso-border > .box-iso-inner {
+ border-color: #000;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner {
+ display: block;
+ border: 1px solid transparent;
+ background: #fff;
+ transition: all .1s ease-in-out;
+}
+
+#template-add-window.modal-content ul.list-template,
+#template-add-window.modal-content ul.list-iso,
+#guest-add-window.modal-content ul.list-template,
+#guest-add-window.modal-content ul.list-iso {
+ display: block;
+ overflow-x: hidden;
+ overflow-y: auto;
+ max-height: 462px;
+ list-style: none;
+ margin: 0 -5px 10px -5px;
+ padding: 0;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dl,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dl {
+ margin-bottom: 16px;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dt,
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dd,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dt,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dd {
+ padding: 0 12px 0 20px;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dt,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dt {
+ padding-top: 5px;
+ text-transform: capitalize;
+}
+
+#template-add-window.modal-content label.box-iso-outer span.box-iso-inner dd,
+#guest-add-window.modal-content label.box-iso-outer span.box-iso-inner dd {
+ padding-bottom: 5px;
+}
+
+#template-add-window.modal-content ul#templateTile input[type="radio"].iso-radio-hidden,
+#template-add-window.modal-content ul#list-local-iso input[type="checkbox"].iso-checkbox-hidden,
+#template-add-window.modal-content ul#list-remote-iso input[type="checkbox"].iso-checkbox-hidden,
+#guest-add-window.modal-content ul#templateTile input[type="radio"].iso-radio-hidden,
+#guest-add-window.modal-content ul#list-local-iso input[type="checkbox"].iso-checkbox-hidden,
+#guest-add-window.modal-content ul#list-remote-iso input[type="checkbox"].iso-checkbox-hidden {
+ display: none;
+}
+
+#template-add-window.modal-content label.box-iso-outer,
+#guest-add-window.modal-content label.box-iso-outer {
+ cursor: pointer;
+}
+
+#template-add-window.modal-content ul#list-local-iso li.col-md-3,
+#template-add-window.modal-content ul#list-remote-iso li.col-md-3,
+#guest-add-window.modal-content ul#list-local-iso li.col-md-3,
+#guest-add-window.modal-content ul#list-remote-iso li.col-md-3 {
+ width: 241px;
+ margin: 10px 5px 0;
+}
+
+#template-add-window.modal-content h3.iso-title,
+#guest-add-window.modal-content h3.iso-title {
+ font-size: 22px;
+ font-weight: 300;
+ line-height: 22px;
+ margin: 0;
+ padding: 13px 40px 13px 20px;
+ background-color: transparent;
+ background-position: right 10px center;
+ background-repeat: no-repeat;
+ background-size: auto 27px;
+ background-origin: padding-box;
+ max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+#template-add-window.modal-content h3.iso-title.centos,
+#guest-add-window.modal-content h3.iso-title.centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#template-add-window.modal-content h3.iso-title.debian,
+#guest-add-window.modal-content h3.iso-title.debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#template-add-window.modal-content h3.iso-title.fedora,
+#guest-add-window.modal-content h3.iso-title.fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#template-add-window.modal-content h3.iso-title.opensuse,
+#guest-add-window.modal-content h3.iso-title.opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#template-add-window.modal-content h3.iso-title.ubuntu,
+#guest-add-window.modal-content h3.iso-title.ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#template-add-window.modal-content h3.iso-title.gentoo,
+#guest-add-window.modal-content h3.iso-title.gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#template-add-window.modal-content h3.iso-title.unknown,
+#guest-add-window.modal-content h3.iso-title.unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+/* Create Guest Modal */
+.guests-modal .modal-dialog {
+ width: 1100px;
+}
+
+.guests-modal .page-list {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+}
+
+.guests-modal .page {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ padding: 10px 30px;
+}
+
+#guest-add-window .modal-body {
+ margin: 0;
+ padding: 0;
+}
+
+#guest-add-window .modal-footer {
+ margin-top: 0;
+}
+
+#guest-add-window .modal-footer .btn + .btn {
+ margin-left: 0;
+}
+
+#guest-add-window .modal-footer .btn {
+ margin-right: 5px;
+}
+
+#guest-add-window .modal-dialog {
+ width: 900px;
+}
+
+#guest-add-window .guest-modal-container {
+ padding: 10px 30px;
+ position: relative;
+}
+
+#guest-add-window .guest-pager {
+ background: #eee;
+ overflow: hidden;
+ position: relative;
+ height: 530px;
+}
+
+#guest-add-window.modal-content p {
+ margin: 0 0 10px 0;
+}
+
+#guest-add-window.modal-content h5 {
+ font-size: 13pt;
+ font-weight: 400;
+ margin-top: 0;
+}
+
+#guest-add-window.modal-content label {
+ font-size: 16px;
+ font-weight: 400;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+}
+
+#guest-add-window form#form-vm-add {
+ margin: 0;
+}
+
+#guest-add-window input#guest-vm-name,
+#guest-add-window p.help-block {
+ width: 592px;
+}
+
+#guest-content-container .wok-guest-list {
+ display: block;
+ width: 100%;
+ padding: 0;
+ list-style-type: none;
+}
+
+#guest-content-container .wok-guest-list > li:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#guest-content-container .wok-guest-list > li:nth-child(odd) {
+ background-color: #fff;
+}
+
+#guest-content-container .wok-guest-list > li:first-child {
+ border-top: 0;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header {
+ border-top: 0 none;
+ height: 36px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span {
+ height: 36px;
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300;
+ font-size: 12.5pt;
+ line-height: 1.42857;
+ border-bottom: none;
+ border-top: 0;
+ overflow: hidden;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span > span {
+ width: 100%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ display: block;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body {
+ border-top: 1px solid #eee;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 12.5pt;
+ line-height: 2.42857;
+ font-weight: 400;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress {
+ display: inline-block;
+ width: 60%;
+ position: relative;
+ vertical-align: top;
+ margin-top: 15px;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar {
+ position: absolute;
+ top: 0;
+ left: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar.dark-grey {
+ background-color: #929497;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar.medium-grey {
+ background-color: #bbbdbf;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body .progress-bar.light-grey {
+ background-color: #e6e7e8;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body div.percentage-label {
+ display: inline-block;
+ width: 25%;
+ margin-top: 6px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body div.measure-label {
+ display: inline-block;
+ width: 35%;
+ margin-top: 6px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state {
+ width: 40px;
+ text-align: center;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state {
+ font-size: 22px;
+ position: relative;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-ban {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-power-off {
+ color: #a8d46f;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-undo {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.running > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.running > .fa-refresh {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-ban {
+ color: #999;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-power-off {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-undo {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.shutoff > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.shutoff > .fa-refresh {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-ban {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-power-off {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-undo {
+ color: #999;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.starting > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.starting > .fa-refresh {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-ban,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-ban {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-power-off,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-power-off {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-undo,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-undo {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.resetting > .fa-refresh,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.resetting > .fa-refresh {
+ color: #a8d46f;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-state > span.guest-state.paused > .fa,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-state > span.guest-state.paused > .fa {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-name,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-name {
+ width: 13.7%;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+@media (min-width: 1330px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-name,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-name {
+ width: 9.7%;
+ }
+}
+
+@media (min-width: 1540px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-name,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-name {
+ width: 14.15%;
+ }
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-type,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-type {
+ width: 11.74%;
+ background-position: 0 50%;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+@media (min-width: 1330px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-type,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-type {
+ width: 10.74%;
+ }
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc > a,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc > a {
+ font-weight: normal;
+ color: #5ab3d4 !important;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc .fa-spin,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc .fa-spin {
+ display: none;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc .fa-spin.active,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc .fa-spin.active {
+ display: inline-block;
+ margin-right: 8px;
+ font-size: 22px;
+ color: #5ab3d4 !important;
+}
+
+@media (min-width: 1330px) {
+ #guest-content-container .wok-guest-list .wok-guest-list-header > span.column-vnc,
+ #guest-content-container .wok-guest-list .wok-guest-list-body > span.column-vnc {
+ width: 10.84%;
+ display: inline-block;
+ }
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-processors,
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-memory,
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-storage,
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-network,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-processors,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-memory,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-storage,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-network {
+ width: 12.5%;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-processors > div > div.progress-bar.cpu-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-processors > div > div.progress-bar.cpu-progress-bar {
+ background-color: #d9182d;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-memory > div > div.progress-bar.memory-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-memory > div > div.progress-bar.memory-progress-bar {
+ background-color: #008abf;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-storage > div > div.progress-bar.storage-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-storage > div > div.progress-bar.storage-progress-bar {
+ background-color: #fdb813;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-network > div > div.progress-bar.network-progress-bar,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-network > div > div.progress-bar.network-progress-bar {
+ background-color: #7f1c7d;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.column-action,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.column-action {
+ width: 165px;
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-header > span.item-hidden,
+#guest-content-container .wok-guest-list .wok-guest-list-body > span.item-hidden {
+ display: none !important;
+}
+
+#guest-content-container .wok-guest-list .distro-icon {
+ background-color: transparent;
+ background-size: 27px 27px;
+ background-repeat: no-repeat;
+ background-position: left;
+}
+
+#guest-content-container .wok-guest-list .distro-icon.inactive {
+ -webkit-filter: grayscale(100%) contrast(0.8) brightness(110%);
+ -moz-filter: grayscale(100%) contrast(0.8) brightness(110%);
+ filter: grayscale(100%) contrast(0.8) brightness(110%);
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#guest-content-container .wok-guest-list .distro-icon.icon-unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+#guest-content-container .wok-guest-list .wok-guest-list-body.inactive {
+ color: #999 !important;
+}
+
+#guest-edit-window .tab-content {
+ overflow: hidden;
+ height: 559px;
+}
+
+#guest-edit-window .tab-content .tab-pane {
+ position: relative;
+}
+
+#guest-edit-window #form-guest-edit-interface .column-actions {
+ width: 23%;
+}
+
+#guest-edit-window #form-guest-edit-storage .column-actions {
+ width: 26%;
+}
+
+#guest-edit-window #form-guest-edit-snapshot .column-actions {
+ width: 22%;
+}
+
+#guest-edit-window #form-guest-edit-pci .column-actions {
+ width: 4.47%;
+}
+
+#guest-edit-window form {
+ margin: 15px 0 0;
+}
+
+#guest-edit-window form .header .column-actions,
+#guest-edit-window form .task .column-actions,
+#guest-edit-window form .body .column-actions {
+ text-align: right;
+}
+
+#guest-edit-window form .header .column-device,
+#guest-edit-window form .task .column-device,
+#guest-edit-window form .body .column-device {
+ width: 12.7%;
+}
+
+#guest-edit-window form .header .column-path,
+#guest-edit-window form .task .column-path,
+#guest-edit-window form .body .column-path {
+ width: 60.25%;
+}
+
+#guest-edit-window form .header .cell.column-network,
+#guest-edit-window form .task .cell.column-network,
+#guest-edit-window form .body .cell.column-network {
+ width: 18%;
+}
+
+#guest-edit-window form .header .cell.column-network > span,
+#guest-edit-window form .task .cell.column-network > span,
+#guest-edit-window form .body .cell.column-network > span {
+ width: 100%;
+ display: inline-block;
+ text-overflow: ellipsis;
+ overflow: hidden;
+}
+
+#guest-edit-window form .header .cell.column-network .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn),
+#guest-edit-window form .task .cell.column-network .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn),
+#guest-edit-window form .body .cell.column-network .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
+ width: 180px;
+}
+
+#guest-edit-window form .header .cell.column-type,
+#guest-edit-window form .task .cell.column-type,
+#guest-edit-window form .body .cell.column-type {
+ width: 11.35%;
+}
+
+#guest-edit-window form .header .cell.column-mac,
+#guest-edit-window form .task .cell.column-mac,
+#guest-edit-window form .body .cell.column-mac {
+ width: 14.5%;
+}
+
+#guest-edit-window form .header .cell.column-ip,
+#guest-edit-window form .task .cell.column-ip,
+#guest-edit-window form .body .cell.column-ip {
+ width: 31%;
+}
+
+#guest-edit-window form .header .cell.column-sel,
+#guest-edit-window form .task .cell.column-sel,
+#guest-edit-window form .body .cell.column-sel {
+ width: 1.77%;
+}
+
+#guest-edit-window form .header .cell.column-snapshot-name,
+#guest-edit-window form .task .cell.column-snapshot-name,
+#guest-edit-window form .body .cell.column-snapshot-name {
+ width: 58%;
+}
+
+#guest-edit-window form .header .cell.column-snapshot-created,
+#guest-edit-window form .task .cell.column-snapshot-created,
+#guest-edit-window form .body .cell.column-snapshot-created {
+ width: 16.5%;
+}
+
+#guest-edit-window form .header .cell.column-pci-status,
+#guest-edit-window form .task .cell.column-pci-status,
+#guest-edit-window form .body .cell.column-pci-status {
+ width: 3.7%;
+}
+
+#guest-edit-window form .header .cell.column-pci-status .fa,
+#guest-edit-window form .task .cell.column-pci-status .fa,
+#guest-edit-window form .body .cell.column-pci-status .fa {
+ color: #8cc63f;
+ font-size: 24px;
+}
+
+#guest-edit-window form .header .cell.column-pci-name,
+#guest-edit-window form .task .cell.column-pci-name,
+#guest-edit-window form .body .cell.column-pci-name {
+ width: 21%;
+}
+
+#guest-edit-window form .header .cell.column-product,
+#guest-edit-window form .task .cell.column-product,
+#guest-edit-window form .body .cell.column-product {
+ width: 45%;
+}
+
+#guest-edit-window form .header .cell.column-vendor,
+#guest-edit-window form .task .cell.column-vendor,
+#guest-edit-window form .body .cell.column-vendor {
+ width: 24.1%;
+}
+
+#guest-edit-window form .header {
+ background: #fff;
+ display: block;
+ border-bottom: 1px solid #eee;
+ overflow: hidden;
+ clear: both;
+}
+
+#guest-edit-window form .header > span {
+ padding: 6px 2px;
+ display: inline-block;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: bottom;
+ border-bottom: none;
+ border-top: 0;
+ line-height: 1.42857;
+}
+
+#guest-edit-window form .header > span.column-actions {
+ height: 36px;
+}
+
+#guest-edit-window form .body {
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 471px;
+}
+
+#guest-edit-window form .body .item,
+#guest-edit-window form .task .item {
+ border-top: 1px solid #eee;
+ height: 53px;
+}
+
+#guest-edit-window form .body .item:first-child,
+#guest-edit-window form .task .item:first-child {
+ border-top: 0;
+}
+
+#guest-edit-window form .body .item:nth-child(even),
+#guest-edit-window form .task .item:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#guest-edit-window form .body .item:nth-child(odd),
+#guest-edit-window form .task .item:nth-child(odd) {
+ background-color: #fff;
+}
+
+#guest-edit-window form .body .item > span,
+#guest-edit-window form .task .item > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+#guest-edit-window form .body .item > span input[type="text"],
+#guest-edit-window form .task .item > span input[type="text"] {
+ height: 40px;
+}
+
+#guest-edit-window form .body .item > span input[readonly],
+#guest-edit-window form .body .item > span input[readonly]:hover,
+#guest-edit-window form .body .item > span input[readonly]:focus,
+#guest-edit-window form .body .item > span input[readonly]:active,
+#guest-edit-window form .task .item > span input[readonly],
+#guest-edit-window form .task .item > span input[readonly]:hover,
+#guest-edit-window form .task .item > span input[readonly]:focus,
+#guest-edit-window form .task .item > span input[readonly]:active {
+ background-color: transparent !important;
+ border-color: transparent !important;
+ box-shadow: none !important;
+ border-radius: 0 !important;
+ text-overflow: ellipsis;
+ padding-right: 0 !important;
+ padding-left: 0 !important;
+ width: 100%;
+}
+
+.guest-edit-snapshot .hide,
+.guest-edit-interface .hide {
+ display: none !important;
+}
+
+.guest-edit-pci .filter {
+ height: 40px;
+ overflow: visible;
+ clear: both;
+}
+
+.guest-edit-pci .pull-right .bootstrap-select:not([class*=col-]):not([class*=form-control]):not(.input-group-btn) {
+ width: 133px;
+}
+
+.guest-edit-pci .filter input[type="text"].form-control {
+ width: 460px;
+ height: 40px;
+ float: right;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+}
+
+.guest-edit-pci .filter .bootstrap-select.btn-group .btn .caret {
+ border-left: 0;
+}
+
+.guest-edit-pci .filter button.btn.dropdown-toggle.form-control.selectpicker.btn-default {
+ border-top-right-radius: 0 !important;
+ border-bottom-right-radius: 0 !important;
+ background: #fcfcfc;
+ border-right: 0;
+}
+
+.guest-edit-pci .body {
+ overflow-y: auto;
+ overflow-x: hidden;
+ height: 442px !important;
+}
+
+.guest-edit-pci .body .item.disabled input[type="text"].form-control {
+ color: #999;
+}
+
+.guest-edit-pci .body .item.disabled span.column-pci-status i {
+ display: none;
+}
+
+.guest-edit-permission .pam {
+ height: 540px;
+}
+
+.guest-edit-permission .pam .column {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.guest-edit-permission .pam .v-center {
+ min-height: 532px;
+ display: flex;
+ justify-content: center;
+ flex-flow: column wrap;
+}
+
+.guest-edit-permission .pam .center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.guest-edit-permission .pam .center-block + .center-block {
+ margin-top: 5px;
+}
+
+.guest-edit-permission .pam .title {
+ font-size: 13pt;
+}
+
+.guest-edit-permission .pam .body {
+ margin-top: 4px;
+ border-radius: 3px;
+ border: 1px solid #eee;
+ height: 460px !important;
+}
+
+.guest-edit-permission .pam .body .head .item {
+ display: block;
+ padding: 6px 2px;
+ margin-bottom: 5px;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: bottom;
+ line-height: 1.42857;
+ height: auto !important;
+ background: #fff;
+ border-top: 0;
+ border-bottom: 1px solid #eee;
+ cursor: default;
+}
+
+.guest-edit-permission .pam .body > .column-user .item,
+.guest-edit-permission .pam .body > .column-group .item {
+ height: auto !important;
+ margin-bottom: 0;
+ margin-left: 5px;
+}
+
+.guest-edit-permission .pam .body > .column-group .item {
+ margin-right: 5px;
+}
+
+.guest-edit-permission .pam .column-user label,
+.guest-edit-permission .pam .column-group label {
+ cursor: pointer;
+ margin-bottom: 0;
+ margin-left: 5px;
+ width: 160px;
+ height: 24px;
+ line-height: 22px;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ vertical-align: middle;
+}
+
+.guest-edit-permission .pam .body > .column .item {
+ background-color: #fff !important;
+ border: 1px solid #eee !important;
+ margin-bottom: 3px;
+ display: block;
+ padding: .2em .6em .3em;
+ font-weight: 700;
+ line-height: 1;
+ text-align: left;
+ white-space: nowrap;
+ vertical-align: middle;
+ border-radius: .25em;
+ overflow: hidden;
+}
+
+.guest-edit-permission .pam .body > .column .item:hover {
+ color: #444 !important;
+ background-color: #e6e6e6 !important;
+ border-color: #adadad !important;
+}
+
+.guest-edit-permission .pam .body > .column .item:hover label {
+ color: #444 !important;
+}
+
+.guest-edit-permission .pam .body > .column .item.item-picked {
+ color: #fff !important;
+ background-color: #3a393b !important;
+ border-color: #1b1b1c !important;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+.guest-edit-permission .pam .body > .column .item.item-picked label {
+ color: #fff !important;
+}
+
+.guest-edit-permission .hide {
+ display: none;
+}
+
+#form-guest-edit-permission .ldap .body .item {
+ margin: 8px 0;
+}
+
+#form-guest-edit-permission .ldap .cell {
+ width: 250px;
+}
+
+#form-guest-edit-permission .ldap .action-area {
+ float: right;
+ line-height: 24px;
+}
+
+#form-guest-edit-permission .ldap .header button {
+ margin-bottom: 1px;
+}
+
+#form-guest-edit-permission .ldap .checked {
+ border-color: red;
+ border-style: solid;
+ border-width: 1px;
+}
+
+#form-guest-edit-permission .ldap .checked.hide {
+ display: none;
+}
+
+#form-guest-storage-add .form-section .field {
+ overflow: visible;
+}
+
+/* Add Template Modal Window */
+.templates-modal .modal-dialog {
+ width: 1100px;
+}
+
+.templates-modal .page-list {
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ overflow: hidden;
+}
+
+.templates-modal .page {
+ position: absolute;
+ left: 100%;
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ padding: 10px 30px;
+}
+
+#template-edit-window .tab-content .tab-pane {
+ position: relative;
+}
+
+#template-edit-window form {
+ margin: 15px 0 0;
+}
+
+#template-edit-window .hide {
+ display: none;
+}
+
+#template-edit-window .form-template-inline-wrapper {
+ display: inline-block;
+ vertical-align: top;
+}
+
+#template-edit-window .template-edit-wrapper-label {
+ vertical-align: top;
+ min-width: 100px;
+ height: 35px;
+ line-height: 35px;
+ margin: 7px 0 8px;
+}
+
+#template-edit-window .template-edit-wrapper-controls {
+ vertical-align: top;
+ width: 400px;
+ vertical-align: top;
+ min-width: 100px;
+ height: 35px;
+ line-height: 35px;
+ margin: 7px 0 8px;
+}
+
+#template-edit-window .template-tab-header {
+ background: #fff;
+ display: block;
+ border-bottom: 1px solid #eee;
+}
+
+#template-edit-window .template-tab-header > span {
+ padding: 6px 2px;
+ display: inline-block;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 400;
+ font-size: 12.5pt;
+ vertical-align: baseline;
+ border-bottom: none;
+ border-top: 0;
+ line-height: 42px;
+ height: 42px;
+}
+
+#template-edit-window .template-tab-body .item {
+ border-top: 1px solid #eee;
+ height: 53px;
+}
+
+#template-edit-window .template-tab-body .item:first-child {
+ border-top: 0;
+}
+
+#template-edit-window .template-tab-body .item:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#template-edit-window .template-tab-body .item:nth-child(odd) {
+ background-color: #fff;
+}
+
+#template-edit-window .template-tab-body .item > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: middle;
+}
+
+#template-edit-window .template-tab-body .item > span input[type="text"].form-control {
+ height: 40px;
+}
+
+#template-edit-window .manual {
+ margin-top: 5px;
+ margin-bottom: 10px;
+}
+
+#template-edit-window .topology {
+ margin: 0 24px;
+}
+
+#template-edit-window .topology .form-inline {
+ margin-bottom: 10px;
+}
+
+#template-edit-window .template-storage-cell.storage-pool {
+ width: 220px !important;
+}
+
+#template-edit-window .template-storage-cell.type {
+ width: 100px;
+}
+
+#template-edit-window .template-storage-cell.disk {
+ width: 100px;
+}
+
+#template-edit-window .template-storage-cell.format {
+ width: 320px;
+}
+
+#template-edit-window .template-interface-cell.network {
+ width: 220px;
+}
+
+#template-edit-window .template-interface-cell.type {
+ width: 250px;
+}
+
+#template-add-window .modal-body {
+ margin: 0;
+ padding: 0;
+}
+
+#template-add-window .modal-footer {
+ margin-top: 0;
+}
+
+#template-add-window .modal-footer .btn + .btn {
+ margin-left: 0;
+}
+
+#template-add-window .modal-footer .btn {
+ margin-right: 5px;
+}
+
+#template-add-window .template-modal-container {
+ padding: 10px 30px;
+ position: relative;
+}
+
+#template-add-window .template-pager {
+ background: #eee;
+ width: 1082px;
+ height: 689px;
+ position: relative;
+ overflow: hidden;
+}
+
+#template-add-window .template-pager-container {
+ position: absolute;
+ height: 664px;
+ width: 2164px;
+ left: 0;
+ transition: left .2s ease-in-out;
+}
+
+#template-add-window.modal-content p {
+ margin: 0;
+}
+
+#template-add-window.modal-content h5 {
+ font-size: 13pt;
+ font-weight: 400;
+ margin-top: 0;
+}
+
+#template-add-window.modal-content label {
+ font-size: 16px;
+ font-weight: 400;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+}
+
+#template-add-window.modal-content button#iso-more,
+#template-add-window.modal-content button#iso-more-loading {
+ margin-bottom: 17px;
+ clear: both;
+}
+
+#template-add-window.modal-content div#iso-remote-box {
+ left: 1082px;
+}
+
+#template-add-window.modal-content div#iso-local-box {
+ left: 0;
+}
+
+/* VM List View classes*/
+#templates-root-container .wok-vm-list {
+ display: block;
+ width: 100%;
+ list-style-type: none;
+ margin: 0;
+ padding-left: 0;
+ background: #fff;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-header {
+ border-bottom: 1px solid #e3e3e3;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-header > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: bottom;
+ height: 36px;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-weight: 300;
+ font-size: 12.5pt;
+ line-height: 1.42857;
+ border-bottom: none;
+ border-top: 0;
+ background-color: #fff;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body {
+ clear: both;
+ border-top: 1px solid #eee;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body:first-child {
+ border-top: 0;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body > span {
+ padding: 6px 2px;
+ display: inline-block;
+ vertical-align: top;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 12.5pt;
+ line-height: 2.42857;
+ font-weight: 400;
+}
+
+#templates-root-container .wok-vm-list .wok-vm-body .column-type {
+ padding-left: 40px !important;
+}
+
+#templates-root-container .wok-vm-list .ul-body {
+ display: block;
+ width: 100%;
+ clear: both;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+#templates-root-container .wok-vm-list .ul-body > li:nth-child(even) {
+ background-color: #fcfcfc;
+}
+
+#templates-root-container .wok-vm-list .ul-body > li:nth-child(odd) {
+ background-color: #fff;
+}
+
+#templates-root-container .wok-vm-list .column-name {
+ width: 17.4900%;
+ font-weight: bold;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+}
+
+#templates-root-container .wok-vm-list .column-type {
+ width: 14.2435%;
+ font-weight: bold;
+}
+
+#templates-root-container .wok-vm-list .column-version {
+ width: 14.2435%;
+ font-weight: bold;
+}
+
+#templates-root-container .wok-vm-list .column-processors {
+ width: 12.8413%;
+}
+
+#templates-root-container .wok-vm-list .column-memory {
+ width: 7.3800%;
+}
+
+#templates-root-container .wok-vm-list .column-action {
+ width: 33.8000%;
+}
+
+#templates-root-container .wok-vm-list .item-hidden {
+ display: none !important;
+}
+
+#templates-root-container .wok-vm-list .distro-icon {
+ background-color: transparent;
+ background-size: 27px 27px;
+ background-repeat: no-repeat;
+ background-position: 8px 50%;
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#templates-root-container .wok-vm-list .distro-icon.icon-unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+#templates-root-container .wok-vm-gallery {
+ display: block;
+ width: 100%;
+ list-style-type: none;
+ margin: 0;
+ padding-left: 5px;
+}
+
+#templates-root-container .wok-vm-gallery .wok-vm-header {
+ display: none;
+}
+
+#templates-root-container .wok-vm-gallery .wok-vm-body {
+ padding: 0 20px 0 20px;
+ width: 240px;
+ display: inline-block;
+ border: 1px solid #e3e3e3;
+ margin-right: 20px;
+}
+
+#templates-root-container .wok-vm-gallery .wok-vm-body > span {
+ display: inline-block;
+ width: 100%;
+ font-family: "Open Sans", Helvetica, Arial, "Lucida Grande", sans-serif;
+ font-size: 12.5pt;
+ line-height: 1.42857;
+ font-weight: 400;
+}
+
+#templates-root-container .wok-vm-gallery .ul-body {
+ display: inline-block;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+
+#templates-root-container .wok-vm-gallery .column-name {
+ line-height: 2.5 !important;
+ font-size: 15.3pt !important;
+ font-weight: 500 !important;
+ text-overflow: ellipsis !important;
+ overflow: hidden !important;
+ padding-right: 35px !important;
+}
+
+#templates-root-container .wok-vm-gallery .item-hidden.column-type, #templates-root-container .wok-vm-gallery .item-hidden.column-version, #templates-root-container .wok-vm-gallery .item-hidden.column-processors {
+ padding-bottom: 11px;
+}
+
+#templates-root-container .wok-vm-gallery .item-hidden.column-memory {
+ padding-bottom: 38px;
+}
+
+#templates-root-container .wok-vm-gallery .font-bold {
+ font-weight: bold !important;
+}
+
+#templates-root-container .wok-vm-gallery .pull-right {
+ float: none !important;
+ padding-bottom: 22px;
+}
+
+#templates-root-container .wok-vm-gallery .dropdown-menu {
+ width: 100%;
+}
+
+#templates-root-container .wok-vm-gallery .menu-flat {
+ width: 239px;
+ margin-left: -20px;
+}
+
+#templates-root-container .wok-vm-gallery .btn {
+ width: 100%;
+ text-align: left;
+ padding-left: 42px;
+ border-radius: 0;
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon {
+ background-color: transparent;
+ background-size: 32px 32px;
+ background-repeat: no-repeat;
+ background-position: 100% 50%;
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-centos {
+ background-image: url("/images/theme-default/icon-centos.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-debian {
+ background-image: url("/images/theme-default/icon-debian.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-fedora {
+ background-image: url("/images/theme-default/icon-fedora.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-opensuse {
+ background-image: url("/images/theme-default/icon-opensuse.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-ubuntu {
+ background-image: url("/images/theme-default/icon-ubuntu.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-gentoo {
+ background-image: url("/images/theme-default/icon-gentoo.png");
+}
+
+#templates-root-container .wok-vm-gallery .name-distro-icon.icon-unknown {
+ background-image: url("/images/theme-default/icon-unknown.png");
+}
+
+.network-config input.invalid-field[type="text"] {
+ border-color: #FF4444;
+}
+
+.network-config input.invalid-field[type="text"][disabled] {
+ border-color: #666666;
+}
+
+#add-network-window #vlan-enabled {
+ padding-left: 26px;
+}
+
+#add-network-window #vlan-enabled label, #add-network-window #vlan-enabled input[type="text"] {
+ display: block;
+}
+
+#network-root-container .wok-nw-loading-icon {
+ background: transparent url("/images/theme-default/spin5.svg") no-repeat 50% 50%;
+ -webkit-animation: spin 3s infinite linear;
+ -o-animation: spin 3s infinite linear;
+ animation: spin 3s infinite linear;
+ height: 16px;
+ width: 16px;
+ background-size: 100%;
+ display: block;
+ position: relative;
+ top: 12px;
+ left: 50%;
+ margin-left: -8px;
+}
+
+#network-root-container .up .wok-nw-loading-icon,
+#network-root-container .down .wok-nw-loading-icon {
+ display: none;
+}
+
+#network-root-container .wok-datagrid-body span > .fa {
+ font-size: 22px;
+ width: 20px;
+ height: 20px;
+ position: relative;
+}
+
+#network-root-container .wok-datagrid-body .up .fa {
+ color: #a8d46f;
+}
+
+#network-root-container .wok-datagrid-body .loading > .fa,
+#network-root-container .wok-datagrid-body .down .fa {
+ display: none;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-state,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ width: 2.92207%;
+ text-align: center;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-name,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-name {
+ width: 19.2207%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-type,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-type {
+ width: 11.3896%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-interface,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-interface {
+ width: 10.3896%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-space,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-space {
+ width: 30%;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-header > span.column-action,
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-action {
+ width: 25.909%;
+ text-align: right;
+}
+
+#network-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ height: 53px;
+ vertical-align: middle;
+}
+
+#storage-root-container .wok-datagrid-body span > .fa {
+ font-size: 22px;
+ width: 20px;
+ height: 20px;
+ position: relative;
+}
+
+#storage-root-container .wok-datagrid-body .handle {
+ user-select: none;
+ position: relative;
+}
+
+#storage-root-container .wok-datagrid-body .active .handle {
+ cursor: pointer;
+}
+
+#storage-root-container .wok-datagrid-body .active .fa-power-off {
+ color: #a8d46f;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .handle {
+ cursor: default;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .fa-power-off {
+ display: none;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-high {
+ background-image: url("/images/theme-default/high_disabled.png") !important;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-med {
+ background-image: url("/images/theme-default/med_disabled.png") !important;
+}
+
+#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-low {
+ background-image: url("/images/theme-default/low_disabled.png") !important;
+}
+
+#storage-root-container .volumes {
+ width: 100%;
+ background: #ddd;
+ display: none;
+}
+
+#storage-root-container .volumes > .footer {
+ z-index: 100;
+}
+
+#storage-root-container .volumes .volumeslist {
+ padding: 11px;
+ max-height: 285px;
+ min-height: 136px;
+ overflow: auto;
+}
+
+#storage-root-container .volumes .volume-box {
+ background: #fff;
+ padding: 4px 20px;
+ margin: 11px;
+ display: inline-block;
+ width: 409px;
+ height: 110px;
+}
+
+#storage-root-container .volumes .volume-title {
+ height: 46px;
+ width: 100%;
+ border-bottom: 1px solid #ccc;
+ position: relative;
+}
+
+#storage-root-container .volumes .volume-name {
+ font-size: 15pt;
+ font-weight: 300;
+ width: 274px;
+ line-height: 46px;
+ display: inline-block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+#storage-root-container .volumes .volume-utilization {
+ vertical-align: top;
+ text-align: right;
+ display: inline-block;
+ width: 90px;
+ height: 46px;
+ line-height: 46px;
+}
+
+#storage-root-container .volumes .volume-icon {
+ display: inline-block;
+ width: 27px;
+ height: 46px;
+ line-height: 46px;
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-color: transparent;
+}
+
+#storage-root-container .volumes .volume-usage {
+ vertical-align: top;
+ font-size: 15pt;
+ font-weight: 400;
+ display: inline-block;
+ text-align: right;
+ line-height: 46px;
+ padding-left: 0;
+ margin-left: 5px;
+}
+
+#storage-root-container .volumes .volume-icon.icon-high {
+ background-image: url("/images/theme-default/high.png");
+}
+
+#storage-root-container .volumes .volume-icon.icon-med {
+ background-image: url("/images/theme-default/med.png");
+}
+
+#storage-root-container .volumes .volume-icon.icon-low {
+ background-image: url("/images/theme-default/low.png");
+}
+
+#storage-root-container .volumes .volume-progress {
+ position: absolute;
+ margin: 0;
+ width: 409px;
+ top: -4px;
+ left: -20px;
+}
+
+#storage-root-container .volumes .volume-progress .progress-bar-outer {
+ background: transparent;
+ height: 6px;
+ overflow: hidden;
+ width: 100%;
+}
+
+#storage-root-container .volumes .volume-progress .progress-bar-inner {
+ background: #8BC53E;
+ height: 100%;
+ width: 100%;
+}
+
+#storage-root-container .volumes .volume-data {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+#storage-root-container .volumes .volume-data > li {
+ display: inline-block;
+ width: 89px;
+}
+
+#storage-root-container .volumes .volume-data > li span {
+ display: block;
+ font-size: 12pt;
+}
+
+#storage-root-container .volumes .volume-data > li span.value {
+ font-weight: 600;
+}
+
+#storage-root-container .volumes .volume-data > li span.key {
+ font-weight: 300;
+}
+
+#storage-root-container .volumes .pool-empty {
+ text-align: center;
+ line-height: 136px;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row[data-stat="inactive"] {
+ color: #999 !important;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-state,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ width: 3.0519%;
+ text-align: center;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-name,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-name {
+ width: 12.7272%;
+ text-overflow: ellipsis;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-type,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-type {
+ width: 11.6883%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-location,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-location {
+ width: 21.4285%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage {
+ width: 9.41558%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon {
+ padding-left: 35px;
+ display: inline-block;
+ background-repeat: no-repeat;
+ background-position: 0 50%;
+ background-color: transparent;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon.icon-high,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon.icon-high {
+ background-image: url("/images/theme-default/high.png");
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon.icon-med,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon.icon-med {
+ background-image: url("/images/theme-default/med.png");
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-usage .usage-icon.icon-low,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-usage .usage-icon.icon-low {
+ background-image: url("/images/theme-default/low.png");
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-capacity,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-capacity {
+ width: 8.701298%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-allocated,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-allocated {
+ width: 9.35064%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-disks,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks {
+ text-align: center;
+ width: 2.9870%;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-action,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-action {
+ width: 20.64%;
+ text-align: right;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-state {
+ height: 53px;
+ vertical-align: middle;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks {
+ height: 53px;
+ vertical-align: middle;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-down,
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-up {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-down:before {
+ content: "\f078";
+}
+
+#storage-root-container .wok-datagrid > .wok-datagrid-body > .wok-datagrid-row > span.column-disks .arrow-up:before {
+ content: "\f077";
+}
+
+#storage-root-container #logicalPoolExtend .modal-body {
+ max-height: 438px;
+}
+
+#storage-root-container #logicalPoolExtend .modal-body p span {
+ vertical-align: middle !important;
+}
+
+#storage-root-container #logicalPoolExtend form,
+.storage-modal form {
+ margin: 0 !important;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition,
+.storage-modal .host-partition {
+ overflow-y: auto;
+ overflow-x: hidden;
+ max-height: 430px;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label,
+.storage-modal .host-partition label {
+ display: block;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label > div,
+.storage-modal .host-partition label > div {
+ vertical-align: top;
+ display: inline-block;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label span.device-name,
+#storage-root-container #logicalPoolExtend .host-partition label span.device-path,
+.storage-modal .host-partition label span.device-name,
+.storage-modal .host-partition label span.device-path {
+ display: block;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label span.device-name,
+.storage-modal .host-partition label span.device-name {
+ font-weight: 600;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label span.device-path,
+.storage-modal .host-partition label span.device-path {
+ font-weight: 400;
+ word-wrap: break-word;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label > div {
+ width: 388px;
+}
+
+#storage-root-container #logicalPoolExtend .host-partition label > div span.device-path {
+ width: 388px;
+}
+
+.storage-modal .filter-select.popable .popover,
+.storage-modal .storage-target-input .popover,
+.storage-modal .storage-add-input .popover {
+ max-width: 100% !important;
+ width: 100%;
+ top: 34px;
+ left: -2px;
+ border: 0 !important;
+ background: 0 !important;
+ box-shadow: none !important;
+}
+
+.storage-modal .filter-select.popable .popover ul,
+.storage-modal .storage-target-input .popover ul,
+.storage-modal .storage-add-input .popover ul {
+ z-index: 1000;
+ padding: 5px 0;
+ margin: 2px 2px 0;
+ list-style: none;
+ font-size: 14px;
+ text-align: left;
+ background-color: #fcfcfc;
+ border: 1px solid #ccc;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ -webkit-box-shadow: compact(0 6px 12px rgba(0, 0, 0, 0.175));
+ -moz-box-shadow: compact(0 6px 12px rgba(0, 0, 0, 0.175));
+ box-shadow: compact(0 6px 12px rgba(0, 0, 0, 0.175));
+ background-clip: padding-box;
+}
+
+.storage-modal .filter-select.popable .popover ul li,
+.storage-modal .storage-target-input .popover ul li,
+.storage-modal .storage-add-input .popover ul li {
+ cursor: pointer;
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857;
+ color: #222;
+ white-space: nowrap;
+}
+
+.storage-modal .filter-select.popable .popover ul li:hover, .storage-modal .filter-select.popable .popover ul li:focus,
+.storage-modal .storage-target-input .popover ul li:hover,
+.storage-modal .storage-target-input .popover ul li:focus,
+.storage-modal .storage-add-input .popover ul li:hover,
+.storage-modal .storage-add-input .popover ul li:focus {
+ text-decoration: none;
+ color: #151515;
+ background-color: #f5f5f5;
+}
+
+.storage-modal #nfspathId[style],
+.storage-modal #nfsserverId[style] {
+ width: 100% !important;
+}
+
+.storage-modal .iscsi-section .form-group > .col-md-12 > .col-md-10 + .col-md-2 {
+ padding-left: 5px;
+}
+
+.storage-modal .iscsi-section .form-group > .col-md-12 > .col-md-10 {
+ padding-right: 5px;
+}
+
+.storage-modal .authenticationfield > div > .col-md-6 + .col-md-6 {
+ padding-left: 5px;
+}
+
+.storage-modal .authenticationfield > div > .col-md-6 {
+ padding-right: 5px;
+}
+
+.storage-modal .host-partition label > div {
+ width: 688px;
+}
+
+.storage-modal .host-partition label > div span.device-path {
+ width: 688px;
+}
--
2.5.0
1
0