8 changed files with 239 additions and 112 deletions
@ -0,0 +1,7 @@ |
|||
import {ParamMap} from "@angular/router"; |
|||
import {MatPaginator} from "@angular/material/paginator"; |
|||
|
|||
export interface ISearchFilter { |
|||
createQuery(paginator:MatPaginator|undefined): {[param: string]: any}; |
|||
fromQuery(param: ParamMap,paginator:MatPaginator|undefined):void; |
|||
} |
@ -1,5 +1,20 @@ |
|||
import {SearchFilter} from "./SearchFilter"; |
|||
import {ParamMap} from "@angular/router"; |
|||
import {MatPaginator} from "@angular/material/paginator"; |
|||
|
|||
export class MessageSearchFilter extends SearchFilter { |
|||
message: string | null = null; |
|||
|
|||
override createQuery(paginator:MatPaginator|undefined): { [p: string]: any } { |
|||
let q:{[param: string]: any} = super.createQuery(paginator); |
|||
q["message"] = this.message; |
|||
return q; |
|||
} |
|||
|
|||
|
|||
override fromQuery(param: ParamMap,paginator:MatPaginator|undefined) { |
|||
try {if (param.get("message")) { // @ts-ignore
|
|||
this.message = param.get("message");}}catch (e) {} |
|||
super.fromQuery(param, paginator); |
|||
} |
|||
} |
|||
|
@ -1,7 +1,43 @@ |
|||
export class SearchFilter { |
|||
import {ISearchFilter} from "./ISearchFilter"; |
|||
import {ParamMap} from "@angular/router"; |
|||
import {MatPaginator} from "@angular/material/paginator"; |
|||
|
|||
export class SearchFilter implements ISearchFilter { |
|||
accounts: string[]|null = null; |
|||
begin: Date | null = null; |
|||
end: Date | null = null; |
|||
serverId : string | null = null; |
|||
updated: boolean = false; |
|||
|
|||
createQuery(paginator:MatPaginator|undefined):{[param: string]: any} { |
|||
let q: {[param: string]: any} = {}; |
|||
q["accounts"] = this.accounts?this.accounts.join(","):null; |
|||
q["begin"] = this.begin?this.begin.getTime():null; |
|||
q["end"] = this.end?this.end.getTime():null; |
|||
q["serverId"] = this.serverId; |
|||
q["page"] = paginator?paginator.pageIndex:null; |
|||
q["size"] = paginator?paginator.pageSize:null; |
|||
console.log(q); |
|||
return q; |
|||
} |
|||
|
|||
fromQuery(param: ParamMap, paginator:MatPaginator|undefined): void { |
|||
try {if (param.has("accounts")) { // @ts-ignore
|
|||
this.accounts = param.get("accounts")?.split(",");}} catch (e) {} |
|||
|
|||
try {if (param.has("begin")) {// @ts-ignore
|
|||
this.begin = new Date(param.get("begin")*1);}} catch (e) {} |
|||
|
|||
try {if (param.get("end")) { // @ts-ignore
|
|||
this.end = new Date(param.get("end")*1);}}catch (e) {} |
|||
|
|||
try {if (param.get("serverId")) { // @ts-ignore
|
|||
this.serverId = param.get("serverId");}}catch (e) {} |
|||
|
|||
try {if (param.get("page") && paginator) { // @ts-ignore
|
|||
paginator.pageIndex = param.get("page")*1;}}catch (e) {} |
|||
|
|||
try {if (param.get("size") && paginator) { // @ts-ignore
|
|||
paginator.pageSize = param.get("size")*1;}}catch (e) {} |
|||
} |
|||
} |
|||
|
Loading…
Reference in new issue