Skip to content

Commit c40ae1a

Browse files
committed
MOBILE-1461 wiki: Add state when moving through groups
1 parent dfdac17 commit c40ae1a

File tree

4 files changed

+41
-36
lines changed

4 files changed

+41
-36
lines changed

www/addons/mod_wiki/controllers/index.js

Lines changed: 27 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,12 @@ angular.module('mm.addons.mod_wiki')
2222
* @name mmaModWikiIndexCtrl
2323
*/
2424
.controller('mmaModWikiIndexCtrl', function($q, $scope, $stateParams, $mmCourse, $mmUser, $mmGroups, $ionicPopover, $mmUtil, $state,
25-
$mmSite, $mmaModWiki, $ionicScrollDelegate, $ionicTabsDelegate, $ionicHistory, $translate, mmaModWikiSubwikiPagesLoaded) {
25+
$mmSite, $mmaModWiki, $ionicTabsDelegate, $ionicHistory, $translate, mmaModWikiSubwikiPagesLoaded) {
2626
var module = $stateParams.module || {},
2727
courseId = $stateParams.courseid,
2828
action = $stateParams.action || 'page',
2929
currentPage = $stateParams.pageid || false,
3030
popover, wiki, currentSubwiki, loadedSubwikis,
31-
scrollDelegate = $ionicScrollDelegate.$getByHandle('mmaModWikiIndexScroll'),
3231
tabsDelegate;
3332

3433
$scope.title = $stateParams.pagetitle || module.name;
@@ -56,7 +55,7 @@ angular.module('mm.addons.mod_wiki')
5655

5756
$scope.gotoPage = function(pageId) {
5857
if (currentPage != pageId) {
59-
// Add a new State
58+
// Add a new State.
6059
return fetchPageContents(pageId).then(function(page) {
6160
var stateParams = {
6261
module: module,
@@ -75,6 +74,29 @@ angular.module('mm.addons.mod_wiki')
7574
tabsDelegate.select(0);
7675
};
7776

77+
$scope.gotoSubwiki = function(subwikiId) {
78+
79+
// Check if the subwiki is disabled.
80+
if (subwikiId > 0) {
81+
popover.hide();
82+
83+
if (subwikiId != currentSubwiki.id) {
84+
// Add a new State.
85+
var stateParams = {
86+
module: module,
87+
moduleid: module.id,
88+
courseid: courseId,
89+
pageid: null,
90+
pagetitle: null,
91+
wikiid: wiki.id,
92+
subwikiid: subwikiId,
93+
action: tabsDelegate.selectedIndex() == 0 ? 'page' : 'map'
94+
};
95+
return $state.go('site.mod_wiki', stateParams);
96+
}
97+
}
98+
};
99+
78100
// Convenience function to get wiki data.
79101
function fetchWikiData(refresh) {
80102
var id = module.id || $stateParams.wikiid,
@@ -98,8 +120,6 @@ angular.module('mm.addons.mod_wiki')
98120
}
99121

100122
return promise.then(function(mod) {
101-
var groupmode = wiki.groupmode;
102-
103123
module = mod;
104124

105125
$scope.title = $scope.title || wiki.title;
@@ -131,7 +151,7 @@ angular.module('mm.addons.mod_wiki')
131151
});
132152
}).then(function() {
133153

134-
if ($scope.subwikiData.count > 1 && !popover) {
154+
if ($scope.subwikiData.count > 1) {
135155
// More than one subwiki available.
136156
handleSubwikiPopover();
137157
}
@@ -165,29 +185,6 @@ angular.module('mm.addons.mod_wiki')
165185

166186
// Convinience function that handles Subwiki Popover.
167187
function handleSubwikiPopover() {
168-
169-
// Preparing the popover.
170-
$scope.subwikiPicked = function(subwikiId) {
171-
172-
// Check if the subwiki is disabled.
173-
if (subwikiId > 0) {
174-
popover.hide();
175-
176-
if (subwikiId != currentSubwiki.id) {
177-
178-
scrollDelegate.scrollTop(false);
179-
180-
currentPage = false;
181-
$scope.subwikiData.selected = subwikiId;
182-
$scope.wikiLoaded = false;
183-
184-
return fetchWikiPage();
185-
}
186-
// No changes done.
187-
$scope.wikiLoaded = true;
188-
}
189-
};
190-
191188
$ionicPopover.fromTemplateUrl('addons/mod_wiki/templates/subwiki_picker.html', {
192189
scope: $scope
193190
}).then(function(po) {
@@ -206,7 +203,7 @@ angular.module('mm.addons.mod_wiki')
206203
userGroupsIds = [],
207204
allParticipants = false,
208205
myGroups = false,
209-
multiLevelList = false;
206+
multiLevelList = false,
210207
currentUserId = $mmSite.getUserId() || false,
211208
allParticipantsTitle = $translate.instant('mm.core.allparticipants'),
212209
nonInGroupTitle = $translate.instant('mma.mod_wiki.notingroup'),

www/addons/mod_wiki/controllers/map.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ angular.module('mm.addons.mod_wiki')
2121
* @ngdoc controller
2222
* @name mmaModWikiMapCtrl
2323
*/
24-
.controller('mmaModWikiMapCtrl', function($scope, $mmEvents, mmaModWikiSubwikiPagesLoaded, $stateParams) {
24+
.controller('mmaModWikiMapCtrl', function($scope, mmaModWikiSubwikiPagesLoaded) {
2525
$scope.map = [];
2626

2727
$scope.constructMap = function(subwikiPages) {

www/addons/mod_wiki/scss/styles.scss

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ $mma-mod-wiki-newentry-link-color: red !default;
33
$mma-mod-wiki-toc-title-color: #666 !default;
44
$mma-mod-wiki-toc-border-color: #bbb !default;
55
$mma-mod-wiki-toc-background-color: #eee !default;
6+
$mma-mod-wiki-subwiki-selected-background-color: #f7f7f7 !default;
67

78
.wiki-toc {
89
border: 1px solid $mma-mod-wiki-toc-border-color;
@@ -11,7 +12,6 @@ $mma-mod-wiki-toc-background-color: #eee !default;
1112
padding: 8px;
1213
}
1314

14-
1515
.wiki-toc-title {
1616
color: $mma-mod-wiki-toc-title-color;
1717
font-size: 1.1em;
@@ -44,4 +44,12 @@ a.wiki_edit_section {
4444

4545
.mma-mod_wiki-subwiki-picker .item-divider {
4646
font-weight: bold;
47+
}
48+
49+
.mma-mod_wiki-subwiki-picker .item.item-selected {
50+
background-color: $mma-mod-wiki-subwiki-selected-background-color;
51+
}
52+
53+
.mma-mod_wiki-subwiki-picker .item.item-selected .icon {
54+
font-size: 24px;
4755
}

www/addons/mod_wiki/templates/subwiki_picker.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<ion-content>
33
<div class="list">
44
<div ng-repeat-start="group in subwikiData.subwikis" ng-if="group.label" class="item item-divider">{{ group.label }}</div>
5-
<ion-radio ng-repeat-end ng-class="{'item-disabled': subwiki.id <= 0}" ng-repeat="subwiki in group.subwikis"
6-
ng-model="subwikiData.selected" ng-value="subwiki.id" ng-disabled="subwiki.id <= 0"
7-
ng-click="subwikiPicked(subwiki.id)">
5+
<ion-item ng-repeat-end class="item-icon-right" ng-class="{'item-disabled': subwiki.id <= 0, 'item-selected': subwiki.id == subwikiData.selected}" ng-repeat="subwiki in group.subwikis"
6+
ng-disabled="subwiki.id <= 0" ng-click="gotoSubwiki(subwiki.id)">
87
{{ subwiki.name }}
9-
</ion-radio>
8+
<i class="icon ion-checkmark" ng-if="subwiki.id == subwikiData.selected"></i>
9+
</ion-item>
1010
</div>
1111
</ion-content>
1212
</ion-popover-view>

0 commit comments

Comments
 (0)