From 011c582ebbb93822f30a25a91ad91404de89c204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 18 Aug 2017 14:49:04 +0200 Subject: [PATCH 1/2] minor user avatar stuff --- pkg/api/index.go | 13 ++++++--- pkg/api/user.go | 5 ++++ pkg/models/user.go | 1 + public/app/features/admin/partials/users.html | 8 +++--- .../app/features/org/partials/orgUsers.html | 27 +++++++------------ public/sass/components/_gf-form.scss | 2 +- 6 files changed, 31 insertions(+), 25 deletions(-) diff --git a/pkg/api/index.go b/pkg/api/index.go index aef0bc98fb1..d8c378b9059 100644 --- a/pkg/api/index.go +++ b/pkg/api/index.go @@ -235,12 +235,19 @@ func setIndexViewData(c *middleware.Context) (*dtos.IndexViewData, error) { }, }, { - Text: "Users", + Text: "Members", Id: "users", - Description: "Manage users & user groups", - Icon: "fa fa-fw fa-users", + Description: "Manage org members", + Icon: "icon-gf icon-gf-users", Url: setting.AppSubUrl + "/org/users", }, + { + Text: "Groups", + Id: "users", + Description: "Manage org groups", + Icon: "fa fa-fw fa-users", + Url: setting.AppSubUrl + "/org/user-groups", + }, { Text: "API Keys", Id: "apikeys", diff --git a/pkg/api/user.go b/pkg/api/user.go index 60ed1609987..9a041d30272 100644 --- a/pkg/api/user.go +++ b/pkg/api/user.go @@ -1,6 +1,7 @@ package api import ( + "github.com/grafana/grafana/pkg/api/dtos" "github.com/grafana/grafana/pkg/bus" "github.com/grafana/grafana/pkg/middleware" m "github.com/grafana/grafana/pkg/models" @@ -247,6 +248,10 @@ func searchUser(c *middleware.Context) (*m.SearchUsersQuery, error) { return nil, err } + for _, user := range query.Result.Users { + user.AvatarUrl = dtos.GetGravatarUrl(user.Email) + } + query.Result.Page = page query.Result.PerPage = perPage diff --git a/pkg/models/user.go b/pkg/models/user.go index bb12bc0038d..c6804a62514 100644 --- a/pkg/models/user.go +++ b/pkg/models/user.go @@ -197,6 +197,7 @@ type UserSearchHitDTO struct { Name string `json:"name"` Login string `json:"login"` Email string `json:"email"` + AvatarUrl string `json:"avatarUrl"` IsAdmin bool `json:"isAdmin"` LastSeenAt time.Time `json:"lastSeenAt"` LastSeenAtAge string `json:"lastSeenAtAge"` diff --git a/public/app/features/admin/partials/users.html b/public/app/features/admin/partials/users.html index 4b1d002d988..601e062def9 100644 --- a/public/app/features/admin/partials/users.html +++ b/public/app/features/admin/partials/users.html @@ -21,8 +21,7 @@ - - + - - +
IdName Login Email @@ -35,8 +34,9 @@
{{user.id}}{{user.name}} + + {{user.login}} {{user.email}} diff --git a/public/app/features/org/partials/orgUsers.html b/public/app/features/org/partials/orgUsers.html index fe11216f30d..eeaff564327 100644 --- a/public/app/features/org/partials/orgUsers.html +++ b/public/app/features/org/partials/orgUsers.html @@ -2,20 +2,18 @@
-
+
diff --git a/public/sass/components/_gf-form.scss b/public/sass/components/_gf-form.scss index f81eda65f86..0f96c23a67f 100644 --- a/public/sass/components/_gf-form.scss +++ b/public/sass/components/_gf-form.scss @@ -1,4 +1,4 @@ -$gf-form-margin: 0.1rem; +$gf-form-margin: 1px; .gf-form { margin-bottom: $gf-form-margin; From dc249cf94568aebf698ff344b11848dbba950fd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 18 Aug 2017 15:01:29 +0200 Subject: [PATCH 2/2] fixed unit tests --- .../app/features/org/specs/user_group_details_ctrl_specs.ts | 3 ++- .../app/features/playlist/specs/playlist_edit_ctrl_specs.ts | 4 +++- public/test/test-main.js | 1 + tasks/options/watch.js | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/public/app/features/org/specs/user_group_details_ctrl_specs.ts b/public/app/features/org/specs/user_group_details_ctrl_specs.ts index 7c68d678dbd..327dad7ac83 100644 --- a/public/app/features/org/specs/user_group_details_ctrl_specs.ts +++ b/public/app/features/org/specs/user_group_details_ctrl_specs.ts @@ -19,7 +19,8 @@ var backendSrv = { ctx.ctrl = $controller(UserGroupDetailsCtrl, { $scope: ctx.scope, backendSrv: backendSrv, - $routeParams: {id: 1} + $routeParams: {id: 1}, + navModelSrv: {getNav: sinon.stub()} }); })); diff --git a/public/app/features/playlist/specs/playlist_edit_ctrl_specs.ts b/public/app/features/playlist/specs/playlist_edit_ctrl_specs.ts index e27eb53e644..b2fee5d85d0 100644 --- a/public/app/features/playlist/specs/playlist_edit_ctrl_specs.ts +++ b/public/app/features/playlist/specs/playlist_edit_ctrl_specs.ts @@ -6,7 +6,9 @@ describe('PlaylistEditCtrl', () => { var ctx: any; beforeEach(() => { let navModelSrv = { - getPlaylistsNav: page => {}, + getNav: () => { + return { breadcrumbs: [], node: {}}; + }, }; ctx = new PlaylistEditCtrl(null, null, null, null, { current: { params: {} } }, navModelSrv); diff --git a/public/test/test-main.js b/public/test/test-main.js index 777e9d76afb..45077bb7b98 100644 --- a/public/test/test-main.js +++ b/public/test/test-main.js @@ -10,6 +10,7 @@ baseURL: '/base/', defaultJSExtensions: true, paths: { + 'gemini-scrollbar': 'vendor/npm/gemini-scrollbar/index.js', 'mousetrap': 'vendor/npm/mousetrap/mousetrap.js', 'eventemitter3': 'vendor/npm/eventemitter3/index.js', 'remarkable': 'vendor/npm/remarkable/dist/remarkable.js', diff --git a/tasks/options/watch.js b/tasks/options/watch.js index c3449524243..082f97fec77 100644 --- a/tasks/options/watch.js +++ b/tasks/options/watch.js @@ -24,6 +24,7 @@ module.exports = function(config, grunt) { gaze([ config.srcDir + '/sass/**/*', config.srcDir + '/app/**/*', + config.srcDir + '/test/**/*', config.srcDir + '/vendor/npm/gemini-scrollbar/*.js', ], function(err, watcher) {