avaaren

zalupa

Apr 29th, 2020
355
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';
  2. import { DataHandlerService } from 'src/app/services/data-handler.service';
  3. import { Task } from 'src/app/models/Task';
  4. import { MatTableDataSource } from '@angular/material/table';
  5. import { MatSort } from '@angular/material/sort';
  6. import { MatPaginator } from '@angular/material/paginator';
  7.  
  8. @Component({
  9.   selector: 'app-tasks',
  10.   templateUrl: './tasks.component.html',
  11.   styleUrls: ['./tasks.component.css']
  12. })
  13. export class TasksComponent implements OnInit {
  14.  
  15.   tasks: Task[];
  16.  
  17.   columnsToDisplay: string[] = ['color', 'position', 'name', 'category', 'priority', 'date'];
  18.   dataSource: MatTableDataSource<Task>;
  19.  
  20.   @ViewChild(MatSort) sort: MatSort;
  21.   @ViewChild(MatPaginator) paginator:MatPaginator;
  22.  
  23.   constructor(private dataHandler: DataHandlerService) { }
  24.  
  25.   ngOnInit() {
  26.     this.dataHandler.taskSubject.subscribe(tasks => this.tasks = tasks);
  27.  
  28.     this.dataSource = new MatTableDataSource();
  29.  
  30.     this.refreshTable();
  31.   }
  32.  
  33.   ngAfterViewInit(): void {
  34.     this.dataSource.sort = this.sort;
  35.     this.dataSource.paginator = this.paginator;
  36.   }
  37.  
  38.   getPriorityColor(task: Task) {
  39.     if (task.priority && task.priority.color ){
  40.       return task.priority.color
  41.     }
  42.     else {
  43.       return '#fff'
  44.     }
  45.   }
  46.  
  47.   toggleTaskCompleted(task: Task) {
  48.     task.is_completed = !task.is_completed;
  49.   }
  50.  
  51.   refreshTable() {
  52.     this.dataSource.data = this.tasks;
  53. //ВОТ ЭТОТ ПИДОРАС!!!!!
  54.     this.dataSource.sortingDataAccessor = (task, property) => {
  55.  
  56.       switch (property) {
  57.  
  58.         case 'name':{
  59.           return task.title;
  60.         }
  61.  
  62.         case 'category': {
  63.           return task.category ? task.category.name : null;
  64.         }
  65.  
  66.         case 'date': {
  67.  
  68.           console.log(task.date);
  69.           return task.date ? task.date.toISOString() : null;
  70.         }
  71.  
  72.         case 'priority': {
  73.           return task.priority ? task.priority.name : null;
  74.         }
  75.  
  76.       }
  77.  
  78.     };
  79.  
  80.   }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment