Commit 301ae2ea by Torkel Ödegaard

Merge branch 'develop' into develop-newgrid-rows

parents 02bb92a1 d452d3ce
package api package api
import ( import (
"github.com/grafana/grafana/pkg/api/dtos"
"github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/middleware" "github.com/grafana/grafana/pkg/middleware"
m "github.com/grafana/grafana/pkg/models" m "github.com/grafana/grafana/pkg/models"
...@@ -31,10 +32,6 @@ func addOrgUserHelper(cmd m.AddOrgUserCommand) Response { ...@@ -31,10 +32,6 @@ func addOrgUserHelper(cmd m.AddOrgUserCommand) Response {
userToAdd := userQuery.Result userToAdd := userQuery.Result
// if userToAdd.Id == c.UserId {
// return ApiError(400, "Cannot add yourself as user", nil)
// }
cmd.UserId = userToAdd.Id cmd.UserId = userToAdd.Id
if err := bus.Dispatch(&cmd); err != nil { if err := bus.Dispatch(&cmd); err != nil {
...@@ -64,6 +61,10 @@ func getOrgUsersHelper(orgId int64) Response { ...@@ -64,6 +61,10 @@ func getOrgUsersHelper(orgId int64) Response {
return ApiError(500, "Failed to get account user", err) return ApiError(500, "Failed to get account user", err)
} }
for _, user := range query.Result {
user.AvatarUrl = dtos.GetGravatarUrl(user.Email)
}
return Json(200, query.Result) return Json(200, query.Result)
} }
......
...@@ -115,6 +115,7 @@ type OrgUserDTO struct { ...@@ -115,6 +115,7 @@ type OrgUserDTO struct {
OrgId int64 `json:"orgId"` OrgId int64 `json:"orgId"`
UserId int64 `json:"userId"` UserId int64 `json:"userId"`
Email string `json:"email"` Email string `json:"email"`
AvatarUrl string `json:"avatarUrl"`
Login string `json:"login"` Login string `json:"login"`
Role string `json:"role"` Role string `json:"role"`
LastSeenAt time.Time `json:"lastSeenAt"` LastSeenAt time.Time `json:"lastSeenAt"`
......
...@@ -85,16 +85,12 @@ ...@@ -85,16 +85,12 @@
</div> </div>
</div> </div>
<div ng-if="editor.index == 2"> <div ng-if="editor.index == 1">
<dash-links-editor></dash-links-editor> <dash-links-editor></dash-links-editor>
</div> </div>
<div ng-if="editor.index == 3"> <div ng-if="editor.index == 2">
<gf-time-picker-settings dashboard="dashboard"></gf-time-picker-settings> <gf-time-picker-settings dashboard="dashboard"></gf-time-picker-settings>
</div> </div>
<div ng-if="editor.index == 4">
<acl-settings dashboard="dashboard"></acl-settings>
</div>
</div> </div>
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
</h1> </h1>
<div class="page-header-tabs"> <div class="page-header-tabs">
<button class="btn btn-success" ng-click="ctrl.openAddUsersView()" ng-hide="ctrl.externalUserMngLinkUrl"> <button class="btn btn-success" ng-click="ctrl.openAddUsersView()" ng-hide="ctrl.externalUserMngLinkUrl">
<i class="fa fa-plus"></i> <i class="fa fa-plus"></i>
<span>{{ctrl.addUsersBtnName}}</span> <span>{{ctrl.addUsersBtnName}}</span>
...@@ -47,6 +46,7 @@ ...@@ -47,6 +46,7 @@
<table class="filter-table form-inline"> <table class="filter-table form-inline">
<thead> <thead>
<tr> <tr>
<th></th>
<th>Login</th> <th>Login</th>
<th>Email</th> <th>Email</th>
<th> <th>
...@@ -58,6 +58,9 @@ ...@@ -58,6 +58,9 @@
</tr> </tr>
</thead> </thead>
<tr ng-repeat="user in ctrl.users"> <tr ng-repeat="user in ctrl.users">
<td class="width-4 text-center">
<img class="filter-table__avatar" ng-src="{{user.avatarUrl}}"></img>
</td>
<td>{{user.login}}</td> <td>{{user.login}}</td>
<td><span class="ellipsis">{{user.email}}</span></td> <td><span class="ellipsis">{{user.email}}</span></td>
<td>{{user.lastSeenAtAge}}</td> <td>{{user.lastSeenAtAge}}</td>
......
...@@ -5,6 +5,9 @@ ...@@ -5,6 +5,9 @@
<div gemini-scrollbar> <div gemini-scrollbar>
<div dash-editor-view class="dash-edit-view"></div> <div dash-editor-view class="dash-edit-view"></div>
<div class="dashboard-container"> <div class="dashboard-container">
<dashboard-submenu ng-if="dashboard.meta.submenuEnabled" dashboard="dashboard"></dashboard-submenu>
<div class="clearfix"></div> <div class="clearfix"></div>
<dashboard-submenu ng-if="dashboard.meta.submenuEnabled" dashboard="dashboard"></dashboard-submenu> <dashboard-submenu ng-if="dashboard.meta.submenuEnabled" dashboard="dashboard"></dashboard-submenu>
......
...@@ -63,6 +63,7 @@ $text-shadow-faint: 1px 1px 4px rgb(45, 45, 45); ...@@ -63,6 +63,7 @@ $text-shadow-faint: 1px 1px 4px rgb(45, 45, 45);
// gradients // gradients
$brand-gradient: linear-gradient(to right, rgba(255,213,0,0.7) 0%, rgba(255,68,0,0.7) 99%, rgba(255,68,0,0.7) 100%); $brand-gradient: linear-gradient(to right, rgba(255,213,0,0.7) 0%, rgba(255,68,0,0.7) 99%, rgba(255,68,0,0.7) 100%);
$page-gradient: linear-gradient(180deg, rgb(36, 36, 36) 40px, rgba(178, 31, 31, 0.03) 100px, rgba(253, 187, 45, 0.03)); $page-gradient: linear-gradient(180deg, rgb(36, 36, 36) 40px, rgba(178, 31, 31, 0.03) 100px, rgba(253, 187, 45, 0.03));
$dashboard-gradient: linear-gradient(180deg, #242424 10px, rgba(15, 15, 15, 1) 100px, rgb(10, 10, 10));
// Links // Links
// ------------------------- // -------------------------
......
...@@ -69,6 +69,7 @@ $text-shadow-faint: none; ...@@ -69,6 +69,7 @@ $text-shadow-faint: none;
// gradients // gradients
$brand-gradient: linear-gradient(to right, rgba(255,213,0,1.0) 0%, rgba(255,68,0,1.0) 99%, rgba(255,68,0,1.0) 100%); $brand-gradient: linear-gradient(to right, rgba(255,213,0,1.0) 0%, rgba(255,68,0,1.0) 99%, rgba(255,68,0,1.0) 100%);
$page-gradient: linear-gradient(60deg, transparent 70%, darken($page-bg, 4%) 98%); $page-gradient: linear-gradient(60deg, transparent 70%, darken($page-bg, 4%) 98%);
$dashboard-gradient: linear-gradient(60deg, transparent 70%, darken($page-bg, 4%) 98%);
// Links // Links
// ------------------------- // -------------------------
......
...@@ -53,4 +53,8 @@ ...@@ -53,4 +53,8 @@
padding-bottom: 0; padding-bottom: 0;
} }
.filter-table__avatar {
width: 25px;
height: 25px;
border-radius: 50%;
}
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
flex-direction: column; flex-direction: column;
width: $side-menu-width; width: $side-menu-width;
background: $navbarBackground; background: $navbarBackground;
z-index: 1; z-index: 10;
box-shadow: 0 0 20px black;
a:focus { a:focus {
text-decoration: none; text-decoration: none;
...@@ -17,6 +18,9 @@ ...@@ -17,6 +18,9 @@
background: $side-menu-bg; background: $side-menu-bg;
position: initial; position: initial;
height: auto; height: auto;
box-shadow: 0 0 20px black;
position: relative;
z-index: 1;
} }
.sidemenu__top, .sidemenu__top,
.sidemenu__bottom { .sidemenu__bottom {
......
.tabbed-view { .tabbed-view {
background-color: $page-bg; background-color: $panel-bg;
padding: $spacer*3; padding: $spacer*3;
margin-bottom: $dashboard-padding;
&.tabbed-view--panel-edit { &.tabbed-view--panel-edit {
padding: 0; padding: 0;
......
...@@ -46,6 +46,10 @@ ...@@ -46,6 +46,10 @@
} }
} }
.navbar {
box-shadow: none;
}
.navbar-page-btn { .navbar-page-btn {
border-color: transparent; border-color: transparent;
background: transparent; background: transparent;
......
.dashboard-container { .dashboard-container {
padding: $dashboard-padding; padding: $dashboard-padding;
background: $dashboard-gradient;
width: 100%; width: 100%;
background: $page-gradient; min-height: 100%;
} }
.template-variable { .template-variable {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment