61 lines
1.9 KiB
TypeScript
61 lines
1.9 KiB
TypeScript
import {Injectable} from '@angular/core';
|
|
import {HttpClient} from '@angular/common/http';
|
|
|
|
import {environment} from '@environments/environment';
|
|
import {Observable} from "rxjs";
|
|
import {UtilityService} from "@app/_services/utility.service";
|
|
import {Router} from "@angular/router";
|
|
|
|
@Injectable({providedIn: 'root'})
|
|
export class FormsService {
|
|
constructor(private http: HttpClient, private utility: UtilityService, private router: Router) {
|
|
}
|
|
|
|
get(target: string, type: string, id?: string, params?: {}): Observable<any> {
|
|
let url = `${environment.apiUrl}/api/forms/${target}/${type}` + ((id && (id !== 'null')) ? `/${id}` : '');
|
|
return this.http.get(url, {params: params});
|
|
}
|
|
|
|
save(target: string, type: string, id?: string, data?: any): Observable<any> {
|
|
let url = `${environment.apiUrl}/api/forms/${target}/${type}` + ((id && (id !== 'null')) ? `/${id}` : '');
|
|
return this.http.post(url, this.utility.normalizeData(data));
|
|
}
|
|
|
|
|
|
|
|
createModel(type: string, params?: any, list?: string) {
|
|
this.slider('model', type, null, params, list);
|
|
}
|
|
|
|
editModel(type: string, id: string, params?: any, list?: string) {
|
|
this.slider('model', type, id, params, list);
|
|
}
|
|
|
|
createObject(type: string, params?: any, list?: string) {
|
|
this.slider('object', type, null, params, list);
|
|
}
|
|
|
|
editObject(id: string, params?: any, list?: string) {
|
|
this.slider('object', null, id, params, list);
|
|
}
|
|
|
|
|
|
slider(target: string, type: string, id?: string, params?: any, list?: string) {
|
|
let commands = ['form', target, type || null, id || null];
|
|
if (list) commands.push(list);
|
|
this.router.navigate([{outlets: {slider: commands}}], {queryParams: this.makeQueryParams(params), skipLocationChange: true}).then();
|
|
}
|
|
|
|
makeQueryParams(params) {
|
|
let result: any = {};
|
|
if (params) {
|
|
for (let prop in params) {
|
|
if (params.hasOwnProperty(prop)) result[prop] = JSON.stringify(params[prop]);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
}
|