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:
parent
f399df791c
commit
25ff8d073b
@ -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);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user