Skip to content
Snippets Groups Projects
Commit e15d47b4 authored by Florent Poittevin's avatar Florent Poittevin
Browse files

fix: style of deposit collection

parent ef9f87cf
No related branches found
No related tags found
1 merge request!133Adf 868 deposit collections
<div>
<div class="tab-content">
<div *ngIf="canEditObs | async"
class="file-upload"
>
<div class="upload-button-wrapper">
<button mat-button
color="accent"
type="button"
(click)="openModalUpload()"
>
<mat-icon>publish</mat-icon>
{{'deposit.collection.button.addAip' | translate}}
</button>
</div>
<div class="file-uploaded">
<div class="header">
<div class="left-part">
<h1 class="title">{{'deposit.aip.title.collection' | translate}}</h1>
<button mat-button
class="button-add-to-collection"
color="accent"
type="button"
(click)="openModalUpload()"
>
<mat-icon>publish</mat-icon>
{{'deposit.collection.button.addAip' | translate}}
</button>
</div>
<div class="right-part">
<button class="button-refresh"
mat-icon-button
mat-button
type="button"
(click)="refresh()"
[matTooltip]="'deposit.file.tree.refresh' | translate"
[matTooltipPosition]="'left'"
[class.spinning]="isLoadingCollectionObs | async"
[disabled]="isLoadingCollectionObs | async"
>
<mat-icon>refresh</mat-icon>
</button>
</div>
</div>
<div class="file-uploaded">
<h1>{{'deposit.aip.title.collection' | translate}}</h1>
<div class="file-uploaded-header">
<button mat-icon-button
mat-button
(click)="refresh()"
[matTooltip]="'deposit.file.tree.refresh' | translate"
[matTooltipPosition]="'left'"
[class.spinning]="isLoadingCollectionObs | async"
[disabled]="isLoadingCollectionObs | async"
>
<fa-icon icon="sync-alt"></fa-icon>
</button>
</div>
<div class="file-viewer">
<div class="file-list-wrapper"
[dlcmSpinner]="isLoadingCollectionObs | async"
>
<dlcm-shared-data-table *ngIf="columns"
[columns]="columns"
[actions]="actions"
[isLoading]="isLoadingCollectionObs | async"
[datas]="listCollectionObs | async"
[queryParameters]="queryParametersObs | async"
(queryParametersChange)="onQueryParametersEvent($event)"
(selectChange)="showDetail($event)"
>
</dlcm-shared-data-table>
</div>
<ng-template #noFile>
<label>{{'deposit.file.tree.noFile' | translate}}</label>
</ng-template>
</div>
<div class="file-viewer">
<div class="file-list-wrapper"
[dlcmSpinner]="isLoadingCollectionObs | async"
>
<dlcm-shared-data-table *ngIf="columns"
[columns]="columns"
[actions]="actions"
[isLoading]="isLoadingCollectionObs | async"
[datas]="listCollectionObs | async"
[queryParameters]="queryParametersObs | async"
(queryParametersChange)="onQueryParametersEvent($event)"
(selectChange)="showDetail($event)"
>
</dlcm-shared-data-table>
</div>
<ng-template #noFile>
<label>{{'deposit.file.tree.noFile' | translate}}</label>
</ng-template>
</div>
</div>
......@@ -5,51 +5,59 @@
:host {
padding: 0;
.tab-content {
.header {
display: flex;
justify-content: space-between;
padding-bottom: 20px;
.file-upload {
.upload-button-wrapper {
padding-bottom: 25px;
.left-part,
.right-part {
display: flex;
}
.left-part {
align-items: center;
.title {
margin: 0;
}
padding-bottom: 25px;
}
.button-add-to-collection {
margin-left: 20px;
}
@include respond-to-smaller-than-breakpoint('sm') {
flex-direction: column;
align-items: self-start;
.file-uploaded {
.button-add-to-collection {
margin-left: 0;
}
}
}
.file-uploaded-header {
display: flex;
justify-content: space-between;
align-items: center;
position: relative;
min-height: 35px;
.right-part {
.button-refresh {
transition-property: transform;
transition-duration: 1s;
fa-icon {
font-size: 20px;
}
button {
transition-property: transform;
transition-duration: 1s;
position: absolute;
top: -10px;
right: 10px;
&.spinning {
animation-name: rotate;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
&.spinning {
animation-name: rotate;
animation-duration: 2s;
animation-iteration-count: infinite;
animation-timing-function: linear;
@keyframes rotate {
from {
transform: rotate(0deg);
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
to {
transform: rotate(360deg);
}
}
}
......
......@@ -9,9 +9,7 @@ import {DepositAipUploadDialog} from "@deposit/components/dialogs/deposit-aip-up
import {DepositExtended} from "@deposit/models/deposits-extended.model";
import {DepositCollectionAction} from "@deposit/stores/collection/deposit-collection.action";
import {DepositCollectionState} from "@deposit/stores/collection/deposit-collection.state";
import {
depositActionNameSpace,
} from "@deposit/stores/deposit.action";
import {depositActionNameSpace} from "@deposit/stores/deposit.action";
import {DepositStateModel} from "@deposit/stores/deposit.state";
import {environment} from "@environments/environment";
import {
......@@ -31,9 +29,7 @@ import {DataFileStatusEnum} from "@shared/enums/business/data-file-status.enum";
import {DataTableComponentEnum} from "@shared/enums/data-table-component.enum";
import {FieldTypeEnum} from "@shared/enums/field-type.enum";
import {LocalStateEnum} from "@shared/enums/local-state.enum";
import {
AppRoutesEnum,
} from "@shared/enums/routes.enum";
import {AppRoutesEnum} from "@shared/enums/routes.enum";
import {DataTableActions} from "@shared/models/data-table-actions.model";
import {DataTableColumns} from "@shared/models/data-table-columns.model";
import {LocalStateModel} from "@shared/models/local-state.model";
......@@ -194,10 +190,9 @@ export class DepositCollectionRoutable extends SharedAbstractDetailEditRoutable<
this.actions = [];
this.subscribe(this.canEditObs.pipe(distinctUntilChanged()), (canEdit: boolean) => {
console.error("this collection can edit" + canEdit);
if (canEdit) {
this.actions = [
this.actionDelete
this.actionDelete,
];
} else {
this.actions = [this.actionRedirect];
......@@ -254,9 +249,9 @@ export class DepositCollectionRoutable extends SharedAbstractDetailEditRoutable<
this.subscribe(dialogRef.afterClosed().pipe(
filter((listAipIds: string[]) => isNonEmptyArray(listAipIds)),
tap(((listAipIds: string[]) => {
this.addAip(listAipIds);
})
)));
this.addAip(listAipIds);
}),
)));
}
addAip(aipIds: string[]): void {
......
......@@ -23,10 +23,7 @@ import {DepositStateModel} from "@app/features/deposit/stores/deposit.state";
import {Deposit} from "@app/generated-api";
import {LocalStateEnum} from "@app/shared/enums/local-state.enum";
import {LocalStateModel} from "@app/shared/models/local-state.model";
import {
AppState,
AppStateModel,
} from "@app/stores/app.state";
import {AppState} from "@app/stores/app.state";
import {AppOrgUnitPersonRoleAction} from "@app/stores/organizational-unit-person-role/app-organizational-unit-person-role.action";
import {DepositFormPresentational} from "@deposit/components/presentationals/deposit-form/deposit-form.presentational";
import {DepositTabEnum} from "@deposit/enums/deposit-tab.enum";
......@@ -162,19 +159,17 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
this._orgUnitResId = this._route.parent.snapshot.paramMap.get(AppRoutesEnum.paramIdOrgUnitWithoutPrefixParam);
}
private _computeCurrentTab(): void {
const tabRouteSelected = DepositHelper.getTabRouteSelected(this._route);
this.tabSelected = DepositHelper.getTabSelectedIndexWithRoute(tabRouteSelected);
}
private _computeEditableField(): void {
this.subscribe(this.canDoAlterationActionsObs.pipe(
distinctUntilChanged(),
tap( isEdit => {
tap(isEdit => {
this._store.dispatch(new DepositAction.ChangeEditProperty(isEdit));
} )
}),
));
}
......@@ -189,11 +184,10 @@ export class DepositDetailEditRoutable extends SharedAbstractDetailEditRoutable<
this.subscribe(this.currentObs.pipe(
distinctUntilChanged(),
filter(deposit => !isNullOrUndefined(deposit) && deposit.resId === this._resId),
// take(1),
tap(deposit => {
const canDoValidatorActions = this._securityService.depositInValidationStep(deposit);
const canDoAlterationActions = this._securityService.depositInEditionStep(deposit);
const collectionSize = this._store.selectSnapshot((state: LocalStateModel) => state.deposit.current.collectionSize);
const collectionSize = this._store.selectSnapshot((state: LocalStateModel) => state.deposit.current.collectionSize);
this.subscribe(combineLatest(this.numberFilesObs, this.numberFilesInErrorObs).pipe(
distinctUntilChanged(),
......
......@@ -5,11 +5,8 @@ import {
Store,
} from "@ngxs/store";
import {AipExtended} from "@preservation/aip/models/aip-extended.model";
import {
ArchivalStorageResourceApiEnum,
} from "@shared/enums/api.enum";
import {ArchivalStorageResourceApiEnum} from "@shared/enums/api.enum";
import {LocalStateEnum} from "@shared/enums/local-state.enum";
import {DownloadService} from "@shared/services/download.service";
import {
ApiService,
defaultResourceStateInitValue,
......@@ -32,8 +29,7 @@ export class DepositAipState extends ResourceState<DepositAipStateModel, AipExte
constructor(protected apiService: ApiService,
protected store: Store,
protected notificationService: NotificationService,
protected actions$: Actions,
private downloadService: DownloadService) {
protected actions$: Actions) {
super(apiService, store, notificationService, actions$, {
nameSpace: depositAipActionNameSpace,
});
......
import {HttpClient} from "@angular/common/http";
import {Inject} from "@angular/core";
import {WINDOW} from "@app/app.module";
import {
DepositCollectionAction,
depositCollectionActionNameSpace,
} from "@deposit/stores/collection/deposit-collection.action";
import {DepositDataFileAction} from "@deposit/stores/data-file/deposit-data-file.action";
import {DepositDataFileStateModel} from "@deposit/stores/data-file/deposit-data-file.state";
import {Navigate} from "@ngxs/router-plugin";
import {
Action,
......@@ -16,9 +11,6 @@ import {
Store,
} from "@ngxs/store";
import {AipExtended} from "@preservation/aip/models/aip-extended.model";
import {PreservationAipAipAction} from "@preservation/aip/stores/aip-aip/aip-aip.action";
import {PreservationAipAipStateModel} from "@preservation/aip/stores/aip-aip/aip-aip.state";
import {PreservationAipAction} from "@preservation/aip/stores/aip.action";
import {ApiResourceNameEnum} from "@shared/enums/api-resource-name.enum";
import {PreIngestResourceApiEnum} from "@shared/enums/api.enum";
import {LocalStateEnum} from "@shared/enums/local-state.enum";
......@@ -28,18 +20,12 @@ import {
RoutesEnum,
urlSeparator,
} from "@shared/enums/routes.enum";
import {DownloadService} from "@shared/services/download.service";
import {
ApiService,
AssociationRemoteState,
AssociationRemoteStateModel,
AssociationState,
CompositionState,
CompositionStateModel,
defaultAssociationRemoteStateInitValue,
defaultCompositionStateInitValue,
NotificationService,
OverrideDefaultAction,
QueryParameters,
} from "solidify-frontend";
......@@ -47,10 +33,9 @@ export const defaultDepositCollectionValue: () => DepositCollectionStateModel =
({
...defaultAssociationRemoteStateInitValue(),
listAips: [],
queryParameters: new QueryParameters()
queryParameters: new QueryParameters(),
});
export interface DepositCollectionStateModel extends AssociationRemoteStateModel<AipExtended> {
listAips: string[];
queryParameters: QueryParameters;
......@@ -77,7 +62,6 @@ export class DepositCollectionState extends AssociationRemoteState<DepositCollec
return PreIngestResourceApiEnum.deposits;
}
@Action(DepositCollectionAction.ChangeQueryParameters)
changeQueryParameters(ctx: StateContext<DepositCollectionStateModel>, action: DepositCollectionAction.ChangeQueryParameters): void {
ctx.patchState({
......@@ -104,5 +88,4 @@ export class DepositCollectionState extends AssociationRemoteState<DepositCollec
ctx.dispatch(new DepositCollectionAction.Refresh(action.parentId));
}
}
......@@ -15,7 +15,7 @@
</ng-container>
<button mat-button
*ngIf="data.isLoading !==null"
*ngIf="data.isLoading !== null"
color="accent"
(click)="showHistory()"
>
......
......@@ -910,7 +910,7 @@
"complianceLevel": "Niveau de conformité"
},
"modal": {
"title":{
"title": {
"main": "Ajouter des archives existantes à la collection",
"search": "Recherche d'archives"
},
......@@ -926,23 +926,23 @@
"accessLevel": "Niveau d'accès",
"addMeAsAuthor": "m'ajouter en tant qu'auteur",
"alert": {
"status": {
"completed": "La soumission du dépôt a été complétée",
"error": "Le dépôt est en erreur. Merci de le soumettre ultérieurement",
"processed": "Processus de dépôt en cours",
"rejected": "La soumission du dépôt a été rejetée"
}
},
"status": {
"completed": "La soumission du dépôt a été complétée",
"error": "Le dépôt est en erreur. Merci de le soumettre ultérieurement",
"processed": "Processus de dépôt en cours",
"rejected": "La soumission du dépôt a été rejetée"
}
},
"approve": "Approuver le dépôt",
"authors": {
"navigateLinkPlaceholder": "Voir le détail de l'auteur",
"placeholder": "Cliquer ici pour ajouter des auteurs",
"title": "Auteurs"
"title": "Auteurs"
},
"backToEdit": "Retour en édition",
"collection":{
"collection": {
"button": {
"addAip": "Add existing archives to collection"
"addAip": "Ajouter une archive existante à la collection"
}
},
"collectionBegin": "Début de la collecte des données",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment