Skip to content

Commit 771d2a2

Browse files
committed
Merge pull request #375 from dpalou/MOBILE-1358
MOBILE-1358 site: Use userhomepage to determine first state
2 parents 841b85c + 1fbc407 commit 771d2a2

File tree

8 files changed

+34
-12
lines changed

8 files changed

+34
-12
lines changed

www/addons/files/controllers/choosesite.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ angular.module('mm.addons.files')
2121
* @ngdoc controller
2222
* @name mmaFilesChooseSiteCtrl
2323
*/
24-
.controller('mmaFilesChooseSiteCtrl', function($scope, $state, $stateParams, $mmSitesManager, $mmaFilesHelper, $ionicHistory) {
24+
.controller('mmaFilesChooseSiteCtrl', function($scope, $stateParams, $mmSitesManager, $mmaFilesHelper, $ionicHistory,
25+
$mmLoginHelper) {
2526

2627
var fileEntry = $stateParams.file || {};
2728
$scope.filename = fileEntry.name;
@@ -35,7 +36,7 @@ angular.module('mm.addons.files')
3536
$ionicHistory.nextViewOptions({
3637
disableBack: true
3738
});
38-
$state.go('site.mm_courses');
39+
$mmLoginHelper.goToSiteInitialPage();
3940
});
4041
};
4142
});

www/core/components/login/controllers/credentials.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,11 +117,11 @@ angular.module('mm.core.login')
117117
// Action should only have 1 site because we're filtering by username.
118118
action.action(action.sites[0]);
119119
} else {
120-
$state.go('site.mm_courses');
120+
return $mmLoginHelper.goToSiteInitialPage();
121121
}
122122
});
123123
} else {
124-
$state.go('site.mm_courses');
124+
return $mmLoginHelper.goToSiteInitialPage();
125125
}
126126
});
127127
}).catch(function(error) {

www/core/components/login/controllers/init.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ angular.module('mm.core.login')
3434
});
3535

3636
if ($mmSite.isLoggedIn()) {
37-
$state.go('site.mm_courses');
37+
$mmLoginHelper.goToSiteInitialPage();
3838
} else {
3939
$mmSitesManager.hasSites().then(function() {
4040
return $state.go('mm_login.sites');

www/core/components/login/controllers/reconnect.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ angular.module('mm.core.login')
2121
* @ngdoc controller
2222
* @name mmLoginReconnectCtrl
2323
*/
24-
.controller('mmLoginReconnectCtrl', function($scope, $state, $stateParams, $mmSitesManager, $mmApp, $mmUtil, $ionicHistory) {
24+
.controller('mmLoginReconnectCtrl', function($scope, $state, $stateParams, $mmSitesManager, $mmApp, $mmUtil, $ionicHistory,
25+
$mmLoginHelper) {
2526

2627
var infositeurl = $stateParams.infositeurl; // Siteurl in site info. It might be different than siteurl (http/https).
2728
$scope.siteurl = $stateParams.siteurl;
@@ -63,7 +64,7 @@ angular.module('mm.core.login')
6364
$mmSitesManager.updateSiteInfoByUrl(infositeurl, username).finally(function() {
6465
delete $scope.credentials; // Delete password from the scope.
6566
$ionicHistory.nextViewOptions({disableBack: true});
66-
$state.go('site.mm_courses');
67+
return $mmLoginHelper.goToSiteInitialPage();
6768
});
6869
}, function(error) {
6970
// Site deleted? Go back to login page.

www/core/components/login/controllers/site.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ angular.module('mm.core.login')
6060
$mmSitesManager.getUserToken(sitedata.url, sitedata.username, sitedata.password).then(function(data) {
6161
$mmSitesManager.newSite(data.siteurl, data.token).then(function() {
6262
$ionicHistory.nextViewOptions({disableBack: true});
63-
$state.go('site.mm_courses');
63+
return $mmLoginHelper.goToSiteInitialPage();
6464
}, function(error) {
6565
$mmUtil.showErrorModal(error);
6666
}).finally(function() {

www/core/components/login/controllers/sites.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ angular.module('mm.core.login')
6868

6969
$mmSitesManager.loadSite(siteid).then(function() {
7070
$ionicHistory.nextViewOptions({disableBack: true});
71-
$state.go('site.mm_courses');
71+
return $mmLoginHelper.goToSiteInitialPage();
7272
}, function(error) {
7373
$log.error('Error loading site '+siteid);
7474
error = error || 'Error loading site.';

www/core/components/login/main.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ angular.module('mm.core.login', [])
136136
disableAnimate: true,
137137
disableBack: true
138138
});
139-
$state.transitionTo('site.mm_courses');
139+
$mmLoginHelper.goToSiteInitialPage();
140140
}
141141

142142
});
@@ -202,7 +202,7 @@ angular.module('mm.core.login', [])
202202
$mmLoginHelper.validateBrowserSSOLogin(url).then(function(sitedata) {
203203

204204
$mmLoginHelper.handleSSOLoginAuthentication(sitedata.siteurl, sitedata.token).then(function() {
205-
$state.go('site.mm_courses');
205+
return $mmLoginHelper.goToSiteInitialPage();
206206
}, function(error) {
207207
$mmUtil.showErrorModal(error);
208208
}).finally(function() {

www/core/components/login/services/helper.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ angular.module('mm.core.login')
2626
* @name $mmLoginHelper
2727
*/
2828
.factory('$mmLoginHelper', function($q, $log, $mmConfig, mmLoginSSOCode, mmLoginLaunchSiteURL, mmLoginLaunchPassport,
29-
md5, $mmSite, $mmSitesManager, $mmLang, $mmUtil, $state, mmCoreConfigConstants) {
29+
md5, $mmSite, $mmSitesManager, $mmLang, $mmUtil, $state, $mmAddonManager, mmCoreConfigConstants) {
3030

3131
$log = $log.getInstance('$mmLoginHelper');
3232

@@ -50,6 +50,26 @@ angular.module('mm.core.login')
5050
}
5151
};
5252

53+
/**
54+
* Go to the initial page of a site depending on 'userhomepage' setting.
55+
*
56+
* @module mm.core.login
57+
* @ngdoc method
58+
* @name $mmLoginHelper#goToSiteInitialPage
59+
* @return {Promise} Promise resolved when the state changes.
60+
*/
61+
self.goToSiteInitialPage = function() {
62+
if ($mmSite.getInfo() && $mmSite.getInfo().userhomepage === 0) {
63+
// Configured to go to Site Home. Check if plugin is installed in the app.
64+
var $mmaFrontpage = $mmAddonManager.get('$mmaFrontpage');
65+
if ($mmaFrontpage) {
66+
return $state.go('site.mm_course-section');
67+
}
68+
}
69+
70+
return $state.go('site.mm_courses');
71+
};
72+
5373
/**
5474
* Check if the app is configured to use a fixed URL.
5575
*

0 commit comments

Comments
 (0)