[PATCH] [Kimchi] Issue #1061: For s390x, in edit template add storage path, even after changing value in path textbox its border still remains red.
by archus@linux.vnet.ibm.com
From: Archana Singh <archus(a)linux.vnet.ibm.com>
Currently for storage path textbox, on change event only the check
for value is done.Due to which only after clicking outside of textbox
the value is validated. This fix in addition to chnage added keyup
and input events.
Signed-off-by: Archana Singh <archus(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.template_edit_main.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/js/src/kimchi.template_edit_main.js b/ui/js/src/kimchi.template_edit_main.js
index 31cb8d9..7428ae6 100644
--- a/ui/js/src/kimchi.template_edit_main.js
+++ b/ui/js/src/kimchi.template_edit_main.js
@@ -338,7 +338,7 @@ kimchi.template_edit_main = function() {
}
});
- $(storageRow + ' input.storage-path').on('change',function(){
+ $(storageRow + ' input.storage-path').on('change input keyup',function(){
if($(storageRow + ' input.storage-path').val()){
$(storageRow + ' span.storage-path').removeClass('has-error');
}else{
--
2.7.4
8 years, 2 months
[PATCH] [Kimchi] Issue #1059: Not able to save corrected img path after editing img based template which has incorrect img path due to the img is not available.
by archus@linux.vnet.ibm.com
From: Archana Singh <archus(a)linux.vnet.ibm.com>
The error was due to invalid additional parameter "vm-image"
passed to template update API.
The vm-image is already passed as "base" paramter in "disks" to update
the vm-image in the template.
So removed "vm-image" parameter from UI and just passed the vm-image
as "base" parameter of "disks" to template update API.
Signed-off-by: Archana Singh <archus(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.template_edit_main.js | 4 ----
1 file changed, 4 deletions(-)
diff --git a/ui/js/src/kimchi.template_edit_main.js b/ui/js/src/kimchi.template_edit_main.js
index 31cb8d9..78f25e2 100644
--- a/ui/js/src/kimchi.template_edit_main.js
+++ b/ui/js/src/kimchi.template_edit_main.js
@@ -809,10 +809,6 @@ kimchi.template_edit_main = function() {
data['cdrom'] = $('.tab-content input[name="cdrom"]').val();
}
- if ($('.tab-content .has-changes > input[name="vm-image"]').length) {
- data['vm-image'] = $('.tab-content input[name="vm-image"]').val();
- }
-
if ($("input:checkbox", "#form-template-processor").prop("checked")) {
//Check if maxCpu field has a value
data['cpu_info'] = {
--
2.7.4
8 years, 2 months
[PATCH] [Kimchi 0/2] Fix WOK issues #173 and #174
by Aline Manera
This patch set depends on Wok patch to work as expected.
- [PATCH] [Wok 00/10] Fix issues #173 and #174
Aline Manera (2):
Wok issue #174: Let Wok create the whole navigation bar
Wok issue #173: Set tab color on tab-ext.xml and update SCSS files
ui/config/tab-ext.xml | 2 +-
ui/css/src/kimchi.scss | 31 +++++++++++++++++++++----------
ui/css/src/modules/_edit-guests.scss | 2 +-
ui/css/src/modules/_guests.scss | 6 +++---
ui/css/src/modules/_iso-list.scss | 2 +-
ui/css/src/modules/_storage.scss | 4 ++--
ui/js/src/kimchi.guest_main.js | 6 +++++-
ui/js/src/kimchi.network.js | 6 +++++-
ui/js/src/kimchi.storage_main.js | 6 +++++-
ui/js/src/kimchi.template_main.js | 6 +++++-
ui/pages/i18n.json.tmpl | 4 ++++
ui/pages/tabs/guests.html.tmpl | 19 -------------------
ui/pages/tabs/network.html.tmpl | 19 -------------------
ui/pages/tabs/storage.html.tmpl | 19 -------------------
ui/pages/tabs/templates.html.tmpl | 19 -------------------
15 files changed, 53 insertions(+), 98 deletions(-)
--
2.7.4
8 years, 2 months
[PATCH] [Wok 00/10] Fix issues #173 and #174
by Aline Manera
This patch set depends on {Kimchi,Ginger,Gingerbase} patches to work as expected.
Aline Manera (10):
fix
Bug fix #174: Automatic create navigation toolbar when loading plugin
Bug fix #173: Get color tab from tab-ext.xml file
Bug fix #173: Get plugin color to set user log data
Update Wok variables names for better meaning
Remove unused SCSS variables
Align _wok-variables.scss content for visual matters
Remove non-Wok strings from Wok source code
Remove build warning message from Wok
Remove Ginger Base specific CSS from Wok source code
ui/config/tab-ext.xml | 2 +-
ui/css/bootstrap.custom.css | 686 +++++++++------------------------
ui/css/datatables.bootstrap.css | 10 +-
ui/css/settings.css | 36 --
ui/css/src/modules/_buttons.scss | 4 +-
ui/css/src/modules/_menu-flat.scss | 2 +-
ui/css/src/modules/_modal-flat.scss | 4 +-
ui/css/src/modules/_navbar-flat.scss | 15 -
ui/css/src/modules/_toolbar.scss | 33 --
ui/css/src/modules/_wok-variables.scss | 132 +++----
ui/css/src/settings.scss | 20 +-
ui/css/theme-default/window.css | 5 -
ui/css/wok.css | 162 +-------
ui/js/src/wok.main.js | 50 ++-
ui/js/wok.bootgrid.js | 2 +-
ui/pages/i18n.json.tmpl | 2 -
ui/pages/tabs/settings.html.tmpl | 5 -
ui/pages/wok-ui.html.tmpl | 37 +-
18 files changed, 302 insertions(+), 905 deletions(-)
--
2.7.4
8 years, 2 months
[RFC] [Wok] Issue #139: Do not generate logrotate config file on the fly
by Ramon Medeiros
Propose:
Do not regenerate logrotate conf at startup of wok.
Questions:
1) The wok conf will be generated at make ? And then copied at make rpm?
2) The [logging] configuration at wok.conf will be removed? letting to
the user to change parameters?
3) This is the template for logrotate file
LOGROTATE_TEMPLATE = """
${log_dir}/*log {
daily
nomail
maxsize ${log_size}
rotate 10
nomissingok
compress
}
"""
which vales for log_dir and log_size we will use?
--
Ramon Nunes Medeiros
Kimchi Developer
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878
ramonn(a)br.ibm.com
8 years, 2 months
[PATCH] [WoK] Updating css files to latest UI libs versions
by dhbarboza82@gmail.com
From: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
This patch is applicable in the master branch of WoK.
Signed-off-by: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
---
ui/css/bootstrap.custom.css | 649 ++++++++++++----------------------------
ui/css/datatables.bootstrap.css | 10 +-
ui/css/settings.css | 12 +-
ui/css/wok.css | 83 ++---
4 files changed, 220 insertions(+), 534 deletions(-)
diff --git a/ui/css/bootstrap.custom.css b/ui/css/bootstrap.custom.css
index d4894f5..1b615a0 100644
--- a/ui/css/bootstrap.custom.css
+++ b/ui/css/bootstrap.custom.css
@@ -1,3 +1,4 @@
+@charset "UTF-8";
/*
* Project Wok
*
@@ -166,7 +167,8 @@ select {
}
button,
-html input[type="button"], input[type="reset"],
+html input[type="button"],
+input[type="reset"],
input[type="submit"] {
-webkit-appearance: button;
cursor: pointer;
@@ -349,8 +351,7 @@ a {
text-decoration: none;
}
-a:hover,
-a:focus {
+a:hover, a:focus {
color: #141314;
text-decoration: underline;
}
@@ -415,8 +416,7 @@ hr {
border: 0;
}
-.sr-only-focusable:active,
-.sr-only-focusable:focus {
+.sr-only-focusable:active, .sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
@@ -597,7 +597,7 @@ a.text-primary:focus {
a.text-success:hover,
a.text-success:focus {
- color: #525252;
+ color: #535353;
}
.text-info {
@@ -606,7 +606,7 @@ a.text-success:focus {
a.text-info:hover,
a.text-info:focus {
- color: #525252;
+ color: #535353;
}
.text-warning {
@@ -615,7 +615,7 @@ a.text-info:focus {
a.text-warning:hover,
a.text-warning:focus {
- color: #525252;
+ color: #535353;
}
.text-danger {
@@ -624,7 +624,7 @@ a.text-warning:focus {
a.text-danger:hover,
a.text-danger:focus {
- color: #525252;
+ color: #535353;
}
.bg-primary {
@@ -730,8 +730,7 @@ dd {
margin-left: 0;
}
-.dl-horizontal dd:before,
-.dl-horizontal dd:after {
+.dl-horizontal dd:before, .dl-horizontal dd:after {
content: " ";
display: table;
}
@@ -892,8 +891,7 @@ pre code {
padding-right: 0;
}
-.container:before,
-.container:after {
+.container:before, .container:after {
content: " ";
display: table;
}
@@ -929,8 +927,7 @@ pre code {
padding-right: 0;
}
-.container-fluid:before,
-.container-fluid:after {
+.container-fluid:before, .container-fluid:after {
content: " ";
display: table;
}
@@ -944,8 +941,7 @@ pre code {
margin-right: 0;
}
-.row:before,
-.row:after {
+.row:before, .row:after {
content: " ";
display: table;
}
@@ -2031,8 +2027,7 @@ output {
color: #999;
}
-.form-control[disabled],
-.form-control[readonly],
+.form-control[disabled], .form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eee;
opacity: 1;
@@ -2058,8 +2053,7 @@ input[type="search"] {
input[type="month"].form-control {
line-height: 34px;
}
- input[type="date"].input-sm,
- .input-group-sm > input[type="date"].form-control,
+ 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"],
@@ -2067,21 +2061,23 @@ input[type="search"] {
.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-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-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"] {
+ .input-group-sm
+ input[type="month"] {
line-height: 30px;
}
- input[type="date"].input-lg,
- .input-group-lg > input[type="date"].form-control,
+ 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"],
@@ -2089,17 +2085,20 @@ input[type="search"] {
.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-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-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"] {
+ .input-group-lg
+ input[type="month"] {
line-height: 46px;
}
}
@@ -2156,26 +2155,28 @@ input[type="search"] {
margin-left: 10px;
}
-input[type="radio"][disabled],
-input[type="radio"].disabled,
+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"] {
+fieldset[disabled]
+input[type="checkbox"] {
cursor: not-allowed;
}
.radio-inline.disabled,
fieldset[disabled] .radio-inline,
.checkbox-inline.disabled,
-fieldset[disabled] .checkbox-inline {
+fieldset[disabled]
+.checkbox-inline {
cursor: not-allowed;
}
.radio.disabled label,
fieldset[disabled] .radio label,
.checkbox.disabled label,
-fieldset[disabled] .checkbox label {
+fieldset[disabled]
+.checkbox label {
cursor: not-allowed;
}
@@ -2186,11 +2187,9 @@ fieldset[disabled] .checkbox label {
min-height: 34px;
}
-.form-control-static.input-lg,
-.input-group-lg > .form-control-static.form-control,
+.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-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;
@@ -2214,11 +2213,11 @@ select.input-sm, .input-group-sm > select.form-control,
line-height: 30px;
}
-textarea.input-sm,
-.input-group-sm > textarea.form-control,
+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,
+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;
@@ -2267,11 +2266,11 @@ select.input-lg, .input-group-lg > select.form-control,
line-height: 46px;
}
-textarea.input-lg,
-.input-group-lg > textarea.form-control,
+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,
+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;
@@ -2324,8 +2323,7 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
pointer-events: none;
}
-.input-lg + .form-control-feedback,
-.input-group-lg > .form-control + .form-control-feedback,
+.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,
@@ -2335,8 +2333,7 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
line-height: 46px;
}
-.input-sm + .form-control-feedback,
-.input-group-sm > .form-control + .form-control-feedback,
+.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,
@@ -2366,7 +2363,7 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
}
.has-success .form-control:focus {
- border-color: #525252;
+ 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;
}
@@ -2401,7 +2398,7 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
}
.has-warning .form-control:focus {
- border-color: #525252;
+ 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;
}
@@ -2436,7 +2433,7 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
}
.has-error .form-control:focus {
- border-color: #525252;
+ 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;
}
@@ -2536,8 +2533,7 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
margin-right: 0;
}
-.form-horizontal .form-group:before,
-.form-horizontal .form-group:after {
+.form-horizontal .form-group:before, .form-horizontal .form-group:after {
content: " ";
display: table;
}
@@ -2593,34 +2589,25 @@ select[multiple].input-lg, .input-group-lg > select[multiple].form-control,
user-select: none;
}
-.btn:focus,
-.btn.focus,
-.btn:active:focus,
-.btn:active.focus,
-.btn.active:focus,
-.btn.active.focus {
+.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 {
+.btn:hover, .btn:focus, .btn.focus {
color: #444;
text-decoration: none;
}
-.btn:active,
-.btn.active {
+.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],
+.btn.disabled, .btn[disabled],
fieldset[disabled] .btn {
cursor: not-allowed;
opacity: 0.65;
@@ -2640,8 +2627,7 @@ fieldset[disabled] a.btn {
border-color: #ccc;
}
-.btn-default:focus,
-.btn-default.focus {
+.btn-default:focus, .btn-default.focus {
color: #444;
background-color: #e6e6e6;
border-color: #8c8c8c;
@@ -2653,20 +2639,14 @@ fieldset[disabled] a.btn {
border-color: #adadad;
}
-.btn-default:active,
-.btn-default.active,
+.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,
+.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 {
@@ -2675,24 +2655,12 @@ fieldset[disabled] a.btn {
border-color: #8c8c8c;
}
-.btn-default:active,
-.btn-default.active,
+.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,
+.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,
@@ -2714,8 +2682,7 @@ fieldset[disabled] .btn-default.active {
border-color: #3a393b;
}
-.btn-primary:focus,
-.btn-primary.focus {
+.btn-primary:focus, .btn-primary.focus {
color: #fff;
background-color: #212021;
border-color: black;
@@ -2727,20 +2694,14 @@ fieldset[disabled] .btn-default.active {
border-color: #1b1b1c;
}
-.btn-primary:active,
-.btn-primary.active,
+.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,
+.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 {
@@ -2749,24 +2710,12 @@ fieldset[disabled] .btn-default.active {
border-color: black;
}
-.btn-primary:active,
-.btn-primary.active,
+.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,
+.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,
@@ -2788,8 +2737,7 @@ fieldset[disabled] .btn-primary.active {
border-color: #5cb85c;
}
-.btn-success:focus,
-.btn-success.focus {
+.btn-success:focus, .btn-success.focus {
color: #fff;
background-color: #449d44;
border-color: #2d672d;
@@ -2801,20 +2749,14 @@ fieldset[disabled] .btn-primary.active {
border-color: #419641;
}
-.btn-success:active,
-.btn-success.active,
+.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,
+.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 {
@@ -2823,24 +2765,12 @@ fieldset[disabled] .btn-primary.active {
border-color: #2d672d;
}
-.btn-success:active,
-.btn-success.active,
+.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,
+.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,
@@ -2862,8 +2792,7 @@ fieldset[disabled] .btn-success.active {
border-color: #5bc0de;
}
-.btn-info:focus,
-.btn-info.focus {
+.btn-info:focus, .btn-info.focus {
color: #fff;
background-color: #31b0d5;
border-color: #1f7e9a;
@@ -2875,20 +2804,14 @@ fieldset[disabled] .btn-success.active {
border-color: #2aabd2;
}
-.btn-info:active,
-.btn-info.active,
+.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,
+.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 {
@@ -2897,24 +2820,12 @@ fieldset[disabled] .btn-success.active {
border-color: #1f7e9a;
}
-.btn-info:active,
-.btn-info.active,
+.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,
+.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,
@@ -2936,8 +2847,7 @@ fieldset[disabled] .btn-info.active {
border-color: #f0ad4e;
}
-.btn-warning:focus,
-.btn-warning.focus {
+.btn-warning:focus, .btn-warning.focus {
color: #fff;
background-color: #ec971f;
border-color: #b06d0f;
@@ -2949,20 +2859,14 @@ fieldset[disabled] .btn-info.active {
border-color: #eb9316;
}
-.btn-warning:active,
-.btn-warning.active,
+.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,
+.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 {
@@ -2971,24 +2875,12 @@ fieldset[disabled] .btn-info.active {
border-color: #b06d0f;
}
-.btn-warning:active,
-.btn-warning.active,
+.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,
+.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,
@@ -3010,8 +2902,7 @@ fieldset[disabled] .btn-warning.active {
border-color: #d9534f;
}
-.btn-danger:focus,
-.btn-danger.focus {
+.btn-danger:focus, .btn-danger.focus {
color: #fff;
background-color: #c9302c;
border-color: #8b211e;
@@ -3023,20 +2914,14 @@ fieldset[disabled] .btn-warning.active {
border-color: #c12e2a;
}
-.btn-danger:active,
-.btn-danger.active,
+.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,
+.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 {
@@ -3045,24 +2930,12 @@ fieldset[disabled] .btn-warning.active {
border-color: #8b211e;
}
-.btn-danger:active,
-.btn-danger.active,
+.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,
+.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,
@@ -3084,32 +2957,24 @@ fieldset[disabled] .btn-danger.active {
border-radius: 0;
}
-.btn-link,
-.btn-link:active,
-.btn-link.active,
-.btn-link[disabled],
+.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 {
+.btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
border-color: transparent;
}
-.btn-link:hover,
-.btn-link:focus {
+.btn-link:hover, .btn-link:focus {
color: #141314;
text-decoration: underline;
background-color: transparent;
}
-.btn-link[disabled]:hover,
-.btn-link[disabled]:focus,
+.btn-link[disabled]:hover, .btn-link[disabled]:focus,
fieldset[disabled] .btn-link:hover,
fieldset[disabled] .btn-link:focus {
color: #999;
@@ -3256,30 +3121,24 @@ tbody.collapse.in {
white-space: nowrap;
}
-.dropdown-menu > li > a:hover,
-.dropdown-menu > li > a:focus {
+.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 {
+.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 {
+.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 {
+.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
@@ -3367,10 +3226,7 @@ tbody.collapse.in {
float: left;
}
-.btn-group > .btn:hover,
-.btn-group > .btn:focus,
-.btn-group > .btn:active,
-.btn-group > .btn.active,
+.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,
@@ -3389,8 +3245,7 @@ tbody.collapse.in {
margin-left: -5px;
}
-.btn-toolbar:before,
-.btn-toolbar:after {
+.btn-toolbar:before, .btn-toolbar:after {
content: " ";
display: table;
}
@@ -3496,8 +3351,7 @@ tbody.collapse.in {
max-width: 100%;
}
-.btn-group-vertical > .btn-group:before,
-.btn-group-vertical > .btn-group:after {
+.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {
content: " ";
display: table;
}
@@ -3631,14 +3485,16 @@ tbody.collapse.in {
border-radius: 3px;
}
-.input-group-addon.input-sm, .input-group-sm > .input-group-addon,
+.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-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;
@@ -3694,9 +3550,7 @@ tbody.collapse.in {
margin-left: -1px;
}
-.input-group-btn > .btn:hover,
-.input-group-btn > .btn:focus,
-.input-group-btn > .btn:active {
+.input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {
z-index: 2;
}
@@ -3717,8 +3571,7 @@ tbody.collapse.in {
list-style: none;
}
-.nav:before,
-.nav:after {
+.nav:before, .nav:after {
content: " ";
display: table;
}
@@ -3738,8 +3591,7 @@ tbody.collapse.in {
padding: 10px 15px;
}
-.nav > li > a:hover,
-.nav > li > a:focus {
+.nav > li > a:hover, .nav > li > a:focus {
text-decoration: none;
background-color: #fff;
}
@@ -3748,17 +3600,14 @@ tbody.collapse.in {
color: #999;
}
-.nav > li.disabled > a:hover,
-.nav > li.disabled > a:focus {
+.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 {
+.nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
background-color: #fff;
border-color: #3a393b;
}
@@ -3794,9 +3643,7 @@ tbody.collapse.in {
border-color: #fff #fff #ddd;
}
-.nav-tabs > li.active > a,
-.nav-tabs > li.active > a:hover,
-.nav-tabs > li.active > a:focus {
+.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;
@@ -3816,9 +3663,7 @@ tbody.collapse.in {
margin-left: 2px;
}
-.nav-pills > li.active > a,
-.nav-pills > li.active > a:hover,
-.nav-pills > li.active > a:focus {
+.nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {
color: #fff;
background-color: #3a393b;
}
@@ -3869,9 +3714,9 @@ tbody.collapse.in {
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 {
+.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;
}
@@ -3880,9 +3725,9 @@ tbody.collapse.in {
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 {
+ .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;
}
}
@@ -3908,8 +3753,7 @@ tbody.collapse.in {
border: 0;
}
-.navbar:before,
-.navbar:after {
+.navbar:before, .navbar:after {
content: " ";
display: table;
}
@@ -3924,8 +3768,7 @@ tbody.collapse.in {
}
}
-.navbar-header:before,
-.navbar-header:after {
+.navbar-header:before, .navbar-header:after {
content: " ";
display: table;
}
@@ -3949,8 +3792,7 @@ tbody.collapse.in {
-webkit-overflow-scrolling: touch;
}
-.navbar-collapse:before,
-.navbar-collapse:after {
+.navbar-collapse:before, .navbar-collapse:after {
content: " ";
display: table;
}
@@ -4069,8 +3911,7 @@ tbody.collapse.in {
user-select: none;
}
-.navbar-brand:hover,
-.navbar-brand:focus {
+.navbar-brand:hover, .navbar-brand:focus {
text-decoration: none;
}
@@ -4142,8 +3983,7 @@ tbody.collapse.in {
.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 {
+ .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {
background-image: none;
}
}
@@ -4330,8 +4170,7 @@ tbody.collapse.in {
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 > 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;
@@ -4425,8 +4264,7 @@ tbody.collapse.in {
color: #fff;
}
-.navbar-default .navbar-brand:hover,
-.navbar-default .navbar-brand:focus {
+.navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
color: #e6e6e6;
background-color: transparent;
}
@@ -4438,8 +4276,7 @@ tbody.collapse.in {
padding-right: 0;
}
-.navbar-default .container:before,
-.navbar-default .container:after {
+.navbar-default .container:before, .navbar-default .container:after {
content: " ";
display: table;
}
@@ -4500,108 +4337,79 @@ tbody.collapse.in {
}
}
-.navbar-default .navbar-nav > li > a:hover,
-.navbar-default .navbar-nav > li > a:focus {
+.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 {
+.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 {
+.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 {
+.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 {
+.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 {
+.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 {
+.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 {
+.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 {
+.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.wok,
-.navbar-default .navbar-nav > .active > a.wok:hover,
-.navbar-default .navbar-nav > .active > a.wok:focus {
+.navbar-default .navbar-nav > .active > a.wok, .navbar-default .navbar-nav > .active > a.wok:hover, .navbar-default .navbar-nav > .active > a.wok: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 {
+.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 {
+.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 {
+.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 > .active > a.wokTab,
-.navbar-default .navbar-nav > .active > a.wokTab:hover,
-.navbar-default .navbar-nav > .active > a.wokTab:focus {
+.navbar-default .navbar-nav > .active > a.wokTab, .navbar-default .navbar-nav > .active > a.wokTab:hover, .navbar-default .navbar-nav > .active > a.wokTab:focus {
height: 41px;
background-color: #930c0c !important;
}
-.navbar-default .navbar-nav > .active > a.wokSelected,
-.navbar-default .navbar-nav > .active > a.wokSelected:hover,
-.navbar-default .navbar-nav > .active > a.wokSelected:focus {
+.navbar-default .navbar-nav > .active > a.wokSelected, .navbar-default .navbar-nav > .active > a.wokSelected:hover, .navbar-default .navbar-nav > .active > a.wokSelected:focus {
height: 41px;
background-color: #d9182d !important;
}
@@ -4650,8 +4458,7 @@ tbody.collapse.in {
border-color: #ddd;
}
-.navbar-default .navbar-toggle:hover,
-.navbar-default .navbar-toggle:focus {
+.navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
background-color: #ddd;
}
@@ -4664,9 +4471,7 @@ tbody.collapse.in {
border-color: #3a393b;
}
-.navbar-default .navbar-nav > .open > a,
-.navbar-default .navbar-nav > .open > a:hover,
-.navbar-default .navbar-nav > .open > a:focus {
+.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;
}
@@ -4675,20 +4480,15 @@ tbody.collapse.in {
.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 {
+ .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 {
+ .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 {
+ .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;
}
@@ -4706,13 +4506,11 @@ tbody.collapse.in {
color: #fff;
}
-.navbar-default .btn-link:hover,
-.navbar-default .btn-link:focus {
+.navbar-default .btn-link:hover, .navbar-default .btn-link:focus {
color: #fff;
}
-.navbar-default .btn-link[disabled]:hover,
-.navbar-default .btn-link[disabled]:focus,
+.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;
@@ -4727,8 +4525,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
color: #fff;
}
-.navbar-inverse .navbar-brand:hover,
-.navbar-inverse .navbar-brand:focus {
+.navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {
color: #fff;
background-color: transparent;
}
@@ -4741,22 +4538,17 @@ fieldset[disabled] .navbar-default .btn-link:focus {
color: #fff;
}
-.navbar-inverse .navbar-nav > li > a:hover,
-.navbar-inverse .navbar-nav > li > a:focus {
+.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 {
+.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 {
+.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;
}
@@ -4765,8 +4557,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
border-color: #333;
}
-.navbar-inverse .navbar-toggle:hover,
-.navbar-inverse .navbar-toggle:focus {
+.navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
background-color: transparent;
}
@@ -4779,9 +4570,7 @@ fieldset[disabled] .navbar-default .btn-link:focus {
border-color: #101010;
}
-.navbar-inverse .navbar-nav > .open > a,
-.navbar-inverse .navbar-nav > .open > a:hover,
-.navbar-inverse .navbar-nav > .open > a:focus {
+.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;
}
@@ -4796,20 +4585,15 @@ fieldset[disabled] .navbar-default .btn-link:focus {
.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 {
+ .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 {
+ .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 {
+ .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;
}
@@ -4827,13 +4611,11 @@ fieldset[disabled] .navbar-default .btn-link:focus {
color: #fff;
}
-.navbar-inverse .btn-link:hover,
-.navbar-inverse .btn-link:focus {
+.navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {
color: #fff;
}
-.navbar-inverse .btn-link[disabled]:hover,
-.navbar-inverse .btn-link[disabled]:focus,
+.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;
@@ -4852,7 +4634,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
}
.breadcrumb > li + li:before {
- content: "/\\00a0";
+ content: "/ ";
padding: 0 5px;
color: #ccc;
}
@@ -4898,8 +4680,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
border-top-right-radius: 3px;
}
-.pagination > li > a:hover,
-.pagination > li > a:focus,
+.pagination > li > a:hover, .pagination > li > a:focus,
.pagination > li > span:hover,
.pagination > li > span:focus {
z-index: 3;
@@ -4908,9 +4689,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
border-color: #ddd;
}
-.pagination > .active > a,
-.pagination > .active > a:hover,
-.pagination > .active > a:focus,
+.pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,
.pagination > .active > span,
.pagination > .active > span:hover,
.pagination > .active > span:focus {
@@ -4978,8 +4757,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
text-align: center;
}
-.pager:before,
-.pager:after {
+.pager:before, .pager:after {
content: " ";
display: table;
}
@@ -5028,7 +4806,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
.label {
display: inline;
- padding: 0.2em 0.6em 0.3em;
+ padding: .2em .6em .3em;
font-size: 75%;
font-weight: bold;
line-height: 1;
@@ -5048,8 +4826,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
top: -1px;
}
-a.label:hover,
-a.label:focus {
+a.label:hover, a.label:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
@@ -5059,8 +4836,7 @@ a.label:focus {
background-color: #999;
}
-.label-default[href]:hover,
-.label-default[href]:focus {
+.label-default[href]:hover, .label-default[href]:focus {
background-color: gray;
}
@@ -5068,8 +4844,7 @@ a.label:focus {
background-color: #3a393b;
}
-.label-primary[href]:hover,
-.label-primary[href]:focus {
+.label-primary[href]:hover, .label-primary[href]:focus {
background-color: #212021;
}
@@ -5077,8 +4852,7 @@ a.label:focus {
background-color: #5cb85c;
}
-.label-success[href]:hover,
-.label-success[href]:focus {
+.label-success[href]:hover, .label-success[href]:focus {
background-color: #449d44;
}
@@ -5086,8 +4860,7 @@ a.label:focus {
background-color: #5bc0de;
}
-.label-info[href]:hover,
-.label-info[href]:focus {
+.label-info[href]:hover, .label-info[href]:focus {
background-color: #31b0d5;
}
@@ -5095,8 +4868,7 @@ a.label:focus {
background-color: #f0ad4e;
}
-.label-warning[href]:hover,
-.label-warning[href]:focus {
+.label-warning[href]:hover, .label-warning[href]:focus {
background-color: #ec971f;
}
@@ -5104,8 +4876,7 @@ a.label:focus {
background-color: #d9534f;
}
-.label-danger[href]:hover,
-.label-danger[href]:focus {
+.label-danger[href]:hover, .label-danger[href]:focus {
background-color: #c9302c;
}
@@ -5133,8 +4904,7 @@ a.label:focus {
top: -1px;
}
-.btn-xs .badge,
-.btn-group-xs > .btn .badge,
+.btn-xs .badge, .btn-group-xs > .btn .badge,
.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
@@ -5158,8 +4928,7 @@ a.label:focus {
margin-left: 3px;
}
-a.badge:hover,
-a.badge:focus {
+a.badge:hover, a.badge:focus {
color: #fff;
text-decoration: none;
cursor: pointer;
@@ -5279,11 +5048,13 @@ a.thumbnail.active {
margin-top: 5px;
}
-.alert-dismissable, .alert-dismissible {
+.alert-dismissable,
+.alert-dismissible {
padding-right: 8px 15px20;
}
-.alert-dismissable .close, .alert-dismissible .close {
+.alert-dismissable .close,
+.alert-dismissible .close {
opacity: 1;
position: absolute;
top: 6px;
@@ -5302,7 +5073,7 @@ a.thumbnail.active {
}
.alert-success .alert-link {
- color: #525252;
+ color: #535353;
}
.alert-info {
@@ -5316,7 +5087,7 @@ a.thumbnail.active {
}
.alert-info .alert-link {
- color: #525252;
+ color: #535353;
}
.alert-warning {
@@ -5330,7 +5101,7 @@ a.thumbnail.active {
}
.alert-warning .alert-link {
- color: #525252;
+ color: #535353;
}
.alert-danger {
@@ -5344,7 +5115,7 @@ a.thumbnail.active {
}
.alert-danger .alert-link {
- color: #525252;
+ color: #535353;
}
@-webkit-keyframes progress-bar-stripes {
@@ -5542,8 +5313,7 @@ button.list-group-item .list-group-item-heading {
color: #333;
}
-a.list-group-item:hover,
-a.list-group-item:focus,
+a.list-group-item:hover, a.list-group-item:focus,
button.list-group-item:hover,
button.list-group-item:focus {
text-decoration: none;
@@ -5556,29 +5326,21 @@ button.list-group-item {
text-align: left;
}
-.list-group-item.disabled,
-.list-group-item.disabled:hover,
-.list-group-item.disabled:focus {
+.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 {
+.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 {
+.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 {
+.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
z-index: 2;
color: #fff;
background-color: #3a393b;
@@ -5587,19 +5349,15 @@ button.list-group-item {
.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 .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: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 {
+.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;
}
@@ -5618,17 +5376,14 @@ button.list-group-item-success .list-group-item-heading {
color: inherit;
}
-a.list-group-item-success:hover,
-a.list-group-item-success:focus,
+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,
+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 {
@@ -5652,17 +5407,14 @@ button.list-group-item-info .list-group-item-heading {
color: inherit;
}
-a.list-group-item-info:hover,
-a.list-group-item-info:focus,
+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,
+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 {
@@ -5686,17 +5438,14 @@ button.list-group-item-warning .list-group-item-heading {
color: inherit;
}
-a.list-group-item-warning:hover,
-a.list-group-item-warning:focus,
+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,
+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 {
@@ -5720,17 +5469,14 @@ button.list-group-item-danger .list-group-item-heading {
color: inherit;
}
-a.list-group-item-danger:hover,
-a.list-group-item-danger:focus,
+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,
+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 {
@@ -5762,8 +5508,7 @@ button.list-group-item-danger.active:focus {
padding: 11px 0;
}
-.panel-body:before,
-.panel-body:after {
+.panel-body:before, .panel-body:after {
content: " ";
display: table;
}
@@ -6238,8 +5983,7 @@ button.list-group-item-danger.active:focus {
filter: alpha(opacity=20);
}
-.close:hover,
-.close:focus {
+.close:hover, .close:focus {
color: #555;
text-decoration: none;
cursor: pointer;
@@ -6367,8 +6111,7 @@ button.close {
background-color: #8cc63f;
}
-.modal-footer:before,
-.modal-footer:after {
+.modal-footer:before, .modal-footer:after {
content: " ";
display: table;
}
@@ -6684,8 +6427,7 @@ button.close {
padding: 9px 14px;
}
-.popover > .arrow,
-.popover > .arrow:after {
+.popover > .arrow, .popover > .arrow:after {
position: absolute;
display: block;
width: 0;
@@ -6771,8 +6513,7 @@ button.close {
bottom: -10px;
}
-.clearfix:before,
-.clearfix:after {
+.clearfix:before, .clearfix:after {
content: " ";
display: table;
}
diff --git a/ui/css/datatables.bootstrap.css b/ui/css/datatables.bootstrap.css
index 87eec2a..6d4e19d 100644
--- a/ui/css/datatables.bootstrap.css
+++ b/ui/css/datatables.bootstrap.css
@@ -111,9 +111,7 @@ div.dataTables_wrapper div.dataTables_processing {
padding: 1em 0;
}
-table.dataTable thead > tr > th.sorting_asc,
-table.dataTable thead > tr > th.sorting_desc,
-table.dataTable thead > tr > th.sorting,
+table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
table.dataTable thead > tr > td.sorting_asc,
table.dataTable thead > tr > td.sorting_desc,
table.dataTable thead > tr > td.sorting {
@@ -134,8 +132,7 @@ table.dataTable thead .sorting_desc_disabled {
position: relative;
}
-table.dataTable thead .sorting:before,
-table.dataTable thead .sorting:after,
+table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:before,
@@ -246,8 +243,7 @@ table.table-bordered.dataTable td {
border-left-width: 0;
}
-table.table-bordered.dataTable th:last-child,
-table.table-bordered.dataTable th:last-child,
+table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
table.table-bordered.dataTable td:last-child,
table.table-bordered.dataTable td:last-child {
border-right-width: 0;
diff --git a/ui/css/settings.css b/ui/css/settings.css
index 1fe0a04..8c0b8cb 100644
--- a/ui/css/settings.css
+++ b/ui/css/settings.css
@@ -121,8 +121,7 @@ div#user-log-actions {
background-color: #d9182d;
}
-.label-primary.label-wok[href]:hover,
-.label-primary.label-wok[href]:focus {
+.label-primary.label-wok[href]:hover, .label-primary.label-wok[href]:focus {
background-color: #ab1323;
}
@@ -130,8 +129,7 @@ div#user-log-actions {
background-color: #8cc63f;
}
-.label-primary.label-kimchi[href]:hover,
-.label-primary.label-kimchi[href]:focus {
+.label-primary.label-kimchi[href]:hover, .label-primary.label-kimchi[href]:focus {
background-color: #71a230;
}
@@ -139,8 +137,7 @@ div#user-log-actions {
background-color: #00578c;
}
-.label-primary.label-ginger[href]:hover,
-.label-primary.label-ginger[href]:focus {
+.label-primary.label-ginger[href]:hover, .label-primary.label-ginger[href]:focus {
background-color: #003759;
}
@@ -148,8 +145,7 @@ div#user-log-actions {
background-color: #008abf;
}
-.label-primary.label-gingerbase[href]:hover,
-.label-primary.label-gingerbase[href]:focus {
+.label-primary.label-gingerbase[href]:hover, .label-primary.label-gingerbase[href]:focus {
background-color: #00658c;
}
diff --git a/ui/css/wok.css b/ui/css/wok.css
index 95d903b..ca98e38 100644
--- a/ui/css/wok.css
+++ b/ui/css/wok.css
@@ -137,9 +137,7 @@ html.in-progress .disabled {
position: relative;
}
-.pagination > .active > a,
-.pagination > .active > a:hover,
-.pagination > .active > a:focus,
+.pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,
.pagination > .active > span,
.pagination > .active > span:hover,
.pagination > .active > span:focus {
@@ -430,8 +428,7 @@ html.in-progress .disabled {
border-color: #008abf;
}
-.btn-login:focus,
-.btn-login.focus {
+.btn-login:focus, .btn-login.focus {
color: #fff;
background-color: #00658c;
border-color: #002e40;
@@ -443,20 +440,14 @@ html.in-progress .disabled {
border-color: #005e82;
}
-.btn-login:active,
-.btn-login.active,
+.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,
+.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 {
@@ -465,24 +456,12 @@ html.in-progress .disabled {
border-color: #002e40;
}
-.btn-login:active,
-.btn-login.active,
+.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,
+.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,
@@ -509,8 +488,7 @@ fieldset[disabled] .btn-login.active {
padding: 4px 12px;
}
-.btn-group > span > .btn:focus,
-.btn-group > span > .btn.focus {
+.btn-group > span > .btn:focus, .btn-group > span > .btn.focus {
color: #fff;
background-color: #343334;
border-color: #0d0d0d;
@@ -522,20 +500,14 @@ fieldset[disabled] .btn-login.active {
border-color: #2e2e2f;
}
-.btn-group > span > .btn:active,
-.btn-group > span > .btn.active,
+.btn-group > span > .btn:active, .btn-group > span > .btn.active,
.open > .btn-group > span > .btn.dropdown-toggle {
color: #fff;
background-color: #343334;
border-color: #2e2e2f;
}
-.btn-group > span > .btn:active:hover,
-.btn-group > span > .btn:active:focus,
-.btn-group > span > .btn:active.focus,
-.btn-group > span > .btn.active:hover,
-.btn-group > span > .btn.active:focus,
-.btn-group > span > .btn.active.focus,
+.btn-group > span > .btn:active:hover, .btn-group > span > .btn:active:focus, .btn-group > span > .btn:active.focus, .btn-group > span > .btn.active:hover, .btn-group > span > .btn.active:focus, .btn-group > span > .btn.active.focus,
.open > .btn-group > span > .btn.dropdown-toggle:hover,
.open > .btn-group > span > .btn.dropdown-toggle:focus,
.open > .btn-group > span > .btn.dropdown-toggle.focus {
@@ -544,24 +516,12 @@ fieldset[disabled] .btn-login.active {
border-color: #0d0d0d;
}
-.btn-group > span > .btn:active,
-.btn-group > span > .btn.active,
+.btn-group > span > .btn:active, .btn-group > span > .btn.active,
.open > .btn-group > span > .btn.dropdown-toggle {
background-image: none;
}
-.btn-group > span > .btn.disabled,
-.btn-group > span > .btn.disabled:hover,
-.btn-group > span > .btn.disabled:focus,
-.btn-group > span > .btn.disabled.focus,
-.btn-group > span > .btn.disabled:active,
-.btn-group > span > .btn.disabled.active,
-.btn-group > span > .btn[disabled],
-.btn-group > span > .btn[disabled]:hover,
-.btn-group > span > .btn[disabled]:focus,
-.btn-group > span > .btn[disabled].focus,
-.btn-group > span > .btn[disabled]:active,
-.btn-group > span > .btn[disabled].active,
+.btn-group > span > .btn.disabled, .btn-group > span > .btn.disabled:hover, .btn-group > span > .btn.disabled:focus, .btn-group > span > .btn.disabled.focus, .btn-group > span > .btn.disabled:active, .btn-group > span > .btn.disabled.active, .btn-group > span > .btn[disabled], .btn-group > span > .btn[disabled]:hover, .btn-group > span > .btn[disabled]:focus, .btn-group > span > .btn[disabled].focus, .btn-group > span > .btn[disabled]:active, .btn-group > span > .btn[disabled].active,
fieldset[disabled] .btn-group > span > .btn,
fieldset[disabled] .btn-group > span > .btn:hover,
fieldset[disabled] .btn-group > span > .btn:focus,
@@ -668,15 +628,14 @@ fieldset[disabled] .btn-group > span > .btn.active {
text-decoration: inherit;
width: 1.2em;
height: 1.2em;
- margin: 0.5em 0.85em;
+ margin: .5em .85em;
text-align: center;
font-variant: normal;
text-transform: none;
line-height: 2em;
}
-.menu-flat.dropup,
-.menu-flat.dropdown {
+.menu-flat.dropup, .menu-flat.dropdown {
position: relative;
}
@@ -757,16 +716,13 @@ fieldset[disabled] .btn-group > span > .btn.active {
display: inline-block;
}
-.menu-flat .dropdown-menu > li > a:hover,
-.menu-flat .dropdown-menu > li > a:focus {
+.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 {
+.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;
@@ -783,14 +739,11 @@ fieldset[disabled] .btn-group > span > .btn.active {
background-color: #3a393b;
}
-.menu-flat .dropdown-menu > .disabled > a,
-.menu-flat .dropdown-menu > .disabled > a:hover,
-.menu-flat .dropdown-menu > .disabled > a:focus {
+.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 {
+.menu-flat .dropdown-menu > .disabled > a:hover, .menu-flat .dropdown-menu > .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
@@ -1353,7 +1306,7 @@ input[type=checkbox].wok-checkbox + label:before {
input[type=checkbox].wok-checkbox:checked + label:before {
content: "\f14a";
letter-spacing: 8px;
- margin-right: 0.9px // Sub-pixel unit for Chrome and Firefox anti-alias;
+ margin-right: 0.9px;
}
input[type=radio].wok-radio + label:before {
--
2.7.4
8 years, 2 months
[PATCH] [Kimchi] Updating kimchi.css to latest UI libs versions
by dhbarboza82@gmail.com
From: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
This patch updates kimchi.css generated by latest UI
libs versions.
This patch is applicable in the stable-2.3.x branch.
Signed-off-by: Daniel Henrique Barboza <danielhb(a)linux.vnet.ibm.com>
---
ui/css/kimchi.css | 76 +++++++++++++++++++++++++++----------------------------
1 file changed, 38 insertions(+), 38 deletions(-)
diff --git a/ui/css/kimchi.css b/ui/css/kimchi.css
index 9a9ff25..0a0aada 100644
--- a/ui/css/kimchi.css
+++ b/ui/css/kimchi.css
@@ -231,37 +231,37 @@
#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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ background-image: url("../images/theme-default/icon-unknown.png");
}
/* Create Guest Modal */
@@ -1037,31 +1037,31 @@
}
#guest-content-container .distro-icon.icon-centos {
- background-image: url("/images/theme-default/icon-centos.png");
+ background-image: url("../images/theme-default/icon-centos.png");
}
#guest-content-container .distro-icon.icon-debian {
- background-image: url("/images/theme-default/icon-debian.png");
+ background-image: url("../images/theme-default/icon-debian.png");
}
#guest-content-container .distro-icon.icon-fedora {
- background-image: url("/images/theme-default/icon-fedora.png");
+ background-image: url("../images/theme-default/icon-fedora.png");
}
#guest-content-container .distro-icon.icon-opensuse {
- background-image: url("/images/theme-default/icon-opensuse.png");
+ background-image: url("../images/theme-default/icon-opensuse.png");
}
#guest-content-container .distro-icon.icon-ubuntu {
- background-image: url("/images/theme-default/icon-ubuntu.png");
+ background-image: url("../images/theme-default/icon-ubuntu.png");
}
#guest-content-container .distro-icon.icon-gentoo {
- background-image: url("/images/theme-default/icon-gentoo.png");
+ background-image: url("../images/theme-default/icon-gentoo.png");
}
#guest-content-container .distro-icon.icon-unknown {
- background-image: url("/images/theme-default/icon-unknown.png");
+ background-image: url("../images/theme-default/icon-unknown.png");
}
body.wok-gallery {
@@ -2021,31 +2021,31 @@ body.wok-gallery {
}
#templates-root-container .wok-vm-list .distro-icon.icon-centos {
- background-image: url("/images/theme-default/icon-centos.png");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ background-image: url("../images/theme-default/icon-unknown.png");
}
#templates-root-container .wok-vm-gallery {
@@ -2152,31 +2152,31 @@ body.wok-gallery {
}
#templates-root-container .wok-vm-gallery .name-distro-icon.icon-centos {
- background-image: url("/images/theme-default/icon-centos.png");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ 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");
+ background-image: url("../images/theme-default/icon-unknown.png");
}
#templates-root-container span.template-status {
@@ -2230,7 +2230,7 @@ body.wok-gallery {
}
#network-root-container .wok-nw-loading-icon {
- background: transparent url("/images/theme-default/spin5.svg") no-repeat 50% 50%;
+ 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;
@@ -2337,15 +2337,15 @@ body.wok-gallery {
}
#storage-root-container .wok-datagrid-body .inactive .usage-icon.icon-high {
- background-image: url("/images/theme-default/high_disabled.png") !important;
+ 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;
+ 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;
+ background-image: url("../images/theme-default/low_disabled.png") !important;
}
#storage-root-container .volumes {
@@ -2417,15 +2417,15 @@ body.wok-gallery {
}
#storage-root-container .volumes .volume-icon.icon-high {
- background-image: url("/images/theme-default/high.png");
+ background-image: url("../images/theme-default/high.png");
}
#storage-root-container .volumes .volume-icon.icon-med {
- background-image: url("/images/theme-default/med.png");
+ background-image: url("../images/theme-default/med.png");
}
#storage-root-container .volumes .volume-icon.icon-low {
- background-image: url("/images/theme-default/low.png");
+ background-image: url("../images/theme-default/low.png");
}
#storage-root-container .volumes .volume-progress {
@@ -2866,17 +2866,17 @@ body.wok-gallery {
#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");
+ 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");
+ 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");
+ background-image: url("../images/theme-default/low.png");
}
#storage-root-container .wok-datagrid > .wok-datagrid-header > span.column-capacity,
--
2.7.4
8 years, 2 months
[RFC] Issues #970: ISOs that do not have proper permission is still being allowed to be used when creating a template
by Ramon Medeiros
Issue:
User is allowed to create templates without permission to ISO
Solutions propose:
1) Check permissions by os.access(). This function can verify read
(os.R_OK), write (os.W_OK) and execution (os.X_OK) access.
2) Iterate over all storagevolumes and use kimchi storagevolumes
management (each volumes has "has_permission" item)
Both of the solutions will raise an error if permissions are insufficient.
--
Ramon Nunes Medeiros
Kimchi Developer
Linux Technology Center Brazil
IBM Systems & Technology Group
Phone : +55 19 2132 7878
ramonn(a)br.ibm.com
8 years, 2 months
[PATCH] [Kimchi] s390x specific changes to support storage path and storage pool disk.
by archus@linux.vnet.ibm.com
From: Archana Singh <archus(a)linux.vnet.ibm.com>
1) Added s390x specific error message for storage pool and network.
2) As on s390x, default is storage path, but if pool explicitly specified in
template_s390x.conf it takes preference. So added code to ensure that
if storage pool explicitly specified in file conf then check for default
storage pool gets called.
3) Code changes in tmpl default creation which ensure that on s390x, default
disk is path but if conf file has explicitly pool specified then defult disk
is the sepecified pool. And also ensures that disk is either pool or path
and not both.
4) Code changes in vmtemplate, to ensure that on s390x either a path disk
or a pool disk can be added to template. And if disk to add does not have
both path nad pool then tmpl default storage is used.
5) Added template conf file specific to s390x.
Signed-off-by: Archana Singh <archus(a)linux.vnet.ibm.com>
---
IBM-license-blacklist | 1 +
model/networks.py | 7 +++++++
model/storagepools.py | 13 +++++++++++--
osinfo.py | 36 ++++++++++++++++++++++++++++++++--
template_s390x.conf | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++
vmtemplate.py | 33 +++++++++++++++++++++++---------
6 files changed, 130 insertions(+), 13 deletions(-)
create mode 100644 template_s390x.conf
diff --git a/IBM-license-blacklist b/IBM-license-blacklist
index 78fd2cb..a0d1407 100644
--- a/IBM-license-blacklist
+++ b/IBM-license-blacklist
@@ -27,6 +27,7 @@ po/Makevars
po/POTFILES.in
po/kimchi.pot
template.conf
+template_s390x.conf
ui/config/tab-ext.xml
ui/images/.*.svg
ui/pages/help/dita-help.xsl
diff --git a/model/networks.py b/model/networks.py
index be4eec2..57ff487 100644
--- a/model/networks.py
+++ b/model/networks.py
@@ -35,6 +35,7 @@ from wok.plugins.kimchi import network as knetwork
from wok.plugins.kimchi.config import kimchiPaths
from wok.plugins.kimchi.model.config import CapabilitiesModel
from wok.plugins.kimchi.osinfo import defaults as tmpl_defaults
+from wok.plugins.kimchi.utils import is_s390x
from wok.plugins.kimchi.xmlutils.interface import get_iface_xml
from wok.plugins.kimchi.xmlutils.network import create_linux_bridge_xml
from wok.plugins.kimchi.xmlutils.network import create_vlan_tagged_bridge_xml
@@ -64,6 +65,12 @@ class NetworksModel(object):
"active. Please, check the configuration in "
"%s/template.conf to ensure it lists only valid "
"networks." % (net_name, kimchiPaths.sysconf_dir))
+ if is_s390x():
+ error_msg = ("Network %s does not exist or is not "
+ "active. Please, check the "
+ "configuration in %s/template_s390x.conf "
+ "to ensure it lists only valid "
+ "networks." % (net_name, kimchiPaths.sysconf_dir))
try:
net = conn.networkLookupByName(net_name)
diff --git a/model/storagepools.py b/model/storagepools.py
index 5942b31..a8a2356 100644
--- a/model/storagepools.py
+++ b/model/storagepools.py
@@ -73,7 +73,9 @@ class StoragePoolsModel(object):
def _check_default_pools(self):
pools = {}
- if is_s390x():
+ # Don't create default pool if it's not
+ # explicitly specified in template_s390x.conf
+ if is_s390x() and 'pool' not in tmpl_defaults['disks'][0]:
return
default_pool = tmpl_defaults['disks'][0]['pool']['name']
@@ -91,7 +93,14 @@ class StoragePoolsModel(object):
error_msg = ("Storage pool %s does not exist or is not "
"active. Please, check the configuration in "
"%s/template.conf to ensure it lists only valid "
- "networks." % (pool_name, kimchiPaths.sysconf_dir))
+ "storage." % (pool_name, kimchiPaths.sysconf_dir))
+ if is_s390x:
+ error_msg = ("Network %s does not exist or is not "
+ "active. Please, check the "
+ "configuration in %s/template_s390x.conf "
+ "to ensure it lists only valid "
+ "storage." % (pool_name, kimchiPaths.sysconf_dir))
+
try:
pool = conn.storagePoolLookupByName(pool_name)
except libvirt.libvirtError, e:
diff --git a/osinfo.py b/osinfo.py
index c51d6e0..4f0e1fa 100644
--- a/osinfo.py
+++ b/osinfo.py
@@ -27,9 +27,9 @@ from configobj import ConfigObj
from distutils.version import LooseVersion
from wok.config import PluginPaths
+from wok.exception import InvalidParameter
from wok.plugins.kimchi.config import kimchiPaths
-
SUPPORTED_ARCHS = {'x86': ('i386', 'i686', 'x86_64'),
'power': ('ppc', 'ppc64'),
'ppc64le': ('ppc64le'),
@@ -129,7 +129,8 @@ def _get_default_template_mem():
def _get_tmpl_defaults():
"""
ConfigObj returns a dict like below when no changes were made in the
- template configuration file (template.conf)
+ template configuration file (template.conf and in case of s390x its
+ template_s390x.conf)
{'main': {}, 'memory': {}, 'storage': {'disk.0': {}}, 'processor': {},
'graphics': {}}
@@ -184,6 +185,37 @@ def _get_tmpl_defaults():
config_file = os.path.join(kimchiPaths.sysconf_dir, 'template.conf')
config = ConfigObj(config_file)
+ # File configuration takes preference.
+ # In s390x, file configuration can have storage pool or path.
+ # Default configuration for s390x is storage path.
+ # In case file conf has storage pool then storage pool takes preference.
+ # When conf file has explicitly storage pool: "defaults" should
+ # have storage pool and default configured path should be removed,
+ # as either storage can be path or pool, cannot be both.
+ # When conf file does not explicity storage pool or have explicitly
+ # storage path: "default" should have storage path only and cannot
+ # have default pool.
+ #
+ # Check file conf has storage configured.
+ if is_on_s390x and config.get('storage').get('disk.0'):
+ # remove storage from default_config as file configuration takes
+ # preference.
+ default_config.pop('storage')
+
+ # Get storage configuration present in conf file
+ config_pool = config.get('storage').get('disk.0').get('pool')
+ config_path = config.get('storage').get('disk.0').get('path')
+
+ # If storage configured in conf file then it should have either
+ # pool or path.
+ if not config_pool and not config_path:
+ raise InvalidParameter('KCHTMPL0040E')
+
+ # On s390x if config file has both path and pool uncommented
+ # then path should take preference.
+ if config_pool and config_path:
+ config.get('storage').get('disk.0').pop('pool')
+
# Merge default configuration with file configuration
default_config.merge(config)
diff --git a/template_s390x.conf b/template_s390x.conf
new file mode 100644
index 0000000..c4598f1
--- /dev/null
+++ b/template_s390x.conf
@@ -0,0 +1,53 @@
+#
+# Configuration file for Kimchi Templates
+#
+
+[main]
+# List of networks separated by comma
+# Represents the virtual network interfaces to be assigned to guest
+#networks = default,
+
+[memory]
+# Memory in MB
+# current = 1024
+
+# Maximum value of memory to be assigned to guest in MB
+# maxmemory = 1024
+
+[storage]
+
+# Specify multiple [[disk.X]] sub-sections to add multiples disks to guest
+# Each disk files will be created in respective storage pool set
+[[disk.0]]
+# Disk size in GB
+#size = 10
+
+# Disk format
+#format = qcow2
+
+# Storage pool used to handle the guest disk
+#pool = default
+
+[graphics]
+# Graphics type
+# Valid options: vnc | spice
+#type = vnc
+
+# The network which the vnc/spice server listens on
+#listen = 127.0.0.1
+
+[processor]
+# Number of vcpus
+# When specifying CPU topology, make sure maxvcpus value is equal to the
+# product of sockets, cores, and threads.
+#vcpus = 1
+#maxvcpus = 1
+
+# Number of sockets (not set by default)
+#sockets =
+
+# Number of cores per socket (not set by default)
+#cores =
+
+# Number of threads per core (not set by default)
+#threads =
diff --git a/vmtemplate.py b/vmtemplate.py
index c3390fe..b249873 100644
--- a/vmtemplate.py
+++ b/vmtemplate.py
@@ -106,14 +106,25 @@ class VMTemplate(object):
for index, disk in enumerate(disks):
disk_info = dict(default_disk)
- # on s390x/s390 either pool or path should be present in
- # default disk.
- if is_s390x() and 'pool' not in default_disk and \
- 'path' not in default_disk:
- raise InvalidParameter('KCHTMPL0040E')
- # On s390x/s390 pool is optional attribute for disk.
- pool = disk.get('pool', default_disk.get('pool'))
+ if is_s390x():
+ # Default disk should have either pool or path.
+ if 'pool' not in default_disk and 'path' not in default_disk:
+ raise InvalidParameter('KCHTMPL0040E')
+
+ # Each disk should have either pool or path.
+ # if not then use "default_disk" configuration.
+ pool = disk.get('pool')
+ path = disk.get('path')
+ if not path and not pool:
+ # If default disk is path then set disk with default path
+ if default_disk.get('path'):
+ path = default_disk.get('path')
+ # If default disk is pool then set disk with default pool
+ if default_disk.get('pool'):
+ pool = default_disk.get('pool')
+ else:
+ pool = disk.get('pool', default_disk.get('pool'))
if pool:
pool_type = self._get_storage_type(pool['name'])
@@ -148,8 +159,12 @@ class VMTemplate(object):
disk_info['index'] = disk_info.get('index', index)
self.info['disks'][index] = disk_info
elif is_s390x():
- # For now support 'path' only on s390x
- path = disk.get('path', default_disk.get('path'))
+ # This check is required where 'path' disk
+ # has to be added and hence default pool
+ # has to be removed during template update.
+ if 'pool' in disk_info:
+ del disk_info['pool']
+
disk_info.update(disk)
keys = sorted(disk_info.keys())
if ((keys != sorted(basic_path_disk)) and
--
2.7.4
8 years, 2 months
[PATCH][Kimchi] Issue: #1008 Issues while editing a VEPA network
by Ramon Medeiros
The javascript was iterating a dict without any propose, and copying the
same objects inside of it. Just remove the iteration and adequate the
correct vars.
Signed-off-by: Ramon Medeiros <ramonn(a)linux.vnet.ibm.com>
---
ui/js/src/kimchi.network_edit_main.js | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/ui/js/src/kimchi.network_edit_main.js b/ui/js/src/kimchi.network_edit_main.js
index 4dd830a..ab1e285 100644
--- a/ui/js/src/kimchi.network_edit_main.js
+++ b/ui/js/src/kimchi.network_edit_main.js
@@ -93,16 +93,10 @@ kimchi.setupNetworkFormEventForEdit = function(network) {
var loadIfaces = function(interfaceFilterArray){
var buildInterfaceOpts = function(result) {
- var currentIfaces = network['interfaces'];
- for (var i = 0; i < currentIfaces.length; i++) {
- kimchi.getInterface(currentIfaces[i], function(iface) {
- result.push(iface);
- } , null, true);
- }
kimchi.createInterfacesOpts(result, interfaceFilterArray);
- for (var i = 0; i < currentIfaces.length; i++) {
- $("#networkDestinationID option[value='" + currentIfaces[i] + "']").attr('selected','selected');
+ for (var i = 0; i < result.length; i++) {
+ $("#networkDestinationID option[value='" + result[i]["name"] + "']").attr('selected','selected');
}
$('#networkDestinationID').selectpicker('refresh');
};
--
2.7.4
8 years, 2 months