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`}
|
||||
|
||||
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
|
||||
var (
|
||||
ErrPreferenceNotFound = errors.New("Preference not found")
|
||||
ErrPreferencesNotFound = errors.New("Preferences not found")
|
||||
)
|
||||
|
||||
type Preferences struct {
|
||||
@ -23,7 +23,7 @@ type GetPreferencesQuery struct {
|
||||
PrefId int64
|
||||
PrefType string
|
||||
|
||||
Result PreferencesDTO
|
||||
Result *Preferences
|
||||
}
|
||||
|
||||
// ---------------------
|
||||
|
@ -22,10 +22,11 @@ func GetPreferences(query *m.GetPreferencesQuery) error {
|
||||
if resultsErr != nil {
|
||||
return resultsErr
|
||||
}
|
||||
query.Result = m.PreferencesDTO{
|
||||
PrefId: prefResults[0].PrefId,
|
||||
PrefType: prefResults[0].PrefType,
|
||||
PrefData: prefResults[0].PrefData,
|
||||
|
||||
if len(prefResults) > 0 {
|
||||
query.Result = &prefResults[0]
|
||||
} else {
|
||||
query.Result = new(m.Preferences)
|
||||
}
|
||||
|
||||
return nil
|
||||
@ -45,15 +46,25 @@ func SavePreferences(cmd *m.SavePreferencesCommand) error {
|
||||
return resultsErr
|
||||
}
|
||||
|
||||
var matchedPref m.Preferences
|
||||
matchedPref = prefResults[0]
|
||||
matchedPref.PrefData = cmd.PrefData
|
||||
affectedRows, updateErr := sess.Id(matchedPref.Id).Update(&matchedPref)
|
||||
var savePref m.Preferences
|
||||
var affectedRows int64
|
||||
var saveErr error
|
||||
|
||||
if affectedRows == 0 {
|
||||
return m.ErrPreferenceNotFound
|
||||
if len(prefResults) == 0 {
|
||||
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 = [
|
||||
{section: 'You', cssClass: 'dropdown-menu-title'},
|
||||
{text: 'Profile', url: this.getUrl('/profile')},
|
||||
{text: 'Preferences', url: this.getUrl('/preferences')},
|
||||
];
|
||||
|
||||
if (this.isSignedIn) {
|
||||
|
@ -89,10 +89,6 @@ function setupAngularRoutes($routeProvider, $locationProvider) {
|
||||
templateUrl: 'public/app/features/profile/partials/profile.html',
|
||||
controller : 'ProfileCtrl',
|
||||
})
|
||||
.when('/preferences', {
|
||||
templateUrl: 'public/app/features/profile/partials/preferences.html',
|
||||
controller : 'PreferencesCtrl',
|
||||
})
|
||||
.when('/profile/password', {
|
||||
templateUrl: 'public/app/features/profile/partials/password.html',
|
||||
controller : 'ChangePasswordCtrl',
|
||||
|
@ -10,6 +10,5 @@ define([
|
||||
'./profile/profileCtrl',
|
||||
'./profile/changePasswordCtrl',
|
||||
'./profile/selectOrgCtrl',
|
||||
'./profile/preferencesCtrl',
|
||||
'./styleguide/styleguide',
|
||||
], 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>
|
||||
|
||||
<form name="userForm" class="gf-form-group">
|
||||
<h3 class="page-heading">Information</h3>
|
||||
<h3 class="page-heading">Preferences</h3>
|
||||
|
||||
<div class="gf-form">
|
||||
<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