mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
fix(interactive-tour): cleanup steps when navigating chapters, don't use tour.restart()
This commit is contained in:
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$http', '$state', 'Guide', 'Shared',
|
habitrpg.controller("UserCtrl", ['$rootScope', '$scope', '$location', 'User', '$http', '$state', 'Guide', 'Shared',
|
||||||
function($rootScope, $scope, $location, User, $http, $state, Guide, Shared) {
|
function($rootScope, $scope, $location, User, $http, $state, Guide, Shared) {
|
||||||
Guide.goto('intro', 5);
|
|
||||||
$scope.profile = User.user;
|
$scope.profile = User.user;
|
||||||
$scope.profile.petCount = Shared.countPets($rootScope.countExists($scope.profile.items.pets), $scope.profile.items.pets);
|
$scope.profile.petCount = Shared.countPets($rootScope.countExists($scope.profile.items.pets), $scope.profile.items.pets);
|
||||||
$scope.profile.mountCount = Shared.countMounts($rootScope.countExists($scope.profile.items.mounts), $scope.profile.items.mounts);
|
$scope.profile.mountCount = Shared.countMounts($rootScope.countExists($scope.profile.items.mounts), $scope.profile.items.mounts);
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ function($rootScope, User, $timeout, $state) {
|
|||||||
tour[k] = new Tour({
|
tour[k] = new Tour({
|
||||||
backdrop: true,
|
backdrop: true,
|
||||||
template: function(i,step){
|
template: function(i,step){
|
||||||
return '<div class="popover" role="tooltip"> <div class="arrow"></div> <h3 class="popover-title"></h3> <div class="popover-content"></div> <div class="popover-navigation"> <div class="btn-group"> <button class="btn btn-sm btn-default" data-role="prev">« Prev</button> <button class="btn btn-sm btn-default" data-role="next">Next »</button> <button class="btn btn-sm btn-default" data-role="pause-resume" data-pause-text="Pause" data-resume-text="Resume">Pause</button> </div> ' + (true ? '<button class="btn btn-sm btn-default" data-role="end">' + window.env.t('ok') + '</button> ' : '') +' </div> </div>';
|
return '<div class="popover" role="tooltip"> <div class="arrow"></div> <h3 class="popover-title"></h3> <div class="popover-content"></div> <div class="popover-navigation"> <div class="btn-group"> <button class="btn btn-sm btn-default" data-role="prev">« Prev</button> <button class="btn btn-sm btn-default" data-role="next">Next »</button> <button class="btn btn-sm btn-default" data-role="pause-resume" data-pause-text="Pause" data-resume-text="Resume">Pause</button> </div> ' + (true ? '<button class="btn btn-sm btn-default" data-role="end">Hide</button> ' : '') +' </div> </div>';
|
||||||
// FIXME: see https://github.com/HabitRPG/habitrpg/issues/4726
|
// FIXME: see https://github.com/HabitRPG/habitrpg/issues/4726
|
||||||
//return '<div class="popover" role="tooltip"> <div class="arrow"></div> <h3 class="popover-title"></h3> <div class="popover-content"></div> <div class="popover-navigation"> <div class="btn-group"> <button class="btn btn-sm btn-default" data-role="prev">« Prev</button> <button class="btn btn-sm btn-default" data-role="next">Next »</button> <button class="btn btn-sm btn-default" data-role="pause-resume" data-pause-text="Pause" data-resume-text="Resume">Pause</button> </div> ' + (step.final ? '<button class="btn btn-sm btn-default" data-role="end">' + window.env.t('ok') + '</button> ' : '') +' </div> </div>';
|
//return '<div class="popover" role="tooltip"> <div class="arrow"></div> <h3 class="popover-title"></h3> <div class="popover-content"></div> <div class="popover-navigation"> <div class="btn-group"> <button class="btn btn-sm btn-default" data-role="prev">« Prev</button> <button class="btn btn-sm btn-default" data-role="next">Next »</button> <button class="btn btn-sm btn-default" data-role="pause-resume" data-pause-text="Pause" data-resume-text="Resume">Pause</button> </div> ' + (step.final ? '<button class="btn btn-sm btn-default" data-role="end">' + window.env.t('ok') + '</button> ' : '') +' </div> </div>';
|
||||||
},
|
},
|
||||||
@@ -153,10 +153,20 @@ function($rootScope, User, $timeout, $state) {
|
|||||||
if ((page != curr+1 || curr > page) && !force) return;
|
if ((page != curr+1 || curr > page) && !force) return;
|
||||||
var updates = {};updates['flags.tour.'+chapter] = page;
|
var updates = {};updates['flags.tour.'+chapter] = page;
|
||||||
User.set(updates);
|
User.set(updates);
|
||||||
var end = tour[chapter]._options.steps.length;
|
var chap = tour[chapter], opts = chap._options;
|
||||||
tour[chapter].addSteps(chapters[chapter][page]);
|
opts.steps = [];
|
||||||
tour[chapter].restart(); // Tour doesn't quite mesh with our handling of flags.showTour, just restart it on page load
|
_.times(page, function(p){
|
||||||
tour[chapter].goTo(end);
|
opts.steps = opts.steps.concat(chapters[chapter][p]);
|
||||||
|
})
|
||||||
|
var end = opts.steps.length;
|
||||||
|
opts.steps = opts.steps.concat(chapters[chapter][page]);
|
||||||
|
chap._removeState('end');
|
||||||
|
if (chap._inited) {
|
||||||
|
chap.goTo(end);
|
||||||
|
} else {
|
||||||
|
chap.setCurrentStep(end);
|
||||||
|
chap.start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Init and show the welcome tour (only after user is pulled from server & wrapped).
|
//Init and show the welcome tour (only after user is pulled from server & wrapped).
|
||||||
@@ -168,6 +178,9 @@ function($rootScope, User, $timeout, $state) {
|
|||||||
|
|
||||||
var alreadyShown = function(before, after) { return !(!before && after === true) };
|
var alreadyShown = function(before, after) { return !(!before && after === true) };
|
||||||
//$rootScope.$watch('user.flags.dropsEnabled', _.flow(alreadyShown, function(already) { //FIXME requires lodash@~3.2.0
|
//$rootScope.$watch('user.flags.dropsEnabled', _.flow(alreadyShown, function(already) { //FIXME requires lodash@~3.2.0
|
||||||
|
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
|
||||||
|
if (toState.name == 'options.profile.avatar') goto('intro', 5);
|
||||||
|
})
|
||||||
$rootScope.$watch('user.flags.dropsEnabled', function(after, before) {
|
$rootScope.$watch('user.flags.dropsEnabled', function(after, before) {
|
||||||
if (alreadyShown(before,after)) return;
|
if (alreadyShown(before,after)) return;
|
||||||
var eggs = User.user.items.eggs || {};
|
var eggs = User.user.items.eggs || {};
|
||||||
|
|||||||
Reference in New Issue
Block a user