mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Made API handling better, removed unused components
This commit is contained in:
parent
8f42bec270
commit
9c8d508247
@ -20,13 +20,20 @@ func SaveUserPreferences(c *middleware.Context, cmd m.SavePreferencesCommand) Re
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetUserPreferences(c *middleware.Context) Response {
|
// GET /api/user/prefs
|
||||||
|
func GetUserPreferences(c *middleware.Context) {
|
||||||
|
|
||||||
query := m.GetPreferencesQuery{PrefId: c.UserId, PrefType: `user`}
|
query := m.GetPreferencesQuery{PrefId: c.UserId, PrefType: `user`}
|
||||||
|
|
||||||
if err := bus.Dispatch(&query); err != nil {
|
if err := bus.Dispatch(&query); err != nil {
|
||||||
return ApiError(500, "Failed to get user", err)
|
c.JsonApiErr(500, "Failed to get preferences for user", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return Json(200, query.Result)
|
dto := m.PreferencesDTO{
|
||||||
|
PrefId: query.Result.PrefId,
|
||||||
|
PrefType: query.Result.PrefType,
|
||||||
|
PrefData: query.Result.PrefData,
|
||||||
|
}
|
||||||
|
|
||||||
|
c.JSON(200, dto)
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import (
|
|||||||
|
|
||||||
// Typed errors
|
// Typed errors
|
||||||
var (
|
var (
|
||||||
ErrPreferenceNotFound = errors.New("Preference not found")
|
ErrPreferencesNotFound = errors.New("Preferences not found")
|
||||||
)
|
)
|
||||||
|
|
||||||
type Preferences struct {
|
type Preferences struct {
|
||||||
@ -23,7 +23,7 @@ type GetPreferencesQuery struct {
|
|||||||
PrefId int64
|
PrefId int64
|
||||||
PrefType string
|
PrefType string
|
||||||
|
|
||||||
Result PreferencesDTO
|
Result *Preferences
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------
|
// ---------------------
|
||||||
|
@ -22,10 +22,11 @@ func GetPreferences(query *m.GetPreferencesQuery) error {
|
|||||||
if resultsErr != nil {
|
if resultsErr != nil {
|
||||||
return resultsErr
|
return resultsErr
|
||||||
}
|
}
|
||||||
query.Result = m.PreferencesDTO{
|
|
||||||
PrefId: prefResults[0].PrefId,
|
if len(prefResults) > 0 {
|
||||||
PrefType: prefResults[0].PrefType,
|
query.Result = &prefResults[0]
|
||||||
PrefData: prefResults[0].PrefData,
|
} else {
|
||||||
|
query.Result = new(m.Preferences)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@ -45,15 +46,25 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
|
|||||||
return resultsErr
|
return resultsErr
|
||||||
}
|
}
|
||||||
|
|
||||||
var matchedPref m.Preferences
|
var savePref m.Preferences
|
||||||
matchedPref = prefResults[0]
|
var affectedRows int64
|
||||||
matchedPref.PrefData = cmd.PrefData
|
var saveErr error
|
||||||
affectedRows, updateErr := sess.Id(matchedPref.Id).Update(&matchedPref)
|
|
||||||
|
|
||||||
if affectedRows == 0 {
|
if len(prefResults) == 0 {
|
||||||
return m.ErrPreferenceNotFound
|
savePref.PrefId = cmd.PrefId
|
||||||
|
savePref.PrefType = cmd.PrefType
|
||||||
|
savePref.PrefData = cmd.PrefData
|
||||||
|
affectedRows, saveErr = sess.Insert(&savePref)
|
||||||
|
} else {
|
||||||
|
savePref = prefResults[0]
|
||||||
|
savePref.PrefData = cmd.PrefData
|
||||||
|
affectedRows, saveErr = sess.Id(savePref.Id).Update(&savePref)
|
||||||
}
|
}
|
||||||
|
|
||||||
return updateErr
|
if affectedRows == 0 {
|
||||||
|
return m.ErrPreferencesNotFound
|
||||||
|
}
|
||||||
|
|
||||||
|
return saveErr
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,6 @@ export class SideMenuCtrl {
|
|||||||
this.orgMenu = [
|
this.orgMenu = [
|
||||||
{section: 'You', cssClass: 'dropdown-menu-title'},
|
{section: 'You', cssClass: 'dropdown-menu-title'},
|
||||||
{text: 'Profile', url: this.getUrl('/profile')},
|
{text: 'Profile', url: this.getUrl('/profile')},
|
||||||
{text: 'Preferences', url: this.getUrl('/preferences')},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
if (this.isSignedIn) {
|
if (this.isSignedIn) {
|
||||||
|
@ -89,10 +89,6 @@ function setupAngularRoutes($routeProvider, $locationProvider) {
|
|||||||
templateUrl: 'public/app/features/profile/partials/profile.html',
|
templateUrl: 'public/app/features/profile/partials/profile.html',
|
||||||
controller : 'ProfileCtrl',
|
controller : 'ProfileCtrl',
|
||||||
})
|
})
|
||||||
.when('/preferences', {
|
|
||||||
templateUrl: 'public/app/features/profile/partials/preferences.html',
|
|
||||||
controller : 'PreferencesCtrl',
|
|
||||||
})
|
|
||||||
.when('/profile/password', {
|
.when('/profile/password', {
|
||||||
templateUrl: 'public/app/features/profile/partials/password.html',
|
templateUrl: 'public/app/features/profile/partials/password.html',
|
||||||
controller : 'ChangePasswordCtrl',
|
controller : 'ChangePasswordCtrl',
|
||||||
|
@ -10,6 +10,5 @@ define([
|
|||||||
'./profile/profileCtrl',
|
'./profile/profileCtrl',
|
||||||
'./profile/changePasswordCtrl',
|
'./profile/changePasswordCtrl',
|
||||||
'./profile/selectOrgCtrl',
|
'./profile/selectOrgCtrl',
|
||||||
'./profile/preferencesCtrl',
|
|
||||||
'./styleguide/styleguide',
|
'./styleguide/styleguide',
|
||||||
], function () {});
|
], function () {});
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
<navbar icon="icon-gf icon-gf-users" title="Preferences" title-url="preferences">
|
|
||||||
</navbar>
|
|
||||||
|
|
||||||
<div class="page-container">
|
|
||||||
<div class="page-header">
|
|
||||||
<h1>Preferences</h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<form name="userForm" class="gf-form-group">
|
|
||||||
<div class="gf-form">
|
|
||||||
<span class="gf-form-label width-10">Home Dashboard</span>
|
|
||||||
<input class="gf-form-input max-width-21" type="text" ng-model="prefData.homeDashboard">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="gf-form">
|
|
||||||
<span class="gf-form-label width-10">Time Range</span>
|
|
||||||
<input class="gf-form-input max-width-21" type="text" ng-model="prefData.timeRange">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="gf-form">
|
|
||||||
<span class="gf-form-label width-10">Theme</span>
|
|
||||||
<input class="gf-form-input max-width-21" type="text" ng-model="prefData.theme">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="gf-form-button-row">
|
|
||||||
<button type="submit" class="btn btn-success" ng-click="setUserPreferences()">Set Preferences</button>
|
|
||||||
<a class="btn-text" href="profile">Cancel</a>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form name="userForm" class="gf-form-group">
|
<form name="userForm" class="gf-form-group">
|
||||||
<h3 class="page-heading">Information</h3>
|
<h3 class="page-heading">Preferences</h3>
|
||||||
|
|
||||||
<div class="gf-form">
|
<div class="gf-form">
|
||||||
<span class="gf-form-label width-7">Name</span>
|
<span class="gf-form-label width-7">Name</span>
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
define([
|
|
||||||
'angular',
|
|
||||||
'app/core/config',
|
|
||||||
],
|
|
||||||
function (angular) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var module = angular.module('grafana.controllers');
|
|
||||||
|
|
||||||
module.controller('PreferencesCtrl', function($scope, backendSrv, $location) {
|
|
||||||
|
|
||||||
$scope.prefData = {};
|
|
||||||
|
|
||||||
$scope.setUserPreferences = function() {
|
|
||||||
if (!$scope.userForm.$valid) { return; }
|
|
||||||
|
|
||||||
console.log($scope.command);
|
|
||||||
|
|
||||||
backendSrv.put('/api/user/prefs', { prefData : $scope.prefData }).then(function() {
|
|
||||||
$location.path("profile");
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
Loading…
Reference in New Issue
Block a user