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(a)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