From e778ca2ea1186a4e83e8420d651c71d99bb6a1db Mon Sep 17 00:00:00 2001 From: Hector Sanjuan Date: Wed, 22 Jun 2011 02:18:16 +0200 Subject: [PATCH] Feature #548: Patch for Sunstone master 3.0. Tested with reverse proxy --- src/sunstone/public/css/login.css | 7 +- src/sunstone/public/js/layout.js | 2 +- src/sunstone/public/js/login.js | 2 +- src/sunstone/public/js/opennebula.js | 120 +++++++++--------- src/sunstone/public/js/plugins/groups-tab.js | 2 +- src/sunstone/public/js/plugins/hosts-tab.js | 2 +- src/sunstone/public/js/plugins/images-tab.js | 2 +- .../public/js/plugins/templates-tab.js | 2 +- src/sunstone/public/js/plugins/users-tab.js | 2 +- src/sunstone/public/js/plugins/vms-tab.js | 2 +- src/sunstone/public/js/plugins/vnets-tab.js | 2 +- src/sunstone/public/js/sunstone-util.js | 2 +- src/sunstone/public/js/sunstone.js | 4 +- src/sunstone/sunstone-server.rb | 3 +- src/sunstone/templates/index.html | 62 ++++----- src/sunstone/templates/login.html | 8 +- 16 files changed, 111 insertions(+), 113 deletions(-) diff --git a/src/sunstone/public/css/login.css b/src/sunstone/public/css/login.css index baee3d985e..b4236d267f 100644 --- a/src/sunstone/public/css/login.css +++ b/src/sunstone/public/css/login.css @@ -52,7 +52,7 @@ div#logo_sunstone { top: 80px; margin-left: auto; margin-right: auto; - background: url(/images/opennebula-sunstone-big.png) no-repeat center ; + background: url(../images/opennebula-sunstone-big.png) no-repeat center ; vertical-align: center; } @@ -160,7 +160,4 @@ div#login input#login_btn:hover { margin-top: 35px; margin-left:0px; -} - - - +} \ No newline at end of file diff --git a/src/sunstone/public/js/layout.js b/src/sunstone/public/js/layout.js index f094c9a914..2f0340cc10 100644 --- a/src/sunstone/public/js/layout.js +++ b/src/sunstone/public/js/layout.js @@ -27,7 +27,7 @@ function popDialog(content){ } function popDialogLoading(){ - var loading = '
loading...
'; + var loading = '
loading...
'; popDialog(loading); } diff --git a/src/sunstone/public/js/login.js b/src/sunstone/public/js/login.js index 48de29347a..0c30aac51c 100644 --- a/src/sunstone/public/js/login.js +++ b/src/sunstone/public/js/login.js @@ -15,7 +15,7 @@ /* -------------------------------------------------------------------------- */ function auth_success(req, response){ - window.location.href = "/"; + window.location.href = "."; } function auth_error(req, error){ diff --git a/src/sunstone/public/js/opennebula.js b/src/sunstone/public/js/opennebula.js index 299ca9809a..2171cf5eeb 100644 --- a/src/sunstone/public/js/opennebula.js +++ b/src/sunstone/public/js/opennebula.js @@ -231,7 +231,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"login"); $.ajax({ - url: "/login", + url: "login", type: "POST", data: {remember: remember}, beforeSend : function(req) { @@ -265,7 +265,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"logout"); $.ajax({ - url: "/logout", + url: "logout", type: "POST", success: function(response) { @@ -297,7 +297,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/config", + url: "config", type: "GET", dataType: "json", success: function(response) @@ -331,7 +331,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"create", data); $.ajax({ - url: "/host", + url: "host", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -363,7 +363,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/host/" + id, + url: "host/" + id, type: "DELETE", success: function() { @@ -392,7 +392,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/host", + url: "host", type: "GET", data: {timeout: timeout}, dataType: "json", @@ -425,7 +425,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"show", id); $.ajax({ - url: "/host/" + id, + url: "host/" + id, type: "GET", dataType: "json", success: function(response) @@ -457,7 +457,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/host/" + id + "/action", + url: "host/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -489,7 +489,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/host/" + id + "/action", + url: "host/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -587,7 +587,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"create",data); $.ajax({ - url: "/vnet", + url: "vnet", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -618,7 +618,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/vnet/" + id, + url: "vnet/" + id, type: "DELETE", success: function() { @@ -647,7 +647,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/vnet", + url: "vnet", type: "GET", dataType: "json", data: {timeout: timeout}, @@ -679,7 +679,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"show", id); $.ajax({ - url: "/vnet/" + id, + url: "vnet/" + id, type: "GET", dataType: "json", success: function(response) @@ -711,7 +711,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vnet/" + id + "/action", + url: "vnet/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -743,7 +743,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vnet/" + id + "/action", + url: "vnet/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -785,7 +785,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"create",data); $.ajax({ - url: "/vm", + url: "vm", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -816,7 +816,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/vm/" + id, + url: "vm/" + id, type: "DELETE", success: function() { @@ -845,7 +845,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/vm", + url: "vm", type: "GET", dataType: "json", data: {timeout: timeout}, @@ -877,7 +877,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"log", id); $.ajax({ - url: "/vm/" + id + "/log", + url: "vm/" + id + "/log", type: "GET", success: function(response) { @@ -906,7 +906,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"show", id); $.ajax({ - url: "/vm/" + id, + url: "vm/" + id, type: "GET", dataType: "json", success: function(response) @@ -939,7 +939,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, [id, host]); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -971,7 +971,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1004,7 +1004,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, [id, host]); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1037,7 +1037,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, [id, host]); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1069,7 +1069,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1101,7 +1101,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1133,7 +1133,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1165,7 +1165,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1197,7 +1197,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1229,7 +1229,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1270,7 +1270,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, [id,disk_id, image_name, type]); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1302,7 +1302,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1334,7 +1334,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/vm/" + id + "/action", + url: "vm/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1499,7 +1499,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"create", name); $.ajax({ - url: "/group", + url: "group", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -1530,7 +1530,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/group/" + id, + url: "group/" + id, type: "DELETE", success: function() { @@ -1559,7 +1559,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/group", + url: "group", type: "GET", dataType: "json", data: {timeout: timeout}, @@ -1600,7 +1600,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"create",data); $.ajax({ - url: "/user", + url: "user", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -1631,7 +1631,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/user/" + id, + url: "user/" + id, type: "DELETE", success: function() { @@ -1660,7 +1660,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/user", + url: "user", type: "GET", dataType: "json", data: {timeout: timeout}, @@ -1698,7 +1698,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, passwd); $.ajax({ - url: "/user/" + id + "/action", + url: "user/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function(response) @@ -1763,7 +1763,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"register",data); $.ajax({ - url: "/image", + url: "image", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -1794,7 +1794,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/template", + url: "image/" + id + "/template", type: "GET", dataType:"json", success: function(response) @@ -1829,7 +1829,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, [id, template_obj]); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function(response) @@ -1858,7 +1858,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/image/" + id, + url: "image/" + id, type: "DELETE", success: function() { @@ -1887,7 +1887,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/image", + url: "image", type: "GET", dataType: "json", data: {timeout: timeout}, @@ -1919,7 +1919,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"show", id); $.ajax({ - url: "/image/" + id, + url: "image/" + id, type: "GET", dataType: "json", success: function(response) @@ -1951,7 +1951,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -1983,7 +1983,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2015,7 +2015,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2047,7 +2047,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2080,7 +2080,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2113,7 +2113,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/image/" + id + "/action", + url: "image/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2155,7 +2155,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"create",data); $.ajax({ - url: "/template", + url: "template", type: "POST", dataType: "json", data: JSON.stringify(data), @@ -2187,7 +2187,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/template/" + id + "/template", + url: "template/" + id + "/template", type: "GET", dataType:"json", success: function(response) @@ -2221,7 +2221,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, [id, template_obj]); $.ajax({ - url: "/template/" + id + "/action", + url: "template/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function(response) @@ -2253,7 +2253,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/template/" + id + "/action", + url: "template/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2284,7 +2284,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,method, id); $.ajax({ - url: "/template/" + id + "/action", + url: "template/" + id + "/action", type: "POST", data: JSON.stringify(action), success: function() @@ -2313,7 +2313,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"list"); $.ajax({ - url: "/template", + url: "template", type: "GET", dataType: "json", data: {timeout: timeout}, @@ -2344,7 +2344,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"show", id); $.ajax({ - url: "/template/" + id, + url: "template/" + id, type: "GET", dataType: "json", success: function(response) @@ -2373,7 +2373,7 @@ var OpenNebula = { var request = OpenNebula.Helper.request(resource,"delete", id); $.ajax({ - url: "/template/" + id, + url: "template/" + id, type: "DELETE", success: function() { diff --git a/src/sunstone/public/js/plugins/groups-tab.js b/src/sunstone/public/js/plugins/groups-tab.js index a3191eda6c..be557a1ab9 100644 --- a/src/sunstone/public/js/plugins/groups-tab.js +++ b/src/sunstone/public/js/plugins/groups-tab.js @@ -122,7 +122,7 @@ var group_buttons = { "Group.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, "Group.create_dialog" : { diff --git a/src/sunstone/public/js/plugins/hosts-tab.js b/src/sunstone/public/js/plugins/hosts-tab.js index e2ec4c281e..a5b2c3964a 100644 --- a/src/sunstone/public/js/plugins/hosts-tab.js +++ b/src/sunstone/public/js/plugins/hosts-tab.js @@ -214,7 +214,7 @@ var host_buttons = { "Host.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, "Host.create_dialog" : { diff --git a/src/sunstone/public/js/plugins/images-tab.js b/src/sunstone/public/js/plugins/images-tab.js index bb6938ee11..afa12f35f4 100644 --- a/src/sunstone/public/js/plugins/images-tab.js +++ b/src/sunstone/public/js/plugins/images-tab.js @@ -338,7 +338,7 @@ var image_buttons = { "Image.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, "Image.create_dialog" : { diff --git a/src/sunstone/public/js/plugins/templates-tab.js b/src/sunstone/public/js/plugins/templates-tab.js index 312f32c48f..4e2dd92c08 100644 --- a/src/sunstone/public/js/plugins/templates-tab.js +++ b/src/sunstone/public/js/plugins/templates-tab.js @@ -685,7 +685,7 @@ var template_buttons = { "Template.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, "Template.create_dialog" : { diff --git a/src/sunstone/public/js/plugins/users-tab.js b/src/sunstone/public/js/plugins/users-tab.js index 8c0a860d2f..b1e9c9df12 100644 --- a/src/sunstone/public/js/plugins/users-tab.js +++ b/src/sunstone/public/js/plugins/users-tab.js @@ -111,7 +111,7 @@ var user_buttons = { "User.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, "User.create_dialog" : { diff --git a/src/sunstone/public/js/plugins/vms-tab.js b/src/sunstone/public/js/plugins/vms-tab.js index 6fbb349cf5..090d10e9d2 100644 --- a/src/sunstone/public/js/plugins/vms-tab.js +++ b/src/sunstone/public/js/plugins/vms-tab.js @@ -402,7 +402,7 @@ var vm_buttons = { "VM.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, diff --git a/src/sunstone/public/js/plugins/vnets-tab.js b/src/sunstone/public/js/plugins/vnets-tab.js index 5e5a588d0d..922a8d105f 100644 --- a/src/sunstone/public/js/plugins/vnets-tab.js +++ b/src/sunstone/public/js/plugins/vnets-tab.js @@ -237,7 +237,7 @@ var vnet_buttons = { "Network.refresh" : { type: "image", text: "Refresh list", - img: "/images/Refresh-icon.png", + img: "images/Refresh-icon.png", condition: True }, diff --git a/src/sunstone/public/js/sunstone-util.js b/src/sunstone/public/js/sunstone-util.js index 5d538bf702..1709736362 100644 --- a/src/sunstone/public/js/sunstone-util.js +++ b/src/sunstone/public/js/sunstone-util.js @@ -309,7 +309,7 @@ function onError(request,error_json) { //redirect to login if unauthenticated if (error_json.error.http_status=="401") { - window.location.href = "/login"; + window.location.href = "login"; }; if (!message){ diff --git a/src/sunstone/public/js/sunstone.js b/src/sunstone/public/js/sunstone.js index 852093dfee..7aa658c361 100644 --- a/src/sunstone/public/js/sunstone.js +++ b/src/sunstone/public/js/sunstone.js @@ -17,7 +17,7 @@ var cookie = {}; var username = ''; var uid = ''; -var spinner = 'retrieving'; +var spinner = 'retrieving'; //Sunstone configuration is formed by predifined "actions", main tabs @@ -382,7 +382,7 @@ function setLogin(){ $("#logout").click(function(){ OpenNebula.Auth.logout({ success:function(){ - window.location.href = "/login"; + window.location.href = "login"; } }); return false; diff --git a/src/sunstone/sunstone-server.rb b/src/sunstone/sunstone-server.rb index 94e1274f4d..e941bb6cfa 100755 --- a/src/sunstone/sunstone-server.rb +++ b/src/sunstone/sunstone-server.rb @@ -122,7 +122,8 @@ end # HTML Requests ############################################################################## get '/' do - redirect '/login' unless authorized? + return File.read(File.dirname(__FILE__)+ + '/templates/login.html') unless authorized? time = Time.now + 60 response.set_cookie("one-user", diff --git a/src/sunstone/templates/index.html b/src/sunstone/templates/index.html index 883487d9eb..2d6bff8eb2 100644 --- a/src/sunstone/templates/index.html +++ b/src/sunstone/templates/index.html @@ -3,42 +3,42 @@ OpenNebula Admin Console - - - - - - - - - - - - - + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + +
@@ -54,7 +54,7 @@