[Kimchi-devel] [PATCH] [Kimchi] Adding maxmemory for guest and templates

peterpnns at gmail.com peterpnns at gmail.com
Tue Feb 23 19:26:39 UTC 2016


From: Samuel Guimarães <sguimaraes943 at gmail.com>

Signed-off-by: peterpennings <peterpnns at gmail.com>
---
 ui/css/kimchi.css                      | 20 +++++++-------------
 ui/css/src/modules/_edit-guests.scss   |  5 +----
 ui/js/src/kimchi.guest_edit_main.js    | 18 ++++++++++++++++++
 ui/js/src/kimchi.template_edit_main.js | 24 ++++++++++++++++++++++--
 ui/pages/guest-edit.html.tmpl          |  9 ++++++++-
 ui/pages/tabs/templates.html.tmpl      |  2 +-
 ui/pages/template-edit.html.tmpl       |  9 ++++++++-
 7 files changed, 65 insertions(+), 22 deletions(-)

diff --git a/ui/css/kimchi.css b/ui/css/kimchi.css
index b3ff8bd..950c371 100644
--- a/ui/css/kimchi.css
+++ b/ui/css/kimchi.css
@@ -78,7 +78,7 @@
 #guest-add-window.modal-content label.box-iso-outer span.box-iso-border {
   display: block;
   border: 3px solid transparent;
-  transition: all 0.1s ease-in-out;
+  transition: all .1s ease-in-out;
 }
 
 #template-add-window.modal-content label.box-iso-outer .iso-radio-hidden:checked + span.box-iso-border,
@@ -100,7 +100,7 @@
   display: block;
   border: 1px solid transparent;
   background: #fff;
-  transition: all 0.1s ease-in-out;
+  transition: all .1s ease-in-out;
 }
 
 #template-add-window.modal-content ul.list-template,
@@ -679,10 +679,7 @@
 }
 
 #guest-edit-window #form-guest-edit-general #guest-edit-memory-textbox,
-#guest-edit-window #form-guest-edit-general #guest-show-max-memory {
-  display: block;
-}
-
+#guest-edit-window #form-guest-edit-general #guest-show-max-memory,
 #guest-edit-window #form-guest-edit-general #guest-edit-cores-textbox,
 #guest-edit-window #form-guest-edit-general #guest-show-max-processor {
   display: inline-block;
@@ -1025,7 +1022,7 @@
   border: 1px solid #eee !important;
   margin-bottom: 3px;
   display: block;
-  padding: 0.2em 0.6em 0.3em;
+  padding: .2em .6em .3em;
   font-weight: 700;
   line-height: 1;
   text-align: left;
@@ -1295,7 +1292,7 @@
   height: 664px;
   width: 2164px;
   left: 0;
-  transition: left 0.2s ease-in-out;
+  transition: left .2s ease-in-out;
 }
 
 #template-add-window.modal-content p {
@@ -1571,9 +1568,7 @@
   padding-right: 35px !important;
 }
 
-#templates-root-container .wok-vm-gallery .item-hidden.column-type,
-#templates-root-container .wok-vm-gallery .item-hidden.column-version,
-#templates-root-container .wok-vm-gallery .item-hidden.column-processors {
+#templates-root-container .wok-vm-gallery .item-hidden.column-type, #templates-root-container .wok-vm-gallery .item-hidden.column-version, #templates-root-container .wok-vm-gallery .item-hidden.column-processors {
   padding-bottom: 11px;
 }
 
@@ -2114,8 +2109,7 @@
   white-space: nowrap;
 }
 
-.storage-modal .filter-select.popable .popover ul li:hover,
-.storage-modal .filter-select.popable .popover ul li:focus,
+.storage-modal .filter-select.popable .popover ul li:hover, .storage-modal .filter-select.popable .popover ul li:focus,
 .storage-modal .storage-target-input .popover ul li:hover,
 .storage-modal .storage-target-input .popover ul li:focus,
 .storage-modal .storage-add-input .popover ul li:hover,
diff --git a/ui/css/src/modules/_edit-guests.scss b/ui/css/src/modules/_edit-guests.scss
index 84d116b..c7c4293 100644
--- a/ui/css/src/modules/_edit-guests.scss
+++ b/ui/css/src/modules/_edit-guests.scss
@@ -39,10 +39,7 @@
         }
 
         #guest-edit-memory-textbox,
-        #guest-show-max-memory {
-            display: block;
-        }
-
+        #guest-show-max-memory,
         #guest-edit-cores-textbox,
         #guest-show-max-processor {
             display: inline-block;
diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
index 6daec53..960c650 100644
--- a/ui/js/src/kimchi.guest_edit_main.js
+++ b/ui/js/src/kimchi.guest_edit_main.js
@@ -664,6 +664,10 @@ kimchi.guest_edit_main = function() {
         guest['max-processor'] = guest.cpu_info['maxvcpus'];
         guest['icon'] = guest['icon'] || 'plugins/kimchi/images/icon-vm.png';
         $('#form-guest-edit-general').fillWithObject(guest);
+
+        $('#guest-edit-memory-textbox').val(parseInt(guest.memory.current));
+        $('#guest-edit-max-memory-textbox').val(parseInt(guest.memory.maxmemory));
+
         kimchi.thisVMState = guest['state'];
         refreshCDROMs();
         $('#guest-edit-attach-cdrom-button').on('click', function(event) {
@@ -673,6 +677,13 @@ kimchi.guest_edit_main = function() {
         if ((kimchi.thisVMState === "running") || (kimchi.thisVMState === "paused")) {
             $("#form-guest-edit-general input").not("#guest-edit-memory-textbox").prop("disabled", true);
         }
+        $('#guest-show-max-memory').on('click', function(e) {
+            e.preventDefault;
+            $('#guest-max-memory-panel').slideToggle();
+            var text = $('#guest-show-max-memory span.text').text();
+            $('#guest-show-max-memory span.text').text(text == i18n['KCHVMED6008M'] ? i18n['KCHVMED6009M'] : i18n['KCHVMED6008M']);
+            $('#guest-show-max-memory i.fa').toggleClass('fa-plus-circle fa-minus-circle');
+        });
 
         $('#guest-show-max-processor').on('click', function(e) {
             e.preventDefault;
@@ -717,6 +728,9 @@ kimchi.guest_edit_main = function() {
         if (data['memory'] !== undefined) {
             data['memory'] = Number(data['memory']);
         }
+        if (data['max-memory'] !== undefined) {
+            data['max-memory'] = Number(data['max-memory']);
+        }
         if (data['vcpus'] !== undefined) {
             var cpu = Number(data['vcpus']);
             var maxCpu = Number(data['max-processor']);
@@ -737,6 +751,10 @@ kimchi.guest_edit_main = function() {
             delete data['max-processor'];
         }
 
+        memory = {'current': data['memory'], 'maxmemory': data['max-memory']};
+
+        data.memory = memory;
+        delete data['max-memory'];
         kimchi.updateVM(kimchi.selectedGuest, data, function() {
             kimchi.listVmsAuto();
             wok.window.close();
diff --git a/ui/js/src/kimchi.template_edit_main.js b/ui/js/src/kimchi.template_edit_main.js
index 14f317f..94917a2 100644
--- a/ui/js/src/kimchi.template_edit_main.js
+++ b/ui/js/src/kimchi.template_edit_main.js
@@ -35,6 +35,14 @@ kimchi.template_edit_main = function() {
         });
     });
 
+    $('#template-show-max-memory').on('click', function(e) {
+            e.preventDefault;
+            $('.max-memory-field').slideToggle();
+            var text = $('#template-show-max-memory span.text').text();
+            $('#template-show-max-memory span.text').text(text == i18n['KCHVMED6008M'] ? i18n['KCHVMED6009M'] : i18n['KCHVMED6008M']);
+            $('#template-show-max-memory i.fa').toggleClass('fa-plus-circle fa-minus-circle');
+    });
+
     var initTemplate = function(template) {
         origDisks = template.disks;
         origNetworks = template.networks;
@@ -54,6 +62,9 @@ kimchi.template_edit_main = function() {
             $('input[name="' + prop + '"]', templateEditMain).val(value);
         }
 
+        $('#template-edit-memory-textbox').val(template.memory.current);
+        $('#template-edit-max-memory-textbox').val(template.memory.maxmemory);
+
         $('#template-edit-graphics').append('<option value="vnc" selected="selected">VNC</option>');
         var enableSpice = function() {
             if (kimchi.capabilities == undefined) {
@@ -293,6 +304,7 @@ kimchi.template_edit_main = function() {
                 $('#guest-max-processor-panel').slideToggle();
                 var text = $('#guest-show-max-processor span.text').text();
                 $('#guest-show-max-processor span.text').text(text == i18n['KCHVMED6008M'] ? i18n['KCHVMED6009M'] : i18n['KCHVMED6008M']);
+                $('#guest-show-max-processor i.fa').toggleClass('fa-plus-circle fa-minus-circle');
             });
         };
         kimchi.listNetworks(initInterface);
@@ -308,7 +320,7 @@ kimchi.template_edit_main = function() {
         $('.modal input[type="checkbox"]').prop('disabled', true);
         $('.modal select').prop('disabled', true);
         $('.modal .selectpicker').addClass('disabled');
-        var editableFields = [ 'name', 'memory', 'graphics'];
+        var editableFields = [ 'name', 'memory', 'graphics', 'max-memory'];
         var data = {};
         var disks = $('.template-tab-body .item', '#form-template-storage');
         var disksForUpdate = new Array();
@@ -340,13 +352,21 @@ kimchi.template_edit_main = function() {
             }
         });
         data['memory'] = Number(data['memory']);
+        data['max-memory'] = Number(data['max-memory']);
+
+        memory = {'current': data['memory'], 'maxmemory': data['max-memory']};
+
+        data['memory'] = memory;
+        delete data['max-memory'];
+
         var cpu = parseInt($('#vcpus').val());
         var maxCpu = parseInt($('#guest-edit-max-processor-textbox').val());
         var maxCpuFinal = cpu;  //Initially set maxCpu to be the same as cpu
         if (maxCpu >= cpu) {
             maxCpuFinal = maxCpu;
         }
-        if($("input:checkbox", "#form-template-processor").prop("checked")){
+
+         if($("input:checkbox", "#form-template-processor").prop("checked")){
             //Check if maxCpu field has a value
             data['cpu_info'] = {
                 vcpus: cpu,
diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
index 375d077..d6c60e2 100644
--- a/ui/pages/guest-edit.html.tmpl
+++ b/ui/pages/guest-edit.html.tmpl
@@ -57,7 +57,14 @@
                 </div>
                 <div class="form-group">
                     <label for="guest-edit-memory-textbox">$_("Memory (MB)")</label>
-                    <input id="guest-edit-memory-textbox" class="form-control" name="memory" type="number" min="1024" step="1024" />
+                    <div id="guest-memory">
+                        <input id="guest-edit-memory-textbox" class="form-control" name="memory" type="number" min="1024" step="1024" />
+                        <button id="guest-show-max-memory" class="btn btn-primary" type="button"><i class="fa fa-plus-circle"></i> <span class="text">$_("More")</span></button>
+                    </div>
+                </div>
+                <div id="guest-max-memory-panel" class="form-group">
+                    <label for="guest-edit-max-memory-textbox">$_("Max Memory (MB)")</label>
+                    <input id="guest-edit-max-memory-textbox" class="form-control" name="max-memory" type="number" min="1024" step="1024" />
                 </div>
                 <div class="form-group">
                     <label for="guest-edit-icon-textbox">$_("Icon")</label>
diff --git a/ui/pages/tabs/templates.html.tmpl b/ui/pages/tabs/templates.html.tmpl
index 0cb36bd..685b4e2 100644
--- a/ui/pages/tabs/templates.html.tmpl
+++ b/ui/pages/tabs/templates.html.tmpl
@@ -129,7 +129,7 @@
             --><span class="item-hidden column-version os-version-filter">$_("Version")</span><!--
             --><span class='column-processors cpus-filter' val="{cpus}"><strong>{cpus}</strong> $_("cores")</span><!--
             --><span class="item-hidden column-processors cpus-filter">$_("CPUs")</span><!--
-            --><span class='column-memory memory-filter' val="{memory}"><strong>{memory}</strong> $_("M")</span><!--
+            --><span class='column-memory memory-filter' val="{memory.current}"><strong>{memory.current}</strong> $_("M")</span><!--
             --><span class="item-hidden column-memory memory-filter">$_("Memory")</span>
         </li>
     </script>
diff --git a/ui/pages/template-edit.html.tmpl b/ui/pages/template-edit.html.tmpl
index 45ff504..95af7bc 100644
--- a/ui/pages/template-edit.html.tmpl
+++ b/ui/pages/template-edit.html.tmpl
@@ -61,6 +61,9 @@
                                     <div class="template-edit-wrapper-label">
                                         <label for="template-edit-memory-textbox">$_("Memory (MB)")</label>
                                     </div>
+                                    <div class="template-edit-wrapper-label max-memory-field" style="display: none;">
+                                        <label for="template-edit-max-memory-textbox">$_("Max Memory (MB)")</label>
+                                    </div>
                                     <div class="template-edit-wrapper-label templ-edit-cdrom">
                                         <label for="template-edit-cdrom-textbox">$_("CDROM")</label>
                                     </div>
@@ -82,7 +85,11 @@
                                         <input id="template-edit-version-textbox" class="form-control"  name="os_version" type="text" disabled="disabled" />
                                     </div>
                                     <div class="template-edit-wrapper-controls">
-                                        <input id="template-edit-memory-textbox" class="form-control"  name="memory" type="text" />
+                                        <input id="template-edit-memory-textbox" class="form-control"  name="memory" type="number" step="1024" min="1024" style="width: 75%; display: inline;"/>
+                                        <button id="template-show-max-memory" class="btn btn-primary" type="button"><i class="fa fa-plus-circle"></i> <span class="text">$_("More")</span></button>
+                                    </div>
+                                    <div class="template-edit-wrapper-controls max-memory-field" style="display: none;">
+                                        <input id="template-edit-max-memory-textbox" class="form-control" name="max-memory" type="number" min="1024" step="1024" />
                                     </div>
                                     <div class="template-edit-wrapper-controls templ-edit-cdrom">
                                         <input id="template-edit-cdrom-textbox" class="form-control" name="cdrom" type="text" disabled="disabled" />
-- 
2.5.0




More information about the Kimchi-devel mailing list