diff --git a/web/package-lock.json b/web/package-lock.json index fc1641e2c4..e49762839c 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -67,8 +67,8 @@ }, "api": { "name": "authentik-api", - "version": "0.0.1", - "dependencies": { + "version": "1.0.0", + "devDependencies": { "typescript": "^3.9.5" } }, @@ -76,6 +76,7 @@ "version": "3.9.9", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", + "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10230,7 +10231,8 @@ "typescript": { "version": "3.9.9", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", - "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==" + "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", + "dev": true } } }, diff --git a/web/src/authentik.css b/web/src/authentik.css index 6c5cb5a8a6..44cff458e6 100644 --- a/web/src/authentik.css +++ b/web/src/authentik.css @@ -76,24 +76,12 @@ html > form > input { .pf-m-success { color: var(--pf-global--success-color--100); } -.pf-c-button.pf-m-success { - color: var(--pf-c-button--m-primary--Color); - background-color: var(--pf-global--success-color--100); -} .pf-m-warning { color: var(--pf-global--warning-color--100); } -.pf-c-button.pf-m-warning { - color: var(--pf-c-button--m-primary--Color); - background-color: var(--pf-global--warning-color--100); -} .pf-m-danger { color: var(--pf-global--danger-color--100); } -.pf-c-button.pf-m-danger { - color: var(--pf-c-button--m-primary--Color); - background-color: var(--pf-global--danger-color--100); -} body { background-color: var(--ak-dark-background) !important; diff --git a/web/src/elements/oauth/UserCodeList.ts b/web/src/elements/oauth/UserCodeList.ts index dbe79ce1cf..b732b19ac1 100644 --- a/web/src/elements/oauth/UserCodeList.ts +++ b/web/src/elements/oauth/UserCodeList.ts @@ -29,7 +29,7 @@ export class UserOAuthCodeList extends Table { new TableColumn(t`Provider`, "provider"), new TableColumn(t`Expires`, "expires"), new TableColumn(t`Scopes`, "scope"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/elements/oauth/UserRefreshList.ts b/web/src/elements/oauth/UserRefreshList.ts index 1777e60fd1..432f3f9174 100644 --- a/web/src/elements/oauth/UserRefreshList.ts +++ b/web/src/elements/oauth/UserRefreshList.ts @@ -37,7 +37,7 @@ export class UserOAuthRefreshList extends Table { new TableColumn(t`Revoked?`, "revoked"), new TableColumn(t`Expires`, "expires"), new TableColumn(t`Scopes`, "scope"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/elements/table/Table.ts b/web/src/elements/table/Table.ts index 79aeab2a5c..2afe4a8597 100644 --- a/web/src/elements/table/Table.ts +++ b/web/src/elements/table/Table.ts @@ -279,6 +279,10 @@ export abstract class Table extends LitElement { `; } + renderToolbarSelected(): TemplateResult { + return html``; + } + renderToolbarAfter(): TemplateResult { return html``; } @@ -322,7 +326,7 @@ export abstract class Table extends LitElement { : html``}
- ${this.renderSearch()} + ${this.renderToolbarSelected()}   ${this.renderSearch()}
${this.renderToolbar()}
${this.renderToolbarAfter()} { new TableColumn(t`Browser`, "user_agent"), new TableColumn(t`Device`, "user_agent"), new TableColumn(t`Expires`, "expires"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/elements/user/UserConsentList.ts b/web/src/elements/user/UserConsentList.ts index 40f5ae84a7..4302026d5d 100644 --- a/web/src/elements/user/UserConsentList.ts +++ b/web/src/elements/user/UserConsentList.ts @@ -28,7 +28,7 @@ export class UserConsentList extends Table { return [ new TableColumn(t`Application`, "application"), new TableColumn(t`Expires`, "expires"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/applications/ApplicationListPage.ts b/web/src/pages/applications/ApplicationListPage.ts index 3d086c379b..bc5c49d7d5 100644 --- a/web/src/pages/applications/ApplicationListPage.ts +++ b/web/src/pages/applications/ApplicationListPage.ts @@ -62,7 +62,7 @@ export class ApplicationListPage extends TablePage { new TableColumn(t`Slug`, "slug"), new TableColumn(t`Provider`), new TableColumn(t`Provider Type`), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/crypto/CertificateKeyPairListPage.ts b/web/src/pages/crypto/CertificateKeyPairListPage.ts index 18bb91c1e6..49a14342d1 100644 --- a/web/src/pages/crypto/CertificateKeyPairListPage.ts +++ b/web/src/pages/crypto/CertificateKeyPairListPage.ts @@ -53,7 +53,7 @@ export class CertificateKeyPairListPage extends TablePage { new TableColumn(t`Name`, "name"), new TableColumn(t`Private key available?`), new TableColumn(t`Expiry date`), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/events/EventListPage.ts b/web/src/pages/events/EventListPage.ts index d96ccb4ffe..24ea3ca8e7 100644 --- a/web/src/pages/events/EventListPage.ts +++ b/web/src/pages/events/EventListPage.ts @@ -46,7 +46,7 @@ export class EventListPage extends TablePage { new TableColumn(t`Creation Date`, "created"), new TableColumn(t`Client IP`, "client_ip"), new TableColumn(t`Tenant`, "tenant_name"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/events/RuleListPage.ts b/web/src/pages/events/RuleListPage.ts index 1bbef9ddbf..74595dc560 100644 --- a/web/src/pages/events/RuleListPage.ts +++ b/web/src/pages/events/RuleListPage.ts @@ -47,7 +47,7 @@ export class RuleListPage extends TablePage { new TableColumn(t`Name`, "name"), new TableColumn(t`Severity`, "severity"), new TableColumn(t`Sent to group`, "group"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/events/TransportListPage.ts b/web/src/pages/events/TransportListPage.ts index cf5cb74425..b1e4c7d987 100644 --- a/web/src/pages/events/TransportListPage.ts +++ b/web/src/pages/events/TransportListPage.ts @@ -44,7 +44,7 @@ export class TransportListPage extends TablePage { return [ new TableColumn(t`Name`, "name"), new TableColumn(t`Mode`, "mode"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/flows/BoundStagesList.ts b/web/src/pages/flows/BoundStagesList.ts index 3c812c780a..97bf14afea 100644 --- a/web/src/pages/flows/BoundStagesList.ts +++ b/web/src/pages/flows/BoundStagesList.ts @@ -38,7 +38,7 @@ export class BoundStagesList extends Table { new TableColumn(t`Order`), new TableColumn(t`Name`), new TableColumn(t`Type`), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/flows/FlowListPage.ts b/web/src/pages/flows/FlowListPage.ts index 9467f7cbfb..9ea55d7cbc 100644 --- a/web/src/pages/flows/FlowListPage.ts +++ b/web/src/pages/flows/FlowListPage.ts @@ -48,7 +48,7 @@ export class FlowListPage extends TablePage { new TableColumn(t`Designation`, "designation"), new TableColumn(t`Stages`), new TableColumn(t`Policies`), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/groups/GroupListPage.ts b/web/src/pages/groups/GroupListPage.ts index de620ab24c..220063bfa5 100644 --- a/web/src/pages/groups/GroupListPage.ts +++ b/web/src/pages/groups/GroupListPage.ts @@ -45,7 +45,7 @@ export class GroupListPage extends TablePage { new TableColumn(t`Parent`, "parent"), new TableColumn(t`Members`), new TableColumn(t`Superuser privileges?`), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/outposts/OutpostListPage.ts b/web/src/pages/outposts/OutpostListPage.ts index 9aacdebb8d..cabdd1281b 100644 --- a/web/src/pages/outposts/OutpostListPage.ts +++ b/web/src/pages/outposts/OutpostListPage.ts @@ -45,7 +45,7 @@ export class OutpostListPage extends TablePage { new TableColumn(t`Providers`), new TableColumn(t`Integration`, "service_connection__name"), new TableColumn(t`Health and Version`), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/outposts/ServiceConnectionListPage.ts b/web/src/pages/outposts/ServiceConnectionListPage.ts index b90f7bfa52..ee5d6820f7 100644 --- a/web/src/pages/outposts/ServiceConnectionListPage.ts +++ b/web/src/pages/outposts/ServiceConnectionListPage.ts @@ -50,7 +50,7 @@ export class OutpostServiceConnectionListPage extends TablePage { new TableColumn(t`Enabled`, "enabled"), new TableColumn(t`Order`, "order"), new TableColumn(t`Timeout`, "timeout"), - new TableColumn(""), + new TableColumn("Actions"), ]; } diff --git a/web/src/pages/policies/PolicyListPage.ts b/web/src/pages/policies/PolicyListPage.ts index d60befee87..c54009301b 100644 --- a/web/src/pages/policies/PolicyListPage.ts +++ b/web/src/pages/policies/PolicyListPage.ts @@ -52,7 +52,11 @@ export class PolicyListPage extends TablePage { } columns(): TableColumn[] { - return [new TableColumn(t`Name`, "name"), new TableColumn(t`Type`), new TableColumn("")]; + return [ + new TableColumn(t`Name`, "name"), + new TableColumn(t`Type`), + new TableColumn(t`Actions`), + ]; } row(item: Policy): TemplateResult[] { @@ -77,33 +81,50 @@ export class PolicyListPage extends TablePage { type=${ifDefined(item.component)} > - + ${t`Test`} ${t`Test Policy`} - - - { - return new PoliciesApi(DEFAULT_CONFIG).policiesAllUsedByList({ - policyUuid: item.pk, - }); - }} - .delete=${() => { - return new PoliciesApi(DEFAULT_CONFIG).policiesAllDestroy({ - policyUuid: item.pk, - }); - }} - > - - `, + + `, ]; } + renderToolbarSelected(): TemplateResult { + // TODO: bulk delete + const disabled = this.selectedElements.length !== 1; + const item = this.selectedElements[0]; + return html` { + return new PoliciesApi(DEFAULT_CONFIG).policiesAllUsedByList({ + policyUuid: item.pk, + }); + }} + .delete=${() => { + return new PoliciesApi(DEFAULT_CONFIG).policiesAllDestroy({ + policyUuid: item.pk, + }); + }} + > + + `; + } + renderToolbar(): TemplateResult { return html`