[Kimchi-devel] [PATCH] [Kimchi] [RFC] Max memory front-end

Aline Manera alinefm at linux.vnet.ibm.com
Mon Feb 15 13:01:40 UTC 2016



On 02/02/2016 10:03 AM, sguimaraes943 at gmail.com wrote:
> From: Samuel Guimarães <sguimaraes943 at gmail.com>
>
> This patch adds a hidden "Max Memory" numbered input in Edit Guests. It also changes memory "text" input in Edit Templates to "number" to match Edit Guests ui.
> Validation (form submission) wasn't added as the selected guest json doesn't have a "max memory" key.
>
> Signed-off-by: Samuel Guimarães <sguimaraes943 at gmail.com>
> ---
>   ui/css/kimchi.css                    | 27 ++++++++++++++++++++-------
>   ui/css/src/modules/_edit-guests.scss | 14 +++++++++++++-
>   ui/js/src/kimchi.guest_edit_main.js  |  9 ++++++++-
>   ui/pages/guest-edit.html.tmpl        |  9 ++++++++-
>   ui/pages/i18n.json.tmpl              |  2 ++
>   ui/pages/template-edit.html.tmpl     |  2 +-
>   6 files changed, 52 insertions(+), 11 deletions(-)
>
> diff --git a/ui/css/kimchi.css b/ui/css/kimchi.css
> index 88ae7de..d032c4c 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 .1s ease-in-out;
> +  transition: all 0.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 .1s ease-in-out;
> +  transition: all 0.1s ease-in-out;
>   }
>
>   #template-add-window.modal-content ul.list-template,
> @@ -666,10 +666,20 @@
>     position: relative;
>   }
>
> -#guest-edit-window #form-guest-edit-general #guest-edit-memory-textbox {
> +#guest-edit-window #form-guest-edit-general #guest-max-memory-panel {
> +  display: none;
> +}
> +
> +#guest-edit-window #form-guest-edit-general #guest-edit-memory-textbox,
> +#guest-edit-window #form-guest-edit-general #guest-edit-max-memory-textbox {
>     width: 590px;
>   }
>
> +#guest-edit-window #form-guest-edit-general #guest-edit-memory-textbox,
> +#guest-edit-window #form-guest-edit-general #guest-show-max-memory {
> +  display: inline-block;
> +}
> +
>   #guest-edit-window #form-guest-edit-interface .column-actions {
>     width: 23%;
>   }
> @@ -1007,7 +1017,7 @@
>     border: 1px solid #eee !important;
>     margin-bottom: 3px;
>     display: block;
> -  padding: .2em .6em .3em;
> +  padding: 0.2em 0.6em 0.3em;
>     font-weight: 700;
>     line-height: 1;
>     text-align: left;
> @@ -1250,7 +1260,7 @@
>     height: 664px;
>     width: 2164px;
>     left: 0;
> -  transition: left .2s ease-in-out;
> +  transition: left 0.2s ease-in-out;
>   }
>
>   #template-add-window.modal-content p {
> @@ -1526,7 +1536,9 @@
>     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;
>   }
>
> @@ -2067,7 +2079,8 @@
>     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 4d642f3..057aad9 100644
> --- a/ui/css/src/modules/_edit-guests.scss
> +++ b/ui/css/src/modules/_edit-guests.scss
> @@ -25,9 +25,21 @@
>           position: relative;
>       }
>       #form-guest-edit-general {
> -        #guest-edit-memory-textbox {
> +
> +        #guest-max-memory-panel {
> +            display: none;
> +        }
> +
> +        #guest-edit-memory-textbox,
> +        #guest-edit-max-memory-textbox {
>               width: 590px;
>           }
> +
> +        #guest-edit-memory-textbox,
> +        #guest-show-max-memory {
> +            display: inline-block;
> +        }
> +
>       }
>       #form-guest-edit-interface {
>           .column-actions {
> diff --git a/ui/js/src/kimchi.guest_edit_main.js b/ui/js/src/kimchi.guest_edit_main.js
> index 136469b..aa09b65 100644
> --- a/ui/js/src/kimchi.guest_edit_main.js
> +++ b/ui/js/src/kimchi.guest_edit_main.js
> @@ -669,9 +669,16 @@ kimchi.guest_edit_main = function() {
>               wok.window.open('plugins/kimchi/guest-storage-add.html', 'extendCreateStorage');
>           });
>           if ((kimchi.thisVMState === "running") || (kimchi.thisVMState === "paused")) {
> -            $("#form-guest-edit-general input").not("#guest-edit-memory-textbox").prop("disabled", true);
> +            $("#form-guest-edit-general input").not("#guest-edit-memory-textbox, #guest-edit-max-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']);
> +        });
> +
>           var onAttached = function(params) {
>               refreshCDROMs();
>           };
> diff --git a/ui/pages/guest-edit.html.tmpl b/ui/pages/guest-edit.html.tmpl
> index 0ad635c..b3e5817 100644
> --- a/ui/pages/guest-edit.html.tmpl
> +++ b/ui/pages/guest-edit.html.tmpl
> @@ -50,7 +50,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/i18n.json.tmpl b/ui/pages/i18n.json.tmpl
> index 8bc8683..c06b9be 100644
> --- a/ui/pages/i18n.json.tmpl
> +++ b/ui/pages/i18n.json.tmpl
> @@ -78,6 +78,8 @@
>       "KCHVMED6005M": "$_("drive_type:")",
>       "KCHVMED6006M": "$_("model:")",
>       "KCHVMED6007M": "$_("Affected devices:")",
> +    "KCHVMED6008M": "$_("More")",
> +    "KCHVMED6009M": "$_("Less")",
>
>       "KCHNET6001E": "$_("The VLAN id must be between 1 and 4094.")",
>
> diff --git a/ui/pages/template-edit.html.tmpl b/ui/pages/template-edit.html.tmpl
> index 478ccd5..47d4175 100644
> --- a/ui/pages/template-edit.html.tmpl
> +++ b/ui/pages/template-edit.html.tmpl
> @@ -82,7 +82,7 @@
>                                           <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="1" min="1" />

Please, add the max memory field to the Edit Template dialog too.
The API will be the same as for the guest:

memory: {current: XXX, maxmemory: YYY}

>                                       </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" />




More information about the Kimchi-devel mailing list