blob: f091ba1243e9037acaa795434501814f6250956b [file] [log] [blame]
/**
******************************************************************************
* Copyright © 2017-2018 PTA GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
*
* http://www.eclipse.org/legal/epl-v10.html
*
******************************************************************************
*/
import { Component, AfterViewInit, ViewChildren, QueryList, OnInit, EventEmitter, Optional, HostBinding } from '@angular/core';
import { Router } from '@angular/router';
import { SessionContext } from '../../common/session-context';
import { EntryComponent } from '../../dialogs/entry/entry.component';
import { AbstractListComponent } from '../../lists/abstract-list/abstract-list.component';
import { MdDialog, MdDialogConfig } from '@angular/material';
import { MdDialogRef } from '@angular/material';
import { User } from '../../model/user';
import { GlobalSearchFilter } from '../../model/global-search-filter';
import { StatusSelectionObject } from '../../model/status-selection-object';
import { Notification } from '../../model/notification';
import { Status } from '../../model/status';
import { Branch } from '../../model/branch';
import { GridTerritory } from '../../model/gridterritory';
import { StatusEn, BannerMessageStatusEn } from '../../common/enums';
import { BannerMessage } from '../../common/banner-message';
import { OverviewComponent } from '../../pages/overview/overview.component';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/throw';
import { SearchResultService } from '../../services/search-result.service';
import {  slideInOpacity } from '../../common/router.animations';
@Component({
selector: 'app-search',
templateUrl: './search.component.html',
styleUrls: ['./search.component.css'],
animations: slideInOpacity()]
})
export class SearchComponent implements OnInit {
@HostBinding('@slideInOpacity') get slideInOpacity(){
return '';
}
private dialogConfig = new MdDialogConfig();
private bannerMessageStatus = BannerMessageStatusEn;
public user: User = null;
public bannerMessage: BannerMessage = new BannerMessage();
gridTerritories: GridTerritory[];
branches: Branch[];
statuses: Status[];
public globalSearchFilter: GlobalSearchFilter;
public currentSearchFilter: GlobalSearchFilter = new GlobalSearchFilter();
constructor(
private router: Router,
public dialog: MdDialog,
public sessionContext: SessionContext,
private searchResultService: SearchResultService
) { }
ngOnInit() {
this.dialogConfig.disableClose = true;
this.user = this.sessionContext.getCurrUser();
this.gridTerritories = this.sessionContext.getMasterGridTerritories();
this.branches = this.sessionContext.getBranches();
this.statuses = this.sessionContext.getStatuses();
this.currentSearchFilter = this.sessionContext.getGlobalSearchFilter();
}
public goToOverview() {
this.router.navigate(['/overview']);
}
openDialogLookUpEntry(notification: Notification) {
const dialogRef = this.dialog.open(EntryComponent, this.dialogConfig);
dialogRef.componentInstance.user = this.user;
dialogRef.componentInstance.setNotification(notification);
dialogRef.componentInstance.isReadOnlyDialog = true;
dialogRef.afterClosed().subscribe(result => {
});
}
openDialogEditEntry(notification: Notification) {
const dialogRef = this.dialog.open(EntryComponent, this.dialogConfig);
dialogRef.componentInstance.user = this.user;
dialogRef.componentInstance.isInstructionDialog = notification.adminFlag;
dialogRef.componentInstance.setNotification(notification);
dialogRef.componentInstance.isEditDialog = true;
dialogRef.afterClosed().subscribe(result => {
});
}
search() {
this.globalSearchFilter = Object.assign({}, this.currentSearchFilter);
this.sessionContext.setGlobalSearchFilter(this.globalSearchFilter);
}
deleteSearch(currentSearchFilter) {
this.sessionContext.setInitGlobalSearchFilterValues();
this.currentSearchFilter = this.sessionContext.getGlobalSearchFilter();
this.globalSearchFilter = this.sessionContext.getGlobalSearchFilter();
}
private setError(errorMessage: string) {
this.bannerMessage.isActive = true;
this.bannerMessage.status = BannerMessageStatusEn.error;
this.bannerMessage.text = 'Es ist ein Fehler aufgetreten. Bitte kontaktieren Sie den Administrator';
console.log(errorMessage);
}
}