From f47213ecd087d99af7c0da101ccede64747f563c Mon Sep 17 00:00:00 2001 From: Ralf Wunsch Date: Thu, 7 Apr 2022 08:04:54 +0200 Subject: [PATCH 1/5] next development iteration --- commons/pom.xml | 2 +- console/pom.xml | 2 +- corecfg/pom.xml | 2 +- jslibs/pom.xml | 2 +- osgi/pckginstall/pom.xml | 2 +- osgi/pom.xml | 2 +- package/aem/pom.xml | 2 +- package/cleanup/pom.xml | 2 +- package/commons/pom.xml | 2 +- package/console/pom.xml | 2 +- package/jslibs/pom.xml | 2 +- package/pckgmgr/pom.xml | 2 +- package/pom.xml | 2 +- package/setup/bundle/pom.xml | 2 +- package/setup/hook/pom.xml | 2 +- package/setup/pom.xml | 2 +- package/sling/pom.xml | 2 +- package/usermgr/pom.xml | 2 +- pckgmgr/pom.xml | 2 +- pckgmgr/src/test/bundle/pom.xml | 2 +- pckgmgr/src/test/package/pom.xml | 2 +- pckgmgr/src/test/pom.xml | 2 +- pom.xml | 2 +- setup/pom.xml | 2 +- setup/slingfeature/pom.xml | 2 +- setup/util/pom.xml | 2 +- test/pom.xml | 2 +- usermgr/pom.xml | 2 +- xtracts/debugutil/pom.xml | 2 +- xtracts/pom.xml | 4 ++-- xtracts/users-graph/bundle/pom.xml | 2 +- xtracts/users-graph/package/pom.xml | 2 +- xtracts/users-graph/pom.xml | 2 +- 33 files changed, 34 insertions(+), 34 deletions(-) diff --git a/commons/pom.xml b/commons/pom.xml index 3ab2903407..7bdfbd369f 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-commons diff --git a/console/pom.xml b/console/pom.xml index cb93d786ac..ee88a7ab1d 100644 --- a/console/pom.xml +++ b/console/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-console diff --git a/corecfg/pom.xml b/corecfg/pom.xml index eedcf0fc91..f164436de1 100644 --- a/corecfg/pom.xml +++ b/corecfg/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-config diff --git a/jslibs/pom.xml b/jslibs/pom.xml index 9c89cd8df0..b909ebeefe 100644 --- a/jslibs/pom.xml +++ b/jslibs/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-jslibs diff --git a/osgi/pckginstall/pom.xml b/osgi/pckginstall/pom.xml index 11a1e13f8e..14b468e7a8 100644 --- a/osgi/pckginstall/pom.xml +++ b/osgi/pckginstall/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.osgi composum-nodes-osgi - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-osgi-package-installer diff --git a/osgi/pom.xml b/osgi/pom.xml index 9a38ca159a..b4d01a8ec7 100644 --- a/osgi/pom.xml +++ b/osgi/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT com.composum.nodes.osgi diff --git a/package/aem/pom.xml b/package/aem/pom.xml index 312744a324..6cec98d906 100644 --- a/package/aem/pom.xml +++ b/package/aem/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-aem-package diff --git a/package/cleanup/pom.xml b/package/cleanup/pom.xml index 80f9576e2c..0adbe8519e 100644 --- a/package/cleanup/pom.xml +++ b/package/cleanup/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-cleanup-package diff --git a/package/commons/pom.xml b/package/commons/pom.xml index 644835e606..a128aa8add 100644 --- a/package/commons/pom.xml +++ b/package/commons/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-commons-bundle diff --git a/package/console/pom.xml b/package/console/pom.xml index 880abc48d1..496080117b 100644 --- a/package/console/pom.xml +++ b/package/console/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-console-bundle diff --git a/package/jslibs/pom.xml b/package/jslibs/pom.xml index 0e3742b62d..923605c396 100644 --- a/package/jslibs/pom.xml +++ b/package/jslibs/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-jslibs-package diff --git a/package/pckgmgr/pom.xml b/package/pckgmgr/pom.xml index 244b7c1ae3..72ee52d5cc 100644 --- a/package/pckgmgr/pom.xml +++ b/package/pckgmgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-pckgmgr-bundle diff --git a/package/pom.xml b/package/pom.xml index 1d2cb26032..b92607bdd9 100644 --- a/package/pom.xml +++ b/package/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-package diff --git a/package/setup/bundle/pom.xml b/package/setup/bundle/pom.xml index 934a11c214..e9e8b7fa58 100644 --- a/package/setup/bundle/pom.xml +++ b/package/setup/bundle/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-package-setup - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-package-setup-bundle diff --git a/package/setup/hook/pom.xml b/package/setup/hook/pom.xml index 85a3ecfabf..b672cf490c 100644 --- a/package/setup/hook/pom.xml +++ b/package/setup/hook/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-package-setup - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-package-setup-hook diff --git a/package/setup/pom.xml b/package/setup/pom.xml index 7fc9c0332e..4a04e60bbd 100644 --- a/package/setup/pom.xml +++ b/package/setup/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT com.composum.nodes.setup diff --git a/package/sling/pom.xml b/package/sling/pom.xml index a7ae5e84f9..fdae3498e5 100644 --- a/package/sling/pom.xml +++ b/package/sling/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-sling-package diff --git a/package/usermgr/pom.xml b/package/usermgr/pom.xml index 10cb2fce89..f8e5624515 100644 --- a/package/usermgr/pom.xml +++ b/package/usermgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-usermgr-bundle diff --git a/pckgmgr/pom.xml b/pckgmgr/pom.xml index 01505f4c61..cd58901f27 100644 --- a/pckgmgr/pom.xml +++ b/pckgmgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-pckgmgr diff --git a/pckgmgr/src/test/bundle/pom.xml b/pckgmgr/src/test/bundle/pom.xml index 8d4b0012b4..56dc0acd6f 100644 --- a/pckgmgr/src/test/bundle/pom.xml +++ b/pckgmgr/src/test/bundle/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes.test maven-package-test - 3.4.1 + 3.4.2-SNAPSHOT maven-package-test-bundle diff --git a/pckgmgr/src/test/package/pom.xml b/pckgmgr/src/test/package/pom.xml index c78cc97471..e9e93774c2 100644 --- a/pckgmgr/src/test/package/pom.xml +++ b/pckgmgr/src/test/package/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes.test maven-package-test - 3.4.1 + 3.4.2-SNAPSHOT maven-package-test-package diff --git a/pckgmgr/src/test/pom.xml b/pckgmgr/src/test/pom.xml index b99f5681f1..1b997aad39 100644 --- a/pckgmgr/src/test/pom.xml +++ b/pckgmgr/src/test/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT ../../../ diff --git a/pom.xml b/pom.xml index 3c006cb286..53b939c70a 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT pom Composum Nodes diff --git a/setup/pom.xml b/setup/pom.xml index aed055f778..7fde472a2a 100644 --- a/setup/pom.xml +++ b/setup/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT com.composum.nodes.setup diff --git a/setup/slingfeature/pom.xml b/setup/slingfeature/pom.xml index e35db19975..5c0cbb6900 100644 --- a/setup/slingfeature/pom.xml +++ b/setup/slingfeature/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-setup - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-slingfeature diff --git a/setup/util/pom.xml b/setup/util/pom.xml index c524ad6a1f..944d5049b2 100644 --- a/setup/util/pom.xml +++ b/setup/util/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-setup - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-setup-util diff --git a/test/pom.xml b/test/pom.xml index 11e41e1ca8..cf56706911 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -7,7 +7,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT com.composum.nodes.test diff --git a/usermgr/pom.xml b/usermgr/pom.xml index d31b9e302d..18c04dc570 100644 --- a/usermgr/pom.xml +++ b/usermgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-usermgr diff --git a/xtracts/debugutil/pom.xml b/xtracts/debugutil/pom.xml index a21dc4800a..e7ba8b8ce4 100644 --- a/xtracts/debugutil/pom.xml +++ b/xtracts/debugutil/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT ../.. diff --git a/xtracts/pom.xml b/xtracts/pom.xml index 1ea03e4413..123f01378b 100644 --- a/xtracts/pom.xml +++ b/xtracts/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-xtracts @@ -15,7 +15,7 @@ Composum Nodes Feature Extracts - 3.4.1 + 3.4.2-SNAPSHOT diff --git a/xtracts/users-graph/bundle/pom.xml b/xtracts/users-graph/bundle/pom.xml index a598318db2..f94926f3bd 100644 --- a/xtracts/users-graph/bundle/pom.xml +++ b/xtracts/users-graph/bundle/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-users-graph - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-users-graph-bundle diff --git a/xtracts/users-graph/package/pom.xml b/xtracts/users-graph/package/pom.xml index 3d614c734e..6170aae0d4 100644 --- a/xtracts/users-graph/package/pom.xml +++ b/xtracts/users-graph/package/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-users-graph - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-users-graph-package diff --git a/xtracts/users-graph/pom.xml b/xtracts/users-graph/pom.xml index 97e5b6b0fb..bb41a0aad9 100644 --- a/xtracts/users-graph/pom.xml +++ b/xtracts/users-graph/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-xtracts - 3.4.1 + 3.4.2-SNAPSHOT composum-nodes-users-graph From 5812d43ae8086c440a1fa91fc012cc775d9f6ced Mon Sep 17 00:00:00 2001 From: Hans-Peter Stoerr Date: Thu, 14 Apr 2022 16:14:50 +0200 Subject: [PATCH 2/5] enable Github Actions build --- .github/settings-istrepo.xml | 107 ++++++++++++++++++++++++++++++ .github/settings-public.xml | 51 ++++++++++++++ .github/workflows/build.yml | 29 -------- .github/workflows/develop.yml | 40 +++++++++++ .github/workflows/master.yml | 38 +++++++++++ .github/workflows/pullrequest.yml | 22 ++++++ 6 files changed, 258 insertions(+), 29 deletions(-) create mode 100644 .github/settings-istrepo.xml create mode 100644 .github/settings-public.xml delete mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/develop.yml create mode 100644 .github/workflows/master.yml create mode 100644 .github/workflows/pullrequest.yml diff --git a/.github/settings-istrepo.xml b/.github/settings-istrepo.xml new file mode 100644 index 0000000000..b19010b115 --- /dev/null +++ b/.github/settings-istrepo.xml @@ -0,0 +1,107 @@ + + + + + + + istrepo + ${env.NEXUS_BUILD_USER} + ${env.NEXUS_BUILD_PASSWD} + + + istrepo-internal + ${env.NEXUS_BUILD_USER} + ${env.NEXUS_BUILD_PASSWD} + + + istrepo-snapshots + ${env.NEXUS_BUILD_USER} + ${env.NEXUS_BUILD_PASSWD} + + + + + + + istrepo + istrepo + * + https://repo.ist-software.com/repository/maven-public + + + + + + + + + master + + + + develop + + true + https + true + test.composum.com + 443 + + ${env.NEXUS_BUILD_PASSWD} + + + + + + istrepo + + true + + + + istrepo-internal + istrepo + https://repo.ist-software.com/repository/maven-releases + + false + + + + istrepo-snapshots + istrepo + https://repo.ist-software.com/repository/maven-snapshots + + true + + + + + + istrepo-internal + istrepo + https://repo.ist-software.com/repository/maven-releases + + false + + + + istrepo-snapshots + istrepo + https://repo.ist-software.com/repository/maven-snapshots + + true + + + + + + + diff --git a/.github/settings-public.xml b/.github/settings-public.xml new file mode 100644 index 0000000000..2ec0ff8220 --- /dev/null +++ b/.github/settings-public.xml @@ -0,0 +1,51 @@ + + + + + + + + + adobe-public + + true + + + + + central + Central Repository + + never + + + false + + https://repo.maven.apache.org/maven2 + + + + + adobe-public-releases + Adobe Public Repository + https://repo.adobe.com/nexus/content/groups/public + + never + + + false + + + + + + + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 4694e12240..0000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,29 +0,0 @@ -name: build - -on: - push: - branches: [ develop ] - pull_request: - branches: [ develop ] - workflow_dispatch: - -jobs: - snapshot: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - java-version: '8' - distribution: 'adopt' - - name: Cache Maven packages - uses: actions/cache@v2 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} - restore-keys: ${{ runner.os }}-m2 - - name: Build with Maven - run: mvn --batch-mode --update-snapshots clean deploy - env: - GITHUB_TOKEN: ${{ secrets.SNAPSHOT_REPO_TOKEN }} diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml new file mode 100644 index 0000000000..39424a8b67 --- /dev/null +++ b/.github/workflows/develop.yml @@ -0,0 +1,40 @@ +# This builds develop and deploys a snapshot to our repository. +# Will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +name: Develop - Build and Deploy Snapshot + +on: + push: + branches: [ develop ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + cache: maven + + - name: Build with Maven + # When parent-2:1.7 is active, -P ensureSnapshots will do a sanity check of the version number + run: mvn -s .github/settings-istrepo.xml -P ensureSnapshots -B verify + + - name: Sanitycheck version before deploying + run: | + echo "Version: " + mvn -s .github/settings-istrepo.xml help:evaluate -Dexpression=project.version -q -DforceStdout + mvn -s .github/settings-istrepo.xml help:evaluate -Dexpression=project.version -q -DforceStdout | egrep -- '-SNAPSHOT$' > /dev/null || exit 1 + # unfortunately, this would require a snapshot parent if just called from the command line, so we cannot use it: :-( + # mvn org.apache.maven.plugins:maven-enforcer-plugin:3.0.0:enforce -Drules=requireSnapshotVersion + + - name: Deploy with Maven + run: mvn -s .github/settings-istrepo.xml -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -P develop -B deploy + env: + NEXUS_BUILD_USER: ${{ secrets.NEXUS_BUILD_USER }} + NEXUS_BUILD_PASSWD: ${{ secrets.NEXUS_BUILD_PASSWD }} diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml new file mode 100644 index 0000000000..635d423e61 --- /dev/null +++ b/.github/workflows/master.yml @@ -0,0 +1,38 @@ +# +# Will build a Java project with Maven, but NOT cache/restore any dependencies to check with central repo +name: Master - Test public build and generate and deploy site + +on: + push: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + # deliberately not, to check with central repo: cache: maven + + - name: Check versioning + run: mvn -s .github/settings-public.xml org.apache.maven.plugins:maven-enforcer-plugin:3.0.0:enforce -Drules=requireReleaseVersion,requireReleaseDeps + + - name: Check build with Maven + run: mvn -s .github/settings-public.xml -B verify + + - name: Site with Maven + run: mvn -s .github/settings-public.xml -B site site:stage + + - name: Deploy Site + uses: JamesIves/github-pages-deploy-action@v4.3.0 + with: + branch: gh-pages + folder: target/staging + git-config-name: build + git-config-email: <> diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml new file mode 100644 index 0000000000..06d8fa6721 --- /dev/null +++ b/.github/workflows/pullrequest.yml @@ -0,0 +1,22 @@ +# Sanity check for pull requests - just checks that it compiles. +# Will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +name: Pullrequest - Sanitycheck + +on: pull_request + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + cache: maven + + - name: Build with Maven + run: mvn -s .github/settings-istrepo.xml -B verify From 433b48b35a9003a4a4ba46862598d28b16e99fb5 Mon Sep 17 00:00:00 2001 From: Ralf Wunsch Date: Fri, 22 Apr 2022 21:34:41 +0200 Subject: [PATCH 3/5] video and pdf support for the browsers AEM asset view --- .../composum/sling/nodes/browser/Browser.java | 190 ++++++++++++------ .../sling/nodes/browser/GenericView.java | 99 +++++++-- .../composum/nodes/browser/css/browser.css | 1 + .../nodes/browser/view/generic/body.jsp | 2 +- .../browser/view/generic/tab/content.jsp | 2 +- .../view/asset/clientlib/css/asset.css | 36 +++- .../browser/view/asset/clientlib/js/asset.js | 36 +++- .../browser/view/asset/content/content.jsp | 40 +++- .../nodes/aem/browser/view/asset/tab/tab.jsp | 6 +- 9 files changed, 315 insertions(+), 97 deletions(-) diff --git a/console/src/main/java/com/composum/sling/nodes/browser/Browser.java b/console/src/main/java/com/composum/sling/nodes/browser/Browser.java index ded7f70520..fa5a1edccd 100644 --- a/console/src/main/java/com/composum/sling/nodes/browser/Browser.java +++ b/console/src/main/java/com/composum/sling/nodes/browser/Browser.java @@ -66,27 +66,74 @@ public class Browser extends ConsoleServletBean { static { EDITOR_MODES = new HashMap<>(); - EDITOR_MODES.put("config", "text"); + EDITOR_MODES.put("c", "c_cpp"); + EDITOR_MODES.put("cc", "c_cpp"); + EDITOR_MODES.put("cpp", "c_cpp"); + EDITOR_MODES.put("h", "c_cpp"); + EDITOR_MODES.put("hh", "c_cpp"); + EDITOR_MODES.put("cs", "csharp"); + EDITOR_MODES.put("clj", "clojure"); EDITOR_MODES.put("css", "css"); + EDITOR_MODES.put("conf", "apache_conf"); + EDITOR_MODES.put("config", "text"); + EDITOR_MODES.put("csv", "text"); + EDITOR_MODES.put("tsv", "text"); + EDITOR_MODES.put("d", "d"); EDITOR_MODES.put("dart", "dart"); + EDITOR_MODES.put("diff", "diff"); + EDITOR_MODES.put("patch", "diff"); + EDITOR_MODES.put("e", "eiffel"); EDITOR_MODES.put("ecma", "javascript"); EDITOR_MODES.put("esp", "jsp"); + EDITOR_MODES.put("ftl", "ftl"); EDITOR_MODES.put("groovy", "groovy"); + EDITOR_MODES.put("gvy", "groovy"); + EDITOR_MODES.put("handlebars", "handlebars"); + EDITOR_MODES.put("hbs", "handlebars"); + EDITOR_MODES.put("htm", HTML); EDITOR_MODES.put(HTML, HTML); + EDITOR_MODES.put("xhtml", HTML); EDITOR_MODES.put("java", "java"); EDITOR_MODES.put("javascript", "javascript"); EDITOR_MODES.put("js", "javascript"); EDITOR_MODES.put("json", "json"); EDITOR_MODES.put(JSP, JSP); + EDITOR_MODES.put("jspf", JSP); + EDITOR_MODES.put("jspx", JSP); + EDITOR_MODES.put("kt", "kotlin"); EDITOR_MODES.put("less", "less"); EDITOR_MODES.put("markdown", "markdown"); EDITOR_MODES.put("md", "markdown"); + EDITOR_MODES.put("m", "objectivec"); + EDITOR_MODES.put("mm", "objectivec"); + EDITOR_MODES.put("php", "php"); + EDITOR_MODES.put("pl", "perl"); + EDITOR_MODES.put("properties", "properties"); + EDITOR_MODES.put("py", "python"); + EDITOR_MODES.put("rb", "ruby"); + EDITOR_MODES.put("ru", "ruby"); + EDITOR_MODES.put("ruby", "ruby"); + EDITOR_MODES.put("rs", "rust"); EDITOR_MODES.put("scala", "scala"); + EDITOR_MODES.put("sass", "sass"); + EDITOR_MODES.put("scss", "scss"); + EDITOR_MODES.put("sh", "sh"); + EDITOR_MODES.put("sql", "sql"); + EDITOR_MODES.put("svg", "svg"); + EDITOR_MODES.put("svg+xml", "svg"); + EDITOR_MODES.put("swift", "swift"); + EDITOR_MODES.put("tcl", "tcl"); + EDITOR_MODES.put("tex", "tex"); EDITOR_MODES.put("text", "text"); + EDITOR_MODES.put("textile", "textile"); EDITOR_MODES.put("txt", "text"); EDITOR_MODES.put("xml", "xml"); EDITOR_MODES.put("xslt", "xml"); EDITOR_MODES.put("xslt+xml", "xml"); + EDITOR_MODES.put("xquery", "xquery"); + EDITOR_MODES.put("xql", "xquery"); + EDITOR_MODES.put("yaml", "yaml"); + EDITOR_MODES.put("yml", "yaml"); } public static final Map FILE_ICONS; @@ -112,6 +159,10 @@ public class Browser extends ConsoleServletBean { FILE_ICONS.put("ram", "audio"); FILE_ICONS.put("ra", "audio"); FILE_ICONS.put("mp2", "audio"); + FILE_ICONS.put("m4a", "audio"); + FILE_ICONS.put("m4v", "video"); + FILE_ICONS.put("mp4", "video"); + FILE_ICONS.put("mov", "video"); FILE_ICONS.put("msword", "word"); FILE_ICONS.put("doc", "word"); FILE_ICONS.put("docx", "word"); @@ -285,23 +336,10 @@ public boolean isSourcePath() { /** * the content resource type (sling:resourceType) declared for the current resource */ - @NotNull - public String getResourceType() { + public @NotNull String getResourceType() { if (resourceType == null) { resourceType = ""; - String type = resource.getResourceType(); - if (StringUtils.isBlank(type) || getPrimaryType().equals(type)) { - Resource contentResource = getContentResource(); - if (contentResource != null) { - type = contentResource.getResourceType(); - if (StringUtils.isNotBlank(type)) { - ResourceHandle handle = ResourceHandle.use(contentResource); - if (type.equals(handle.getPrimaryType())) { - type = null; - } - } - } - } + String type = getResourceType(getResource()); if (StringUtils.isNotBlank(type)) { // check for a real existing resource type if (!Resource.RESOURCE_TYPE_NON_EXISTING.equals(type) @@ -313,6 +351,24 @@ public String getResourceType() { return resourceType; } + public static @Nullable String getResourceType(@NotNull final ResourceHandle resource) { + String result = resource.getResourceType(); + if (StringUtils.isBlank(result) || resource.getValueMap() + .get(JcrConstants.JCR_PRIMARYTYPE, "{no node}").equals(result)) { + Resource contentResource = resource.getContentResource(); + if (contentResource != null) { + result = contentResource.getResourceType(); + if (StringUtils.isNotBlank(result)) { + ResourceHandle handle = ResourceHandle.use(contentResource); + if (result.equals(handle.getPrimaryType())) { + result = null; + } + } + } + } + return result; + } + /** * Remove any search path / /mnt/overlay from given path to a resource type = "normalize" path to resource type. */ @@ -564,40 +620,46 @@ public Collection getAvailableScenes() { public boolean isRenderable() { if (isRenderable == null) { - String extension = getNameExtension(); - isRenderable = isTyped() - || (isText() && (HTML.equals(extension) /*|| JSP.equals(extension)*/)) - || (isFile() && (PDF.equals(extension))); + isRenderable = isRenderable(getResource(), getNameExtension()); } return isRenderable; } + public static boolean isRenderable(@NotNull final ResourceHandle resource, @Nullable final String extension) { + return StringUtils.isNotBlank(getResourceType(resource)) + || (isText(resource) && (HTML.equals(extension) /*|| JSP.equals(extension)*/)) + || (isFile(resource) && (PDF.equals(extension))); + } + public boolean isFile() { if (isFile == null) { - isFile = false; - ResourceHandle contentResource = getContentResource(); - if (contentResource == null) { - contentResource = resource; // use node itself if no content present (only in the Browser!) - } - if (contentResource != null) { - ValueMap values = contentResource.getValueMap(); - String typeName = values.get(JcrConstants.JCR_PRIMARYTYPE, ""); - if (TYPE_RESOURCE.equals(typeName) - || OAK_RESOURCE.equals(typeName) - || TYPE_FILE.equals(typeName) - || TYPE_UNSTRUCTURED.equals(typeName)) { - if (values.containsKey(JcrConstants.JCR_DATA)) { - isFile = true; - } else { - mimeType = contentResource.getProperty(PROP_MIME_TYPE); - if (StringUtils.isNotBlank(mimeType)) { - isFile = true; - } - } + isFile = isFile(getResource()); + } + return isFile; + } + + public static boolean isFile(@NotNull final ResourceHandle resource) { + boolean result = false; + ResourceHandle contentResource = resource.getContentResource(); + if (contentResource == null) { + contentResource = resource; // use node itself if no content present (only in the Browser!) + } + final ValueMap values = contentResource.getValueMap(); + final String typeName = values.get(JcrConstants.JCR_PRIMARYTYPE, ""); + if (TYPE_RESOURCE.equals(typeName) + || OAK_RESOURCE.equals(typeName) + || TYPE_FILE.equals(typeName) + || TYPE_UNSTRUCTURED.equals(typeName)) { + if (values.containsKey(JcrConstants.JCR_DATA)) { + result = true; + } else { + String mimeType = contentResource.getValueMap().get(PROP_MIME_TYPE, String.class); + if (StringUtils.isNotBlank(mimeType)) { + result = true; } } } - return isFile; + return result; } @NotNull @@ -614,27 +676,28 @@ public String getFilePath() { return ""; } - @NotNull - public String getFileIcon() { + public @NotNull String getFileIcon() { if (fileIcon == null) { - String mimeType = getMimeType(); - String extension = getNameExtension(); - String icon = getFileType(FILE_ICONS, mimeType, extension); - fileIcon = StringUtils.isNotBlank(icon) ? "file-" + icon + "-o" : "file-o"; + fileIcon = getFileIcon(getResource()); } return fileIcon; } + public static @NotNull String getFileIcon(@NotNull final ResourceHandle resource) { + final String mimeType = MimeTypeUtil.getMimeType(resource, DEFAULT_MIME_TYPE); + final String extension = ResourceUtil.getNameExtension(resource); + final String icon = getFileType(FILE_ICONS, mimeType, extension); + return StringUtils.isNotBlank(icon) ? "file-" + icon + "-o" : "file-o"; + } + public InputStream openFile() { if (isFile()) { ResourceHandle contentResource = getContentResource(); if (contentResource == null) { - contentResource = resource; // use node itself if no content present - } - if (contentResource != null) { - ValueMap values = contentResource.getValueMap(); - return values.get(JcrConstants.JCR_DATA, InputStream.class); + contentResource = getResource(); // use node itself if no content present } + ValueMap values = contentResource.getValueMap(); + return values.get(JcrConstants.JCR_DATA, InputStream.class); } return null; } @@ -667,11 +730,15 @@ public boolean isVideo() { public boolean isText() { if (isText == null) { - isText = isFile() && StringUtils.isNotBlank(getTextType()); + isText = isText(getResource()); } return isText; } + public static boolean isText(@NotNull final ResourceHandle resource) { + return isFile(resource) && StringUtils.isNotBlank(getTextType(resource)); + } + public boolean isMergedResource() { return MergedModel.isMergedResource(resource); } @@ -736,7 +803,7 @@ public String getTextSnippet() { return textSnippet; } - public String getNameExtension() { + public @NotNull String getNameExtension() { if (nameExtension == null) { nameExtension = ResourceUtil.getNameExtension(getResource()); } @@ -746,21 +813,26 @@ public String getNameExtension() { /** * Determines the text type for the current node using the mimeType (if present) and the extension. */ - public String getTextType() { + public @NotNull String getTextType() { if (textType == null) { - String mimeType = getMimeType(); - String extension = getNameExtension(); - textType = getFileType(EDITOR_MODES, mimeType, extension); + textType = getTextType(getResource()); } return textType; } + public static @NotNull String getTextType(@NotNull final ResourceHandle resource) { + final String mimeType = MimeTypeUtil.getMimeType(resource, DEFAULT_MIME_TYPE); + final String extension = ResourceUtil.getNameExtension(resource); + return getFileType(EDITOR_MODES, mimeType, extension); + } + + /** * Determines the text type for the current node using the mimeType (if present) and the extension. * * @return the type of the text file (script language) or "" */ - public static String getFileType(Map typeMap, String mimeType, String extension) { + public static @NotNull String getFileType(Map typeMap, String mimeType, String extension) { String textType = null; if (StringUtils.isNotBlank(mimeType)) { textType = typeMap.get(mimeType); diff --git a/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java b/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java index 4a8f81444f..6b743ed3d1 100644 --- a/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java +++ b/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java @@ -2,13 +2,16 @@ import com.composum.sling.core.BeanContext; import com.composum.sling.core.RequestHandle; +import com.composum.sling.core.ResourceHandle; import com.composum.sling.core.Restricted; import com.composum.sling.core.util.LinkMapper; import com.composum.sling.core.util.LinkUtil; import com.composum.sling.core.util.MimeTypeUtil; +import com.composum.sling.core.util.ResourceUtil; import com.composum.sling.nodes.console.ConsoleServletBean; import com.composum.sling.nodes.servlet.NodeServlet; import org.apache.commons.lang3.StringUtils; +import org.apache.jackrabbit.JcrConstants; import org.apache.sling.api.resource.Resource; import org.apache.tika.mime.MimeType; import org.jetbrains.annotations.NotNull; @@ -32,6 +35,12 @@ public class GenericView extends ConsoleServletBean { private transient String mappedUrl; private transient String unmappedUrl; + private transient String viewType; + private transient String fileType; + private transient String mimeType; + private transient Boolean isRenderable; + private transient ResourceHandle fileResource; + public GenericView(BeanContext context, Resource resource) { super(context, resource); } @@ -51,12 +60,11 @@ public void initialize(BeanContext context, Resource resource) { } @Override - @NotNull - public String getId() { + public @NotNull String getId() { return browserView.getId(); } - public String getMappedUrl() { + public @NotNull String getMappedUrl() { if (mappedUrl == null) { RequestHandle request = getRequest(); mappedUrl = LinkUtil.getUrl(request, getPath(), null, "", LinkMapper.RESOLVER); @@ -65,7 +73,7 @@ public String getMappedUrl() { } - public String getUnmappedUrl() { + public @NotNull String getUnmappedUrl() { if (unmappedUrl == null) { RequestHandle request = getRequest(); unmappedUrl = LinkUtil.getUrl(request, getPath(), null, "", LinkMapper.CONTEXT); @@ -73,43 +81,79 @@ public String getUnmappedUrl() { return unmappedUrl; } - @NotNull - public String getViewResourceType() { + public @NotNull String getViewResourceType() { final String resourceType = browserView.getViewResourceType(); return StringUtils.isNotBlank(resourceType) ? resourceType : "composum/nodes/browser/view/generic"; } - @NotNull - public String getTabResourceType() { + public @NotNull String getTabResourceType() { return browserView.getTabResourceType(); } - @NotNull - public List getViewTabs() { + public @NotNull List getViewTabs() { if (viewTabs == null) { viewTabs = browserView.getTabs(context, getResource()); } return viewTabs; } - @NotNull - public BrowserViews.View.Toolbar getToolbar() { + public @NotNull BrowserViews.View.Toolbar getToolbar() { if (viewToolbar == null) { viewToolbar = browserView.getToolbar(context, getResource()); } return viewToolbar; } - @NotNull - public BrowserViews.View.Content getContent() { + public @NotNull BrowserViews.View.Content getContent() { if (viewContent == null) { viewContent = browserView.getContent(context, getResource()); } return viewContent; } - @NotNull - public String getMimeTypeCss() { + public @NotNull String getViewType() { + if (viewType == null) { + viewType = isImage() ? "image" : isVideo() ? "video" : Browser.isFile(getResource()) ? "file" : "something"; + } + return viewType; + } + + public @NotNull String getFileType() { + if (fileType == null) { + StringBuilder type = new StringBuilder(); + if (Browser.isFile(getResource())) { + type.append("file-").append(StringUtils.substringBefore(getMimeType(), "/")); + final String extension = ResourceUtil.getNameExtension(getResource()); + if (StringUtils.isNotBlank(extension)) { + type.append("-").append(extension); + } + } + fileType = type.toString(); + } + return fileType; + } + + public @NotNull ResourceHandle getFileResource() { + if (fileResource == null) { + ResourceHandle resource = getResource(); + Resource original = resource.getChild(JcrConstants.JCR_CONTENT + "/renditions/original"); + fileResource = original != null ? ResourceHandle.use(original) : resource; + } + return fileResource; + } + + public boolean isRenderable() { + if (isRenderable == null) { + isRenderable = Browser.isRenderable(getFileResource(), ResourceUtil.getNameExtension(getResource())); + } + return isRenderable; + } + + public @NotNull String getFileIcon() { + return Browser.getFileIcon(getFileResource()); + } + + public @NotNull String getMimeTypeCss() { final String mimeType = getMimeType(); return StringUtils.isNotBlank(mimeType) ? mimeType.substring(mimeType.indexOf('/') + 1).replaceAll("[+]", " ") @@ -119,8 +163,25 @@ public String getMimeTypeCss() { /** * the content mime type declared for the current resource */ - public String getMimeType() { - MimeType mimeType = MimeTypeUtil.getMimeType(getResource()); - return mimeType != null ? mimeType.toString() : ""; + public @NotNull String getMimeType() { + if (mimeType == null) { + MimeType mType = MimeTypeUtil.getMimeType(getFileResource()); + mimeType = mType != null ? mType.toString() : ""; + } + return mimeType; + } + + /** + * 'true' if the mimetype is of type image + */ + public boolean isImage() { + return getMimeType().startsWith("image/"); + } + + /** + * 'true' if the mimetype is of type video + */ + public boolean isVideo() { + return getMimeType().startsWith("video/"); } } diff --git a/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css b/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css index c697432367..2a6f0a3894 100644 --- a/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css +++ b/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css @@ -654,6 +654,7 @@ } .detail-view .detail-content, +.detail-view .generic-detail-content, .detail-view .full-table-view .fixed-table-container { position: absolute; top: 34px; diff --git a/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/body.jsp b/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/body.jsp index 1dda47beb2..3428aa2b2e 100644 --- a/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/body.jsp +++ b/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/body.jsp @@ -15,6 +15,6 @@ -
+
diff --git a/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/tab/content.jsp b/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/tab/content.jsp index ec91603bdb..6b04c6a620 100644 --- a/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/tab/content.jsp +++ b/console/src/main/resources/root/libs/composum/nodes/browser/view/generic/tab/content.jsp @@ -4,7 +4,7 @@ <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -
+
\ No newline at end of file diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/css/asset.css b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/css/asset.css index e45d071ef2..3c72351737 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/css/asset.css +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/css/asset.css @@ -1,18 +1,46 @@ -.aem-asset .detail-content .image-frame { +.aem-asset .generic-detail-content .image-frame { display: table; margin: auto; border: 1px solid #ccc; padding: 5px; } -.aem-asset .detail-content .image-frame .image-background { +.aem-asset .generic-detail-content .image-frame .image-background { display: inline-block; } -.aem-asset .detail-content .image-frame img { +.aem-asset .generic-detail-content .image-frame img { width: 100%; } -.aem-asset .detail-content .image-frame.svg img { +.aem-asset .generic-detail-content .image-frame.svg img { min-width: 100px; } + +.aem-asset .generic-video .generic-detail-content { + background-color: #666; +} + +.aem-asset .generic-detail-content .video-frame { + display: table; + margin: auto; + padding: 6px; +} + +.aem-asset .generic-detail-content .video-frame .video-background { + background-color: #444; +} + +.aem-asset .generic-detail-content .video-frame video { + width: 100%; +} + +.aem-asset .generic-detail-content .file-download { + position: absolute; + top: 45%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 150px; + opacity: .4; + color: inherit; +} \ No newline at end of file diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js index ac54dc2b5a..0dbe54df63 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js @@ -3,22 +3,48 @@ CPM.namespace('nodes.aem.assets'); (function (assets, browser, core) { - assets.ImageView = browser.AbstractDisplayTab.extend({ + assets.AssetView = browser.AbstractDisplayTab.extend({ initialize: function (options) { options = _.extend(options, { displayKey: 'aemAssetView', loadContent: _.bind(function (url) { - this.$image.attr('src', ''); - this.$image.attr('src', core.getContextUrl(url)); + switch (this.type) { + case 'image': + this.$image.attr('src', ''); + this.$image.attr('src', core.getContextUrl(url)); + break; + case 'video': + this.$video.attr('src', ''); + this.$video.attr('src', core.getContextUrl(url)); + break; + case 'file': + this.$frame.attr('src', core.getContextUrl(url)); + break; + default: + break; + } }, this) }); - this.$image = this.$('.image-frame img'); + this.type = this.$el.data('type') || ''; + switch (this.type) { + case 'image': + this.$image = this.$('.image-frame img'); + break; + case 'video': + this.$video = this.$('.video-frame video source'); + break; + case 'file': + this.$frame = this.$('.file-frame'); + break; + default: + break; + } browser.AbstractDisplayTab.prototype.initialize.call(this, options); } }); - browser.registerGenericTab('aem-asset', assets.ImageView); + browser.registerGenericTab('aem-asset', assets.AssetView); })(CPM.nodes.aem.assets, CPM.nodes.browser, CPM.core); })(); diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp index 2a9bc263e9..e54f5899bd 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp @@ -1,12 +1,40 @@ <%@page session="false" pageEncoding="utf-8" %> <%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.2" %> <%@taglib prefix="cpn" uri="http://sling.composum.com/cpnl/1.0" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -
-
- -
-
+ + +
+
+ +
+
+
+ +
+
+ +
+
+
+ + + + + + + + + + +
diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp index d57d56df01..7ca4e7d658 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp @@ -3,8 +3,10 @@ <%@taglib prefix="cpn" uri="http://sling.composum.com/cpnl/1.0" %> -
+
From 66cc07b87e67b589d2ab5240a29efaea170bc942 Mon Sep 17 00:00:00 2001 From: Ralf Wunsch Date: Mon, 25 Apr 2022 14:38:19 +0200 Subject: [PATCH 4/5] video and pdf support for the browsers AEM asset view - embdded PDF view od Asset node level --- .../composum/sling/nodes/browser/Browser.java | 17 ++++++++++++----- .../sling/nodes/browser/GenericView.java | 12 ++++++++++-- .../libs/composum/nodes/browser/css/browser.css | 2 +- .../browser/view/asset/clientlib/js/asset.js | 2 +- .../aem/browser/view/asset/content/content.jsp | 6 ++---- .../nodes/aem/browser/view/asset/tab/tab.jsp | 6 +++--- 6 files changed, 29 insertions(+), 16 deletions(-) diff --git a/console/src/main/java/com/composum/sling/nodes/browser/Browser.java b/console/src/main/java/com/composum/sling/nodes/browser/Browser.java index fa5a1edccd..c622a36151 100644 --- a/console/src/main/java/com/composum/sling/nodes/browser/Browser.java +++ b/console/src/main/java/com/composum/sling/nodes/browser/Browser.java @@ -627,8 +627,8 @@ public boolean isRenderable() { public static boolean isRenderable(@NotNull final ResourceHandle resource, @Nullable final String extension) { return StringUtils.isNotBlank(getResourceType(resource)) - || (isText(resource) && (HTML.equals(extension) /*|| JSP.equals(extension)*/)) - || (isFile(resource) && (PDF.equals(extension))); + || (isText(resource) && (HTML.equalsIgnoreCase(extension) || getMimeType(resource).endsWith("/html"))) + || (isFile(resource) && (PDF.equalsIgnoreCase(extension) || getMimeType(resource).endsWith("/pdf"))); } public boolean isFile() { @@ -662,9 +662,12 @@ public static boolean isFile(@NotNull final ResourceHandle resource) { return result; } - @NotNull - public String getFilePath() { - if (isFile()) { + public @NotNull String getFilePath() { + return getFilePath(getResource()); + } + + public static @NotNull String getFilePath(@NotNull final ResourceHandle resource) { + if (isFile(resource)) { ResourceHandle fileRes = resource; if (JcrConstants.JCR_CONTENT.equals(resource.getName())) { fileRes = resource.getParent(); @@ -1057,6 +1060,10 @@ public String getMimeType() { return getCurrent().getMimeType(); } + public static @NotNull String getMimeType(@NotNull final Resource resource) { + return MimeTypeUtil.getMimeType(resource, ""); + } + public NodeHandle getParent() { if (parent == null) { parent = new NodeHandle(resource.getParent()); diff --git a/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java b/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java index 6b743ed3d1..20758dcf7e 100644 --- a/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java +++ b/console/src/main/java/com/composum/sling/nodes/browser/GenericView.java @@ -18,6 +18,7 @@ import org.slf4j.Logger; import java.util.List; +import java.util.Objects; import static org.slf4j.LoggerFactory.getLogger; @@ -113,7 +114,7 @@ public void initialize(BeanContext context, Resource resource) { public @NotNull String getViewType() { if (viewType == null) { - viewType = isImage() ? "image" : isVideo() ? "video" : Browser.isFile(getResource()) ? "file" : "something"; + viewType = isImage() ? "image" : isVideo() ? "video" : Browser.isFile(getFileResource()) ? "file" : "something"; } return viewType; } @@ -121,7 +122,7 @@ public void initialize(BeanContext context, Resource resource) { public @NotNull String getFileType() { if (fileType == null) { StringBuilder type = new StringBuilder(); - if (Browser.isFile(getResource())) { + if (Browser.isFile(getFileResource())) { type.append("file-").append(StringUtils.substringBefore(getMimeType(), "/")); final String extension = ResourceUtil.getNameExtension(getResource()); if (StringUtils.isNotBlank(extension)) { @@ -133,9 +134,16 @@ public void initialize(BeanContext context, Resource resource) { return fileType; } + public @NotNull String getFilePath() { + return getFileResource().getPath(); + } + public @NotNull ResourceHandle getFileResource() { if (fileResource == null) { ResourceHandle resource = getResource(); + if (JcrConstants.JCR_CONTENT.equals(resource.getName())) { + resource = Objects.requireNonNull(resource.getParent()); + } Resource original = resource.getChild(JcrConstants.JCR_CONTENT + "/renditions/original"); fileResource = original != null ? ResourceHandle.use(original) : resource; } diff --git a/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css b/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css index 2a6f0a3894..15bbadb5ad 100644 --- a/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css +++ b/console/src/main/resources/root/libs/composum/nodes/browser/css/browser.css @@ -660,7 +660,7 @@ top: 34px; left: 0; right: 0; - bottom: 42px; + bottom: 41px; overflow: auto; } diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js index 0dbe54df63..1920c5c381 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/clientlib/js/asset.js @@ -19,7 +19,7 @@ this.$video.attr('src', core.getContextUrl(url)); break; case 'file': - this.$frame.attr('src', core.getContextUrl(url)); + this.$frame.attr('src', core.getContextUrl('/bin/cpm/nodes/node.download.bin' + url)); break; default: break; diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp index e54f5899bd..68f98567cb 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/content/content.jsp @@ -25,12 +25,10 @@ - + - diff --git a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp index 7ca4e7d658..25318917d9 100644 --- a/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp +++ b/package/aem/src/main/content/jcr_root/apps/composum/nodes/aem/browser/view/asset/tab/tab.jsp @@ -4,9 +4,9 @@
+ data-type="${genericView.viewType}" data-file="${genericView.filePath}" + data-path="${cpn:unmappedUrl(slingRequest,genericView.filePath)}" + data-mapped="${cpn:mappedUrl(slingRequest,genericView.filePath)}">
From 638bb79446e352eaca55dae57d4327b293000cef Mon Sep 17 00:00:00 2001 From: Ralf Wunsch Date: Thu, 28 Apr 2022 08:58:13 +0200 Subject: [PATCH 5/5] release composum-nodes-3.4.2 - AEM asset view enhancements --- commons/pom.xml | 2 +- console/pom.xml | 2 +- corecfg/pom.xml | 2 +- jslibs/pom.xml | 2 +- osgi/pckginstall/pom.xml | 2 +- osgi/pom.xml | 2 +- package/aem/pom.xml | 2 +- package/cleanup/pom.xml | 2 +- package/commons/pom.xml | 2 +- package/console/pom.xml | 2 +- package/jslibs/pom.xml | 2 +- package/pckgmgr/pom.xml | 2 +- package/pom.xml | 2 +- package/setup/bundle/pom.xml | 2 +- package/setup/hook/pom.xml | 2 +- package/setup/pom.xml | 2 +- package/sling/pom.xml | 2 +- package/usermgr/pom.xml | 2 +- pckgmgr/pom.xml | 2 +- pckgmgr/src/test/bundle/pom.xml | 2 +- pckgmgr/src/test/package/pom.xml | 2 +- pckgmgr/src/test/pom.xml | 2 +- pom.xml | 2 +- setup/pom.xml | 2 +- setup/slingfeature/pom.xml | 2 +- setup/util/pom.xml | 2 +- test/pom.xml | 2 +- usermgr/pom.xml | 2 +- xtracts/debugutil/pom.xml | 2 +- xtracts/pom.xml | 4 ++-- xtracts/users-graph/bundle/pom.xml | 2 +- xtracts/users-graph/package/pom.xml | 2 +- xtracts/users-graph/pom.xml | 2 +- 33 files changed, 34 insertions(+), 34 deletions(-) diff --git a/commons/pom.xml b/commons/pom.xml index 7bdfbd369f..31e87aaf5e 100644 --- a/commons/pom.xml +++ b/commons/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-commons diff --git a/console/pom.xml b/console/pom.xml index ee88a7ab1d..724bb9b977 100644 --- a/console/pom.xml +++ b/console/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-console diff --git a/corecfg/pom.xml b/corecfg/pom.xml index f164436de1..2d260d5948 100644 --- a/corecfg/pom.xml +++ b/corecfg/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-config diff --git a/jslibs/pom.xml b/jslibs/pom.xml index b909ebeefe..99ef825ffc 100644 --- a/jslibs/pom.xml +++ b/jslibs/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-jslibs diff --git a/osgi/pckginstall/pom.xml b/osgi/pckginstall/pom.xml index 14b468e7a8..c6ef73c54f 100644 --- a/osgi/pckginstall/pom.xml +++ b/osgi/pckginstall/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.osgi composum-nodes-osgi - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-osgi-package-installer diff --git a/osgi/pom.xml b/osgi/pom.xml index b4d01a8ec7..862acf0434 100644 --- a/osgi/pom.xml +++ b/osgi/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 com.composum.nodes.osgi diff --git a/package/aem/pom.xml b/package/aem/pom.xml index 6cec98d906..a15b96e52d 100644 --- a/package/aem/pom.xml +++ b/package/aem/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-aem-package diff --git a/package/cleanup/pom.xml b/package/cleanup/pom.xml index 0adbe8519e..01f8603aa0 100644 --- a/package/cleanup/pom.xml +++ b/package/cleanup/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-cleanup-package diff --git a/package/commons/pom.xml b/package/commons/pom.xml index a128aa8add..3d82ebee3f 100644 --- a/package/commons/pom.xml +++ b/package/commons/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-commons-bundle diff --git a/package/console/pom.xml b/package/console/pom.xml index 496080117b..d19e405555 100644 --- a/package/console/pom.xml +++ b/package/console/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-console-bundle diff --git a/package/jslibs/pom.xml b/package/jslibs/pom.xml index 923605c396..ea629dc8b3 100644 --- a/package/jslibs/pom.xml +++ b/package/jslibs/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-jslibs-package diff --git a/package/pckgmgr/pom.xml b/package/pckgmgr/pom.xml index 72ee52d5cc..fc7f2b9f4c 100644 --- a/package/pckgmgr/pom.xml +++ b/package/pckgmgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-pckgmgr-bundle diff --git a/package/pom.xml b/package/pom.xml index b92607bdd9..46c6581b97 100644 --- a/package/pom.xml +++ b/package/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-package diff --git a/package/setup/bundle/pom.xml b/package/setup/bundle/pom.xml index e9e8b7fa58..95a9b6fc41 100644 --- a/package/setup/bundle/pom.xml +++ b/package/setup/bundle/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-package-setup - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-package-setup-bundle diff --git a/package/setup/hook/pom.xml b/package/setup/hook/pom.xml index b672cf490c..2e6b3cc4ae 100644 --- a/package/setup/hook/pom.xml +++ b/package/setup/hook/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-package-setup - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-package-setup-hook diff --git a/package/setup/pom.xml b/package/setup/pom.xml index 4a04e60bbd..45c8ef4c66 100644 --- a/package/setup/pom.xml +++ b/package/setup/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 com.composum.nodes.setup diff --git a/package/sling/pom.xml b/package/sling/pom.xml index fdae3498e5..4370d1aa95 100644 --- a/package/sling/pom.xml +++ b/package/sling/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-sling-package diff --git a/package/usermgr/pom.xml b/package/usermgr/pom.xml index f8e5624515..2f5307fa30 100644 --- a/package/usermgr/pom.xml +++ b/package/usermgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-package - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-usermgr-bundle diff --git a/pckgmgr/pom.xml b/pckgmgr/pom.xml index cd58901f27..472294877b 100644 --- a/pckgmgr/pom.xml +++ b/pckgmgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-pckgmgr diff --git a/pckgmgr/src/test/bundle/pom.xml b/pckgmgr/src/test/bundle/pom.xml index 56dc0acd6f..bc4955c1a3 100644 --- a/pckgmgr/src/test/bundle/pom.xml +++ b/pckgmgr/src/test/bundle/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes.test maven-package-test - 3.4.2-SNAPSHOT + 3.4.2 maven-package-test-bundle diff --git a/pckgmgr/src/test/package/pom.xml b/pckgmgr/src/test/package/pom.xml index e9e93774c2..8c3d3a013d 100644 --- a/pckgmgr/src/test/package/pom.xml +++ b/pckgmgr/src/test/package/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes.test maven-package-test - 3.4.2-SNAPSHOT + 3.4.2 maven-package-test-package diff --git a/pckgmgr/src/test/pom.xml b/pckgmgr/src/test/pom.xml index 1b997aad39..919e7f24f3 100644 --- a/pckgmgr/src/test/pom.xml +++ b/pckgmgr/src/test/pom.xml @@ -5,7 +5,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 ../../../ diff --git a/pom.xml b/pom.xml index 53b939c70a..9a1ddc1cc2 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 pom Composum Nodes diff --git a/setup/pom.xml b/setup/pom.xml index 7fde472a2a..7b8558b944 100644 --- a/setup/pom.xml +++ b/setup/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 com.composum.nodes.setup diff --git a/setup/slingfeature/pom.xml b/setup/slingfeature/pom.xml index 5c0cbb6900..ae0ac61adc 100644 --- a/setup/slingfeature/pom.xml +++ b/setup/slingfeature/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-setup - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-slingfeature diff --git a/setup/util/pom.xml b/setup/util/pom.xml index 944d5049b2..4f71cc05f0 100644 --- a/setup/util/pom.xml +++ b/setup/util/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes.setup composum-nodes-setup - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-setup-util diff --git a/test/pom.xml b/test/pom.xml index cf56706911..029936ab97 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -7,7 +7,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 com.composum.nodes.test diff --git a/usermgr/pom.xml b/usermgr/pom.xml index 18c04dc570..036ca7910f 100644 --- a/usermgr/pom.xml +++ b/usermgr/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-usermgr diff --git a/xtracts/debugutil/pom.xml b/xtracts/debugutil/pom.xml index e7ba8b8ce4..d7a6c99379 100644 --- a/xtracts/debugutil/pom.xml +++ b/xtracts/debugutil/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 ../.. diff --git a/xtracts/pom.xml b/xtracts/pom.xml index 123f01378b..c915afa745 100644 --- a/xtracts/pom.xml +++ b/xtracts/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-xtracts @@ -15,7 +15,7 @@ Composum Nodes Feature Extracts - 3.4.2-SNAPSHOT + 3.4.2 diff --git a/xtracts/users-graph/bundle/pom.xml b/xtracts/users-graph/bundle/pom.xml index f94926f3bd..b492fb20b8 100644 --- a/xtracts/users-graph/bundle/pom.xml +++ b/xtracts/users-graph/bundle/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-users-graph - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-users-graph-bundle diff --git a/xtracts/users-graph/package/pom.xml b/xtracts/users-graph/package/pom.xml index 6170aae0d4..78ef5e5bd6 100644 --- a/xtracts/users-graph/package/pom.xml +++ b/xtracts/users-graph/package/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-users-graph - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-users-graph-package diff --git a/xtracts/users-graph/pom.xml b/xtracts/users-graph/pom.xml index bb41a0aad9..5d8cbb1e0e 100644 --- a/xtracts/users-graph/pom.xml +++ b/xtracts/users-graph/pom.xml @@ -6,7 +6,7 @@ com.composum.nodes composum-nodes-xtracts - 3.4.2-SNAPSHOT + 3.4.2 composum-nodes-users-graph