diff --git a/src/addons/calendar/calendar-lazy.module.ts b/src/addons/calendar/calendar-lazy.module.ts index 941f0449d..1a925fbef 100644 --- a/src/addons/calendar/calendar-lazy.module.ts +++ b/src/addons/calendar/calendar-lazy.module.ts @@ -18,7 +18,7 @@ import { Route, RouterModule, ROUTES, Routes } from '@angular/router'; import { buildTabMainRoutes } from '@features/mainmenu/mainmenu-tab-routing.module'; export const AddonCalendarEditRoute: Route = { - path: 'edit', + path: 'edit/:eventId', loadChildren: () => import('@/addons/calendar/pages/edit-event/edit-event.module').then(m => m.AddonCalendarEditEventPageModule), }; diff --git a/src/addons/calendar/pages/day/day.page.ts b/src/addons/calendar/pages/day/day.page.ts index 32cbbca8a..2d26cf281 100644 --- a/src/addons/calendar/pages/day/day.page.ts +++ b/src/addons/calendar/pages/day/day.page.ts @@ -553,10 +553,9 @@ export class AddonCalendarDayPage implements OnInit, OnDestroy { openEdit(eventId?: number): void { const params: Params = {}; - if (eventId) { - params.eventId = eventId; - } else { + if (!eventId) { // It's a new event, set the time. + eventId = 0; params.timestamp = moment().year(this.year).month(this.month - 1).date(this.day).unix() * 1000; } @@ -564,7 +563,7 @@ export class AddonCalendarDayPage implements OnInit, OnDestroy { params.courseId = this.filter.courseId; } - CoreNavigator.navigateToSitePath('/calendar/edit', { params }); + CoreNavigator.navigateToSitePath(`/calendar/edit/${eventId}`, { params }); } /** diff --git a/src/addons/calendar/pages/edit-event/edit-event.page.ts b/src/addons/calendar/pages/edit-event/edit-event.page.ts index 3b9fb9db5..616c65e37 100644 --- a/src/addons/calendar/pages/edit-event/edit-event.page.ts +++ b/src/addons/calendar/pages/edit-event/edit-event.page.ts @@ -132,7 +132,7 @@ export class AddonCalendarEditEventPage implements OnInit, OnDestroy, CanLeave { * Component being initialized. */ ngOnInit(): void { - this.eventId = CoreNavigator.getRouteNumberParam('eventId'); + this.eventId = CoreNavigator.getRouteNumberParam('eventId') || undefined; this.courseId = CoreNavigator.getRouteNumberParam('courseId') || 0; this.title = this.eventId ? 'addon.calendar.editevent' : 'addon.calendar.newevent'; diff --git a/src/addons/calendar/pages/event/event.page.ts b/src/addons/calendar/pages/event/event.page.ts index 789668de7..61b53c219 100644 --- a/src/addons/calendar/pages/event/event.page.ts +++ b/src/addons/calendar/pages/event/event.page.ts @@ -424,7 +424,7 @@ export class AddonCalendarEventPage implements OnInit, OnDestroy { * Open the page to edit the event. */ openEdit(): void { - CoreNavigator.navigateToSitePath('/calendar/edit', { params: { eventId: this.eventId } }); + CoreNavigator.navigateToSitePath(`/calendar/edit/${this.eventId}`); } /** diff --git a/src/addons/calendar/pages/index/index.page.ts b/src/addons/calendar/pages/index/index.page.ts index a3329f19a..7e4f1eeb2 100644 --- a/src/addons/calendar/pages/index/index.page.ts +++ b/src/addons/calendar/pages/index/index.page.ts @@ -351,15 +351,13 @@ export class AddonCalendarIndexPage implements OnInit, OnDestroy { */ openEdit(eventId?: number): void { const params: Params = {}; + eventId = eventId || 0; - if (eventId) { - params.eventId = eventId; - } if (this.filter.courseId) { params.courseId = this.filter.courseId; } - CoreNavigator.navigateToSitePath('/calendar/edit', { params }); + CoreNavigator.navigateToSitePath(`/calendar/edit/${eventId}`, { params }); } /** diff --git a/src/addons/calendar/pages/list/list.html b/src/addons/calendar/pages/list/list.html index b90389929..e26cfe323 100644 --- a/src/addons/calendar/pages/list/list.html +++ b/src/addons/calendar/pages/list/list.html @@ -20,78 +20,76 @@ - - - - - - - - - - {{ 'core.hasdatatosync' | translate:{$a: 'addon.calendar.calendar' | translate} }} + + + + + + + + + {{ 'core.hasdatatosync' | translate:{$a: 'addon.calendar.calendar' | translate} }} + + + + + + + + + +

{{ event.timestart * 1000 | coreFormatDate: "strftimedayshort" }}

+
+ + + + +

+ + + {{ 'addon.calendar.type' + event.formattedType | translate }} + {{ event.iconTitle }} + + + +

+

+ {{ event.timestart * 1000 | coreFormatDate: "strftimetime" }} + + - {{ (event.timestart + event.timeduration) * 1000 | coreFormatDate: "strftimetime" }} + + + - {{ (event.timestart + event.timeduration) * 1000 | coreFormatDate: "strftimedatetimeshort" }} + +

+
+ + + {{ 'core.notsent' | translate }} + + + + {{ 'core.deletedoffline' | translate }} +
-
+ + - - + + +
- - - -

{{ event.timestart * 1000 | coreFormatDate: "strftimedayshort" }}

-
- - - - -

- - - {{ 'addon.calendar.type' + event.formattedType | translate }} - {{ event.iconTitle }} - - - -

-

- {{ event.timestart * 1000 | coreFormatDate: "strftimetime" }} - - - {{ (event.timestart + event.timeduration) * 1000 | coreFormatDate: "strftimetime" }} - - - - {{ (event.timestart + event.timeduration) * 1000 | coreFormatDate: "strftimedatetimeshort" }} - -

-
- - - {{ 'core.notsent' | translate }} - - - - {{ 'core.deletedoffline' | translate }} - -
-
-
- - - - - - - - - - - -
+ + + + + +
diff --git a/src/addons/calendar/pages/list/list.page.ts b/src/addons/calendar/pages/list/list.page.ts index cb1b76c32..33d00b3c8 100644 --- a/src/addons/calendar/pages/list/list.page.ts +++ b/src/addons/calendar/pages/list/list.page.ts @@ -29,7 +29,6 @@ import { CoreSites } from '@services/sites'; import { CoreLocalNotifications } from '@services/local-notifications'; import { CoreEventObserver, CoreEvents } from '@singletons/events'; import { CoreApp } from '@services/app'; -import { CoreSplitViewComponent } from '@components/split-view/split-view'; import moment from 'moment'; import { CoreConstants } from '@/core/constants'; import { AddonCalendarFilterPopoverComponent } from '../../components/filter/filter'; @@ -51,7 +50,6 @@ import { CoreNavigator } from '@services/navigator'; export class AddonCalendarListPage implements OnInit, OnDestroy { @ViewChild(IonContent) content?: IonContent; - @ViewChild(CoreSplitViewComponent) splitviewCtrl?: CoreSplitViewComponent; protected initialTime = 0; protected daysLoaded = 0; @@ -117,26 +115,12 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { this.newEventObserver = CoreEvents.on(AddonCalendarProvider.NEW_EVENT_EVENT, (data) => { if (data && data.eventId) { this.eventsLoaded = false; - this.refreshEvents(true, false).finally(() => { - - // In tablet mode try to open the event (only if it's an online event). - if (this.splitviewCtrl?.outletActivated && data.eventId > 0) { - this.gotoEvent(data.eventId); - } else if (this.splitviewCtrl?.outletActivated) { - // Discussion added, clear details page. - this.emptySplitView(); - } - }); + this.refreshEvents(true, false); } }, this.currentSiteId); // Listen for new event discarded event. When it does, reload the data. this.discardedObserver = CoreEvents.on(AddonCalendarProvider.NEW_EVENT_DISCARDED_EVENT, () => { - if (this.splitviewCtrl?.outletActivated) { - // Discussion added, clear details page. - this.emptySplitView(); - } - this.eventsLoaded = false; this.refreshEvents(true, false); }, this.currentSiteId); @@ -150,15 +134,9 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { }, this.currentSiteId); // Refresh data if calendar events are synchronized automatically. - this.syncObserver = CoreEvents.on(AddonCalendarSyncProvider.AUTO_SYNCED, (data) => { + this.syncObserver = CoreEvents.on(AddonCalendarSyncProvider.AUTO_SYNCED, () => { this.eventsLoaded = false; this.refreshEvents(); - - if (this.splitviewCtrl?.outletActivated && - this.eventId && data && data.deleted && data.deleted.indexOf(this.eventId) != -1) { - // Current selected event was deleted. Clear details. - this.emptySplitView(); - } }, this.currentSiteId); // Refresh data if calendar events are synchronized manually but not by this page. @@ -167,12 +145,6 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { this.eventsLoaded = false; this.refreshEvents(); } - - if (this.splitviewCtrl?.outletActivated && - this.eventId && data && data.deleted && data.deleted.indexOf(this.eventId) != -1) { - // Current selected event was deleted. Clear details. - this.emptySplitView(); - } }, this.currentSiteId); // Update the list when an event is deleted. @@ -185,11 +157,7 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { this.deletedEvents.push(data.eventId); this.hasOffline = true; } else { - // Event deleted, clear the details if needed and refresh the view. - if (this.splitviewCtrl?.outletActivated) { - this.emptySplitView(); - } - + // Event deleted, refresh the view. this.eventsLoaded = false; this.refreshEvents(); } @@ -248,27 +216,6 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { this.syncIcon = CoreConstants.ICON_LOADING; await this.fetchData(false, true, false); - - if (!this.eventId && this.splitviewCtrl?.outletActivated && this.events.length > 0) { - // Take first online event and load it. If no online event, load the first offline. - if (this.onlineEvents[0]) { - this.gotoEvent(this.onlineEvents[0].id); - } else { - this.gotoEvent(this.offlineEvents[0].id); - } - } - } - - /** - * Convenience function to clear detail view of the split view. - */ - protected emptySplitView(): void { - // Empty details. - const splitViewLoaded = CoreNavigator.isCurrentPathInTablet('**/calendar/list/event') || - CoreNavigator.isCurrentPathInTablet('**/calendar/list/edit'); - if (splitViewLoaded) { - CoreNavigator.navigate('../'); - } } /** @@ -633,20 +580,15 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { */ openEdit(eventId?: number): void { this.eventId = undefined; + eventId = eventId || 0; const params: Params = {}; - if (eventId) { - params.eventId = eventId; - } if (this.filter.courseId) { params.courseId = this.filter.courseId; } - const splitViewLoaded = CoreNavigator.isCurrentPathInTablet('**/calendar/list/event') || - CoreNavigator.isCurrentPathInTablet('**/calendar/list/edit'); - const path = (splitViewLoaded ? '../' : '') + 'edit'; - CoreNavigator.navigate(path, { params }); + CoreNavigator.navigateToSitePath(`calendar/edit/${eventId}`, { params }); } /** @@ -664,16 +606,11 @@ export class AddonCalendarListPage implements OnInit, OnDestroy { gotoEvent(eventId: number): void { this.eventId = eventId; - if (eventId < 0) { + if (eventId <= 0) { // It's an offline event, go to the edit page. this.openEdit(eventId); } else { - const splitViewLoaded = CoreNavigator.isCurrentPathInTablet('**/calendar/list/event') || - CoreNavigator.isCurrentPathInTablet('**/calendar/list/edit'); - const path = (splitViewLoaded ? '../' : '') + 'event'; - CoreNavigator.navigate(path, { params: { - id: eventId, - } }); + CoreNavigator.navigateToSitePath(`/calendar/event/${eventId}`); } } diff --git a/src/addons/mod/glossary/components/index/index.ts b/src/addons/mod/glossary/components/index/index.ts index 3059ca6b8..03be8f63b 100644 --- a/src/addons/mod/glossary/components/index/index.ts +++ b/src/addons/mod/glossary/components/index/index.ts @@ -512,7 +512,7 @@ type NewEntryForm = { newEntry: true }; /** * Type of items that can be held by the entries manager. */ - type EntryItem = AddonModGlossaryEntry | AddonModGlossaryOfflineEntry | NewEntryForm; +type EntryItem = AddonModGlossaryEntry | AddonModGlossaryOfflineEntry | NewEntryForm; /** * Entries manager.