import { Component, Inject, OnInit } from '@angular/core'; import { Observable } from 'rxjs/Rx'; import { Logger } from '@nsalaun/ng-logger'; import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { ToastrService } from 'ngx-toastr'; import { ScheduleService } from './schedule.service'; import { Schedule } from './schedule'; var scheduleFormTmpl = require('./schedule.form.tmpl.html'); @Component({ selector: 'schedule-list', template: `
Date de début Date de fin Jour Fréq. Libellé de l'opération Montant Catégorie Actions
` }) export class ScheduleListComponent implements OnInit { accountId: number; schedules = []; constructor( private toastrService: ToastrService, private scheduleService: ScheduleService, private logger: Logger, @Inject('$modal') private $modal, @Inject('accountIdService') private accountIdService ) {} $onInit() { this.ngOnInit(); } ngOnInit() { this.logger.log("ngOnInit"); this.accountId = this.accountIdService.get(); // Load operations on controller initialization. this.load(); } /* * Add a new operation at the beginning of th array. */ add() { var schedule = new Schedule(); schedule.account_id = this.accountId; var title = "New schedule"; this.$modal({ templateUrl: scheduleFormTmpl, controller: function($scope, title, schedule, $save) { $scope.title = title; $scope.operation = schedule; $scope.$save = () => { $scope.$hide(); $save($scope.operation); }; }, locals: { title: title, schedule: schedule, $save: (schedule) => { this.save(schedule); } } }); }; load() { this.logger.log("Loading schedules for accountId", this.accountId); if(!this.accountId) { return; } this.scheduleService.query(this.accountId) .subscribe((schedules: Schedule[]) => { this.logger.log("Schedules loaded.", schedules); this.schedules = schedules; }, (reason) => { this.logger.log("Got error", reason); } ); }; save(schedule: Schedule) { return this.scheduleService.update(schedule).subscribe((schedule: Schedule) => { this.toastrService.success('Schedule #' + schedule.id + ' saved.'); this.load(); }, (result) => { this.toastrService.error( 'Error while saving schedule: ' + result.message ); }); }; };