// import { Component, ViewChild, OnInit, AfterViewInit } from "@angular/core"; // //import { MatPaginator, MatSort, MatSnackBar } from "@angular/material"; // import { Router, Params, ActivatedRoute } from "@angular/router"; // import { Observable } from "rxjs/Observable"; // @Component({ // selector: 'app-dataset-listing-component', // templateUrl: 'dataset-listing.component.html', // styleUrls: ['./dataset-listing.component.scss'], // providers: [DatasetService, DataManagementPlanService] // }) // export class DatasetListingComponent implements OnInit { // @ViewChild(MatPaginator) _paginator: MatPaginator; // @ViewChild(MatSort) sort: MatSort; // @ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent; // dataSource: DatasetDataSource | null; // displayedColumns: String[] = ['label', 'dmp', 'profile', 'dataRepositories', 'registries', 'services', 'description', 'created', 'actions']; // pageEvent: PageEvent; // titlePrefix: String; // dmpId: String; // statuses = [ // { value: '0', viewValue: 'Active' }, // { value: '1', viewValue: 'Inactive' } // ]; // constructor( // private datasetService: DatasetService, // private router: Router, // private languageService: TranslateService, // public snackBar: MatSnackBar, // public route: ActivatedRoute, // public dataManagementPlanService: DataManagementPlanService // ) { // } // ngOnInit() { // this.route.params.subscribe((params: Params) => { // this.dmpId = params['dmpId']; // if(this.dmpId != null) this.setDmpTitle(this.dmpId); // this.criteria.setCriteria(this.getDefaultCriteria(this.dmpId)); // this.refresh(); // this.criteria.setRefreshCallback(() => this.refresh()); // }); // } // setDmpTitle(dmpId: String) { // this.dataManagementPlanService.getSingle(dmpId).map(data => data as DataManagementPlanModel) // .subscribe(data => { // this.titlePrefix = data.label; // }); // } // refresh() { // this.dataSource = new DatasetDataSource(this.datasetService, this._paginator, this.sort, this.languageService, this.snackBar, this.criteria); // } // rowClick(rowId: String) { // this.router.navigate(['/datasets/edit/' + rowId]); // } // getDefaultCriteria(dmpId: String): DatasetCriteria { // const defaultCriteria = new DatasetCriteria(); // if (dmpId != null) { // defaultCriteria.dmpIds.push(dmpId); // } // return defaultCriteria; // } // makeItPublic(id:String){debugger; // this.datasetService.makeDatasetPublic(id).subscribe(); // } // } // export class DatasetDataSource extends DataSource { // totalCount = 0; // isLoadingResults = false; // constructor( // private _service: DatasetService, // private _paginator: MatPaginator, // private _sort: MatSort, // private _languageService: TranslateService, // private _snackBar: MatSnackBar, // private _criteria: DatasetCriteriaComponent // ) { // super(); // } // connect(): Observable { // const displayDataChanges = [ // this._paginator.page // //this._sort.matSortChange // ]; // return Observable.merge(...displayDataChanges) // .startWith(null) // .switchMap(() => { // setTimeout(() => { // this.isLoadingResults = true; // }); // const startIndex = this._paginator.pageIndex * this._paginator.pageSize; // const request = new DataTableRequest(startIndex, this._paginator.pageSize); // request.criteria = this._criteria.criteria; // return this._service.getPaged(request); // }) // /*.catch((error: any) => { // this._snackBar.openFromComponent(SnackBarNotificationComponent, { // data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService }, // duration: 3000, // extraClasses: ['snackbar-warning'] // }); // //this._criteria.criteria.onCallbackError(error); // return Observable.of(null); // })*/ // .map(result => { // setTimeout(() => { // this.isLoadingResults = false; // }); // return result; // }) // .map(result => { // if (!result) { return []; } // if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; } // return result.data; // }); // } // disconnect() { // // No-op // } // }