import { Component, Input } from '@angular/core'; import { DynamicFormControlModel, DynamicFormService, DynamicInputModel, DynamicTextAreaModel } from '@ng-dynamic-forms/core'; import { Community } from '../../core/shared/community.model'; import { ComColFormComponent } from '../../shared/comcol-forms/comcol-form/comcol-form.component'; import { Location } from '@angular/common'; import { TranslateService } from '@ngx-translate/core'; import { NotificationsService } from '../../shared/notifications/notifications.service'; import { CommunityDataService } from '../../core/data/community-data.service'; import { AuthService } from '../../core/auth/auth.service'; import { RequestService } from '../../core/data/request.service'; import { ObjectCacheService } from '../../core/cache/object-cache.service'; /** * Form used for creating and editing communities */ @Component({ selector: 'ds-community-form', styleUrls: ['../../shared/comcol-forms/comcol-form/comcol-form.component.scss'], templateUrl: '../../shared/comcol-forms/comcol-form/comcol-form.component.html' }) export class CommunityFormComponent extends ComColFormComponent { /** * @type {Community} A new community when a community is being created, an existing Input community when a community is being edited */ @Input() dso: Community = new Community(); /** * @type {Community.type} This is a community-type form */ type = Community.type; /** * The dynamic form fields used for creating/editing a community * @type {(DynamicInputModel | DynamicTextAreaModel)[]} */ formModel: DynamicFormControlModel[] = [ new DynamicInputModel({ id: 'title', name: 'dc.title', required: true, validators: { required: null }, errorMessages: { required: 'Please enter a name for this title' }, }), new DynamicTextAreaModel({ id: 'description', name: 'dc.description', }), new DynamicTextAreaModel({ id: 'abstract', name: 'dc.description.abstract', }), new DynamicTextAreaModel({ id: 'rights', name: 'dc.rights', }), new DynamicTextAreaModel({ id: 'tableofcontents', name: 'dc.description.tableofcontents', }), ]; public constructor(protected location: Location, protected formService: DynamicFormService, protected translate: TranslateService, protected notificationsService: NotificationsService, protected authService: AuthService, protected dsoService: CommunityDataService, protected requestService: RequestService, protected objectCache: ObjectCacheService) { super(location, formService, translate, notificationsService, authService, requestService, objectCache); } }