fix
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
// angular
|
||||
import { Component } from '@angular/core';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
|
||||
// libs
|
||||
import Swal from 'sweetalert2';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
|
||||
// app
|
||||
import { ApiRoutes } from '../../../api-routes';
|
||||
import { SettingsMotionEditComponent } from './edit.motion.component';
|
||||
import { MotionService } from '../../../services/motion.service';
|
||||
import { MotionModel } from '../../../model/motion.model';
|
||||
import { MotionCategoryModel } from '../../../model/motion.category.model';
|
||||
|
||||
@Component({
|
||||
templateUrl: './motion.component.html',
|
||||
styleUrls: ['./motion.component.scss'],
|
||||
})
|
||||
export class SettingsMotionComponent {
|
||||
public motions?: MotionModel[];
|
||||
public categories?: MotionCategoryModel[];
|
||||
public selectedCategory?: MotionCategoryModel;
|
||||
|
||||
constructor(
|
||||
private dialogModel: MatDialog,
|
||||
private httpClient: HttpClient,
|
||||
private motionService: MotionService,
|
||||
) {
|
||||
}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.load();
|
||||
}
|
||||
|
||||
private load(categoryId?: string) {
|
||||
this.motionService.getCategories()
|
||||
.subscribe(data => {
|
||||
this.categories = data;
|
||||
var selected = data[0];
|
||||
if (categoryId) {
|
||||
var categories = this.categories.filter(x => x.id === categoryId);
|
||||
selected = categories.length === 0
|
||||
? selected
|
||||
: categories[0];
|
||||
}
|
||||
|
||||
this.selectCategory(selected);
|
||||
});
|
||||
}
|
||||
|
||||
public selectCategory(category: MotionCategoryModel) {
|
||||
this.selectedCategory = category;
|
||||
this.motionService.getMotions(category.id)
|
||||
.subscribe(data => {
|
||||
this.motions = data;
|
||||
});
|
||||
}
|
||||
|
||||
public edit(motion: MotionModel) {
|
||||
this.dialogModel.open(SettingsMotionEditComponent, {
|
||||
width: '640px',
|
||||
disableClose: true,
|
||||
data: motion,
|
||||
}).afterClosed().subscribe(x => {
|
||||
if (x && x.refresh) {
|
||||
console.log(x.motion.categoryId);
|
||||
this.load(x.motion.categoryId);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public remove(category: MotionModel) {
|
||||
Swal.fire({
|
||||
title: 'Remove motion ' + category.name,
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Delete',
|
||||
showLoaderOnConfirm: true,
|
||||
preConfirm: (name) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.httpClient.delete(ApiRoutes.SettingsMotionCategory.replace(':id', category.id!))
|
||||
.subscribe(data => {
|
||||
resolve(data);
|
||||
}, error => {
|
||||
Swal.showValidationMessage(error.detail);
|
||||
reject();
|
||||
});
|
||||
|
||||
}).catch(x => {
|
||||
return false;
|
||||
});
|
||||
},
|
||||
allowOutsideClick: () => !Swal.isLoading(),
|
||||
}).then((result) => {
|
||||
this.load();
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user