mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
query/param/body requirements. This overhauls the API pretty substantially, so we'll indeed be moving this to apiv2, using v1 for the old API, and limiting it's use substantially
106 lines
3.1 KiB
JavaScript
106 lines
3.1 KiB
JavaScript
'use strict';
|
|
|
|
// Make user and settings available for everyone through root scope.
|
|
habitrpg.controller('SettingsCtrl',
|
|
['$scope', 'User', '$rootScope', '$http', 'API_URL', 'Guide', '$location',
|
|
function($scope, User, $rootScope, $http, API_URL, Guide, $location) {
|
|
|
|
// FIXME we have this re-declared everywhere, figure which is the canonical version and delete the rest
|
|
// $scope.auth = function (id, token) {
|
|
// User.authenticate(id, token, function (err) {
|
|
// if (!err) {
|
|
// alert('Login successful!');
|
|
// $location.path("/habit");
|
|
// }
|
|
// });
|
|
// }
|
|
|
|
$scope.showTour = function(){
|
|
User.set({'flags.showTour':true});
|
|
Guide.initTour();
|
|
$location.path('/tasks');
|
|
}
|
|
|
|
$scope.showBailey = function(){
|
|
User.set({'flags.newStuff':true});
|
|
}
|
|
|
|
$scope.saveDayStart = function(){
|
|
var dayStart = +User.user.preferences.dayStart;
|
|
if (_.isNaN(dayStart) || dayStart < 0 || dayStart > 24) {
|
|
dayStart = 0;
|
|
return alert('Please enter a number between 0 and 24');
|
|
}
|
|
User.set({'preferences.dayStart': dayStart});
|
|
}
|
|
|
|
$scope.language = window.env.language;
|
|
$scope.avalaibleLanguages = window.env.avalaibleLanguages;
|
|
|
|
$scope.changeLanguage = function(){
|
|
$rootScope.$on('userSynced', function(){
|
|
location.reload();
|
|
});
|
|
User.set({'preferences.language': $scope.language.code});
|
|
}
|
|
|
|
$scope.reroll = function(){
|
|
User.user.ops.reroll({});
|
|
$rootScope.modals.reroll = false;
|
|
$rootScope.$state.go('tasks');
|
|
}
|
|
|
|
$scope.changePassword = function(changePass){
|
|
if (!changePass.oldPassword || !changePass.newPassword || !changePass.confirmNewPassword) {
|
|
return alert("Please fill out all fields");
|
|
}
|
|
$http.post(API_URL + '/api/v1/user/change-password', changePass)
|
|
.success(function(){
|
|
alert("Password successfully changed");
|
|
$scope.changePass = {};
|
|
})
|
|
.error(function(data){
|
|
alert(data);
|
|
});
|
|
}
|
|
|
|
$scope.restoreValues = {};
|
|
$rootScope.$watch('modals.restore', function(value){
|
|
if(value === true){
|
|
$scope.restoreValues.stats = angular.copy(User.user.stats);
|
|
$scope.restoreValues.achievements = {streak: User.user.achievements.streak || 0};
|
|
}
|
|
})
|
|
|
|
$scope.restore = function(){
|
|
var stats = $scope.restoreValues.stats,
|
|
achievements = $scope.restoreValues.achievements;
|
|
User.set({
|
|
"stats.hp": stats.hp,
|
|
"stats.exp": stats.exp,
|
|
"stats.gp": stats.gp,
|
|
"stats.lvl": stats.lvl,
|
|
"achievements.streak": achievements.streak
|
|
});
|
|
$rootScope.modals.restore = false;
|
|
}
|
|
|
|
$scope.reset = function(){
|
|
User.user.ops.reset({});
|
|
$rootScope.modals.reset = false;
|
|
$rootScope.$state.go('tasks');
|
|
}
|
|
|
|
$scope['delete'] = function(){
|
|
$http['delete'](API_URL + '/api/v1/user')
|
|
.success(function(){
|
|
localStorage.clear();
|
|
window.location.href = '/logout';
|
|
})
|
|
.error(function(data){
|
|
alert(data);
|
|
});
|
|
}
|
|
}
|
|
]);
|