Began work on Account -> Organization rethink, #1506

This commit is contained in:
Torkel Ödegaard 2015-02-23 16:39:52 +01:00
parent a8c90e2365
commit 5b2715515f
12 changed files with 61 additions and 76 deletions

View File

@ -20,7 +20,7 @@ type CurrentUser struct {
Email string `json:"email"` Email string `json:"email"`
Name string `json:"name"` Name string `json:"name"`
AccountRole m.RoleType `json:"accountRole"` AccountRole m.RoleType `json:"accountRole"`
AccountName string `json:"acountName"` AccountName string `json:"accountName"`
IsGrafanaAdmin bool `json:"isGrafanaAdmin"` IsGrafanaAdmin bool `json:"isGrafanaAdmin"`
GravatarUrl string `json:"gravatarUrl"` GravatarUrl string `json:"gravatarUrl"`
} }

View File

@ -18,69 +18,23 @@ function (angular, _, $, config) {
$scope.menu = []; $scope.menu = [];
$scope.menu.push({ $scope.menu.push({
text: "Dashboards", text: "Dashboards",
icon: "fa fa-th-large", icon: "fa fa-fw fa-th-large",
href: $scope.getUrl("/"), href: $scope.getUrl("/"),
}); });
if (contextSrv.hasRole('Admin')) { if (contextSrv.hasRole('Admin')) {
$scope.menu.push({ $scope.menu.push({
text: "Data Sources", text: "Data Sources",
icon: "fa fa-database", icon: "fa fa-fw fa-database",
href: $scope.getUrl("/account/datasources"), href: $scope.getUrl("/account/datasources"),
}); });
$scope.menu.push({ $scope.menu.push({
text: "Account", href: $scope.getUrl("/account"), text: "Organization", href: $scope.getUrl("/account"),
requireRole: "Admin", icon: "fa fa-fw fa-users",
icon: "fa fa-shield",
});
}
if (contextSrv.user.isGrafanaAdmin) {
$scope.menu.push({
text: "Admin", href: $scope.getUrl("/admin/settings"),
icon: "fa fa-cube",
requireSignedIn: true,
}); });
} }
$scope.updateState = function() { $scope.updateState = function() {
var currentPath = config.appSubUrl + $location.path();
var search = $location.search();
_.each($scope.menu, function(item) {
item.active = false;
if (item.href === currentPath) {
item.active = true;
}
if (item.startsWith) {
if (currentPath.indexOf(item.startsWith) === 0) {
item.active = true;
item.href = currentPath;
}
}
_.each(item.links, function(link) {
link.active = false;
if (link.editview) {
var params = {};
_.each(search, function(value, key) {
if (value !== null) { params[key] = value; }
});
params.editview = link.editview;
link.href = currentPath + '?' + $.param(params);
}
if (link.href === currentPath) {
item.active = true;
link.active = true;
}
});
});
}; };
$scope.init = function() { $scope.init = function() {

View File

@ -1,4 +1,4 @@
<topnav icon="fa fa-shield" title="Account" subnav="true"> <topnav icon="fa fa-fw fa-users" title="Organization" subnav="true">
<ul class="nav"> <ul class="nav">
<li class="active"><a href="account">Overview</a></li> <li class="active"><a href="account">Overview</a></li>
<li><a href="account/users">Users</a></li> <li><a href="account/users">Users</a></li>
@ -8,7 +8,7 @@
<div class="page-container"> <div class="page-container">
<div class="page"> <div class="page">
<h2>Account Info</h2> <h2>Organization Details</h2>
<form name="accountForm"> <form name="accountForm">
<div> <div>

View File

@ -1,4 +1,4 @@
<topnav title="Data sources" icon="fa fa-database" subnav="true"> <topnav title="Data sources" icon="fa fa-fw fa-database" subnav="true">
<ul class="nav"> <ul class="nav">
<li><a href="account/datasources">Overview</a></li> <li><a href="account/datasources">Overview</a></li>
<li ng-class="{active: isNew}"><a href="account/datasources/new">Add new</a></li> <li ng-class="{active: isNew}"><a href="account/datasources/new">Add new</a></li>

View File

@ -1,4 +1,4 @@
<topnav title="Data sources" icon="fa fa-database" subnav="true"> <topnav title="Data sources" icon="fa fa-fw fa-database" subnav="true">
<ul class="nav"> <ul class="nav">
<li class="active" ><a href="account/datasources">Overview</a></li> <li class="active" ><a href="account/datasources">Overview</a></li>
<li><a href="account/datasources/new">Add new</a></li> <li><a href="account/datasources/new">Add new</a></li>

View File

@ -1,4 +1,4 @@
<topnav title="Account" icon="fa fa-shield" subnav="true"> <topnav title="Organization" icon="fa fa-users" subnav="true">
<ul class="nav"> <ul class="nav">
<li><a href="account">Overview</a></li> <li><a href="account">Overview</a></li>
<li class="active"><a href="account/users">Users</a></li> <li class="active"><a href="account/users">Users</a></li>

View File

@ -1,4 +1,4 @@
<topnav icon="fa fa-cube" title="Admin" subnav="true"> <topnav icon="fa fa-fw fa-cogs" title="System Admin" subnav="true">
<ul class="nav"> <ul class="nav">
<li><a href="admin/settings">Settings</a></li> <li><a href="admin/settings">Settings</a></li>
<li><a href="admin/users">Users</a></li> <li><a href="admin/users">Users</a></li>

View File

@ -1,4 +1,4 @@
<topnav icon="fa fa-cube" title="Admin" subnav="true"> <topnav icon="fa fa-fw fa-cogs" title="System Admin" subnav="true">
<ul class="nav"> <ul class="nav">
<li><a href="admin/settings">Settings</a></li> <li><a href="admin/settings">Settings</a></li>
<li><a href="admin/users">Users</a></li> <li><a href="admin/users">Users</a></li>

View File

@ -1,4 +1,4 @@
<topnav icon="fa fa-cube" title="Admin" subnav="true"> <topnav icon="fa fa-fw fa-cogs" title="System Admin" subnav="true">
<ul class="nav"> <ul class="nav">
<li class="active"><a href="admin/settings">Settings</a></li> <li class="active"><a href="admin/settings">Settings</a></li>
<li><a href="admin/users">Users</a></li> <li><a href="admin/users">Users</a></li>

View File

@ -1,4 +1,4 @@
<topnav icon="fa fa-cube" title="Admin" subnav="true"> <topnav icon="fa fa-fw fa-cogs" title="System Admin" subnav="true">
<ul class="nav"> <ul class="nav">
<li><a href="admin/settings">Settings</a></li> <li><a href="admin/settings">Settings</a></li>
<li class="active"><a href="admin/users">Users</a></li> <li class="active"><a href="admin/users">Users</a></li>

View File

@ -1,7 +1,8 @@
<div ng-controller="SideMenuCtrl" ng-init="init()"> <div ng-controller="SideMenuCtrl" ng-init="init()">
<ul class="sidemenu">
<li style="margin-bottom: 2px;"> <ul class="sidemenu sidemenu-main">
<li style="margin-bottom: 10px;">
<a class="pointer sidemenu-top-btn" ng-click="contextSrv.toggleSideMenu()"> <a class="pointer sidemenu-top-btn" ng-click="contextSrv.toggleSideMenu()">
<img class="logo-icon" src="img/fav32.png"></img> <img class="logo-icon" src="img/fav32.png"></img>
<i class="pull-right fa fa-angle-left"></i> <i class="pull-right fa fa-angle-left"></i>
@ -14,26 +15,35 @@
<span class="sidemenu-item-text">{{item.text}}</span> <span class="sidemenu-item-text">{{item.text}}</span>
</a> </a>
</li> </li>
</ul>
<li ng-if="contextSrv.user.isSignedIn" style="margin-top:50px"> <ul class="sidemenu sidemenu-small" ng-if="contextSrv.user.isSignedIn">
<li style="margin-top:50px">
<a href="profile" class="sidemenu-item sidemenu-user"> <a href="profile" class="sidemenu-item sidemenu-user">
<img ng-src="{{contextSrv.user.gravatarUrl}}"> <img ng-src="{{contextSrv.user.gravatarUrl}}">
<span class="sidemenu-item-text">{{contextSrv.user.name}}</a> <span class="sidemenu-item-text">{{contextSrv.user.name}}</a>
</a> </a>
</li> </li>
<li ng-if="contextSrv.user.isSignedIn"> <li ng-if="contextSrv.user.isGrafanaAdmin">
<a href="admin/settings" class="sidemenu-item">
<span class="icon-circle sidemenu-icon"><i class="fa fw-fw fa-cogs"></i></span>
<span class="sidemenu-item-text">System Admin</span>
</a>
</li>
<li>
<a href="logout" class="sidemenu-item" target="_self"> <a href="logout" class="sidemenu-item" target="_self">
<span class="sidemenu-item-text no-icon">Sign out</span> <span class="icon-circle sidemenu-icon"><i class="fa fa-fw fa-sign-out"></i></span>
</a> <span class="sidemenu-item-text">Sign out</span>
</a>
</li> </li>
<li ng-if="!contextSrv.user.isSignedIn" style="margin-top:50px"> <li ng-if="!contextSrv.user.isSignedIn" style="margin-top:50px">
<a href="/login" class="sidemenu-item" target="_self"> <a href="/login" class="sidemenu-item" target="_self">
<span class="sidemenu-icon"><i class="fa fa-sign-in"></i></span> <span class="sidemenu-icon"><i class="fa fa-fw fa-sign-in"></i></span>
<span class="sidemenu-item-text">Sign in</span> <span class="sidemenu-item-text">Sign in</span>
</a> </a>
</li> </li>
</ul> </ul>
</div> </div>

View File

@ -41,11 +41,32 @@
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
li { li {
height: 50px; margin-bottom: 7px;
}
&.sidemenu-small {
font-size: 14px;
.icon-circle {
width: 28px;
height: 28px;
i {
top: 1px;
left: 6px;
font-size: 110%;
}
}
.sidemenu-item {
color: @textColor;
line-height: 28px;
}
} }
} }
.sidemenu-user { .sidemenu-user {
.sidemenu-item-text { .sidemenu-item-text {
width: 110px; width: 110px;
@ -57,8 +78,8 @@
} }
img { img {
border-radius: 50%; border-radius: 50%;
width: 40px; width: 28px;
height: 40px; height: 28px;
box-shadow: 0 0 14px 2px rgba(255,255,255, 0.05); box-shadow: 0 0 14px 2px rgba(255,255,255, 0.05);
} }
} }
@ -93,8 +114,8 @@
color: @textColor; color: @textColor;
opacity: .7; opacity: .7;
position: relative; position: relative;
left: 11px; left: 7px;
top: 1px; top: 2px;
font-size: 125%; font-size: 125%;
} }
} }
@ -104,8 +125,8 @@
.sidemenu-item { .sidemenu-item {
color: #f80; color: #f80;
line-height: 41px; line-height: 40px;
padding: 14px 10px 14px 20px; padding: 0px 10px 0px 20px;
display: block; display: block;
.sidemenu-item-text { .sidemenu-item-text {