Skip to content

Commit

Permalink
Merge pull request #4295 from crazyserver/MOBILE-4653
Browse files Browse the repository at this point in the history
MOBILE-4653 messages: Decouple 3.5 message pages
  • Loading branch information
dpalou authored Jan 24, 2025
2 parents 91843ba + 2b12ecd commit ffb8642
Show file tree
Hide file tree
Showing 16 changed files with 63 additions and 111 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,18 @@ import {
import { ActivatedRoute } from '@angular/router';
import { ModalController } from '@singletons';
import { CoreAlerts } from '@services/overlays/alerts';
import { CoreSharedModule } from '@/core/shared.module';

/**
* Component that displays the list of conversations, including group conversations.
*/
@Component({
selector: 'page-addon-messages-conversation-info',
templateUrl: 'conversation-info.html',
standalone: true,
imports: [
CoreSharedModule,
],
})
export class AddonMessagesConversationInfoComponent implements OnInit {

Expand All @@ -45,7 +50,7 @@ export class AddonMessagesConversationInfoComponent implements OnInit {
}

/**
* Component loaded.
* @inheritdoc
*/
ngOnInit(): void {
this.fetchData().finally(() => {
Expand Down
3 changes: 3 additions & 0 deletions src/addons/messages/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ export const ADDON_MESSAGES_CONTACT_REQUESTS_COUNT_EVENT = 'addon_messages_conta
export const ADDON_MESSAGES_POLL_INTERVAL = 10000;
export const ADDON_MESSAGES_PUSH_SIMULATION_COMPONENT = 'AddonMessagesPushSimulation';

export const ADDON_MESSAGES_PAGE_NAME = 'messages';
export const ADDON_MESSAGES_SETTINGS_PAGE_NAME = 'messages';

export const enum AddonMessagesMessagePrivacy {
COURSEMEMBER = 0, // Privacy setting for being messaged by anyone within courses user is member.
ONLYCONTACTS = 1, // Privacy setting for being messaged only by contacts.
Expand Down
4 changes: 2 additions & 2 deletions src/addons/messages/guards/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

import { ActivatedRouteSnapshot, CanActivateFn } from '@angular/router';
import { Router } from '@singletons';
import { AddonMessagesMainMenuHandlerService } from '../services/handlers/mainmenu';
import { AddonMessages } from '../services/messages';
import { ADDON_MESSAGES_PAGE_NAME } from '../constants';

/**
* Guard to redirect to the right page based on the current Moodle site version.
Expand All @@ -24,7 +24,7 @@ import { AddonMessages } from '../services/messages';
*/
export const messagesIndexGuard: CanActivateFn = async (route: ActivatedRouteSnapshot) => {
const enabled = AddonMessages.isGroupMessagingEnabled();
const path = `/main/${AddonMessagesMainMenuHandlerService.PAGE_NAME}/` + ( enabled ? 'group-conversations' : 'index');
const path = `/main/${ADDON_MESSAGES_PAGE_NAME}/` + ( enabled ? 'group-conversations' : 'index');

const newRoute = Router.parseUrl(path);

Expand Down
26 changes: 11 additions & 15 deletions src/addons/messages/messages-lazy.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,10 @@

import { conditionalRoutes } from '@/app/app-routing.module';
import { CoreSharedModule } from '@/core/shared.module';
import { AddonMessagesContacts35Page } from '@addons/messages/pages/contacts-35/contacts';
import { AddonMessagesContactsPage } from '@addons/messages/pages/contacts/contacts';
import { AddonMessagesDiscussionPage } from '@addons/messages/pages/discussion/discussion';
import { AddonMessagesDiscussions35Page } from '@addons/messages/pages/discussions-35/discussions';
import { AddonMessagesGroupConversationsPage } from '@addons/messages/pages/group-conversations/group-conversations';
import { AddonMessagesSearchPage } from '@addons/messages/pages/search/search';
import { AddonMessagesMainMenuHandlerService } from '@addons/messages/services/handlers/mainmenu';
import { Injector, NgModule } from '@angular/core';
import { Route, ROUTES, Routes } from '@angular/router';
import { CoreMainMenuComponentsModule } from '@features/mainmenu/components/components.module';
Expand All @@ -29,6 +26,7 @@ import { buildTabMainRoutes } from '@features/mainmenu/mainmenu-tab-routing.modu
import { CoreSearchComponentsModule } from '@features/search/components/components.module';
import { CoreScreen } from '@services/screen';
import { messagesIndexGuard } from './guards';
import { ADDON_MESSAGES_PAGE_NAME } from './constants';

/**
* Build module routes.
Expand All @@ -55,16 +53,16 @@ function buildRoutes(injector: Injector): Routes {
},
{
path: 'index',
data: { mainMenuTabRoot: AddonMessagesMainMenuHandlerService.PAGE_NAME },
component: AddonMessagesDiscussions35Page,
data: { mainMenuTabRoot: ADDON_MESSAGES_PAGE_NAME },
loadComponent: () => import('./pages/discussions-35/discussions'),
},
{
path: 'contacts-35', // 3.5.
component: AddonMessagesContacts35Page,
loadComponent: () => import('./pages/contacts-35/contacts'),
},
{
path: 'group-conversations', // 3.6 or greater.
data: { mainMenuTabRoot: AddonMessagesMainMenuHandlerService.PAGE_NAME },
data: { mainMenuTabRoot: ADDON_MESSAGES_PAGE_NAME },
component: AddonMessagesGroupConversationsPage,
},
{
Expand All @@ -88,19 +86,19 @@ function buildRoutes(injector: Injector): Routes {
children: discussionRoutes,
},
{
path: 'index',
data: { mainMenuTabRoot: AddonMessagesMainMenuHandlerService.PAGE_NAME },
component: AddonMessagesDiscussions35Page,
path: 'index', // 3.5.
data: { mainMenuTabRoot: ADDON_MESSAGES_PAGE_NAME },
loadComponent: () => import('./pages/discussions-35/discussions'),
children: discussionRoutes,
},
{
path: 'contacts-35', // 3.5.
component: AddonMessagesContacts35Page,
loadComponent: () => import('./pages/contacts-35/contacts'),
children: discussionRoutes,
},
{
path: 'group-conversations', // 3.6 or greater.
data: { mainMenuTabRoot: AddonMessagesMainMenuHandlerService.PAGE_NAME },
data: { mainMenuTabRoot: ADDON_MESSAGES_PAGE_NAME },
component: AddonMessagesGroupConversationsPage,
children: discussionRoutes,
},
Expand All @@ -117,7 +115,7 @@ function buildRoutes(injector: Injector): Routes {
...discussionRoutes,
{
path: 'message-settings',
loadChildren: () => import('./messages-settings-lazy.module'),
loadComponent: () => import('./pages/settings/settings'),
},
...buildTabMainRoutes(injector, {
canActivate: [messagesIndexGuard],
Expand All @@ -132,10 +130,8 @@ function buildRoutes(injector: Injector): Routes {
CoreMainMenuComponentsModule,
],
declarations: [
AddonMessagesContacts35Page,
AddonMessagesContactsPage,
AddonMessagesDiscussionPage,
AddonMessagesDiscussions35Page,
AddonMessagesGroupConversationsPage,
AddonMessagesSearchPage,
],
Expand Down
37 changes: 0 additions & 37 deletions src/addons/messages/messages-settings-lazy.module.ts

This file was deleted.

11 changes: 6 additions & 5 deletions src/addons/messages/messages.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ import { CoreMainMenuRoutingModule } from '@features/mainmenu/mainmenu-routing.m
import { MESSAGES_OFFLINE_SITE_SCHEMA } from './services/database/messages';
import { CORE_SITE_SCHEMAS } from '@services/sites';
import { CoreMainMenuDelegate } from '@features/mainmenu/services/mainmenu-delegate';
import { AddonMessagesMainMenuHandler, AddonMessagesMainMenuHandlerService } from './services/handlers/mainmenu';
import { AddonMessagesMainMenuHandler } from './services/handlers/mainmenu';
import { CoreCronDelegate } from '@services/cron';
import { CoreSettingsDelegate } from '@features/settings/services/settings-delegate';
import { AddonMessagesSettingsHandler, AddonMessagesSettingsHandlerService } from './services/handlers/settings';
import { AddonMessagesSettingsHandler } from './services/handlers/settings';
import { CoreMainMenuTabRoutingModule } from '@features/mainmenu/mainmenu-tab-routing.module';
import { CoreContentLinksDelegate } from '@features/contentlinks/services/contentlinks-delegate';
import { AddonMessagesIndexLinkHandler } from './services/handlers/index-link';
Expand All @@ -37,6 +37,7 @@ import { CoreNetwork } from '@services/network';
import { AddonMessagesSync } from './services/messages-sync';
import { AddonMessagesSyncCronHandler } from './services/handlers/sync-cron';
import { CoreSitePreferencesRoutingModule } from '@features/settings/settings-site-routing.module';
import { ADDON_MESSAGES_PAGE_NAME, ADDON_MESSAGES_SETTINGS_PAGE_NAME } from './constants';

/**
* Get messages services.
Expand All @@ -57,14 +58,14 @@ export async function getMessagesServices(): Promise<Type<unknown>[]> {

const mainMenuChildrenRoutes: Routes = [
{
path: AddonMessagesMainMenuHandlerService.PAGE_NAME,
path: ADDON_MESSAGES_PAGE_NAME,
loadChildren: () => import('./messages-lazy.module'),
},
];
const preferencesRoutes: Routes = [
{
path: AddonMessagesSettingsHandlerService.PAGE_NAME,
loadChildren: () => import('./messages-settings-lazy.module'),
path: ADDON_MESSAGES_SETTINGS_PAGE_NAME,
loadComponent: () => import('./pages/settings/settings'),
},
];

Expand Down
9 changes: 8 additions & 1 deletion src/addons/messages/pages/contacts-35/contacts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ import { CoreSplitViewComponent } from '@components/split-view/split-view';
import { CoreKeyboard } from '@singletons/keyboard';
import { ADDON_MESSAGES_MEMBER_INFO_CHANGED_EVENT } from '@addons/messages/constants';
import { CoreAlerts } from '@services/overlays/alerts';
import { CoreSharedModule } from '@/core/shared.module';
import { CoreSearchComponentsModule } from '@features/search/components/components.module';

/**
* Page that displays the list of contacts.
Expand All @@ -37,8 +39,13 @@ import { CoreAlerts } from '@services/overlays/alerts';
selector: 'addon-messages-contacts',
templateUrl: 'contacts.html',
styleUrl: '../../messages-common.scss',
standalone: true,
imports: [
CoreSharedModule,
CoreSearchComponentsModule,
],
})
export class AddonMessagesContacts35Page implements OnInit, OnDestroy {
export default class AddonMessagesContacts35Page implements OnInit, OnDestroy {

@ViewChild(CoreSplitViewComponent) splitView!: CoreSplitViewComponent;

Expand Down
2 changes: 1 addition & 1 deletion src/addons/messages/pages/discussion/discussion.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1251,7 +1251,7 @@ export class AddonMessagesDiscussionPage implements OnInit, OnDestroy, AfterView
async viewInfo(): Promise<void> {
if (this.isGroup) {
const { AddonMessagesConversationInfoComponent } =
await import('@addons/messages/components/conversation-info/conversation-info.module');
await import('@addons/messages/components/conversation-info/conversation-info');

// Display the group information.
const userId = await CoreModals.openSideModal<number>({
Expand Down
11 changes: 10 additions & 1 deletion src/addons/messages/pages/discussions-35/discussions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ import { CoreKeyboard } from '@singletons/keyboard';
import { ADDON_MESSAGES_NEW_MESSAGE_EVENT, ADDON_MESSAGES_READ_CHANGED_EVENT } from '@addons/messages/constants';
import { CorePromiseUtils } from '@singletons/promise-utils';
import { CoreAlerts } from '@services/overlays/alerts';
import { CoreSharedModule } from '@/core/shared.module';
import { CoreSearchComponentsModule } from '@features/search/components/components.module';
import { CoreMainMenuComponentsModule } from '@features/mainmenu/components/components.module';

/**
* Page that displays the list of discussions.
Expand All @@ -42,8 +45,14 @@ import { CoreAlerts } from '@services/overlays/alerts';
selector: 'addon-messages-discussions',
templateUrl: 'discussions.html',
styleUrl: '../../messages-common.scss',
standalone: true,
imports: [
CoreSharedModule,
CoreSearchComponentsModule,
CoreMainMenuComponentsModule,
],
})
export class AddonMessagesDiscussions35Page implements OnInit, OnDestroy {
export default class AddonMessagesDiscussions35Page implements OnInit, OnDestroy {

@ViewChild(CoreSplitViewComponent) splitView!: CoreSplitViewComponent;

Expand Down
7 changes: 6 additions & 1 deletion src/addons/messages/pages/settings/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,15 +30,20 @@ import { CoreErrorHelper } from '@services/error-helper';
import { CoreLoadings } from '@services/overlays/loadings';
import { ADDON_MESSAGES_NOTIFICATION_PREFERENCES_KEY, AddonMessagesMessagePrivacy } from '@addons/messages/constants';
import { CoreAlerts } from '@services/overlays/alerts';
import { CoreSharedModule } from '@/core/shared.module';

/**
* Page that displays the messages settings page.
*/
@Component({
selector: 'page-addon-messages-settings',
templateUrl: 'settings.html',
standalone: true,
imports: [
CoreSharedModule,
],
})
export class AddonMessagesSettingsPage implements OnInit, OnDestroy {
export default class AddonMessagesSettingsPage implements OnInit, OnDestroy {

protected updateTimeout?: number;

Expand Down
4 changes: 2 additions & 2 deletions src/addons/messages/services/handlers/index-link.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { CoreContentLinksAction } from '@features/contentlinks/services/contentl
import { CoreNavigator } from '@services/navigator';
import { makeSingleton } from '@singletons';
import { AddonMessages } from '../messages';
import { AddonMessagesMainMenuHandlerService } from './mainmenu';
import { ADDON_MESSAGES_PAGE_NAME } from '@addons/messages/constants';

/**
* Content links handler for messaging index.
Expand All @@ -38,7 +38,7 @@ export class AddonMessagesIndexLinkHandlerService extends CoreContentLinksHandle
getActions(): CoreContentLinksAction[] | Promise<CoreContentLinksAction[]> {
return [{
action: async (siteId): Promise<void> => {
await CoreNavigator.navigateToSitePath(AddonMessagesMainMenuHandlerService.PAGE_NAME, {
await CoreNavigator.navigateToSitePath(ADDON_MESSAGES_PAGE_NAME, {
siteId,
preferCurrentTab: false,
});
Expand Down
5 changes: 2 additions & 3 deletions src/addons/messages/services/handlers/mainmenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import { makeSingleton } from '@singletons';
import {
ADDON_MESSAGES_UNREAD_CONVERSATION_COUNTS_EVENT,
ADDON_MESSAGES_CONTACT_REQUESTS_COUNT_EVENT,
ADDON_MESSAGES_PAGE_NAME,
} from '@addons/messages/constants';
import { MAIN_MENU_HANDLER_BADGE_UPDATED_EVENT } from '@features/mainmenu/constants';

Expand All @@ -38,15 +39,13 @@ import { MAIN_MENU_HANDLER_BADGE_UPDATED_EVENT } from '@features/mainmenu/consta
@Injectable({ providedIn: 'root' })
export class AddonMessagesMainMenuHandlerService implements CoreMainMenuHandler, CoreCronHandler {

static readonly PAGE_NAME = 'messages';

name = 'AddonMessages';
priority = 700;

protected handler: CoreMainMenuHandlerToDisplay = {
icon: 'fas-comments',
title: 'addon.messages.messages',
page: AddonMessagesMainMenuHandlerService.PAGE_NAME,
page: ADDON_MESSAGES_PAGE_NAME,
class: 'addon-messages-handler',
showBadge: true,
badge: '',
Expand Down
Loading

0 comments on commit ffb8642

Please sign in to comment.