1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-20 10:50:08 +03:00

feature #3748: Add zone-selector

This commit is contained in:
Daniel Molina 2015-06-15 19:18:08 +02:00
parent f399df791c
commit 25ff8d073b
2 changed files with 73 additions and 2 deletions

View File

@ -2,7 +2,10 @@ define(function(require) {
require('jquery');
var DASHBOARD_TAB_ID = require('tabs/dashboard-tab/tabId');
var SETTINGS_TAB_ID = require('tabs/settings-tab/tabId');
var Sunstone = require('sunstone');
var OpenNebula = require('opennebula');
var Notifier = require('utils/notifier');
var _tabs = [
require('tabs/dashboard-tab'),
@ -45,13 +48,14 @@ define(function(require) {
Sunstone.insertTabs();
_setupAccordion();
_insertUserAndZoneSelector();
Sunstone.showTab(DASHBOARD_TAB_ID);
});
function _setupAccordion() {
$(document).on("click", ".accordion_advanced > a", function() {
if ($(this).hasClass("active")){
if ($(this).hasClass("active")) {
$(this).removeClass("active");
} else {
$(this).addClass("active");
@ -62,4 +66,71 @@ define(function(require) {
return false;
})
}
function _insertUserAndZoneSelector() {
var user_login_content = '<a href="#" data-dropdown="drop1" class="button small radius secondary dropdown" id="logout">\
<i class="fa fa-user fa-lg fa-fw header-icon"></i> ' + config['display_name'] + '</a>\
<ul id="drop1" data-dropdown-content class="f-dropdown">\
<li><a href="#" class="configuration"><i class="fa fa-cog"></i> Settings</a></li>\
<li><a href="#" class="logout"><i class="fa fa-power-off"></i> Sign Out</a></li>\
</ul>\
<a href="#" data-dropdown="drop2" class="button small radius secondary dropdown" id="zonelector">\
<i class="fa fa-home fa-lg fa-fw header-icon"></i> ' + config['zone_name'] + '</a>\
<ul id="drop2" data-dropdown-content class="zone-ul f-dropdown"></ul>';
$(".user-zone-info").html(user_login_content);
function zoneRefresh() {
// Populate Zones dropdown
OpenNebula.Zone.list({
timeout: true,
success: function (request, obj_list) {
$('.zone-ul').empty();
$.each(obj_list, function() {
$('.zone-ul').append('<li><a id="' + this.ZONE.NAME + '" class="zone-choice">' + this.ZONE.NAME + '</a></li>');
});
},
error: Notifier.onError
});
}
$('#zonelector').on("click", function() {
zoneRefresh();
});
$('a.zone-choice').on("click", function() {
$.ajax({
url: 'config',
type: "GET",
headers: {
"ZONE_NAME" : this.id
},
dataType: "json",
success: function() {
window.location.href = ".";
},
error: function(response) {
Notifier.onError(null, OpenNebula.Error(response))
}
});
});
$(".user-zone-info").foundation('reflow', 'dropdown');
$("a.logout", $(".user-zone-info ")).click(function() {
OpenNebula.Auth.logout({
success: function() {
window.location.href = "login";
},
error: Notifier.onError
});
return false;
});
$(".user-zone-info a.configuration").click(function() {
$(document).foundation('dropdown', 'closeall');
Sunstone.showTab(SETTINGS_TAB_ID);
});
}
});

View File

@ -49,7 +49,7 @@ define(function(require) {
url: "logout",
type: "POST",
success: function(response) {
$.cookie("one-user", null);
// TODO $.cookie("one-user", null);
return callback ? callback(request, response) : null;
},
error: function(response) {