From de0b507f8dbae98379494d05b47e689236ccbc86 Mon Sep 17 00:00:00 2001
From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Date: Wed, 7 Sep 2022 13:29:32 +0200
Subject: [PATCH] add another level to packages section to accomodate the
details page
---
.../packages/packages-details.element.ts | 27 +++++++
.../packages/packages-editor.element.ts | 73 +++++++++++++++++++
.../packages-installed-item.element.ts | 2 +-
.../packages/packages-section.element.ts | 66 +++++------------
4 files changed, 119 insertions(+), 49 deletions(-)
create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-details.element.ts
create mode 100644 src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-editor.element.ts
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-details.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-details.element.ts
new file mode 100644
index 0000000000..fb546600a2
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-details.element.ts
@@ -0,0 +1,27 @@
+import { html, LitElement } from 'lit';
+import { customElement, property } from 'lit/decorators.js';
+
+import { UmbContextConsumerMixin } from '../../../core/context';
+
+@customElement('umb-packages-details')
+export class UmbPackagesDetails extends UmbContextConsumerMixin(LitElement) {
+ @property()
+ id!: string;
+
+ connectedCallback() {
+ super.connectedCallback();
+ console.log(this.id);
+ }
+
+ render() {
+ return html`
Showing details of ${this.id}
`;
+ }
+}
+
+export default UmbPackagesDetails;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-packages-details': UmbPackagesDetails;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-editor.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-editor.element.ts
new file mode 100644
index 0000000000..7f693e51bf
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-editor.element.ts
@@ -0,0 +1,73 @@
+import '../../editors/shared/editor-entity/editor-entity.element';
+
+import { html, LitElement } from 'lit';
+import { customElement } from 'lit/decorators.js';
+
+import { UmbContextConsumerMixin } from '../../../core/context';
+import { UmbExtensionRegistry } from '../../../core/extension';
+
+@customElement('umb-packages-editor')
+export class UmbPackagesEditor extends UmbContextConsumerMixin(LitElement) {
+ private umbExtensionRegistry?: UmbExtensionRegistry;
+
+ constructor() {
+ super();
+
+ this.consumeContext('umbExtensionRegistry', (umbExtensionRegistry: UmbExtensionRegistry) => {
+ this.umbExtensionRegistry = umbExtensionRegistry;
+ this._registerViews();
+ });
+ }
+
+ private _registerViews() {
+ this.umbExtensionRegistry?.register({
+ alias: 'Umb.Editor.Packages.Overview',
+ name: 'Packages',
+ type: 'editorView',
+ elementName: 'umb-packages-overview',
+ loader: () => import('./packages-overview.element'),
+ meta: {
+ icon: 'document',
+ pathname: 'repo',
+ editors: ['Umb.Editor.Packages'],
+ weight: 10,
+ },
+ });
+
+ this.umbExtensionRegistry?.register({
+ alias: 'Umb.Editor.Packages.Installed',
+ name: 'Installed',
+ type: 'editorView',
+ elementName: 'umb-packages-installed',
+ loader: () => import('./packages-installed.element'),
+ meta: {
+ icon: 'document',
+ pathname: 'installed',
+ editors: ['Umb.Editor.Packages'],
+ weight: 0,
+ },
+ });
+ }
+
+ render() {
+ return html`
+
+
+
+
+ Packages
+
+
+
+
+ `;
+ }
+}
+
+export default UmbPackagesEditor;
+
+declare global {
+ interface HTMLElementTagNameMap {
+ 'umb-packages-editor': UmbPackagesEditor;
+ }
+}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-installed-item.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-installed-item.element.ts
index c87bee2d30..759d5029c3 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-installed-item.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-installed-item.element.ts
@@ -83,7 +83,7 @@ export class UmbPackagesInstalledItem extends UmbContextConsumerMixin(LitElement
}
private _onClick() {
- window.history.pushState({}, '', `/section/packages/view/repo/${this.package.id}`);
+ window.history.pushState({}, '', `/section/packages/details/${this.package.id}`);
}
}
diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-section.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-section.element.ts
index 92983854a7..6c69595639 100644
--- a/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-section.element.ts
+++ b/src/Umbraco.Web.UI.Client/src/backoffice/sections/packages/packages-section.element.ts
@@ -2,6 +2,7 @@ import '../../../backoffice/editors/shared/editor-entity/editor-entity.element';
import { html, LitElement } from 'lit';
import { customElement } from 'lit/decorators.js';
+import { IRoute, IRoutingInfo } from 'router-slot';
import { UmbContextConsumerMixin } from '../../../core/context';
import { UmbExtensionRegistry } from '../../../core/extension';
@@ -10,57 +11,26 @@ import { UmbExtensionRegistry } from '../../../core/extension';
export class UmbPackagesSection extends UmbContextConsumerMixin(LitElement) {
private umbExtensionRegistry?: UmbExtensionRegistry;
- constructor() {
- super();
-
- this.consumeContext('umbExtensionRegistry', (umbExtensionRegistry: UmbExtensionRegistry) => {
- this.umbExtensionRegistry = umbExtensionRegistry;
- this._registerViews();
- });
- }
-
- private _registerViews() {
- this.umbExtensionRegistry?.register({
- alias: 'Umb.Editor.Packages.Overview',
- name: 'Packages',
- type: 'editorView',
- elementName: 'umb-packages-overview',
- loader: () => import('./packages-overview.element'),
- meta: {
- icon: 'document',
- pathname: 'repo',
- editors: ['Umb.Editor.Packages'],
- weight: 10,
+ private _routes: IRoute[] = [
+ {
+ path: 'details/:id',
+ component: () => import('./packages-details.element'),
+ setup(component: any, info: IRoutingInfo) {
+ component.id = info.match.params.id;
},
- });
-
- this.umbExtensionRegistry?.register({
- alias: 'Umb.Editor.Packages.Installed',
- name: 'Installed',
- type: 'editorView',
- elementName: 'umb-packages-installed',
- loader: () => import('./packages-installed.element'),
- meta: {
- icon: 'document',
- pathname: 'installed',
- editors: ['Umb.Editor.Packages'],
- weight: 0,
- },
- });
- }
+ },
+ {
+ path: '',
+ component: () => import('./packages-editor.element'),
+ },
+ {
+ path: '**',
+ redirectTo: '',
+ },
+ ];
render() {
- return html`
-
-
-
-
- Packages
-
-
-
-
- `;
+ return html` `;
}
}