Merge pull request #4075 from alfonso-salces/MOBILE-4470

Mobile 4470 blog: Fix activity associations and clear rich text in new entries
main
Dani Palou 2024-05-31 12:18:38 +02:00 committed by GitHub
commit f6667abd38
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 11 deletions

View File

@ -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" />

View File

@ -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] }),
@ -130,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;
}
@ -151,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);
@ -316,6 +330,8 @@ export class AddonBlogEditEntryPage implements CanLeave, OnInit {
await CoreDomUtils.showConfirm(Translate.instant('core.confirmcanceledit'));
}
CoreForms.triggerFormCancelledEvent(this.formElement, CoreSites.getCurrentSiteId());
return true;
}
@ -360,6 +376,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();
}

View File

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