24 Commits

Author SHA1 Message Date
9b6202e123 Update Gradle to v9
All checks were successful
Build / build (pull_request) Successful in 1m30s
2026-05-03 12:00:36 +00:00
2c21af81c4 Merge pull request 'Update all minor and patch updates' (#19) from renovate/all-minor-patch into master
All checks were successful
Deploy / build (push) Successful in 1m8s
2026-05-03 13:16:08 +02:00
c10ff0de3b Update all minor and patch updates
All checks were successful
Build / build (pull_request) Successful in 1m33s
2026-05-03 11:08:07 +00:00
9f31be7c04 Merge pull request 'Update renovate.json' (#17) from seeseemelk-patch-1 into master
All checks were successful
Deploy / build (push) Successful in 1m46s
Reviewed-on: #17
2026-05-03 13:04:08 +02:00
6c9f2346d1 Update renovate.json
All checks were successful
Build / build (pull_request) Successful in 1m14s
2026-05-03 13:02:49 +02:00
76008065bf Merge pull request 'Update dependency org.springdoc:springdoc-openapi-starter-webmvc-ui to v3' (#13) from renovate/org.springdoc-springdoc-openapi-starter-webmvc-ui-3.x into master
All checks were successful
Deploy / build (push) Successful in 1m36s
Reviewed-on: #13
2026-05-03 12:41:22 +02:00
be9aeeae33 Merge branch 'master' into renovate/org.springdoc-springdoc-openapi-starter-webmvc-ui-3.x
All checks were successful
Build / build (pull_request) Successful in 2m0s
2026-05-03 12:39:20 +02:00
93976751ca Merge pull request 'Update plugin org.springframework.boot to v4' (#16) from renovate/major-spring-boot into master
All checks were successful
Deploy / build (push) Successful in 1m8s
Reviewed-on: #16
2026-05-03 10:04:58 +02:00
dd9bef7855 Update plugin org.springframework.boot to v4
All checks were successful
Build / build (pull_request) Successful in 52s
2026-05-03 10:04:02 +02:00
aa7785472b Merge pull request 'Update actions/setup-java action to v5' (#12) from renovate/actions-setup-java-5.x into master
All checks were successful
Deploy / build (push) Successful in 1m27s
Reviewed-on: #12
2026-05-02 23:10:44 +02:00
9f642a65dd Update dependency org.springdoc:springdoc-openapi-starter-webmvc-ui to v3
All checks were successful
Build / build (pull_request) Successful in 1m54s
2026-05-02 21:00:57 +00:00
d002f4655e Update actions/setup-java action to v5
All checks were successful
Build / build (pull_request) Successful in 1m24s
2026-05-02 21:00:54 +00:00
e006f01b8e Merge pull request 'Update renovate.json' (#7) from seeseemelk-patch-1 into master
All checks were successful
Deploy / build (push) Successful in 1m37s
Reviewed-on: #7
2026-05-02 22:58:40 +02:00
4c89789601 Update renovate.json
All checks were successful
Build / build (pull_request) Successful in 1m23s
2026-05-02 22:54:52 +02:00
5359209956 Merge pull request 'Update .gitea/workflows/build.yml' (#6) from seeseemelk-patch-1 into master
Some checks failed
Deploy / build (push) Has been cancelled
Reviewed-on: #6
2026-05-02 22:53:13 +02:00
6b63f75070 Update .gitea/workflows/build.yml
All checks were successful
Build / build (pull_request) Successful in 2m10s
2026-05-02 22:52:58 +02:00
164f7fe3a6 Merge pull request 'Configure Renovate' (#3) from renovate/configure into master
Some checks failed
Deploy / build (push) Has been cancelled
Build / build (push) Successful in 3m23s
Reviewed-on: #3
2026-05-02 22:51:39 +02:00
312ab74ead Add renovate.json 2026-05-02 20:51:01 +00:00
ad1cb70cdc Update .gitea/workflows/deploy.yml
All checks were successful
Build / build (push) Successful in 1m35s
Deploy / build (push) Successful in 2m7s
2026-02-14 19:08:58 +01:00
ce01b7ad14 Update .gitea/workflows/deploy.yml
Some checks failed
Build / build (push) Has been cancelled
2026-02-14 19:08:32 +01:00
02c7b966eb Update .gitea/workflows/build.yml
Some checks failed
Build / build (push) Has been cancelled
2026-02-14 19:08:22 +01:00
a3d9e1ebb9 Update .gitea/workflows/deploy.yml
Some checks failed
Build / build (push) Has been cancelled
2026-02-14 19:08:14 +01:00
40e13ec585 Enhance asset display by linking builds and handling null builds in overview
All checks were successful
Build / build (push) Successful in 1m23s
2025-06-15 17:29:50 +02:00
bb15c55e46 Improve asset sorting by brand, model, and QR code with null handling
All checks were successful
Build / build (push) Successful in 2m27s
Deploy / build (push) Successful in 3m1s
2025-06-15 09:48:07 +02:00
10 changed files with 43 additions and 44 deletions

View File

@@ -1,17 +1,18 @@
name: Build name: Build
on: on:
push: pull_request:
branches: branches:
- '*' - master
jobs: jobs:
build: build:
runs-on: standard-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@v5
with: with:
distribution: 'temurin' # See 'Supported distributions' for available options distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '21' java-version: '21'

View File

@@ -1,27 +1,28 @@
name: Deploy name: Deploy
on: on:
push: push:
tags: branches:
- 'v*' - master
jobs: jobs:
build: build:
runs-on: standard-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Java - name: Setup Java
uses: actions/setup-java@v4 uses: actions/setup-java@v5
with: with:
distribution: 'temurin' # See 'Supported distributions' for available options distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '21' java-version: '21'
cache: 'gradle' cache: 'gradle'
- name: Build Jar - name: Build Jar
run: ./gradlew bootJar run: ./gradlew bootJar --no-daemon
- name: Build Container - name: Build Container
run: docker build --tag gitea.seeseepuff.be/seeseemelk/pcinv:${{github.ref_name}} . run: docker build --tag gitea.seeseepuff.be/seeseemelk/pcinv:latest .
- name: Login - name: Login
with: # Set the secret as an input with: # Set the secret as an input
@@ -29,4 +30,4 @@ jobs:
run: docker login gitea.seeseepuff.be -u seeseemelk -p ${{ secrets.PACKAGE_RW }} run: docker login gitea.seeseepuff.be -u seeseemelk -p ${{ secrets.PACKAGE_RW }}
- name: Push Container - name: Push Container
run: docker push gitea.seeseepuff.be/seeseemelk/pcinv:${{github.ref_name}} run: docker push gitea.seeseepuff.be/seeseemelk/pcinv:latest

View File

@@ -1,6 +1,6 @@
plugins { plugins {
java java
id("org.springframework.boot") version "3.5.0" id("org.springframework.boot") version "4.0.6"
id("io.spring.dependency-management") version "1.1.7" id("io.spring.dependency-management") version "1.1.7"
} }
@@ -28,8 +28,8 @@ dependencies {
implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-thymeleaf")
implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-actuator") implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.8") implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:3.0.3")
implementation("org.modelmapper:modelmapper:3.2.3") implementation("org.modelmapper:modelmapper:3.2.6")
compileOnly("org.projectlombok:lombok") compileOnly("org.projectlombok:lombok")
developmentOnly("org.springframework.boot:spring-boot-devtools") developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("org.postgresql:postgresql") runtimeOnly("org.postgresql:postgresql")

Binary file not shown.

View File

@@ -1,7 +1,9 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
networkTimeout=10000 networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

7
gradlew vendored
View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# Copyright © 2015-2021 the original authors. # Copyright © 2015 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop. # Darwin, MinGW, and NonStop.
# #
# (3) This script is generated from the Groovy template # (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project. # within the Gradle project.
# #
# You can find Gradle at https://github.com/gradle/gradle/. # You can find Gradle at https://github.com/gradle/gradle/.
@@ -114,7 +114,6 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;; NONSTOP* ) nonstop=true ;;
esac esac
CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
@@ -172,7 +171,6 @@ fi
# For Cygwin or MSYS, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if "$cygwin" || "$msys" ; then if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" ) JAVACMD=$( cygpath --unix "$JAVACMD" )
@@ -212,7 +210,6 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \ set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \ "-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@" "$@"

32
gradlew.bat vendored
View File

@@ -23,8 +23,8 @@
@rem @rem
@rem ########################################################################## @rem ##########################################################################
@rem Set local scope for the variables with windows NT shell @rem Set local scope for the variables, and ensure extensions are enabled
if "%OS%"=="Windows_NT" setlocal setlocal EnableExtensions
set DIRNAME=%~dp0 set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=. if "%DIRNAME%"=="" set DIRNAME=.
@@ -51,7 +51,7 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2 echo location of your Java installation. 1>&2
goto fail "%COMSPEC%" /c exit 1
:findJavaFromJavaHome :findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=% set JAVA_HOME=%JAVA_HOME:"=%
@@ -65,30 +65,18 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2 echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2 echo location of your Java installation. 1>&2
goto fail "%COMSPEC%" /c exit 1
:execute :execute
@rem Setup the command line @rem Setup the command line
set CLASSPATH=
@rem Execute Gradle @rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* @rem endlocal doesn't take effect until after the line is parsed and variables are expanded
@rem which allows us to clear the local environment before executing the java command
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
:end :exitWithErrorLevel
@rem End local scope for the variables with windows NT shell @rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
if %ERRORLEVEL% equ 0 goto mainEnd "%COMSPEC%" /c exit %ERRORLEVEL%
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

6
renovate.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"local>seeseemelk/renovate"
]
}

View File

@@ -96,7 +96,10 @@ public class WebController {
model.addAttribute(DESCRIPTORS, tree); model.addAttribute(DESCRIPTORS, tree);
model.addAttribute(PROPERTIES, tree.stream().flatMap(d -> d.getProperties().stream()).toList()); model.addAttribute(PROPERTIES, tree.stream().flatMap(d -> d.getProperties().stream()).toList());
var assets = assetService.getAssetsByType(type); var assets = assetService.getAssetsByType(type);
assets.sort(Comparator.comparing(Asset::getQr)); assets.sort(Comparator
.comparing((Asset a) -> a.getAsset().getBrand(), Comparator.nullsFirst(Comparator.naturalOrder()))
.thenComparing((Asset a) -> a.getAsset().getModel(), Comparator.nullsFirst(Comparator.naturalOrder()))
.thenComparing(Asset::getQr));
model.addAttribute(ASSETS, assets); model.addAttribute(ASSETS, assets);
return "browse_type"; return "browse_type";
} }

View File

@@ -9,7 +9,8 @@
<tr th:each="a : ${assets}"> <tr th:each="a : ${assets}">
<td th:each="p : ${properties}" th:if="${!p.hideInOverview}"> <td th:each="p : ${properties}" th:if="${!p.hideInOverview}">
<a th:if="${p.name == 'qr'}" th:href="'/view/'+${a.getQr()}" th:text="${p.renderValue(a)}"></a> <a th:if="${p.name == 'qr'}" th:href="'/view/'+${a.getQr()}" th:text="${p.renderValue(a)}"></a>
<span th:if="${p.name != 'qr'}" th:text="${p.renderValue(a)}"></span> <a th:if="${p.name == 'build' && a.getAsset().getBuild() != null}" th:href="'/build/'+${a.getAsset().getBuild().getId()}" th:text="${p.renderValue(a)}"></a>
<span th:if="${p.name != 'qr' && (p.name != 'build' || a.getAsset().getBuild() == null)}" th:text="${p.renderValue(a)}"></span>
</td> </td>
<td> <td>
<a th:href="'/view/'+${a.getQr()}">View</a> <a th:href="'/view/'+${a.getQr()}">View</a>