From 53e346d7aea6fb41a13628396cb836c9e5c82997 Mon Sep 17 00:00:00 2001 From: Alfonso Salces <alfonso.salces@moodle.com> Date: Thu, 30 May 2024 16:03:43 +0200 Subject: [PATCH 1/2] MOBILE-4470 blog: trigger form submitted event --- src/addons/blog/pages/edit-entry/edit-entry.html | 2 +- src/addons/blog/pages/edit-entry/edit-entry.ts | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/addons/blog/pages/edit-entry/edit-entry.html b/src/addons/blog/pages/edit-entry/edit-entry.html index b9ecd73af..824644ea0 100644 --- a/src/addons/blog/pages/edit-entry/edit-entry.html +++ b/src/addons/blog/pages/edit-entry/edit-entry.html @@ -11,7 +11,7 @@ </ion-header> <ion-content> <core-loading [hideUntil]="loaded"> - <form [formGroup]="form"> + <form [formGroup]="form" #editEntryForm> <ion-item> <ion-input labelPlacement="stacked" formControlName="subject" type="text" [placeholder]="'addon.blog.entrytitle' | translate" name="title" [label]="'addon.blog.entrytitle' | translate" /> diff --git a/src/addons/blog/pages/edit-entry/edit-entry.ts b/src/addons/blog/pages/edit-entry/edit-entry.ts index f22dca78a..1e0c9877d 100644 --- a/src/addons/blog/pages/edit-entry/edit-entry.ts +++ b/src/addons/blog/pages/edit-entry/edit-entry.ts @@ -22,7 +22,7 @@ import { AddonBlogProvider, AddonBlogPublishState, } from '@addons/blog/services/blog'; -import { Component, OnInit } from '@angular/core'; +import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { FormControl, FormGroup, Validators } from '@angular/forms'; import { CoreError } from '@classes/errors/error'; import { CoreCommentsComponentsModule } from '@features/comments/components/components.module'; @@ -40,6 +40,7 @@ import { CoreUtils } from '@services/utils/utils'; import { CoreWSFile } from '@services/ws'; import { Translate } from '@singletons'; import { CoreEvents } from '@singletons/events'; +import { CoreForms } from '@singletons/form'; @Component({ selector: 'addon-blog-edit-entry', @@ -54,6 +55,8 @@ import { CoreEvents } from '@singletons/events'; }) export class AddonBlogEditEntryPage implements CanLeave, OnInit { + @ViewChild('editEntryForm') formElement!: ElementRef; + publishState = AddonBlogPublishState; form = new FormGroup({ subject: new FormControl<string>('', { nonNullable: true, validators: [Validators.required] }), @@ -316,6 +319,8 @@ export class AddonBlogEditEntryPage implements CanLeave, OnInit { await CoreDomUtils.showConfirm(Translate.instant('core.confirmcanceledit')); } + CoreForms.triggerFormCancelledEvent(this.formElement, CoreSites.getCurrentSiteId()); + return true; } @@ -360,6 +365,7 @@ export class AddonBlogEditEntryPage implements CanLeave, OnInit { CoreEvents.trigger(ADDON_BLOG_ENTRY_UPDATED); this.forceLeave = true; + CoreForms.triggerFormSubmittedEvent(this.formElement, true, CoreSites.getCurrentSiteId()); return CoreNavigator.back(); } From f535c5bbd754a40d50221a470068d3f541451b6a Mon Sep 17 00:00:00 2001 From: Alfonso Salces <alfonso.salces@moodle.com> Date: Thu, 30 May 2024 16:05:09 +0200 Subject: [PATCH 2/2] MOBILE-4470 blog: add module association from cmId --- .../blog/pages/edit-entry/edit-entry.ts | 27 +++++++++++++------ src/addons/blog/pages/index/index.ts | 2 +- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/addons/blog/pages/edit-entry/edit-entry.ts b/src/addons/blog/pages/edit-entry/edit-entry.ts index 1e0c9877d..9a2d76dcf 100644 --- a/src/addons/blog/pages/edit-entry/edit-entry.ts +++ b/src/addons/blog/pages/edit-entry/edit-entry.ts @@ -133,19 +133,30 @@ export class AddonBlogEditEntryPage implements CanLeave, OnInit { const lastModified = CoreNavigator.getRouteNumberParam('lastModified'); const filters: AddonBlogFilter | undefined = CoreNavigator.getRouteParam('filters'); const courseId = CoreNavigator.getRouteNumberParam('courseId'); + const cmId = CoreNavigator.getRouteNumberParam('cmId'); this.userId = CoreNavigator.getRouteNumberParam('userId'); this.siteHomeId = CoreSites.getCurrentSiteHomeId(); - if (courseId) { - this.courseId = courseId; - this.form.controls.associateWithCourse.setValue(true); - const { course } = await CoreCourseHelper.getCourse(this.courseId); - this.associatedCourse = course; - } - if (!entryId) { this.loaded = true; + try { + if (cmId) { + this.modId = cmId; + this.form.controls.associateWithModule.setValue(true); + this.associatedModule = await CoreCourse.getModule(this.modId); + } + + if (courseId) { + this.courseId = courseId; + this.form.controls.associateWithCourse.setValue(true); + const { course } = await CoreCourseHelper.getCourse(this.courseId); + this.associatedCourse = course; + } + } catch (error) { + CoreDomUtils.showErrorModalDefault(error, 'Error getting associations, they may not be displayed correctly.'); + } + return; } @@ -154,7 +165,7 @@ export class AddonBlogEditEntryPage implements CanLeave, OnInit { this.files = this.entry.attachmentfiles ?? []; this.initialFiles = [...this.files]; this.courseId = this.courseId || this.entry.courseid; - this.modId = this.entry.coursemoduleid ? this.entry.coursemoduleid : CoreNavigator.getRouteNumberParam('cmId'); + this.modId = CoreNavigator.getRouteNumberParam('cmId') || this.entry.coursemoduleid; if (this.courseId) { this.form.controls.associateWithCourse.setValue(true); diff --git a/src/addons/blog/pages/index/index.ts b/src/addons/blog/pages/index/index.ts index 8f2cb9329..63e08dd3f 100644 --- a/src/addons/blog/pages/index/index.ts +++ b/src/addons/blog/pages/index/index.ts @@ -298,7 +298,7 @@ export class AddonBlogIndexPage implements OnInit, OnDestroy { * Redirect to entry creation form. */ createNewEntry(): void { - CoreNavigator.navigateToSitePath('blog/edit/0'); + CoreNavigator.navigateToSitePath('blog/edit/0', { params: { cmId: this.filter.cmid } }); } /**