[Kimchi-devel] Help from UI experts to my latest patch

Hongliang Wang hlwang at linux.vnet.ibm.com
Fri Jan 24 07:03:10 UTC 2014


On 01/24/2014 08:53 AM, Rodrigo Trujillo wrote:
> Hi guys,
>
> I wonder if someone expert in UI can help me with my latest patch.
> Actually, the patch: [PATCH V2 7/7] (WIP) Storagepool SCSI/FC: Draft 
> UI    to allow user to select a LUN to new VM
>
> You guys will find the code some TODO's and FIXME
>
> I need to popup a window with LUN's names and allow user to select one 
> of them. Then retrieve this selection. I think this is not that 
> complicated, but I could not research deeper how to do it. See an 
> example below:
>
> *********************************
>                                        (X) Close
> Select Host
>
> () Lun 1
> () Lun 2
> () Lun xxx
>
>   ----------------------------------------
>                                   ________
>                                   | Select |
> *********************************
>
Hi Rodrigo, the general process to add a pop-up window is like:

1) Add the content page, related files include HTML, JS, and CSS.

2) Add a hook to trigger the window in parent page.

3) Add other corresponding content including Makefile, translation, etc.

   To quickly make it, you can copy existing window page file (like 
guest-add.html.tmpl, guest-edit.html.tmpl, etc.) and then modify 
based-on it. Here let me give you a draft code fragment.

*create ui/pages/lun-select.html.tmpl*

<div id="lun-select-window" class="window">
     <form id="form-lun-select">
         <header>
             <h1 class="title">$_("Select LUN")</h1>
             <div class="close">X</div>
         </header>
         <div class="content">
             <fieldset class="lun-select-fieldset">
                 <legend>$_("Select a Name")</legend>
                 <div id="lun-select-names">

                     ...
                 </div>
             </fieldset>
         </div>
         <footer>
             <div class="btn-group">
                 <button id="lun-select-button-select">$_("Select")</button>
             </div>
         </footer>
     </form>
</div>

*create ui/js/src/kimchi.lun_select_main.js*

kimchi.lun_select_main = function() {
     var lunSelectForm = $('#lun-select-form');
     var selectButton = $('#lun-select-button-select');

     kimchi.listLUNs(function(luns) {
         $.each(luns, function(i, lun) {
              // Create radio button and append it to DOM node
              // e.g. $('<input id="lun-name-radio-' + i + '" 
type="radio" value="' + lun + '"><label for="lun-name-radio-' + i +'">' 
+ lun + '</label>').appendTo('#lun-select-names')
         });
     });

     var submitForm = function(event) {
         $(selectButton).prop('disabled', true);
         var selected = $('input[checked="true"]', lunSelectForm).val();
         // Save to a kimchi scoped property
         kimchi.selecteLUN = selected;
         kimchi.window.close();
         event.preventDefault();
     };

     $(lunSelectForm).on('submit', submitForm);
     $(selectButton).on('click', submitForm);
};

*create ui/css/theme-default/lun-select.css*

/* Please refer to similar CSS files like guest-edit.css. */

*Update ui/pages/Makefile.am*

add one line in proper position:

     lun-select.html.tmpl \
*
**Update po file*

*(optional) add related i18n variables in ui/pages/i18n.html.tmpl*

> Appreciate any help
>
> Regards,
> Rodrigo
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20140124/75e026a2/attachment.html>


More information about the Kimchi-devel mailing list