Skip to content
Snippets Groups Projects
search.component.html 8.58 KiB
Newer Older
  • Learn to ignore specific revisions
  • <ion-header [translucent]="true">
        <ion-toolbar color="primary">
            <ion-buttons slot="start">
    
                <ion-menu-button menu="left-menu"></ion-menu-button>
    
            </ion-buttons>
            <ion-title class="ion-text-center">{{'lang.search' | translate}}</ion-title>
    
            <ion-label slot="end" color="secondary">{{count}} {{'lang.results' | translate}}</ion-label>
    
            <ion-buttons slot="end">
                <ion-menu-button menu="right-menu">
                    <ion-icon name="funnel-outline"></ion-icon>
                </ion-menu-button>
            </ion-buttons>
    
        </ion-toolbar>
    </ion-header>
    <ion-content>
    
        <ion-list class="no-result" *ngIf="ressources.length === 0">
            <ion-item lines="none">
    
                <ion-label class="no-result-label" color="medium">{{'lang.noResult' | translate}}</ion-label>
    
            </ion-item>
        </ion-list>
        <ion-list *ngIf="ressources.length > 0">
            <ion-virtual-scroll [items]="ressources" approxItemHeight="165px">
    
                <ion-item *virtualItem="let element">
                    <ion-label>
                        <ion-toolbar color="light">
                            <ion-title size="small">
    
                                <p
                                    style="display: flex;align-items: center;white-space: pre;overflow-x: auto;overflow-y: hidden;">
    
                                    <ng-container *ngFor="let itemW of element.workflow;let i=index;">
                                        <ion-icon *ngIf="i>0" name="chevron-forward-outline"></ion-icon>
    
                                        <span class="workflow-item success" [class.success]="itemW.processDate!==null && itemW.status!=='STOP'"
    
                                            [class.typist-interrupt]="itemW.status==='REF'"
    
                                            [class.interrupt]="(itemW.processDate===null && itemW.status === 'END') || itemW.status === 'STOP'"
    
                                            [class.current]="itemW.current"
    
                                            [class.no-visa]="itemW.processDate===null && itemW.status===null && !itemW.current">{{itemW.userDisplay}}&nbsp;
    
                                            <ion-icon *ngIf="itemW.processDate!==null && itemW.status!=='REF' && itemW.status!=='STOP'"
    
                                                name="thumbs-up-outline"></ion-icon>
                                            <ion-icon *ngIf="itemW.processDate!==null && itemW.status==='REF'"
                                                name="thumbs-down-outline"></ion-icon>
                                            <ion-badge
    
                                                *ngIf="itemW.processDate===null && (itemW.status===null || ['END','STOP'].indexOf(itemW.status) > -1)"
    
                                                color="medium">{{'lang.' + itemW.mode + 'User' | translate}}</ion-badge>
    
                                        </span>
                                    </ng-container>
    
                        <ion-item-sliding #slidingItem (ionDrag)="onSliding($event, element.id)">
    
                                <ion-icon *ngIf="element.state == 'PROG'" color="primary" slot="start"
                                    name="hourglass-outline">
    
                                </ion-icon>
    
                                <ion-icon *ngIf="element.state == 'STOP'" color="danger" slot="start"
    
                                    name="hand-left-outline">
    
                                </ion-icon>
    
                                <ion-icon *ngIf="element.state == 'VAL'" color="success" slot="start"
    
                                    name="thumbs-up-outline">
                                </ion-icon>
    
                                <ion-icon *ngIf="element.state == 'REF'" color="danger" slot="start"
    
                                    name="thumbs-down-outline">
                                </ion-icon>
    
                                <ion-label (click)="goTo(element.id)" [title]="'lang.accessDocument' | translate" style="cursor: pointer;">
    
                                    <p>{{element.reference}}</p>
                                    <h2>{{element.title}}</h2>
    
                                    <p *ngIf="element.reason.length > 0" class="primary">
                                        <ng-container *ngFor="let note of element.reason">
                                            <ion-icon name="chatbox-outline"></ion-icon> {{note}}
                                        </ng-container>
    
                                    </p>
    
                                </ion-label>
                                <ion-buttons slot="end">
    
                                    <ion-button *ngIf="openedLine===element.id" slot="icon-only" fill="clear" shape="round"
    
                                        (click)="$event.stopPropagation();toggleSlide(slidingItem, element.id)">
    
                                        <ion-icon color="medium" slot="icon-only" name="arrow-forward-outline"></ion-icon>
                                    </ion-button>
                                    <ion-button *ngIf="openedLine!==element.id" slot="icon-only" fill="clear" shape="round"
    
                                        (click)="$event.stopPropagation();toggleSlide(slidingItem, element.id)">
    
                                        <ion-icon color="medium" slot="icon-only" name="arrow-back-outline"></ion-icon>
                                    </ion-button>
                                </ion-buttons>
                            </ion-item>
                            <ion-item-options>
    
                                <ion-item-option *ngIf="element.state !== 'PROG'" color="primary" (click)="openPromptProof(element)">
    
                                    <ion-icon slot="bottom" name="ribbon-sharp"></ion-icon>
    
                                <ion-item-option color="primary" (click)="openActions(element)">
                                    <ion-icon slot="bottom" name="settings-sharp"></ion-icon>
                                    {{'lang.actions' | translate}}
    
                                </ion-item-option>
                            </ion-item-options>
                        </ion-item-sliding>
    
                    </ion-label>
                </ion-item>
            </ion-virtual-scroll>
        </ion-list>
    
        <ion-infinite-scroll threshold="100px" (ionInfinite)="loadData($event)">
    
            <ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data...">
            </ion-infinite-scroll-content>
        </ion-infinite-scroll>
    
    </ion-content>
    <ng-template #rightContent>
        <ion-header [translucent]="true">
            <ion-toolbar color="primary">
                <ion-buttons slot="start">
                    <ion-back-button></ion-back-button>
                </ion-buttons>
                <ion-title class="ion-text-center">Filtre(s)</ion-title>
            </ion-toolbar>
        </ion-header>
        <ion-content>
    
            <ion-list *ngFor="let filter of filters">
                <ng-container *ngIf="filter.type === 'text'">
                    <ion-item>
                        <ion-label color="secondary" position="floating">{{'lang.' + filter.id + 'Search' | translate}}
                        </ion-label>
                        <ion-input [(ngModel)]="filter.val"></ion-input>
                    </ion-item>
                </ng-container>
                <ng-container *ngIf="filter.type === 'checkbox'">
                    <ion-list-header>
                        <ion-label color="secondary">{{'lang.' + filter.id + 'Search' | translate}}</ion-label>
                    </ion-list-header>
                    <ion-item *ngFor="let val of filter.values;let i=index;">
                        <ion-label>{{val.label | translate}}</ion-label>
                        <ion-checkbox (ionChange)="toggleItem(filter, val, $event.detail.checked)"
                            [checked]="filter.val.indexOf(val.id) > -1" slot="end"></ion-checkbox>
                    </ion-item>
                </ng-container>
                <ng-container *ngIf="filter.type === 'autocompleteUsers'">
                    <ion-list-header>
                        <ion-label color="secondary">{{'lang.' + filter.id + 'Search' | translate}}</ion-label>
                    </ion-list-header>
                    <plugin-autocomplete [currentItems]="filter.val"></plugin-autocomplete>
                </ng-container>
    
            </ion-list>
    
        <ion-footer class="ion-no-border">
            <div class="ion-text-center" style="background: white;">
                <ion-button color="primary" shape="round" size="large" fill="outline" (click)="onSubmit()">
                    <ion-label style="font-size: 13px;">{{'lang.search' | translate}}</ion-label>
                </ion-button>
            </div>
        </ion-footer>