diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 4a9dc0075cb59..a6a5c8374d208 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -220,7 +220,7 @@ 0.8.9 1.0.0 - 1.0.7 + 1.0.8 24.0.2 2.7.2 3.3.1 diff --git a/extensions/kubernetes/vanilla/deployment/src/main/resources/dev-ui/qwc-kubernetes-manifest.js b/extensions/kubernetes/vanilla/deployment/src/main/resources/dev-ui/qwc-kubernetes-manifest.js index ae3c64d3954e3..6c33ed70fb676 100644 --- a/extensions/kubernetes/vanilla/deployment/src/main/resources/dev-ui/qwc-kubernetes-manifest.js +++ b/extensions/kubernetes/vanilla/deployment/src/main/resources/dev-ui/qwc-kubernetes-manifest.js @@ -1,16 +1,12 @@ import { LitElement, html, css} from 'lit'; import { JsonRpc } from 'jsonrpc'; -import { until } from 'lit/directives/until.js'; -import { observeState } from 'lit-element-state'; -import { themeState } from 'theme-state'; -import '@vanillawc/wc-codemirror'; -import '@vanillawc/wc-codemirror/mode/yaml/yaml.js'; +import 'qui-code-block'; import '@vaadin/icon'; import '@vaadin/tabs'; import '@vaadin/tabsheet'; import '@vaadin/progress-bar'; -export class QwcKubernetesManifest extends observeState(LitElement) { +export class QwcKubernetesManifest extends LitElement { jsonRpc = new JsonRpc(this); @@ -101,13 +97,10 @@ export class QwcKubernetesManifest extends observeState(LitElement) { let yaml = this._manifests.get(key); return html`
- - - - + +
`; } diff --git a/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/BuildTimeContentProcessor.java b/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/BuildTimeContentProcessor.java index 8c86ff8afb119..78074c4e63ed4 100644 --- a/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/BuildTimeContentProcessor.java +++ b/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/BuildTimeContentProcessor.java @@ -69,6 +69,8 @@ InternalImportMapBuildItem createKnownInternalImportMap(NonApplicationRootPathBu internalImportMapBuildItem.add("qui/", contextRoot + "qui/"); internalImportMapBuildItem.add("qui-badge", contextRoot + "qui/qui-badge.js"); internalImportMapBuildItem.add("qui-alert", contextRoot + "qui/qui-alert.js"); + internalImportMapBuildItem.add("qui-code-block", contextRoot + "qui/qui-code-block.js"); + // Echarts internalImportMapBuildItem.add("echarts/", contextRoot + "echarts/"); internalImportMapBuildItem.add("echarts-gauge-grade", contextRoot + "echarts/echarts-gauge-grade.js"); @@ -231,13 +233,15 @@ QuteTemplateBuildItem createIndexHtmlTemplate( Map importMap = importMapBuildItem.getImportMap(); aggregator.addMappings(importMap); } - String importmap = aggregator.aggregateAsJson(); + String importmap = aggregator.aggregateAsJson(nonApplicationRootPathBuildItem.getNonApplicationRootPath()); aggregator.reset(); String themeVars = themeVarsBuildItem.getTemplateValue(); - String contextRoot = nonApplicationRootPathBuildItem.getNonApplicationRootPath() + DEV_UI + SLASH; + String nonApplicationRoot = nonApplicationRootPathBuildItem.getNonApplicationRootPath(); + String contextRoot = nonApplicationRoot + DEV_UI + SLASH; Map data = Map.of( + "nonApplicationRoot", nonApplicationRoot, "contextRoot", contextRoot, "importmap", importmap, "themeVars", themeVars); diff --git a/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/DevUIProcessor.java b/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/DevUIProcessor.java index 53edd36dc8eff..848f1969df0f8 100644 --- a/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/DevUIProcessor.java +++ b/extensions/vertx-http/deployment/src/main/java/io/quarkus/devui/deployment/DevUIProcessor.java @@ -193,15 +193,17 @@ void registerDevUiHandlers( } // Static mvnpm jars - routeProducer.produce(RouteBuildItem.builder() - .route("/_static" + SLASH_ALL) - .handler(recorder.mvnpmHandler(mvnpmBuildItem.getMvnpmJars())) - .build()); + String contextRoot = nonApplicationRootPathBuildItem.getNonApplicationRootPath(); + routeProducer.produce( + nonApplicationRootPathBuildItem.routeBuilder() + .route("_static" + SLASH_ALL) + .handler(recorder.mvnpmHandler(contextRoot, mvnpmBuildItem.getMvnpmJars())) + .build()); // Redirect /q/dev -> /q/dev-ui - routeProducer.produce(RouteBuildItem.builder() - .route("/q/dev") - .handler(recorder.redirect()) + routeProducer.produce(nonApplicationRootPathBuildItem.routeBuilder() + .route("dev") + .handler(recorder.redirect(contextRoot)) .build()); } diff --git a/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui-templates/build-time/index.html b/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui-templates/build-time/index.html index 1121d8880ab79..d4535e3ddd931 100644 --- a/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui-templates/build-time/index.html +++ b/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui-templates/build-time/index.html @@ -5,7 +5,7 @@ - + + `; + } + } + +} + +customElements.define('qui-code-block', QuiCodeBlock); diff --git a/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-dev-services.js b/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-dev-services.js index 647d99349d61b..f54e9d81a5ab0 100644 --- a/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-dev-services.js +++ b/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-dev-services.js @@ -2,6 +2,7 @@ import {LitElement, html, css} from 'lit'; import {devServices} from 'devui-data'; import '@vaadin/vertical-layout'; import '@vaadin/icon'; +import 'qui-code-block'; /** * This component shows the Dev Services Page @@ -87,7 +88,7 @@ export class QwcDevServices extends LitElement { You do not have any Dev Services running. Read more about Dev Services

- ` + `; } } @@ -121,7 +122,10 @@ export class QwcDevServices extends LitElement { let properties = ''.concat(...list); return html`Config:
-
${properties.trim()}
+ +
`; } } diff --git a/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-external-page.js b/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-external-page.js index c7cfd0ab7adc3..a6765e54b0463 100644 --- a/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-external-page.js +++ b/extensions/vertx-http/dev-ui-resources/src/main/resources/dev-ui/qwc/qwc-external-page.js @@ -1,18 +1,13 @@ import { LitElement, html, css} from 'lit'; -import { until } from 'lit/directives/until.js'; import { RouterController } from 'router-controller'; -import { observeState } from 'lit-element-state'; -import { themeState } from 'theme-state'; -import '@vanillawc/wc-codemirror'; -import '@vanillawc/wc-codemirror/mode/yaml/yaml.js'; -import '@vanillawc/wc-codemirror/mode/properties/properties.js'; -import '@vanillawc/wc-codemirror/mode/javascript/javascript.js'; import '@vaadin/icon'; +import 'qui-code-block'; +import '@vaadin/progress-bar'; /** * This component loads an external page */ -export class QwcExternalPage extends observeState(LitElement) { +export class QwcExternalPage extends LitElement { routerController = new RouterController(this); static styles = css` @@ -52,7 +47,15 @@ export class QwcExternalPage extends observeState(LitElement) { } render() { - return html`${until(this._loadExternal(), html`Loading with ${themeState.theme.name} theme`)}`; + if(this._mode){ + return this._loadExternal(); + }else { + return html` +
+
Loading content...
+ +
`; + } } _autoDetectMimeType(){ @@ -89,17 +92,17 @@ export class QwcExternalPage extends observeState(LitElement) { height='100%'> `; } else { + let currentPath = window.location.pathname; + currentPath = currentPath.substring(0, currentPath.indexOf('/dev')); return html`
Download - - - + +
`; } diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/DevUIRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/DevUIRecorder.java index 6702ee7c3ce43..4b8eca0d50688 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/DevUIRecorder.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/DevUIRecorder.java @@ -90,16 +90,16 @@ public Handler vaadinRouterHandler(String basePath) { return new VaadinRouterHandler(basePath); } - public Handler mvnpmHandler(Set mvnpmJarFiles) { - return new MvnpmHandler(mvnpmJarFiles); + public Handler mvnpmHandler(String root, Set mvnpmJarFiles) { + return new MvnpmHandler(root, mvnpmJarFiles); } - public Handler redirect() { + public Handler redirect(String contextRoot) { return new Handler() { @Override public void handle(RoutingContext rc) { // 308 because we also want to redirect other HTTP Methods (and not only GET). - rc.response().putHeader("Location", "/q/dev-ui").setStatusCode(308).end(); + rc.response().putHeader("Location", contextRoot + "dev-ui").setStatusCode(308).end(); } }; } diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/MvnpmHandler.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/MvnpmHandler.java index 9c8f99e8f5a1e..5d68e31d9c382 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/MvnpmHandler.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/devui/runtime/MvnpmHandler.java @@ -18,15 +18,17 @@ public class MvnpmHandler implements Handler { private final URLClassLoader mvnpmLoader; + private final String root; - public MvnpmHandler(Set mvnpmJars) { + public MvnpmHandler(String root, Set mvnpmJars) { + this.root = root; this.mvnpmLoader = new URLClassLoader(mvnpmJars.toArray(new URL[] {})); } @Override public void handle(RoutingContext event) { + String fullPath = event.normalizedPath().replaceFirst(root, SLASH); // Find the "filename" and see if it has a file extension - String fullPath = event.normalizedPath(); String parts[] = fullPath.split(SLASH); String fileName = parts[parts.length - 1];