I don't think a new tab is needed for it.
From my view, we can add just one new input box on "General" tab and
label it as "Console password" (as it works for VNC and Spice)
On 08/11/2014 12:38 PM, shaohef(a)linux.vnet.ibm.com wrote:
From: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
After set the password, only the one knows the password can access
the vm graphic.
Signed-off-by: ShaoHe Feng <shaohef(a)linux.vnet.ibm.com>
Signed-off-by: Simon Jin <simonjin(a)linux.vnet.ibm.com>
---
ui/css/theme-default/guest-edit.css | 36 +++++++++++++++++++++++++++++++++++-
ui/js/src/kimchi.guest_edit_main.js | 32 +++++++++++++++++++++++++++++++-
ui/pages/guest-edit.html.tmpl | 15 +++++++++++++++
3 files changed, 81 insertions(+), 2 deletions(-)
diff --git a/ui/css/theme-default/guest-edit.css b/ui/css/theme-default/guest-edit.css
index 74c2237..eeea1cd 100644
--- a/ui/css/theme-default/guest-edit.css
+++ b/ui/css/theme-default/guest-edit.css
@@ -29,7 +29,8 @@
}
#form-guest-edit-general,
-#form-guest-edit-storage {
+#form-guest-edit-storage,
+#form-guest-edit-password {
padding: 1em;
}
@@ -67,6 +68,39 @@
width: 486px;
}
+#form-guest-edit-password .guest-edit-wrapper-controls {
+ width: 486px;
+ margin: auto;
+ text-align: center;
+}
+
+.div-guest-edit-password {
+ margin: auto;
+ text-align: center;
+ padding-bottom: 5px;
+ padding-top: 7px;
+}
+
+.guest-edit-wrapper-controls input[type="password"] {
+ font-size: 16px;
+ height: 38px;
+ background: #fff;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ box-shadow: 2px 2px 2px #eee inset;
+ border-top: 1px solid #bbb;
+ border-left: 1px solid #bbb;
+ padding-left: 10px;
+ width: 220px;
+ margin: auto;
+ text-align: left;
+}
+
+.err-mess {
+ color: #C85305;
+ text-align: center;
+}
+
.guest-edit-wrapper-controls input[type="text"] {
font-size: 16px;
height: 38px;
diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index 7d24b44..482fb7a 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -17,6 +17,8 @@
*/
kimchi.guest_edit_main = function() {
var buttonContainer = $('#action-button-container');
+ var password1 = $("#form-guest-edit-password input[name='pw1']");
+ var password2 = $("#form-guest-edit-password input[name='pw2']");
$('#guest-edit-tabs').tabs({
beforeActivate: function(event, ui) {
var display_list = ['form-guest-edit-general',
'form-guest-edit-permission']
@@ -25,12 +27,24 @@ kimchi.guest_edit_main = function() {
if(display_list.indexOf($(deactivated).attr('id')) >= 0) {
$(buttonContainer).removeClass('hidden');
}
+ if($(deactivated).attr('id') ===
'form-guest-edit-password'){
+ password2.val().length &&
$(buttonContainer).removeClass('hidden');
+ }
}
});
var guestEditForm = $('#form-guest-edit-general');
var saveButton = $('#guest-edit-button-save');
+ password1.on("keyup", function(event) {
+ $("#div-guest-edit-password-mess").hide();
+ });
+
+ password2.on("keyup", function(event) {
+ $("#div-guest-edit-password-mess").hide();
+ $(buttonContainer).removeClass('hidden');
+ });
+
var refreshCDROMs = function() {
kimchi.listVMStorages({
vm: kimchi.selectedGuest
@@ -398,6 +412,22 @@ kimchi.guest_edit_main = function() {
});
}
+ var passwordSubmit = function(event) {
+ if (password1.val() != password2.val()){
+ $("#div-guest-edit-password-mess").show();
+ }
+ else {
+ var data = {'ticket': {'passwd': password1.val()}};
+ kimchi.updateVM(kimchi.selectedGuest, data, function() {
+ kimchi.listVmsAuto();
+ kimchi.window.close();
+ }, function(err) {
+ kimchi.message.error(err.responseJSON.reason);
+ $(saveButton).prop('disabled', false);
+ });
+ }
+ }
+
var permissionSubmit = function(event) {
var content = { users: [], groups: [] };
$("#permission-sel-users").children().each(function(){
@@ -412,7 +442,7 @@ kimchi.guest_edit_main = function() {
}
// tap map, "general": 0, "storage": 1, "interface":
2, "permission": 3, "password": 4
- var submit_map = {0: generalSubmit, 3:permissionSubmit};
+ var submit_map = {0: generalSubmit, 3:permissionSubmit, 4: passwordSubmit};
var submitForm = function(event) {
var current = $('#guest-edit-tabs').tabs( "option",
"active" );
var submitFun = submit_map[current];
diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
index f24f7de..22b5207 100644
--- a/ui/pages/guest-edit.html.tmpl
+++ b/ui/pages/guest-edit.html.tmpl
@@ -41,6 +41,9 @@
<li>
<a
href="#form-guest-edit-permission">$_("Permission")</a>
</li>
+ <li>
+ <a
href="#form-guest-edit-password">$_("Password")</a>
+ </li>
</ul>
<form id="form-guest-edit-general">
<fieldset class="guest-edit-fieldset">
@@ -142,6 +145,18 @@
</div>
</div>
</form>
+ <form id="form-guest-edit-password"
class="guest-edit-password">
+ <div class="guest-edit-wrapper-controls">
+ <div class="div-guest-edit-password">
$_("Password:")</div>
+ <input type="password" name="pw1"
autofocus>
+ <div class="div-guest-edit-password">
$_("Confirm Password:")</div>
+ <input type="password" name="pw2">
+ </div>
+ <div id="div-guest-edit-password-mess"
class="err-mess" style="display: none;">
+ $_("The above two passwords are not same, please re-enter
them!")
+ </div>
+ <div class="body"></div>
+ </form>
</div>
</div>
<footer>