Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 1.0-maintenance
  • 1.1-maintenance
  • 2.0-maintenance
  • 2.1-maintenance
  • adf-1032-keytitle-at-issn-service
  • adf-1212-add-forgotten-publications-to-validate-into-profile
  • adf-1259-abstract-not-mandatory-for-thesis
  • adf-1393-manage-old-thesis
  • adf-1542-disable-button-to-update-publication-in-access
  • adf-1603-remove-guide-link-from-menu
  • adf-237-structures-user-icons-in-profile
  • adf-956-new-document-types
  • adf-956-new-file-type-imprimatur-and-mode-de-diffusion-for-thesis
  • aou-1542_add_button_access_bibliography_generator
  • aou-1617_create_warning_when_contributor_are_identical
  • aou-1638_change_radio_to_checkbox
  • fpo/1040_do_not_show_multiple_action_buttons_when_only_one_deposit_is_selected
  • fpo/263_flatten_the_json_format_used_by_the_frontend
  • fpo/avoid_infinite_login_loop
  • fpo/components_in_solidify
  • fpo/dark_mode_refactor
  • fpo/migration-angular-20
  • hbo-test
  • hbo_fix_dont_run_twice_http_request_autocomplete
  • jbc-new-icons
  • master
  • rodn-1767-access-level-images
  • rodn-1829-scheduled-task-to-export-to-orcid
  • rodn-admin-user-business-roles
  • rodn-labels-refactoring
  • rodn-rename-form-data
  • aou-0.0.1
  • aou-0.0.2
  • aou-0.0.3
  • aou-0.0.4
  • aou-0.0.5
  • aou-1.0.0
  • aou-1.0.1
  • aou-1.0.2
  • aou-1.0.3
  • aou-1.0.4
  • aou-1.0.5
  • aou-1.0.6
  • aou-1.1.0
  • aou-1.1.1
  • aou-1.1.2
  • aou-1.2.0-RC1
  • aou-1.2.0-RC2
  • aou-1.2.0-RC3
  • aou-1.2.0-alpha1
  • aou-2.0.0
  • aou-2.0.1
  • aou-2.0.2
  • aou-2.0.3
  • aou-2.0.4
  • aou-2.0.5
  • aou-2.0.6
  • aou-2.0.7
  • aou-2.1.0
  • aou-2.1.1
  • aou-2.1.2
  • aou-2.1.3
  • aou-2.1.4
  • aou-2.1.5
  • aou-2.1.6
  • aou-2.1.7
66 results

Target

Select target project
  • aou/aou-portal
1 result
Select Git revision
  • 1.0-maintenance
  • 1.1-maintenance
  • 2.0-maintenance
  • 2.1-maintenance
  • adf-1032-keytitle-at-issn-service
  • adf-1212-add-forgotten-publications-to-validate-into-profile
  • adf-1259-abstract-not-mandatory-for-thesis
  • adf-1393-manage-old-thesis
  • adf-1542-disable-button-to-update-publication-in-access
  • adf-1603-remove-guide-link-from-menu
  • adf-237-structures-user-icons-in-profile
  • adf-956-new-document-types
  • adf-956-new-file-type-imprimatur-and-mode-de-diffusion-for-thesis
  • aou-1542_add_button_access_bibliography_generator
  • aou-1617_create_warning_when_contributor_are_identical
  • aou-1638_change_radio_to_checkbox
  • fpo/1040_do_not_show_multiple_action_buttons_when_only_one_deposit_is_selected
  • fpo/263_flatten_the_json_format_used_by_the_frontend
  • fpo/avoid_infinite_login_loop
  • fpo/components_in_solidify
  • fpo/dark_mode_refactor
  • fpo/migration-angular-20
  • hbo-test
  • hbo_fix_dont_run_twice_http_request_autocomplete
  • jbc-new-icons
  • master
  • rodn-1767-access-level-images
  • rodn-1829-scheduled-task-to-export-to-orcid
  • rodn-admin-user-business-roles
  • rodn-labels-refactoring
  • rodn-rename-form-data
  • aou-0.0.1
  • aou-0.0.2
  • aou-0.0.3
  • aou-0.0.4
  • aou-0.0.5
  • aou-1.0.0
  • aou-1.0.1
  • aou-1.0.2
  • aou-1.0.3
  • aou-1.0.4
  • aou-1.0.5
  • aou-1.0.6
  • aou-1.1.0
  • aou-1.1.1
  • aou-1.1.2
  • aou-1.2.0-RC1
  • aou-1.2.0-RC2
  • aou-1.2.0-RC3
  • aou-1.2.0-alpha1
  • aou-2.0.0
  • aou-2.0.1
  • aou-2.0.2
  • aou-2.0.3
  • aou-2.0.4
  • aou-2.0.5
  • aou-2.0.6
  • aou-2.0.7
  • aou-2.1.0
  • aou-2.1.1
  • aou-2.1.2
  • aou-2.1.3
  • aou-2.1.4
  • aou-2.1.5
  • aou-2.1.6
  • aou-2.1.7
