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 } });
     }
 
     /**