From: samhenri <samuel.guimaraes(a)eldorado.org.br>
Signed-off-by: samhenri <samuel.guimaraes(a)eldorado.org.br>
---
.../kimchi/ui/css/theme-default/template_add.css | 317 ----------------
.../kimchi/ui/js/src/kimchi.template_add_main.js | 406 +++++++++++++++------
.../plugins/kimchi/ui/pages/template-add.html.tmpl | 344 ++++++++---------
.../kimchi/ui/pages/template-edit.html.tmpl | 236 ++++++------
.../plugins/kimchi/ui/pages/templates.html.tmpl | 93 +++--
5 files changed, 615 insertions(+), 781 deletions(-)
delete mode 100644 src/wok/plugins/kimchi/ui/css/theme-default/template_add.css
diff --git a/src/wok/plugins/kimchi/ui/css/theme-default/template_add.css
b/src/wok/plugins/kimchi/ui/css/theme-default/template_add.css
deleted file mode 100644
index f1e28c5..0000000
--- a/src/wok/plugins/kimchi/ui/css/theme-default/template_add.css
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * Project Kimchi
- *
- * Copyright IBM, Corp. 2013-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.
- */
-.page-list {
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- bottom: 0;
- overflow: hidden;
-}
-
-.page {
- position: absolute;
- left: 100%;
- width: 100%;
- height: 100%;
- overflow: auto;
-}
-
-.page>header {
- position: relative;
- overflow: hidden;
-}
-
-.button-group {
- margin-left: 5px;
-}
-
-.back {
- float: left; display : block;
- width: 50px;
- height: 52px;
- background: url(../images/theme-default/icon-back.png) center
- center no-repeat;
- cursor: pointer;
- display: block;
-}
-
-.step-title {
- color: #333;
- font-size: 18px;
- font-weight: normal;
- padding: 15px 10px;
-}
-
-.step-choose>li>a {
- display: block;
- margin: 0 10px 10px;
- padding: 20px 10px 20px 65px;
- border: 2px solid #ccc;
- background: url(../images/theme-default/icon-local.png) 15px
- center no-repeat;
- cursor: pointer;
-}
-
-.step-choose>li>a.local {
- background-image: url(../images/theme-default/icon-local.png);
-}
-
-.step-choose>li>a.remote {
- background-image: url(../images/theme-default/icon-remote.png);
-}
-
-.step-choose>li>a:HOVER {
- border: 2px solid #06C;
-}
-
-.step-subtitle {
- font-size: 16px;
- height: 48px;
- line-height: 48px;
- color: #06C;
- margin: 0 10px;
- font-weight: bold;
- text-shadow: -1px -1px 1px #eaeaea, 1px 1px 1px #fff;
-}
-
-.custom-iso-field {
- position: relative;
- padding: 0 10px 10px;
-}
-
-.custom-iso-field>.input-wrapper {
- margin-right: 110px;
-}
-
-.custom-iso-field>.input-wrapper>input.text {
- padding: 10px;
- color: #333;
- font-size: 13px;
- background: #fff;
- -webkit-border-radius: 5px;
- -moz-border-radius: 5px;
- border-radius: 5px;
- box-shadow: 2px 2px 2px #eee inset;
- border-top: 1px solid #bbb;
- border-left: 1px solid #bbb;
- width: 100%;
-}
-
-.custom-iso-field>button {
- position: absolute;
- top: -6px;
- right: 8px;
-}
-
-.iso-field .button-field {
- padding: 0 20px;
- text-align: right;
-}
-
-.check-all {
- display: inline-block;
- position: relative;
- height: 38px;
- line-height: 38px;
- margin: 5px;
- font-size: 13px;
-}
-
-.check-all input {
- margin: 0 5px 0 0;
-}
-
-.box {
- background: #ffffff;
- background: -moz-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
- background: -webkit-gradient(linear, left top, left bottom,
- color-stop(0%, #ffffff), color-stop(100%, #e5e5e5));
- background: -webkit-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
- background: -o-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
- background: -ms-linear-gradient(top, #ffffff 0%, #e5e5e5 100%);
- background: linear-gradient(to bottom, #ffffff 0%, #e5e5e5 100%);
- filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',
- endColorstr='#e5e5e5', GradientType=0);
- border: 1px solid #ccc;
- color: #333;
- text-shadow: -1px -1px 1px #ccc, 1px 1px 1px #fff;
- -webkit-border-radius: 8px;
- -moz-border-radius: 8px;
- border-radius: 8px;
-}
-
-.box:HOVER {
- border: 1px solid #aaa;
- -webkit-box-shadow: #bbb 0px 0px 5px;
- box-shadow: #bbb 0px 0px 5px;
-}
-
-.box-iso {
- padding: 10px;
- margin: 5px;
- overflow: hidden;
-}
-
-.iso-icon {
- float: left;
- width: 58px;
- height: 58px;
- margin: 0 5px 0 0;
- border: 1px solid #CCCCCC;
- border-radius: 8px;
- background: url(../images/icon-vm.png) center center no-repeat;
- background-size: 58px;
-}
-
-.iso-icon.centos {
- background-image: url(../images/icon-centos.png);
-}
-
-.iso-icon.debian {
- background-image: url(../images/icon-debian.png);
-}
-
-.iso-icon.fedora {
- background-image: url(../images/icon-fedora.png);
-}
-
-.iso-icon.opensuse {
- background-image: url(../images/icon-opensuse.png);
-}
-
-.iso-icon.ubuntu {
- background-image: url(../images/icon-ubuntu.png);
-}
-
-.iso-icon.gentoo {
- background-image: url(../images/icon-gentoo.png);
-}
-
-.list-iso {
- overflow: hidden;
- margin: 5px;
-}
-
-.list-iso li {
- float: left;
- width: 320px;
-}
-
-.list-iso>li>label {
- display: block;
- cursor: pointer;
-}
-
-.list-iso>li>label>input[type="checkbox"] {
- display: none;
-}
-
-.list-iso>li>label>input[type="checkbox"]:CHECKED+.box-iso {
- border: 1px solid rgb(11, 107, 173);
- -webkit-box-shadow: rgb(11, 107, 173) 0px 0px 4px;
- box-shadow: rgb(11, 107, 173) 0px 0px 4px;
-}
-
-.iso-title {
- margin: 0;
- display: block;
- position: relative;
- height: 23px;
- line-height: 23px;
- font-size: 14px;
- font-weight: normal;
- max-width: 100%;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-.iso-title>label>input {
- display: block;
- position: absolute;
- top: 0;
- right: 2px;
-}
-
-.iso-info {
- margin-top: 5px;
- overflow: hidden;
-}
-
-.iso-info-col {
- float: left;
- width: 50%;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- padding: 0 0 0 5px;
-}
-
-.iso-info-col:FIRST-CHILD {
- padding: 0 5px 0 0;
- border-right: 1px solid #999;
-}
-
-.iso-info-item {
- font-weight: bold;
- color: #999;
- font-size: 11px;
- line-height: 18px;
- max-width: 106px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-}
-
-#iso-search {
- margin: 10px 15px;
-}
-
-#iso-search-loading {
- margin: 10px 15px;
- background: #C0C0C0 url(../images/theme-default/loading.gif) 7px
- center no-repeat;
- padding: 0 20px 0 26px;
-}
-
-#iso-more-loading {
- background: #C0C0C0 url(../images/theme-default/loading.gif) 7px
- center no-repeat;
- padding: 0 20px 0 26px;
-}
-
-#vm-image-local-box .body {
- margin: 30px 0 0 26px;
-}
-
-#vm-image-local-box .body input {
- background: none repeat scroll 0 0 #FFFFFF;
- border-left: 1px solid #BBBBBB;
- border-radius: 5px 5px 5px 5px;
- border-top: 1px solid #BBBBBB;
- box-shadow: 2px 2px 2px #EEEEEE inset;
- color: #333333;
- font-size: 13px;
- padding: 10px;
- margin-left: 10px;
- width: 600px;
-}
-
-#vm-image-local-box .body button {
- margin-left: 10px;
-}
diff --git a/src/wok/plugins/kimchi/ui/js/src/kimchi.template_add_main.js
b/src/wok/plugins/kimchi/ui/js/src/kimchi.template_add_main.js
index 01a47c2..961d23a 100644
--- a/src/wok/plugins/kimchi/ui/js/src/kimchi.template_add_main.js
+++ b/src/wok/plugins/kimchi/ui/js/src/kimchi.template_add_main.js
@@ -42,68 +42,9 @@ kimchi.switchPage = function(fromPageId, toPageId, direction) {
};
kimchi.template_add_main = function() {
+ "use strict";
+ var currentPage = 'iso-local-box';
kimchi.deepScanHandler = null;
- // 1-1 local iso
- $('#iso-local').click(function() {
- kimchi.switchPage('iso-type-box', 'iso-local-box');
- initLocalIsoField();
- initIsoFileField();
- kimchi.listIsos(function(isos) {
- if (isos && isos.length) {
- showLocalIsoField(isos);
- $('#iso-more').show();
- } else {
- $('#iso-search').show();
- }
- }, function(err) {
- wok.message.error(err.responseJSON.reason);
- });
- });
-
- $('#iso-local-box-back').click(function() {
- if (kimchi.deepScanHandler) {
- kimchi.deepScanHandler.stop = true;
- }
- kimchi.switchPage('iso-local-box', 'iso-type-box',
'right');
- });
-
- $('#iso-search').click(function() {
- var settings = {
- content : i18n['KCHTMPL6002M']
- };
- wok.confirm(settings, function() {
- $('#iso-search').hide();
- $('#iso-search-loading').show();
- deepScan('#iso-search');
- });
- });
-
- $('#iso-more').click(function() {
- var settings = {
- content : i18n['KCHTMPL6002M']
- };
- wok.confirm(settings, function() {
- $('#iso-more').hide();
- $('#iso-more-loading').show();
- deepScan('#iso-more');
- });
- });
-
- $('#iso-search-loading').click(function() {
- $('#iso-search-loading').hide();
- $('#iso-search').show();
- if (kimchi.deepScanHandler) {
- kimchi.deepScanHandler.stop = true;
- }
- });
-
- $('#iso-more-loading').click(function() {
- $('#iso-more-loading').hide();
- $('#iso-more').show();
- if (kimchi.deepScanHandler) {
- kimchi.deepScanHandler.stop = true;
- }
- });
var deepScan = function(button) {
kimchi.deepScanHandler = kimchi.stepListDeepScanIsos(function(isos, isFinished)
{
@@ -141,6 +82,19 @@ kimchi.template_add_main = function() {
$('#iso-search-loading').hide();
$('#iso-more-loading').hide();
$('#list-local-iso').empty();
+
+ // Resets input fields and hide other buttons
+ $('#iso-file').val(''); // 1 - Folder path text
+ $('vm-image-local-text').val(''); // 3 - File path text
+ $('#iso-url').val(''); // 4 - Remote folder path text
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','inline-block'); // 1 - Folder path
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+ $('#select-all-local-iso,
#select-all-remote-iso').prop('checked', false); // False to all select-all
checkboxes
+ $('#list-local-iso [type="checkbox"], #list-remote-iso
[type="checkbox"]').prop('checked', false); // False to all list
checkboxes
+
};
var showLocalIsoField = function(isos) {
@@ -159,10 +113,160 @@ kimchi.template_add_main = function() {
$('#local-iso-field').show();
};
+
+ //1-1-2 local iso file
+ var initIsoFileField = function() {
+ //$('#iso-file-check').prop('checked', false);
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
+ $('#iso-url').val('');
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','inline-block');
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
+ $('#select-all-local-iso,
#select-all-remote-iso').prop('checked', false); // False to all select-all
checkboxes
+
+ $('#list-local-iso [type="checkbox"], #list-remote-iso
[type="checkbox"]').prop('checked', false); // False to all list
checkboxes
+
+ };
+
+ $('#iso-file').on('input propertychange', function() {
+ if ($('#iso-file').val()) {
+
+
$('#btn-template-file-create').removeAttr('disabled').css('display','inline-block');
// 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
+ $('#select-all-local-iso,
#select-all-remote-iso').prop('checked', false); // False to all select-all
checkboxes
+
+ $('#list-local-iso [type="checkbox"], #list-remote-iso
[type="checkbox"]').prop('checked', false); // False to all list
checkboxes
+
+ } else {
+ $('#btn-template-file-create').attr('disabled',
'disabled');
+ }
+ });
+
+ initLocalIsoField();
+ initIsoFileField();
+ kimchi.listIsos(function(isos) {
+ if (isos && isos.length) {
+ showLocalIsoField(isos);
+ $('#iso-more').show();
+ } else {
+ $('#iso-search').show();
+ }
+ }, function(err) {
+ wok.message.error(err.responseJSON.reason);
+ });
+ $('#template-add-window .modal-body .template-pager').animate({
+ height: "689px"
+ },400);
+
+ // 1-1 local iso
+ $('#iso-local').change(function() {
+ if(this.checked){
+ if(currentPage === 'vm-image-local-box') {
+ kimchi.switchPage(currentPage, 'iso-local-box','right');
+ } else if(currentPage === 'iso-remote-box') {
+ kimchi.switchPage(currentPage, 'iso-local-box','right');
+ }
+ currentPage = 'iso-local-box';
+ $('#template-add-window .modal-body .template-pager').animate({
+ height: "689px"
+ },400);
+ initLocalIsoField();
+ initIsoFileField();
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','inline-block'); // 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
+
+ kimchi.listIsos(function(isos) {
+ if (isos && isos.length) {
+ showLocalIsoField(isos);
+ $('#iso-more').show();
+ } else {
+ $('#iso-search').show();
+ }
+ }, function(err) {
+ wok.message.error(err.responseJSON.reason);
+ });
+ }
+ });
+
+ $('#iso-search').click(function() {
+ var settings = {
+ content : i18n['KCHTMPL6002M']
+ };
+ wok.confirm(settings, function() {
+ $('#iso-search').hide();
+ $('#iso-search-loading').show();
+ deepScan('#iso-search');
+ });
+ });
+
+ $('#iso-more').click(function() {
+ var settings = {
+ content : i18n['KCHTMPL6002M']
+ };
+ wok.confirm(settings, function() {
+ $('#iso-more').hide();
+ $('#iso-more-loading').show();
+ deepScan('#iso-more');
+ });
+ });
+
+ $('#iso-search-loading').click(function() {
+ $('#iso-search-loading').hide();
+ $('#iso-search').show();
+ if (kimchi.deepScanHandler) {
+ kimchi.deepScanHandler.stop = true;
+ }
+ });
+
+ $('#iso-more-loading').click(function() {
+ $('#iso-more-loading').hide();
+ $('#iso-more').show();
+ if (kimchi.deepScanHandler) {
+ kimchi.deepScanHandler.stop = true;
+ }
+ });
+
$('#select-all-local-iso').click(function() {
$('#list-local-iso [type="checkbox"]').prop('checked',
$(this).prop('checked'));
if ($(this).prop('checked')) {
- $('#btn-template-local-iso-create').removeAttr('disabled');
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+
+
$('#btn-template-local-iso-create').removeAttr('disabled').css('display','inline-block');
// 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
} else {
$('#btn-template-local-iso-create').attr('disabled',
'disabled');
}
@@ -170,10 +274,24 @@ kimchi.template_add_main = function() {
$('#list-local-iso').on('click',
'[type="checkbox"]', function() {
var checkedLength = $('#list-local-iso
[type="checkbox"]:checked').length;
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
+ $('#iso-url').val('');
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','inline-block'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
if (checkedLength) {
$('#btn-template-local-iso-create').removeAttr('disabled');
var length = $('#list-local-iso
[type="checkbox"]').length;
$('#select-all-local-iso').prop('checked', length ==
checkedLength);
+ $('#btn-template-local-iso-create').removeAttr('disabled');
} else {
$('#select-all-local-iso').prop('checked', false);
$('#btn-template-local-iso-create').attr('disabled',
'disabled');
@@ -184,32 +302,9 @@ kimchi.template_add_main = function() {
submitIso('form-local-iso');
});
- //1-1-2 local iso file
- var initIsoFileField = function() {
- $('#iso-file-check').prop('checked', false);
- $('#iso-file-box').hide();
- $('#iso-file').val('');
- $('#btn-template-file-create').attr('disabled',
'disabled');
- };
-
- $('#iso-file-check').click(function() {
- if ($(this).prop('checked')) {
- $('#iso-file-box').slideDown();
- } else {
- $('#iso-file-box').slideUp();
- }
- });
-
- $('#iso-file').on('input propertychange', function() {
- if ($('#iso-file').val()) {
- $('#btn-template-file-create').removeAttr('disabled');
- } else {
- $('#btn-template-file-create').attr('disabled',
'disabled');
- }
- });
-
$('#btn-template-file-create').click(function() {
var isoFile = $('#iso-file').val();
+ $('vm-image-local-text').val('');
if (!kimchi.template_check_path(isoFile)) {
wok.message.error.code('KCHAPI6003E');
return;
@@ -221,7 +316,7 @@ kimchi.template_add_main = function() {
});
//1-2 remote iso
- $('#iso-remote').css('opacity', 0.3).css('cursor',
'not-allowed');
+ $('#iso-remote').attr("disabled", true).css('cursor',
'not-allowed');
var enabledRemoteIso = function() {
if (kimchi.capabilities == undefined) {
@@ -233,23 +328,29 @@ kimchi.template_add_main = function() {
return;
}
- $('#iso-remote').css('opacity', 1).css('cursor',
'pointer');
- $('#iso-remote').click(function() {
- kimchi.switchPage('iso-type-box', 'iso-remote-box');
- initRemoteIsoField();
- initIsoUrlField();
- kimchi.listDistros(function(isos) {
- showRemoteIsoField(isos);
- }, function() {
- });
+ $('#iso-remote').attr("disabled", false).css('cursor',
'pointer');
+ $('#iso-remote').change(function() {
+ if (this.checked) {
+ if(currentPage === 'iso-local-box') { // slide twice
+ kimchi.switchPage(currentPage,
'iso-remote-box','left');
+ } else if(currentPage === 'vm-image-local-box') { // slide once
+ kimchi.switchPage(currentPage,
'iso-remote-box','left');
+ }
+ currentPage = 'iso-remote-box';
+ $('#template-add-window .modal-body .template-pager').animate({
+ height: "689px"
+ },400);
+ initRemoteIsoField();
+ initIsoUrlField();
+ kimchi.listDistros(function(isos) {
+ showRemoteIsoField(isos);
+ }, function() {
+ });
+ }
});
};
enabledRemoteIso();
- $('#iso-remote-box-back').click(function() {
- kimchi.switchPage('iso-remote-box', 'iso-type-box',
'right');
- });
-
//1-2-1 remote iso list
var initRemoteIsoField = function() {
$('#load-remote-iso').show();
@@ -257,6 +358,25 @@ kimchi.template_add_main = function() {
$('#iso-url-field').hide();
$('#select-all-remote-iso').prop('checked', false);
$('#btn-template-remote-iso-create').attr('disabled',
'disabled');
+
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
+ $('#iso-url').val('');
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','inline-block'); // 4 - Remote folder
path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
+ $('#select-all-local-iso,
#select-all-remote-iso').prop('checked', false); // False to all select-all
checkboxes
+
+ $('#list-local-iso [type="checkbox"], #list-remote-iso
[type="checkbox"]').prop('checked', false); // False to all list
checkboxes
+
};
var showRemoteIsoField = function(isos) {
@@ -286,7 +406,21 @@ kimchi.template_add_main = function() {
$('#select-all-remote-iso').click(function() {
$('#list-remote-iso [type="checkbox"]').prop('checked',
$(this).prop('checked'));
if ($(this).prop('checked')) {
- $('#btn-template-remote-iso-create').removeAttr('disabled');
+
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
+ $('#iso-url').val('');
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+
$('#btn-template-remote-iso-create').removeAttr('disabled').css('display','inline-block');
// 5 - Remote selected isos
+
} else {
$('#btn-template-remote-iso-create').attr('disabled',
'disabled');
}
@@ -298,6 +432,21 @@ kimchi.template_add_main = function() {
$('#btn-template-remote-iso-create').removeAttr('disabled');
var length = $('#list-remote-iso
[type="checkbox"]').length;
$('#select-all-remote-iso').prop('checked', length ==
checkedLength);
+
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
+ $('#iso-url').val('');
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+
+
$('#btn-template-remote-iso-create').removeAttr('disabled').css('display','inline-block');
// 5 - Remote selected isos
+
} else {
$('#select-all-remote-iso').prop('checked', false);
$('#btn-template-remote-iso-create').attr('disabled',
'disabled');
@@ -310,19 +459,22 @@ kimchi.template_add_main = function() {
//1-2-2 remote iso url
var initIsoUrlField = function() {
- $('#iso-url-check').prop('checked', false);
- $('#iso-url-box').hide();
+
+ $('#iso-file').val('');
+ $('vm-image-local-text').val('');
$('#iso-url').val('');
- $('#btn-template-url-create').attr('disabled',
'disabled');
- }
- $('#iso-url-check').click(function() {
- if ($(this).prop('checked')) {
- $('#iso-url-box').slideDown();
- } else {
- $('#iso-url-box').slideUp();
- }
- });
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','none'); // 3 - File path
+
+
$('#btn-template-url-create').attr('disabled','disabled').css('display','inline-block');
// 4 - Remote folder path
+
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
+ }
$('#iso-url').on('input propertychange', function() {
if ($('#iso-url').val()) {
@@ -332,20 +484,34 @@ kimchi.template_add_main = function() {
}
});
- $('#vm-image-local').click(function(){
- kimchi.switchPage('iso-type-box', 'vm-image-local-box');
- });
- $('#vm-image-local-box-back').click(function(){
- kimchi.switchPage('vm-image-local-box', 'iso-type-box',
'right');
+ $('#vm-image-local').change(function(){
+ if(this.checked) {
+ if(currentPage === 'iso-local-box') {
+ kimchi.switchPage(currentPage,
'vm-image-local-box','left');
+ } else if(currentPage === 'iso-remote-box') {
+ kimchi.switchPage(currentPage,
'vm-image-local-box','right');
+ }
+ currentPage = 'vm-image-local-box';
+ $('#template-add-window .modal-body .template-pager').animate({
+ height: "100px"
+ },400);
+
+ $('#btn-template-file-create').attr('disabled',
'disabled').css('display','none'); // 1 - Folder path
+ $('#btn-template-local-iso-create').attr('disabled',
'disabled').css('display','none'); // 2 - Selected ISOs
+ $('#vm-image-local-box-button').attr('disabled',
'disabled').css('display','inline-block'); // 3 - File path
+ $('#btn-template-url-create').attr('disabled',
'disabled').css('display','none'); // 4 - Remote folder path
+ $('#btn-template-remote-iso-create').attr('disabled',
'disabled').css('display','none'); // 5 - Remote selected isos
+
+ }
});
$('input', '#vm-image-local-box').on('keyup cut paste',
function(){
setTimeout(function(){
var isValid = kimchi.template_check_path($('input',
'#vm-image-local-box').val());
$('input',
'#vm-image-local-box').toggleClass('invalid-field', !isValid);
- $('button', $('.body',
'#vm-image-local-box')).button(isValid ? "enable" :
"disable");
+ $('#vm-image-local-box-button').attr('disabled', (isValid ?
"false" : "true"));
}, 0);
});
- $('button', $('.body', '#vm-image-local-box')).button({
+ $('button', $('#vm-image-local-box')).button({
disabled: true
}).click(function(){
$('input', '#vm-image-local-box').prop('disabled',
true);
@@ -438,4 +604,4 @@ kimchi.template_check_path = function(filePath) {
return reg.test(filePath);
}
return false;
-};
+};
\ No newline at end of file
diff --git a/src/wok/plugins/kimchi/ui/pages/template-add.html.tmpl
b/src/wok/plugins/kimchi/ui/pages/template-add.html.tmpl
index 4c0f1da..e441a99 100644
--- a/src/wok/plugins/kimchi/ui/pages/template-add.html.tmpl
+++ b/src/wok/plugins/kimchi/ui/pages/template-add.html.tmpl
@@ -24,207 +24,177 @@
<!DOCTYPE html>
<html>
<body>
-<div class="window" style="width: 992px;height: 660px;">
- <header>
- <h1 class="title h1 grey">$_("Add
Template")</h1>
- </header>
- <div class="content" style="margin-bottom: 0">
- <div class="page-list">
- <!-- 1 -->
- <div class="page" id="iso-type-box"
style="left:0">
- <h2 class="step-title">$_("Where is the source media
for this template? ")</h2>
- <ul class="step-choose">
- <li>
- <a id="iso-local"
class="local">$_("Local ISO Image")</a>
- </li>
- <li>
- <a id="vm-image-local"
class="local">$_("Local Image File")</a>
- </li>
- <li>
- <a id="iso-remote"
class="remote">$_("Remote ISO Image")</a>
- </li>
- </ul>
+<div id="template-add-window" class="window modal-content">
+ <div class="modal-header">
+ <h4 class="modal-title">$_("Add
Template")</h4>
</div>
-
- <!-- 1-1 -->
- <div class="page" id="iso-local-box">
- <header>
- <a class="back"
id="iso-local-box-back"></a>
- <h2 class="step-title">$_("Local ISO
Image")</h2>
- </header>
-
- <button class="btn-normal" id="iso-search"
style="display: none"><span class="text">$_("Search
ISOs")</span></button>
- <button class="btn-normal" id="iso-search-loading"
style="display: none"><span class="text">$_("Please,
wait...")</span></button>
- <!-- 1-1-1 -->
- <div id="local-iso-field" class="iso-field"
style="display: none;">
- <h3 class="step-subtitle">
- $_("The following ISOs are available:")
- </h3>
- <div class="toolbar">
- <label class="check-all">
- <input type="checkbox"
id="select-all-local-iso">$_("All")
+ <div class="modal-body">
+ <div class="template-modal-container">
+ <div>
+ <h5>$_("Where is the source media for this template?
")</h5>
+ <label class="radio-inline">
+ <input type="radio" checked="checked"
name="iso-source" id="iso-local" value="iso-local">
$_("Local ISO Image")
+ </label>
+ <label class="radio-inline">
+ <input type="radio" name="iso-source"
id="vm-image-local" value="vm-image-local"> $_("Local Image
File")
</label>
+ <label class="radio-inline">
+ <input type="radio" name="iso-source"
id="iso-remote" value="iso-remote"> $_("Remote ISO
Image")
+ </label>
</div>
- <div>
- <form id="form-local-iso">
- <ul id="list-local-iso"
class="list-iso">
- </ul>
- </form>
- <script id="tmpl-list-local-iso"
type="text/html">
- <li>
- <label>
- <input type="checkbox"
name="iso" value="{isoId}">
- <div class="box box-iso">
- <div class="iso-icon
{os_distro}">
- </div>
- <h3 class="iso-title"
title="{name}">
- {name}
- </h3>
- <div class="iso-info">
- <div class="iso-info-col">
- <div class="iso-info-item"
title="{os_distro}">
- $_("OS: "){os_distro}
- </div>
- <div class="iso-info-item"
title="{os_version}">
- $_("Version:
"){os_version}
- </div>
- </div>
- <div class="iso-info-col">
- <div class="iso-info-item"
title="{capacity}">
- $_("Size: "){capacity}
- </div>
- </div>
+ </div>
+ <div class="template-pager">
+ <div class="page-list">
+ <div class="page" id="iso-local-box">
+ <!-- 1-1-2 -->
+ <div id="iso-file-field">
+ <div id="iso-file-box"
class="custom-iso-field">
+ <div class="form-group">
+ <label for="iso-file">Provide a
File Path for a specific ISO image:</label>
+ <input type="text"
class="form-control" id="iso-file" name="iso-file">
</div>
</div>
- </label>
- </li>
- </script>
- </div>
- <div class="button-field">
- <button class="btn-normal" id="iso-more"
style="display: none"><span class="text">$_("Search more
ISOs")</span></button>
- <button class="btn-normal"
id="iso-more-loading" style="display: none"><span
class="text">$_("Please, wait...")</span></button>
- <button class="btn-normal"
id="btn-template-local-iso-create" disabled="disabled"><span
class="text">$_("Create Templates from Selected
ISO")</span></button>
- </div>
- </div>
+ </div>
+ <button class="btn btn-primary"
id="iso-search" style="display: none">$_("Search
ISOs")</button>
+ <button class="btn btn-primary"
id="iso-search-loading" style="display: none"><span
class="wok-loading-icon"></span> $_("Please,
wait...")</button>
+ <!-- 1-1-1 -->
+ <div id="local-iso-field"
class="iso-field" style="display: none;">
+ <div class="row">
+ <p>$_("The following ISOs are
available:")</p>
+ </div>
+ <div class="checkbox">
+ <label class="check-all">
+ <input type="checkbox"
id="select-all-local-iso">$_("All")
+ </label>
+ </div>
+ <div class="row">
+ <form id="form-local-iso">
+ <ul id="list-local-iso"
class="list-iso">
+ </ul>
+ </form>
+ <script id="tmpl-list-local-iso"
type="text/html">
+ <li class="col-md-3">
+ <label
class="box-iso-outer">
+ <input type="checkbox"
class="iso-checkbox-hidden" name="iso" value="{isoId}">
+ <span
class="box-iso-border">
+ <span
class="box-iso-inner">
+ <h3 class="iso-title
{os_distro}" title="{name}">
+ {name}
+ </h3>
+ <dl
class="iso-info">
+
<dt>{os_distro}</dt>
+ <dd>$_("OS:
")</dd>
+
<dt>{os_version}</dt>
+
<dd>$_("Version: ")</dd>
+
<dt>{capacity}</dt>
+ <dd>$_("Size:
")</dd>
+ </dl>
+ </span>
+ </span>
+ </label>
+ </li>
+ </script>
+ </div>
+ <div class="row">
+ <button class="btn btn-primary"
id="iso-more" style="display: none"><span
class="text">$_("Search more ISOs")</span></button>
+ <button class="btn btn-primary"
id="iso-more-loading" style="display: none"><span
class="wok-loading-icon"></span> $_("Please,
wait...")</button>
+ </div>
+ </div>
+ </div>
- <!-- 1-1-2 -->
- <div id="iso-file-field">
- <h3 class="step-subtitle">
- <label>
- <input type="checkbox"
id="iso-file-check">
- $_("I want to use a specific ISO file")
- </label>
- </h3>
- <div id="iso-file-box"
class="custom-iso-field">
- <div class="input-wrapper"><input
type="text" class="text" id="iso-file"
name="iso-file"></div>
- <button class="btn-normal"
id="btn-template-file-create" disabled="disabled"><span
class="text">$_("Create")</span></button>
- </div>
- </div>
+ <div class="page"
id="vm-image-local-box">
+ <div class="from-group">
+ <label
for="vm-image-local-text">$_("File Path:")</label>
+ <input type="text"
class="form-control" id="vm-image-local-text" />
+ </div>
+ </div>
- </div>
+ <!-- 1-2 -->
+ <div class="page" id="iso-remote-box">
- <div class="page" id="vm-image-local-box">
- <header>
- <a class="back"
id="vm-image-local-box-back"></a>
- <h2 class="step-title">$_("Local Image
File")</h2>
- </header>
- <div class="body">
- <label for="vm-image-local-text">$_("File
Path:")</label>
- <input type="text" id="vm-image-local-text"
/>
- <button
class="ui-button-primary">$_("Create")</button>
- </div>
- </div>
+ <!-- 1-2-2 -->
+ <div id="iso-url-field" style="display:
none;">
+ <div id="iso-url-box"
class="form-group">
+ <label for="iso-url">Provide a URL
for a specific ISO image:</label>
+ <input type="text"
class="form-control" id="iso-url" name="iso-url">
+ </div>
+ </div>
- <!-- 1-2 -->
- <div class="page" id="iso-remote-box">
- <header>
- <a class="back"
id="iso-remote-box-back"></a>
- <h2 class="step-title">$_("Remote ISO
Image")</h2>
- </header>
-
- <!-- 1-2-0 -->
- <div id="load-remote-iso">
- <h3 class="step-subtitle">
- <label>
- <img src =
"plugins/kimchi/images/theme-default/loading.gif" />
- $_("Loading default remote ISOs ...")
- </label>
- </h3>
- </div>
+ <!-- 1-2-0 -->
+ <div id="load-remote-iso">
+ <p><span
class="wok-loading-icon"></span> $_("Loading default remote ISOs
...")</p>
+ </div>
- <!-- 1-2-1 -->
- <div id="remote-iso-field" class="iso-field"
style="display: none;">
- <h3 class="step-subtitle">
- $_("The following ISOs are available:")
- </h3>
- <div class="toolbar">
- <label class="check-all">
- <input type="checkbox"
id="select-all-remote-iso">$_("All")
- </label>
- </div>
- <div>
- <form id="form-remote-iso">
- <ul id="list-remote-iso"
class="list-iso">
- </ul>
- </form>
- <script id="tmpl-list-remote-iso"
type="text/html">
- <li>
- <label>
- <input type="checkbox"
name="iso" value="{isoId}">
- <div class="box box-iso">
- <div class="iso-icon
{os_distro}">
- </div>
- <h3 class="iso-title"
title="{name}">
- {name}
- </h3>
- <div class="iso-info">
- <div class="iso-info-col">
- <div class="iso-info-item"
title="{os_distro}">
- $_("OS: "){os_distro}
- </div>
- <div class="iso-info-item"
title="{os_version}">
- $_("Version:
"){os_version}
- </div>
-
- </div>
- <div class="iso-info-col">
- <div class="iso-info-item"
title="{os_arch}">
- $_("Arch: "){os_arch}
- </div>
- </div>
- </div>
- </div>
- </label>
- </li>
- </script>
+ <!-- 1-2-1 -->
+ <div id="remote-iso-field"
class="iso-field" style="display: none;">
+ <div class="row">
+ <p>$_("The following ISOs are
available:")</p>
+ </div>
+ <div class="checkbox">
+ <label class="check-all">
+ <input type="checkbox"
id="select-all-remote-iso">$_("All")
+ </label>
+ </div>
+ <div class="row">
+ <form id="form-remote-iso">
+ <ul id="list-remote-iso"
class="list-iso">
+ </ul>
+ </form>
+ <script id="tmpl-list-remote-iso"
type="text/html">
+ <li class="col-md-3">
+ <label
class="box-iso-outer">
+ <input type="checkbox"
class="iso-checkbox-hidden" name="iso" value="{isoId}">
+ <span
class="box-iso-border">
+ <span
class="box-iso-inner">
+ <h3 class="iso-title
{os_distro}" title="{name}">
+ {name}
+ </h3>
+ <dl
class="iso-info">
+
<dt>{os_distro}</dt>
+ <dd>$_("OS:
")</dd>
+
<dt>{os_version}</dt>
+ <dd>$_("Version:
")</dd>
+
<dt>{os_arch}</dt>
+ <dd>$_("Arch:
")</dd>
+ </dl>
+ </span>
+ </span>
+ </label>
+ </li>
+ </script>
+ </div>
+ </div>
</div>
- <div class="button-field">
- <button class="btn-normal"
id="btn-template-remote-iso-create" disabled="disabled"><span
class="text">$_("Create Templates from Selected
ISO")</span></button>
- </div>
- </div>
+ </div>
+ </div>
+ <div class="modal-footer">
- <!-- 1-2-2 -->
- <div id="iso-url-field" style="display:
none;">
- <h3 class="step-subtitle">
- <label>
- <input type="checkbox"
id="iso-url-check">
- $_("I want to use a custom URL")
- </label>
- </h3>
- <div id="iso-url-box"
class="custom-iso-field">
- <div class="input-wrapper"><input
type="text" class="text" id="iso-url"
name="iso-url"></div>
- <button class="btn-normal"
id="btn-template-url-create" disabled="disabled"><span
class="text">$_("Create")</span></button>
- </div>
- </div>
+ <!-- Template from local file path -->
- </div>
- </div>
+ <!-- TODO: Use only one button and direct action based on current form
field and "page" -->
+
+ <button class="btn btn-default"
id="btn-template-file-create"
disabled="disabled">$_("Create")</button>
+
+ <!-- Template from selected local isos -->
+
+ <!-- Old: $_("Create Templates from Selected ISO") -->
+ <button class="btn btn-default"
id="btn-template-local-iso-create"
disabled="disabled">$_("Create")</button>
+
+ <!-- Template from local file path -->
+
+ <button id="vm-image-local-box-button" class="btn
btn-default ui-button-primary">$_("Create")</button>
+
+ <!-- Template from URL Iso -->
+
+ <button class="btn btn-default"
id="btn-template-url-create"
disabled="disabled">$_("Create")</button>
+
+ <!-- Template from selected remote isos -->
+
+ <!-- Old: $_("Create Templates from Selected ISO") -->
+ <button class="btn btn-default"
id="btn-template-remote-iso-create"
disabled="disabled">$_("Create")</button>
+
+ <button class="btn btn-default"
data-dismiss="modal"
type="button">$_("Cancel")</button>
</div>
- <footer>
- <div class="button-group">
- <button class="btn-normal close"
type="button"><span
type="text">$_("Cancel")</span></button>
- </div>
- </footer>
</div>
<script>
kimchi.template_add_main();
diff --git a/src/wok/plugins/kimchi/ui/pages/template-edit.html.tmpl
b/src/wok/plugins/kimchi/ui/pages/template-edit.html.tmpl
index aa7fd1a..433cb48 100644
--- a/src/wok/plugins/kimchi/ui/pages/template-edit.html.tmpl
+++ b/src/wok/plugins/kimchi/ui/pages/template-edit.html.tmpl
@@ -22,129 +22,127 @@
#silent _ = t.gettext
#silent _t = t.gettext
-<div id="template-edit-window" class="window">
- <header>
- <h1 class="title h1 grey">$_("Edit
Template")</h1>
- </header>
- <div class="content">
- <div id="edit-template-tabs">
- <input type="hidden" id="template-name"
name="templateName" />
- <ul>
- <li>
- <a
href="#form-template-general">$_("General")</a>
- </li>
- <li>
- <a
href="#form-template-storage">$_("Storage")</a>
- </li>
- <li>
- <a
href="#form-template-interface">$_("Interface")</a>
- </li>
- <li>
- <a
href="#form-template-processor">$_("Processor")</a>
- </li>
- </ul>
- <form id="form-template-general">
- <div class="form-template-inline-wrapper">
- <div class="template-edit-wrapper-label">
- <label
for="template-edit-id-textbox">$_("Name")</label>
- </div>
- <div class="template-edit-wrapper-label">
- <label
for="template-edit-vendor-textbox">$_("Vendor")</label>
- </div>
- <div class="template-edit-wrapper-label">
- <label
for="template-edit-version-textbox">$_("Version")</label>
- </div>
- <div class="template-edit-wrapper-label">
- <label
for="template-edit-memory-textbox">$_("Memory (MB)")</label>
- </div>
- <div class="template-edit-wrapper-label
templ-edit-cdrom">
- <label
for="template-edit-cdrom-textbox">$_("CDROM")</label>
- </div>
- <div class="template-edit-wrapper-label templ-edit-vm-image
hide">
- <label
for="template-edit-vmimage-textbox">$_("Image File")</label>
- </div>
- <div class="template-edit-wrapper-label">
- <label>$_("Graphics")</label>
- </div>
- </div>
- <div class="form-template-inline-wrapper">
- <div class="template-edit-wrapper-controls">
- <input id="template-edit-id-textbox"
name="name" type="text" />
- </div>
- <div class="template-edit-wrapper-controls">
- <input id="template-edit-vendor-textbox"
name="os_distro" type="text" disabled="disabled" />
- </div>
- <div class="template-edit-wrapper-controls">
- <input id="template-edit-version-textbox"
name="os_version" type="text" disabled="disabled" />
- </div>
- <div class="template-edit-wrapper-controls">
- <input id="template-edit-memory-textbox"
name="memory" type="text" />
- </div>
- <div class="template-edit-wrapper-controls
templ-edit-cdrom">
- <input id="template-edit-cdrom-textbox"
name="cdrom" type="text" disabled="disabled" />
- </div>
- <div class="template-edit-wrapper-controls
templ-edit-vm-image hide">
- <input id="template-edit-vmimage-textbox"
name="vm-image" type="text" disabled="disabled" />
- </div>
- <div class="template-edit-wrapper-controls">
- <div class="btn dropdown popable">
- <input id="template-edit-graphics"
name="graphics" type="hidden" />
- <span class="text"
id="template-edit-graphics-label"></span><span
class="arrow"></span>
- <div class="popover" style="width:
100%">
- <ul class="select-list"
id="template-edit-graphics-list" data-target="template-edit-graphics"
data-label="template-edit-graphics-label">
- </ul>
+<div id="template-edit-window" class="window modal-content">
+ <div class="modal-header">
+ <h4 class="modal-title">$_("Edit
Template")</h4>
+ </div>
+ <div class="modal-body">
+ <div id="edit-template-tabs">
+ <input type="hidden" id="template-name"
name="templateName" />
+ <ul>
+ <li>
+ <a
href="#form-template-general">$_("General")</a>
+ </li>
+ <li>
+ <a
href="#form-template-storage">$_("Storage")</a>
+ </li>
+ <li>
+ <a
href="#form-template-interface">$_("Interface")</a>
+ </li>
+ <li>
+ <a
href="#form-template-processor">$_("Processor")</a>
+ </li>
+ </ul>
+ <form id="form-template-general">
+ <div class="form-template-inline-wrapper">
+ <div class="template-edit-wrapper-label">
+ <label
for="template-edit-id-textbox">$_("Name")</label>
+ </div>
+ <div class="template-edit-wrapper-label">
+ <label
for="template-edit-vendor-textbox">$_("Vendor")</label>
+ </div>
+ <div class="template-edit-wrapper-label">
+ <label
for="template-edit-version-textbox">$_("Version")</label>
+ </div>
+ <div class="template-edit-wrapper-label">
+ <label
for="template-edit-memory-textbox">$_("Memory (MB)")</label>
+ </div>
+ <div class="template-edit-wrapper-label
templ-edit-cdrom">
+ <label
for="template-edit-cdrom-textbox">$_("CDROM")</label>
+ </div>
+ <div class="template-edit-wrapper-label
templ-edit-vm-image hide">
+ <label
for="template-edit-vmimage-textbox">$_("Image File")</label>
+ </div>
+ <div class="template-edit-wrapper-label">
+ <label>$_("Graphics")</label>
</div>
</div>
- </div>
- </div>
- </form>
- <form id="form-template-storage">
- <div class="template-tab-header">
- <span class="template-storage-cell">$_("Storage
Pool")</span>
- <span
class="template-storage-cell">$_("Type")</span>
- <span
class="template-storage-cell">$_("Disk(GB)")</span>
- <span class="template-storage-cell">$_("Disk
Format")</span>
- <button type="button"
id="template-edit-storage-add-button"
class="action-area"></button>
- </div>
- <div class="template-tab-body">
- </div>
- </form>
- <form id="form-template-interface">
- <div class="template-tab-header">
- <span
class="template-interface-cell">$_("Network")</span>
- <span
class="template-interface-cell">$_("Type")</span>
- <button type="button"
id="template-edit-interface-add-button"
class="action-area"></button>
- </div>
- <div class="template-tab-body"></div>
- </form>
- <form id="form-template-processor">
- <div>
- <label for="cpus">$_("CPU
Number")</label>
- <input type="text" value="1"
id="cpus" />
- </div>
- <div class="manual">
- <input type="checkbox" id="cpus-check" />
- <label for="cpus-check">$_("Manually set CPU
topology")</label>
- </div>
- <div class="topology hide">
- <div>
- <label
for="cores">$_("Cores")</label>
- <input type="text" value="1"
id="cores" />
- </div>
- <div>
- <label
for="threads">$_("Threads")</label>
- <select id="threads"></select>
- </div>
+ <div class="form-template-inline-wrapper">
+ <div class="template-edit-wrapper-controls">
+ <input id="template-edit-id-textbox"
name="name" type="text" />
+ </div>
+ <div class="template-edit-wrapper-controls">
+ <input id="template-edit-vendor-textbox"
name="os_distro" type="text" disabled="disabled" />
+ </div>
+ <div class="template-edit-wrapper-controls">
+ <input id="template-edit-version-textbox"
name="os_version" type="text" disabled="disabled" />
+ </div>
+ <div class="template-edit-wrapper-controls">
+ <input id="template-edit-memory-textbox"
name="memory" type="text" />
+ </div>
+ <div class="template-edit-wrapper-controls
templ-edit-cdrom">
+ <input id="template-edit-cdrom-textbox"
name="cdrom" type="text" disabled="disabled" />
+ </div>
+ <div class="template-edit-wrapper-controls
templ-edit-vm-image hide">
+ <input id="template-edit-vmimage-textbox"
name="vm-image" type="text" disabled="disabled" />
+ </div>
+ <div class="template-edit-wrapper-controls">
+ <div class="btn dropdown popable">
+ <input id="template-edit-graphics"
name="graphics" type="hidden" />
+ <span class="text"
id="template-edit-graphics-label"></span><span
class="arrow"></span>
+ <div class="popover" style="width:
100%">
+ <ul class="select-list"
id="template-edit-graphics-list" data-target="template-edit-graphics"
data-label="template-edit-graphics-label">
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ </form>
+ <form id="form-template-storage">
+ <div class="template-tab-header">
+ <span
class="template-storage-cell">$_("Storage Pool")</span>
+ <span
class="template-storage-cell">$_("Type")</span>
+ <span
class="template-storage-cell">$_("Disk(GB)")</span>
+ <span
class="template-storage-cell">$_("Disk Format")</span>
+ <button type="button"
id="template-edit-storage-add-button"
class="action-area"></button>
+ </div>
+ <div class="template-tab-body">
+ </div>
+ </form>
+ <form id="form-template-interface">
+ <div class="template-tab-header">
+ <span
class="template-interface-cell">$_("Network")</span>
+ <span
class="template-interface-cell">$_("Type")</span>
+ <button type="button"
id="template-edit-interface-add-button"
class="action-area"></button>
+ </div>
+ <div class="template-tab-body"></div>
+ </form>
+ <form id="form-template-processor">
+ <div>
+ <label for="cpus">$_("CPU
Number")</label>
+ <input type="text" value="1"
id="cpus" />
+ </div>
+ <div class="manual">
+ <input type="checkbox" id="cpus-check"
/>
+ <label for="cpus-check">$_("Manually set
CPU topology")</label>
+ </div>
+ <div class="topology hide">
+ <div>
+ <label
for="cores">$_("Cores")</label>
+ <input type="text" value="1"
id="cores" />
+ </div>
+ <div>
+ <label
for="threads">$_("Threads")</label>
+ <select id="threads"></select>
+ </div>
+ </div>
+ </form>
</div>
- </form>
- </div>
</div>
- <footer>
- <div class="btn-group">
- <a id="tmpl-edit-button-save" class="btn-normal"
href="javascript:void(0);"><span
class="text">$_("Save")</span></a>
- <button class="btn-normal close"
type="button"><span
class="text">$_("Cancel")</span></button>
- </div>
- </footer>
+ <div class="modal-footer">
+ <a id="tmpl-edit-button-save" class="btn btn-default"
href="javascript:void(0);"><span
class="text">$_("Save")</span></a>
+ <button class="btn btn-default" type="button"
data-dismiss="modal">$_("Cancel")</button>
+ </div>
</div>
<script>
kimchi.template_edit_main();
diff --git a/src/wok/plugins/kimchi/ui/pages/templates.html.tmpl
b/src/wok/plugins/kimchi/ui/pages/templates.html.tmpl
index af1cf3f..977f30f 100644
--- a/src/wok/plugins/kimchi/ui/pages/templates.html.tmpl
+++ b/src/wok/plugins/kimchi/ui/pages/templates.html.tmpl
@@ -28,47 +28,64 @@
<script src="plugins/kimchi/js/kimchi.min.js"></script>
</head>
<body>
-<div class="toolbar">
- <div class="tools" style="display:none">
- <a id="template-add" class="btn-tool"
href="javascript:void(0);"><span class="icon
add">+</span></a>
- </div>
-</div>
-<div>
- <div id="noTemplates" class="list-no-result"
style="display: none;">
- $_("No templates found.")
- </div>
-
- <ul id="templateList"
class="empty-when-logged-off"></ul>
-
- <script id="templateTmpl" type="html/text">
-
- <div class="template-box white-box template-border">
- <div class="btn dropdown popable" style="width:
70px">
- <span
class="text">$_("Actions")</span><span
class="arrow"></span>
- <div class="popover actionsheet right-side"
style="width: 250px">
- <a class="button-big template-edit"
data-template='{name}'>$_("Edit")</a>
- <a class="button-big template-clone"
data-template='{name}'>$_("Clone")</a>
- <a class="button-big red template-delete"
data-template='{name}'>$_("Delete")</a>
- </div>
- </div>
-
- <div class="template-icon template-icon-position">
- <img alt="" src="{icon}">
- <img alt="" src="{location}"
class="template-type-icon-position">
+<div id="templates-root-container">
+ <nav class="navbar navbar-default toolbar">
+ <div class="container">
+ <!-- Brand and toggle get grouped for better mobile display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle
collapsed" data-toggle="collapse" data-target="#toolbar"
aria-expanded="false">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ </div>
+ <!-- Collect the nav links, forms, and other content for toggling -->
+ <div class="collapse navbar-collapse"
id="toolbar">
+ <ul class="nav navbar-nav navbar-right tools"
display="none">
+ <li><a id="template-add"
class="btn-tool" href="javascript:void(0);"><i class="fa
fa-plus-circle"></i><span>Add a
Template</span></a></li>
+ </ul>
</div>
- <div class="template-general template-title
template-title-position">
- <h2 class="title"
title="{name}">{name}</h2>
- </div>
- <div class="template-os-position">
- <div class="template-text">$_("OS"):
{os_distro}</div>
- <div class="template-text">$_("Version"):
{os_version}</div>
- </div>
- <div class="template-cpu-position">
- <div class="template-text">$_("CPUs"):
{cpus}</div>
- <div class="template-text">$_("Memory"):
{memory}M</div>
+ </div>
+ </nav>
+ <div class="templates">
+ <div class="container">
+ <div id="alert-container"></div>
+ <div id="noTemplates" class="list-no-result"
style="display: none;">
+ $_("No templates found.")
</div>
+ <ul id="templateList"
class="empty-when-logged-off"></ul>
+ <script id="templateTmpl" type="html/text">
+ <div class="template-box white-box template-border">
+ <div class="btn dropdown popable" style="width:
70px">
+ <span
class="text">$_("Actions")</span><span
class="arrow"></span>
+ <div class="popover actionsheet right-side"
style="width: 250px">
+ <a class="button-big template-edit"
data-template='{name}'>$_("Edit")</a>
+ <a class="button-big template-clone"
data-template='{name}'>$_("Clone")</a>
+ <a class="button-big red template-delete"
data-template='{name}'>$_("Delete")</a>
+ </div>
+ </div>
+ <div class="template-icon template-icon-position">
+ <img alt="" src="{icon}">
+ <img alt="" src="{location}"
class="template-type-icon-position">
+ </div>
+ <div class="template-general template-title
template-title-position">
+ <h2 class="title"
title="{name}">{name}</h2>
+ </div>
+ <div class="template-os-position">
+ <div class="template-text">$_("OS"):
{os_distro}</div>
+ <div
class="template-text">$_("Version"): {os_version}</div>
+ </div>
+ <div class="template-cpu-position">
+ <div class="template-text">$_("CPUs"):
{cpus}</div>
+ <div
class="template-text">$_("Memory"): {memory}M</div>
+ </div>
+ </div>
+ </script>
</div>
- </script>
+ </div>
+<div>
+<div id="modalWindow" class="modal fade host-modal
templates-modal" tabindex="-1" role="dialog"
aria-labelledby="templatesModalLabel" aria-hidden="true">
</div>
<script>
kimchi.template_main();
--
1.9.3