66 results
Show changes
Showing
with 191 additions and 237 deletions
......@@ -37,7 +37,6 @@ import {BurgerMenuPresentational} from "@app/components/presentationals/main-too
import {MainToolbarDesktopVerticalPresentational} from "@app/components/presentationals/main-toolbar/main-toolbar-desktop-vertical/main-toolbar-desktop-vertical.presentational";
import {MainToolbarMobilePresentational} from "@app/components/presentationals/main-toolbar/main-toolbar-mobile/main-toolbar-mobile.presentational";
import {MainToolbarPresentational} from "@app/components/presentationals/main-toolbar/main-toolbar/main-toolbar.presentational";
import {UserForm} from "@app/components/presentationals/user-form/user-form";
import {UserMenuPresentational} from "@app/components/presentationals/user-menu/user-menu.presentational";
import {icons} from "@app/icons";
import {InMemoryStorage} from "@app/in-memory.storage";
......@@ -108,7 +107,6 @@ const presentationals = [
PageNotFoundPresentational,
GuidedTourMenuPresentational,
UserMenuPresentational,
UserForm,
];
const containers = [
......
<solidify-base-action-dialog [titleToTranslate]="labelTranslateEnum.profile | translate">
<div class="dialog-body">
<div class="right-part">
<h2 class="title">{{labelTranslateEnum.personalInformation | translate}}</h2>
<div class="personal-information-content">
<aou-shared-avatar-upload-wrapper-container [user]="getUser()"
[resourceLogoNameSpace]="userAvatarActionNameSpace"
[resourceLogoState]="userState"
[resId]="personResId"
(avatarChange)="activateButton($event)"
></aou-shared-avatar-upload-wrapper-container>
<div class="wrapper"
[solidifySpinner]="isLoadingPersonObs | async"
>
<aou-shared-person-form #formPresentational
*ngIf="isReadyToBeDisplayedObs | async"
[model]="currentPersonObs | async"
[listStructure]="listStructureObs | async"
[isLoadingStructure]="isLoadingStructureObs | async"
[selectedValidationRight]="selectedValidationRightObs | async"
[selectedStructure]="selectedStructureObs | async"
[selectedNotificationType]="selectedNotificationTypeObs | async"
[selectedResearchGroup]="selectedResearchGroupsObs | async"
[displayButtonAssociateOrcid]="true"
(submitChange)="savePersonInfo($event)"
class="form"
></aou-shared-person-form>
</div>
</div>
</div>
<div class="left-part">
<h2 class="title">{{labelTranslateEnum.administrativeInformation | translate}}</h2>
<div class="administrative-information-content">
<aou-user-form [model]="user"
[readonly]="true"
class="form"
></aou-user-form>
</div>
<aou-shared-avatar-upload-wrapper-container [user]="getUser()"
[resourceLogoNameSpace]="userAvatarActionNameSpace"
[resourceLogoState]="userState"
[resId]="personResId"
(avatarChange)="activateButton($event)"
></aou-shared-avatar-upload-wrapper-container>
<div class="wrapper"
[solidifySpinner]="(isLoadingPersonObs | async) || (isLoadingStructureObs | async)"
>
<aou-shared-person-form #formPresentational
*ngIf="(isReadyToBeDisplayedObs | async) && (user | isNotNullNorUndefined)"
[model]="currentPersonObs | async"
[user]="user"
[listStructure]="listStructureObs | async"
[isLoadingStructure]="isLoadingStructureObs | async"
[selectedValidationRight]="selectedValidationRightObs | async"
[selectedStructure]="selectedStructureObs | async"
[selectedNotificationType]="selectedNotificationTypeObs | async"
[selectedResearchGroup]="selectedResearchGroupsObs | async"
[displayButtonAssociateOrcid]="true"
(submitChange)="savePersonInfo($event)"
class="form"
></aou-shared-person-form>
</div>
</div>
</solidify-base-action-dialog>
......
......@@ -4,22 +4,13 @@
:host {
.dialog-body {
display: grid;
grid-template-columns: 1fr 1fr;
grid-gap: 40px;
grid-template-columns: min-content 1fr;
grid-gap: 20px;
@include respond-to-smaller-than-breakpoint('md') {
grid-template-columns: 1fr;
}
.title {
font-size: 17px;
color: $light-grey;
border-bottom: 1px solid $medium-light-grey;
margin-bottom: 35px;
padding-bottom: 10px;
font-weight: initial;
}
.wrapper {
min-height: 150px;
}
......@@ -27,11 +18,5 @@
.form ::ng-deep form > * {
width: 100%;
}
.personal-information-content {
display: grid;
grid-template-columns: min-content 1fr;
grid-gap: 20px;
}
}
}
<form [formGroup]="form">
<mat-form-field *ngIf="getFormControl(formDefinition.homeOrganization) as fd">
<mat-label>{{labelTranslateEnum.homeOrganization | translate }}</mat-label>
<input matInput
[solidifyValidation]="errors"
[formControl]="fd"
[required]="formValidationHelper.hasRequiredField(fd)"
>
<mat-error #errors></mat-error>
</mat-form-field>
<mat-form-field *ngIf="getFormControl(formDefinition.email) as fd">
<mat-label>{{labelTranslateEnum.email | translate }}</mat-label>
<input matInput
[solidifyValidation]="errors"
[formControl]="fd"
[required]="formValidationHelper.hasRequiredField(fd)"
>
<mat-error #errors></mat-error>
</mat-form-field>
<mat-form-field *ngIf="getFormControl(formDefinition.applicationRole) as fd">
<mat-label>{{labelTranslateEnum.role | translate }}</mat-label>
<mat-select [formControl]="fd"
[solidifyValidation]="errors"
[required]="formValidationHelper.hasRequiredField(fd)"
>
<mat-option *ngFor="let role of roles"
[value]="role.key"
>
{{role.value | translate}}
</mat-option>
</mat-select>
<mat-error #errors></mat-error>
</mat-form-field>
</form>
@import "~solidify-frontend/lib/components/presentationals/abstract-form/abstract-form.presentational.scss";
import {
ChangeDetectionStrategy,
ChangeDetectorRef,
Component,
ElementRef,
Injector,
} from "@angular/core";
import {
FormArray,
FormBuilder,
Validators,
} from "@angular/forms";
import {Enums} from "@enums";
import {User} from "@models";
import {LabelTranslateEnum} from "@shared/enums/label-translate.enum";
import {
AbstractFormPresentational,
BaseFormDefinition,
EnumUtil,
isNullOrUndefined,
KeyValue,
Override,
PropertyName,
SolidifyValidator,
} from "solidify-frontend";
@Component({
selector: "aou-user-form",
templateUrl: "./user-form.html",
styleUrls: ["./user-form.scss"],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class UserForm extends AbstractFormPresentational<User> {
formDefinition: FormComponentFormDefinition = new FormComponentFormDefinition();
roles: KeyValue[] = Enums.UserApplicationRole.UserApplicationRoleEnumTranslate;
get labelTranslateEnum(): typeof LabelTranslateEnum {
return LabelTranslateEnum;
}
constructor(protected readonly _changeDetectorRef: ChangeDetectorRef,
protected readonly _elementRef: ElementRef,
protected readonly _injector: Injector,
private readonly _fb: FormBuilder) {
super(_changeDetectorRef, _elementRef, _injector);
}
protected bindFormTo(user: User): void {
this.form = this._fb.group({
[this.formDefinition.externalUid]: [user.externalUid, [Validators.required, SolidifyValidator]],
[this.formDefinition.firstName]: [user.firstName, [Validators.required, SolidifyValidator]],
[this.formDefinition.lastName]: [user.lastName, [Validators.required, SolidifyValidator]],
[this.formDefinition.homeOrganization]: [user.homeOrganization, [Validators.required, SolidifyValidator]],
[this.formDefinition.email]: [user.email, [Validators.required, SolidifyValidator]],
[this.formDefinition.person]: isNullOrUndefined(user.person) ? [] : [user.person.resId],
[this.formDefinition.accessToken]: [user.accessToken, [Validators.required, SolidifyValidator]],
[this.formDefinition.refreshToken]: [user.refreshToken, [Validators.required, SolidifyValidator]],
[this.formDefinition.applicationRole]: [user.applicationRole.resId, [Validators.required, SolidifyValidator]],
});
}
protected initNewForm(): void {
this.form = this._fb.group({
[this.formDefinition.externalUid]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.firstName]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.lastName]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.homeOrganization]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.email]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.person]: [""],
[this.formDefinition.accessToken]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.refreshToken]: ["", [Validators.required, SolidifyValidator]],
[this.formDefinition.applicationRole]: ["", [Validators.required, SolidifyValidator]],
});
}
protected treatmentBeforeSubmit(user: User): User {
return user;
}
get getApplicationRolesNamesArray(): FormArray {
return this.form.controls.applicationRoles.value as FormArray;
}
@Override()
protected disableSpecificField(): void {
this.form.get(this.formDefinition.homeOrganization).disable();
}
}
class FormComponentFormDefinition extends BaseFormDefinition {
@PropertyName() externalUid: string;
@PropertyName() firstName: string;
@PropertyName() lastName: string;
@PropertyName() homeOrganization: string;
@PropertyName() email: string;
@PropertyName() person: string;
@PropertyName() accessToken: string;
@PropertyName() refreshToken: string;
@PropertyName() applicationRole: string;
}
class FormComponentFormDefinitionPerson extends BaseFormDefinition {
@PropertyName() firstName: string;
@PropertyName() lastName: string;
@PropertyName() orcid: string;
@PropertyName() structures: string;
}
......@@ -119,7 +119,7 @@ export class AdminStructureListRoutable extends AbstractListRoutable<Structure,
];
}
openDetail(structureResId: string): void {
this.showDetail({resId: structureResId} as any);
openDetail(structure: Structure): void {
this.showDetail(structure);
}
}
......@@ -168,6 +168,7 @@
matSuffix
[iconName]="iconNameEnum.orcid"
[matTooltip]="labelTranslateEnum.orcidAuthenticated | translate"
(click)="goToOrcid(fd.value)"
class="sm"
>
</solidify-icon>
......
......@@ -13,6 +13,7 @@ import {
Validators,
} from "@angular/forms";
import {Enums} from "@enums";
import {environment} from "@environments/environment";
import {
Person,
Structure,
......@@ -21,6 +22,7 @@ import {
import {IconNameEnum} from "@shared/enums/icon-name.enum";
import {LabelTranslateEnum} from "@shared/enums/label-translate.enum";
import {ValidationRight} from "@shared/models/business/validation-right.model";
import {OrcidService} from "@shared/services/orcid.service";
import {ResourceLogoNameSpace} from "@shared/stores/resource-logo/resource-logo-namespace.model";
import {
AbstractFormPresentational,
......@@ -33,6 +35,7 @@ import {
KeyValue,
ObjectUtil,
PropertyName,
SOLIDIFY_CONSTANTS,
SolidifyValidator,
} from "solidify-frontend";
......@@ -78,7 +81,8 @@ export class AdminUserFormPresentational extends AbstractFormPresentational<User
constructor(protected readonly _changeDetectorRef: ChangeDetectorRef,
protected readonly _elementRef: ElementRef,
protected readonly _injector: Injector,
private readonly _fb: FormBuilder) {
private readonly _fb: FormBuilder,
private readonly _orcidService: OrcidService) {
super(_changeDetectorRef, _elementRef, _injector);
}
......@@ -178,6 +182,10 @@ export class AdminUserFormPresentational extends AbstractFormPresentational<User
structureChange($event: Structure[]): void {
}
goToOrcid(orcid: string): void {
this._orcidService.openOrcidPage(orcid);
}
}
export class AdminUserFormFormComponentFormDefinition extends BaseFormDefinition {
......
......@@ -150,6 +150,13 @@ export class DepositDocumentFileContainer extends SharedAbstractRoutable impleme
placeholder: current => LabelTranslateEnum.delete,
displayOnCondition: (documentFile: DocumentFile) => this.canEdit,
},
{
logo: IconNameEnum.download,
callback: (documentFile: DocumentFile) => this.downloadDocumentFile(this.depositId, documentFile),
placeholder: current => LabelTranslateEnum.download,
displayOnCondition: current => current.status === Enums.DocumentFile.StatusEnum.PROCESSED || current.status === Enums.DocumentFile.StatusEnum.READY,
isWrapped: false,
},
// {
// logo: IconNameEnum.preview,
// callback: (documentFile: DocumentFile) => this._showPreview(documentFile),
......@@ -361,9 +368,9 @@ export class DepositDocumentFileContainer extends SharedAbstractRoutable impleme
this._store.dispatch(new DepositDocumentFileAction.Refresh(this.depositId));
}
// download($event: DocumentFile): void {
// this._store.dispatch(new DepositDocumentFileAction.Download(this.depositId, $event));
// }
downloadDocumentFile(parentId: string, $event: DocumentFile): void {
this._store.dispatch(new DepositDocumentFileAction.Download(parentId, $event));
}
openDetailFile(documentFile: DocumentFile): void {
const dialogRef = this._dialog.open(DepositDocumentFileUploadDialog, {
......
......@@ -90,7 +90,7 @@
[iconName]="iconNameEnum.orcid"
[matTooltip]="fd.value"
class="sm orcid"
(click)="copyToClipboard(fd.value)"
(click)="goToOrcid(fd.value)"
>
</solidify-icon>
</ng-container>
......
......@@ -28,6 +28,7 @@ import {
FormComponentFormDefinitionDepositFormContributor,
} from "@app/features/deposit/models/deposit-form-definition.model";
import {Enums} from "@enums";
import {environment} from "@environments/environment";
import {
Contributor,
ContributorRole,
......@@ -41,6 +42,7 @@ import {
} from "@ngxs/store";
import {SharedAbstractContainer} from "@shared/components/containers/shared-abstract/shared-abstract.container";
import {LabelTranslateEnum} from "@shared/enums/label-translate.enum";
import {OrcidService} from "@shared/services/orcid.service";
import {SharedContributorRoleAction} from "@shared/stores/contributor-role/shared-contributor-role.action";
import {SharedContributorRoleState} from "@shared/stores/contributor-role/shared-contributor-role.state";
import {SharedExternalDataAction} from "@shared/stores/external-data/shared-external-data.action";
......@@ -72,6 +74,7 @@ import {
MemoizedUtil,
NotificationService,
ObservableUtil,
SOLIDIFY_CONSTANTS,
} from "solidify-frontend";
const LIMIT_CONTRIBUTOR_TO_DISPLAY: number = 10;
......@@ -181,7 +184,8 @@ export class DepositTableContributorContainer extends SharedAbstractContainer im
private readonly _fb: FormBuilder,
private readonly _changeDetector: ChangeDetectorRef,
private readonly _actions$: Actions,
private readonly _notificationService: NotificationService) {
private readonly _notificationService: NotificationService,
private readonly _orcidService: OrcidService) {
super();
}
......@@ -461,9 +465,8 @@ export class DepositTableContributorContainer extends SharedAbstractContainer im
searchContributorInfos.selected = searchContributorInfos.list.find(c => c.cnIndividu === cnIndividu);
}
copyToClipboard(value: string): void {
ClipboardUtil.copyStringToClipboard(value);
this._notificationService.showInformation(LabelTranslateEnum.notificationCopyToClipboard);
goToOrcid(orcid: string): void {
this._orcidService.openOrcidPage(orcid);
}
dropToSort(event: CdkDragDrop<any>): void {
......
<solidify-base-action-dialog [titleToTranslate]="labelTranslateEnum.commentsOnDepositX | translate: {title: data.deposit.title}">
<aou-deposit-comment-form [listComments]="listCommentsObs | async"
[readonly]="true"
[withoutPanel]="true"
></aou-deposit-comment-form>
</solidify-base-action-dialog>
<div mat-dialog-actions
class="footer"
>
<button mat-button
[mat-dialog-close]=""
[solidifyAutoFocus]="true"
>{{labelTranslateEnum.close | translate}}
</button>
</div>
@import "../../../../../../sass/abstracts/abstracts";
:host {
.footer {
justify-content: flex-end;
align-items: center;
}
}
import {
ChangeDetectionStrategy,
Component,
Inject,
OnInit,
} from "@angular/core";
import {FormBuilder} from "@angular/forms";
import {
MAT_DIALOG_DATA,
MatDialogRef,
} from "@angular/material/dialog";
import {DepositCommentAction} from "@app/features/deposit/stores/comment/deposit-comment.action";
import {DepositCommentState} from "@app/features/deposit/stores/comment/deposit-comment.state";
import {
Deposit,
Comment,
} from "@models";
import {Store} from "@ngxs/store";
import {SharedAbstractContainer} from "@shared/components/containers/shared-abstract/shared-abstract.container";
import {Observable} from "rxjs";
import {
BreakpointService,
MemoizedUtil,
} from "solidify-frontend";
@Component({
selector: "aou-deposit-comment-dialog",
templateUrl: "./deposit-comment.dialog.html",
styleUrls: ["./deposit-comment.dialog.scss"],
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DepositCommentDialog extends SharedAbstractContainer implements OnInit {
listCommentsObs: Observable<Comment[]> = MemoizedUtil.list(this._store, DepositCommentState);
constructor(protected _dialogRef: MatDialogRef<DepositCommentDialog>,
protected _fb: FormBuilder,
private readonly _store: Store,
public readonly breakpointService: BreakpointService,
@Inject(MAT_DIALOG_DATA) public data: DepositCommentDialogData) {
super();
}
ngOnInit(): void {
super.ngOnInit();
this._store.dispatch(new DepositCommentAction.GetAll(this.data.deposit.resId));
}
}
export interface DepositCommentDialogData {
deposit: Deposit;
}
......@@ -29,30 +29,32 @@
>({{labelTranslateEnum.lastEdit | translate}}: {{comment.lastUpdate.when | datetime}})</span>
</div>
<div class="buttons-wrapper">
<button *ngIf="!showCommentForm"
type="button"
(click)="editComment(comment)"
mat-icon-button
mat-button
aria-label="edit comment"
[matTooltip]="'general.button.editComment' | translate"
>
<solidify-icon [iconName]="iconNameEnum.edit"
class="md icon"
></solidify-icon>
</button>
<button *ngIf="!showCommentForm"
type="button"
(click)="deleteComment(comment)"
mat-icon-button
mat-button
aria-label="delete comment"
[matTooltip]="'general.button.deleteComment' | translate"
>
<solidify-icon [iconName]="iconNameEnum.delete"
class="md icon"
></solidify-icon>
</button>
<ng-template [ngIf]="!readonly">
<button *ngIf="!showCommentForm"
type="button"
(click)="editComment(comment)"
mat-icon-button
mat-button
aria-label="edit comment"
[matTooltip]="'general.button.editComment' | translate"
>
<solidify-icon [iconName]="iconNameEnum.edit"
class="md icon"
></solidify-icon>
</button>
<button *ngIf="!showCommentForm"
type="button"
(click)="deleteComment(comment)"
mat-icon-button
mat-button
aria-label="delete comment"
[matTooltip]="'general.button.deleteComment' | translate"
>
<solidify-icon [iconName]="iconNameEnum.delete"
class="md icon"
></solidify-icon>
</button>
</ng-template>
</div>
<ng-template [ngIf]="showCommentForm && idCommentEdited === comment.resId">
......@@ -66,7 +68,9 @@
<ng-template [ngTemplateOutlet]="commentInput"></ng-template>
</ng-template>
<div class="add-comment-wrapper">
<div *ngIf="!readonly"
class="add-comment-wrapper"
>
<a *ngIf="!showCommentForm"
class="add-comment"
(click)="openCommentForm()"
......
......@@ -85,3 +85,13 @@
}
}
:host(.without-panel) {
.panel {
&::ng-deep {
.header {
display: none;
}
}
}
}
......@@ -3,6 +3,7 @@ import {
ChangeDetectorRef,
Component,
ElementRef,
HostBinding,
Injector,
Input,
Output,
......@@ -59,6 +60,13 @@ export class DepositCommentFormPresentational extends AbstractFormPresentational
return this._listComments;
}
@HostBinding("class.without-panel")
@Input()
withoutPanel: boolean = false;
@Input()
readonly: boolean = true;
private readonly _createCommentBS: BehaviorSubject<Comment | undefined> = new BehaviorSubject<Comment | undefined>(undefined);
@Output("commentCreated")
readonly commentCreatedObs: Observable<Comment | undefined> = ObservableUtil.asObservable(this._createCommentBS);
......
......@@ -43,6 +43,7 @@
<aou-deposit-summary #depositSummaryPresentational
[depositId]="model?.resId"
[depositFormModel]="convertedFormToDepositFormModelForSummary"
[creator]="model?.creator"
></aou-deposit-summary>
<ul class="form-error">
<li *ngIf="numberFilesInError > 0">
......
......@@ -30,6 +30,19 @@
<span class="value">{{keywords}}</span>
</div>
<div *ngIf="creator | isNotNullNorUndefined"
class="submitted-by"
>
<span>{{labelTranslateEnum.submittedBy | translate}} {{creator.fullName}}</span>
<solidify-icon *ngIf="creator.orcid | isNonEmptyString"
matSuffix
[iconName]="iconNameEnum.orcid"
[matTooltip]="creator.orcid"
(click)="goToOrcid(creator.orcid)"
class="sm orcid"
>
</solidify-icon>
</div>
</div>
<div *ngIf="listInfoMains"
......