Merge branch 'master' into ldap-groupOfNames
This commit is contained in:
122
web/package-lock.json
generated
122
web/package-lock.json
generated
@ -144,27 +144,27 @@
|
||||
}
|
||||
},
|
||||
"@sentry/browser": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.0.4.tgz",
|
||||
"integrity": "sha512-DrlH53IPNZmW6XWT0Za7vGtIyKpm45An662xvXavI8LQQH0qhPU9mb7NcvecwDfs6jXEV2w5Y8rKjuu/J4QxAA==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-6.1.0.tgz",
|
||||
"integrity": "sha512-t3y2TLXDWgvfknyH8eKj/9mghJfSEqItFyp74zPu1Src6kOPjkd4Sa7o4+bdkNgA8dIIOrDAhRUbB2sq4sWMCA==",
|
||||
"requires": {
|
||||
"@sentry/core": "6.0.4",
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/utils": "6.0.4",
|
||||
"@sentry/core": "6.1.0",
|
||||
"@sentry/types": "6.1.0",
|
||||
"@sentry/utils": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/types": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.0.4.tgz",
|
||||
"integrity": "sha512-VqmnhJPpPmsu4gMzSZw8UHgYlP1QSikMZ5X6E3q6zwmbWu+2oniQHD6xGB6PXv6uTo5zg2NseQEiWnEjJRUYWw=="
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.1.0.tgz",
|
||||
"integrity": "sha512-kIaN52Fw5K+2mKRaHE2YluJ+F/qMGSUzZXIFDNdC6OUMXQ4TM8gZTrITXs8CLDm7cK8iCqFCtzKOjKK6KyOKAg=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.0.4.tgz",
|
||||
"integrity": "sha512-UOAz5p5IIntmIcmX04Cjk7l7+EwnuBn2S/rhNN92I1vDCaL010OmUZOHGHJExoXBE75zVh/LDssAPQTKXo0F+g==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.1.0.tgz",
|
||||
"integrity": "sha512-6JAplzUOS6bEwfX0PDRZBbYRvn9EN22kZfcL0qGHtM9L0QQ5ybjbbVwOpbXgRkiZx++dQbzLFtelxnDhsbFG+Q==",
|
||||
"requires": {
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/types": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
@ -176,48 +176,48 @@
|
||||
}
|
||||
},
|
||||
"@sentry/core": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.0.4.tgz",
|
||||
"integrity": "sha512-5+Xnk3jb0nkKYvgBV/kKWUqrNsNeM38r98ZRqfHrl69WoSrv+ynTsj8gn0tZO+VvhxUDRLOYvDha+QZgkYZt/w==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-6.1.0.tgz",
|
||||
"integrity": "sha512-57mXkp3NoyxRycXrL+Ec6bYS6UYJZp9tYX0lUp5Ry2M0FxDZ3Q4drkjr8MIQOhBaQXP2ukSX4QTVLGMPm60zMw==",
|
||||
"requires": {
|
||||
"@sentry/hub": "6.0.4",
|
||||
"@sentry/minimal": "6.0.4",
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/utils": "6.0.4",
|
||||
"@sentry/hub": "6.1.0",
|
||||
"@sentry/minimal": "6.1.0",
|
||||
"@sentry/types": "6.1.0",
|
||||
"@sentry/utils": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sentry/hub": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.0.4.tgz",
|
||||
"integrity": "sha512-gutuxH8M3CdElSbwqNq9G29MiNuGsPESB22w4k4wx+pc632bi6w0v53+BLjGO6wh2EMfHVWptgAYmojEk5yKQg==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.1.0.tgz",
|
||||
"integrity": "sha512-JnBSCgNg3VHiMojUl5tCHU8iWPVuE+qqENIzG9A722oJms1kKWBvWl+yQzhWBNdgk5qeAY3F5UzKWJZkbJ6xow==",
|
||||
"requires": {
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/utils": "6.0.4",
|
||||
"@sentry/types": "6.1.0",
|
||||
"@sentry/utils": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/minimal": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.0.4.tgz",
|
||||
"integrity": "sha512-COL0tjznrCaatOPH2eGgT1Y9vUUKJw+W0srCn5V1dHgRu3t00rGFXrcyOXQmHfEWmBaagt9lXEJCFaN7yMucVQ==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.1.0.tgz",
|
||||
"integrity": "sha512-g6sfNKenL7wnsr/tibp8nFiMv/XRH0s0Pt4p151npmNI+SmjuUz3GGYEXk8ChCyaKldYKilkNOFdVXJxUf5gZw==",
|
||||
"requires": {
|
||||
"@sentry/hub": "6.0.4",
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/hub": "6.1.0",
|
||||
"@sentry/types": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.0.4.tgz",
|
||||
"integrity": "sha512-VqmnhJPpPmsu4gMzSZw8UHgYlP1QSikMZ5X6E3q6zwmbWu+2oniQHD6xGB6PXv6uTo5zg2NseQEiWnEjJRUYWw=="
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.1.0.tgz",
|
||||
"integrity": "sha512-kIaN52Fw5K+2mKRaHE2YluJ+F/qMGSUzZXIFDNdC6OUMXQ4TM8gZTrITXs8CLDm7cK8iCqFCtzKOjKK6KyOKAg=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.0.4.tgz",
|
||||
"integrity": "sha512-UOAz5p5IIntmIcmX04Cjk7l7+EwnuBn2S/rhNN92I1vDCaL010OmUZOHGHJExoXBE75zVh/LDssAPQTKXo0F+g==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.1.0.tgz",
|
||||
"integrity": "sha512-6JAplzUOS6bEwfX0PDRZBbYRvn9EN22kZfcL0qGHtM9L0QQ5ybjbbVwOpbXgRkiZx++dQbzLFtelxnDhsbFG+Q==",
|
||||
"requires": {
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/types": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
@ -229,12 +229,12 @@
|
||||
}
|
||||
},
|
||||
"@sentry/hub": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.0.4.tgz",
|
||||
"integrity": "sha512-gutuxH8M3CdElSbwqNq9G29MiNuGsPESB22w4k4wx+pc632bi6w0v53+BLjGO6wh2EMfHVWptgAYmojEk5yKQg==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-6.1.0.tgz",
|
||||
"integrity": "sha512-JnBSCgNg3VHiMojUl5tCHU8iWPVuE+qqENIzG9A722oJms1kKWBvWl+yQzhWBNdgk5qeAY3F5UzKWJZkbJ6xow==",
|
||||
"requires": {
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/utils": "6.0.4",
|
||||
"@sentry/types": "6.1.0",
|
||||
"@sentry/utils": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -246,12 +246,12 @@
|
||||
}
|
||||
},
|
||||
"@sentry/minimal": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.0.4.tgz",
|
||||
"integrity": "sha512-COL0tjznrCaatOPH2eGgT1Y9vUUKJw+W0srCn5V1dHgRu3t00rGFXrcyOXQmHfEWmBaagt9lXEJCFaN7yMucVQ==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/minimal/-/minimal-6.1.0.tgz",
|
||||
"integrity": "sha512-g6sfNKenL7wnsr/tibp8nFiMv/XRH0s0Pt4p151npmNI+SmjuUz3GGYEXk8ChCyaKldYKilkNOFdVXJxUf5gZw==",
|
||||
"requires": {
|
||||
"@sentry/hub": "6.0.4",
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/hub": "6.1.0",
|
||||
"@sentry/types": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -263,14 +263,14 @@
|
||||
}
|
||||
},
|
||||
"@sentry/tracing": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.0.4.tgz",
|
||||
"integrity": "sha512-/da81kbkpiA17kAVjW8ZdpASwgsdYUXZg3jdOfbV07HK/6aFkfOF8/sHKMjVG2Iy4oaRel/F7l6/wf+XlKbBMw==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-6.1.0.tgz",
|
||||
"integrity": "sha512-s6a4Ra3hHn4awiNz4fOEK6TCV2w2iLcxdppijcYEB7S/1rJpmqZgHWDicqufbOmVMOLmyKLEQ7w+pZq3TR3WgQ==",
|
||||
"requires": {
|
||||
"@sentry/hub": "6.0.4",
|
||||
"@sentry/minimal": "6.0.4",
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/utils": "6.0.4",
|
||||
"@sentry/hub": "6.1.0",
|
||||
"@sentry/minimal": "6.1.0",
|
||||
"@sentry/types": "6.1.0",
|
||||
"@sentry/utils": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
@ -282,16 +282,16 @@
|
||||
}
|
||||
},
|
||||
"@sentry/types": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.0.4.tgz",
|
||||
"integrity": "sha512-VqmnhJPpPmsu4gMzSZw8UHgYlP1QSikMZ5X6E3q6zwmbWu+2oniQHD6xGB6PXv6uTo5zg2NseQEiWnEjJRUYWw=="
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-6.1.0.tgz",
|
||||
"integrity": "sha512-kIaN52Fw5K+2mKRaHE2YluJ+F/qMGSUzZXIFDNdC6OUMXQ4TM8gZTrITXs8CLDm7cK8iCqFCtzKOjKK6KyOKAg=="
|
||||
},
|
||||
"@sentry/utils": {
|
||||
"version": "6.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.0.4.tgz",
|
||||
"integrity": "sha512-UOAz5p5IIntmIcmX04Cjk7l7+EwnuBn2S/rhNN92I1vDCaL010OmUZOHGHJExoXBE75zVh/LDssAPQTKXo0F+g==",
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-6.1.0.tgz",
|
||||
"integrity": "sha512-6JAplzUOS6bEwfX0PDRZBbYRvn9EN22kZfcL0qGHtM9L0QQ5ybjbbVwOpbXgRkiZx++dQbzLFtelxnDhsbFG+Q==",
|
||||
"requires": {
|
||||
"@sentry/types": "6.0.4",
|
||||
"@sentry/types": "6.1.0",
|
||||
"tslib": "^1.9.3"
|
||||
},
|
||||
"dependencies": {
|
||||
|
@ -12,8 +12,8 @@
|
||||
"dependencies": {
|
||||
"@fortawesome/fontawesome-free": "^5.15.2",
|
||||
"@patternfly/patternfly": "^4.80.3",
|
||||
"@sentry/browser": "^6.0.4",
|
||||
"@sentry/tracing": "^6.0.4",
|
||||
"@sentry/browser": "^6.1.0",
|
||||
"@sentry/tracing": "^6.1.0",
|
||||
"@types/chart.js": "^2.9.30",
|
||||
"@types/codemirror": "0.0.108",
|
||||
"chart.js": "^2.9.4",
|
||||
|
@ -13,7 +13,9 @@ export class Client {
|
||||
if (query) {
|
||||
const queryString = Object.keys(query)
|
||||
.filter((k) => query[k] !== null)
|
||||
.map((k) => encodeURIComponent(k) + "=" + encodeURIComponent(query[k]))
|
||||
// we default to a string in query[k] as we've filtered out the null above
|
||||
// this is just for type-hinting
|
||||
.map((k) => encodeURIComponent(k) + "=" + encodeURIComponent(query[k] || ""))
|
||||
.join("&");
|
||||
builtUrl += `?${queryString}`;
|
||||
}
|
||||
|
@ -169,6 +169,13 @@ select[multiple] {
|
||||
.pf-c-table__toggle-icon {
|
||||
color: var(--ak-dark-foreground);
|
||||
}
|
||||
/* expandable elements */
|
||||
.pf-c-expandable-section__toggle-text {
|
||||
color: var(--ak-dark-foreground);
|
||||
}
|
||||
.pf-c-expandable-section__toggle-icon {
|
||||
color: var(--ak-dark-foreground);
|
||||
}
|
||||
/* inputs */
|
||||
.pf-c-input-group {
|
||||
--pf-c-input-group--BackgroundColor: transparent;
|
||||
|
36
web/src/elements/Expand.ts
Normal file
36
web/src/elements/Expand.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import { gettext } from "django";
|
||||
import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
|
||||
import { COMMON_STYLES } from "../common/styles";
|
||||
|
||||
@customElement("ak-expand")
|
||||
export class Expand extends LitElement {
|
||||
|
||||
@property({ type: Boolean })
|
||||
expanded = false;
|
||||
|
||||
@property()
|
||||
textOpen = "Show less";
|
||||
|
||||
@property()
|
||||
textClosed = "Show more";
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return COMMON_STYLES;
|
||||
}
|
||||
|
||||
render(): TemplateResult {
|
||||
console.log(this.expanded);
|
||||
return html`<div class="pf-c-expandable-section ${this.expanded ? "pf-m-expanded" : ""}">
|
||||
<button type="button" class="pf-c-expandable-section__toggle" aria-expanded="${this.expanded}" @click=${() => {
|
||||
this.expanded = !this.expanded;
|
||||
}}>
|
||||
<span class="pf-c-expandable-section__toggle-icon">
|
||||
<i class="fas fa-angle-right" aria-hidden="true"></i>
|
||||
</span>
|
||||
<span class="pf-c-expandable-section__toggle-text">${gettext(this.expanded ? this.textOpen : this.textClosed)}</span>
|
||||
</button>
|
||||
<slot ?hidden=${!this.expanded} class="pf-c-expandable-section__content"></slot>
|
||||
</div>`;
|
||||
}
|
||||
|
||||
}
|
@ -2,6 +2,7 @@ import { html, TemplateResult } from "lit-html";
|
||||
|
||||
export const SLUG_REGEX = "[-a-zA-Z0-9_]+";
|
||||
export const ID_REGEX = "\\d+";
|
||||
export const UUID_REGEX = "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}";
|
||||
|
||||
export class Route {
|
||||
url: RegExp;
|
||||
|
@ -1,3 +1,4 @@
|
||||
import { gettext } from "django";
|
||||
import { html, TemplateResult } from "lit-html";
|
||||
import { ifDefined } from "lit-html/directives/if-defined";
|
||||
import { Table } from "./Table";
|
||||
@ -26,9 +27,9 @@ export abstract class TablePage<T> extends Table<T> {
|
||||
<div class="pf-c-content">
|
||||
<h1>
|
||||
<i class="${this.pageIcon()}"></i>
|
||||
${this.pageTitle()}
|
||||
${gettext(this.pageTitle())}
|
||||
</h1>
|
||||
${description ? html`<p>${description}</p>` : html``}
|
||||
${description ? html`<p>${gettext(description)}</p>` : html``}
|
||||
</div>
|
||||
</section>
|
||||
<section class="pf-c-page__main-section pf-m-no-padding-mobile">
|
||||
|
@ -5,6 +5,7 @@ import { Event, EventContext } from "../../api/Events";
|
||||
import { Flow } from "../../api/Flows";
|
||||
import { COMMON_STYLES } from "../../common/styles";
|
||||
import "../../elements/Spinner";
|
||||
import "../../elements/Expand";
|
||||
import { SpinnerSize } from "../../elements/Spinner";
|
||||
|
||||
@customElement("ak-event-info")
|
||||
@ -76,21 +77,21 @@ export class EventInfo extends LitElement {
|
||||
<div class="pf-l-flex__item">
|
||||
<h3>${gettext("Using flow")}</h3>
|
||||
<span>${until(Flow.list({
|
||||
flow_uuid: this.event.context.flow as string,
|
||||
}).then(resp => {
|
||||
return html`<a href="#/flows/${resp.results[0].slug}">${resp.results[0].name}</a>`;
|
||||
}), html`<ak-spinner size=${SpinnerSize.Medium}></ak-spinner>`)}</span>
|
||||
flow_uuid: this.event.context.flow as string,
|
||||
}).then(resp => {
|
||||
return html`<a href="#/flows/${resp.results[0].slug}">${resp.results[0].name}</a>`;
|
||||
}), html`<ak-spinner size=${SpinnerSize.Medium}></ak-spinner>`)}
|
||||
</span>
|
||||
</div>
|
||||
</div>`;
|
||||
case "login_failed":
|
||||
return html`
|
||||
<h3>${gettext(`Attempted to log in as ${this.event.context.username}`)}</h3>
|
||||
`;
|
||||
<ak-expand>${this.defaultResponse()}</ak-expand>`;
|
||||
case "token_view":
|
||||
return html`
|
||||
<h3>${gettext("Token:")}</h3><hr>
|
||||
${this.getModelInfo(this.event.context.token as EventContext)}
|
||||
`;
|
||||
${this.getModelInfo(this.event.context.token as EventContext)}`;
|
||||
case "property_mapping_exception":
|
||||
return html`<div class="pf-l-flex">
|
||||
<div class="pf-l-flex__item">
|
||||
@ -101,7 +102,8 @@ export class EventInfo extends LitElement {
|
||||
<h3>${gettext("Expression")}</h3>
|
||||
<code>${this.event.context.expression}</code>
|
||||
</div>
|
||||
</div>`;
|
||||
</div>
|
||||
<ak-expand>${this.defaultResponse()}</ak-expand>`;
|
||||
case "policy_exception":
|
||||
return html`<div class="pf-l-flex">
|
||||
<div class="pf-l-flex__item">
|
||||
@ -119,7 +121,8 @@ export class EventInfo extends LitElement {
|
||||
<h3>${gettext("Exception")}</h3>
|
||||
<code>${this.event.context.message || this.event.context.error}</code>
|
||||
</div>
|
||||
</div>`;
|
||||
</div>
|
||||
<ak-expand>${this.defaultResponse()}</ak-expand>`;
|
||||
case "policy_execution":
|
||||
return html`<div class="pf-l-flex">
|
||||
<div class="pf-l-flex__item">
|
||||
@ -140,21 +143,23 @@ export class EventInfo extends LitElement {
|
||||
<li>${gettext("Messages")}:
|
||||
<ul class="pf-c-list">
|
||||
${((this.event.context.result as EventContext).messages as string[]).map(msg => {
|
||||
return html`<li>${msg}</li>`;
|
||||
})}
|
||||
return html`<li>${msg}</li>`;
|
||||
})}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>`;
|
||||
</div>
|
||||
<ak-expand>${this.defaultResponse()}</ak-expand>`;
|
||||
case "configuration_error":
|
||||
return html`<h3>${this.event.context.message}</h3>`;
|
||||
return html`<h3>${this.event.context.message}</h3>
|
||||
<ak-expand>${this.defaultResponse()}</ak-expand>`;
|
||||
case "update_available":
|
||||
return html`<h3>${gettext("New version available!")}</h3>
|
||||
<a target="_blank" href="https://github.com/BeryJu/authentik/releases/tag/version%2F${this.event.context.new_version}">${this.event.context.new_version}</a>
|
||||
`;
|
||||
// Action types which typically don't record any extra context.
|
||||
// If context is not empty, we fall to the default response.
|
||||
// Action types which typically don't record any extra context.
|
||||
// If context is not empty, we fall to the default response.
|
||||
case "login":
|
||||
if ("using_source" in this.event.context) {
|
||||
return html`<div class="pf-l-flex">
|
||||
|
48
web/src/pages/events/EventInfoPage.ts
Normal file
48
web/src/pages/events/EventInfoPage.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import { gettext } from "django";
|
||||
import { css, CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
|
||||
import { Event } from "../../api/Events";
|
||||
import { COMMON_STYLES } from "../../common/styles";
|
||||
import "./EventInfo";
|
||||
|
||||
@customElement("ak-event-info-page")
|
||||
export class EventInfoPage extends LitElement {
|
||||
@property()
|
||||
set args(value: { [key: string]: string }) {
|
||||
this.eventID = value.id;
|
||||
}
|
||||
|
||||
@property()
|
||||
set eventID(value: string) {
|
||||
Event.get(value).then((e) => (this.event = e));
|
||||
}
|
||||
|
||||
@property({ attribute: false })
|
||||
event?: Event;
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return COMMON_STYLES.concat(css`
|
||||
.pf-c-card {
|
||||
color: var(--ak-dark-foreground);
|
||||
}
|
||||
`);
|
||||
}
|
||||
|
||||
render(): TemplateResult {
|
||||
return html`<section class="pf-c-page__main-section pf-m-light">
|
||||
<div class="pf-c-content">
|
||||
<h1>
|
||||
<i class="pf-icon pf-icon-catalog"></i>
|
||||
${gettext(`Event ${this.event?.pk || ""}`)}
|
||||
</h1>
|
||||
</div>
|
||||
</section>
|
||||
<section class="pf-c-page__main-section pf-m-no-padding-mobile">
|
||||
<div class="pf-c-card">
|
||||
<div class="pf-c-card__body">
|
||||
<ak-event-info .event=${this.event}></ak-event-info>
|
||||
</div>
|
||||
</div>
|
||||
</section>`;
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
import { html } from "lit-html";
|
||||
import { Route, SLUG_REGEX, ID_REGEX } from "./elements/router/Route";
|
||||
import { Route, SLUG_REGEX, ID_REGEX, UUID_REGEX } from "./elements/router/Route";
|
||||
|
||||
import "./pages/LibraryPage";
|
||||
import "./pages/admin-overview/AdminOverviewPage";
|
||||
@ -8,6 +8,7 @@ import "./pages/applications/ApplicationViewPage";
|
||||
import "./pages/sources/SourceViewPage";
|
||||
import "./pages/flows/FlowViewPage";
|
||||
import "./pages/events/EventListPage";
|
||||
import "./pages/events/EventInfoPage";
|
||||
import "./pages/events/TransportListPage";
|
||||
import "./pages/events/RuleListPage";
|
||||
import "./pages/providers/ProviderListPage";
|
||||
@ -35,6 +36,9 @@ export const ROUTES: Route[] = [
|
||||
return html`<ak-flow-view .args=${args}></ak-flow-view>`;
|
||||
}),
|
||||
new Route(new RegExp("^/events/log$"), html`<ak-event-list></ak-event-list>`),
|
||||
new Route(new RegExp(`^/events/log/(?<id>${UUID_REGEX})$`)).then((args) => {
|
||||
return html`<ak-event-info-page .args=${args}></ak-event-info-page>`;
|
||||
}),
|
||||
new Route(new RegExp("^/events/transports$"), html`<ak-event-transport-list></ak-event-transport-list>`),
|
||||
new Route(new RegExp("^/events/rules$"), html`<ak-event-rule-list></ak-event-rule-list>`),
|
||||
new Route(new RegExp("^/property-mappings$"), html`<ak-property-mapping-list></ak-property-mapping-list>`),
|
||||
|
Reference in New Issue
Block a user