2024-05-08 15:50:17 +02:00

84 lines
4.5 KiB
HTML

<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-back-button [text]="'core.back' | translate" />
</ion-buttons>
<ion-title>
<h1>{{ entry ? entry.subject : 'addon.blog.addnewentry' | translate }}</h1>
</ion-title>
<ion-buttons slot="end" />
</ion-toolbar>
</ion-header>
<ion-content>
<core-loading [hideUntil]="loaded">
<form [formGroup]="form">
<ion-item>
<ion-input labelPlacement="stacked" formControlName="subject" type="text"
[placeholder]="'addon.blog.entrytitle' | translate" name="title" [label]="'addon.blog.entrytitle' | translate" />
</ion-item>
<ion-item>
<ion-label position="stacked" for="addon_blog_entry_body">{{ 'addon.blog.entrybody' | translate }}</ion-label>
<core-rich-text-editor name="addon_blog_entry_body" [attr.aria-label]="'addon.blog.entrybody' | translate"
[control]="form.controls.summary" [placeholder]="'addon.blog.entrybody' | translate" [componentId]="component"
[autoSave]="true" [contextInstanceId]="contextInstanceId" [contextLevel]="contextLevel"
[elementId]="entry?.id ?? 'new_entry'" />
</ion-item>
<ion-item lines="none">
<core-combobox name="addon_blog_publish_to" formControlName="publishState" [label]="'addon.blog.publishto' | translate">
<ion-select-option class="core-select-option-title" [value]="publishState.draft">
{{ 'addon.blog.publishtonoone' | translate }}
</ion-select-option>
<ion-select-option class="core-select-option-title" [value]="publishState.site">
{{ 'addon.blog.publishtosite' | translate }}
</ion-select-option>
</core-combobox>
</ion-item>
<core-attachments [files]="files" [maxSubmissions]="maxFiles" [maxSize]="0" [component]="component" [allowOffline]="true"
[componentId]="entry?.id ?? 0" />
@if (entry && courseId && associatedCourse) {
<ion-item class="divider section" (click)="toggleAssociations()" button [detail]="false"
[attr.aria-label]="(associationsExpanded ? 'core.collapse' : 'core.expand') | translate"
[attr.aria-expanded]="associationsExpanded" aria-controls="addon-blog-associations"
[class.expandable-status-icon-expanded]="associationsExpanded">
<ion-icon [name]="associationsExpanded ? 'fas-chevron-down' : 'fas-chevron-right'" flip-rtl slot="start"
class="expandable-status-icon" />
<ion-label>
<h2>{{ 'addon.blog.associations' | translate }}</h2>
</ion-label>
</ion-item>
<div id="addon-blog-associations">
@if (associationsExpanded) {
<ion-item lines="none">
@if (associatedModule) {
<ion-toggle formControlName="associateWithModule">
<core-format-text [text]="'addon.blog.associatewithmodule' | translate: {
$a: { modtype: associatedModule.modname, modname: associatedModule.name }
}" [component]="component" [componentId]="entry.id" [contextLevel]="contextLevel"
[contextInstanceId]="contextInstanceId" [courseId]="entry.courseid" />
</ion-toggle>
} @else if (associatedCourse) {
<ion-toggle formControlName="associateWithCourse">
<core-format-text
[text]="'addon.blog.associatewithcourse' | translate: { $a: { coursename: associatedCourse.fullname } }"
[component]="component" [componentId]="entry.id" [contextLevel]="contextLevel"
[contextInstanceId]="contextInstanceId" [courseId]="entry.courseid" />
</ion-toggle>
}
</ion-item>
}
</div>
}
<ion-button class="ion-margin" expand="block" [attr.aria-label]="'core.save' | translate"
[disabled]="form.invalid || (entry && !hasDataChangedForEdit)" (click)="save()">
{{ 'core.save' | translate }}
</ion-button>
</form>
</core-loading>
</ion-content>