[Kimchi-devel] [PATCH] Make guests template handling more robust like host template handling

Adam King rak at linux.vnet.ibm.com
Wed Jan 29 03:52:54 UTC 2014


Change guest tab loading from an ajax request to an inline element
processed by Cheetah at guests.html.tmpl load time. This will eliminate
the potential for error when fetching the guest template, as well as improve
the performance of the flow. Also updated kimchi-ui.html to eliminate
potential race condition as I integrated the new guests load into the main
flow.

Signed-off-by: Adam King <rak at linux.vnet.ibm.com>
---
 ui/js/src/kimchi.guest_main.js | 20 ++------------------
 ui/pages/kimchi-ui.html.tmpl   | 28 +++++++++++++---------------
 ui/pages/tabs/guests.html.tmpl | 18 ++++++++++--------
 3 files changed, 25 insertions(+), 41 deletions(-)

diff --git a/ui/js/src/kimchi.guest_main.js b/ui/js/src/kimchi.guest_main.js
index 9c45cf5..8467f3f 100644
--- a/ui/js/src/kimchi.guest_main.js
+++ b/ui/js/src/kimchi.guest_main.js
@@ -228,27 +228,11 @@ kimchi.guest_main = function() {
     $("#vm-add").on("click", function(event) {
         kimchi.window.open('guest-add.html');
     });
-
-    $.ajax({
-        headers : {
-            Accept : "text/html"
-        },
-        url : 'guest.html',
-        type : 'GET',
-        dataType : 'html',
-        accepts : 'text/html',
-        success : function(response) {
-            kimchi.guestTemplate = response;
-            kimchi.listVmsAuto()
-        },
-        error : function() {
-            console.error('Could not get guest.html');
-        },
-    });
-
+    kimchi.guestTemplate = $('#guest-tmpl').html();
     $('#guests-root-container').on('remove', function() {
         kimchi.vmTimeout && clearTimeout(kimchi.vmTimeout);
     });
+    kimchi.listVmsAuto()
 };
 
 kimchi.editTemplate = function(guestTemplate, oldPopStat) {
diff --git a/ui/pages/kimchi-ui.html.tmpl b/ui/pages/kimchi-ui.html.tmpl
index 8e234e2..eebe886 100644
--- a/ui/pages/kimchi-ui.html.tmpl
+++ b/ui/pages/kimchi-ui.html.tmpl
@@ -32,9 +32,14 @@
 <title>Kimchi</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 <link rel="shortcut icon" href="images/logo.ico">
-<link rel="stylesheet" href="$href("libs/themes/base/jquery-ui.min.css")">
-<link rel="stylesheet" href="$href("css/theme-default.min.css")">
-<script src="$href("libs/modernizr.custom.76777.js")"></script>
+<link rel="stylesheet" href="$href('libs/themes/base/jquery-ui.min.css')">
+<link rel="stylesheet" href="$href('css/theme-default.min.css')">
+
+<script src="$href('libs/modernizr.custom.76777.js')"></script>
+<script src="$href('libs/jquery-1.10.0.min.js')"></script>
+<script src="$href('libs/jquery-ui.min.js')"></script>
+<script src="$href('libs/jquery-ui-i18n.min.js')"></script>
+<script src="$href('js/kimchi.min.js')"></script>
 
 <!-- This is used for detecting if the UI needs to be built -->
 <style type="text/css">
@@ -62,7 +67,7 @@
 }
 </style>
 </head>
-<body>
+<body onload="kimchi.main()">
 <div class="container">
 <header class="topbar">
     <h1 id="logo"><img alt="Project Kimchi" src="images/theme-default/logo-white.png"></h1>
@@ -89,19 +94,12 @@
     </div>
 </div>
 </div>
-<script src="$href("libs/jquery-1.10.0.min.js")"></script>
-<script src="$href("libs/jquery-ui.min.js")"></script>
-<script src="$href("libs/jquery-ui-i18n.min.js")"></script>
-<script src="$href("js/kimchi.min.js")"></script>
 
 <div id="buildme">
-<div>Oops!  It looks like I am running from a source tree and you forgot to build!
-Please run the following command and reload this page:
-<p><code>python setup.py build</code></p>
-</div>
+    <div><p>Oops!  It looks like I am running from a source tree and you forgot to build!
+    Please run the following command from the kimchi directory and reload this page:</p>
+    <p><code>make</code></p>
+    </div>
 </div>
-<script>
-kimchi.main();
-</script>
 </body>
 </html>
diff --git a/ui/pages/tabs/guests.html.tmpl b/ui/pages/tabs/guests.html.tmpl
index d73eb39..e2ab173 100644
--- a/ui/pages/tabs/guests.html.tmpl
+++ b/ui/pages/tabs/guests.html.tmpl
@@ -22,13 +22,14 @@
 
 #unicode UTF-8
 #import gettext
+#from Cheetah.Template import Template
 #from kimchi.cachebust import href
 #silent t = gettext.translation($lang.domain, $lang.localedir, languages=$lang.lang)
 #silent _ = t.gettext
 #silent _t = t.gettext
-<!DOCTYPE html>
-<html>
-<body>
+
+#silent ht = Template
+
 <div id="guests-root-container">
     <div class="toolbar">
         <div class="tools">
@@ -50,9 +51,10 @@
     <div id="noGuests" class="list-no-result" style="display: none;">
         $_("No guests found.")
     </div>
+    <script id="guest-tmpl" type="kimchi/template">
+    $ht(file="ui/pages/guest.html.tmpl",searchList=[self,{'lang':$lang}])
+    </script>
+    <script type="text/javascript">
+        kimchi.guest_main();
+    </script>
 </div>
-<script>
-    kimchi.guest_main();
-</script>
-</body>
-</html>
-- 
1.8.1.4




More information about the Kimchi-devel mailing list