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 = '
';
+ var 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 = '
';
+var spinner = '
';
//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 @@