diff --git a/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.html b/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.html index f415af9d3dcf0aa51853a94de44db049b4cb9c91..22629ea2d67ccf6f1556f021d7604cc607cb1049 100644 --- a/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.html +++ b/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.html @@ -6,7 +6,7 @@ </div> <span class="divider-modal"></span> <div mat-dialog-actions class="actions"> - <button mat-raised-button mat-button color="primary" [disabled]="contactSelected===null" + <button mat-raised-button mat-button color="primary" [disabled]="contactSelected===null || loading" (click)="onSubmit()">{{lang.merge}}</button> <button mat-raised-button mat-button [mat-dialog-close]="">{{lang.cancel}}</button> </div> diff --git a/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.ts b/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.ts index 55e9b6ecad111d3a0d44db0d3ab866c54903a3dd..86d44060d2bb583664ae3a45eca1e44c52d63021 100644 --- a/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.ts +++ b/src/frontend/app/administration/contact/contact-duplicate/manage-duplicate/manage-duplicate.component.ts @@ -5,7 +5,7 @@ import { HttpClient } from '@angular/common/http'; import { FunctionsService } from '../../../../../service/functions.service'; import { ContactDetailComponent } from '../../../../contact/contact-detail/contact-detail.component'; import { LANG } from '../../../../translate.component'; -import { tap, catchError } from 'rxjs/operators'; +import { tap, catchError, finalize } from 'rxjs/operators'; import { of } from 'rxjs/internal/observable/of'; import { NotificationService } from '../../../../notification.service'; @@ -16,6 +16,7 @@ import { NotificationService } from '../../../../notification.service'; }) export class ManageDuplicateComponent implements OnInit { + loading: boolean = false; lang: any = LANG; contactSelected: number = null; @@ -55,6 +56,7 @@ export class ManageDuplicateComponent implements OnInit { } onSubmit() { + this.loading = true; const masterContact: number = this.data.duplicate.filter((contact: any, index: number) => index === this.contactSelected).map((contact: any) => contact.id)[0]; const slaveContacts: number[] = this.data.duplicate.filter((contact: any, index: number) => index !== this.contactSelected).map((contact: any) => contact.id); @@ -65,6 +67,7 @@ export class ManageDuplicateComponent implements OnInit { tap(() => { this.dialogRef.close('success'); }), + finalize(() => this.loading = false), catchError((err: any) => { this.notify.handleSoftErrors(err); return of(false); diff --git a/src/frontend/app/contact/contact-detail/contact-detail.component.html b/src/frontend/app/contact/contact-detail/contact-detail.component.html index af0b0f1e0f5e94bb3a41e2d7ae20432f415a3738..63d4ccc7b4e83b34316ca1cdb5903992998bf1c7 100644 --- a/src/frontend/app/contact/contact-detail/contact-detail.component.html +++ b/src/frontend/app/contact/contact-detail/contact-detail.component.html @@ -6,8 +6,8 @@ <ng-template #elseTemplate> <mat-card class="contact-card"> <div *ngIf="selectable" class="selectable" [class.selected]="contact.selected"> - <button style="line-height: 15px;padding: 5px;" *ngIf="!contact.selected" mat-raised-button color="primary" (click)="toggleContact(contact)"><span>selectionner</span><br><small style="font-size:80%">{{contact.resourcesCount}} élement(s) associé(s)</small></button> - <button style="line-height: 15px;padding: 10px;" *ngIf="contact.selected" mat-raised-button color="primary" (click)="toggleContact(contact)"><i class="far fa-check-circle"></i> contact sélectionnée</button> + <button style="line-height: 15px;padding: 5px;" *ngIf="!contact.selected" mat-raised-button color="primary" (click)="toggleContact(contact)"><span>selectionner</span><br><small style="font-size:80%">{{contact.resourcesCount}} {{lang.associatedElements}}</small></button> + <button style="line-height: 15px;padding: 10px;" *ngIf="contact.selected" mat-raised-button color="primary" (click)="toggleContact(contact)"><i class="far fa-check-circle"></i> {{lang.selectedContact}}</button> </div> <mat-card-header> <div mat-card-avatar class="contact-header-image fa" diff --git a/src/frontend/app/contact/contact-detail/contact-detail.component.scss b/src/frontend/app/contact/contact-detail/contact-detail.component.scss index b1f415c078c87c526de2054b6936a93d334a2542..62f7852745c6c8eba453b9667775732ce527a605 100644 --- a/src/frontend/app/contact/contact-detail/contact-detail.component.scss +++ b/src/frontend/app/contact/contact-detail/contact-detail.component.scss @@ -132,9 +132,6 @@ } .contact-card:hover { - .mat-card-content, .mat-card-header { - opacity: 0.5; - } .selectable { opacity: 1; transition: opacity 0.2s; diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index d5aaaeb0527627f929b411d587a9d73140497746..d1a5c1cac546359ac6a825cd9000a6c573e5fcf8 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -1700,4 +1700,6 @@ export const LANG_EN = { "duplicatesContactDisplayed": "{0} duplicates ({1} displayed)", "duplicatesContactsAdmin": "Manage contacts duplicates", "merge": "Merge", + "associatedElements": "associated elements", + "selectedContact": "selected contact", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 30ae01edccc1174f90eb441ccfbd807e083c26e2..9cf68f9fcf6366e497ee59c9b417008301dc1490 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -1702,4 +1702,6 @@ export const LANG_FR = { "duplicatesContactDisplayed": "{0} doulons ({1} affichés)", "duplicatesContactsAdmin": "Gérer les doublons de contacts", "merge": "Fusionner", + "associatedElements": "élement(s) associé(s)", + "selectedContact": "contact sélectionné", }; diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index bf5abee197ee69b957ffca8e4d3bc2679e592489..0a5b769afcb0e41747171881fb0ed7c9432b8557 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -1684,4 +1684,6 @@ export const LANG_NL = { "duplicatesContactDisplayed": "{0} duplicates ({1} displayed)", //_TO_TRANSLATE "duplicatesContactsAdmin": "Manage contacts duplicates", //_TO_TRANSLATE "merge": "Merge", //_TO_TRANSLATE + "associatedElements": "associated elements", //_TO_TRANSLATE + "selectedContact": "selected contact", //_TO_TRANSLATE };