Skip to content
Snippets Groups Projects
sent-numeric-package-page.component.html 10.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • <div class="mat-dialog-content-container">
        <h1 mat-dialog-title>
            <span style="flex: 1;">
    
                {{functions.empty(reference) ? lang.sendNumericPackage : reference}}
    
            <button [title]="lang.close" mat-icon-button (click)="closeModal()">
    
                <mat-icon class="fa fa-times"></mat-icon>
            </button></h1>
        <mat-dialog-content class="modal-container">
            <div *ngIf="loading" class="loading">
                <mat-spinner style="margin:auto;"></mat-spinner>
            </div>
            <div *ngIf="canManageMail()" class="alert-message alert-message-info"
                [innerHTML]="lang.sendNumericPackageInfo | scan: [maarch2maarchUrl]"></div>
            <mat-form-field>
                <mat-label class="attachLabel">{{lang.sender}}</mat-label>
                <input *ngIf="!canManageMail()" matInput [value]="currentSender.label" readonly>
                <mat-select *ngIf="canManageMail()" [compareWith]="this.compareSenders" [(ngModel)]="currentSender"
                    required>
                    <mat-option *ngFor="let sender of availableSenders | sortBy: 'label'" [value]="sender">
                        {{sender.label}} ({{sender.m2m}})
                    </mat-option>
                </mat-select>
            </mat-form-field>
            <mat-form-field>
                <mat-label class="attachLabel">{{lang.recipient}} *</mat-label>
                <mat-chip-list id="recipients-list" #recipientsList>
                    <mat-chip class="recipients" *ngFor="let recipient of recipients" [selectable]="selectable"
                        [removable]="canManageMail()" (removed)="remove(recipient, 'recipients')"
                        (click)="remove(recipient, 'recipients')">
                        <span style="flex:1;">
                            <div>
                                {{recipient.label}} - <b>{{recipient.m2m}}</b>
                            </div>
                            <div class="attachLabel">
    
                                ({{lang.communicationMean}} : {{communicationType}})
    
                            </div>
                        </span>
                        <mat-icon matChipRemove class="fa fa-times" *ngIf="canManageMail()"></mat-icon>
                    </mat-chip>
                    <input #recipientsInput [formControl]="recipientsCtrl" [matChipInputFor]="recipientsList"
                        [matAutocomplete]="autoEmails" (focus)="resetAutocomplete()" required>
                </mat-chip-list>
                <mat-autocomplete #autoEmails="matAutocomplete" (optionSelected)="addRecipient($event.option.value)">
                    <mat-option *ngFor="let option of filteredEmails | async" [value]="option" class="m2mRecipientList">
                        <div>
                            {{option.label}} - <b>{{option.m2m}}</b>
                        </div>
                        <div class="attachLabel">
                            ({{lang.communicationMean}} : {{option.communicationMeans}})
                        </div>
                    </mat-option>
                </mat-autocomplete>
            </mat-form-field>
            <mat-form-field>
                <mat-label class="attachLabel">{{lang.mailSubject}}</mat-label>
                <input matInput [readonly]="!canManageMail()" [(ngModel)]="numericPackage.object" maxlength="70" required>
                <button mat-icon-button matSuffix *ngFor="let keyVal of emailAttachTool | keyvalue"
    
                    [disabled]="!canManageMail() || emailAttachTool[keyVal.key].list.length === 0" [title]="emailAttachTool[keyVal.key].title"
    
                    (click)="$event.stopPropagation();currentEmailAttachTool=keyVal.key;"
                    [matMenuTriggerFor]="emailAttachListMenu">
                    <mat-icon class="{{emailAttachTool[keyVal.key].icon}}"
                        [class.activeButton]="isSelectedAttachType(keyVal.key)" color="primary">
                    </mat-icon>
                </button>
                <mat-menu #emailAttachListMenu="matMenu" [class]="'attachListMenu'">
                    <ng-container *ngFor="let keyVal of emailAttachTool | keyvalue">
                        <ng-container *ngIf="keyVal.key === currentEmailAttachTool">
                            <button mat-menu-item style="line-height: normal;" disableRipple
                                *ngFor="let attach of emailAttachTool[keyVal.key].list"
                                [disabled]="isSelectedAttach(attach,keyVal.key)"
                                (click)="$event.stopPropagation();toggleAttach(attach,keyVal.key,'original');">
                                <span (click)="$event.stopPropagation();toggleAttach(attach,keyVal.key,'original')"
                                    [title]="attach.label">
                                    <div style="font-size: 10px;opacity: 0.5;">{{attach.chrono}} - {{attach.typeLabel}}
                                        ({{attach.creator}})</div>
                                    {{attach.label | shorten: 45: '...'}} - {{attach.format}}
                                </span>
                            </button>
                        </ng-container>
                    </ng-container>
                </mat-menu>
            </mat-form-field>
            <mat-form-field *ngIf="!canManageMail()">
                <mat-label class="attachLabel">{{lang.reference}}</mat-label>
                <input matInput [value]="reference" readonly>
            </mat-form-field>
            <div class="attachMsg"
                *ngIf="numericPackage.mainExchangeDoc === null && emailAttach.length === 0 && canManageMail()">
                {{lang.attachItemToNumericPackage}}
                <i class="fas fa-arrow-up"></i>
            </div>
            <div style="overflow: auto;max-height: 300px;">
                <mat-list *ngIf="numericPackage.mainExchangeDoc !== null">
    
                    <h3 mat-subheader class="attachLabel">{{canManageMail() ? lang.mainDocNumericPackageToSend : lang.mainDocNumericPackage}}</h3>
    
                    <mat-list-item class="numericPackageAttach" *ngIf="numericPackage.mainExchangeDoc !== null">
                        <p mat-line class="numericPackageAttachItem">
                            <span
                                style="overflow: hidden;text-overflow: ellipsis;">{{numericPackage.mainExchangeDoc.label}}</span>
                            <span class="badge">{{numericPackage.mainExchangeDoc.typeLabel}}</span>
                            <span class="subInfo">.{{numericPackage.mainExchangeDoc.format}}</span>
    
                            <button mat-icon-button *ngIf="canManageMail()" color="warn" (click)="numericPackage.mainExchangeDoc=null">
    
                                <mat-icon class="fa fa-trash"></mat-icon>
                            </button>
                        </p>
                    </mat-list-item>
                </mat-list>
                <mat-divider *ngIf="emailAttach.length > 0"></mat-divider>
                <mat-list *ngIf="emailAttach.length > 0">
    
                    <h3 mat-subheader class="attachLabel">{{canManageMail() ? lang.attachmentsNumericPackageToSend : lang.attachmentsNumericPackage}}</h3>
    
                    <mat-list-item class="numericPackageAttach" *ngFor="let attach of emailAttach; let i=index">
                        <p mat-line class="numericPackageAttachItem">
                            <span style="overflow: hidden;text-overflow: ellipsis;"
                                [title]="attach.label">{{attach.label}}</span>
                            <span class="badge">{{attach.typeLabel}}</span>
                            <span class="subInfo">.{{attach.format}}</span>
    
                            <button mat-icon-button *ngIf="canManageMail()" color="warn" (click)="removeAttach(i)">
    
                                <mat-icon class="fa fa-trash"></mat-icon>
                            </button>
                        </p>
                    </mat-list-item>
                </mat-list>
            </div>
    
            <div class="models" *ngIf="canManageMail()">
    
                <plugin-select-search *ngIf="availableEmailModels.length > 0" [label]="lang.emailModel"
                    [placeholderLabel]="lang.emailModel" [datas]="availableEmailModels"
                    [formControlSelect]="templateEmailListForm" (afterSelected)="mergeEmailTemplate($event)">
                </plugin-select-search>
    
                <plugin-select-search #templateList *ngIf="availableSignEmailModels.length > 0"
                    [label]="lang.emailSignatures" [placeholderLabel]="lang.emailSignatures"
                    [datas]="availableSignEmailModels" [formControlSelect]="emailSignListForm"
                    (afterSelected)="mergeSignEmailTemplate($event)">
                </plugin-select-search>
    
            <mat-divider></mat-divider>
            <div class="row" style="margin: 0;padding-top: 10px;" *ngIf="!canManageMail()">
    
                <div class="col-md-9">
    
                    <label class="attachLabel">{{lang.actionsHistory}}</label>
    
                    <div class="messageExchangeHistory">
                        <div class="messageExchangeHistoryItem" *ngFor="let item of messageReview">
                            <div class="messageExchangeHistoryDate">
                                {{item.date | timeAgo : 'full'}}
                            </div>
                            <div>
                                {{item.content}}
                            </div>
                            
                        </div>
    
                        <div *ngIf="messageReview.length === 0" class="noAction">{{lang.noActionProcessed}}</div>
    
                <div class="col-md-3 text-center">
    
    Alex ORLUC's avatar
    Alex ORLUC committed
                    <button mat-button color="primary" style="width: 180px;white-space: initial;line-height: 20px;padding: 10px;" (click)="saveNumericPackageFile()">
    
                        <i class="fas fa-file-download" style="font-size: 40px;"></i><br/>
    
                        <span>{{lang.downloadNumericPackage}}</span>
    
    
            <div style="padding-top: 10px;">
                <mat-form-field appearance="outline">
                    <mat-label class="attachLabel">{{lang.note}}</mat-label>
                    <textarea matInput [placeholder]="lang.addNoteToNumericPackage" [(ngModel)]="numericPackage.content"
                        matTextareaAutosize style="padding:0" [readonly]="!canManageMail()"></textarea>
                </mat-form-field>
            </div>
        </mat-dialog-content>
        <span class="divider-modal"></span>
        <div mat-dialog-actions class="actions">
            <button mat-raised-button color="primary"
    
                *ngIf="canManageMail() && privilegeService.hasCurrentUserPrivilege('sendmail') && emailStatus !== 'ERROR'" (click)="onSubmit()"
    
                [disabled]="recipients.length === 0 || numericPackage.mainExchangeDoc === null || loading">{{lang.send}}</button>
            <button mat-raised-button color="warn" (click)="deleteEmail()"
    
                *ngIf="data.emailId && !loading && emailStatus === 'ERROR'"
    
                [disabled]="headerService.user.id !== emailCreatorId">{{lang.delete}}</button>
        </div>
    </div>