1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-26 06:50:09 +03:00

Feature #507: Set up info dialogs configuration. Set up host tab create

dialogs for hosts and clusters. Small Bugfixes.
This commit is contained in:
Hector Sanjuan 2011-03-07 15:19:48 +01:00
parent bb19299785
commit b85273182e
5 changed files with 406 additions and 118 deletions

View File

@ -182,8 +182,8 @@ var OpenNebula = {
var password = params.data.password;
var remember = params.remember;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"login");
var resource = OpenNebula.Auth.resource;
var request = OpenNebula.Helper.request(resource,"login");
$.ajax({
url: "/login",
@ -216,8 +216,8 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"logout");
var resource = OpenNebula.Auth.resource;
var request = OpenNebula.Helper.request(resource,"logout");
$.ajax({
url: "/logout",
@ -248,8 +248,8 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.Config.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/config",
@ -281,8 +281,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var data = params.data;
var resource = OpenNebula.Host.resource;
var request = OpenNebula.Helper.request(this.resource,"create", data);
var request = OpenNebula.Helper.request(resource,"create", data);
$.ajax({
url: "/host",
@ -311,9 +312,10 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Host.resource;
var request = OpenNebula.Helper.request(this.resource,"delete", id);
var request = OpenNebula.Helper.request(resource,"delete", id);
$.ajax({
url: "/host/" + id,
@ -341,8 +343,8 @@ var OpenNebula = {
var callback_error = params.error;
var timeout = params.timeout || false;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.Host.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/host",
@ -374,8 +376,8 @@ var OpenNebula = {
var callback_error = params.error;
var id = params.data.id;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"show", id);
var resource = OpenNebula.Host.resource;
var request = OpenNebula.Helper.request(resource,"show", id);
$.ajax({
url: "/host/" + id,
@ -403,10 +405,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Host.resource;
var method = "enable";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/host/" + id + "/action",
@ -434,10 +437,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Host.resource;
var method = "disable";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/host/" + id + "/action",
@ -469,8 +473,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var data = params.data;
var resource = OpenNebula.Network.resource;
var request = OpenNebula.Helper.request(this.resource,"create",data);
var request = OpenNebula.Helper.request(resource,"create",data);
$.ajax({
url: "/vnet",
@ -499,8 +504,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Network.resource;
var request = OpenNebula.Helper.request(this.resource,"delete", id);
var request = OpenNebula.Helper.request(resource,"delete", id);
$.ajax({
url: "/vnet/" + id,
@ -527,9 +533,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var timeout = params.timeout || false;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.Network.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/vnet",
@ -559,8 +565,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Network.resource;
var request = OpenNebula.Helper.request(this.resource,"show", id);
var request = OpenNebula.Helper.request(resource,"show", id);
$.ajax({
url: "/vnet/" + id,
@ -588,10 +595,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Network.resource;
var method = "publish";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vnet/" + id + "/action",
@ -619,10 +627,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Network.resource;
var method = "unpublish";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vnet/" + id + "/action",
@ -654,8 +663,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var data = params.data;
var resource = OpenNebula.VM.resource;
var request = OpenNebula.Helper.request(this.resource,"create",data);
var request = OpenNebula.Helper.request(resource,"create",data);
$.ajax({
url: "/vm",
@ -684,8 +694,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Network.resource;
var request = OpenNebula.Helper.request(this.resource,"delete", id);
var request = OpenNebula.Helper.request(resource,"delete", id);
$.ajax({
url: "/vm/" + id,
@ -713,8 +724,8 @@ var OpenNebula = {
var callback_error = params.error;
var timeout = params.timeout || false;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.VM.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/vm",
@ -744,8 +755,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var request = OpenNebula.Helper.request(this.resource,"log", id);
var request = OpenNebula.Helper.request(resource,"log", id);
$.ajax({
url: "/vm/" + id + "/log",
@ -772,8 +784,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var request = OpenNebula.Helper.request(this.resource,"show", id);
var request = OpenNebula.Helper.request(resource,"show", id);
$.ajax({
url: "/vm/" + id,
@ -802,10 +815,11 @@ var OpenNebula = {
var callback_error = params.error;
var id = params.data.id;
var host = params.data.extra_param;
var resource = OpenNebula.VM.resource;
var method = "deploy";
var action = OpenNebula.Helper.action(method, {"host_id": host});
var request = OpenNebula.Helper.request(this.resource,method, [id, host]);
var request = OpenNebula.Helper.request(resource,method, [id, host]);
$.ajax({
url: "/vm/" + id + "/action",
@ -833,10 +847,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "shutdown";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -865,10 +880,11 @@ var OpenNebula = {
var callback_error = params.error;
var id = params.data.id;
var host = params.data.extra_param;
var resource = OpenNebula.VM.resource;
var method = "livemigrate";
var action = OpenNebula.Helper.action(method,{"host_id": host});
var request = OpenNebula.Helper.request(this.resource,method, [id, host]);
var request = OpenNebula.Helper.request(resource,method, [id, host]);
$.ajax({
url: "/vm/" + id + "/action",
@ -897,10 +913,11 @@ var OpenNebula = {
var callback_error = params.error;
var id = params.data.id;
var host = params.data.extra_param;
var resource = OpenNebula.VM.resource;
var method = "migrate";
var action = OpenNebula.Helper.action(method,{"host_id": host});
var request = OpenNebula.Helper.request(this.resource,method, [id, host]);
var request = OpenNebula.Helper.request(resource,method, [id, host]);
$.ajax({
url: "/vm/" + id + "/action",
@ -928,10 +945,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "hold";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -959,10 +977,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "release";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -990,10 +1009,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "stop";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -1021,10 +1041,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "cancel";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -1052,10 +1073,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "suspend";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -1083,10 +1105,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "resume";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -1125,8 +1148,10 @@ var OpenNebula = {
"image_name": image_name,
"type" : type
}
var resource = OpenNebula.VM.resource;
var action = OpenNebula.Helper.action(method,saveas_params)
var request = OpenNebula.Helper.request(this.resource,method, [vm_id, disk_id, image_name, type]);
var request = OpenNebula.Helper.request(resource,method, [vm_id, disk_id, image_name, type]);
$.ajax({
url: "/vm/" + id + "/action",
@ -1154,10 +1179,11 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.VM.resource;
var method = "restart";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/vm/" + id + "/action",
@ -1189,8 +1215,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var data = params.data;
var resource = OpenNebula.Cluster.resource;
var request = OpenNebula.Helper.request(this.resource,"create", name);
var request = OpenNebula.Helper.request(resource,"create", name);
$.ajax({
url: "/cluster",
@ -1219,8 +1246,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Cluster.resource;
var request = OpenNebula.Helper.request(this.resource,"delete", id);
var request = OpenNebula.Helper.request(resource,"delete", id);
$.ajax({
url: "/cluster/" + id,
@ -1247,9 +1275,10 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var timeout = params.timeout || false;
var resource = OpenNebula.Cluster.resource;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.Cluster.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/cluster",
@ -1280,12 +1309,13 @@ var OpenNebula = {
var callback_error = params.error;
var host_id = params.data.id;
var cluster_id = params.data.extra_param;
var resource = OpenNebula.Cluster.resource;
var method = "add_host";
var action = OpenNebula.Helper.action(method, {
"host_id" : host_id
});
var request = OpenNebula.Helper.request(this.resource,method, [host_id, cluster_id]);
var request = OpenNebula.Helper.request(resource,method, [host_id, cluster_id]);
$.ajax({
url: "/cluster/" + cluster_id + "/action",
@ -1319,7 +1349,9 @@ var OpenNebula = {
var action = OpenNebula.Helper.action(method, {
"host_id" : host_id
});
var request = OpenNebula.Helper.request(this.resource,method, [host_id, cluster_id]);
var resource = OpenNebula.Cluster.resource;
var request = OpenNebula.Helper.request(resource,method, [host_id, cluster_id]);
$.ajax({
url: "/cluster/" + cluster_id + "/action",
@ -1351,8 +1383,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var data = params.data;
var resource = OpenNebula.User.resource;
var request = OpenNebula.Helper.request(this.resource,"create",data);
var request = OpenNebula.Helper.request(resource,"create",data);
$.ajax({
url: "/user",
@ -1381,8 +1414,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.User.resource;
var request = OpenNebula.Helper.request(this.resource,"delete", id);
var request = OpenNebula.Helper.request(resource,"delete", id);
$.ajax({
url: "/user/" + id,
@ -1410,8 +1444,8 @@ var OpenNebula = {
var callback_error = params.error;
var timeout = params.timeout || false;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.Cluster.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/user",
@ -1447,7 +1481,9 @@ var OpenNebula = {
var action = OpenNebula.Helper.action(method, {
"password" : passwd
});
var request = OpenNebula.Helper.request(this.resource,method, passwd);
var resource = OpenNebula.User.resource;
var request = OpenNebula.Helper.request(resource,method, passwd);
$.ajax({
url: "/user/" + id + "/action",
@ -1479,8 +1515,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var data = params.data;
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(this.resource,"register",data);
var request = OpenNebula.Helper.request(resource,"register",data);
$.ajax({
url: "/image",
@ -1509,8 +1546,9 @@ var OpenNebula = {
var callback = params.success;
var callback_error = params.error;
var id = params.data.id;
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(this.resource,"delete", id);
var request = OpenNebula.Helper.request(resource,"delete", id);
$.ajax({
url: "/image/" + id,
@ -1538,8 +1576,8 @@ var OpenNebula = {
var callback_error = params.error;
var timeout = params.timeout || false;
var resource = this.resource;
var request = OpenNebula.Helper.request(this.resource,"list");
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,"list");
$.ajax({
url: "/image",
@ -1570,7 +1608,8 @@ var OpenNebula = {
var callback_error = params.error;
var id = params.data.id;
var request = OpenNebula.Helper.request(this.resource,"show", id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,"show", id);
$.ajax({
url: "/image/" + id,
@ -1606,7 +1645,9 @@ var OpenNebula = {
"name" : name,
"value" : value
});
var request = OpenNebula.Helper.request(this.resource,method, [id, name, value]);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, [id, name, value]);
$.ajax({
url: "/image/" + id + "/action",
@ -1641,7 +1682,9 @@ var OpenNebula = {
var action = OpenNebula.Helper.action(method, {
"name" : name
});
var request = OpenNebula.Helper.request(this.resource,method, [id, name]);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, [id, name]);
$.ajax({
url: "/image/" + id + "/action",
@ -1672,7 +1715,9 @@ var OpenNebula = {
var method = "enable";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/image/" + id + "/action",
@ -1703,7 +1748,8 @@ var OpenNebula = {
var method = "disable";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/image/" + id + "/action",
@ -1734,7 +1780,8 @@ var OpenNebula = {
var method = "publish";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/image/" + id + "/action",
@ -1765,7 +1812,8 @@ var OpenNebula = {
var method = "unpublish";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/image/" + id + "/action",
@ -1796,7 +1844,9 @@ var OpenNebula = {
var method = "persistent";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/image/" + id + "/action",
@ -1827,7 +1877,9 @@ var OpenNebula = {
var method = "nonpersistent";
var action = OpenNebula.Helper.action(method);
var request = OpenNebula.Helper.request(this.resource,method, id);
var resource = OpenNebula.Image.resource;
var request = OpenNebula.Helper.request(resource,method, id);
$.ajax({
url: "/image/" + id + "/action",

View File

@ -38,6 +38,65 @@ var hosts_tab_content =
</table>\
</form>';
var create_host_tmpl =
'<div class="create_form"><form id="create_host_form" action="">\
<fieldset>\
<legend style="display:none;">Host parameters</legend>\
<label for="name">Name: </label><input type="text" name="name" id="name" />\
</fieldset>\
<h3>Drivers</h3>\
<fieldset>\
<div class="manager clear" id="vmm_mads">\
<label>Virtualization Manager:</label>\
<select id="vmm_mad" name="vmm">\
<option value="vmm_kvm">KVM</option>\
<option value="vmm_xen">XEN</option>\
<option value="vmm_ec2">EC2</option>\
<option value="vmm_dummy">Dummy</option>\
</select>\
</div>\
<div class="manager clear" id="im_mads">\
<label>Information Manager:</label>\
<select id="im_mad" name="im">\
<option value="im_kvm">KVM</option>\
<option value="im_xen">XEN</option>\
<option value="im_ec2">EC2</option>\
<option value="im_dummy">Dummy</option>\
</select>\
</div>\
<div class="manager clear" id="tm_mads">\
<label>Transfer Manager:</label>\
<select id="tm_mad" name="tm">\
<option value="tm_nfs">NFS</option>\
<option value="tm_ssh">SSH</option>\
<option value="tm_dummy">Dummy</option>\
</select>\
</div>\
</fieldset>\
<fieldset>\
<div class="form_buttons">\
<div><button class="button" id="create_host_submit" value="OpenNebula.Host.create">Create</button>\
<button class="button" type="reset" value="reset">Reset</button></div>\
</div>\
</fieldset>\
</form></div>';
var create_cluster_tmpl =
'<form id="create_cluster_form" action="">\
<fieldset style="border:none;">\
<div>\
<label for="name">Cluster name:</label>\
<input type="text" name="name" id="name" /><br />\
</div>\
</fieldset>\
<fieldset>\
<div class="form_buttons">\
<button class="button" id="create_cluster_submit" value="cluster/create">Create</button>\
<button class="button" type="reset" value="reset">Reset</button>\
</div>\
</fieldset>\
</form>';
var hosts_select="";
var clusters_select="";
var host_list_json = {};
@ -55,6 +114,11 @@ var host_actions = {
notify:False,
},
"Host.create_dialog" : {
type: "custom",
call: popUpCreateHostDialog
},
"Host.list" : {
type: "list",
call: OpenNebula.Host.list,
@ -110,7 +174,7 @@ var host_actions = {
"Host.delete" : {
type: "multiple",
call : OpenNebula.Host.create,
call : OpenNebula.Host.delete,
callback : deleteHostElement,
dataTable: function() { return dataTable_hosts },
error : onError,
@ -136,7 +200,20 @@ var host_actions = {
Sunstone.runAction("Cluster.list");
},
error : onError,
notify:True,
notify:True
},
"Cluster.create_dialog" : {
type: "custom",
call: popUpCreateClusterDialog
},
"Cluster.list" : {
type: "list",
call: OpenNebula.Cluster.list,
callback: updateClustersView,
error: onError,
notify:True
},
"Cluster.delete" : {
@ -178,9 +255,8 @@ var host_buttons = {
img: "/images/Refresh-icon.png",
condition: True
},
"Host.create" : {
type: "create",
"Host.create_dialog" : {
type: "create_dialog",
text: "+ New host",
condition :True
},
@ -195,8 +271,8 @@ var host_buttons = {
tip: "This will disable the selected hosts.",
condition : True
},
"Cluster.create" : {
type: "create",
"Cluster.create_dialog" : {
type: "create_dialog",
text: "+ New Cluster",
condition : True
},
@ -231,12 +307,25 @@ var host_buttons = {
}
};
var host_info_panel = {
"info_host_tab" : {
title: "Host information",
content:""
},
"host_template_tab" : {
title: "Host template",
content: ""
}
};
for (action in host_actions){
Sunstone.addAction(action,host_actions[action]);
}
// title, content, buttons, id
Sunstone.addMainTab('Hosts',hosts_tab_content,host_buttons,'hosts_tab');
Sunstone.addInfoPanel("host_info_panel",host_info_panel);
//Plugin functions
@ -395,15 +484,11 @@ function updateClustersView(request, cluster_list){
function updateHostInfo(request,host){
host_info = host.HOST
rendered_info =
'<div id="host_informations">\
<ul>\
<li><a href="#info_host">Host information</a></li>\
<li><a href="#host_template">Host template</a></li>\
</ul>\
<div id="info_host">\
<table id="info_host_table" class="info_table">\
var host_info = host.HOST;
var info_host_tab = {
title : "Host information",
content :
'<table id="info_host_table" class="info_table">\
<thead>\
<tr><th colspan="2">Host information - '+host_info.NAME+'</th></tr>\
</thead>\
@ -460,20 +545,92 @@ function updateHostInfo(request,host){
<td class="key_td">Running VMs</td>\
<td class="value_td">'+host_info.HOST_SHARE.RUNNING_VMS+'</td>\
</tr>\
</table>\
</div>\
<div id="host_template">\
<table id="host_template_table" class="info_table">\
</table>'
}
var host_template_tab = {
title : "Host template",
content :
'<table id="host_template_table" class="info_table">\
<thead><tr><th colspan="2">Host template</th></tr></thead>'+
prettyPrintJSON(host_info.TEMPLATE)+
'</table>\
</div>\
</div>';
popDialog(rendered_info);
$('#host_informations').tabs();
'</table>'
}
Sunstone.updateInfoTab("host_info_panel","info_host_tab",info_host_tab);
Sunstone.updateInfoTab("host_info_panel","host_template_tab",host_template_tab);
popDialog(Sunstone.getInfoPanelHTML("host_info_panel"));
}
function setUpCreateHostDialog(){
$('div#dialogs').append('<div title="Create host" id="create_host_dialog"></div>');
$('div#create_host_dialog').html(create_host_tmpl);
$('#create_host_dialog').dialog({
autoOpen: false,
modal: true,
width: 500
});
$('#create_host_dialog button').button();
//Handle the form submission
$('#create_host_form').submit(function(){
if (!($('#name',this).val().length)){
notifyError("Host name missing!");
return false;
}
host_json = { "host": { "name": $('#name',this).val(),
"tm_mad": $('#tm_mad :selected',this).val(),
"vm_mad": $('#vmm_mad :selected',this).val(),
"im_mad": $('#im_mad :selected',this).val()}}
//Create the OpenNebula.Host.
//If it's successfull we refresh the list.
Sunstone.runAction("Host.create",host_json);
//OpenNebula.Host.create({data: host_json, success: addHostElement, error: onError});
$('#create_host_dialog').dialog('close');
return false;
});
}
function setUpCreateClusterDialog(){
$('div#dialogs').append('<div title="Create cluster" id="create_cluster_dialog"></div>');
$('#create_cluster_dialog').html(create_cluster_tmpl);
$('#create_cluster_dialog').dialog({
autoOpen: false,
modal: true,
width: 400
});
$('#create_cluster_dialog button').button();
$('#create_cluster_form').submit(function(){
name=$('#name',this).val();
cluster_json = { "cluster" : { "name" : name }};
Sunstone.runAction("Cluster.create",cluster_json);
$('#create_cluster_dialog').dialog('close');
return false;
});
}
function popUpCreateHostDialog(){
$('#create_host_dialog').dialog('open');
return false;
}
function popUpCreateClusterDialog(){
$('#create_cluster_dialog').dialog('open');
return false;
}
//Document ready
$(document).ready(function(){
@ -499,6 +656,9 @@ $(document).ready(function(){
//OpenNebula.Host.list({success: updateHostsView,error: onError});
Sunstone.runAction("Host.list");
setUpCreateHostDialog();
setUpCreateClusterDialog();
//set refresh interval
setInterval(function(){
nodes = $('input:checked',dataTable_hosts.fnGetNodes());
@ -511,5 +671,6 @@ $(document).ready(function(){
initCheckAllBoxes(dataTable_hosts);
tableCheckboxesListener(dataTable_hosts);
hostInfoListener();
});

View File

@ -143,7 +143,7 @@ function tableCheckboxesListener(dataTable){
if (last_action_b.length && last_action_b.val().length){
last_action_b.button("disable");
};
$('.create_button',context).button("enable");
$('.create_dialog_button',context).button("enable");
//listen to changes
$('input',dataTable).live("change",function(){

View File

@ -67,6 +67,50 @@ var Sunstone = {
},
"getInfoPanelHTML" : function(name){
var info_panel = $('<div id="'+name+'"><ul></ul></div>');
var tabs = SunstoneCfg["info_panels"][name];
var tab=null;
for (tab_name in tabs){
tab=tabs[tab_name];
$('ul',info_panel).append('<li><a href="#'+tab_name+'">'+tab.title+'</a></li>');
info_panel.append('<div id="'+tab_name+'">'+tab.content+'</div>');
}
return info_panel.tabs({selected: 0});
},
"addInfoPanel" : function(name, info_panel){
SunstoneCfg["info_panels"][name]=info_panel;
},
"updateInfoPanel" : function(name, info_panel,refresh){
SunstoneCfg["info_panels"][name]=info_panel;
if (refresh){
refreshInfoPanel(name);
}
},
"removeInfoPanel" : function(name){
SunstoneCfg["info_panels"][name] = null;
},
"addInfoTab" : function(info_panel, tab_name, tab){
SunstoneCfg["info_panels"][info_panel][tab_name] = tab;
},
"updateInfoTab" : function(info_panel, tab_name, tab, refresh){
SunstoneCfg["info_panels"][info_panel][tab_name] = tab;
if (refresh){
refreshInfoPanelTab(info_panel,tab_name);
}
},
"removeInfoTab" : function(info_panel,tab_name){
SunstoneCfg["info_panels"][info_panel][tab_name] = null;
},
"runAction" : function(action, data_arg, extra_param){
var actions = SunstoneCfg["actions"];
@ -93,7 +137,10 @@ var Sunstone = {
// * Other calls
switch (action_cfg.type){
case "create","single":
case "create":
call({data:data_arg, success: callback, error:err});
break;
case "single":
call({data:{id:data_arg}, success: callback,error:err});
break;
case "list":
@ -258,7 +305,6 @@ $(document).ready(function(){
insertTabs();
insertButtons();
initListButtons();
setupCreateDialogs(); //listener for create
setupConfirmDialogs();
@ -380,6 +426,9 @@ function insertButtons(){
case "image":
button_code = '<img src="'+button.img+'" class="action_button" value="'+button_name+'" alt="'+button.text+'" />';
break;
case "create_dialog":
button_code = '<button class="'+button.type+'_button action_button top_button" value="'+button_name+'">'+button.text+'</button>';
break;
default:
button_code = '<button class="'+button.type+'_button top_button" value="'+button_name+'">'+button.text+'</button>';
@ -393,6 +442,56 @@ function insertButtons(){
}
// We do not insert info panels code, we generate it dinamicly when
// we need it with getInfoPanelHTML()
//~ function insertInfoPanels(){
//~ var panels = SunstoneCfg["info_panels"];
//~ tabs = null;
//~ //For each defined dialog
//~ for (panel in panels) {
//~ addInfoPanel(panel);
//~ }
//~ }
//~
//~ function addInfoPanel(name){
//~ var tabs = SunstoneCfg["info_panels"][name];
//~ $('#info_panels').append('<div id="'+name+'"></div>');
//~ for (tab in tabs){
//~ addInfoPanelTab(name,tab);
//~ }
//~ //at this point jquery tabs structure is ready, so we enable it
//~ $('div#'+name).tabs();
//~ }
//~
//~ function refreshInfoPanel(name){
//~ $('#info_panels div#'+name).tabs("destroy");
//~ $('#info_panels div#'+name).remove();
//~ $('#info_panels').append('<div id="'+name+'"></div>');
//~ var tabs = SunstoneCfg["info_panels"][name];
//~ for (tab in tabs){
//~ addInfoPanelTab(name,tab);
//~ }
//~ //at this point jquery tabs structure is ready, so we enable it
//~ $('div#'+name).tabs();
//~ }
//~
//~ function addInfoPanelTab(panel_name,tab_name){
//~ var tab = SunstoneCfg["info_panels"][panel_name][tab_name];
//~ if ( !$('div#'+panel_name+' ul').length ) {
//~ $('div#'+panel_name).prepend('<ul></ul>');
//~ }
//~ $('div#'+panel_name+' ul').append('<li><a href="#'+tab_name+'">'+tab.title+'</a></li>');
//~ $('div#'+panel_name).append('<div id="'+tab_name+'">'+tab.content+'</div>');
//~ }
//~
//Tries to refresh a tab content if it is somewhere in the DOM
function refreshInfoPanelTab(panel_name,tab_name){
var tab = SunstoneCfg["info_panels"][panel_name][tab_name];
$('div#'+panel_name+' div#'+tab_name).html(tab.content);
}
//Converts selects into buttons which show a of actions when clicked
function initListButtons(){

View File

@ -70,32 +70,8 @@
<div id="dialogs">
<div id="create_host_dialog" title="Create a new host">
</div>
<div id="create_cluster_dialog" title="Create a new cluster">
</div>
<div id="create_vn_dialog" title="Create a new Virtual Network">
</div>
<div id="create_vm_dialog" title="Create a new Virtual Machine">
</div>
<div id="create_user_dialog" title="Create a new user">
</div>
<div id="create_image_dialog" title="Create a new image">
</div>
<div id="host_info_dialog" title="Host Information">
</div>
<div id="vm_info_dialog" title="Virtual Machine Information">
</div>
<div id="vn_info_dialog" title="Virtual Network Information">
</div>
</div>
<div id="info_panels"></div>
</body>
</html>