Skip to content

Commit ef05fd8

Browse files
authored
Merge pull request #865 from crazyserver/MOBILE-1786-2
MOBILE-1786 messages: Update side menu on PTR discussions
2 parents c08ec1c + 9048c91 commit ef05fd8

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

www/addons/messages/controllers/discussions.js

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ angular.module('mm.addons.messages')
2222
* @name mmaMessagesDiscussionsCtrl
2323
*/
2424
.controller('mmaMessagesDiscussionsCtrl', function($scope, $mmUtil, $mmaMessages, $rootScope, $mmEvents, $mmSite, $ionicPlatform,
25-
mmCoreSplitViewLoad, mmaMessagesNewMessageEvent, $mmAddonManager, mmaMessagesReadChangedEvent) {
26-
var newMessagesObserver, readChangedObserver,
25+
mmCoreSplitViewLoad, mmaMessagesNewMessageEvent, $mmAddonManager, mmaMessagesReadChangedEvent,
26+
mmaMessagesReadCronEvent) {
27+
var newMessagesObserver, readChangedObserver, cronObserver,
2728
siteId = $mmSite.getId(),
2829
discussions,
2930
$mmPushNotificationsDelegate = $mmAddonManager.get('$mmPushNotificationsDelegate'),
@@ -43,11 +44,7 @@ angular.module('mm.addons.messages')
4344
});
4445
$scope.discussions = discussionsSorted;
4546
}, function(error) {
46-
if (typeof error === 'string') {
47-
$mmUtil.showErrorModal(error);
48-
} else {
49-
$mmUtil.showErrorModal('mma.messages.errorwhileretrievingdiscussions', true);
50-
}
47+
$mmUtil.showErrorModalDefault(error, 'mma.messages.errorwhileretrievingdiscussions', true);
5148
}).finally(function() {
5249
$scope.loaded = true;
5350
});
@@ -61,6 +58,8 @@ angular.module('mm.addons.messages')
6158

6259
$scope.refresh = function() {
6360
refreshData().finally(function() {
61+
// Triggering without userid will avoid loops. This trigger will only update the side menu.
62+
$mmEvents.trigger(mmaMessagesReadChangedEvent, {siteid: siteId});
6463
$scope.$broadcast('scroll.refreshComplete');
6564
});
6665
};
@@ -105,6 +104,12 @@ angular.module('mm.addons.messages')
105104
}
106105
});
107106

107+
cronObserver = $mmEvents.on(mmaMessagesReadCronEvent, function(data) {
108+
if (data && (data.siteid == siteId || !data.siteid)) {
109+
refreshData();
110+
}
111+
});
112+
108113
// If a message push notification is received, refresh the view.
109114
if ($mmPushNotificationsDelegate) {
110115
$mmPushNotificationsDelegate.registerReceiveHandler('mmaMessages:discussions', function(notification) {
@@ -127,6 +132,7 @@ angular.module('mm.addons.messages')
127132
$scope.$on('$destroy', function() {
128133
newMessagesObserver && newMessagesObserver.off && newMessagesObserver.off();
129134
readChangedObserver && readChangedObserver.off && readChangedObserver.off();
135+
cronObserver && cronObserver.off && cronObserver.off();
130136

131137
if ($mmPushNotificationsDelegate) {
132138
$mmPushNotificationsDelegate.unregisterReceiveHandler('mmaMessages:discussions');

0 commit comments

Comments
 (0)