events: triggers -> rules

This commit is contained in:
Jens Langhammer
2021-01-15 16:23:27 +01:00
parent 0b41cb84f0
commit 192dbe05c4
19 changed files with 298 additions and 298 deletions

26
web/src/api/EventRules.ts Normal file
View File

@ -0,0 +1,26 @@
import { DefaultClient, QueryArguments, PBResponse } from "./Client";
import { Group } from "./Groups";
export class Rule {
pk: string;
name: string;
transports: string[];
severity: string;
group?: Group;
constructor() {
throw Error();
}
static get(pk: string): Promise<Rule> {
return DefaultClient.fetch<Rule>(["events", "rules", pk]);
}
static list(filter?: QueryArguments): Promise<PBResponse<Rule>> {
return DefaultClient.fetch<PBResponse<Rule>>(["events", "rules"], filter);
}
static adminUrl(rest: string): string {
return `/administration/events/rules/${rest}`;
}
}

View File

@ -1,26 +0,0 @@
import { DefaultClient, QueryArguments, PBResponse } from "./Client";
import { Group } from "./Groups";
export class Trigger {
pk: string;
name: string;
transports: string[];
severity: string;
group?: Group;
constructor() {
throw Error();
}
static get(pk: string): Promise<Trigger> {
return DefaultClient.fetch<Trigger>(["events", "triggers", pk]);
}
static list(filter?: QueryArguments): Promise<PBResponse<Trigger>> {
return DefaultClient.fetch<PBResponse<Trigger>>(["events", "triggers"], filter);
}
static adminUrl(rest: string): string {
return `/administration/events/triggers/${rest}`;
}
}

View File

@ -1,7 +1,7 @@
import { customElement, html, LitElement, TemplateResult } from "lit-element";
@customElement("ak-notification-trigger")
export class NotificationTrigger extends LitElement {
export class NotificationRule extends LitElement {
constructor() {
super();

View File

@ -14,7 +14,7 @@ export const SIDEBAR_ITEMS: SidebarItem[] = [
}),
new SidebarItem("Events").children(
new SidebarItem("Log", "/events/log"),
new SidebarItem("Notification Triggers", "/events/triggers"),
new SidebarItem("Notification Rules", "/events/rules"),
new SidebarItem("Notification Transports", "/events/transports"),
).when((): Promise<boolean> => {
return User.me().then(u => u.is_superuser);

View File

@ -7,20 +7,20 @@ import "../../elements/policies/BoundPoliciesList";
import "../../elements/buttons/ModalButton";
import "../../elements/buttons/SpinnerButton";
import { TableColumn } from "../../elements/table/Table";
import { Trigger } from "../../api/EventTriggers";
import { Rule } from "../../api/EventRules";
@customElement("ak-event-trigger-list")
export class TriggerListPage extends TablePage<Trigger> {
@customElement("ak-event-rule-list")
export class RuleListPage extends TablePage<Rule> {
expandable = true;
searchEnabled(): boolean {
return true;
}
pageTitle(): string {
return gettext("Notification Triggers");
return gettext("Notification Rules");
}
pageDescription(): string {
return gettext("Send notifications on whenever a specific Event is created and matched by policies.");
return gettext("Send notifications whenever a specific Event is created and matched by policies.");
}
pageIcon(): string {
return gettext("pf-icon pf-icon-attention-bell");
@ -29,8 +29,8 @@ export class TriggerListPage extends TablePage<Trigger> {
@property()
order = "name";
apiEndpoint(page: number): Promise<PBResponse<Trigger>> {
return Trigger.list({
apiEndpoint(page: number): Promise<PBResponse<Rule>> {
return Rule.list({
ordering: this.order,
page: page,
search: this.search || "",
@ -46,19 +46,19 @@ export class TriggerListPage extends TablePage<Trigger> {
];
}
row(item: Trigger): TemplateResult[] {
row(item: Rule): TemplateResult[] {
return [
html`${item.name}`,
html`${item.severity}`,
html`${item.group?.name || gettext("None (trigger disabled)")}`,
html`${item.group?.name || gettext("None (rule disabled)")}`,
html`
<ak-modal-button href="${Trigger.adminUrl(`${item.pk}/update/`)}">
<ak-modal-button href="${Rule.adminUrl(`${item.pk}/update/`)}">
<ak-spinner-button slot="trigger" class="pf-m-secondary">
${gettext("Edit")}
</ak-spinner-button>
<div slot="modal"></div>
</ak-modal-button>&nbsp;
<ak-modal-button href="${Trigger.adminUrl(`${item.pk}/delete/`)}">
<ak-modal-button href="${Rule.adminUrl(`${item.pk}/delete/`)}">
<ak-spinner-button slot="trigger" class="pf-m-danger">
${gettext("Delete")}
</ak-spinner-button>
@ -70,7 +70,7 @@ export class TriggerListPage extends TablePage<Trigger> {
renderToolbar(): TemplateResult {
return html`
<ak-modal-button href=${Trigger.adminUrl("create/")}>
<ak-modal-button href=${Rule.adminUrl("create/")}>
<ak-spinner-button slot="trigger" class="pf-m-primary">
${gettext("Create")}
</ak-spinner-button>
@ -80,7 +80,7 @@ export class TriggerListPage extends TablePage<Trigger> {
`;
}
renderExpanded(item: Trigger): TemplateResult {
renderExpanded(item: Rule): TemplateResult {
return html`
<td role="cell" colspan="4">
<div class="pf-c-table__expandable-row-content">

View File

@ -9,7 +9,7 @@ import "./pages/sources/SourceViewPage";
import "./pages/flows/FlowViewPage";
import "./pages/events/EventListPage";
import "./pages/events/TransportListPage";
import "./pages/events/TriggerListPage";
import "./pages/events/RuleListPage";
export const ROUTES: Route[] = [
// Prevent infinite Shell loops
@ -29,5 +29,5 @@ export const ROUTES: Route[] = [
}),
new Route(new RegExp("^/events/log$"), html`<ak-event-list></ak-event-list>`),
new Route(new RegExp("^/events/transports$"), html`<ak-event-transport-list></ak-event-transport-list>`),
new Route(new RegExp("^/events/triggers$"), html`<ak-event-trigger-list></ak-event-trigger-list>`),
new Route(new RegExp("^/events/rules$"), html`<ak-event-rule-list></ak-event-rule-list>`),
];