From da26344b26ff709105e7873618215fe69dc26096 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 17:07:23 +0000 Subject: [PATCH 001/201] Java 17 2022 Update (#1) * Docker instructions deleted. * Introduced constants, fixed sonar issues, optimized imports. * Updated libraries * Fixed main storage name * Update README.md * Fixed some exception handling issues. Revisited Java API layout. Some fixes in JS. * update artifact to 1.9.0 * ignore idea * ignore target * Update .gitignore * bump libs and java 17 Co-authored-by: Rudolf Barbu Co-authored-by: Rudolf Barbu <64309120+Rudolf-Barbu@users.noreply.github.com> --- .gitignore | 5 + Dockerfile | 26 - README.md | 27 +- pom.xml | 14 +- setup.ini | 5 + src/main/java/org/bsoftware/ward/Ward.java | 3 +- .../ward/components/ServletComponent.java | 7 +- .../ward/components/UtilitiesComponent.java | 26 +- .../ward/controllers/ErrorController.java | 14 +- .../ward/controllers/IndexController.java | 5 +- .../ward/controllers/InfoController.java | 6 +- .../ward/controllers/SetupController.java | 11 +- .../ward/controllers/UptimeController.java | 39 ++ .../ward/controllers/UsageController.java | 5 +- .../java/org/bsoftware/ward/dto/ErrorDto.java | 3 +- .../java/org/bsoftware/ward/dto/InfoDto.java | 15 - .../org/bsoftware/ward/dto/ProjectDto.java | 20 - .../org/bsoftware/ward/dto/ResponseDto.java | 2 +- .../java/org/bsoftware/ward/dto/SetupDto.java | 9 +- ...ApplicationAlreadyConfiguredException.java | 18 + ...=> ApplicationNotConfiguredException.java} | 4 +- .../handlers/ControllerExceptionHandler.java | 31 +- .../bsoftware/ward/services/ErrorService.java | 5 +- .../bsoftware/ward/services/IndexService.java | 44 +- .../bsoftware/ward/services/InfoService.java | 105 +--- .../bsoftware/ward/services/SetupService.java | 39 +- .../ward/services/UptimeService.java | 32 ++ .../bsoftware/ward/services/UsageService.java | 7 +- src/main/resources/static/css/dimensions.css | 467 +++++++++--------- src/main/resources/static/js/globals.js | 5 + src/main/resources/static/js/index.js | 37 +- src/main/resources/templates/index.html | 14 +- 32 files changed, 555 insertions(+), 495 deletions(-) create mode 100644 .gitignore delete mode 100644 Dockerfile create mode 100644 setup.ini create mode 100644 src/main/java/org/bsoftware/ward/controllers/UptimeController.java delete mode 100644 src/main/java/org/bsoftware/ward/dto/ProjectDto.java create mode 100644 src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java rename src/main/java/org/bsoftware/ward/exceptions/{ApplicationNotSetUpException.java => ApplicationNotConfiguredException.java} (73%) create mode 100644 src/main/java/org/bsoftware/ward/services/UptimeService.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..309b8748 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +.idea/ +target/ +*.iml +.vscode/ \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index c434afbb..00000000 --- a/Dockerfile +++ /dev/null @@ -1,26 +0,0 @@ -# Base image with maven installed already -FROM maven:3.6.3-jdk-8 as builder - -# Copy whole project inside docker -COPY . . - -# Build project -RUN mvn clean package - - -# Base image containing OpenJDK 8, maintained by RedHat -FROM openjdk:8-jre-alpine - -# Update apt repo and install sudo package -RUN apk update && \ - apk add --no-cache dmidecode eudev && \ - rm -rf /var/cache/apk/* - -# Copy jar and pom from builder image to working directory -COPY --from=builder target/*.jar /ward.jar -COPY --from=builder pom.xml /pom.xml - -EXPOSE 4000 - -# Run jar as sudo user on entry point -ENTRYPOINT java -jar ward.jar diff --git a/README.md b/README.md index fe07555e..58cd8183 100644 --- a/README.md +++ b/README.md @@ -109,27 +109,20 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ --- ### Installation + Create your own jar - 1. Clone the project - 2. Import project in your IDE as Maven project - 3. mvn clean package - 4. jar will be in the target folder + 1. Clone or dowload this github repository + 2. cd into directory with copy of this repository + 3. docker build -t ward/ward . + 4. docker run --rm -it --name ward -p 4000:4000 -p : --privileged ward + 5. Go to localhost:4000 in web browser, input the same application port + 6. If you get error after being redirected to application port try hitting refresh
Run jar file - 1. Create you own jar as described above - 2. Execute jar on Windows or Linux with administrative rights - 3. Enter localhost:4000 and set up application - -
- - Build for Docker - - 1. Clone the project - 2. docker build --tag ward - 3. docker run --rm -it --name ward -p 4000:4000 -p : --privileged ward - 4. Go to localhost:4000 in web browser, input the same application port - 5. If you get error after being redirected to application port try hitting refresh + • Create you own jar as described above + • Execute jar on Windows or Linux with administrative rights + • Enter localhost:4000 and set up application diff --git a/pom.xml b/pom.xml index 994affe0..8ea5b875 100644 --- a/pom.xml +++ b/pom.xml @@ -4,21 +4,21 @@ 4.0.0 org.b-software ward - 1.8.8 + 2.0.0 jar org.springframework.boot spring-boot-starter-parent - 2.4.0 + 2.6.3 - 5.3.6 - 5.6.0 - 1.18.16 + 6.1.2 + 5.10.0 + 1.18.22 0.5.4 @@ -65,6 +65,8 @@ + ${project.basedir}/target + ${project.build.directory}/classes org.springframework.boot @@ -72,4 +74,4 @@ - \ No newline at end of file + diff --git a/setup.ini b/setup.ini new file mode 100644 index 00000000..c8702c95 --- /dev/null +++ b/setup.ini @@ -0,0 +1,5 @@ +[setup] +serverName = antony +theme = light +port = 5000 + diff --git a/src/main/java/org/bsoftware/ward/Ward.java b/src/main/java/org/bsoftware/ward/Ward.java index 6c4360e9..7afd55f6 100644 --- a/src/main/java/org/bsoftware/ward/Ward.java +++ b/src/main/java/org/bsoftware/ward/Ward.java @@ -6,6 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; import org.springframework.context.ConfigurableApplicationContext; + import java.io.File; /** @@ -43,7 +44,7 @@ public class Ward extends SpringBootServletInitializer * * @param args Spring Boot application arguments */ - public static void main(String[] args) + public static void main(final String[] args) { isFirstLaunch = true; configurableApplicationContext = SpringApplication.run(Ward.class, args); diff --git a/src/main/java/org/bsoftware/ward/components/ServletComponent.java b/src/main/java/org/bsoftware/ward/components/ServletComponent.java index bb28a6d7..e3e4af71 100644 --- a/src/main/java/org/bsoftware/ward/components/ServletComponent.java +++ b/src/main/java/org/bsoftware/ward/components/ServletComponent.java @@ -5,7 +5,7 @@ import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.stereotype.Component; -import java.io.File; + import java.io.IOException; /** @@ -29,14 +29,13 @@ public class ServletComponent implements WebServerFactoryCustomizer getInfo() throws Exception + public ResponseEntity getInfo() throws ApplicationNotConfiguredException { return new ResponseEntity<>(infoService.getInfo(), HttpStatus.OK); } diff --git a/src/main/java/org/bsoftware/ward/controllers/SetupController.java b/src/main/java/org/bsoftware/ward/controllers/SetupController.java index dd3e7ac4..4ba0c736 100644 --- a/src/main/java/org/bsoftware/ward/controllers/SetupController.java +++ b/src/main/java/org/bsoftware/ward/controllers/SetupController.java @@ -1,12 +1,19 @@ package org.bsoftware.ward.controllers; +import org.bsoftware.ward.dto.ResponseDto; import org.bsoftware.ward.dto.SetupDto; +import org.bsoftware.ward.exceptions.ApplicationAlreadyConfiguredException; import org.bsoftware.ward.services.SetupService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + import javax.validation.Valid; +import java.io.IOException; /** * SetupController displays responses from rest API @@ -32,7 +39,7 @@ public class SetupController * @return ResponseEntity to servlet */ @PostMapping - public ResponseEntity postSetup(@RequestBody @Valid SetupDto setupDto) throws Exception + public ResponseEntity postSetup(@RequestBody @Valid final SetupDto setupDto) throws IOException, ApplicationAlreadyConfiguredException { return new ResponseEntity<>(setupService.postSetup(setupDto), HttpStatus.OK); } diff --git a/src/main/java/org/bsoftware/ward/controllers/UptimeController.java b/src/main/java/org/bsoftware/ward/controllers/UptimeController.java new file mode 100644 index 00000000..e0539055 --- /dev/null +++ b/src/main/java/org/bsoftware/ward/controllers/UptimeController.java @@ -0,0 +1,39 @@ +package org.bsoftware.ward.controllers; + +import org.bsoftware.ward.dto.UptimeDto; +import org.bsoftware.ward.services.UptimeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * SetupController displays responses from rest API + * + * @author Rudolf Barbu + * @version 1.0.0 + */ +@RestController +@RequestMapping(value = "/api/uptime") +public class UptimeController +{ + /** + * Autowired UptimeService object + * Used for getting uptime information + */ + @Autowired + private UptimeService uptimeService; + + /** + * Get request to display uptime information + * + * @return ResponseEntity to servlet + */ + @GetMapping + public ResponseEntity getUptime() + { + return new ResponseEntity<>(uptimeService.getUptime(), HttpStatus.OK); + } +} \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/controllers/UsageController.java b/src/main/java/org/bsoftware/ward/controllers/UsageController.java index 3147dcac..a5cf2acf 100644 --- a/src/main/java/org/bsoftware/ward/controllers/UsageController.java +++ b/src/main/java/org/bsoftware/ward/controllers/UsageController.java @@ -1,6 +1,7 @@ package org.bsoftware.ward.controllers; -import org.bsoftware.ward.exceptions.ApplicationNotSetUpException; +import org.bsoftware.ward.dto.UsageDto; +import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; import org.bsoftware.ward.services.UsageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; @@ -32,7 +33,7 @@ public class UsageController * @return ResponseEntity to servlet */ @GetMapping - public ResponseEntity getUsage() throws ApplicationNotSetUpException + public ResponseEntity getUsage() throws ApplicationNotConfiguredException { return new ResponseEntity<>(usageService.getUsage(), HttpStatus.OK); } diff --git a/src/main/java/org/bsoftware/ward/dto/ErrorDto.java b/src/main/java/org/bsoftware/ward/dto/ErrorDto.java index b8c3f1e4..693e65bf 100644 --- a/src/main/java/org/bsoftware/ward/dto/ErrorDto.java +++ b/src/main/java/org/bsoftware/ward/dto/ErrorDto.java @@ -1,6 +1,7 @@ package org.bsoftware.ward.dto; import lombok.Getter; + import java.time.LocalDateTime; /** @@ -32,7 +33,7 @@ public final class ErrorDto * * @param exception thrown exception */ - public ErrorDto(Exception exception) + public ErrorDto(final Exception exception) { this.errMessage = exception.getMessage(); this.exceptionName = exception.getClass().getName(); diff --git a/src/main/java/org/bsoftware/ward/dto/InfoDto.java b/src/main/java/org/bsoftware/ward/dto/InfoDto.java index 791ded84..50ad7949 100644 --- a/src/main/java/org/bsoftware/ward/dto/InfoDto.java +++ b/src/main/java/org/bsoftware/ward/dto/InfoDto.java @@ -27,19 +27,4 @@ public class InfoDto * Storage info dto field */ private StorageDto storage; - - /** - * Uptime info dto field - */ - private UptimeDto uptime; - - /** - * Setup info dto field - */ - private SetupDto setup; - - /** - * Maven info dto field - */ - private ProjectDto project; } \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/dto/ProjectDto.java b/src/main/java/org/bsoftware/ward/dto/ProjectDto.java deleted file mode 100644 index c024417a..00000000 --- a/src/main/java/org/bsoftware/ward/dto/ProjectDto.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.bsoftware.ward.dto; - -import lombok.Getter; -import lombok.Setter; - -/** - * MavenDto is a values container for presenting maven fields information - * - * @author Rudolf Barbu - * @version 1.0.0 - */ -@Getter -@Setter -public class ProjectDto -{ - /** - * Project version field - */ - private String version; -} \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/dto/ResponseDto.java b/src/main/java/org/bsoftware/ward/dto/ResponseDto.java index 3f27c5c1..d4af1dc5 100644 --- a/src/main/java/org/bsoftware/ward/dto/ResponseDto.java +++ b/src/main/java/org/bsoftware/ward/dto/ResponseDto.java @@ -21,7 +21,7 @@ public final class ResponseDto * * @param message message to display */ - public ResponseDto(String message) + public ResponseDto(final String message) { this.message = message; } diff --git a/src/main/java/org/bsoftware/ward/dto/SetupDto.java b/src/main/java/org/bsoftware/ward/dto/SetupDto.java index e638dc29..0b5915e7 100644 --- a/src/main/java/org/bsoftware/ward/dto/SetupDto.java +++ b/src/main/java/org/bsoftware/ward/dto/SetupDto.java @@ -1,10 +1,14 @@ package org.bsoftware.ward.dto; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.*; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import javax.validation.constraints.Size; /** * SetupDto is a values container for setup data @@ -14,7 +18,6 @@ */ @Getter @Setter -@JsonIgnoreProperties(value = {"theme", "port"}, allowSetters = true) public class SetupDto { /** diff --git a/src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java b/src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java new file mode 100644 index 00000000..274a42f1 --- /dev/null +++ b/src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java @@ -0,0 +1,18 @@ +package org.bsoftware.ward.exceptions; + +/** + * ApplicationAlreadyConfiguredException indicates that user tried to access api, when application is already configured + * + * @author Rudolf Barbu + * @version 1.0.0 + */ +public class ApplicationAlreadyConfiguredException extends Exception +{ + /** + * Call super class with exception message + */ + public ApplicationAlreadyConfiguredException() + { + super("Application already configured"); + } +} diff --git a/src/main/java/org/bsoftware/ward/exceptions/ApplicationNotSetUpException.java b/src/main/java/org/bsoftware/ward/exceptions/ApplicationNotConfiguredException.java similarity index 73% rename from src/main/java/org/bsoftware/ward/exceptions/ApplicationNotSetUpException.java rename to src/main/java/org/bsoftware/ward/exceptions/ApplicationNotConfiguredException.java index 41c7bd1e..70cb4bc8 100644 --- a/src/main/java/org/bsoftware/ward/exceptions/ApplicationNotSetUpException.java +++ b/src/main/java/org/bsoftware/ward/exceptions/ApplicationNotConfiguredException.java @@ -6,12 +6,12 @@ * @author Rudolf Barbu * @version 1.0.0 */ -public final class ApplicationNotSetUpException extends Exception +public final class ApplicationNotConfiguredException extends Exception { /** * Call super class with exception message */ - public ApplicationNotSetUpException() + public ApplicationNotConfiguredException() { super("Set up application first"); } diff --git a/src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java b/src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java index 76650ca6..b6ed9bb5 100644 --- a/src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java +++ b/src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java @@ -2,17 +2,21 @@ import org.bsoftware.ward.components.UtilitiesComponent; import org.bsoftware.ward.dto.ErrorDto; -import org.bsoftware.ward.exceptions.ApplicationNotSetUpException; +import org.bsoftware.ward.exceptions.ApplicationAlreadyConfiguredException; +import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.ui.Model; +import org.springframework.web.HttpRequestMethodNotSupportedException; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; + import java.io.IOException; /** @@ -33,35 +37,36 @@ public class ControllerExceptionHandler private UtilitiesComponent utilitiesComponent; /** - * Handles ApplicationNotSetUpException, then it thrown + * Handles exceptions with BAD_REQUEST status, then they thrown */ @ResponseBody - @ExceptionHandler(value = ApplicationNotSetUpException.class) - public ResponseEntity applicationNotSetUpExceptionHandler(ApplicationNotSetUpException applicationNotSetUpException) + @ExceptionHandler(value = {ApplicationNotConfiguredException.class, ApplicationAlreadyConfiguredException.class}) + public ResponseEntity applicationNotSetUpExceptionHandler(final Exception exception) { - return new ResponseEntity<>(new ErrorDto(applicationNotSetUpException), HttpStatus.BAD_REQUEST); + return new ResponseEntity<>(new ErrorDto(exception), HttpStatus.BAD_REQUEST); } /** - * Handles MethodArgumentNotValidException, then it thrown + * Handles exceptions with UNPROCESSABLE_ENTITY status, then they thrown */ @ResponseBody - @ExceptionHandler(value = MethodArgumentNotValidException.class) - public ResponseEntity methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException methodArgumentNotValidException) + @ExceptionHandler(value = {MethodArgumentNotValidException.class, HttpMessageNotReadableException.class}) + public ResponseEntity methodArgumentNotValidExceptionHandler(final Exception exception) { - return new ResponseEntity<>(new ErrorDto(methodArgumentNotValidException), HttpStatus.UNPROCESSABLE_ENTITY); + return new ResponseEntity<>(new ErrorDto(exception), HttpStatus.UNPROCESSABLE_ENTITY); } /** - * Handles all other servlet exceptions, which were not handled by others handlers + * Handles MethodArgumentNotValidException, then it thrown + * Also handles all other servlet exceptions, which were not handled by others handlers * * @throws IOException if ini file is unreachable */ @ExceptionHandler(value = Exception.class) - public String exceptionHandler(Model model) throws IOException + public String exceptionHandler(final Exception exception, final Model model) throws IOException { - model.addAttribute("theme", utilitiesComponent.getThemeName()); + model.addAttribute("theme", utilitiesComponent.getFromIniFile("theme")); - return "error/500"; + return (exception instanceof HttpRequestMethodNotSupportedException) ? "error/404" : "error/500"; } } \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/services/ErrorService.java b/src/main/java/org/bsoftware/ward/services/ErrorService.java index adbb80d0..45b700d6 100644 --- a/src/main/java/org/bsoftware/ward/services/ErrorService.java +++ b/src/main/java/org/bsoftware/ward/services/ErrorService.java @@ -5,6 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; + import java.io.IOException; /** @@ -30,14 +31,14 @@ public class ErrorService * @return template name * @throws IOException if ini file is unreachable */ - public String getError(Model model) throws IOException + public String getError(final Model model) throws IOException { if (Ward.isFirstLaunch()) { return "setup"; } - model.addAttribute("theme", utilitiesComponent.getThemeName()); + model.addAttribute("theme", utilitiesComponent.getFromIniFile("theme")); return "error/404"; } } \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/services/IndexService.java b/src/main/java/org/bsoftware/ward/services/IndexService.java index adeaa1b3..1a10ae6e 100644 --- a/src/main/java/org/bsoftware/ward/services/IndexService.java +++ b/src/main/java/org/bsoftware/ward/services/IndexService.java @@ -2,10 +2,15 @@ import org.bsoftware.ward.Ward; import org.bsoftware.ward.components.UtilitiesComponent; +import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + /** * IndexService displays index page of Ward application * @@ -22,6 +27,13 @@ public class IndexService @Autowired private InfoService infoService; + /** + * Autowired UptimeService object + * Used for getting uptime for html template + */ + @Autowired + private UptimeService uptimeService; + /** * Autowired UtilitiesComponent object * Used for various utility functions @@ -29,21 +41,49 @@ public class IndexService @Autowired private UtilitiesComponent utilitiesComponent; + /** + * Gets project version information + * + * @return MavenDto with filled field + * @throws IOException if file does not exists + */ + private String getVersion() throws IOException + { + Properties properties = new Properties(); + InputStream inputStream = getClass().getResourceAsStream("/META-INF/maven/org.b-software/ward/pom.properties"); + + if (inputStream != null) + { + properties.load(inputStream); + String version = properties.getProperty("version"); + + return "Ward: v" + version; + } + else + { + return "Developer mode"; + } + } + /** * Fills model and returns template name * * @param model strings container * @return template name */ - public String getIndex(Model model) throws Exception + public String getIndex(final Model model) throws IOException, ApplicationNotConfiguredException { if (Ward.isFirstLaunch()) { return "setup"; } + model.addAttribute("theme", utilitiesComponent.getFromIniFile("theme")); + model.addAttribute("serverName", utilitiesComponent.getFromIniFile("serverName")); + model.addAttribute("info", infoService.getInfo()); - model.addAttribute("theme", utilitiesComponent.getThemeName()); + model.addAttribute("uptime", uptimeService.getUptime()); + model.addAttribute("version", getVersion()); return "index"; } diff --git a/src/main/java/org/bsoftware/ward/services/InfoService.java b/src/main/java/org/bsoftware/ward/services/InfoService.java index c1e59778..c4291d7c 100644 --- a/src/main/java/org/bsoftware/ward/services/InfoService.java +++ b/src/main/java/org/bsoftware/ward/services/InfoService.java @@ -2,17 +2,25 @@ import org.bsoftware.ward.Ward; import org.bsoftware.ward.components.UtilitiesComponent; -import org.bsoftware.ward.dto.*; -import org.bsoftware.ward.exceptions.ApplicationNotSetUpException; +import org.bsoftware.ward.dto.InfoDto; +import org.bsoftware.ward.dto.MachineDto; +import org.bsoftware.ward.dto.ProcessorDto; +import org.bsoftware.ward.dto.StorageDto; +import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import oshi.SystemInfo; -import oshi.hardware.*; +import oshi.hardware.CentralProcessor; +import oshi.hardware.GlobalMemory; +import oshi.hardware.HWDiskStore; +import oshi.hardware.PhysicalMemory; import oshi.software.os.OperatingSystem; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.util.*; + +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * InfoService provides various information about machine, such as processor name, core count, Ram amount, etc. @@ -43,7 +51,7 @@ public class InfoService * @param hertzArray raw frequency array values in hertz for each logical processor * @return String with formatted frequency and postfix */ - private String getConvertedFrequency(long[] hertzArray) + private String getConvertedFrequency(final long[] hertzArray) { long totalFrequency = Arrays.stream(hertzArray).sum(); long hertz = totalFrequency / hertzArray.length; @@ -64,7 +72,7 @@ private String getConvertedFrequency(long[] hertzArray) * @param bits raw capacity value in bits * @return String with formatted capacity and postfix */ - private String getConvertedCapacity(long bits) + private String getConvertedCapacity(final long bits) { if ((bits / 1.049E+6) > 999) { @@ -105,8 +113,8 @@ private ProcessorDto getProcessor() processorDto.setCoreCount(coreCount + ((coreCount > 1) ? " Cores" : " Core")); processorDto.setClockSpeed(getConvertedFrequency(centralProcessor.getCurrentFreq())); - String BitDepthPrefix = centralProcessor.getProcessorIdentifier().isCpu64bit() ? "64" : "32"; - processorDto.setBitDepth(BitDepthPrefix + "-bit"); + String bitDepthPrefix = centralProcessor.getProcessorIdentifier().isCpu64bit() ? "64" : "32"; + processorDto.setBitDepth(bitDepthPrefix + "-bit"); return processorDto; } @@ -159,10 +167,11 @@ private StorageDto getStorage() if (hwDiskStoreOptional.isPresent()) { String mainStorage = hwDiskStoreOptional.get().getModel(); + Matcher matcher = Pattern.compile("\\(.{1,15} .{1,15} .{1,15}\\)").matcher(mainStorage); - if (mainStorage.contains("(Standard disk drives)")) + if (matcher.find()) { - mainStorage = mainStorage.substring(0, mainStorage.indexOf("(Standard disk drives)") - 1); + mainStorage = mainStorage.substring(0, matcher.start() - 1); } storageDto.setMainStorage(mainStorage.trim()); @@ -183,75 +192,12 @@ private StorageDto getStorage() return storageDto; } - /** - * Gets uptime information - * - * @return UptimeDto with filled fields - */ - @SuppressWarnings(value = "IntegerDivisionInFloatingPointContext") - private UptimeDto getUptime() - { - UptimeDto uptimeDto = new UptimeDto(); - - long uptimeInSeconds = systemInfo.getOperatingSystem().getSystemUptime(); - - uptimeDto.setDays(String.format("%02d", (int) Math.floor(uptimeInSeconds / 86400))); - uptimeDto.setHours(String.format("%02d", (int) Math.floor((uptimeInSeconds % 86400) / 3600))); - uptimeDto.setMinutes(String.format("%02d", (int) Math.floor((uptimeInSeconds / 60) % 60))); - uptimeDto.setSeconds(String.format("%02d", (int) Math.floor(uptimeInSeconds % 60))); - - return uptimeDto; - } - - /** - * Gets server name information - * - * @return SetupDto with filled field - * @throws IOException if file does not exists - */ - private SetupDto getSetup() throws IOException - { - SetupDto setupDto = new SetupDto(); - File file = new File(Ward.SETUP_FILE_PATH); - - setupDto.setServerName(utilitiesComponent.getFromIniFile(file, "setup", "serverName")); - - return setupDto; - } - - /** - * Gets project version information - * - * @return MavenDto with filled field - * @throws IOException if file does not exists - */ - private ProjectDto getProject() throws IOException - { - ProjectDto projectDto = new ProjectDto(); - Properties properties = new Properties(); - InputStream inputStream = getClass().getResourceAsStream("/META-INF/maven/org.b-software/ward/pom.properties"); - - if (inputStream != null) - { - properties.load(inputStream); - String version = properties.getProperty("version"); - - projectDto.setVersion("Ward: v" + version); - } - else - { - projectDto.setVersion("Developer mode"); - } - - return projectDto; - } - /** * Used to deliver dto to corresponding controller * * @return InfoDto filled with server info */ - public InfoDto getInfo() throws Exception + public InfoDto getInfo() throws ApplicationNotConfiguredException { if (!Ward.isFirstLaunch()) { @@ -260,15 +206,12 @@ public InfoDto getInfo() throws Exception infoDto.setProcessor(getProcessor()); infoDto.setMachine(getMachine()); infoDto.setStorage(getStorage()); - infoDto.setUptime(getUptime()); - infoDto.setSetup(getSetup()); - infoDto.setProject(getProject()); return infoDto; } else { - throw new ApplicationNotSetUpException(); + throw new ApplicationNotConfiguredException(); } } } \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/services/SetupService.java b/src/main/java/org/bsoftware/ward/services/SetupService.java index 4015ae43..3835243e 100644 --- a/src/main/java/org/bsoftware/ward/services/SetupService.java +++ b/src/main/java/org/bsoftware/ward/services/SetupService.java @@ -3,8 +3,10 @@ import org.bsoftware.ward.Ward; import org.bsoftware.ward.dto.ResponseDto; import org.bsoftware.ward.dto.SetupDto; +import org.bsoftware.ward.exceptions.ApplicationAlreadyConfiguredException; import org.ini4j.Ini; import org.springframework.stereotype.Service; + import java.io.File; import java.io.IOException; @@ -17,22 +19,22 @@ @Service public class SetupService { + /** + * Constant, that providing setup section name + */ + private static final String SECTION_NAME = "setup"; + /** * Puts new data in ini file * * @param file ini file - * @param sectionName section in ini file * @param optionName option in section * @throws IOException if file does not exists */ - @SuppressWarnings(value = {"ResultOfMethodCallIgnored", "SameParameterValue"}) - private void putInIniFile(File file, String sectionName, String optionName, String value) throws IOException + private void putInIniFile(final File file, final String optionName, final String value) throws IOException { - file.createNewFile(); Ini ini = new Ini(file); - - ini.put(sectionName, optionName, value); - + ini.put(SECTION_NAME, optionName, value); ini.store(); } @@ -41,19 +43,30 @@ private void putInIniFile(File file, String sectionName, String optionName, Stri * * @param setupDto user settings data * @return ResponseEntityWrapperAsset filled with ResponseDto - * @throws Exception IoException if file is fot found, and cant be created + * @throws IOException IoException if file is fot found, and cant be created */ - public ResponseDto postSetup(SetupDto setupDto) throws Exception + public ResponseDto postSetup(final SetupDto setupDto) throws IOException, ApplicationAlreadyConfiguredException { if (Ward.isFirstLaunch()) { File file = new File(Ward.SETUP_FILE_PATH); - putInIniFile(file, "setup", "serverName", setupDto.getServerName()); - putInIniFile(file, "setup", "theme", setupDto.getTheme()); - putInIniFile(file, "setup", "port", setupDto.getPort()); + if (file.createNewFile()) + { + putInIniFile(file, "serverName", setupDto.getServerName()); + putInIniFile(file, "theme", setupDto.getTheme()); + putInIniFile(file, "port", setupDto.getPort()); - Ward.restart(); + Ward.restart(); + } + else + { + throw new IOException(); + } + } + else + { + throw new ApplicationAlreadyConfiguredException(); } return new ResponseDto("Settings saved correctly"); diff --git a/src/main/java/org/bsoftware/ward/services/UptimeService.java b/src/main/java/org/bsoftware/ward/services/UptimeService.java new file mode 100644 index 00000000..d5d57a2f --- /dev/null +++ b/src/main/java/org/bsoftware/ward/services/UptimeService.java @@ -0,0 +1,32 @@ +package org.bsoftware.ward.services; + +import org.bsoftware.ward.dto.UptimeDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import oshi.SystemInfo; + +@Service +public class UptimeService +{ + @Autowired + private SystemInfo systemInfo; + + /** + * Gets uptime information + * + * @return UptimeDto with filled fields + */ + public UptimeDto getUptime() + { + UptimeDto uptimeDto = new UptimeDto(); + + long uptimeInSeconds = systemInfo.getOperatingSystem().getSystemUptime(); + + uptimeDto.setDays(String.format("%02d", (int) uptimeInSeconds / 86400)); + uptimeDto.setHours(String.format("%02d", (int) (uptimeInSeconds % 86400) / 3600)); + uptimeDto.setMinutes(String.format("%02d", (int) (uptimeInSeconds / 60) % 60)); + uptimeDto.setSeconds(String.format("%02d", (int) uptimeInSeconds % 60)); + + return uptimeDto; + } +} \ No newline at end of file diff --git a/src/main/java/org/bsoftware/ward/services/UsageService.java b/src/main/java/org/bsoftware/ward/services/UsageService.java index 0457f386..90d42214 100644 --- a/src/main/java/org/bsoftware/ward/services/UsageService.java +++ b/src/main/java/org/bsoftware/ward/services/UsageService.java @@ -2,7 +2,7 @@ import org.bsoftware.ward.Ward; import org.bsoftware.ward.dto.UsageDto; -import org.bsoftware.ward.exceptions.ApplicationNotSetUpException; +import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import oshi.SystemInfo; @@ -11,6 +11,7 @@ import oshi.software.os.FileSystem; import oshi.software.os.OSFileStore; import oshi.util.Util; + import java.util.Arrays; /** @@ -86,7 +87,7 @@ private int getStorage() * * @return ResponseEntityWrapperAsset filled with usageDto */ - public UsageDto getUsage() throws ApplicationNotSetUpException + public UsageDto getUsage() throws ApplicationNotConfiguredException { if (!Ward.isFirstLaunch()) { @@ -100,7 +101,7 @@ public UsageDto getUsage() throws ApplicationNotSetUpException } else { - throw new ApplicationNotSetUpException(); + throw new ApplicationNotConfiguredException(); } } } \ No newline at end of file diff --git a/src/main/resources/static/css/dimensions.css b/src/main/resources/static/css/dimensions.css index 7384ab68..5a7cb714 100644 --- a/src/main/resources/static/css/dimensions.css +++ b/src/main/resources/static/css/dimensions.css @@ -12,253 +12,252 @@ By example: --height-body */ -:root -{ - /* top */ - --top-logo: 2.188rem; - --top-logo-description: 5.300rem; - --top-clouds-first: 2.875rem; - --top-clouds-second: 2.875rem; - --top-main-settings-input: 0.125rem; - --top-main-settings-underline: 0.313rem; - --top-main-settings-select: 0.938rem; - --top-label-additional-settings: 2.300rem; - --top-additional-settings: 1.000rem; - --top-theme-buttons-input: 1.938rem; - --top-button-squares-grid: 0.222rem; - --top-port: 2.750rem; - --top-header: 1.500rem; - --top-label-hw-info: 0.562rem; - --top-card-body-squares-grid: 0.813rem; - --top-info-label: 4.188rem; - --top-inner-dot: 0.375rem; - --top-detailed-hw-info-div: 1.168rem; - --top-controls-img: 0.750rem; - --top-announcement: 3.813rem; - --top-contacts-label: 1.500rem; - --top-contacts-description-first: 3.125rem; - --top-contacts-description-second: 3.813rem; - --top-contacts-links-a-img: 4.906rem; - --top-uptime-rectangle-grid: 1.925rem; - --top-chart-label: 1.500rem; - --top-chart-triangle-grid: 0.500rem; - --top-chart-rectangle-grid: 1.906rem; - --top-chart-container: 3.375rem; - --top-code: 1.813rem; - --top-title: 3.500rem; - --top-explanation: 6.688rem; +:root { + /* top */ + --top-logo: 2.188rem; + --top-logo-description: 5.3rem; + --top-clouds-first: 2.875rem; + --top-clouds-second: 2.875rem; + --top-main-settings-input: 0.125rem; + --top-main-settings-underline: 0.313rem; + --top-main-settings-select: 0.938rem; + --top-label-additional-settings: 2.3rem; + --top-additional-settings: 1rem; + --top-theme-buttons-input: 1.938rem; + --top-button-squares-grid: 0.222rem; + --top-port: 2.75rem; + --top-header: 1.5rem; + --top-label-hw-info: 0.562rem; + --top-card-body-squares-grid: 0.813rem; + --top-info-label: 4.188rem; + --top-inner-dot: 0.375rem; + --top-detailed-hw-info-div: 1.168rem; + --top-controls-img: 0.75rem; + --top-announcement: 3.813rem; + --top-contacts-label: 1.5rem; + --top-contacts-description-first: 3.125rem; + --top-contacts-description-second: 3.813rem; + --top-contacts-links-a-img: 4.906rem; + --top-uptime-rectangle-grid: 1.925rem; + --top-chart-label: 1.5rem; + --top-chart-triangle-grid: 0.5rem; + --top-chart-rectangle-grid: 1.906rem; + --top-chart-container: 3.375rem; + --top-code: 1.813rem; + --top-title: 3.5rem; + --top-explanation: 6.688rem; - /* bottom */ - --bottom-form-squares-grid: 0.813rem; - --bottom-submit: 1.125rem; - --bottom-usage: 4.625rem; - --bottom-hw-usage-div: 0.250rem; - --bottom-card-footer-dots-grid-div: -0.750rem; - --bottom-uptime-squares-grid: 0.813rem; - --bottom-values-grid-div-p: 0.250rem; - --bottom-project-version: 1.250rem; - --bottom-error-div: 7.500rem; - --bottom-advice: 0.563rem; + /* bottom */ + --bottom-form-squares-grid: 0.813rem; + --bottom-submit: 1.125rem; + --bottom-usage: 4.625rem; + --bottom-hw-usage-div: 0.25rem; + --bottom-card-footer-dots-grid-div: -0.75rem; + --bottom-uptime-squares-grid: 0.813rem; + --bottom-values-grid-div-p: 0.25rem; + --bottom-project-version: 1.25rem; + --bottom-error-div: 7.5rem; + --bottom-advice: 0.563rem; - /* left */ - --left-clouds-second: 12.875rem; - --left-form-squares-grid: 9.250rem; - --left-main-settings: 1.500rem; - --left-button-squares-grid-first: 1.500rem; - --left-button-squares-grid-second: 19.688rem; - --left-theme-buttons-first: 1.500rem; - --left-port: 1.500rem; - --left-submit: 6.563rem; - --left-header: 1.500rem; - --left-label-hw-info: 4.375rem; - --left-usage: 1.500rem; - --card-footer-dots-grid-first: 2.906rem; - --card-footer-dots-grid-second: 10.187rem; - --card-footer-dots-grid-third: 17.468rem; - --left-inner-dot: 0.375rem; - --left-detailed-hw-info-first: 0.822rem; - --left-detailed-hw-info-second: 8.104rem; - --left-detailed-hw-info-third: 15.385rem; - --left-dividers-first: 7.313rem; - --left-dividers-second: 14.563rem; - --left-controls-first: 0.750rem; - --left-controls-second: 19.250rem; - --left-contacts-links-a-first: 8.075rem; - --left-contacts-links-a-second: 11.700rem; - --left-uptime-squares-grid: 9.250rem; - --left-uptime-rectangle-grid: 2.781rem; - --left-chart-label: 1.500rem; - --left-chart-triangle-grid-first: 34.375rem; - --left-chart-triangle-grid-second: 38.250rem; - --left-chart-triangle-grid-third: 42.125rem; - --left-chart-rectangle-grid-first: 33.250rem; - --left-chart-rectangle-grid-second: 37.125rem; - --left-chart-rectangle-grid-third: 41.000rem; - --left-chart-container: 1.500rem; - --left-error-div: 13.250rem; - --left-code: 1.813rem; - --left-title: 1.813rem; - --left-explanation: 1.813rem; + /* left */ + --left-clouds-second: 12.875rem; + --left-form-squares-grid: 9.25rem; + --left-main-settings: 1.5rem; + --left-button-squares-grid-first: 1.5rem; + --left-button-squares-grid-second: 19.688rem; + --left-theme-buttons-first: 1.5rem; + --left-port: 1.5rem; + --left-submit: 6.563rem; + --left-header: 1.5rem; + --left-label-hw-info: 4.375rem; + --left-usage: 1.5rem; + --card-footer-dots-grid-first: 2.906rem; + --card-footer-dots-grid-second: 10.187rem; + --card-footer-dots-grid-third: 17.468rem; + --left-inner-dot: 0.375rem; + --left-detailed-hw-info-first: 0.822rem; + --left-detailed-hw-info-second: 8.104rem; + --left-detailed-hw-info-third: 15.385rem; + --left-dividers-first: 7.313rem; + --left-dividers-second: 14.563rem; + --left-controls-first: 0.75rem; + --left-controls-second: 19.25rem; + --left-contacts-links-a-first: 8.075rem; + --left-contacts-links-a-second: 11.7rem; + --left-uptime-squares-grid: 9.25rem; + --left-uptime-rectangle-grid: 2.781rem; + --left-chart-label: 1.5rem; + --left-chart-triangle-grid-first: 34.375rem; + --left-chart-triangle-grid-second: 38.25rem; + --left-chart-triangle-grid-third: 42.125rem; + --left-chart-rectangle-grid-first: 33.25rem; + --left-chart-rectangle-grid-second: 37.125rem; + --left-chart-rectangle-grid-third: 41rem; + --left-chart-container: 1.5rem; + --left-error-div: 13.25rem; + --left-code: 1.813rem; + --left-title: 1.813rem; + --left-explanation: 1.813rem; - /* margin-right */ - --margin-right-form-squares-grid-div: 0.488rem; - --margin-right-theme-buttons-first: 1.938rem; - --margin-right-usage-value: 2.937rem; - --margin-right-uptime-squares-grid-div: 0.488rem; - --margin-right-values-grid-div: 0.125rem; - --margin-right-labels-grid-div: 0.125rem; + /* margin-right */ + --margin-right-form-squares-grid-div: 0.488rem; + --margin-right-theme-buttons-first: 1.938rem; + --margin-right-usage-value: 2.937rem; + --margin-right-uptime-squares-grid-div: 0.488rem; + --margin-right-values-grid-div: 0.125rem; + --margin-right-labels-grid-div: 0.125rem; - /* margin-bottom */ - --margin-bottom-label-main-settings: 0.438rem; - --margin-bottom-card: 1.875rem; - --margin-bottom-card-body-squares-grid-div: 0.750rem; - --margin-bottom-labels-grid-div: 0.313rem; + /* margin-bottom */ + --margin-bottom-label-main-settings: 0.438rem; + --margin-bottom-card: 1.875rem; + --margin-bottom-card-body-squares-grid-div: 0.75rem; + --margin-bottom-labels-grid-div: 0.313rem; - /* height */ - --height-body: 100%; - --height-setup: 26.706rem; - --height-setup-div: 26.706rem; - --height-clouds: 8.281rem; - --height-clouds-img: 5.438rem; - --height-background: 8.281rem; - --height-form: 18.425rem; - --height-form-squares-grid-div: 0.625rem; - --height-main-settings: 1.875rem; - --height-main-settings-underline: 0.313rem; - --height-main-settings-select: 1.875rem; - --height-theme-buttons-input: 2.188rem; - --height-button-squares-grid-div: 0.625rem;; - --height-port: 3.125rem; - --height-submit: 1.875rem; - --height-index-xl: 35.031rem; - --height-index-lg: 53.438rem; - --height-index-md: 53.438rem; - --height-hw-logo: 3.750rem; - --height-usage: 5.313rem; - --height-card-body-squares-grid-div: 0.625rem; - --height-main-hw-info: 100%; - --height-usage-value-span: 5.800rem; - --height-usage-underline: 0.313rem; - --height-footer: 3.125rem; - --height-card-footer-dots-grid-div: 1.500rem; - --height-inner-dot: 0.750rem; - --height-detailed-hw-info-div: 1.063rem; - --height-dividers-div: 3.125rem; - --height-controls: 2.625rem; - --height-controls-img: 1.875rem; - --height-contacts-links-a-img: 2.125rem; - --height-uptime: 8.270rem; - --height-uptime-squares-grid-div: 0.625rem; - --height-values-grid-div: 3.188rem; - --height-labels-grid-div: 0.813rem; - --height-chart-rectangle-grid-div: 0.625rem; - --height-chart-container: 11.688rem; - --height-error: 25.750rem; - --height-error-img: 19.313rem; - --height-error-div: 12.125rem; + /* height */ + --height-body: 100%; + --height-setup: 26.706rem; + --height-setup-div: 26.706rem; + --height-clouds: 8.281rem; + --height-clouds-img: 5.438rem; + --height-background: 8.281rem; + --height-form: 18.425rem; + --height-form-squares-grid-div: 0.625rem; + --height-main-settings: 1.875rem; + --height-main-settings-underline: 0.313rem; + --height-main-settings-select: 1.875rem; + --height-theme-buttons-input: 2.188rem; + --height-button-squares-grid-div: 0.625rem; + --height-port: 3.125rem; + --height-submit: 1.875rem; + --height-index-xl: 35.031rem; + --height-index-lg: 53.438rem; + --height-index-md: 53.438rem; + --height-hw-logo: 3.75rem; + --height-usage: 5.313rem; + --height-card-body-squares-grid-div: 0.625rem; + --height-main-hw-info: 100%; + --height-usage-value-span: 5.8rem; + --height-usage-underline: 0.313rem; + --height-footer: 3.125rem; + --height-card-footer-dots-grid-div: 1.5rem; + --height-inner-dot: 0.75rem; + --height-detailed-hw-info-div: 1.063rem; + --height-dividers-div: 3.125rem; + --height-controls: 2.625rem; + --height-controls-img: 1.875rem; + --height-contacts-links-a-img: 2.125rem; + --height-uptime: 8.27rem; + --height-uptime-squares-grid-div: 0.625rem; + --height-values-grid-div: 3.188rem; + --height-labels-grid-div: 0.813rem; + --height-chart-rectangle-grid-div: 0.625rem; + --height-chart-container: 11.688rem; + --height-error: 25.75rem; + --height-error-img: 19.313rem; + --height-error-div: 12.125rem; - /* max-height */ - --max-height-card: 16.562rem; + /* max-height */ + --max-height-card: 16.562rem; - /* min-height */ - --min-height-card: 16.562rem; + /* min-height */ + --min-height-card: 16.562rem; - /* width */ - --width-body: 100%; - --width-dhtmlx-message-area 21.875rem; - --width-setup-div: 21.875rem; - --width-logo: 21.875rem; - --width-logo-description: 21.875rem; - --width-clouds: 21.875rem; - --width-clouds-img: 4.375rem; - --width-background: 21.875rem; - --width-form: 21.875rem; - --width-form-squares-grid-div: 0.625rem; - --width-main-settings: 18.875rem; - --width-main-settings-input: 18.875rem; - --width-main-settings-underline: 18.875rem; - --width-main-settings-select: 18.875rem; - --width-theme-buttons-input: 9.063rem; - --width-button-squares-grid-div: 0.625rem; - --width-port: 18.875rem; - --width-submit: 8.750rem; - --width-hw-logo: 3.750rem; - --width-usage: 18.875rem; - --width-card-body-squares-grid-div: 0.625rem; - --width-usage-value-span: 2.224rem; - --width-info-label: 9.500rem; - --width-usage-underline: 9.500rem; - --width-footer: 100%; - --width-card-footer-dots-grid-div: 1.500rem; - --width-inner-dot: 0.750rem; - --width-detailed-hw-info-div: 5.625rem; - --width-dividers-div: 0.063rem; - --width-controls: 100%; - --width-controls-img: 1.875rem; - --width-announcement: 21.875rem; - --width-contacts-label: 21.875rem; - --width-contacts-description-div: 21.875rem; - --width-contacts-links-a-img: 2.125rem; - --width-uptime: 100%; - --width-uptime-squares-grid-div: 0.625rem; - --width-values-grid-div: 3.750rem; - --width-labels-grid-div: 3.750rem; - --width-chart-rectangle-grid-div: 3.125rem; - --width-chart-container: 42.625rem; - --width-error-img: 19.313rem; - --width-error-div: 23.875rem; - --width-advice: 23.875rem;; + /* width */ + --width-body: 100%; + --width-dhtmlx-message-area: 21.875rem; + --width-setup-div: 21.875rem; + --width-logo: 21.875rem; + --width-logo-description: 21.875rem; + --width-clouds: 21.875rem; + --width-clouds-img: 4.375rem; + --width-background: 21.875rem; + --width-form: 21.875rem; + --width-form-squares-grid-div: 0.625rem; + --width-main-settings: 18.875rem; + --width-main-settings-input: 18.875rem; + --width-main-settings-underline: 18.875rem; + --width-main-settings-select: 18.875rem; + --width-theme-buttons-input: 9.063rem; + --width-button-squares-grid-div: 0.625rem; + --width-port: 18.875rem; + --width-submit: 8.75rem; + --width-hw-logo: 3.75rem; + --width-usage: 18.875rem; + --width-card-body-squares-grid-div: 0.625rem; + --width-usage-value-span: 2.224rem; + --width-info-label: 9.5rem; + --width-usage-underline: 9.5rem; + --width-footer: 100%; + --width-card-footer-dots-grid-div: 1.5rem; + --width-inner-dot: 0.75rem; + --width-detailed-hw-info-div: 5.625rem; + --width-dividers-div: 0.063rem; + --width-controls: 100%; + --width-controls-img: 1.875rem; + --width-announcement: 21.875rem; + --width-contacts-label: 21.875rem; + --width-contacts-description-div: 21.875rem; + --width-contacts-links-a-img: 2.125rem; + --width-uptime: 100%; + --width-uptime-squares-grid-div: 0.625rem; + --width-values-grid-div: 3.75rem; + --width-labels-grid-div: 3.75rem; + --width-chart-rectangle-grid-div: 3.125rem; + --width-chart-container: 42.625rem; + --width-error-img: 19.313rem; + --width-error-div: 23.875rem; + --width-advice: 23.875rem; - /* max-width */ - --max-width-setup: 71.250rem; - --max-width-index-xl: 71.250rem; - --max-width-index-lg: 47.500rem; - --max-width-index-md: 23.750rem; - --max-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.750rem; - --max-width-col-lg-12-col-xl-8: 47.500rem; + /* max-width */ + --max-width-setup: 71.25rem; + --max-width-index-xl: 71.25rem; + --max-width-index-lg: 47.5rem; + --max-width-index-md: 23.75rem; + --max-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.75rem; + --max-width-col-lg-12-col-xl-8: 47.5rem; - /* min-width */ - --min-width-setup: 71.250rem; - --min-width-index-xl: 71.250rem; - --min-width-index-lg: 47.500rem; - --min-width-index-md: 23.750rem; - --min-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.750rem; - --min-width-col-lg-12-col-xl-8: 47.500rem; - --min-width-error: 71.250rem; + /* min-width */ + --min-width-setup: 71.25rem; + --min-width-index-xl: 71.25rem; + --min-width-index-lg: 47.5rem; + --min-width-index-md: 23.75rem; + --min-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.75rem; + --min-width-col-lg-12-col-xl-8: 47.5rem; + --min-width-error: 71.25rem; - /* border */ - --border-chart-container: 0.063rem; + /* border */ + --border-chart-container: 0.063rem; - /* border-width */ - --border-width-chart-triangle-grid-div: 0.438rem 0.438rem 0.000rem 0.438rem; + /* border-width */ + --border-width-chart-triangle-grid-div: 0.438rem 0.438rem 0rem 0.438rem; - /* border-radius */ - --border-radius-setup-div: 1.250rem; - --border-radius-port: 0.000rem 0.000rem 0.625rem 0.625rem; - --border-radius-card: 1.250rem; - --border-radius-hw-logo: 50%; - --border-radius-card-footer-dots-grid-div: 50%; - --border-radius-inner-dot: 50%; - --border-radius-error-img: 50%; - --border-radius-controls-img: 50%; - --border-radius-error-div: 1.250rem; + /* border-radius */ + --border-radius-setup-div: 1.25rem; + --border-radius-port: 0rem 0rem 0.625rem 0.625rem; + --border-radius-card: 1.25rem; + --border-radius-hw-logo: 50%; + --border-radius-card-footer-dots-grid-div: 50%; + --border-radius-inner-dot: 50%; + --border-radius-error-img: 50%; + --border-radius-controls-img: 50%; + --border-radius-error-div: 1.25rem; - /* letter-spacing */ - --letter-spacing-2px: 0.125rem; - --letter-spacing-5px: 0.313rem; - --letter-spacing-10px: 0.625rem; + /* letter-spacing */ + --letter-spacing-2px: 0.125rem; + --letter-spacing-5px: 0.313rem; + --letter-spacing-10px: 0.625rem; - /* transition */ - --transition-all: color 0.200s, background 0.200s, transform 0.070s, opacity 0.4s; + /* transition */ + --transition-all: color 0.2s, background 0.2s, transform 0.07s, opacity 0.4s; - /* transform */ - --transform-form-squares-grid-second: scale(1.3); - --transform-theme-buttons-input-active: scale(0.9); - --transform-submit-active: scale(0.9); - --transform-controls-first-active: scale(0.9); - --transform-controls-second-active: scale(0.9); - --transform-contacts-links-a-first-active: scale(0.9); - --transform-contacts-links-a-second-active: scale(0.9); - --transform-uptime-squares-grid-second: scale(1.3); - --transform-chart-rectangle-grid-div-active: scale(0.9); -} \ No newline at end of file + /* transform */ + --transform-form-squares-grid-second: scale(1.3); + --transform-theme-buttons-input-active: scale(0.9); + --transform-submit-active: scale(0.9); + --transform-controls-first-active: scale(0.9); + --transform-controls-second-active: scale(0.9); + --transform-contacts-links-a-first-active: scale(0.9); + --transform-contacts-links-a-second-active: scale(0.9); + --transform-uptime-squares-grid-second: scale(1.3); + --transform-chart-rectangle-grid-div-active: scale(0.9); +} diff --git a/src/main/resources/static/js/globals.js b/src/main/resources/static/js/globals.js index 45321042..a712c232 100644 --- a/src/main/resources/static/js/globals.js +++ b/src/main/resources/static/js/globals.js @@ -45,6 +45,11 @@ let usageXHR; */ let infoXHR; +/** + * Used for sending uptime requests + */ +let uptimeXHR; + /** * Used to hold values of processor usage */ diff --git a/src/main/resources/static/js/index.js b/src/main/resources/static/js/index.js index d551dd40..b7d4814b 100644 --- a/src/main/resources/static/js/index.js +++ b/src/main/resources/static/js/index.js @@ -29,14 +29,10 @@ function indexInitialization() usageXHR = new XMLHttpRequest(); infoXHR = new XMLHttpRequest(); + uptimeXHR = new XMLHttpRequest(); sendUsageRequest(); - setInterval(function() - { - sendInfoRequest(); - }, 1000); - firstControl.addEventListener("click", function(event) {changePage(event.target || event.srcElement)}); secondControl.addEventListener("click", function(event) {changePage(event.target || event.srcElement)}); } @@ -101,7 +97,7 @@ function sendUsageRequest() labelsTick(response); chartTick(response); - sendUsageRequest(); + sendInfoRequest(); } } @@ -125,10 +121,7 @@ function sendInfoRequest() currentTotalStorage.innerHTML = response.storage.total; currentDiskCount.innerHTML = response.storage.diskCount; - days.innerHTML = response.uptime.days; - hours.innerHTML = response.uptime.hours; - minutes.innerHTML = response.uptime.minutes; - seconds.innerHTML = response.uptime.seconds; + sendUptimeRequest(); } } @@ -136,6 +129,30 @@ function sendInfoRequest() infoXHR.send(); } +/** + * Sending ajax request to receive server uptime + */ +function sendUptimeRequest() +{ + infoXHR.onreadystatechange = function() + { + if ((this.readyState == 4) && (this.status == 200)) + { + let response = JSON.parse(this.response); + + days.innerHTML = response.days; + hours.innerHTML = response.hours; + minutes.innerHTML = response.minutes; + seconds.innerHTML = response.seconds; + + sendUsageRequest() + } + } + + infoXHR.open("GET", "/api/uptime"); + infoXHR.send(); +} + /** * Changes page * diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 46f66e7a..4c434443 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -1,8 +1,8 @@ - + - + @@ -224,10 +224,10 @@
-

-

-

-

+

+

+

+

DAYS
@@ -257,7 +257,7 @@
-
+
From 98b9d7ea0e98728315d6c2901ed833859369b0bc Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 17:34:05 +0000 Subject: [PATCH 002/201] update readme and links --- README.md | 26 ++++++++++++++++--------- pom.xml | 2 +- src/main/resources/templates/index.html | 4 ++-- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 58cd8183..a21f28e5 100644 --- a/README.md +++ b/README.md @@ -112,17 +112,25 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ Create your own jar - 1. Clone or dowload this github repository - 2. cd into directory with copy of this repository - 3. docker build -t ward/ward . - 4. docker run --rm -it --name ward -p 4000:4000 -p : --privileged ward - 5. Go to localhost:4000 in web browser, input the same application port - 6. If you get error after being redirected to application port try hitting refresh + 1. Clone the project + 2. Import project in your IDE as Maven project + 3. mvn clean package + 4. jar will be in the target folder
Run jar file - • Create you own jar as described above - • Execute jar on Windows or Linux with administrative rights - • Enter localhost:4000 and set up application + 1. Create you own jar as described above + 2. Execute jar on Windows or Linux with administrative rights + 3. Enter localhost:4000 and set up application + +
+ + Build for Docker + + 1. Clone the project + 2. docker build --tag ward + 3. docker run --rm -it --name ward -p 4000:4000 -p : --privileged ward + 4. Go to localhost:4000 in web browser, input the same application port + 5. If you get error after being redirected to application port try hitting refresh diff --git a/pom.xml b/pom.xml index 8ea5b875..71917fbb 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - org.b-software + dev.leons ward 2.0.0 jar diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 4c434443..e3affab6 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -202,10 +202,10 @@
You can also text author in Telegram
From 7665e20c806ff441ef9eb2b89ce911f04a6662b5 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 20:05:30 +0000 Subject: [PATCH 003/201] add docker file and rebrand --- Dockerfile | 21 +++++++++++++++++++ pom.xml | 1 + setup.ini | 2 +- .../bsoftware => dev/leons}/ward/Ward.java | 2 +- .../ward/components/ServletComponent.java | 4 ++-- .../ward/components/UtilitiesComponent.java | 4 ++-- .../configurations/BeanConfiguration.java | 2 +- .../ward/controllers/ErrorController.java | 4 ++-- .../ward/controllers/IndexController.java | 6 +++--- .../ward/controllers/InfoController.java | 8 +++---- .../ward/controllers/SetupController.java | 10 ++++----- .../ward/controllers/UptimeController.java | 6 +++--- .../ward/controllers/UsageController.java | 8 +++---- .../leons}/ward/dto/ErrorDto.java | 2 +- .../leons}/ward/dto/InfoDto.java | 2 +- .../leons}/ward/dto/MachineDto.java | 2 +- .../leons}/ward/dto/ProcessorDto.java | 2 +- .../leons}/ward/dto/ResponseDto.java | 2 +- .../leons}/ward/dto/SetupDto.java | 2 +- .../leons}/ward/dto/StorageDto.java | 2 +- .../leons}/ward/dto/UptimeDto.java | 2 +- .../leons}/ward/dto/UsageDto.java | 2 +- ...ApplicationAlreadyConfiguredException.java | 2 +- .../ApplicationNotConfiguredException.java | 2 +- .../handlers/ControllerExceptionHandler.java | 10 ++++----- .../leons}/ward/services/ErrorService.java | 6 +++--- .../leons}/ward/services/IndexService.java | 10 ++++----- .../leons}/ward/services/InfoService.java | 18 ++++++++-------- .../leons}/ward/services/SetupService.java | 10 ++++----- .../leons}/ward/services/UptimeService.java | 4 ++-- .../leons}/ward/services/UsageService.java | 8 +++---- 31 files changed, 94 insertions(+), 72 deletions(-) create mode 100644 Dockerfile rename src/main/java/{org/bsoftware => dev/leons}/ward/Ward.java (98%) rename src/main/java/{org/bsoftware => dev/leons}/ward/components/ServletComponent.java (95%) rename src/main/java/{org/bsoftware => dev/leons}/ward/components/UtilitiesComponent.java (93%) rename src/main/java/{org/bsoftware => dev/leons}/ward/configurations/BeanConfiguration.java (91%) rename src/main/java/{org/bsoftware => dev/leons}/ward/controllers/ErrorController.java (91%) rename src/main/java/{org/bsoftware => dev/leons}/ward/controllers/IndexController.java (86%) rename src/main/java/{org/bsoftware => dev/leons}/ward/controllers/InfoController.java (83%) rename src/main/java/{org/bsoftware => dev/leons}/ward/controllers/SetupController.java (83%) rename src/main/java/{org/bsoftware => dev/leons}/ward/controllers/UptimeController.java (87%) rename src/main/java/{org/bsoftware => dev/leons}/ward/controllers/UsageController.java (83%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/ErrorDto.java (95%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/InfoDto.java (93%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/MachineDto.java (94%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/ProcessorDto.java (94%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/ResponseDto.java (93%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/SetupDto.java (96%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/StorageDto.java (94%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/UptimeDto.java (93%) rename src/main/java/{org/bsoftware => dev/leons}/ward/dto/UsageDto.java (92%) rename src/main/java/{org/bsoftware => dev/leons}/ward/exceptions/ApplicationAlreadyConfiguredException.java (91%) rename src/main/java/{org/bsoftware => dev/leons}/ward/exceptions/ApplicationNotConfiguredException.java (91%) rename src/main/java/{org/bsoftware => dev/leons}/ward/handlers/ControllerExceptionHandler.java (90%) rename src/main/java/{org/bsoftware => dev/leons}/ward/services/ErrorService.java (88%) rename src/main/java/{org/bsoftware => dev/leons}/ward/services/IndexService.java (89%) rename src/main/java/{org/bsoftware => dev/leons}/ward/services/InfoService.java (94%) rename src/main/java/{org/bsoftware => dev/leons}/ward/services/SetupService.java (88%) rename src/main/java/{org/bsoftware => dev/leons}/ward/services/UptimeService.java (91%) rename src/main/java/{org/bsoftware => dev/leons}/ward/services/UsageService.java (94%) diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..866788c4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +# Base image with maven installed already +FROM maven:3.8.4-eclipse-temurin-17 as builder + +# Copy whole project inside docker +COPY . . + +# Build project +RUN mvn clean package + + +# Base image containing OpenJDK 8, maintained by RedHat +FROM eclipse-temurin:17-jre-centos7 + +# Copy jar and pom from builder image to working directory +COPY --from=builder target/*.jar /ward.jar +COPY --from=builder pom.xml /pom.xml + +EXPOSE 4000 + +# Run jar as sudo user on entry point +ENTRYPOINT java -jar ward.jar \ No newline at end of file diff --git a/pom.xml b/pom.xml index 71917fbb..2e570d5b 100644 --- a/pom.xml +++ b/pom.xml @@ -12,6 +12,7 @@ org.springframework.boot spring-boot-starter-parent 2.6.3 + diff --git a/setup.ini b/setup.ini index c8702c95..4d54f868 100644 --- a/setup.ini +++ b/setup.ini @@ -1,5 +1,5 @@ [setup] -serverName = antony +serverName = Ward theme = light port = 5000 diff --git a/src/main/java/org/bsoftware/ward/Ward.java b/src/main/java/dev/leons/ward/Ward.java similarity index 98% rename from src/main/java/org/bsoftware/ward/Ward.java rename to src/main/java/dev/leons/ward/Ward.java index 7afd55f6..6f5b24e2 100644 --- a/src/main/java/org/bsoftware/ward/Ward.java +++ b/src/main/java/dev/leons/ward/Ward.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward; +package dev.leons.ward; import lombok.Getter; import org.springframework.boot.ApplicationArguments; diff --git a/src/main/java/org/bsoftware/ward/components/ServletComponent.java b/src/main/java/dev/leons/ward/components/ServletComponent.java similarity index 95% rename from src/main/java/org/bsoftware/ward/components/ServletComponent.java rename to src/main/java/dev/leons/ward/components/ServletComponent.java index e3e4af71..2fedd92c 100644 --- a/src/main/java/org/bsoftware/ward/components/ServletComponent.java +++ b/src/main/java/dev/leons/ward/components/ServletComponent.java @@ -1,6 +1,6 @@ -package org.bsoftware.ward.components; +package dev.leons.ward.components; -import org.bsoftware.ward.Ward; +import dev.leons.ward.Ward; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.server.WebServerFactoryCustomizer; diff --git a/src/main/java/org/bsoftware/ward/components/UtilitiesComponent.java b/src/main/java/dev/leons/ward/components/UtilitiesComponent.java similarity index 93% rename from src/main/java/org/bsoftware/ward/components/UtilitiesComponent.java rename to src/main/java/dev/leons/ward/components/UtilitiesComponent.java index 78987d85..cc138dbe 100644 --- a/src/main/java/org/bsoftware/ward/components/UtilitiesComponent.java +++ b/src/main/java/dev/leons/ward/components/UtilitiesComponent.java @@ -1,6 +1,6 @@ -package org.bsoftware.ward.components; +package dev.leons.ward.components; -import org.bsoftware.ward.Ward; +import dev.leons.ward.Ward; import org.ini4j.Ini; import org.springframework.stereotype.Component; diff --git a/src/main/java/org/bsoftware/ward/configurations/BeanConfiguration.java b/src/main/java/dev/leons/ward/configurations/BeanConfiguration.java similarity index 91% rename from src/main/java/org/bsoftware/ward/configurations/BeanConfiguration.java rename to src/main/java/dev/leons/ward/configurations/BeanConfiguration.java index 0ba2453d..60dabefe 100644 --- a/src/main/java/org/bsoftware/ward/configurations/BeanConfiguration.java +++ b/src/main/java/dev/leons/ward/configurations/BeanConfiguration.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.configurations; +package dev.leons.ward.configurations; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/org/bsoftware/ward/controllers/ErrorController.java b/src/main/java/dev/leons/ward/controllers/ErrorController.java similarity index 91% rename from src/main/java/org/bsoftware/ward/controllers/ErrorController.java rename to src/main/java/dev/leons/ward/controllers/ErrorController.java index 6b30aaa8..d3815993 100644 --- a/src/main/java/org/bsoftware/ward/controllers/ErrorController.java +++ b/src/main/java/dev/leons/ward/controllers/ErrorController.java @@ -1,6 +1,6 @@ -package org.bsoftware.ward.controllers; +package dev.leons.ward.controllers; -import org.bsoftware.ward.services.ErrorService; +import dev.leons.ward.services.ErrorService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; diff --git a/src/main/java/org/bsoftware/ward/controllers/IndexController.java b/src/main/java/dev/leons/ward/controllers/IndexController.java similarity index 86% rename from src/main/java/org/bsoftware/ward/controllers/IndexController.java rename to src/main/java/dev/leons/ward/controllers/IndexController.java index 8dc7941f..00c5997a 100644 --- a/src/main/java/org/bsoftware/ward/controllers/IndexController.java +++ b/src/main/java/dev/leons/ward/controllers/IndexController.java @@ -1,7 +1,7 @@ -package org.bsoftware.ward.controllers; +package dev.leons.ward.controllers; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; -import org.bsoftware.ward.services.IndexService; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; +import dev.leons.ward.services.IndexService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; diff --git a/src/main/java/org/bsoftware/ward/controllers/InfoController.java b/src/main/java/dev/leons/ward/controllers/InfoController.java similarity index 83% rename from src/main/java/org/bsoftware/ward/controllers/InfoController.java rename to src/main/java/dev/leons/ward/controllers/InfoController.java index 433d7467..d9590b47 100644 --- a/src/main/java/org/bsoftware/ward/controllers/InfoController.java +++ b/src/main/java/dev/leons/ward/controllers/InfoController.java @@ -1,8 +1,8 @@ -package org.bsoftware.ward.controllers; +package dev.leons.ward.controllers; -import org.bsoftware.ward.dto.InfoDto; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; -import org.bsoftware.ward.services.InfoService; +import dev.leons.ward.dto.InfoDto; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; +import dev.leons.ward.services.InfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/org/bsoftware/ward/controllers/SetupController.java b/src/main/java/dev/leons/ward/controllers/SetupController.java similarity index 83% rename from src/main/java/org/bsoftware/ward/controllers/SetupController.java rename to src/main/java/dev/leons/ward/controllers/SetupController.java index 4ba0c736..6d40a0b6 100644 --- a/src/main/java/org/bsoftware/ward/controllers/SetupController.java +++ b/src/main/java/dev/leons/ward/controllers/SetupController.java @@ -1,9 +1,9 @@ -package org.bsoftware.ward.controllers; +package dev.leons.ward.controllers; -import org.bsoftware.ward.dto.ResponseDto; -import org.bsoftware.ward.dto.SetupDto; -import org.bsoftware.ward.exceptions.ApplicationAlreadyConfiguredException; -import org.bsoftware.ward.services.SetupService; +import dev.leons.ward.dto.ResponseDto; +import dev.leons.ward.exceptions.ApplicationAlreadyConfiguredException; +import dev.leons.ward.services.SetupService; +import dev.leons.ward.dto.SetupDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/org/bsoftware/ward/controllers/UptimeController.java b/src/main/java/dev/leons/ward/controllers/UptimeController.java similarity index 87% rename from src/main/java/org/bsoftware/ward/controllers/UptimeController.java rename to src/main/java/dev/leons/ward/controllers/UptimeController.java index e0539055..4397590e 100644 --- a/src/main/java/org/bsoftware/ward/controllers/UptimeController.java +++ b/src/main/java/dev/leons/ward/controllers/UptimeController.java @@ -1,7 +1,7 @@ -package org.bsoftware.ward.controllers; +package dev.leons.ward.controllers; -import org.bsoftware.ward.dto.UptimeDto; -import org.bsoftware.ward.services.UptimeService; +import dev.leons.ward.dto.UptimeDto; +import dev.leons.ward.services.UptimeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/org/bsoftware/ward/controllers/UsageController.java b/src/main/java/dev/leons/ward/controllers/UsageController.java similarity index 83% rename from src/main/java/org/bsoftware/ward/controllers/UsageController.java rename to src/main/java/dev/leons/ward/controllers/UsageController.java index a5cf2acf..32d12e49 100644 --- a/src/main/java/org/bsoftware/ward/controllers/UsageController.java +++ b/src/main/java/dev/leons/ward/controllers/UsageController.java @@ -1,8 +1,8 @@ -package org.bsoftware.ward.controllers; +package dev.leons.ward.controllers; -import org.bsoftware.ward.dto.UsageDto; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; -import org.bsoftware.ward.services.UsageService; +import dev.leons.ward.dto.UsageDto; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; +import dev.leons.ward.services.UsageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/org/bsoftware/ward/dto/ErrorDto.java b/src/main/java/dev/leons/ward/dto/ErrorDto.java similarity index 95% rename from src/main/java/org/bsoftware/ward/dto/ErrorDto.java rename to src/main/java/dev/leons/ward/dto/ErrorDto.java index 693e65bf..423d40cb 100644 --- a/src/main/java/org/bsoftware/ward/dto/ErrorDto.java +++ b/src/main/java/dev/leons/ward/dto/ErrorDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; diff --git a/src/main/java/org/bsoftware/ward/dto/InfoDto.java b/src/main/java/dev/leons/ward/dto/InfoDto.java similarity index 93% rename from src/main/java/org/bsoftware/ward/dto/InfoDto.java rename to src/main/java/dev/leons/ward/dto/InfoDto.java index 50ad7949..96b54c11 100644 --- a/src/main/java/org/bsoftware/ward/dto/InfoDto.java +++ b/src/main/java/dev/leons/ward/dto/InfoDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/dto/MachineDto.java b/src/main/java/dev/leons/ward/dto/MachineDto.java similarity index 94% rename from src/main/java/org/bsoftware/ward/dto/MachineDto.java rename to src/main/java/dev/leons/ward/dto/MachineDto.java index 51047293..65995044 100644 --- a/src/main/java/org/bsoftware/ward/dto/MachineDto.java +++ b/src/main/java/dev/leons/ward/dto/MachineDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/dto/ProcessorDto.java b/src/main/java/dev/leons/ward/dto/ProcessorDto.java similarity index 94% rename from src/main/java/org/bsoftware/ward/dto/ProcessorDto.java rename to src/main/java/dev/leons/ward/dto/ProcessorDto.java index f49350b6..25a107c2 100644 --- a/src/main/java/org/bsoftware/ward/dto/ProcessorDto.java +++ b/src/main/java/dev/leons/ward/dto/ProcessorDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/dto/ResponseDto.java b/src/main/java/dev/leons/ward/dto/ResponseDto.java similarity index 93% rename from src/main/java/org/bsoftware/ward/dto/ResponseDto.java rename to src/main/java/dev/leons/ward/dto/ResponseDto.java index d4af1dc5..a0b9811e 100644 --- a/src/main/java/org/bsoftware/ward/dto/ResponseDto.java +++ b/src/main/java/dev/leons/ward/dto/ResponseDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; diff --git a/src/main/java/org/bsoftware/ward/dto/SetupDto.java b/src/main/java/dev/leons/ward/dto/SetupDto.java similarity index 96% rename from src/main/java/org/bsoftware/ward/dto/SetupDto.java rename to src/main/java/dev/leons/ward/dto/SetupDto.java index 0b5915e7..715ee9fa 100644 --- a/src/main/java/org/bsoftware/ward/dto/SetupDto.java +++ b/src/main/java/dev/leons/ward/dto/SetupDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/dto/StorageDto.java b/src/main/java/dev/leons/ward/dto/StorageDto.java similarity index 94% rename from src/main/java/org/bsoftware/ward/dto/StorageDto.java rename to src/main/java/dev/leons/ward/dto/StorageDto.java index c1432d51..c123c729 100644 --- a/src/main/java/org/bsoftware/ward/dto/StorageDto.java +++ b/src/main/java/dev/leons/ward/dto/StorageDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/dto/UptimeDto.java b/src/main/java/dev/leons/ward/dto/UptimeDto.java similarity index 93% rename from src/main/java/org/bsoftware/ward/dto/UptimeDto.java rename to src/main/java/dev/leons/ward/dto/UptimeDto.java index 2057d389..a80ef44c 100644 --- a/src/main/java/org/bsoftware/ward/dto/UptimeDto.java +++ b/src/main/java/dev/leons/ward/dto/UptimeDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/dto/UsageDto.java b/src/main/java/dev/leons/ward/dto/UsageDto.java similarity index 92% rename from src/main/java/org/bsoftware/ward/dto/UsageDto.java rename to src/main/java/dev/leons/ward/dto/UsageDto.java index ce61c60c..2f52eb82 100644 --- a/src/main/java/org/bsoftware/ward/dto/UsageDto.java +++ b/src/main/java/dev/leons/ward/dto/UsageDto.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.dto; +package dev.leons.ward.dto; import lombok.Getter; import lombok.Setter; diff --git a/src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java b/src/main/java/dev/leons/ward/exceptions/ApplicationAlreadyConfiguredException.java similarity index 91% rename from src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java rename to src/main/java/dev/leons/ward/exceptions/ApplicationAlreadyConfiguredException.java index 274a42f1..c6c7c60d 100644 --- a/src/main/java/org/bsoftware/ward/exceptions/ApplicationAlreadyConfiguredException.java +++ b/src/main/java/dev/leons/ward/exceptions/ApplicationAlreadyConfiguredException.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.exceptions; +package dev.leons.ward.exceptions; /** * ApplicationAlreadyConfiguredException indicates that user tried to access api, when application is already configured diff --git a/src/main/java/org/bsoftware/ward/exceptions/ApplicationNotConfiguredException.java b/src/main/java/dev/leons/ward/exceptions/ApplicationNotConfiguredException.java similarity index 91% rename from src/main/java/org/bsoftware/ward/exceptions/ApplicationNotConfiguredException.java rename to src/main/java/dev/leons/ward/exceptions/ApplicationNotConfiguredException.java index 70cb4bc8..bb626be3 100644 --- a/src/main/java/org/bsoftware/ward/exceptions/ApplicationNotConfiguredException.java +++ b/src/main/java/dev/leons/ward/exceptions/ApplicationNotConfiguredException.java @@ -1,4 +1,4 @@ -package org.bsoftware.ward.exceptions; +package dev.leons.ward.exceptions; /** * ApplicationNotSetUpException indicates that user tried to access api, without setting up the application diff --git a/src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java b/src/main/java/dev/leons/ward/handlers/ControllerExceptionHandler.java similarity index 90% rename from src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java rename to src/main/java/dev/leons/ward/handlers/ControllerExceptionHandler.java index b6ed9bb5..f9239556 100644 --- a/src/main/java/org/bsoftware/ward/handlers/ControllerExceptionHandler.java +++ b/src/main/java/dev/leons/ward/handlers/ControllerExceptionHandler.java @@ -1,9 +1,9 @@ -package org.bsoftware.ward.handlers; +package dev.leons.ward.handlers; -import org.bsoftware.ward.components.UtilitiesComponent; -import org.bsoftware.ward.dto.ErrorDto; -import org.bsoftware.ward.exceptions.ApplicationAlreadyConfiguredException; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; +import dev.leons.ward.components.UtilitiesComponent; +import dev.leons.ward.dto.ErrorDto; +import dev.leons.ward.exceptions.ApplicationAlreadyConfiguredException; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; diff --git a/src/main/java/org/bsoftware/ward/services/ErrorService.java b/src/main/java/dev/leons/ward/services/ErrorService.java similarity index 88% rename from src/main/java/org/bsoftware/ward/services/ErrorService.java rename to src/main/java/dev/leons/ward/services/ErrorService.java index 45b700d6..1aa4c2e2 100644 --- a/src/main/java/org/bsoftware/ward/services/ErrorService.java +++ b/src/main/java/dev/leons/ward/services/ErrorService.java @@ -1,7 +1,7 @@ -package org.bsoftware.ward.services; +package dev.leons.ward.services; -import org.bsoftware.ward.Ward; -import org.bsoftware.ward.components.UtilitiesComponent; +import dev.leons.ward.Ward; +import dev.leons.ward.components.UtilitiesComponent; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; diff --git a/src/main/java/org/bsoftware/ward/services/IndexService.java b/src/main/java/dev/leons/ward/services/IndexService.java similarity index 89% rename from src/main/java/org/bsoftware/ward/services/IndexService.java rename to src/main/java/dev/leons/ward/services/IndexService.java index 1a10ae6e..cb4690a7 100644 --- a/src/main/java/org/bsoftware/ward/services/IndexService.java +++ b/src/main/java/dev/leons/ward/services/IndexService.java @@ -1,8 +1,8 @@ -package org.bsoftware.ward.services; +package dev.leons.ward.services; -import org.bsoftware.ward.Ward; -import org.bsoftware.ward.components.UtilitiesComponent; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; +import dev.leons.ward.Ward; +import dev.leons.ward.components.UtilitiesComponent; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.ui.Model; @@ -50,7 +50,7 @@ public class IndexService private String getVersion() throws IOException { Properties properties = new Properties(); - InputStream inputStream = getClass().getResourceAsStream("/META-INF/maven/org.b-software/ward/pom.properties"); + InputStream inputStream = getClass().getResourceAsStream("/META-INF/maven/dev.leons/ward/pom.properties"); if (inputStream != null) { diff --git a/src/main/java/org/bsoftware/ward/services/InfoService.java b/src/main/java/dev/leons/ward/services/InfoService.java similarity index 94% rename from src/main/java/org/bsoftware/ward/services/InfoService.java rename to src/main/java/dev/leons/ward/services/InfoService.java index c4291d7c..558f9b0f 100644 --- a/src/main/java/org/bsoftware/ward/services/InfoService.java +++ b/src/main/java/dev/leons/ward/services/InfoService.java @@ -1,12 +1,12 @@ -package org.bsoftware.ward.services; - -import org.bsoftware.ward.Ward; -import org.bsoftware.ward.components.UtilitiesComponent; -import org.bsoftware.ward.dto.InfoDto; -import org.bsoftware.ward.dto.MachineDto; -import org.bsoftware.ward.dto.ProcessorDto; -import org.bsoftware.ward.dto.StorageDto; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; +package dev.leons.ward.services; + +import dev.leons.ward.Ward; +import dev.leons.ward.dto.InfoDto; +import dev.leons.ward.dto.MachineDto; +import dev.leons.ward.dto.ProcessorDto; +import dev.leons.ward.dto.StorageDto; +import dev.leons.ward.components.UtilitiesComponent; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import oshi.SystemInfo; diff --git a/src/main/java/org/bsoftware/ward/services/SetupService.java b/src/main/java/dev/leons/ward/services/SetupService.java similarity index 88% rename from src/main/java/org/bsoftware/ward/services/SetupService.java rename to src/main/java/dev/leons/ward/services/SetupService.java index 3835243e..94944415 100644 --- a/src/main/java/org/bsoftware/ward/services/SetupService.java +++ b/src/main/java/dev/leons/ward/services/SetupService.java @@ -1,9 +1,9 @@ -package org.bsoftware.ward.services; +package dev.leons.ward.services; -import org.bsoftware.ward.Ward; -import org.bsoftware.ward.dto.ResponseDto; -import org.bsoftware.ward.dto.SetupDto; -import org.bsoftware.ward.exceptions.ApplicationAlreadyConfiguredException; +import dev.leons.ward.Ward; +import dev.leons.ward.dto.ResponseDto; +import dev.leons.ward.dto.SetupDto; +import dev.leons.ward.exceptions.ApplicationAlreadyConfiguredException; import org.ini4j.Ini; import org.springframework.stereotype.Service; diff --git a/src/main/java/org/bsoftware/ward/services/UptimeService.java b/src/main/java/dev/leons/ward/services/UptimeService.java similarity index 91% rename from src/main/java/org/bsoftware/ward/services/UptimeService.java rename to src/main/java/dev/leons/ward/services/UptimeService.java index d5d57a2f..81211cde 100644 --- a/src/main/java/org/bsoftware/ward/services/UptimeService.java +++ b/src/main/java/dev/leons/ward/services/UptimeService.java @@ -1,6 +1,6 @@ -package org.bsoftware.ward.services; +package dev.leons.ward.services; -import org.bsoftware.ward.dto.UptimeDto; +import dev.leons.ward.dto.UptimeDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import oshi.SystemInfo; diff --git a/src/main/java/org/bsoftware/ward/services/UsageService.java b/src/main/java/dev/leons/ward/services/UsageService.java similarity index 94% rename from src/main/java/org/bsoftware/ward/services/UsageService.java rename to src/main/java/dev/leons/ward/services/UsageService.java index 90d42214..c2b6788b 100644 --- a/src/main/java/org/bsoftware/ward/services/UsageService.java +++ b/src/main/java/dev/leons/ward/services/UsageService.java @@ -1,8 +1,8 @@ -package org.bsoftware.ward.services; +package dev.leons.ward.services; -import org.bsoftware.ward.Ward; -import org.bsoftware.ward.dto.UsageDto; -import org.bsoftware.ward.exceptions.ApplicationNotConfiguredException; +import dev.leons.ward.Ward; +import dev.leons.ward.dto.UsageDto; +import dev.leons.ward.exceptions.ApplicationNotConfiguredException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import oshi.SystemInfo; From 8f249cf1673035ac01aea2b84da39c85135e9a51 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 20:51:09 +0000 Subject: [PATCH 004/201] readme --- Dockerfile | 6 +++--- README.md | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 866788c4..762ab5bc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Base image with maven installed already -FROM maven:3.8.4-eclipse-temurin-17 as builder +FROM maven:eclipse-temurin as builder # Copy whole project inside docker COPY . . @@ -8,8 +8,8 @@ COPY . . RUN mvn clean package -# Base image containing OpenJDK 8, maintained by RedHat -FROM eclipse-temurin:17-jre-centos7 +# Base image containing OpenJDK 17 +FROM eclipse-temurin:17-jre # Copy jar and pom from builder image to working directory COPY --from=builder target/*.jar /ward.jar diff --git a/README.md b/README.md index a21f28e5..197d6793 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,21 @@ --- -### About +## Quick start + +### Docker + +* `docker run --rm -it -d --name ward -p 4000:4000 -p : --privileged antonyleons/ward` +* Go to localhost:4000 in web browser, input the same application port +* If you get error after being redirected to application port try hitting refresh + +### Java + +```console +java -jar ward.jar +``` + +# About Ward is a simple and and minimalistic server monitoring tool. Ward supports adaptive design system. Also it supports dark theme. It shows only principal information and can be used, if you want to see nice looking dashboard instead looking on bunch of numbers and graphs. From 9a9ec89db70a1cc0a2cffccd45bd22f67389e63d Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 20:52:59 +0000 Subject: [PATCH 005/201] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 197d6793..69d41657 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ --- -## Quick start +# Quick start ### Docker @@ -18,7 +18,7 @@ java -jar ward.jar ``` -# About +## About Ward is a simple and and minimalistic server monitoring tool. Ward supports adaptive design system. Also it supports dark theme. It shows only principal information and can be used, if you want to see nice looking dashboard instead looking on bunch of numbers and graphs. From dc1c9c3cf3c420273584ec681d3aa43455765def Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 21:00:47 +0000 Subject: [PATCH 006/201] jar download link --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 69d41657..1c0aab24 100644 --- a/README.md +++ b/README.md @@ -6,19 +6,21 @@ # Quick start -### Docker +## Docker * `docker run --rm -it -d --name ward -p 4000:4000 -p : --privileged antonyleons/ward` * Go to localhost:4000 in web browser, input the same application port * If you get error after being redirected to application port try hitting refresh -### Java +## Java + +Download the latest release from [here]("https://github.com/AntonyLeons/Ward/releases/latest") ```console java -jar ward.jar ``` -## About +### About Ward is a simple and and minimalistic server monitoring tool. Ward supports adaptive design system. Also it supports dark theme. It shows only principal information and can be used, if you want to see nice looking dashboard instead looking on bunch of numbers and graphs. From 817ab5dfc8aa3dfa655354e7c7a4b847207f02f8 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 21:01:47 +0000 Subject: [PATCH 007/201] fix link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1c0aab24..545227fd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ ## Java -Download the latest release from [here]("https://github.com/AntonyLeons/Ward/releases/latest") +Download the latest release from [here](https://github.com/AntonyLeons/Ward/releases/latest) ```console java -jar ward.jar From 0f706433d43f257a649fe252ed33387c3fab7e58 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 17 Feb 2022 22:43:11 +0000 Subject: [PATCH 008/201] restart by default --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 545227fd..64142f30 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Docker -* `docker run --rm -it -d --name ward -p 4000:4000 -p : --privileged antonyleons/ward` +* `docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -p : --privileged antonyleons/ward` * Go to localhost:4000 in web browser, input the same application port * If you get error after being redirected to application port try hitting refresh From aa001b9fb6dd575bfee42c29299d60e7354eab1a Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Fri, 18 Feb 2022 10:17:46 +0000 Subject: [PATCH 009/201] Create codeql-analysis.yml --- .github/workflows/codeql-analysis.yml | 70 +++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000..16a0b312 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,70 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ master ] + schedule: + - cron: '34 16 * * 5' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'java', 'javascript' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] + # Learn more about CodeQL language support at https://git.io/codeql-language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + # queries: ./path/to/local/query, your-org/your-repo/queries@main + + # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + # ℹ️ Command-line programs to run using the OS shell. + # 📚 https://git.io/JvXDl + + # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines + # and modify them (or add more) to build your code if your project + # uses a compiled language + + #- run: | + # make bootstrap + # make release + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 From 550d88f67e5be0654d9702fde8c3afd628594e53 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Fri, 18 Feb 2022 18:23:20 +0000 Subject: [PATCH 010/201] dark theme rework --- src/main/resources/static/css/layout.css | 2 + src/main/resources/static/css/themes.css | 61 +++++++++++----------- src/main/resources/static/js/chart.js | 64 ++++++++++++------------ 3 files changed, 64 insertions(+), 63 deletions(-) diff --git a/src/main/resources/static/css/layout.css b/src/main/resources/static/css/layout.css index 65150634..a3817c65 100644 --- a/src/main/resources/static/css/layout.css +++ b/src/main/resources/static/css/layout.css @@ -928,6 +928,7 @@ body font-weight: var(--font-weight-bold); color: var(--color-values-grid-div); background: var(--background-values-grid-div); + border-radius: 2px } .values-grid > div > p @@ -948,6 +949,7 @@ body font-weight: var(--font-weight-regular); color: var(--color-labels-grid-div); background: var(--background-labels-grid-div); + border-radius:2px } .chart-label diff --git a/src/main/resources/static/css/themes.css b/src/main/resources/static/css/themes.css index 8702345f..513f6e9b 100644 --- a/src/main/resources/static/css/themes.css +++ b/src/main/resources/static/css/themes.css @@ -104,29 +104,29 @@ html[theme = "light"] html[theme = "dark"] { /* color */ - --color-logo: var(--grey-light); - --color-logo-description: var(--grey-light); - --color-label-main-settings: var(--grey-light); - --color-main-settings-input: var(--white); - --color-main-settings-input-placeholder: var(--white); + --color-logo: var(--white); + --color-logo-description: var(--white); + --color-label-main-settings: var(--white); + --color-main-settings-input: var(--grey); + --color-main-settings-input-placeholder: var(--grey-light); --color-label-additional-settings: var(--grey-light); --color-theme-buttons-input: var(--grey); --color-port: var(--white); --color-port-placeholder: var(--white); --color-submit: var(--white); --color-hw-type: var(--white); - --color-hw-name: var(--grey); - --color-usage-value-span: var(--grey); + --color-hw-name: var(--white); + --color-usage-value-span: var(--white); --color-usage-postfix: var(--white); - --color-info-label: var(--grey-light); - --color-detailed-hw-info-div: var(--grey-light); + --color-info-label: var(--white); + --color-detailed-hw-info-div: var(--white); --color-announcement: var(--white); --color-contacts-label: var(--white); --color-contacts-description-div: var(--white); --color-uptime-dashboard-logo: var(--grey-light); - --color-uptime-dashboard-logo-description: var(--grey-light); + --color-uptime-dashboard-logo-description: var(--white); --color-values-grid-div: var(--white); - --color-labels-grid-div: var(--grey-light); + --color-labels-grid-div: var(--white); --color-chart-label: var(--white); --color-project-version: var(--white); --color-code: var(--white); @@ -151,36 +151,35 @@ html[theme = "dark"] --background-port: var(--grey); --background-submit: var(--grey-light); --background-card: var(--grey-dark); - --background-hw-logo-first: var(--grey); - --background-hw-logo-second: var(--grey); - --background-hw-logo-third: var(--grey); + --background-hw-logo-first: var(--blue-light); + --background-hw-logo-second: var(--red-light); + --background-hw-logo-third: var(--green-light); --background-card-body-squares-grid-first-div: var(--grey); --background-card-body-squares-grid-second-div: var(--grey); --background-card-body-squares-grid-third-div: var(--grey); - --background-usage-underline-first: var(--grey); - --background-usage-underline-second: var(--grey); - --background-usage-underline-third: var(--grey); - --background-footer-first: var(--grey); - --background-footer-first-card-footer-dots-grid-div-inner-dot: var(--grey-light); - --background-footer-second: var(--grey); - --background-footer-second-card-footer-dots-grid-div-inner-dot: var(--grey-light); - --background-footer-third: var(--grey); - --background-footer-third-card-footer-dots-grid-div-inner-dot: var(--grey-light); - --background-card-footer-dots-grid-div: var(--grey-dark); + --background-usage-underline-first: var(--blue-light); + --background-usage-underline-second: var(--red-light); + --background-usage-underline-third: var(--green-light); + --background-footer-first: var(--blue); + --background-footer-first-card-footer-dots-grid-div-inner-dot: var(--blue-light); + --background-footer-second: var(--red); + --background-footer-second-card-footer-dots-grid-div-inner-dot: var(--red-light); + --background-footer-third: var(--green); + --background-footer-third-card-footer-dots-grid-div-inner-dot: var(--green-light); --background-dividers-div: var(--grey-dark); - --background-uptime: var(--linear-gradient-uptime-dark); + --background-uptime: var(--grey-dark); --background-uptime-squares-grid-first: var(--grey-light); --background-uptime-squares-grid-second: var(--grey-light); --background-uptime-squares-grid-third: var(--grey-light); --background-values-grid-div: var(--grey-opacity-70); --background-labels-grid-div: var(--grey-opacity-90); - --background-chart-rectangle-grid-first: var(--grey); - --background-chart-rectangle-grid-second: var(--grey); - --background-chart-rectangle-grid-third: var(--grey); + --background-chart-rectangle-grid-first: var(--blue-light); + --background-chart-rectangle-grid-second: var(--red-light); + --background-chart-rectangle-grid-third: var(--green-light); --background-error-div: var(--grey-dark); /* border-color */ - --border-color-chart-triangle-grid-first: var(--grey-light); - --border-color-chart-triangle-grid-second: var(--grey-light); - --border-color-chart-triangle-grid-third: var(--grey-light); + --border-color-chart-triangle-grid-first: var(--blue); + --border-color-chart-triangle-grid-second: var(--red); + --border-color-chart-triangle-grid-third: var(--green); } \ No newline at end of file diff --git a/src/main/resources/static/js/chart.js b/src/main/resources/static/js/chart.js index a6cd0271..51cb580b 100644 --- a/src/main/resources/static/js/chart.js +++ b/src/main/resources/static/js/chart.js @@ -61,38 +61,38 @@ function chartInitialization() { labels: ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], datasets: - [ - { - borderWidth: 1.5, - borderColor: "rgba(188, 188, 188, 1)", - pointRadius: 2, - pointHoverRadius: 3, - pointBackgroundColor: "rgba(255, 255, 255, 1)", - pointHoverBackgroundColor: "rgba(121, 121, 121, 1)", - backgroundColor: "rgba(121, 121, 121, 0.5)", - data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - }, - { - borderWidth: 1.5, - borderColor: "rgba(188, 188, 188, 1)", - pointRadius: 2, - pointHoverRadius: 3, - pointBackgroundColor: "rgba(255, 255, 255, 1)", - pointHoverBackgroundColor: "rgba(121, 121, 121, 1)", - backgroundColor: "rgba(121, 121, 121, 0.5)", - data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - }, - { - borderWidth: 1.5, - borderColor: "rgba(188, 188, 188, 1)", - pointRadius: 2, - pointHoverRadius: 3, - pointBackgroundColor: "rgba(255, 255, 255, 1)", - pointHoverBackgroundColor: "rgba(121, 121, 121, 1)", - backgroundColor: "rgba(121, 121, 121, 0.5)", - data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - } - ] + [ + { + borderWidth: 1.5, + borderColor: "rgba(89, 101, 249, 1)", + pointRadius: 2, + pointHoverRadius: 3, + pointBackgroundColor: "rgba(255, 255, 255, 1)", + pointHoverBackgroundColor: "rgba(230, 232, 254, 1)", + backgroundColor: "rgba(230, 232, 254, 0.3)", + data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + { + borderWidth: 1.5, + borderColor: "rgba(255, 89, 89, 1)", + pointRadius: 2, + pointHoverRadius: 3, + pointBackgroundColor: "rgba(255, 255, 255, 1)", + pointHoverBackgroundColor: "rgba(249, 226, 226, 1)", + backgroundColor: "rgba(249, 226, 226, 0.3)", + data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + }, + { + borderWidth: 1.5, + borderColor: "rgba(8, 193, 141, 1)", + pointRadius: 2, + pointHoverRadius: 3, + pointBackgroundColor: "rgba(255, 255, 255, 1)", + pointHoverBackgroundColor: "rgba(212, 242, 225, 1)", + backgroundColor: "rgba(212, 242, 225, 0.3)", + data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + } + ] } } let options = From d02ddd0dc1798c0befb0456544e7148eda2cdded Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Fri, 18 Feb 2022 21:45:17 +0000 Subject: [PATCH 011/201] Update 500.html --- src/main/resources/templates/error/500.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html index 95b0f114..9b940c3c 100644 --- a/src/main/resources/templates/error/500.html +++ b/src/main/resources/templates/error/500.html @@ -29,7 +29,7 @@
While we go down this rabbit hole.
Please go outside and enjoy the sunshine.
-
Open an issue on Github
+
Open an issue on Github
From 044e6078ccd4550075418c225b803962a9bcdc07 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Fri, 18 Feb 2022 22:11:50 +0000 Subject: [PATCH 012/201] 2.0.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2e570d5b..ab950b81 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.0.0 + 2.0.1 jar From 9a2064c566e94f75a04d755fd2a2aa2021393eb0 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 23 Feb 2022 18:11:37 -0500 Subject: [PATCH 013/201] Add Config section to readme (#2) --- README.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/README.md b/README.md index 64142f30..3cb22a5d 100644 --- a/README.md +++ b/README.md @@ -150,3 +150,28 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ 3. docker run --rm -it --name ward -p 4000:4000 -p : --privileged ward 4. Go to localhost:4000 in web browser, input the same application port 5. If you get error after being redirected to application port try hitting refresh + +### Config + +If you want to change Ward's configuration, you can edit `setup.ini`. When using Docker, this file is located within the container at `/`. `setup.ini` is generated once you navigate to Ward's webpage and complete the initial setup. You can also make this file yourself before starting Ward and it will use your configuration. + +| Setting | Description | Default | +|------------|------------------------------|---------| +| serverName | Name shown in the interface. | | +| theme | Either `light` or `dark`. | | +| port | Port to listen on. | 4000 | + +For example: +```ini +[setup] +serverName = my-server +theme = dark +port = 8200 +``` + +If you're using Docker and you want to avoid the initial setup or have Ward listen on a different port right away, you could create a `setup.ini` on the host and copy it to the container: +```bash +docker cp setup.ini ward:/setup.ini +``` + +Then, just make sure you `docker restart ward`. From 05e9c69e771a8492e4ecc7f029a2fcfab417c45a Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 10 Mar 2022 03:18:33 +0000 Subject: [PATCH 014/201] bump oshi --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ab950b81..ebd4e193 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.1.2 + 6.1.3 5.10.0 1.18.22 0.5.4 From b583bbb66124c2133b65ef00f03fadabca3d3b0b Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 10 Mar 2022 03:25:31 +0000 Subject: [PATCH 015/201] 2.0.2 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ebd4e193..b90d9897 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.0.1 + 2.0.2 jar From f9a153c5fd0d659361c8c7244d7767385ab0a3c2 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 20 Mar 2022 15:49:08 +0000 Subject: [PATCH 016/201] Env setup creation (#5) * add env check * Create Ward.run.xml * enable one port and theme fixes * fix edge case * env setup * remove unnecessary check * update docs 2.1.0 --- .gitignore | 3 +- .run/Ward.run.xml | 10 ++++ README.md | 19 +++---- pom.xml | 2 +- setup.ini | 5 -- src/main/java/dev/leons/ward/Ward.java | 17 +++--- .../dev/leons/ward/services/SetupService.java | 54 +++++++++++++------ src/main/resources/static/css/themes.css | 6 +-- src/main/resources/static/js/setup.js | 12 ----- 9 files changed, 70 insertions(+), 58 deletions(-) create mode 100644 .run/Ward.run.xml delete mode 100644 setup.ini diff --git a/.gitignore b/.gitignore index 309b8748..c3eff11e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ .idea/ target/ *.iml -.vscode/ \ No newline at end of file +.vscode/ +setup.ini diff --git a/.run/Ward.run.xml b/.run/Ward.run.xml new file mode 100644 index 00000000..6a8b0954 --- /dev/null +++ b/.run/Ward.run.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 3cb22a5d..38d6491f 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ## Docker -* `docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -p : --privileged antonyleons/ward` +* `docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -e WARD_PORT=4000 -e WARD_THEME=dark --privileged antonyleons/ward` * Go to localhost:4000 in web browser, input the same application port * If you get error after being redirected to application port try hitting refresh @@ -153,14 +153,18 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ ### Config -If you want to change Ward's configuration, you can edit `setup.ini`. When using Docker, this file is located within the container at `/`. `setup.ini` is generated once you navigate to Ward's webpage and complete the initial setup. You can also make this file yourself before starting Ward and it will use your configuration. +If you want to change Ward's configuration, you can edit `setup.ini`. When using Docker, use the environment variables `WARD_NAME`,`WARD_THEME`, `WARD_PORT` to automatically regenerate this file at startup. Using any environment variable listed will enable the defaults below and immediately start Ward without the GUI setup. + + | Setting | Description | Default | |------------|------------------------------|---------| -| serverName | Name shown in the interface. | | -| theme | Either `light` or `dark`. | | +| serverName | Name shown in the interface. | Ward | +| theme | Either `light` or `dark`. | light | | port | Port to listen on. | 4000 | +Environment variables take priority and will regenerate this file with your variables. If no environment variables are set, `setup.ini` is generated once you navigate to Ward's webpage and complete the initial setup. You can also make this file yourself before starting Ward, and place it in the same directory. + For example: ```ini [setup] @@ -168,10 +172,3 @@ serverName = my-server theme = dark port = 8200 ``` - -If you're using Docker and you want to avoid the initial setup or have Ward listen on a different port right away, you could create a `setup.ini` on the host and copy it to the container: -```bash -docker cp setup.ini ward:/setup.ini -``` - -Then, just make sure you `docker restart ward`. diff --git a/pom.xml b/pom.xml index b90d9897..82ee5c02 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.0.2 + 2.1.0 jar diff --git a/setup.ini b/setup.ini deleted file mode 100644 index 4d54f868..00000000 --- a/setup.ini +++ /dev/null @@ -1,5 +0,0 @@ -[setup] -serverName = Ward -theme = light -port = 5000 - diff --git a/src/main/java/dev/leons/ward/Ward.java b/src/main/java/dev/leons/ward/Ward.java index 6f5b24e2..bcd5e2af 100644 --- a/src/main/java/dev/leons/ward/Ward.java +++ b/src/main/java/dev/leons/ward/Ward.java @@ -1,5 +1,6 @@ package dev.leons.ward; +import dev.leons.ward.services.SetupService; import lombok.Getter; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.SpringApplication; @@ -16,8 +17,7 @@ * @version 1.0.4 */ @SpringBootApplication -public class Ward extends SpringBootServletInitializer -{ +public class Ward extends SpringBootServletInitializer { /** * Constant for determine settings file name */ @@ -44,14 +44,16 @@ public class Ward extends SpringBootServletInitializer * * @param args Spring Boot application arguments */ - public static void main(final String[] args) - { + public static void main(final String[] args) { + isFirstLaunch = true; configurableApplicationContext = SpringApplication.run(Ward.class, args); File setupFile = new File(Ward.SETUP_FILE_PATH); - if (setupFile.exists()) - { + + if (System.getenv("WARD_NAME") != null || (System.getenv("WARD_THEME") != null) || (System.getenv("WARD_PORT") != null)) { + SetupService.envSetup(); + } else if (setupFile.exists()) { restart(); } } @@ -59,8 +61,7 @@ public static void main(final String[] args) /** * Restarts application */ - public static void restart() - { + public static void restart() { isFirstLaunch = false; ApplicationArguments args = configurableApplicationContext.getBean(ApplicationArguments.class); diff --git a/src/main/java/dev/leons/ward/services/SetupService.java b/src/main/java/dev/leons/ward/services/SetupService.java index 94944415..e865f4e9 100644 --- a/src/main/java/dev/leons/ward/services/SetupService.java +++ b/src/main/java/dev/leons/ward/services/SetupService.java @@ -17,8 +17,7 @@ * @version 1.0.2 */ @Service -public class SetupService -{ +public class SetupService { /** * Constant, that providing setup section name */ @@ -27,12 +26,11 @@ public class SetupService /** * Puts new data in ini file * - * @param file ini file + * @param file ini file * @param optionName option in section * @throws IOException if file does not exists */ - private void putInIniFile(final File file, final String optionName, final String value) throws IOException - { + private static void putInIniFile(final File file, final String optionName, final String value) throws IOException { Ini ini = new Ini(file); ini.put(SECTION_NAME, optionName, value); ini.store(); @@ -45,30 +43,52 @@ private void putInIniFile(final File file, final String optionName, final String * @return ResponseEntityWrapperAsset filled with ResponseDto * @throws IOException IoException if file is fot found, and cant be created */ - public ResponseDto postSetup(final SetupDto setupDto) throws IOException, ApplicationAlreadyConfiguredException - { - if (Ward.isFirstLaunch()) - { + public ResponseDto postSetup(final SetupDto setupDto) throws IOException, ApplicationAlreadyConfiguredException { + if (Ward.isFirstLaunch()) { File file = new File(Ward.SETUP_FILE_PATH); - if (file.createNewFile()) - { + if (file.createNewFile()) { putInIniFile(file, "serverName", setupDto.getServerName()); putInIniFile(file, "theme", setupDto.getTheme()); putInIniFile(file, "port", setupDto.getPort()); Ward.restart(); - } - else - { + } else { throw new IOException(); } - } - else - { + } else { throw new ApplicationAlreadyConfiguredException(); } return new ResponseDto("Settings saved correctly"); } + + public static ResponseDto envSetup() { + if (Ward.isFirstLaunch()) { + try { + File file = new File(Ward.SETUP_FILE_PATH); + if (file.exists()) { + file.delete(); + } + if (file.createNewFile()) { + String servername = (System.getenv("WARD_NAME") != null) ? System.getenv("WARD_NAME") : "Ward"; + String theme = (System.getenv("WARD_THEME") != null) ? System.getenv("WARD_THEME").toLowerCase() : "light"; + String port = (System.getenv("WARD_PORT") != null) ? System.getenv("WARD_PORT") : "4000"; + + putInIniFile(file, "serverName", servername); + putInIniFile(file, "theme", theme); + putInIniFile(file, "port", port); + + Ward.restart(); + } else { + throw new IOException(); + } + + } catch (IOException e) { + e.printStackTrace(); + } + } + + return new ResponseDto("Settings saved correctly"); + } } \ No newline at end of file diff --git a/src/main/resources/static/css/themes.css b/src/main/resources/static/css/themes.css index 513f6e9b..783b9242 100644 --- a/src/main/resources/static/css/themes.css +++ b/src/main/resources/static/css/themes.css @@ -107,12 +107,12 @@ html[theme = "dark"] --color-logo: var(--white); --color-logo-description: var(--white); --color-label-main-settings: var(--white); - --color-main-settings-input: var(--grey); + --color-main-settings-input: var(--white); --color-main-settings-input-placeholder: var(--grey-light); - --color-label-additional-settings: var(--grey-light); + --color-label-additional-settings: var(--white); --color-theme-buttons-input: var(--grey); --color-port: var(--white); - --color-port-placeholder: var(--white); + --color-port-placeholder: var(--grey-light); --color-submit: var(--white); --color-hw-type: var(--white); --color-hw-name: var(--white); diff --git a/src/main/resources/static/js/setup.js b/src/main/resources/static/js/setup.js index 0ebf7b13..4b2eae26 100644 --- a/src/main/resources/static/js/setup.js +++ b/src/main/resources/static/js/setup.js @@ -120,18 +120,6 @@ function sendSetupRequest() "port": port.value } - if (port.value != 4000) - { setupXHR.send(JSON.stringify(data)); - } - else - { - let message = - { - text: "Choose other port", - type: ("") - } - dhtmlx.message(message); - } } \ No newline at end of file From 40c1ff41b125778f6489e78e38527cea54056fad Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 20 Mar 2022 16:07:25 +0000 Subject: [PATCH 017/201] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 38d6491f..99e14914 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,7 @@ ## Docker * `docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -e WARD_PORT=4000 -e WARD_THEME=dark --privileged antonyleons/ward` -* Go to localhost:4000 in web browser, input the same application port -* If you get error after being redirected to application port try hitting refresh +* Go to localhost:4000 in web browser ## Java From 122d0559e6afde8f22dbaf15b623888defdcb91d Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 20 Mar 2022 16:25:13 +0000 Subject: [PATCH 018/201] add demo page --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 99e14914..1faaac5d 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ --- +## [Demo](https://status.leons.dev) + # Quick start ## Docker From 697e89eace81c8353f4abb7f4ca2f401ed46a2ef Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 20 Mar 2022 16:28:35 +0000 Subject: [PATCH 019/201] fix errors in readme --- README.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1faaac5d..910c2f0d 100644 --- a/README.md +++ b/README.md @@ -148,16 +148,13 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ 1. Clone the project 2. docker build --tag ward - 3. docker run --rm -it --name ward -p 4000:4000 -p : --privileged ward - 4. Go to localhost:4000 in web browser, input the same application port - 5. If you get error after being redirected to application port try hitting refresh + 3. docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -e WARD_PORT=4000 -e WARD_THEME=dark --privileged ward + 4. Go to localhost:4000 in web browser ### Config If you want to change Ward's configuration, you can edit `setup.ini`. When using Docker, use the environment variables `WARD_NAME`,`WARD_THEME`, `WARD_PORT` to automatically regenerate this file at startup. Using any environment variable listed will enable the defaults below and immediately start Ward without the GUI setup. - - | Setting | Description | Default | |------------|------------------------------|---------| | serverName | Name shown in the interface. | Ward | @@ -167,6 +164,7 @@ If you want to change Ward's configuration, you can edit `setup.ini`. When using Environment variables take priority and will regenerate this file with your variables. If no environment variables are set, `setup.ini` is generated once you navigate to Ward's webpage and complete the initial setup. You can also make this file yourself before starting Ward, and place it in the same directory. For example: + ```ini [setup] serverName = my-server From e5098364843ab5f06c2e8fe4010d0668b0d92fe5 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 20 Mar 2022 17:52:26 +0000 Subject: [PATCH 020/201] add 999 day support --- pom.xml | 2 +- src/main/resources/static/css/dimensions.css | 464 +++++++++--------- src/main/resources/static/css/layout.css | 480 +++++++------------ 3 files changed, 402 insertions(+), 544 deletions(-) diff --git a/pom.xml b/pom.xml index 82ee5c02..35bbf8d9 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.1.0 + 2.1.1 jar diff --git a/src/main/resources/static/css/dimensions.css b/src/main/resources/static/css/dimensions.css index 5a7cb714..b9cbbcea 100644 --- a/src/main/resources/static/css/dimensions.css +++ b/src/main/resources/static/css/dimensions.css @@ -13,251 +13,253 @@ */ :root { - /* top */ - --top-logo: 2.188rem; - --top-logo-description: 5.3rem; - --top-clouds-first: 2.875rem; - --top-clouds-second: 2.875rem; - --top-main-settings-input: 0.125rem; - --top-main-settings-underline: 0.313rem; - --top-main-settings-select: 0.938rem; - --top-label-additional-settings: 2.3rem; - --top-additional-settings: 1rem; - --top-theme-buttons-input: 1.938rem; - --top-button-squares-grid: 0.222rem; - --top-port: 2.75rem; - --top-header: 1.5rem; - --top-label-hw-info: 0.562rem; - --top-card-body-squares-grid: 0.813rem; - --top-info-label: 4.188rem; - --top-inner-dot: 0.375rem; - --top-detailed-hw-info-div: 1.168rem; - --top-controls-img: 0.75rem; - --top-announcement: 3.813rem; - --top-contacts-label: 1.5rem; - --top-contacts-description-first: 3.125rem; - --top-contacts-description-second: 3.813rem; - --top-contacts-links-a-img: 4.906rem; - --top-uptime-rectangle-grid: 1.925rem; - --top-chart-label: 1.5rem; - --top-chart-triangle-grid: 0.5rem; - --top-chart-rectangle-grid: 1.906rem; - --top-chart-container: 3.375rem; - --top-code: 1.813rem; - --top-title: 3.5rem; - --top-explanation: 6.688rem; + /* top */ + --top-logo: 2.188rem; + --top-logo-description: 5.3rem; + --top-clouds-first: 2.875rem; + --top-clouds-second: 2.875rem; + --top-main-settings-input: 0.125rem; + --top-main-settings-underline: 0.313rem; + --top-main-settings-select: 0.938rem; + --top-label-additional-settings: 2.3rem; + --top-additional-settings: 1rem; + --top-theme-buttons-input: 1.938rem; + --top-button-squares-grid: 0.222rem; + --top-port: 2.75rem; + --top-header: 1.5rem; + --top-label-hw-info: 0.562rem; + --top-card-body-squares-grid: 0.813rem; + --top-info-label: 4.188rem; + --top-inner-dot: 0.375rem; + --top-detailed-hw-info-div: 1.168rem; + --top-controls-img: 0.75rem; + --top-announcement: 3.813rem; + --top-contacts-label: 1.5rem; + --top-contacts-description-first: 3.125rem; + --top-contacts-description-second: 3.813rem; + --top-contacts-links-a-img: 4.906rem; + --top-uptime-rectangle-grid: 1.925rem; + --top-chart-label: 1.5rem; + --top-chart-triangle-grid: 0.5rem; + --top-chart-rectangle-grid: 1.906rem; + --top-chart-container: 3.375rem; + --top-code: 1.813rem; + --top-title: 3.5rem; + --top-explanation: 6.688rem; - /* bottom */ - --bottom-form-squares-grid: 0.813rem; - --bottom-submit: 1.125rem; - --bottom-usage: 4.625rem; - --bottom-hw-usage-div: 0.25rem; - --bottom-card-footer-dots-grid-div: -0.75rem; - --bottom-uptime-squares-grid: 0.813rem; - --bottom-values-grid-div-p: 0.25rem; - --bottom-project-version: 1.25rem; - --bottom-error-div: 7.5rem; - --bottom-advice: 0.563rem; + /* bottom */ + --bottom-form-squares-grid: 0.813rem; + --bottom-submit: 1.125rem; + --bottom-usage: 4.625rem; + --bottom-hw-usage-div: 0.25rem; + --bottom-card-footer-dots-grid-div: -0.75rem; + --bottom-uptime-squares-grid: 0.813rem; + --bottom-values-grid-div-p: 0.25rem; + --bottom-project-version: 1.25rem; + --bottom-error-div: 7.5rem; + --bottom-advice: 0.563rem; - /* left */ - --left-clouds-second: 12.875rem; - --left-form-squares-grid: 9.25rem; - --left-main-settings: 1.5rem; - --left-button-squares-grid-first: 1.5rem; - --left-button-squares-grid-second: 19.688rem; - --left-theme-buttons-first: 1.5rem; - --left-port: 1.5rem; - --left-submit: 6.563rem; - --left-header: 1.5rem; - --left-label-hw-info: 4.375rem; - --left-usage: 1.5rem; - --card-footer-dots-grid-first: 2.906rem; - --card-footer-dots-grid-second: 10.187rem; - --card-footer-dots-grid-third: 17.468rem; - --left-inner-dot: 0.375rem; - --left-detailed-hw-info-first: 0.822rem; - --left-detailed-hw-info-second: 8.104rem; - --left-detailed-hw-info-third: 15.385rem; - --left-dividers-first: 7.313rem; - --left-dividers-second: 14.563rem; - --left-controls-first: 0.75rem; - --left-controls-second: 19.25rem; - --left-contacts-links-a-first: 8.075rem; - --left-contacts-links-a-second: 11.7rem; - --left-uptime-squares-grid: 9.25rem; - --left-uptime-rectangle-grid: 2.781rem; - --left-chart-label: 1.5rem; - --left-chart-triangle-grid-first: 34.375rem; - --left-chart-triangle-grid-second: 38.25rem; - --left-chart-triangle-grid-third: 42.125rem; - --left-chart-rectangle-grid-first: 33.25rem; - --left-chart-rectangle-grid-second: 37.125rem; - --left-chart-rectangle-grid-third: 41rem; - --left-chart-container: 1.5rem; - --left-error-div: 13.25rem; - --left-code: 1.813rem; - --left-title: 1.813rem; - --left-explanation: 1.813rem; + /* left */ + --left-clouds-second: 12.875rem; + --left-form-squares-grid: 9.25rem; + --left-main-settings: 1.5rem; + --left-button-squares-grid-first: 1.5rem; + --left-button-squares-grid-second: 19.688rem; + --left-theme-buttons-first: 1.5rem; + --left-port: 1.5rem; + --left-submit: 6.563rem; + --left-header: 1.5rem; + --left-label-hw-info: 4.375rem; + --left-usage: 1.5rem; + --card-footer-dots-grid-first: 2.906rem; + --card-footer-dots-grid-second: 10.187rem; + --card-footer-dots-grid-third: 17.468rem; + --left-inner-dot: 0.375rem; + --left-detailed-hw-info-first: 0.822rem; + --left-detailed-hw-info-second: 8.104rem; + --left-detailed-hw-info-third: 15.385rem; + --left-dividers-first: 7.313rem; + --left-dividers-second: 14.563rem; + --left-controls-first: 0.75rem; + --left-controls-second: 19.25rem; + --left-contacts-links-a-first: 8.075rem; + --left-contacts-links-a-second: 11.7rem; + --left-uptime-squares-grid: 9.25rem; + --left-uptime-rectangle-grid: 2.23rem; + --left-chart-label: 1.5rem; + --left-chart-triangle-grid-first: 34.375rem; + --left-chart-triangle-grid-second: 38.25rem; + --left-chart-triangle-grid-third: 42.125rem; + --left-chart-rectangle-grid-first: 33.25rem; + --left-chart-rectangle-grid-second: 37.125rem; + --left-chart-rectangle-grid-third: 41rem; + --left-chart-container: 1.5rem; + --left-error-div: 13.25rem; + --left-code: 1.813rem; + --left-title: 1.813rem; + --left-explanation: 1.813rem; - /* margin-right */ - --margin-right-form-squares-grid-div: 0.488rem; - --margin-right-theme-buttons-first: 1.938rem; - --margin-right-usage-value: 2.937rem; - --margin-right-uptime-squares-grid-div: 0.488rem; - --margin-right-values-grid-div: 0.125rem; - --margin-right-labels-grid-div: 0.125rem; + /* margin-right */ + --margin-right-form-squares-grid-div: 0.488rem; + --margin-right-theme-buttons-first: 1.938rem; + --margin-right-usage-value: 2.937rem; + --margin-right-uptime-squares-grid-div: 0.488rem; + --margin-right-values-grid-div: 0.125rem; + --margin-right-labels-grid-div: 0.125rem; - /* margin-bottom */ - --margin-bottom-label-main-settings: 0.438rem; - --margin-bottom-card: 1.875rem; - --margin-bottom-card-body-squares-grid-div: 0.75rem; - --margin-bottom-labels-grid-div: 0.313rem; + /* margin-bottom */ + --margin-bottom-label-main-settings: 0.438rem; + --margin-bottom-card: 1.875rem; + --margin-bottom-card-body-squares-grid-div: 0.75rem; + --margin-bottom-labels-grid-div: 0.313rem; - /* height */ - --height-body: 100%; - --height-setup: 26.706rem; - --height-setup-div: 26.706rem; - --height-clouds: 8.281rem; - --height-clouds-img: 5.438rem; - --height-background: 8.281rem; - --height-form: 18.425rem; - --height-form-squares-grid-div: 0.625rem; - --height-main-settings: 1.875rem; - --height-main-settings-underline: 0.313rem; - --height-main-settings-select: 1.875rem; - --height-theme-buttons-input: 2.188rem; - --height-button-squares-grid-div: 0.625rem; - --height-port: 3.125rem; - --height-submit: 1.875rem; - --height-index-xl: 35.031rem; - --height-index-lg: 53.438rem; - --height-index-md: 53.438rem; - --height-hw-logo: 3.75rem; - --height-usage: 5.313rem; - --height-card-body-squares-grid-div: 0.625rem; - --height-main-hw-info: 100%; - --height-usage-value-span: 5.8rem; - --height-usage-underline: 0.313rem; - --height-footer: 3.125rem; - --height-card-footer-dots-grid-div: 1.5rem; - --height-inner-dot: 0.75rem; - --height-detailed-hw-info-div: 1.063rem; - --height-dividers-div: 3.125rem; - --height-controls: 2.625rem; - --height-controls-img: 1.875rem; - --height-contacts-links-a-img: 2.125rem; - --height-uptime: 8.27rem; - --height-uptime-squares-grid-div: 0.625rem; - --height-values-grid-div: 3.188rem; - --height-labels-grid-div: 0.813rem; - --height-chart-rectangle-grid-div: 0.625rem; - --height-chart-container: 11.688rem; - --height-error: 25.75rem; - --height-error-img: 19.313rem; - --height-error-div: 12.125rem; + /* height */ + --height-body: 100%; + --height-setup: 26.706rem; + --height-setup-div: 26.706rem; + --height-clouds: 8.281rem; + --height-clouds-img: 5.438rem; + --height-background: 8.281rem; + --height-form: 18.425rem; + --height-form-squares-grid-div: 0.625rem; + --height-main-settings: 1.875rem; + --height-main-settings-underline: 0.313rem; + --height-main-settings-select: 1.875rem; + --height-theme-buttons-input: 2.188rem; + --height-button-squares-grid-div: 0.625rem; + --height-port: 3.125rem; + --height-submit: 1.875rem; + --height-index-xl: 35.031rem; + --height-index-lg: 53.438rem; + --height-index-md: 53.438rem; + --height-hw-logo: 3.75rem; + --height-usage: 5.313rem; + --height-card-body-squares-grid-div: 0.625rem; + --height-main-hw-info: 100%; + --height-usage-value-span: 5.8rem; + --height-usage-underline: 0.313rem; + --height-footer: 3.125rem; + --height-card-footer-dots-grid-div: 1.5rem; + --height-inner-dot: 0.75rem; + --height-detailed-hw-info-div: 1.063rem; + --height-dividers-div: 3.125rem; + --height-controls: 2.625rem; + --height-controls-img: 1.875rem; + --height-contacts-links-a-img: 2.125rem; + --height-uptime: 8.27rem; + --height-uptime-squares-grid-div: 0.625rem; + --height-values-grid-div: 3.188rem; + --height-labels-grid-div: 0.813rem; + --height-chart-rectangle-grid-div: 0.625rem; + --height-chart-container: 11.688rem; + --height-error: 25.75rem; + --height-error-img: 19.313rem; + --height-error-div: 12.125rem; - /* max-height */ - --max-height-card: 16.562rem; + /* max-height */ + --max-height-card: 16.562rem; - /* min-height */ - --min-height-card: 16.562rem; + /* min-height */ + --min-height-card: 16.562rem; - /* width */ - --width-body: 100%; - --width-dhtmlx-message-area: 21.875rem; - --width-setup-div: 21.875rem; - --width-logo: 21.875rem; - --width-logo-description: 21.875rem; - --width-clouds: 21.875rem; - --width-clouds-img: 4.375rem; - --width-background: 21.875rem; - --width-form: 21.875rem; - --width-form-squares-grid-div: 0.625rem; - --width-main-settings: 18.875rem; - --width-main-settings-input: 18.875rem; - --width-main-settings-underline: 18.875rem; - --width-main-settings-select: 18.875rem; - --width-theme-buttons-input: 9.063rem; - --width-button-squares-grid-div: 0.625rem; - --width-port: 18.875rem; - --width-submit: 8.75rem; - --width-hw-logo: 3.75rem; - --width-usage: 18.875rem; - --width-card-body-squares-grid-div: 0.625rem; - --width-usage-value-span: 2.224rem; - --width-info-label: 9.5rem; - --width-usage-underline: 9.5rem; - --width-footer: 100%; - --width-card-footer-dots-grid-div: 1.5rem; - --width-inner-dot: 0.75rem; - --width-detailed-hw-info-div: 5.625rem; - --width-dividers-div: 0.063rem; - --width-controls: 100%; - --width-controls-img: 1.875rem; - --width-announcement: 21.875rem; - --width-contacts-label: 21.875rem; - --width-contacts-description-div: 21.875rem; - --width-contacts-links-a-img: 2.125rem; - --width-uptime: 100%; - --width-uptime-squares-grid-div: 0.625rem; - --width-values-grid-div: 3.75rem; - --width-labels-grid-div: 3.75rem; - --width-chart-rectangle-grid-div: 3.125rem; - --width-chart-container: 42.625rem; - --width-error-img: 19.313rem; - --width-error-div: 23.875rem; - --width-advice: 23.875rem; + /* width */ + --width-body: 100%; + --width-dhtmlx-message-area: 21.875rem; + --width-setup-div: 21.875rem; + --width-logo: 21.875rem; + --width-logo-description: 21.875rem; + --width-clouds: 21.875rem; + --width-clouds-img: 4.375rem; + --width-background: 21.875rem; + --width-form: 21.875rem; + --width-form-squares-grid-div: 0.625rem; + --width-main-settings: 18.875rem; + --width-main-settings-input: 18.875rem; + --width-main-settings-underline: 18.875rem; + --width-main-settings-select: 18.875rem; + --width-theme-buttons-input: 9.063rem; + --width-button-squares-grid-div: 0.625rem; + --width-port: 18.875rem; + --width-submit: 8.75rem; + --width-hw-logo: 3.75rem; + --width-usage: 18.875rem; + --width-card-body-squares-grid-div: 0.625rem; + --width-usage-value-span: 2.224rem; + --width-info-label: 9.5rem; + --width-usage-underline: 9.5rem; + --width-footer: 100%; + --width-card-footer-dots-grid-div: 1.5rem; + --width-inner-dot: 0.75rem; + --width-detailed-hw-info-div: 5.625rem; + --width-dividers-div: 0.063rem; + --width-controls: 100%; + --width-controls-img: 1.875rem; + --width-announcement: 21.875rem; + --width-contacts-label: 21.875rem; + --width-contacts-description-div: 21.875rem; + --width-contacts-links-a-img: 2.125rem; + --width-uptime: 100%; + --width-uptime-squares-grid-div: 0.625rem; + --width-values-grid-div: 3.75rem; + --width-labels-grid-div: 3.75rem; + --day-width-values-grid-div: 5rem; + --day-width-labels-grid-div: 5rem; + --width-chart-rectangle-grid-div: 3.125rem; + --width-chart-container: 42.625rem; + --width-error-img: 19.313rem; + --width-error-div: 23.875rem; + --width-advice: 23.875rem; - /* max-width */ - --max-width-setup: 71.25rem; - --max-width-index-xl: 71.25rem; - --max-width-index-lg: 47.5rem; - --max-width-index-md: 23.75rem; - --max-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.75rem; - --max-width-col-lg-12-col-xl-8: 47.5rem; + /* max-width */ + --max-width-setup: 71.25rem; + --max-width-index-xl: 71.25rem; + --max-width-index-lg: 47.5rem; + --max-width-index-md: 23.75rem; + --max-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.75rem; + --max-width-col-lg-12-col-xl-8: 47.5rem; - /* min-width */ - --min-width-setup: 71.25rem; - --min-width-index-xl: 71.25rem; - --min-width-index-lg: 47.5rem; - --min-width-index-md: 23.75rem; - --min-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.75rem; - --min-width-col-lg-12-col-xl-8: 47.5rem; - --min-width-error: 71.25rem; + /* min-width */ + --min-width-setup: 71.25rem; + --min-width-index-xl: 71.25rem; + --min-width-index-lg: 47.5rem; + --min-width-index-md: 23.75rem; + --min-width-col-sm-12-col-md-6-col-lg-6-col-xl-4: 23.75rem; + --min-width-col-lg-12-col-xl-8: 47.5rem; + --min-width-error: 71.25rem; - /* border */ - --border-chart-container: 0.063rem; + /* border */ + --border-chart-container: 0.063rem; - /* border-width */ - --border-width-chart-triangle-grid-div: 0.438rem 0.438rem 0rem 0.438rem; + /* border-width */ + --border-width-chart-triangle-grid-div: 0.438rem 0.438rem 0rem 0.438rem; - /* border-radius */ - --border-radius-setup-div: 1.25rem; - --border-radius-port: 0rem 0rem 0.625rem 0.625rem; - --border-radius-card: 1.25rem; - --border-radius-hw-logo: 50%; - --border-radius-card-footer-dots-grid-div: 50%; - --border-radius-inner-dot: 50%; - --border-radius-error-img: 50%; - --border-radius-controls-img: 50%; - --border-radius-error-div: 1.25rem; + /* border-radius */ + --border-radius-setup-div: 1.25rem; + --border-radius-port: 0rem 0rem 0.625rem 0.625rem; + --border-radius-card: 1.25rem; + --border-radius-hw-logo: 50%; + --border-radius-card-footer-dots-grid-div: 50%; + --border-radius-inner-dot: 50%; + --border-radius-error-img: 50%; + --border-radius-controls-img: 50%; + --border-radius-error-div: 1.25rem; - /* letter-spacing */ - --letter-spacing-2px: 0.125rem; - --letter-spacing-5px: 0.313rem; - --letter-spacing-10px: 0.625rem; + /* letter-spacing */ + --letter-spacing-2px: 0.125rem; + --letter-spacing-5px: 0.313rem; + --letter-spacing-10px: 0.625rem; - /* transition */ - --transition-all: color 0.2s, background 0.2s, transform 0.07s, opacity 0.4s; + /* transition */ + --transition-all: color 0.2s, background 0.2s, transform 0.07s, opacity 0.4s; - /* transform */ - --transform-form-squares-grid-second: scale(1.3); - --transform-theme-buttons-input-active: scale(0.9); - --transform-submit-active: scale(0.9); - --transform-controls-first-active: scale(0.9); - --transform-controls-second-active: scale(0.9); - --transform-contacts-links-a-first-active: scale(0.9); - --transform-contacts-links-a-second-active: scale(0.9); - --transform-uptime-squares-grid-second: scale(1.3); - --transform-chart-rectangle-grid-div-active: scale(0.9); + /* transform */ + --transform-form-squares-grid-second: scale(1.3); + --transform-theme-buttons-input-active: scale(0.9); + --transform-submit-active: scale(0.9); + --transform-controls-first-active: scale(0.9); + --transform-controls-second-active: scale(0.9); + --transform-contacts-links-a-first-active: scale(0.9); + --transform-contacts-links-a-second-active: scale(0.9); + --transform-uptime-squares-grid-second: scale(1.3); + --transform-chart-rectangle-grid-div-active: scale(0.9); } diff --git a/src/main/resources/static/css/layout.css b/src/main/resources/static/css/layout.css index a3817c65..30db4e51 100644 --- a/src/main/resources/static/css/layout.css +++ b/src/main/resources/static/css/layout.css @@ -10,14 +10,12 @@ */ /* base elements */ -* -{ +* { font-family: var(--font-family-roboto); transition: var(--transition-all); } -body -{ +body { position: fixed; top: 0; left: 0; @@ -26,8 +24,7 @@ body background: var(--background-body); } -.logo -{ +.logo { position: absolute; top: var(--top-logo); z-index: 1; @@ -39,8 +36,7 @@ body color: var(--color-logo); } -.logo-description -{ +.logo-description { position: absolute; top: var(--top-logo-description); z-index: 1; @@ -52,34 +48,29 @@ body color: var(--color-logo-description); } -.clouds -{ +.clouds { height: var(--height-clouds); width: var(--width-clouds); overflow: hidden; } -.clouds > img -{ +.clouds > img { position: relative; z-index: 1; height: var(--height-clouds-img); width: var(--width-clouds-img); } -.clouds > .first -{ +.clouds > .first { top: var(--top-clouds-first); } -.clouds > .second -{ +.clouds > .second { top: var(--top-clouds-second); left: var(--left-clouds-second); } -.background -{ +.background { position: absolute; top: 0; height: var(--height-background); @@ -87,20 +78,17 @@ body } /* setup elements */ -.dhtmlx_message_area -{ +.dhtmlx_message_area { width: var(--width-dhtmlx-message-area); } -.setup -{ +.setup { margin-top: calc((100vh / 2) - (var(--height-setup) / 2)); max-width: var(--max-width-setup); min-width: var(--min-width-setup); } -.setup-div -{ +.setup-div { display: block; position: relative; margin: auto; @@ -116,8 +104,7 @@ body animation-fill-mode: forwards; } -.form -{ +.form { position: absolute; bottom: 0; left: 0; @@ -126,15 +113,13 @@ body background: var(--background-form); } -.form-squares-grid -{ +.form-squares-grid { position: relative; bottom: var(--bottom-form-squares-grid); left: var(--left-form-squares-grid); } -.form-squares-grid > div -{ +.form-squares-grid > div { display: inline-block; margin-right: var(--margin-right-form-squares-grid-div); height: var(--height-form-squares-grid-div); @@ -142,24 +127,20 @@ body box-shadow: var(--box-shadow-form-squares-grid-div) var(--black-opacity-10); } -.form-squares-grid > .first -{ +.form-squares-grid > .first { background: var(--background-form-squares-grid-first); } -.form-squares-grid > .second -{ +.form-squares-grid > .second { background: var(--background-form-squares-grid-second); transform: var(--transform-form-squares-grid-second); } -.form-squares-grid > .third -{ +.form-squares-grid > .third { background: var(--background-form-squares-grid-third); } -.label-main-settings -{ +.label-main-settings { position: relative; margin-bottom: var(--margin-bottom-label-main-settings); text-align: center; @@ -169,17 +150,15 @@ body color: var(--color-label-main-settings); } -.main-settings -{ - position: relative; - left: var(--left-main-settings); - height: var(--height-main-settings); - width: var(--width-main-settings); - background: var(--background-main-settings); +.main-settings { + position: relative; + left: var(--left-main-settings); + height: var(--height-main-settings); + width: var(--width-main-settings); + background: var(--background-main-settings); } -.main-settings > input -{ +.main-settings > input { position: relative; top: var(--top-main-settings-input); width: var(--width-main-settings-input); @@ -192,28 +171,23 @@ body outline: none; } -.main-settings > input::placeholder -{ +.main-settings > input::placeholder { color: var(--color-main-settings-input-placeholder); } -.main-settings > input::-webkit-input-placeholder -{ +.main-settings > input::-webkit-input-placeholder { color: var(--color-main-settings-input-placeholder); } -.main-settings > input::-moz-placeholder -{ +.main-settings > input::-moz-placeholder { opacity: 1; } -.main-settings > input::-ms-clear -{ +.main-settings > input::-ms-clear { display: none; } -.main-settings > select -{ +.main-settings > select { position: relative; top: var(--top-main-settings-select); height: var(--height-main-settings-select); @@ -226,8 +200,7 @@ body outline: none; } -.main-settings-underline -{ +.main-settings-underline { position: relative; top: var(--top-main-settings-underline); height: var(--height-main-settings-underline); @@ -236,8 +209,7 @@ body box-shadow: var(--box-shadow-main-settings-underline) var(--black-opacity-10); } -.label-additional-settings -{ +.label-additional-settings { position: relative; top: var(--top-label-additional-settings); text-align: center; @@ -247,20 +219,17 @@ body color: var(--color-label-additional-settings); } -.additional-settings -{ +.additional-settings { position: relative; top: var(--top-additional-settings); } -.button-squares-grid -{ +.button-squares-grid { position: relative; top: var(--top-button-squares-grid); } -.button-squares-grid > div -{ +.button-squares-grid > div { display: inline-block; position: absolute; height: var(--height-button-squares-grid-div); @@ -269,8 +238,7 @@ body box-shadow: var(--box-shadow-button-squares-grid-div) var(--black-opacity-10); } -.button-squares-grid > .first -{ +.button-squares-grid > .first { left: var(--left-button-squares-grid-first); background: var(--background-button-squares-grid-first); animation: fade-in-square; @@ -278,15 +246,13 @@ body animation-fill-mode: forwards; } -.button-squares-grid > .second -{ +.button-squares-grid > .second { left: var(--left-button-squares-grid-second); visibility: hidden; background: var(--background-button-squares-grid-second); } -.theme-buttons > input -{ +.theme-buttons > input { position: relative; top: var(--top-theme-buttons-input); height: var(--height-theme-buttons-input); @@ -300,25 +266,21 @@ body box-shadow: var(--box-shadow-theme-buttons-input) var(--black-opacity-10); } -.theme-buttons > input:active -{ +.theme-buttons > input:active { transform: var(--transform-theme-buttons-input-active); } -.theme-buttons > .first -{ +.theme-buttons > .first { left: var(--left-theme-buttons-first); margin-right: var(--margin-right-theme-buttons-first); background: var(--background-theme-buttons-first); } -.theme-buttons > .second -{ +.theme-buttons > .second { background: var(--background-theme-buttons-second); } -.port -{ +.port { position: relative; top: var(--top-port); left: var(--left-port); @@ -335,31 +297,26 @@ body outline: none; } -.port::placeholder -{ +.port::placeholder { letter-spacing: 0; color: var(--color-port-placeholder); } -.port::-webkit-input-placeholder -{ +.port::-webkit-input-placeholder { letter-spacing: 0; color: var(--color-port-placeholder); } -.port::-moz-placeholder -{ +.port::-moz-placeholder { letter-spacing: 0; opacity: 1; } -.port::-ms-clear -{ +.port::-ms-clear { display: none; } -.submit -{ +.submit { position: absolute; bottom: var(--bottom-submit); left: var(--left-submit); @@ -376,58 +333,48 @@ body box-shadow: var(--box-shadow-submit) var(--black-opacity-10); } -.submit:active -{ +.submit:active { transform: var(--transform-submit-active); } /* index elements */ -.index -{ +.index { margin-top: calc((100vh / 2) - (var(--height-index-xl) / 2)); max-width: var(--max-width-index-xl); min-width: var(--min-width-index-xl); } -@media only screen and (max-width: 75rem) -{ - .index - { +@media only screen and (max-width: 75rem) { + .index { margin-top: calc((100vh / 2) - (var(--height-index-lg) / 2)); max-width: var(--max-width-index-lg); min-width: var(--min-width-index-lg); } } -@media only screen and (max-width: 48rem) -{ - .index - { +@media only screen and (max-width: 48rem) { + .index { margin-top: calc((100vh / 2) - (var(--height-index-md) / 2)); max-width: var(--max-width-index-md); min-width: var(--min-width-index-md); } - .sm-hidden - { + .sm-hidden { visibility: hidden; } } -.col-sm-12.col-md-6.col-lg-6.col-xl-4 -{ - max-width: var(--max-width-col-sm-12-col-md-6-col-lg-6-col-xl-4); - min-width: var(--min-width-col-sm-12-col-md-6-col-lg-6-col-xl-4); +.col-sm-12.col-md-6.col-lg-6.col-xl-4 { + max-width: var(--max-width-col-sm-12-col-md-6-col-lg-6-col-xl-4); + min-width: var(--min-width-col-sm-12-col-md-6-col-lg-6-col-xl-4); } -.col-lg-12.col-xl-8 -{ +.col-lg-12.col-xl-8 { max-width: var(--max-width-col-lg-12-col-xl-8); min-width: var(--min-width-col-lg-12-col-xl-8); } -.card -{ +.card { margin-bottom: var(--margin-bottom-card); max-height: var(--max-height-card); min-height: var(--min-height-card); @@ -439,59 +386,50 @@ body box-shadow: var(--box-shadow-card) var(--black-opacity-10); } -.header -{ +.header { position: relative; display: flex; top: var(--top-header); left: var(--left-header); } -.hw-logo -{ +.hw-logo { height: var(--height-hw-logo); width: var(--width-hw-logo); border-radius: var(--border-radius-hw-logo); } -.hw-logo.first -{ +.hw-logo.first { background: var(--background-hw-logo-first); } -.hw-logo.second -{ +.hw-logo.second { background: var(--background-hw-logo-second); } -.hw-logo.third -{ +.hw-logo.third { background: var(--background-hw-logo-third); } -.label-hw-info -{ +.label-hw-info { position: absolute; top: var(--top-label-hw-info); left: var(--left-label-hw-info); } -.hw-type -{ +.hw-type { font-size: var(--font-size-18pt); font-weight: var(--font-weight-bold); color: var(--color-hw-type); } -.hw-name -{ +.hw-name { font-size: var(--font-size-12pt); font-weight: var(--font-weight-regular); color: var(--color-hw-name); } -.usage -{ +.usage { position: absolute; height: var(--height-usage); width: var(--width-usage); @@ -499,43 +437,36 @@ body left: var(--left-usage); } -.card-body-squares-grid -{ +.card-body-squares-grid { position: absolute; top: var(--top-card-body-squares-grid); } -.card-body-squares-grid > div -{ +.card-body-squares-grid > div { margin-bottom: var(--margin-bottom-card-body-squares-grid-div); height: var(--height-card-body-squares-grid-div); width: var(--width-card-body-squares-grid-div); } -.card-body-squares-grid.first > div -{ +.card-body-squares-grid.first > div { background: var(--background-card-body-squares-grid-first-div); } -.card-body-squares-grid.second > div -{ +.card-body-squares-grid.second > div { background: var(--background-card-body-squares-grid-second-div); } -.card-body-squares-grid.third > div -{ +.card-body-squares-grid.third > div { background: var(--background-card-body-squares-grid-third-div); } -.main-hw-info -{ +.main-hw-info { position: absolute; right: 0; height: var(--height-main-hw-info); } -.hw-usage > div -{ +.hw-usage > div { position: absolute; right: 0; bottom: var(--bottom-hw-usage-div); @@ -543,14 +474,12 @@ body font-weight: var(--font-weight-bold); } -.usage-value -{ +.usage-value { display: flex; margin-right: var(--margin-right-usage-value); } -.usage-value > span -{ +.usage-value > span { position: relative; height: var(--height-usage-value-span); width: var(--width-usage-value-span); @@ -559,28 +488,23 @@ body animation-duration: var(--animation-duration-wiggle-usage-value); } -.usage-value > .first -{ +.usage-value > .first { animation-delay: var(--animation-delay-usage-value-first); } -.usage-value > .second -{ +.usage-value > .second { animation-delay: var(--animation-delay-usage-value-second); } -.usage-value > .third -{ +.usage-value > .third { animation-delay: var(--animation-delay-usage-value-third); } -.usage-postfix -{ +.usage-postfix { color: var(--color-usage-postfix); } -.info-label -{ +.info-label { position: relative; top: var(--top-info-label); width: var(--width-info-label); @@ -591,8 +515,7 @@ body background: transparent; } -.usage-underline -{ +.usage-underline { position: absolute; right: 0; bottom: 0; @@ -600,23 +523,19 @@ body width: var(--width-usage-underline); } -.usage-underline.first -{ +.usage-underline.first { background: var(--background-usage-underline-first); } -.usage-underline.second -{ +.usage-underline.second { background: var(--background-usage-underline-second); } -.usage-underline.third -{ +.usage-underline.third { background: var(--background-usage-underline-third); } -.footer -{ +.footer { position: absolute; bottom: 0; left: 0; @@ -624,43 +543,35 @@ body width: var(--width-footer); } -.footer.first -{ +.footer.first { background: var(--background-footer-first); } -.footer.first > .card-footer-dots-grid > div > .inner-dot -{ +.footer.first > .card-footer-dots-grid > div > .inner-dot { background: var(--background-footer-first-card-footer-dots-grid-div-inner-dot); } -.footer.second -{ +.footer.second { background: var(--background-footer-second); } -.footer.second > .card-footer-dots-grid > div > .inner-dot -{ +.footer.second > .card-footer-dots-grid > div > .inner-dot { background: var(--background-footer-second-card-footer-dots-grid-div-inner-dot); } -.footer.third -{ +.footer.third { background: var(--background-footer-third); } -.footer.third > .card-footer-dots-grid > div > .inner-dot -{ +.footer.third > .card-footer-dots-grid > div > .inner-dot { background: var(--background-footer-third-card-footer-dots-grid-div-inner-dot); } -.card-footer-dots-grid -{ +.card-footer-dots-grid { position: absolute; } -.card-footer-dots-grid > div -{ +.card-footer-dots-grid > div { display: inline-block; position: absolute; bottom: var(--bottom-card-footer-dots-grid-div); @@ -670,23 +581,19 @@ body background: var(--background-card-footer-dots-grid-div); } -.card-footer-dots-grid > .first -{ +.card-footer-dots-grid > .first { left: var(--card-footer-dots-grid-first); } -.card-footer-dots-grid > .second -{ +.card-footer-dots-grid > .second { left: var(--card-footer-dots-grid-second); } -.card-footer-dots-grid > .third -{ +.card-footer-dots-grid > .third { left: var(--card-footer-dots-grid-third); } -.inner-dot -{ +.inner-dot { position: absolute; top: var(--top-inner-dot); left: var(--left-inner-dot); @@ -695,13 +602,11 @@ body border-radius: var(--border-radius-inner-dot); } -.detailed-hw-info -{ +.detailed-hw-info { position: absolute; } -.detailed-hw-info > div -{ +.detailed-hw-info > div { display: inline-block; position: absolute; top: var(--top-detailed-hw-info-div); @@ -713,28 +618,23 @@ body color: var(--color-detailed-hw-info-div); } -.detailed-hw-info > .first -{ +.detailed-hw-info > .first { left: var(--left-detailed-hw-info-first); } -.detailed-hw-info > .second -{ +.detailed-hw-info > .second { left: var(--left-detailed-hw-info-second); } -.detailed-hw-info > .third -{ +.detailed-hw-info > .third { left: var(--left-detailed-hw-info-third); } -.dividers -{ +.dividers { position: absolute; } -.dividers > div -{ +.dividers > div { display: inline-block; position: absolute; height: var(--height-dividers-div); @@ -742,25 +642,21 @@ body background: var(--background-dividers-div); } -.dividers > .first -{ +.dividers > .first { left: var(--left-dividers-first); } -.dividers > .second -{ +.dividers > .second { left: var(--left-dividers-second); } -.controls -{ +.controls { position: absolute; height: var(--height-controls); width: var(--width-controls); } -.controls > img -{ +.controls > img { position: absolute; top: var(--top-controls-img); z-index: 2; @@ -769,43 +665,36 @@ body border-radius: var(--border-radius-controls-img); } -.controls > .first -{ +.controls > .first { left: var(--left-controls-first); opacity: 0.5; animation: wiggle-first-control; animation-duration: var(--animation-duration-wiggle-first-control); } -.controls > .second -{ +.controls > .second { left: var(--left-controls-second); animation: wiggle-second-control; animation-duration: var(--animation-duration-wiggle-second-control); } -.controls > .first:active -{ +.controls > .first:active { transform: var(--transform-controls-first-active); } -.controls > .second:active -{ +.controls > .second:active { transform: var(--transform-controls-second-active); } -.pages -{ +.pages { position: absolute; } -.pages > div -{ +.pages > div { position: absolute; } -.contacts-label -{ +.contacts-label { position: absolute; top: var(--top-contacts-label); z-index: 1; @@ -817,8 +706,7 @@ body color: var(--color-contacts-label); } -.contacts-description > div -{ +.contacts-description > div { position: absolute; z-index: 1; width: var(--width-contacts-description-div); @@ -829,18 +717,15 @@ body color: var(--color-contacts-description-div); } -.contacts-description > .first -{ +.contacts-description > .first { top: var(--top-contacts-description-first); } -.contacts-description > .second -{ +.contacts-description > .second { top: var(--top-contacts-description-second); } -.contacts-links > a > img -{ +.contacts-links > a > img { position: absolute; top: var(--top-contacts-links-a-img); z-index: 1; @@ -848,28 +733,23 @@ body width: var(--width-contacts-links-a-img); } -.contacts-links > a > .first -{ +.contacts-links > a > .first { left: var(--left-contacts-links-a-first); } -.contacts-links > a > .first:active -{ +.contacts-links > a > .first:active { transform: var(--transform-contacts-links-a-first-active); } -.contacts-links > a > .second -{ +.contacts-links > a > .second { left: var(--left-contacts-links-a-second); } -.contacts-links > a > .second:active -{ +.contacts-links > a > .second:active { transform: var(--transform-contacts-links-a-second-active); } -.uptime -{ +.uptime { position: absolute; bottom: 0; left: 0; @@ -878,15 +758,13 @@ body background: var(--background-uptime); } -.uptime-squares-grid -{ +.uptime-squares-grid { position: relative; bottom: var(--bottom-uptime-squares-grid); left: var(--left-uptime-squares-grid); } -.uptime-squares-grid > div -{ +.uptime-squares-grid > div { display: inline-block; margin-right: var(--margin-right-uptime-squares-grid-div); height: var(--height-uptime-squares-grid-div); @@ -894,31 +772,26 @@ body box-shadow: var(--box-shadow-uptime-squares-grid-div) var(--black-opacity-10); } -.uptime-squares-grid > .first -{ +.uptime-squares-grid > .first { background: var(--background-uptime-squares-grid-first); } -.uptime-squares-grid > .second -{ +.uptime-squares-grid > .second { background: var(--background-uptime-squares-grid-second); transform: var(--transform-uptime-squares-grid-second); } -.uptime-squares-grid > .third -{ +.uptime-squares-grid > .third { background: var(--background-uptime-squares-grid-third); } -.uptime-rectangle-grid -{ +.uptime-rectangle-grid { position: absolute; top: var(--top-uptime-rectangle-grid); left: var(--left-uptime-rectangle-grid); } -.values-grid > div -{ +.values-grid > div { display: inline-block; margin-right: var(--margin-right-values-grid-div); height: var(--height-values-grid-div); @@ -931,14 +804,16 @@ body border-radius: 2px } -.values-grid > div > p -{ +.values-grid > div:first-child { + width: var(--day-width-values-grid-div); +} + +.values-grid > div > p { position: relative; bottom: var(--bottom-values-grid-div-p); } -.labels-grid > div -{ +.labels-grid > div { display: inline-block; margin-right: var(--margin-right-labels-grid-div); margin-bottom: var(--margin-bottom-labels-grid-div); @@ -949,11 +824,14 @@ body font-weight: var(--font-weight-regular); color: var(--color-labels-grid-div); background: var(--background-labels-grid-div); - border-radius:2px + border-radius: 2px +} + +.labels-grid > div:first-child { + width: var(--day-width-labels-grid-div); } -.chart-label -{ +.chart-label { position: absolute; top: var(--top-chart-label); left: var(--left-chart-label); @@ -962,14 +840,12 @@ body color: var(--color-chart-label); } -.chart-triangle-grid -{ +.chart-triangle-grid { position: absolute; top: var(--top-chart-triangle-grid); } -.chart-triangle-grid > div -{ +.chart-triangle-grid > div { position: absolute; border-style: solid; border-width: var(--border-width-chart-triangle-grid-div); @@ -980,32 +856,27 @@ body animation-fill-mode: forwards; } -.chart-triangle-grid > .first -{ +.chart-triangle-grid > .first { left: var(--left-chart-triangle-grid-first); border-color: var(--border-color-chart-triangle-grid-first) transparent; } -.chart-triangle-grid > .second -{ +.chart-triangle-grid > .second { left: var(--left-chart-triangle-grid-second); border-color: var(--border-color-chart-triangle-grid-second) transparent; } -.chart-triangle-grid > .third -{ +.chart-triangle-grid > .third { left: var(--left-chart-triangle-grid-third); border-color: var(--border-color-chart-triangle-grid-third) transparent; } -.chart-rectangle-grid -{ +.chart-rectangle-grid { position: absolute; top: var(--top-chart-rectangle-grid); } -.chart-rectangle-grid > div -{ +.chart-rectangle-grid > div { display: inline-block; position: absolute; height: var(--height-chart-rectangle-grid-div); @@ -1013,31 +884,26 @@ body cursor: pointer; } -.chart-rectangle-grid > div:active -{ +.chart-rectangle-grid > div:active { transform: var(--transform-chart-rectangle-grid-div-active); } -.chart-rectangle-grid > .first -{ +.chart-rectangle-grid > .first { left: var(--left-chart-rectangle-grid-first); background: var(--background-chart-rectangle-grid-first); } -.chart-rectangle-grid > .second -{ +.chart-rectangle-grid > .second { left: var(--left-chart-rectangle-grid-second); background: var(--background-chart-rectangle-grid-second); } -.chart-rectangle-grid > .third -{ +.chart-rectangle-grid > .third { left: var(--left-chart-rectangle-grid-third); background: var(--background-chart-rectangle-grid-third); } -.chart-container -{ +.chart-container { position: absolute; top: var(--top-chart-container); left: var(--left-chart-container); @@ -1047,8 +913,7 @@ body border: var(--border-chart-container) solid var(--grey-light); } -#project-version -{ +#project-version { position: relative; bottom: var(--bottom-project-version); opacity: 0; @@ -1058,15 +923,13 @@ body } /* error classes */ -.error -{ +.error { margin-top: calc((100vh / 2) - (var(--height-error) / 2)); max-width: var(--min-width-error); min-width: var(--min-width-error); } -.error-img -{ +.error-img { display: block; position: relative; z-index: 1; @@ -1078,8 +941,7 @@ body box-shadow: var(--box-shadow-error-img) var(--black-opacity-10); } -.error-div -{ +.error-div { position: relative; left: var(--left-error-div); z-index: 1; @@ -1094,13 +956,11 @@ body animation-fill-mode: forwards; } -.error-div > div -{ +.error-div > div { position: absolute; } -.code -{ +.code { top: var(--top-code); left: var(--left-code); font-size: var(--font-size-21pt); @@ -1108,8 +968,7 @@ body color: var(--color-code); } -.title -{ +.title { top: var(--top-title); left: var(--left-title); font-size: var(--font-size-31pt); @@ -1117,21 +976,18 @@ body color: var(--color-title); } -.explanation -{ +.explanation { top: var(--top-explanation); left: var(--left-explanation); } -.explanation > div -{ +.explanation > div { font-size: var(--font-size-13pt); font-weight: var(--font-weight-regular); color: var(--color-explanation-div); } -.advice -{ +.advice { width: var(--width-advice); bottom: var(--bottom-advice); text-align: center; From 2cc53184cda0eaa584d84bef75f7b6a8105cccee Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 20 Mar 2022 18:10:44 +0000 Subject: [PATCH 021/201] add docker-compose --- README.md | 2 ++ docker-compose.yml | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 docker-compose.yml diff --git a/README.md b/README.md index 910c2f0d..e0308cf0 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ * `docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -e WARD_PORT=4000 -e WARD_THEME=dark --privileged antonyleons/ward` * Go to localhost:4000 in web browser +Also see the example [docker-compose.yml](https://github.com/AntonyLeons/Ward/blob/main/docker-compose.yml) file in the root directory. + ## Java Download the latest release from [here](https://github.com/AntonyLeons/Ward/releases/latest) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..03fedd5f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.3' +services: + run: + restart: unless-stopped + container_name: ward + ports: + - '4000:4000' + environment: + - WARD_PORT=4000 + - WARD_THEME=dark + - WARD_NAME=leons-server + privileged: true + image: antonyleons/ward \ No newline at end of file From d2a59929d8f101b6b047a9ef9fdd8b073c0d21e4 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Mon, 21 Mar 2022 16:47:09 +0000 Subject: [PATCH 022/201] add dependabot --- .github/dependabot.yml | 7 +++ .github/workflows/codeql-analysis.yml | 70 --------------------------- 2 files changed, 7 insertions(+), 70 deletions(-) create mode 100644 .github/dependabot.yml delete mode 100644 .github/workflows/codeql-analysis.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..93067668 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: +- package-ecosystem: "maven" + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 \ No newline at end of file diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 16a0b312..00000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,70 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ master ] - schedule: - - cron: '34 16 * * 5' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'java', 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 From 635dc39460c540f01203a530e2a215aa2a7fe763 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Mon, 21 Mar 2022 17:51:06 +0000 Subject: [PATCH 023/201] add github actions --- .github/workflows/build-jar.yml | 17 +++++++++++++++++ .github/workflows/docker-image.yml | 13 +++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 .github/workflows/build-jar.yml create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml new file mode 100644 index 00000000..7b1d458c --- /dev/null +++ b/.github/workflows/build-jar.yml @@ -0,0 +1,17 @@ +name: build-jar +on: pull_request +jobs: + build-and-upload: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-java@v2 + with: + java-version: '17' + distribution: 'temurin' + - run: mvn clean package + - run: mkdir staging && cp target/*.jar staging + - uses: actions/upload-artifact@v3 + with: + name: Package + path: staging \ No newline at end of file diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 00000000..1da5cff1 --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,13 @@ +name: docker-image +on: release +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Build and push Docker images + uses: docker/build-push-action@v2.10.0 + with: + push: true + platform: linux/amd64,linux/arm64,linux/s390x + tags: antonyleons/ward:latest,antonyleons/ward:${GITHUB_REF#refs/tags/} + From dccadef1eae408471ad551761010f8b9b65a7979 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 17:54:12 +0000 Subject: [PATCH 024/201] Bump oshi-core from 6.1.3 to 6.1.5 (#8) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.1.3 to 6.1.5. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.1.3...oshi-parent-6.1.5) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 35bbf8d9..32a4517f 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.1.3 + 6.1.5 5.10.0 1.18.22 0.5.4 From 415877e2a802a19c64a061b57b0cedf1956bc737 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 17:54:24 +0000 Subject: [PATCH 025/201] Bump spring-boot-starter-parent from 2.6.3 to 2.6.4 (#7) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.6.3 to 2.6.4. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.6.3...v2.6.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32a4517f..f4689ce5 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.3 + 2.6.4 From 83d82825ffd2f71f4b089e981da5a891177428b9 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Mon, 21 Mar 2022 18:33:42 +0000 Subject: [PATCH 026/201] Update dependabot.yml (#9) * Update dependabot.yml * fix github action --- .github/dependabot.yml | 15 ++++++++++----- .github/workflows/build-jar.yml | 6 +++--- pom.xml | 2 +- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 93067668..c5000d01 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,12 @@ version: 2 updates: -- package-ecosystem: "maven" - directory: "/" - schedule: - interval: daily - open-pull-requests-limit: 10 \ No newline at end of file + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" \ No newline at end of file diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml index 7b1d458c..efadd12c 100644 --- a/.github/workflows/build-jar.yml +++ b/.github/workflows/build-jar.yml @@ -9,9 +9,9 @@ jobs: with: java-version: '17' distribution: 'temurin' + - run: mvn clean install - run: mvn clean package - - run: mkdir staging && cp target/*.jar staging - uses: actions/upload-artifact@v3 with: - name: Package - path: staging \ No newline at end of file + name: Ward.jar + path: target/*.jar \ No newline at end of file diff --git a/pom.xml b/pom.xml index f4689ce5..147a121f 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.1.1 + 2.1.2 jar From b16a29caaa179a5732d501884b4c8165bf620a76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 18:36:40 +0000 Subject: [PATCH 027/201] Bump actions/checkout from 2 to 3 (#10) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-jar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml index efadd12c..c03c54dd 100644 --- a/.github/workflows/build-jar.yml +++ b/.github/workflows/build-jar.yml @@ -4,7 +4,7 @@ jobs: build-and-upload: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: actions/setup-java@v2 with: java-version: '17' From 84cc961cc7c513f860c634b4f99ce1b2084a06b8 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Mon, 21 Mar 2022 20:38:03 +0000 Subject: [PATCH 028/201] fix docker build --- .github/workflows/docker-image.yml | 31 ++++++++++++++++++++++-------- pom.xml | 2 +- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 1da5cff1..52d730dd 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,13 +1,28 @@ name: docker-image -on: release +on: + release: + types: [published] jobs: build-and-push: runs-on: ubuntu-latest steps: - - name: Build and push Docker images - uses: docker/build-push-action@v2.10.0 - with: - push: true - platform: linux/amd64,linux/arm64,linux/s390x - tags: antonyleons/ward:latest,antonyleons/ward:${GITHUB_REF#refs/tags/} - + - name: Checkout + uses: actions/checkout@v2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_TOKEN }} + - name: Get the tag name + run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV + - name: Build and push Docker images + uses: docker/build-push-action@v2.10.0 + with: + context: . + push: true + platforms: linux/amd64,linux/arm64,linux/s390x + tags: antonyleons/ward:latest,antonyleons/ward:${{ env.TAG }} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 147a121f..32896bdc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.1.2 + 2.1.7 jar From e983cdae06f4d12e9cd259af23cb86d9e3f2af99 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 27 Mar 2022 21:05:30 +0100 Subject: [PATCH 029/201] Bump spring-boot-starter-parent from 2.6.4 to 2.6.5 (#11) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.6.4 to 2.6.5. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.6.4...v2.6.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32896bdc..e938722b 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.4 + 2.6.5 From 31e0be14e6793dbd3dd3ac4cf04a161287d64820 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 23:15:06 +0100 Subject: [PATCH 030/201] Bump jnaVersion from 5.10.0 to 5.11.0 (#12) Bumps `jnaVersion` from 5.10.0 to 5.11.0. Updates `jna` from 5.10.0 to 5.11.0 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.10.0...5.11.0) Updates `jna-platform` from 5.10.0 to 5.11.0 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.10.0...5.11.0) --- updated-dependencies: - dependency-name: net.java.dev.jna:jna dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: net.java.dev.jna:jna-platform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e938722b..3de76175 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 6.1.5 - 5.10.0 + 5.11.0 1.18.22 0.5.4 From 582175619c90fce559b34ac22f92a0aa6b7fd14b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 3 Apr 2022 15:56:06 +0100 Subject: [PATCH 031/201] Bump spring-boot-starter-parent from 2.6.5 to 2.6.6 (#15) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.6.5 to 2.6.6. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.6.5...v2.6.6) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3de76175..379e2072 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.5 + 2.6.6 From 1ff227e814e42486505934a9c2c351daa539da0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Apr 2022 12:28:59 +0100 Subject: [PATCH 032/201] Bump actions/setup-java from 2 to 3 (#16) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2 to 3. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-jar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml index c03c54dd..c2ce068b 100644 --- a/.github/workflows/build-jar.yml +++ b/.github/workflows/build-jar.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - uses: actions/setup-java@v2 + - uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' From e21772d4ce011e8508057b3c577045a8e7d974b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Apr 2022 12:29:10 +0100 Subject: [PATCH 033/201] Bump oshi-core from 6.1.5 to 6.1.6 (#17) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.1.5 to 6.1.6. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.1.5...oshi-parent-6.1.6) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 379e2072..2c55d5d0 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.1.5 + 6.1.6 5.11.0 1.18.22 0.5.4 From 2be56e14fdcdcba3d1d5cef6ff38f35bde1ff9d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Apr 2022 06:12:33 +0100 Subject: [PATCH 034/201] Bump lombok from 1.18.22 to 1.18.24 (#18) Bumps [lombok](https://github.com/projectlombok/lombok) from 1.18.22 to 1.18.24. - [Release notes](https://github.com/projectlombok/lombok/releases) - [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown) - [Commits](https://github.com/projectlombok/lombok/compare/v1.18.22...v1.18.24) --- updated-dependencies: - dependency-name: org.projectlombok:lombok dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c55d5d0..34458045 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 6.1.6 5.11.0 - 1.18.22 + 1.18.24 0.5.4 From 26ea83663ed66f5aabdbb30ee58f2ebb0ca1ac4f Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 21 Apr 2022 17:26:43 +0100 Subject: [PATCH 035/201] Merge branch 'master' --- LICENSE | 2 +- README.md | 102 +++------------------------------------------ images/logo.png | Bin 0 -> 89577 bytes images/preview.png | Bin 0 -> 215704 bytes 4 files changed, 7 insertions(+), 97 deletions(-) create mode 100644 images/logo.png create mode 100644 images/preview.png diff --git a/LICENSE b/LICENSE index 254dab92..b51889fd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 B-Software +Copyright (c) 2022 B-Software Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index e0308cf0..3a6cbd20 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- Logo + Logo

--- @@ -32,109 +32,19 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ **All features tested on:** `Windows` `Linux`

- Preview Image - Preview Image + Preview Image +

Preview Image

--- -### Features - - - - - - - - - - - - - - - - - - -
Processor name - Card 1 -
Processor utilization percentage
Processor cores count (Logical and physical ones)
Current frequency of the processor
Does the processor supports 64-bit instructions
- -
- - - - - - - - - - - - - - - - - - -
Type of operating system and it's version - Card 2 -
RAM utilization percentage
Amount of total installed RAM
Generation of the installed RAM (If you have dmidecode)
Current processes count
- -
- - - - - - - - - - - - - - - - - - -
Host0 storage name - Card 3 -
Storage utilization percentage
Total current storage installed (Including external drives)
Installed disks count
Total amount of virtual memory (Swap in Linux)
- -
- - - - - - - - -
- Card 4 -
- This block contain uptime and chart sections. Uptime represent time since last boot on Linux, and time between hard resets on Windows. - Also it have paginator which can be useful to get author contacts. - Chart section display last fifteen seconds of server utilization. (Proccesor, ram, storage) - You can hide separated datasets by clicking on rectangles on the top right corner of chart section. -
- ---- - ### Installation Create your own jar - 1. Clone the project - 2. Import project in your IDE as Maven project - 3. mvn clean package - 4. jar will be in the target folder + • Clone the project + • Import project in your IDE as Maven project + • mvn clean package
diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8b89757c24fbfa84c789393aba440a4f3ad0f8c4 GIT binary patch literal 89577 zcmbTd1ymf}vM4;bdvFMY1qkl$8c2W;+;#B5-63djC%8j!cMtA_;O;&^a2bAb?sw0+ z@BR15dcCG?cX{nyvv+lMxU!-w1}X_E006-FASa~)0Ki=R-H{PrTSn*BBVJD^_HtTI z000`^-yH_AI5|tZzN+z$LH=84 zCshx7GgcKdCp#BM6EkVoS23yoYGW@T>1bx;Z0D$IXJ_-Do>Kl#k%1hXEbKsf4NI`8 zotqQGe?c&lGIBN(rh4@n2Q%AWm#MPz3$U{ZaPu>=aSE`p{RikLJ5x)L$NvwMgH3>w zSAc`>e*k^$Gp0t)M*l}(QxgG@oujSMtHPGHM&@R$_F!`=;J?i%AZce~=lII_RXWap zN%85Ezz49Cvk}`B{M^ROCLm)@ z6Jstu4pSbJ|HPNFGjaLr+5f~heZ}WC;$b&s=VWK*Ffub`=HubwVCFM3HHmVf4hW$oTbyNvpoJ85ns$4{<*TT1pccR2pF0C?cKsu zCV$;(W=i!>v*mwdf&V)V{)4QWh1o07|Bbu<1I)<|K7y|KSwY|Jh&vdiGxe(0_uz zMzz0}|Bk1xH~)^vX5d%Sj<4|+8$GZV0HZPcK}uZJJ>%rrGLdH9CDUy75V}2tjCQ-< z*#3Cdw(J(3HZ6`s?mYE+FeNqaQpyR!6gc>MSl|~x?fB;g4CnmD^B<@c!~^=Pe_)z1 zramA12ePw0X-@u>;J;80Hh9EjbKU;Zbe`(5^^cZ-{6lsbKpwpI55Fdu|H?o)J*w`D zv%8Jp5bBLQNPuHnye(hv3MtmXMCAJ?KkI#;J#sCU)>YX3IDnBb^#96}dU z+)#qi@>66mhMeFdJLheLrf+cp3dKO0ok z*c?F=_Cql|Y$|CqJX^P;^YY2>Nff%8#JleP`x}%1`r7*HnYTaQc-&Q`Wqdz`{x*0d zL?XocxYp4K+Jk{d-haahS*A*+BIE~@?U%P!l%M7=hf2`&YC*K#FP@6#Ez^5;H{ zuKJ5T(kg=K(jJK6Z4Vrrq)*pn%ewF7L2gerDpxe@IZj0QqO1{)YHkh;5X(^d!&B*Y z&xfcX30;qEFAo-OtWe8|o;WcR?i+KS-*3x(WWPfJ09wkFWPRwU z=u_Xzd6IH&6YU!-9a7}Loa&kYv+1C<-)fNnqLuAG%gjRo;!I%MN{Sf)cl>UQ#O(v} z+alipNac_7<#W(`M?q{?{GwJQqn7|P3 z%oP%x7)uJoiHxbT%Ea}H;S|x;+4JEkrc6k6dt;40mo9GTkW3Mv`l zsty-Q9DZ~m<#SY77;grF$Y@-M;UoPx#h?paVh}Z{4v}$)DX3*~ztNV>qW`vibZliV zw}h+7$<$@2Ok=`M_~n$f!{>VBcUg4Zpm}4NAzOaB_#cTdixjz%`s#SW3QPeD6o}6g z%F~e@^jlm&Ztg|J_yEKXjtz!Wewbgi62YNG?(sEp#IKe9xK0c}K?F^QL{zC+1aS%= zD+c8DNtVvHv(gbts)XhHp#U;P{i0vaMV|-9o7R0FtuzR&%x=wKZKi0y3JI~ZukE(N zmiQ8hnNJ_(@cdXgMmb-(>KzI0(P-g zWeEf<5H7A0Vf@41eK3Uae^1(|71TjPYybI!3rP;WL;cg>5!MN5Jb`EbFcWLlmf-q* zWvl&Wug72yhN)&Q63kZ>tE0`(bwTg*jkpr@s&+&H`hY=Oemr+w%udnE23*B*K3G6OZCd+=EiFZuWK9;>4q7 z2EV~mF^)r4BzPlW$O+L)K}155joEj+r&LX@q&3T@rX#0`%b=spRAG7}lk^k*vnzh< zv1TyT+z%S6@v?yh6&=;lA℞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

!y<5CTF7fb8P9rLA!n)I-}HWUEC26{#;4cV%S> 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 literal 0 HcmV?d00001 diff --git a/images/preview.png b/images/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..58636c339ea5bd15fda5ead2aa7eadb684168112 GIT binary patch literal 215704 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%0A^dk=dTiNWI*eI)+;>d|}}Q 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 >yaA*xqHn7V=8jSGpBj%~-*>O7Ztb93>+;&?2 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

E%v#z$cCX!B~MmcrGt-n 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%0Dj#;EV9(D}>?!GOu_rs|rJNay*IYj5GW z5q~3KMn%qgOlb-F3r8FYJsNcJY@nz%(5H|5|e^}*tM<(*)7-IKN+4Lj!i;-dheRXL{%$G@< zRH^gm{d2;W@*?|fT8@Bi>4eMIWTsHH-idqxAC62p`5D$hdCeA1v7O8IS`svVxoc1A zEcn!m7w!`X`b)|uCQa|2fbsN!oy@3s3D)|1EV~`_z|q&=tuqOICdZ8;U-rCIX!|C7 zzfS??=K=gy%IBlW!RNUqE*=w3xMJzQ1>lVUeh$E~653I|k;!Cihg+KMkZGKxoN~zm z{ITN23SD+fnkkn!0jKs>#q4S0WKKLw!xYAePNO9!^*Lg2(0<4#VLh{))c?`8$u?X# zz0|;&7b@A26HZav2y>gdo)osx*o}26UrLNVU+Knli&4sUcIQ>00Au+l+i4ux$w*cw z*HBX*#1XhGM$T7h`aa=YDqB4+X6xQd-mjG+X~RNvvZ&*GFl&+n6r6L(F<}JcHNL?+IQD9P)G1ko<=SAe=)~&f?w>MW${JgO#9ZU z`;6Qzd}$C$DZjapq@Qw3cTl@^WWAcYhNS}rk?+7Q%)et6-~>wTl-bsanaWLpWb2iT z|G8`uukNJ&B@xJKo}^=1CN|nJO|J9A*K^U+6|zo&pcgU6vJJ9Dkv-%^c>@l|0Q@|F zHv;yzTsfH_WL+xDb#~Fvb0=QLw>nFQuHC^O7Ym&wRf6b8Vj7h?H z{3l0HXL_-7--Zm?%B;Q={Zjr(ep)}&IsmH<-`w&3o9ajTi|;hNEn54c1KF&Ps~qqZnF5xfH^i= z(mbf1Ss4f;trMB_5>V$8*6+vCOO?-Er?hOj>tQw$Y2E~UeCWU3hmNyko`h5xDYURKcM`ljPFuwR#Ys@X2_U|+C^hrzV zD_H13`KEU{ThRWyNHC5IWwIK5W|;QalKgKu%Fy;Gv9T>hc8dbCJD!ur1x4$i%wI)& z-B_JcbTo&iw#FBZ@!T#Ho2OMwSSNVdKH|SGAm3{|ll4@}X?!(g56Lm>PYx7c($cUb ze%gGH?B|+Kfz#&~Q|B{IS4odZlE;_z`@mPw`$iZ!)uxrpY2qd2OpN1{?~b1)(36$r zc+vvD4B%hG;+!FBk0(LSn9ys~F4J zH73YPX|p>UWrjFsLxgls$q#vA^@R5z1A)Fxr0vwmycC$KMd{$a5sSW z0(i5_F=UIsby4}s{B*Fl7W}!=pUCq#fmGyZ@~uj)yeWDLN+YNHaua8f(uka(KPE$U z6}lf&fi(IkIY&E2h0YNn zv{i;Sfbs1@yqCpM)6nOM;s|4HU!9AL@`8=QGAQ|l0wrg0Yx0QM3o5RknLDh}rdxQa zF_CnPB#>J^E1w816l84b)=km%O| zUAFF}keY^*!%}fF33IRo@J+ye7QnsM;$8q}IX_(v<_k?AnCBjQ)6D#zHp zZPr4I!j&64=|sxsIj18#{KyDchJ!lwwLUdjs)EoAg?2^sp*Web39)^PNA=@7Up>-& znPCxfGc@u@y(HiZ`VSgFgmFUOF^&LG-ayPjpP8&gaV>f%MqbyQZO@((|5e*XnS&=er(;movutB5DCl4G z(-=EyE87-OkYn7JH~=O&m}C7ZRW=6#{n)%;>@cJAx%fO3X2 z7s;TPXX9{(f-oy8bHx;7+fmBiFT#GU`#TQc8Ef$!01w0B5dhx+aI~ku+djHM7(7T> f Date: Sat, 23 Apr 2022 15:42:13 +0100 Subject: [PATCH 036/201] Bump spring-boot-starter-parent from 2.6.6 to 2.6.7 (#20) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.6.6 to 2.6.7. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.6.6...v2.6.7) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 34458045..1c9e6b43 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.6 + 2.6.7 From 3f79411f9fca87de898a6cae513d068a0c7e39db Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sat, 23 Apr 2022 15:54:21 +0100 Subject: [PATCH 037/201] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 1c9e6b43..22a37fd7 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.1.7 + 2.1.8 jar From 18f23ae9cbbc5b401ab71c50795c708bf0766b72 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sat, 23 Apr 2022 16:58:45 +0100 Subject: [PATCH 038/201] downgrade OSHI due to error 500 (#21) * downgrade OSHI due to error 500 * bump version --- .run/Ward.run.xml | 2 +- pom.xml | 4 ++-- .../dev/leons/ward/handlers/ControllerExceptionHandler.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.run/Ward.run.xml b/.run/Ward.run.xml index 6a8b0954..099bf881 100644 --- a/.run/Ward.run.xml +++ b/.run/Ward.run.xml @@ -1,8 +1,8 @@ +

GitHub Workflow Status
+
Docker Pulls

Logo

From d81d3b03c0cb5a1a5378b5c5d65b2822deab5234 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Tue, 28 Jun 2022 23:01:25 +0100 Subject: [PATCH 049/201] fix badges --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2b964d7a..1003f190 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -
GitHub Workflow Status
-
Docker Pulls
+

+GitHub Workflow Status +Docker Pulls +

Logo

From 9596c0a6cf5373da945fb788e31b3dedbec9d3f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Jul 2022 21:05:40 +0100 Subject: [PATCH 050/201] Bump jnaVersion from 5.12.0 to 5.12.1 (#33) Bumps `jnaVersion` from 5.12.0 to 5.12.1. Updates `jna` from 5.12.0 to 5.12.1 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.12.0...5.12.1) Updates `jna-platform` from 5.12.0 to 5.12.1 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.12.0...5.12.1) --- updated-dependencies: - dependency-name: net.java.dev.jna:jna dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: net.java.dev.jna:jna-platform dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 142b66ef..32a868dc 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 6.2.0 - 5.12.0 + 5.12.1 1.18.24 0.5.4 From e7ed00600a64b70c65eabb482a6f63c5c7455bcc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Jul 2022 20:31:52 +0100 Subject: [PATCH 051/201] Bump oshi-core from 6.2.0 to 6.2.1 (#32) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.2.0...oshi-parent-6.2.1) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 32a868dc..0bd6e493 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.2.0 + 6.2.1 5.12.1 1.18.24 0.5.4 From c7ca2fd142d0c0207e0678f11235eefd3ca8f479 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 22:46:39 +0100 Subject: [PATCH 052/201] Bump docker/build-push-action from 3.0.0 to 3.1.0 (#35) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 9c20693c..bb25ca2c 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v3.0.0 + uses: docker/build-push-action@v3.1.0 with: context: . push: true From fdd947e0564cd771a2889e08f9be2a210cbe2859 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Jul 2022 20:11:49 +0100 Subject: [PATCH 053/201] Bump oshi-core from 6.2.1 to 6.2.2 (#36) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0bd6e493..6fe62b97 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.2.1 + 6.2.2 5.12.1 1.18.24 0.5.4 From a3e6bad724b3f96585a2055bc4fcb4687c8baf71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Jul 2022 15:32:48 +0100 Subject: [PATCH 054/201] Bump spring-boot-starter-parent from 2.7.1 to 2.7.2 (#37) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.7.1 to 2.7.2. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.1...v2.7.2) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6fe62b97..ffd4caa8 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.1 + 2.7.2 From fe9203808f587d1bd73c7c0953f146f545ad0df4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 21:00:28 +0100 Subject: [PATCH 055/201] Bump docker/build-push-action from 3.1.0 to 3.1.1 (#38) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index bb25ca2c..235ee827 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v3.1.0 + uses: docker/build-push-action@v3.1.1 with: context: . push: true From 839636f258259335e0c2a837b780d36d130a202b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Aug 2022 00:48:51 +0100 Subject: [PATCH 056/201] Bump spring-boot-starter-parent from 2.7.2 to 2.7.3 (#39) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.7.2 to 2.7.3. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.2...v2.7.3) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ffd4caa8..48bee50e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.2 + 2.7.3 From 46f34ca5cd80cc2185f9f3afd496c0020267f423 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 22:39:02 +0100 Subject: [PATCH 057/201] Bump actions/checkout from 2 to 3 (#40) Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 235ee827..ec122616 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx From a9a93b9b086ab54221d45a0c80cd7e394485810c Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 11 Sep 2022 23:00:31 +0100 Subject: [PATCH 058/201] Update pom.xml --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 48bee50e..3cdd3f9a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.2.0 + 2.3.0 jar From 64a8633829ca6066f8c0f4e2553b1debc11a64fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Sep 2022 12:22:21 +0100 Subject: [PATCH 059/201] Bump spring-boot-starter-parent from 2.7.3 to 2.7.4 (#41) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.7.3 to 2.7.4. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.3...v2.7.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 3cdd3f9a..70289f34 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.3 + 2.7.4 From c4fb2523dbf217edd0eb591d69847a77dfa58f55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 20:41:04 +0100 Subject: [PATCH 060/201] Bump docker/build-push-action from 3.1.1 to 3.2.0 (#42) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.1 to 3.2.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.1.1...v3.2.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index ec122616..fec9eea4 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v3.1.1 + uses: docker/build-push-action@v3.2.0 with: context: . push: true From 7c61cf9e3daadee2a6b5a1794748f222c1c2ed25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 20:41:12 +0100 Subject: [PATCH 061/201] Bump oshi-core from 6.2.2 to 6.3.0 (#43) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.2.2 to 6.3.0. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.2.2...oshi-parent-6.3.0) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 70289f34..fbe4e431 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.2.2 + 6.3.0 5.12.1 1.18.24 0.5.4 From f67f74bcd0946bc56908da8687f73ca8b2aab544 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 22 Oct 2022 20:41:56 +0100 Subject: [PATCH 062/201] Bump spring-boot-starter-parent from 2.7.4 to 2.7.5 (#44) Bumps [spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 2.7.4 to 2.7.5. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v2.7.4...v2.7.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index fbe4e431..aa324d2f 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.7.4 + 2.7.5 From 07bc384c44cc0f935c6915dc8eafc82ca2319cef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 09:37:56 +0000 Subject: [PATCH 063/201] Bump oshi-core from 6.3.0 to 6.3.1 (#45) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.3.0 to 6.3.1. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.3.0...oshi-parent-6.3.1) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aa324d2f..9845e0b7 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.3.0 + 6.3.1 5.12.1 1.18.24 0.5.4 From bb5b998fd8f00a505a696a2795c5078faaaa2713 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Nov 2022 21:09:41 +0000 Subject: [PATCH 064/201] Bump oshi-core from 6.3.1 to 6.3.2 (#46) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.3.1 to 6.3.2. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.3.1...oshi-parent-6.3.2) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9845e0b7..f0d223ab 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.3.1 + 6.3.2 5.12.1 1.18.24 0.5.4 From bc66d0ba4b7b6991df301ab9dad547da4ad604c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Jan 2023 18:36:48 +0000 Subject: [PATCH 065/201] Bump docker/build-push-action from 3.2.0 to 3.3.0 (#52) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v3.3.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index fec9eea4..7ff330b7 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v3.2.0 + uses: docker/build-push-action@v3.3.0 with: context: . push: true From ba07acdc3891f50dfee8a916137b9d78c8e6a247 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 26 Jan 2023 17:50:24 +0000 Subject: [PATCH 066/201] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1003f190..3f8ce1ff 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

-GitHub Workflow Status +GitHub Workflow Status Docker Pulls

@@ -29,7 +29,7 @@ java -jar ward.jar ### About -Ward is a simple and and minimalistic server monitoring tool. Ward supports adaptive design system. Also it supports dark theme. +Ward is a simple and minimalistic server monitoring tool. Ward supports adaptive design system. Also, it supports dark theme. It shows only principal information and can be used, if you want to see nice looking dashboard instead looking on bunch of numbers and graphs. Ward works nice on all popular operating systems, because it uses [OSHI](https://github.com/oshi/oshi). From 6d5b5381a110098fd3809acdbe41269b62e0693f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Feb 2023 17:05:31 +0000 Subject: [PATCH 067/201] Bump docker/build-push-action from 3.3.0 to 4.0.0 (#55) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.0.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.3.0...v4.0.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 7ff330b7..14cf087c 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v3.3.0 + uses: docker/build-push-action@v4.0.0 with: context: . push: true From 8a2c88e2cae2a6363c4500176080aa5833a7c865 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Feb 2023 17:05:44 +0000 Subject: [PATCH 068/201] Bump lombok from 1.18.24 to 1.18.26 (#56) Bumps [lombok](https://github.com/projectlombok/lombok) from 1.18.24 to 1.18.26. - [Release notes](https://github.com/projectlombok/lombok/releases) - [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown) - [Commits](https://github.com/projectlombok/lombok/compare/v1.18.24...v1.18.26) --- updated-dependencies: - dependency-name: org.projectlombok:lombok dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f0d223ab..65f08350 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 6.3.2 5.12.1 - 1.18.24 + 1.18.26 0.5.4 From baedd0e279fd3964bf0e247401826ca29902ac45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Feb 2023 17:06:48 +0000 Subject: [PATCH 069/201] Bump jnaVersion from 5.12.1 to 5.13.0 (#53) Bumps `jnaVersion` from 5.12.1 to 5.13.0. Updates `jna` from 5.12.1 to 5.13.0 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.12.1...5.13.0) Updates `jna-platform` from 5.12.1 to 5.13.0 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.12.1...5.13.0) --- updated-dependencies: - dependency-name: net.java.dev.jna:jna dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: net.java.dev.jna:jna-platform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Antony Leons --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 65f08350..b98cda6f 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 6.3.2 - 5.12.1 + 1.18.24 1.18.26 0.5.4 From 231baf3702d476a08fdef52b6d494a856d32a36c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Feb 2023 17:08:28 +0000 Subject: [PATCH 070/201] Bump oshi-core from 6.3.2 to 6.4.0 (#48) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.3.2 to 6.4.0. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.3.2...oshi-parent-6.4.0) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Antony Leons --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b98cda6f..5e442471 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,8 @@ - 6.3.2 + 6.4.0 + 5.12.1 1.18.24 1.18.26 0.5.4 From 48e6c762a2e265a15e85165887691387cadf6473 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Feb 2023 17:17:57 +0000 Subject: [PATCH 071/201] Bump jnaVersion from 5.12.1 to 5.13.0 (#58) Bumps `jnaVersion` from 5.12.1 to 5.13.0. Updates `jna` from 5.12.1 to 5.13.0 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.12.1...5.13.0) Updates `jna-platform` from 5.12.1 to 5.13.0 - [Release notes](https://github.com/java-native-access/jna/releases) - [Changelog](https://github.com/java-native-access/jna/blob/master/CHANGES.md) - [Commits](https://github.com/java-native-access/jna/compare/5.12.1...5.13.0) --- updated-dependencies: - dependency-name: net.java.dev.jna:jna dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: net.java.dev.jna:jna-platform dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5e442471..83bbde29 100644 --- a/pom.xml +++ b/pom.xml @@ -18,7 +18,7 @@ 6.4.0 - 5.12.1 + 5.13.0 1.18.24 1.18.26 0.5.4 From ed489818c2403706f89f0e6b4e863e3b4ce1b1d1 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Tue, 7 Feb 2023 17:20:29 +0000 Subject: [PATCH 072/201] 2.3.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 83bbde29..2c379017 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 dev.leons ward - 2.3.0 + 2.3.1 jar From f7ac5e915d81129e98fa3269ecf01d93bcab8f30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Feb 2023 23:03:48 +0000 Subject: [PATCH 073/201] Bump lombok from 1.18.24 to 1.18.26 (#59) Bumps [lombok](https://github.com/projectlombok/lombok) from 1.18.24 to 1.18.26. - [Release notes](https://github.com/projectlombok/lombok/releases) - [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown) - [Commits](https://github.com/projectlombok/lombok/compare/v1.18.24...v1.18.26) --- updated-dependencies: - dependency-name: org.projectlombok:lombok dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2c379017..bd5211a5 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 6.4.0 5.13.0 - 1.18.24 + 1.18.26 1.18.26 0.5.4 From 63e4e2bb4416adf095c32410474b97c51b23d746 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Mar 2023 15:54:50 +0000 Subject: [PATCH 074/201] Bump oshi-core from 6.4.0 to 6.4.1 (#62) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.0...oshi-parent-6.4.1) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bd5211a5..55b36988 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.4.0 + 6.4.1 5.13.0 1.18.26 1.18.26 From a174e704d9e4749ea8cad27182999ec0d60fc4d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 May 2023 13:07:01 +0100 Subject: [PATCH 075/201] Bump oshi-core from 6.4.1 to 6.4.2 (#66) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.4.1 to 6.4.2. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.1...oshi-parent-6.4.2) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 55b36988..15e06fbe 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.4.1 + 6.4.2 5.13.0 1.18.26 1.18.26 From da99324cdc045400226d61a8d62a35f208bba801 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 13:51:14 +0100 Subject: [PATCH 076/201] Bump lombok from 1.18.26 to 1.18.28 (#68) Bumps [lombok](https://github.com/projectlombok/lombok) from 1.18.26 to 1.18.28. - [Release notes](https://github.com/projectlombok/lombok/releases) - [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown) - [Commits](https://github.com/projectlombok/lombok/compare/v1.18.26...v1.18.28) --- updated-dependencies: - dependency-name: org.projectlombok:lombok dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 15e06fbe..d8925059 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ 6.4.2 5.13.0 - 1.18.26 + 1.18.28 1.18.26 0.5.4 From 6692c195cba23d76cac1e0363e6ef3bb739ffed7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jun 2023 13:51:24 +0100 Subject: [PATCH 077/201] Bump oshi-core from 6.4.2 to 6.4.3 (#69) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.4.2 to 6.4.3. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.2...oshi-parent-6.4.3) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d8925059..86a98c18 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.4.2 + 6.4.3 5.13.0 1.18.28 1.18.26 From 9e975dd9eb4996b475d31860f667837f503419ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 25 Jun 2023 19:39:52 +0100 Subject: [PATCH 078/201] Bump docker/build-push-action from 4.0.0 to 4.1.1 (#71) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.1. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v4.0.0...v4.1.1) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 14cf087c..dc1be63f 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v4.0.0 + uses: docker/build-push-action@v4.1.1 with: context: . push: true From a0a29ca110bc918021b3ccda03e957b0def7d2a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 12:36:34 +0100 Subject: [PATCH 079/201] Bump oshi-core from 6.4.3 to 6.4.4 (#73) Bumps [oshi-core](https://github.com/oshi/oshi) from 6.4.3 to 6.4.4. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.3...oshi-parent-6.4.4) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 86a98c18..311b790e 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.4.3 + 6.4.4 5.13.0 1.18.28 1.18.26 From 08ec11c643b2782d7ca97c10e3b52a4c15c9fc9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:35:58 +0100 Subject: [PATCH 080/201] Bump com.github.oshi:oshi-core from 6.4.4 to 6.4.5 (#76) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.4 to 6.4.5. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.4...oshi-parent-6.4.5) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 311b790e..a2595e03 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ - 6.4.4 + 6.4.5 5.13.0 1.18.28 1.18.26 From 5a64f50956a673612550ddbfcacf963891e2ef3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Sep 2023 20:36:08 +0100 Subject: [PATCH 081/201] Bump actions/checkout from 3 to 4 (#78) Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-jar.yml | 2 +- .github/workflows/docker-image.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml index c2ce068b..b0ef914f 100644 --- a/.github/workflows/build-jar.yml +++ b/.github/workflows/build-jar.yml @@ -4,7 +4,7 @@ jobs: build-and-upload: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/setup-java@v3 with: java-version: '17' diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index dc1be63f..6409122b 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx From f475231f9bf520ddfb8632c7bd558c3a944eed82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 18:13:25 +0100 Subject: [PATCH 082/201] Bump docker/build-push-action from 4.1.1 to 5.0.0 (#80) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 5.0.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v4.1.1...v5.0.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 6409122b..af3ced26 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v4.1.1 + uses: docker/build-push-action@v5.0.0 with: context: . push: true From 77564409a4453e8d1956bd93d5cc4081965fde36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 18:13:42 +0100 Subject: [PATCH 083/201] Bump docker/login-action from 2 to 3 (#83) Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index af3ced26..2627fe76 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -13,7 +13,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_TOKEN }} From fa98b2ac527df34a01c334c0c0a127fc2e76b96e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 18:13:54 +0100 Subject: [PATCH 084/201] Bump docker/setup-qemu-action from 2 to 3 (#82) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 2627fe76..f0c9c818 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -9,7 +9,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub From 06c3fe57c74376aa88879047297a816b751c9850 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Sep 2023 18:14:04 +0100 Subject: [PATCH 085/201] Bump docker/setup-buildx-action from 2 to 3 (#81) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index f0c9c818..b897ca73 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -11,7 +11,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v3 with: From cdad0469f299ddbff9ac013082f2b5f3289d1d88 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 14 Sep 2023 18:25:36 +0100 Subject: [PATCH 086/201] bump spring boot starter to 3.1.3 --- pom.xml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index a2595e03..f9abbfdc 100644 --- a/pom.xml +++ b/pom.xml @@ -1,17 +1,19 @@ - - + + 4.0.0 dev.leons ward - 2.3.1 + 2.4.0 jar org.springframework.boot spring-boot-starter-parent - 2.7.5 + 3.1.3 @@ -38,6 +40,11 @@ org.springframework.boot spring-boot-starter-validation + + javax.validation + validation-api + 2.0.1.Final + com.github.oshi oshi-core @@ -76,4 +83,4 @@ - + \ No newline at end of file From 150266767d2a7a32afad769ec46a3f89037d0ea3 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 14 Sep 2023 18:34:31 +0100 Subject: [PATCH 087/201] add port number validation --- src/main/resources/templates/setup.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/resources/templates/setup.html b/src/main/resources/templates/setup.html index 499589b5..8cb9acf9 100644 --- a/src/main/resources/templates/setup.html +++ b/src/main/resources/templates/setup.html @@ -22,6 +22,17 @@ + From 73865f6c3450fdcb151acb837848ad94957465d9 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 14 Sep 2023 18:45:52 +0100 Subject: [PATCH 088/201] fix docker build --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 762ab5bc..57cebf0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Base image with maven installed already -FROM maven:eclipse-temurin as builder +FROM maven:3.9-eclipse-temurin-17 as builder # Copy whole project inside docker COPY . . From f0d1f0a8dea9e6b54b8963f352c15838233f6e82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 23:27:14 +0100 Subject: [PATCH 089/201] Bump org.projectlombok:lombok from 1.18.28 to 1.18.30 (#84) Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.28 to 1.18.30. - [Release notes](https://github.com/projectlombok/lombok/releases) - [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown) - [Commits](https://github.com/projectlombok/lombok/compare/v1.18.28...v1.18.30) --- updated-dependencies: - dependency-name: org.projectlombok:lombok dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f9abbfdc..46d95a31 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ 6.4.5 5.13.0 - 1.18.28 + 1.18.30 1.18.26 0.5.4 From 949542fd6dc90601c6d5ca7728ea76a3a7973024 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 23:27:28 +0100 Subject: [PATCH 090/201] Bump org.springframework.boot:spring-boot-starter-parent (#85) Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.1.3 to 3.1.4. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.3...v3.1.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 46d95a31..0cc8a440 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.3 + 3.1.4 From 1b1d34f315533cab2fde740a0cd55ae9b12037b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Sep 2023 23:27:58 +0100 Subject: [PATCH 091/201] Bump com.github.oshi:oshi-core from 6.4.5 to 6.4.6 (#86) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.5 to 6.4.6. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.5...oshi-parent-6.4.6) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0cc8a440..c58af7fd 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.5 + 6.4.6 5.13.0 1.18.30 1.18.26 From cbcd4a421ebca2589f138161eb92f10642c3b5df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Oct 2023 20:54:08 +0100 Subject: [PATCH 092/201] Bump org.springframework.boot:spring-boot-starter-parent (#89) Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c58af7fd..44a32afe 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.4 + 3.1.5 From b018650d891784272769f29b9c49700c1f904b6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 20:30:43 +0000 Subject: [PATCH 093/201] Bump com.github.oshi:oshi-core from 6.4.6 to 6.4.7 (#90) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.6 to 6.4.7. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.6...oshi-parent-6.4.7) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 44a32afe..77a692fb 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.6 + 6.4.7 5.13.0 1.18.30 1.18.26 From 53874571264011ccca6b22e0cafe4f4a427bd45a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Nov 2023 19:38:37 +0000 Subject: [PATCH 094/201] Bump docker/build-push-action from 5.0.0 to 5.1.0 (#91) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.0.0 to 5.1.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5.0.0...v5.1.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index b897ca73..af838fee 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v5.0.0 + uses: docker/build-push-action@v5.1.0 with: context: . push: true From d67ddaec2c1547e1476a079e0286b83d455e4a81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 01:29:24 +0000 Subject: [PATCH 095/201] Bump actions/setup-java from 3 to 4 (#94) Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-jar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml index b0ef914f..de643b03 100644 --- a/.github/workflows/build-jar.yml +++ b/.github/workflows/build-jar.yml @@ -5,7 +5,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-java@v3 + - uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' From 943c19af646dfba18f2e538b941a5ad427bf8c36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 01:29:40 +0000 Subject: [PATCH 096/201] Bump com.github.oshi:oshi-core from 6.4.7 to 6.4.8 (#93) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.7 to 6.4.8. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.7...oshi-parent-6.4.8) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 77a692fb..aa090e4d 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.7 + 6.4.8 5.13.0 1.18.30 1.18.26 From f0deffc35ec3182e8bc914c57cf7e4fb15a1aa13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 01:29:50 +0000 Subject: [PATCH 097/201] Bump org.springframework.boot:spring-boot-starter-parent (#92) Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.1.5 to 3.2.0. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.2.0) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aa090e4d..4152cec0 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.1.5 + 3.2.0 From 46b0bd9f537810181f911400ee212a50deaac6a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:38:39 +0000 Subject: [PATCH 098/201] Bump com.github.oshi:oshi-core from 6.4.8 to 6.4.9 (#96) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4152cec0..4735e36c 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.8 + 6.4.9 5.13.0 1.18.30 1.18.26 From bf8161e9d1964331ee85002e7c1f9f1d38660b25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:39:41 +0000 Subject: [PATCH 099/201] Bump actions/upload-artifact from 3 to 4 (#97) --- .github/workflows/build-jar.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-jar.yml b/.github/workflows/build-jar.yml index de643b03..b6f9c344 100644 --- a/.github/workflows/build-jar.yml +++ b/.github/workflows/build-jar.yml @@ -11,7 +11,7 @@ jobs: distribution: 'temurin' - run: mvn clean install - run: mvn clean package - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: Ward.jar path: target/*.jar \ No newline at end of file From 54bed1f806e4ffd76fd3b221003f11b545214c3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 11:41:19 +0000 Subject: [PATCH 100/201] Bump jnaVersion from 5.13.0 to 5.14.0 (#95) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4735e36c..347bb324 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 6.4.9 - 5.13.0 + 5.14.0 1.18.30 1.18.26 0.5.4 From a010f23f17dd866d9867ab854212cc8298e945a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Dec 2023 22:09:28 +0000 Subject: [PATCH 101/201] Bump org.springframework.boot:spring-boot-starter-parent (#98) Bumps [org.springframework.boot:spring-boot-starter-parent](https://github.com/spring-projects/spring-boot) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-starter-parent dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 347bb324..b7de727a 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.2.0 + 3.2.1 From 8e632b2761e55ba282767b1052cd13e264a3a020 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Dec 2023 00:57:54 +0000 Subject: [PATCH 102/201] Bump com.github.oshi:oshi-core from 6.4.9 to 6.4.10 (#99) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.9 to 6.4.10. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.9...oshi-parent-6.4.10) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b7de727a..7ed02ddb 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.9 + 6.4.10 5.14.0 1.18.30 1.18.26 From d2ffb8dea996625db459ef3d0e029850ccfb0bc5 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Thu, 4 Jan 2024 23:54:54 +0000 Subject: [PATCH 103/201] fix build --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7ed02ddb..b0de1006 100644 --- a/pom.xml +++ b/pom.xml @@ -22,7 +22,6 @@ 6.4.10 5.14.0 1.18.30 - 1.18.26 0.5.4 From 4ea4c1b1ad70355777fff6b85dd7a0e55c428233 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Fri, 5 Jan 2024 14:44:19 +0000 Subject: [PATCH 104/201] downgrade spring-boot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b0de1006..ce53ef09 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 3.2.1 + 3.1.7 From de0756a08e4a2627c6724d70c6a57310ca61eece Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Fri, 5 Jan 2024 16:04:26 +0000 Subject: [PATCH 105/201] bump validation --- pom.xml | 8 ++++---- .../leons/ward/controllers/SetupController.java | 2 +- src/main/java/dev/leons/ward/dto/SetupDto.java | 16 +++++++--------- 3 files changed, 12 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index ce53ef09..e7dc3b5a 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 dev.leons ward - 2.4.0 + 2.4.1 jar @@ -40,9 +40,9 @@ spring-boot-starter-validation - javax.validation - validation-api - 2.0.1.Final + jakarta.validation + jakarta.validation-api + 3.0.2 com.github.oshi diff --git a/src/main/java/dev/leons/ward/controllers/SetupController.java b/src/main/java/dev/leons/ward/controllers/SetupController.java index 6d40a0b6..80db4140 100644 --- a/src/main/java/dev/leons/ward/controllers/SetupController.java +++ b/src/main/java/dev/leons/ward/controllers/SetupController.java @@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.validation.Valid; +import jakarta.validation.Valid; import java.io.IOException; /** diff --git a/src/main/java/dev/leons/ward/dto/SetupDto.java b/src/main/java/dev/leons/ward/dto/SetupDto.java index 715ee9fa..272c9be3 100644 --- a/src/main/java/dev/leons/ward/dto/SetupDto.java +++ b/src/main/java/dev/leons/ward/dto/SetupDto.java @@ -1,15 +1,14 @@ package dev.leons.ward.dto; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import lombok.Getter; import lombok.Setter; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; -import javax.validation.constraints.Size; - /** * SetupDto is a values container for setup data * @@ -24,8 +23,7 @@ public class SetupDto * Server name Field */ @NotNull - @NotEmpty - @Size(min = 1, max = 10) + @Size(min = 0, max = 10) private String serverName; /** From f6229ab87aa7a9cd66622c22fb973a0200d4c95c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 10 Feb 2024 14:24:11 +0000 Subject: [PATCH 106/201] Bump com.github.oshi:oshi-core from 6.4.10 to 6.4.11 (#103) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.10 to 6.4.11. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.10...oshi-parent-6.4.11) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e7dc3b5a..16b7a470 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.10 + 6.4.11 5.14.0 1.18.30 0.5.4 From 0de0cf8577fdb85bb1606078286b2b2b5fbd627a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Feb 2024 23:39:39 +0000 Subject: [PATCH 107/201] Bump com.github.oshi:oshi-core from 6.4.11 to 6.4.12 (#108) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.11 to 6.4.12. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.11...oshi-parent-6.4.12) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 16b7a470..8ec5b649 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.11 + 6.4.12 5.14.0 1.18.30 0.5.4 From 7a8d4cd6536f2aa2ad10c18943fda46ce6d80f07 Mon Sep 17 00:00:00 2001 From: Nicandros Nic <284798+nicandris@users.noreply.github.com> Date: Sat, 24 Feb 2024 18:59:42 +0100 Subject: [PATCH 108/201] Feature/background color (#107) * Add enable/disable fog variable * Add background color variable * Add background in setup * Populate defaults for enableFog and backgroundColor as a migration step * add tool tip --------- Co-authored-by: Antony Leons --- README.md | 14 ++++-- docker-compose.yml | 2 + pom.xml | 2 +- src/main/java/dev/leons/ward/Ward.java | 2 +- .../ward/components/UtilitiesComponent.java | 35 +++++++++---- .../java/dev/leons/ward/dto/SetupDto.java | 15 ++++++ .../dev/leons/ward/services/IndexService.java | 13 +++++ .../dev/leons/ward/services/SetupService.java | 6 +++ src/main/resources/static/css/dimensions.css | 11 ++-- src/main/resources/static/css/layout.css | 29 +++++++++++ src/main/resources/static/css/shadows.css | 1 + src/main/resources/static/css/themes.css | 2 + src/main/resources/static/js/background.js | 50 ++++++++++++------- src/main/resources/static/js/globals.js | 11 ++++ src/main/resources/static/js/setup.js | 31 +++++++++++- src/main/resources/templates/index.html | 2 +- src/main/resources/templates/setup.html | 4 +- 17 files changed, 191 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 3f8ce1ff..41f1e4d2 100644 --- a/README.md +++ b/README.md @@ -71,11 +71,13 @@ Ward works nice on all popular operating systems, because it uses [OSHI](https:/ If you want to change Ward's configuration, you can edit `setup.ini`. When using Docker, use the environment variables `WARD_NAME`,`WARD_THEME`, `WARD_PORT` to automatically regenerate this file at startup. Using any environment variable listed will enable the defaults below and immediately start Ward without the GUI setup. -| Setting | Description | Default | -|------------|------------------------------|---------| -| serverName | Name shown in the interface. | Ward | -| theme | Either `light` or `dark`. | light | -| port | Port to listen on. | 4000 | +| Setting | Env var | Description | Default | +|-----------------|-----------------|----------------------------------------------|---------| +| serverName | WARD_NAME | Name shown in the interface. | Ward | +| port | WARD_PORT | Port to listen on. | 4000 | +| theme | WARD_THEME | Either `light` or `dark`. | light | +| enableFog | WARD_FOG | Either `true` or `false`. | true | +| backgroundColor | WARD_BACKGROUND | HexColor for background when fog is disabled | default | Environment variables take priority and will regenerate this file with your variables. If no environment variables are set, `setup.ini` is generated once you navigate to Ward's webpage and complete the initial setup. You can also make this file yourself before starting Ward, and place it in the same directory. @@ -86,4 +88,6 @@ For example: serverName = my-server theme = dark port = 8200 +enableFog = true +backgroundColor = #303030 ``` diff --git a/docker-compose.yml b/docker-compose.yml index 03fedd5f..67aa9992 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,5 +9,7 @@ services: - WARD_PORT=4000 - WARD_THEME=dark - WARD_NAME=leons-server + - WARD_FOG=false + - WARD_BACKGROUND=#3c3c3c privileged: true image: antonyleons/ward \ No newline at end of file diff --git a/pom.xml b/pom.xml index 8ec5b649..4ec0fa98 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 dev.leons ward - 2.4.1 + 2.5.0 jar diff --git a/src/main/java/dev/leons/ward/Ward.java b/src/main/java/dev/leons/ward/Ward.java index bcd5e2af..a9e250ec 100644 --- a/src/main/java/dev/leons/ward/Ward.java +++ b/src/main/java/dev/leons/ward/Ward.java @@ -51,7 +51,7 @@ public static void main(final String[] args) { File setupFile = new File(Ward.SETUP_FILE_PATH); - if (System.getenv("WARD_NAME") != null || (System.getenv("WARD_THEME") != null) || (System.getenv("WARD_PORT") != null)) { + if (System.getenv("WARD_NAME") != null || (System.getenv("WARD_THEME") != null) || (System.getenv("WARD_PORT") != null) || (System.getenv("WARD_FOG") != null)) { SetupService.envSetup(); } else if (setupFile.exists()) { restart(); diff --git a/src/main/java/dev/leons/ward/components/UtilitiesComponent.java b/src/main/java/dev/leons/ward/components/UtilitiesComponent.java index cc138dbe..9df8c590 100644 --- a/src/main/java/dev/leons/ward/components/UtilitiesComponent.java +++ b/src/main/java/dev/leons/ward/components/UtilitiesComponent.java @@ -9,12 +9,12 @@ /** * UtilitiesComponent provides various functions, which are used in different classes + * * @author Rudolf Barbu * @version 1.0.2 */ @Component -public class UtilitiesComponent -{ +public class UtilitiesComponent { /** * Constant, that providing setup section name */ @@ -25,19 +25,36 @@ public class UtilitiesComponent * * @param optionName option in section * @return String wth parsed data - * @throws IOException if file does not exists + * @throws IOException if file does not exist */ @SuppressWarnings(value = "MismatchedQueryAndUpdateOfCollection") - public String getFromIniFile(final String optionName) throws IOException - { - File file = new File(Ward.SETUP_FILE_PATH); + public String getFromIniFile(final String optionName) throws IOException { + final File file = new File(Ward.SETUP_FILE_PATH); - if (file.exists()) - { - Ini ini = new Ini(file); + if (file.exists()) { + final Ini ini = new Ini(file); return ini.get(SECTION_NAME, optionName, String.class); } return null; } + + /** + * Sets string data to the ini file + * + * @param optionName option in section + * @param value value to put + * @throws IOException if file does not exist + */ + public void putInIniFile(final String optionName, final String value) throws IOException { + final File file = new File(Ward.SETUP_FILE_PATH); + + if (file.exists()) { + final Ini ini = new Ini(file); + ini.put(SECTION_NAME, optionName, value); + ini.store(); + } else { + throw new IOException(); + } + } } \ No newline at end of file diff --git a/src/main/java/dev/leons/ward/dto/SetupDto.java b/src/main/java/dev/leons/ward/dto/SetupDto.java index 272c9be3..e247154a 100644 --- a/src/main/java/dev/leons/ward/dto/SetupDto.java +++ b/src/main/java/dev/leons/ward/dto/SetupDto.java @@ -42,4 +42,19 @@ public class SetupDto @Min(value = 10) @Max(value = 65535) private String port; + + /** + * Enable fog field + */ + @NotNull + @NotEmpty + @Pattern(regexp = "true|false") + private String enableFog; + + /** + * Background Color field + */ + @NotEmpty + @Pattern(regexp = "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$|default") + private String backgroundColor; } \ No newline at end of file diff --git a/src/main/java/dev/leons/ward/services/IndexService.java b/src/main/java/dev/leons/ward/services/IndexService.java index cb4690a7..32756943 100644 --- a/src/main/java/dev/leons/ward/services/IndexService.java +++ b/src/main/java/dev/leons/ward/services/IndexService.java @@ -78,8 +78,12 @@ public String getIndex(final Model model) throws IOException, ApplicationNotConf return "setup"; } + updateDefaultsInSetupFile(); + model.addAttribute("theme", utilitiesComponent.getFromIniFile("theme")); model.addAttribute("serverName", utilitiesComponent.getFromIniFile("serverName")); + model.addAttribute("enableFog", utilitiesComponent.getFromIniFile("enableFog")); + model.addAttribute("backgroundColor", utilitiesComponent.getFromIniFile("backgroundColor")); model.addAttribute("info", infoService.getInfo()); model.addAttribute("uptime", uptimeService.getUptime()); @@ -87,4 +91,13 @@ public String getIndex(final Model model) throws IOException, ApplicationNotConf return "index"; } + + private void updateDefaultsInSetupFile() throws IOException { + if (utilitiesComponent.getFromIniFile("enableFog") == null) { + utilitiesComponent.putInIniFile("enableFog", "true"); + } + if (utilitiesComponent.getFromIniFile("backgroundColor") == null) { + utilitiesComponent.putInIniFile("backgroundColor", "#303030"); + } + } } \ No newline at end of file diff --git a/src/main/java/dev/leons/ward/services/SetupService.java b/src/main/java/dev/leons/ward/services/SetupService.java index e865f4e9..52b53c96 100644 --- a/src/main/java/dev/leons/ward/services/SetupService.java +++ b/src/main/java/dev/leons/ward/services/SetupService.java @@ -51,6 +51,8 @@ public ResponseDto postSetup(final SetupDto setupDto) throws IOException, Applic putInIniFile(file, "serverName", setupDto.getServerName()); putInIniFile(file, "theme", setupDto.getTheme()); putInIniFile(file, "port", setupDto.getPort()); + putInIniFile(file, "enableFog", setupDto.getEnableFog()); + putInIniFile(file, "backgroundColor", setupDto.getBackgroundColor()); Ward.restart(); } else { @@ -74,10 +76,14 @@ public static ResponseDto envSetup() { String servername = (System.getenv("WARD_NAME") != null) ? System.getenv("WARD_NAME") : "Ward"; String theme = (System.getenv("WARD_THEME") != null) ? System.getenv("WARD_THEME").toLowerCase() : "light"; String port = (System.getenv("WARD_PORT") != null) ? System.getenv("WARD_PORT") : "4000"; + String enableFog = (System.getenv("WARD_FOG") != null) ? System.getenv("WARD_FOG") : "true"; + String backgroundColor = (System.getenv("WARD_BACKGROUND") != null) ? System.getenv("WARD_BACKGROUND") : "default"; putInIniFile(file, "serverName", servername); putInIniFile(file, "theme", theme); putInIniFile(file, "port", port); + putInIniFile(file, "enableFog", enableFog); + putInIniFile(file, "backgroundColor", backgroundColor); Ward.restart(); } else { diff --git a/src/main/resources/static/css/dimensions.css b/src/main/resources/static/css/dimensions.css index b9cbbcea..e9c682b9 100644 --- a/src/main/resources/static/css/dimensions.css +++ b/src/main/resources/static/css/dimensions.css @@ -24,8 +24,9 @@ --top-label-additional-settings: 2.3rem; --top-additional-settings: 1rem; --top-theme-buttons-input: 1.938rem; + --top-background-settings: 2.938rem; --top-button-squares-grid: 0.222rem; - --top-port: 2.75rem; + --top-port: 2.7rem; --top-header: 1.5rem; --top-label-hw-info: 0.562rem; --top-card-body-squares-grid: 0.813rem; @@ -65,7 +66,9 @@ --left-main-settings: 1.5rem; --left-button-squares-grid-first: 1.5rem; --left-button-squares-grid-second: 19.688rem; + --left-background-settings: 1.5rem; --left-theme-buttons-first: 1.5rem; + --left-background-settings-color-selector: 1.5rem; --left-port: 1.5rem; --left-submit: 6.563rem; --left-header: 1.5rem; @@ -116,16 +119,17 @@ /* height */ --height-body: 100%; --height-setup: 26.706rem; - --height-setup-div: 26.706rem; + --height-setup-div: 32.706rem; --height-clouds: 8.281rem; --height-clouds-img: 5.438rem; --height-background: 8.281rem; - --height-form: 18.425rem; + --height-form: 24.425rem; --height-form-squares-grid-div: 0.625rem; --height-main-settings: 1.875rem; --height-main-settings-underline: 0.313rem; --height-main-settings-select: 1.875rem; --height-theme-buttons-input: 2.188rem; + --height-background-settings: 2.188rem; --height-button-squares-grid-div: 0.625rem; --height-port: 3.125rem; --height-submit: 1.875rem; @@ -178,6 +182,7 @@ --width-main-settings-underline: 18.875rem; --width-main-settings-select: 18.875rem; --width-theme-buttons-input: 9.063rem; + --width-background-settings-input: 9.063rem; --width-button-squares-grid-div: 0.625rem; --width-port: 18.875rem; --width-submit: 8.75rem; diff --git a/src/main/resources/static/css/layout.css b/src/main/resources/static/css/layout.css index 30db4e51..2ec711ed 100644 --- a/src/main/resources/static/css/layout.css +++ b/src/main/resources/static/css/layout.css @@ -280,6 +280,35 @@ body { background: var(--background-theme-buttons-second); } +.additional-settings > label { + top: var(--top-background-settings); + left: var(--left-background-settings); + height: var(--height-background-settings); + white-space: nowrap; +} + +.additional-settings > label > input { + vertical-align: middle; + position: relative; + left: var(--left-background-settings); + border-style: none; +} + +.additional-settings > label > span { + vertical-align: middle; + position: relative; +} + +.additional-settings > .color-selector { + display: block; + position: relative; + margin-top: var(--height-background-settings); + left: var(--left-background-settings-color-selector); + width: var(--width-background-settings-input); + background: var(--background-background-settings-color-selector); + box-shadow: var(--box-shadow-background-settings-input) var(--black-opacity-10); +} + .port { position: relative; top: var(--top-port); diff --git a/src/main/resources/static/css/shadows.css b/src/main/resources/static/css/shadows.css index 363f26bf..9fa3afa0 100644 --- a/src/main/resources/static/css/shadows.css +++ b/src/main/resources/static/css/shadows.css @@ -20,6 +20,7 @@ --box-shadow-main-settings-underline: 0.000rem 0.188rem 0.313rem 0.000rem; --box-shadow-button-squares-grid-div: 0.000rem 0.188rem 0.313rem 0.000rem; --box-shadow-theme-buttons-input: 0.000rem 0.188rem 0.313rem 0.000rem; + --box-shadow-background-settings-input: 0.000rem 0.188rem 0.313rem 0.000rem; --box-shadow-submit: 0.000rem 0.188rem 0.313rem 0.000rem; --box-shadow-card: 0.000rem 0.313rem 0.625rem 0.000rem; --box-shadow-uptime-squares-grid-div: 0.000rem 0.188rem 0.313rem 0.000rem; diff --git a/src/main/resources/static/css/themes.css b/src/main/resources/static/css/themes.css index 783b9242..daaffb7e 100644 --- a/src/main/resources/static/css/themes.css +++ b/src/main/resources/static/css/themes.css @@ -63,6 +63,7 @@ html[theme = "light"] --background-button-squares-grid-second: var(--grey-light); --background-theme-buttons-first: var(--purple-light); --background-theme-buttons-second: var(--grey-light); + --background-background-settings-color-selector: var(--grey-light); --background-port: var(--white); --background-submit: var(--green-light); --background-card: var(--white); @@ -148,6 +149,7 @@ html[theme = "dark"] --background-button-squares-grid-second: var(--grey-light); --background-theme-buttons-first: var(--purple-light); --background-theme-buttons-second: var(--grey-light); + --background-background-settings-color-selector: var(--grey-light); --background-port: var(--grey); --background-submit: var(--grey-light); --background-card: var(--grey-dark); diff --git a/src/main/resources/static/js/background.js b/src/main/resources/static/js/background.js index f8ee09c6..2b1835f1 100644 --- a/src/main/resources/static/js/background.js +++ b/src/main/resources/static/js/background.js @@ -5,26 +5,42 @@ */ function backgroundInitialization() { - background = VANTA.FOG({el: "#background", blurFactor: 0.40, zoom: 1.50}); - - if (html.getAttribute("theme") == "light") +if (html.getAttribute("enableFog") == "true") { - background.setOptions - ({ - highlightColor: 0xCAC7E8, - midtoneColor: 0xBBB7ED, - lowlightColor: 0xE4E3EF, - baseColor: 0xE4E3EF - }); + background = VANTA.FOG({el: "#background", blurFactor: 0.40, zoom: 1.50}); + if (html.getAttribute("theme") == "light") + { + background.setOptions + ({ + highlightColor: 0xCAC7E8, + midtoneColor: 0xBBB7ED, + lowlightColor: 0xE4E3EF, + baseColor: 0xE4E3EF + }); + } + else + { + background.setOptions + ({ + highlightColor: 0x797979, + midtoneColor: 0xFFFFFF, + lowlightColor: 0xBCBCBC, + baseColor: 0xBCBCBC + }); + } } else { - background.setOptions - ({ - highlightColor: 0x797979, - midtoneColor: 0xFFFFFF, - lowlightColor: 0xBCBCBC, - baseColor: 0xBCBCBC - }); + if (background){ + background.destroy(); + } + if (html.getAttribute("backgroundColor") == "default" ) + { + document.body.style.backgroundColor = html.getAttribute("theme") == "light" ? "#e5e5e5" : "#303030" + } + else + { + document.body.style.backgroundColor = html.getAttribute("backgroundColor") + } } } \ No newline at end of file diff --git a/src/main/resources/static/js/globals.js b/src/main/resources/static/js/globals.js index a712c232..b0a4cbf3 100644 --- a/src/main/resources/static/js/globals.js +++ b/src/main/resources/static/js/globals.js @@ -10,6 +10,17 @@ let html; */ let background; + +/** + * Used to determine background color + */ +let backgroundColor; + +/** + * Used to determine if we enable the fog + */ +let enableFog; + /** * Light theme square */ diff --git a/src/main/resources/static/js/setup.js b/src/main/resources/static/js/setup.js index 4b2eae26..e6ca0ec3 100644 --- a/src/main/resources/static/js/setup.js +++ b/src/main/resources/static/js/setup.js @@ -16,12 +16,16 @@ function setupInitialization() serverName = document.getElementById("server-name"); port = document.getElementById("port"); + enableFog = document.getElementById("fog-toggle"); + backgroundColor = document.getElementById("color-selector"); setupXHR = new XMLHttpRequest(); lightTheme.addEventListener("click", function(event) {changeTheme(event.target || event.srcElement)}); darkTheme.addEventListener("click", function(event) {changeTheme(event.target || event.srcElement)}); submit.addEventListener("click", function(event) {sendSetupRequest(event.target || event.srcElement)}); + enableFog.addEventListener("change", function(event) {toggleFog()}); + backgroundColor.addEventListener("input", function(event) {changeBackgroundColor()}); } /** @@ -63,6 +67,10 @@ function changeTheme(element) baseColor: 0xBCBCBC }); } + let color = html.getAttribute("theme") == "light" ? "#e5e5e5" : "#303030"; + html.setAttribute("backgroundColor", color); + backgroundColor.value = color; + document.body.style.backgroundColor = color; } /** @@ -117,9 +125,30 @@ function sendSetupRequest() { "serverName": serverName.value, "theme": html.getAttribute("theme"), - "port": port.value + "port": port.value, + "enableFog": String(enableFog.checked), + "backgroundColor": backgroundColor.value } setupXHR.send(JSON.stringify(data)); +} + +/** + * Toggles fog + */ +function toggleFog() +{ + html.setAttribute("enableFog", String(enableFog.checked)); + backgroundInitialization(); + backgroundColor.disabled = enableFog.checked; +} + +/** + * Change background color + */ +function changeBackgroundColor() +{ + html.setAttribute("backgroundColor", backgroundColor.value); + document.body.style.backgroundColor = backgroundColor.value; } \ No newline at end of file diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index e3affab6..2202f652 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -1,5 +1,5 @@ - + diff --git a/src/main/resources/templates/setup.html b/src/main/resources/templates/setup.html index 8cb9acf9..6b477489 100644 --- a/src/main/resources/templates/setup.html +++ b/src/main/resources/templates/setup.html @@ -1,5 +1,5 @@ - + Welcome @@ -66,6 +66,8 @@ + + From b0a93a6c52d0c51b976d45968f201b68cd18e325 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 09:57:23 +0000 Subject: [PATCH 109/201] Bump com.github.oshi:oshi-core from 6.4.12 to 6.4.13 (#110) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.12 to 6.4.13. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.12...oshi-parent-6.4.13) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4ec0fa98..9b50eae7 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.12 + 6.4.13 5.14.0 1.18.30 0.5.4 From c57f3bd7666598d1c3f2ddc407c7ed4ac4c79d5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 17:17:08 +0000 Subject: [PATCH 110/201] Bump docker/build-push-action from 5.1.0 to 5.2.0 (#113) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index af838fee..53711b50 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v5.1.0 + uses: docker/build-push-action@v5.2.0 with: context: . push: true From c418fba78e70eca279a5179ad98abff64e9bc6ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Mar 2024 17:17:59 +0000 Subject: [PATCH 111/201] Bump com.github.oshi:oshi-core from 6.4.13 to 6.5.0 (#112) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.4.13 to 6.5.0. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.4.13...oshi-parent-6.5.0) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9b50eae7..3a72d69b 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.4.13 + 6.5.0 5.14.0 1.18.30 0.5.4 From f33dc09234673f5c7255152e301194b6fd4776a2 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Tue, 12 Mar 2024 17:47:09 +0000 Subject: [PATCH 112/201] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 53711b50..9a1428de 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -24,5 +24,5 @@ jobs: with: context: . push: true - platforms: linux/amd64,linux/arm64,linux/s390x + platforms: linux/amd64,linux/arm64,linux/s390x,linux/ppc64le tags: antonyleons/ward:latest,antonyleons/ward:${{ env.TAG }} \ No newline at end of file From 55221dbc98a130bfd8343cd2e9637dc3203f5bb4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 23:22:19 +0000 Subject: [PATCH 113/201] Bump docker/build-push-action from 5.2.0 to 5.3.0 (#114) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.2.0 to 5.3.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v5.2.0...v5.3.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 9a1428de..177327d5 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -20,7 +20,7 @@ jobs: - name: Get the tag name run: echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV - name: Build and push Docker images - uses: docker/build-push-action@v5.2.0 + uses: docker/build-push-action@v5.3.0 with: context: . push: true From baf14d46f62fb51ce0427a025379f51c297b3da0 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 17 Mar 2024 00:49:51 +0000 Subject: [PATCH 114/201] Storage (#116) * Update InfoService.java * Update UsageService.java * Update InfoService.java * Update InfoService.java * Update pom.xml --- pom.xml | 2 +- .../dev/leons/ward/services/InfoService.java | 77 ++++++++----------- .../dev/leons/ward/services/UsageService.java | 37 ++++++--- 3 files changed, 59 insertions(+), 57 deletions(-) diff --git a/pom.xml b/pom.xml index 3a72d69b..f80a078c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 dev.leons ward - 2.5.0 + 2.5.1 jar diff --git a/src/main/java/dev/leons/ward/services/InfoService.java b/src/main/java/dev/leons/ward/services/InfoService.java index 558f9b0f..5530b3c7 100644 --- a/src/main/java/dev/leons/ward/services/InfoService.java +++ b/src/main/java/dev/leons/ward/services/InfoService.java @@ -19,8 +19,6 @@ import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.regex.Matcher; -import java.util.regex.Pattern; /** * InfoService provides various information about machine, such as processor name, core count, Ram amount, etc. @@ -96,25 +94,24 @@ private String getConvertedCapacity(final long bits) * * @return ProcessorDto with filled fields */ - private ProcessorDto getProcessor() - { + private ProcessorDto getProcessor() { ProcessorDto processorDto = new ProcessorDto(); - CentralProcessor centralProcessor = systemInfo.getHardware().getProcessor(); - String name = centralProcessor.getProcessorIdentifier().getName(); - if (name.contains("@")) - { - name = name.substring(0, name.indexOf('@') - 1); - } - processorDto.setName(name.trim()); + // Extract processor name + String name = centralProcessor.getProcessorIdentifier().getName().split("@")[0].trim(); + processorDto.setName(name); + // Set core count int coreCount = centralProcessor.getLogicalProcessorCount(); - processorDto.setCoreCount(coreCount + ((coreCount > 1) ? " Cores" : " Core")); + processorDto.setCoreCount(coreCount + (coreCount > 1 ? " Cores" : " Core")); + + // Set clock speed processorDto.setClockSpeed(getConvertedFrequency(centralProcessor.getCurrentFreq())); - String bitDepthPrefix = centralProcessor.getProcessorIdentifier().isCpu64bit() ? "64" : "32"; - processorDto.setBitDepth(bitDepthPrefix + "-bit"); + // Set bit depth + String bitDepth = centralProcessor.getProcessorIdentifier().isCpu64bit() ? "64-bit" : "32-bit"; + processorDto.setBitDepth(bitDepth); return processorDto; } @@ -124,29 +121,32 @@ private ProcessorDto getProcessor() * * @return MachineDto with filled fields */ - private MachineDto getMachine() - { + private MachineDto getMachine() { MachineDto machineDto = new MachineDto(); OperatingSystem operatingSystem = systemInfo.getOperatingSystem(); - OperatingSystem.OSVersionInfo osVersionInfo = systemInfo.getOperatingSystem().getVersionInfo(); + OperatingSystem.OSVersionInfo osVersionInfo = operatingSystem.getVersionInfo(); GlobalMemory globalMemory = systemInfo.getHardware().getMemory(); - machineDto.setOperatingSystem(operatingSystem.getFamily() + " " + osVersionInfo.getVersion() + ", " + osVersionInfo.getCodeName()); - machineDto.setTotalRam(getConvertedCapacity(globalMemory.getTotal()) + " Ram"); + String osDescription = operatingSystem.getFamily() + " " + osVersionInfo.getVersion() + ", " + + osVersionInfo.getCodeName(); + machineDto.setOperatingSystem(osDescription); + + long totalRam = globalMemory.getTotal(); + machineDto.setTotalRam(getConvertedCapacity(totalRam) + " Ram"); Optional physicalMemoryOptional = globalMemory.getPhysicalMemory().stream().findFirst(); - if (physicalMemoryOptional.isPresent()) - { - machineDto.setRamTypeOrOSBitDepth(physicalMemoryOptional.get().getMemoryType()); - } - else - { - machineDto.setRamTypeOrOSBitDepth(operatingSystem.getBitness() + "-bit"); + String ramTypeOrOSBitDepth; + if (physicalMemoryOptional.isPresent()) { + ramTypeOrOSBitDepth = physicalMemoryOptional.get().getMemoryType(); + } else { + ramTypeOrOSBitDepth = operatingSystem.getBitness() + "-bit"; } + machineDto.setRamTypeOrOSBitDepth(ramTypeOrOSBitDepth); int processCount = operatingSystem.getProcessCount(); - machineDto.setProcCount(processCount + ((processCount > 1) ? " Procs" : " Proc")); + String procCount = processCount + ((processCount > 1) ? " Procs" : " Proc"); + machineDto.setProcCount(procCount); return machineDto; } @@ -159,33 +159,18 @@ private MachineDto getMachine() private StorageDto getStorage() { StorageDto storageDto = new StorageDto(); - List hwDiskStores = systemInfo.getHardware().getDiskStores(); GlobalMemory globalMemory = systemInfo.getHardware().getMemory(); - Optional hwDiskStoreOptional = hwDiskStores.stream().findFirst(); - if (hwDiskStoreOptional.isPresent()) - { - String mainStorage = hwDiskStoreOptional.get().getModel(); - Matcher matcher = Pattern.compile("\\(.{1,15} .{1,15} .{1,15}\\)").matcher(mainStorage); - - if (matcher.find()) - { - mainStorage = mainStorage.substring(0, matcher.start() - 1); - } - - storageDto.setMainStorage(mainStorage.trim()); - } - else - { - storageDto.setMainStorage("Undefined"); - } + // Retrieve main storage model + String mainStorage = hwDiskStores.isEmpty() ? "Undefined" : hwDiskStores.get(0).getModel().replaceAll("\\(.+?\\)", "").trim(); + storageDto.setMainStorage(mainStorage); long total = hwDiskStores.stream().mapToLong(HWDiskStore::getSize).sum(); storageDto.setTotal(getConvertedCapacity(total) + " Total"); int diskCount = hwDiskStores.size(); - storageDto.setDiskCount(diskCount + ((diskCount > 1) ? " Disks" : " Disk")); + storageDto.setDiskCount(diskCount + (diskCount > 1 ? " Disks" : " Disk")); storageDto.setSwapAmount(getConvertedCapacity(globalMemory.getVirtualMemory().getSwapTotal()) + " Swap"); diff --git a/src/main/java/dev/leons/ward/services/UsageService.java b/src/main/java/dev/leons/ward/services/UsageService.java index c2b6788b..8fdfa3f9 100644 --- a/src/main/java/dev/leons/ward/services/UsageService.java +++ b/src/main/java/dev/leons/ward/services/UsageService.java @@ -35,10 +35,8 @@ public class UsageService * * @return int that display processor usage */ - private int getProcessor() - { + private int getProcessor() { CentralProcessor centralProcessor = systemInfo.getHardware().getProcessor(); - long[] prevTicksArray = centralProcessor.getSystemCpuLoadTicks(); long prevTotalTicks = Arrays.stream(prevTicksArray).sum(); long prevIdleTicks = prevTicksArray[CentralProcessor.TickType.IDLE.getIndex()]; @@ -49,7 +47,16 @@ private int getProcessor() long currTotalTicks = Arrays.stream(currTicksArray).sum(); long currIdleTicks = currTicksArray[CentralProcessor.TickType.IDLE.getIndex()]; - return (int) Math.round((1 - ((double) (currIdleTicks - prevIdleTicks)) / ((double) (currTotalTicks - prevTotalTicks))) * 100); + long idleTicksDelta = currIdleTicks - prevIdleTicks; + long totalTicksDelta = currTotalTicks - prevTotalTicks; + + // Handle possible division by zero + if (totalTicksDelta == 0) { + return 0; // or handle in a way suitable for your application + } + + // Calculate CPU usage percentage + return (int) ((1 - (double) idleTicksDelta / totalTicksDelta) * 100); } /** @@ -57,14 +64,18 @@ private int getProcessor() * * @return int that display ram usage */ - private int getRam() - { + private int getRam() { GlobalMemory globalMemory = systemInfo.getHardware().getMemory(); - long totalMemory = globalMemory.getTotal(); long availableMemory = globalMemory.getAvailable(); - return (int) Math.round(100 - (((double) availableMemory / totalMemory) * 100)); + // Handle possible division by zero + if (totalMemory == 0) { + return 0; // or handle in a way suitable for your application + } + + // Calculate RAM usage percentage + return (int) (100 - ((double) availableMemory / totalMemory * 100)); } /** @@ -72,13 +83,19 @@ private int getRam() * * @return int that display storage usage */ - private int getStorage() - { + private int getStorage() { FileSystem fileSystem = systemInfo.getOperatingSystem().getFileSystem(); + // Calculate total storage and free storage long totalStorage = fileSystem.getFileStores().stream().mapToLong(OSFileStore::getTotalSpace).sum(); long freeStorage = fileSystem.getFileStores().stream().mapToLong(OSFileStore::getFreeSpace).sum(); + // Handle possible division by zero + if (totalStorage == 0) { + return 0; // or handle in a way suitable for your application + } + + // Calculate storage usage percentage return (int) Math.round(((double) (totalStorage - freeStorage) / totalStorage) * 100); } From 7833aaecd795df7998a03baf64a09adc9d0917e7 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Sun, 17 Mar 2024 01:02:21 +0000 Subject: [PATCH 115/201] Storage (#117) * Update InfoService.java * Update UsageService.java * Update InfoService.java * Update InfoService.java * Update pom.xml * rework storage --- .../java/dev/leons/ward/services/UsageService.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/dev/leons/ward/services/UsageService.java b/src/main/java/dev/leons/ward/services/UsageService.java index 8fdfa3f9..c3919580 100644 --- a/src/main/java/dev/leons/ward/services/UsageService.java +++ b/src/main/java/dev/leons/ward/services/UsageService.java @@ -86,16 +86,20 @@ private int getRam() { private int getStorage() { FileSystem fileSystem = systemInfo.getOperatingSystem().getFileSystem(); - // Calculate total storage and free storage - long totalStorage = fileSystem.getFileStores().stream().mapToLong(OSFileStore::getTotalSpace).sum(); - long freeStorage = fileSystem.getFileStores().stream().mapToLong(OSFileStore::getFreeSpace).sum(); + // Calculate total storage and free storage for all drives + long totalStorage = 0; + long freeStorage = 0; + for (OSFileStore fileStore : fileSystem.getFileStores()) { + totalStorage += fileStore.getTotalSpace(); + freeStorage += fileStore.getFreeSpace(); + } // Handle possible division by zero if (totalStorage == 0) { return 0; // or handle in a way suitable for your application } - // Calculate storage usage percentage + // Calculate total storage usage percentage for all drives return (int) Math.round(((double) (totalStorage - freeStorage) / totalStorage) * 100); } From 38046e5de5b9c37bf0610ec807cf4e2a092377fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 19:51:37 +0000 Subject: [PATCH 116/201] Bump org.projectlombok:lombok from 1.18.30 to 1.18.32 (#118) Bumps [org.projectlombok:lombok](https://github.com/projectlombok/lombok) from 1.18.30 to 1.18.32. - [Changelog](https://github.com/projectlombok/lombok/blob/master/doc/changelog.markdown) - [Commits](https://github.com/projectlombok/lombok/compare/v1.18.30...v1.18.32) --- updated-dependencies: - dependency-name: org.projectlombok:lombok dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f80a078c..65f16cd3 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ 6.5.0 5.14.0 - 1.18.30 + 1.18.32 0.5.4 From 59c1de69789d68bc44b58424901f6e4640402ef1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:51:01 +0100 Subject: [PATCH 117/201] Bump com.github.oshi:oshi-core from 6.5.0 to 6.6.0 (#122) Bumps [com.github.oshi:oshi-core](https://github.com/oshi/oshi) from 6.5.0 to 6.6.0. - [Release notes](https://github.com/oshi/oshi/releases) - [Changelog](https://github.com/oshi/oshi/blob/master/CHANGELOG.md) - [Commits](https://github.com/oshi/oshi/compare/oshi-parent-6.5.0...oshi-parent-6.6.0) --- updated-dependencies: - dependency-name: com.github.oshi:oshi-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 65f16cd3..432ac4d4 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,7 @@ - 6.5.0 + 6.6.0 5.14.0 1.18.32 0.5.4 From c1601d4727a4f4ced50acc99c4c4efafc7441fd1 Mon Sep 17 00:00:00 2001 From: Antony Leons Date: Mon, 15 Apr 2024 17:07:18 +0100 Subject: [PATCH 118/201] UI refresh (#123) * Updates To UI Elements * Updates To UI Elements - Icons * fix colours * restore old stats * Update InfoService.java * bump version --------- Co-authored-by: Stephen Adams <126944565+Techeryy@users.noreply.github.com> --- README.md | 7 + pom.xml | 2 +- .../dev/leons/ward/services/InfoService.java | 10 +- src/main/resources/static/css/animations.css | 34 --- src/main/resources/static/css/colors.css | 9 +- src/main/resources/static/css/dimensions.css | 44 +--- src/main/resources/static/css/gradients.css | 4 +- src/main/resources/static/css/layout.css | 193 +----------------- src/main/resources/static/css/themes.css | 37 +--- .../resources/static/img/controls/left.png | Bin 6043 -> 0 bytes .../resources/static/img/controls/right.png | Bin 6078 -> 0 bytes src/main/resources/static/img/ico/favicon.ico | Bin 32038 -> 2973 bytes src/main/resources/static/img/icons/disk.png | Bin 0 -> 21416 bytes .../resources/static/img/icons/memory.png | Bin 0 -> 6895 bytes .../resources/static/img/icons/processor.png | Bin 0 -> 11134 bytes .../resources/static/img/links/github.png | Bin 10325 -> 0 bytes .../resources/static/img/links/telegram.png | Bin 13270 -> 0 bytes .../resources/static/img/logo/background.png | Bin 108380 -> 154799 bytes src/main/resources/static/js/background.js | 2 +- src/main/resources/static/js/globals.js | 25 --- src/main/resources/static/js/index.js | 58 ------ src/main/resources/templates/index.html | 101 ++------- 22 files changed, 56 insertions(+), 470 deletions(-) delete mode 100644 src/main/resources/static/img/controls/left.png delete mode 100644 src/main/resources/static/img/controls/right.png create mode 100644 src/main/resources/static/img/icons/disk.png create mode 100644 src/main/resources/static/img/icons/memory.png create mode 100644 src/main/resources/static/img/icons/processor.png delete mode 100644 src/main/resources/static/img/links/github.png delete mode 100644 src/main/resources/static/img/links/telegram.png diff --git a/README.md b/README.md index 41f1e4d2..f3321d5b 100644 --- a/README.md +++ b/README.md @@ -91,3 +91,10 @@ port = 8200 enableFog = true backgroundColor = #303030 ``` + +### Credits +Original Creator: https://github.com/Rudolf-Barbu/Ward +Control panel icons created by Freepik - Flaticon +Processor icons created by Those Icons - Flaticon +Ram icons created by srip - Flaticon +Hard disk icons created by Freepik - Flaticon \ No newline at end of file diff --git a/pom.xml b/pom.xml index 432ac4d4..44652344 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ 4.0.0 dev.leons ward - 2.5.1 + 2.5.2 jar diff --git a/src/main/java/dev/leons/ward/services/InfoService.java b/src/main/java/dev/leons/ward/services/InfoService.java index 5530b3c7..06207bea 100644 --- a/src/main/java/dev/leons/ward/services/InfoService.java +++ b/src/main/java/dev/leons/ward/services/InfoService.java @@ -128,12 +128,11 @@ private MachineDto getMachine() { OperatingSystem.OSVersionInfo osVersionInfo = operatingSystem.getVersionInfo(); GlobalMemory globalMemory = systemInfo.getHardware().getMemory(); - String osDescription = operatingSystem.getFamily() + " " + osVersionInfo.getVersion() + ", " - + osVersionInfo.getCodeName(); + String osDescription = operatingSystem.getFamily() + " " + osVersionInfo.getVersion(); machineDto.setOperatingSystem(osDescription); long totalRam = globalMemory.getTotal(); - machineDto.setTotalRam(getConvertedCapacity(totalRam) + " Ram"); + machineDto.setTotalRam(getConvertedCapacity(totalRam) + " RAM"); Optional physicalMemoryOptional = globalMemory.getPhysicalMemory().stream().findFirst(); String ramTypeOrOSBitDepth; @@ -163,10 +162,11 @@ private StorageDto getStorage() GlobalMemory globalMemory = systemInfo.getHardware().getMemory(); // Retrieve main storage model - String mainStorage = hwDiskStores.isEmpty() ? "Undefined" : hwDiskStores.get(0).getModel().replaceAll("\\(.+?\\)", "").trim(); + String mainStorage = hwDiskStores.isEmpty() ? "Undefined" + : hwDiskStores.get(0).getModel().replaceAll("\\(.+?\\)", "").trim(); storageDto.setMainStorage(mainStorage); - long total = hwDiskStores.stream().mapToLong(HWDiskStore::getSize).sum(); + long total = hwDiskStores.stream().mapToLong(HWDiskStore::getSize).sum(); storageDto.setTotal(getConvertedCapacity(total) + " Total"); int diskCount = hwDiskStores.size(); diff --git a/src/main/resources/static/css/animations.css b/src/main/resources/static/css/animations.css index 1d49e3b1..23de3678 100644 --- a/src/main/resources/static/css/animations.css +++ b/src/main/resources/static/css/animations.css @@ -19,8 +19,6 @@ --animation-duration-fade-in-setup-div: 0.4s; --animation-duration-fade-in-square: 0.5s; --animation-duration-wiggle-usage-value: 0.6s; - --animation-duration-wiggle-first-control: 1s; - --animation-duration-wiggle-second-control: 1s; --animation-duration-fade-in-triangle: 0.5s; --animation-duration-fade-in-error-div: 0.8s; @@ -87,38 +85,6 @@ } } -@keyframes wiggle-first-control -{ - 0% - { - left: 0.750rem; - } - 50% - { - left: 1.750rem; - } - 100% - { - left: 0.750rem; - } -} - -@keyframes wiggle-second-control -{ - 0% - { - left: 19.250rem; - } - 50% - { - left: 18.250rem; - } - 100% - { - left: 19.250rem; - } -} - @keyframes fade-in-cloud-left { 0% diff --git a/src/main/resources/static/css/colors.css b/src/main/resources/static/css/colors.css index e57408aa..fb42391b 100644 --- a/src/main/resources/static/css/colors.css +++ b/src/main/resources/static/css/colors.css @@ -33,15 +33,18 @@ --grey-dark: rgba(60, 60, 60, 1); /* blue */ - --blue-light: rgba(230, 232, 254, 1); + --blue-light: rgba(121, 131, 247, 1); + --blue-form: rgba(230, 232, 254, 1); --blue: rgba(89, 101, 249, 1); /* red */ - --red-light: rgba(249, 226, 226, 1); + --red-light: rgba(255, 117, 117, 1); + --red-form: rgba(249, 226, 226, 1); --red: rgba(255, 89, 89, 1); /* green */ - --green-light: rgba(212, 242, 225, 1); + --green-light: rgba(70, 191, 157, 1); + --green-form: rgba(212, 242, 225, 1); --green: rgba(8, 193, 141, 1); /* purple */ diff --git a/src/main/resources/static/css/dimensions.css b/src/main/resources/static/css/dimensions.css index e9c682b9..274255ea 100644 --- a/src/main/resources/static/css/dimensions.css +++ b/src/main/resources/static/css/dimensions.css @@ -29,16 +29,10 @@ --top-port: 2.7rem; --top-header: 1.5rem; --top-label-hw-info: 0.562rem; - --top-card-body-squares-grid: 0.813rem; --top-info-label: 4.188rem; --top-inner-dot: 0.375rem; --top-detailed-hw-info-div: 1.168rem; - --top-controls-img: 0.75rem; --top-announcement: 3.813rem; - --top-contacts-label: 1.5rem; - --top-contacts-description-first: 3.125rem; - --top-contacts-description-second: 3.813rem; - --top-contacts-links-a-img: 4.906rem; --top-uptime-rectangle-grid: 1.925rem; --top-chart-label: 1.5rem; --top-chart-triangle-grid: 0.5rem; @@ -53,8 +47,6 @@ --bottom-submit: 1.125rem; --bottom-usage: 4.625rem; --bottom-hw-usage-div: 0.25rem; - --bottom-card-footer-dots-grid-div: -0.75rem; - --bottom-uptime-squares-grid: 0.813rem; --bottom-values-grid-div-p: 0.25rem; --bottom-project-version: 1.25rem; --bottom-error-div: 7.5rem; @@ -74,20 +66,12 @@ --left-header: 1.5rem; --left-label-hw-info: 4.375rem; --left-usage: 1.5rem; - --card-footer-dots-grid-first: 2.906rem; - --card-footer-dots-grid-second: 10.187rem; - --card-footer-dots-grid-third: 17.468rem; --left-inner-dot: 0.375rem; --left-detailed-hw-info-first: 0.822rem; --left-detailed-hw-info-second: 8.104rem; --left-detailed-hw-info-third: 15.385rem; --left-dividers-first: 7.313rem; --left-dividers-second: 14.563rem; - --left-controls-first: 0.75rem; - --left-controls-second: 19.25rem; - --left-contacts-links-a-first: 8.075rem; - --left-contacts-links-a-second: 11.7rem; - --left-uptime-squares-grid: 9.25rem; --left-uptime-rectangle-grid: 2.23rem; --left-chart-label: 1.5rem; --left-chart-triangle-grid-first: 34.375rem; @@ -102,18 +86,19 @@ --left-title: 1.813rem; --left-explanation: 1.813rem; + /* margin */ + --margin-hardware-icon: 0.65rem; + /* margin-right */ --margin-right-form-squares-grid-div: 0.488rem; --margin-right-theme-buttons-first: 1.938rem; --margin-right-usage-value: 2.937rem; - --margin-right-uptime-squares-grid-div: 0.488rem; --margin-right-values-grid-div: 0.125rem; --margin-right-labels-grid-div: 0.125rem; /* margin-bottom */ --margin-bottom-label-main-settings: 0.438rem; --margin-bottom-card: 1.875rem; - --margin-bottom-card-body-squares-grid-div: 0.75rem; --margin-bottom-labels-grid-div: 0.313rem; /* height */ @@ -138,20 +123,14 @@ --height-index-md: 53.438rem; --height-hw-logo: 3.75rem; --height-usage: 5.313rem; - --height-card-body-squares-grid-div: 0.625rem; --height-main-hw-info: 100%; --height-usage-value-span: 5.8rem; --height-usage-underline: 0.313rem; --height-footer: 3.125rem; - --height-card-footer-dots-grid-div: 1.5rem; --height-inner-dot: 0.75rem; --height-detailed-hw-info-div: 1.063rem; --height-dividers-div: 3.125rem; - --height-controls: 2.625rem; - --height-controls-img: 1.875rem; - --height-contacts-links-a-img: 2.125rem; --height-uptime: 8.27rem; - --height-uptime-squares-grid-div: 0.625rem; --height-values-grid-div: 3.188rem; --height-labels-grid-div: 0.813rem; --height-chart-rectangle-grid-div: 0.625rem; @@ -159,6 +138,7 @@ --height-error: 25.75rem; --height-error-img: 19.313rem; --height-error-div: 12.125rem; + --height-hardware-icon: 2.5rem; /* max-height */ --max-height-card: 16.562rem; @@ -188,23 +168,15 @@ --width-submit: 8.75rem; --width-hw-logo: 3.75rem; --width-usage: 18.875rem; - --width-card-body-squares-grid-div: 0.625rem; --width-usage-value-span: 2.224rem; --width-info-label: 9.5rem; --width-usage-underline: 9.5rem; --width-footer: 100%; - --width-card-footer-dots-grid-div: 1.5rem; --width-inner-dot: 0.75rem; --width-detailed-hw-info-div: 5.625rem; --width-dividers-div: 0.063rem; - --width-controls: 100%; - --width-controls-img: 1.875rem; --width-announcement: 21.875rem; - --width-contacts-label: 21.875rem; - --width-contacts-description-div: 21.875rem; - --width-contacts-links-a-img: 2.125rem; --width-uptime: 100%; - --width-uptime-squares-grid-div: 0.625rem; --width-values-grid-div: 3.75rem; --width-labels-grid-div: 3.75rem; --day-width-values-grid-div: 5rem; @@ -214,6 +186,7 @@ --width-error-img: 19.313rem; --width-error-div: 23.875rem; --width-advice: 23.875rem; + --width-hardware-icon: 2.5rem; /* max-width */ --max-width-setup: 71.25rem; @@ -243,10 +216,8 @@ --border-radius-port: 0rem 0rem 0.625rem 0.625rem; --border-radius-card: 1.25rem; --border-radius-hw-logo: 50%; - --border-radius-card-footer-dots-grid-div: 50%; --border-radius-inner-dot: 50%; --border-radius-error-img: 50%; - --border-radius-controls-img: 50%; --border-radius-error-div: 1.25rem; /* letter-spacing */ @@ -261,10 +232,5 @@ --transform-form-squares-grid-second: scale(1.3); --transform-theme-buttons-input-active: scale(0.9); --transform-submit-active: scale(0.9); - --transform-controls-first-active: scale(0.9); - --transform-controls-second-active: scale(0.9); - --transform-contacts-links-a-first-active: scale(0.9); - --transform-contacts-links-a-second-active: scale(0.9); - --transform-uptime-squares-grid-second: scale(1.3); --transform-chart-rectangle-grid-div-active: scale(0.9); } diff --git a/src/main/resources/static/css/gradients.css b/src/main/resources/static/css/gradients.css index 3736c664..32e87a37 100644 --- a/src/main/resources/static/css/gradients.css +++ b/src/main/resources/static/css/gradients.css @@ -15,8 +15,8 @@ :root { /* linear-gradient */ - --linear-gradient-form-light: linear-gradient(45deg, var(--blue-light) 0%, var(--red-light) 50%, var(--green-light) 100%); + --linear-gradient-form-light: linear-gradient(45deg, var(--blue-form) 0%, var(--red-form) 50%, var(--green-form) 100%); --linear-gradient-form-dark: linear-gradient(45deg, var(--grey) 0%, var(--grey-dimmed) 50%, var(--grey) 100%); - --linear-gradient-uptime-light: linear-gradient(45deg, var(--blue-light) 0%, var(--red-light) 50%, var(--green-light) 100%); + --linear-gradient-uptime-light: linear-gradient(45deg, var(--blue-form) 0%, var(--red-form) 50%, var(--green-form) 100%); --linear-gradient-uptime-dark: linear-gradient(45deg, var(--grey) 0%, var(--grey-dimmed) 50%, var(--grey) 100%); } \ No newline at end of file diff --git a/src/main/resources/static/css/layout.css b/src/main/resources/static/css/layout.css index 2ec711ed..0bbde77c 100644 --- a/src/main/resources/static/css/layout.css +++ b/src/main/resources/static/css/layout.css @@ -466,29 +466,6 @@ body { left: var(--left-usage); } -.card-body-squares-grid { - position: absolute; - top: var(--top-card-body-squares-grid); -} - -.card-body-squares-grid > div { - margin-bottom: var(--margin-bottom-card-body-squares-grid-div); - height: var(--height-card-body-squares-grid-div); - width: var(--width-card-body-squares-grid-div); -} - -.card-body-squares-grid.first > div { - background: var(--background-card-body-squares-grid-first-div); -} - -.card-body-squares-grid.second > div { - background: var(--background-card-body-squares-grid-second-div); -} - -.card-body-squares-grid.third > div { - background: var(--background-card-body-squares-grid-third-div); -} - .main-hw-info { position: absolute; right: 0; @@ -576,52 +553,14 @@ body { background: var(--background-footer-first); } -.footer.first > .card-footer-dots-grid > div > .inner-dot { - background: var(--background-footer-first-card-footer-dots-grid-div-inner-dot); -} - .footer.second { background: var(--background-footer-second); } -.footer.second > .card-footer-dots-grid > div > .inner-dot { - background: var(--background-footer-second-card-footer-dots-grid-div-inner-dot); -} - .footer.third { background: var(--background-footer-third); } -.footer.third > .card-footer-dots-grid > div > .inner-dot { - background: var(--background-footer-third-card-footer-dots-grid-div-inner-dot); -} - -.card-footer-dots-grid { - position: absolute; -} - -.card-footer-dots-grid > div { - display: inline-block; - position: absolute; - bottom: var(--bottom-card-footer-dots-grid-div); - height: var(--height-card-footer-dots-grid-div); - width: var(--width-card-footer-dots-grid-div); - border-radius: var(--border-radius-card-footer-dots-grid-div); - background: var(--background-card-footer-dots-grid-div); -} - -.card-footer-dots-grid > .first { - left: var(--card-footer-dots-grid-first); -} - -.card-footer-dots-grid > .second { - left: var(--card-footer-dots-grid-second); -} - -.card-footer-dots-grid > .third { - left: var(--card-footer-dots-grid-third); -} - .inner-dot { position: absolute; top: var(--top-inner-dot); @@ -679,105 +618,6 @@ body { left: var(--left-dividers-second); } -.controls { - position: absolute; - height: var(--height-controls); - width: var(--width-controls); -} - -.controls > img { - position: absolute; - top: var(--top-controls-img); - z-index: 2; - height: var(--height-controls-img); - width: var(--width-controls-img); - border-radius: var(--border-radius-controls-img); -} - -.controls > .first { - left: var(--left-controls-first); - opacity: 0.5; - animation: wiggle-first-control; - animation-duration: var(--animation-duration-wiggle-first-control); -} - -.controls > .second { - left: var(--left-controls-second); - animation: wiggle-second-control; - animation-duration: var(--animation-duration-wiggle-second-control); -} - -.controls > .first:active { - transform: var(--transform-controls-first-active); -} - -.controls > .second:active { - transform: var(--transform-controls-second-active); -} - -.pages { - position: absolute; -} - -.pages > div { - position: absolute; -} - -.contacts-label { - position: absolute; - top: var(--top-contacts-label); - z-index: 1; - width: var(--width-contacts-label); - text-align: center; - letter-spacing: var(--letter-spacing-5px); - font-size: var(--font-size-18pt); - font-weight: var(--font-weight-regular); - color: var(--color-contacts-label); -} - -.contacts-description > div { - position: absolute; - z-index: 1; - width: var(--width-contacts-description-div); - text-align: center; - letter-spacing: var(--letter-spacing-2px); - font-size: var(--font-size-10pt); - font-weight: var(--font-weight-regular); - color: var(--color-contacts-description-div); -} - -.contacts-description > .first { - top: var(--top-contacts-description-first); -} - -.contacts-description > .second { - top: var(--top-contacts-description-second); -} - -.contacts-links > a > img { - position: absolute; - top: var(--top-contacts-links-a-img); - z-index: 1; - height: var(--height-contacts-links-a-img); - width: var(--width-contacts-links-a-img); -} - -.contacts-links > a > .first { - left: var(--left-contacts-links-a-first); -} - -.contacts-links > a > .first:active { - transform: var(--transform-contacts-links-a-first-active); -} - -.contacts-links > a > .second { - left: var(--left-contacts-links-a-second); -} - -.contacts-links > a > .second:active { - transform: var(--transform-contacts-links-a-second-active); -} - .uptime { position: absolute; bottom: 0; @@ -787,33 +627,6 @@ body { background: var(--background-uptime); } -.uptime-squares-grid { - position: relative; - bottom: var(--bottom-uptime-squares-grid); - left: var(--left-uptime-squares-grid); -} - -.uptime-squares-grid > div { - display: inline-block; - margin-right: var(--margin-right-uptime-squares-grid-div); - height: var(--height-uptime-squares-grid-div); - width: var(--width-uptime-squares-grid-div); - box-shadow: var(--box-shadow-uptime-squares-grid-div) var(--black-opacity-10); -} - -.uptime-squares-grid > .first { - background: var(--background-uptime-squares-grid-first); -} - -.uptime-squares-grid > .second { - background: var(--background-uptime-squares-grid-second); - transform: var(--transform-uptime-squares-grid-second); -} - -.uptime-squares-grid > .third { - background: var(--background-uptime-squares-grid-third); -} - .uptime-rectangle-grid { position: absolute; top: var(--top-uptime-rectangle-grid); @@ -1023,4 +836,10 @@ body { font-size: var(--font-size-11pt); font-weight: var(--font-weight-regular); color: var(--color-advice); +} + +.hardware-icon { + width: var(--width-hardware-icon); + height: var(--height-hardware-icon); + margin: var(--margin-hardware-icon); } \ No newline at end of file diff --git a/src/main/resources/static/css/themes.css b/src/main/resources/static/css/themes.css index daaffb7e..f0f31a6d 100644 --- a/src/main/resources/static/css/themes.css +++ b/src/main/resources/static/css/themes.css @@ -19,25 +19,23 @@ html[theme = "light"] { /* color */ - --color-logo: var(--grey-light); - --color-logo-description: var(--grey-light); - --color-label-main-settings: var(--grey-light); + --color-logo: var(--white); + --color-logo-description: var(--white); + --color-label-main-settings: var(--grey); --color-main-settings-input: var(--grey); - --color-main-settings-input-placeholder: var(--grey-light); - --color-label-additional-settings: var(--grey-light); + --color-main-settings-input-placeholder: var(--grey); + --color-label-additional-settings: var(--grey); --color-theme-buttons-input: var(--grey); --color-port: var(--grey); --color-port-placeholder: var(--grey-light); - --color-submit: var(--grey); + --color-submit: var(--white); --color-hw-type: var(--black); --color-hw-name: var(--grey); --color-usage-value-span: var(--grey-light); --color-usage-postfix: var(--black); --color-info-label: var(--grey-light); - --color-detailed-hw-info-div: var(--grey); + --color-detailed-hw-info-div: var(--white); --color-announcement: var(--white); - --color-contacts-label: var(--white); - --color-contacts-description-div: var(--white); --color-uptime-dashboard-logo: var(--grey-light); --color-uptime-dashboard-logo-description: var(--grey-light); --color-values-grid-div: var(--grey); @@ -70,24 +68,14 @@ html[theme = "light"] --background-hw-logo-first: var(--blue-light); --background-hw-logo-second: var(--red-light); --background-hw-logo-third: var(--green-light); - --background-card-body-squares-grid-first-div: var(--blue-light); - --background-card-body-squares-grid-second-div: var(--red-light); - --background-card-body-squares-grid-third-div: var(--green-light); --background-usage-underline-first: var(--blue-light); --background-usage-underline-second: var(--red-light); --background-usage-underline-third: var(--green-light); --background-footer-first: var(--blue-light); - --background-footer-first-card-footer-dots-grid-div-inner-dot: var(--blue); --background-footer-second: var(--red-light); - --background-footer-second-card-footer-dots-grid-div-inner-dot: var(--red); --background-footer-third: var(--green-light); - --background-footer-third-card-footer-dots-grid-div-inner-dot: var(--green); - --background-card-footer-dots-grid-div: var(--white); --background-dividers-div: var(--white); --background-uptime: var(--linear-gradient-uptime-light); - --background-uptime-squares-grid-first: var(--blue-light); - --background-uptime-squares-grid-second: var(--red-light); - --background-uptime-squares-grid-third: var(--green-light); --background-values-grid-div: var(--white-opacity-70); --background-labels-grid-div: var(--white-opacity-90); --background-chart-rectangle-grid-first: var(--blue-light); @@ -122,8 +110,6 @@ html[theme = "dark"] --color-info-label: var(--white); --color-detailed-hw-info-div: var(--white); --color-announcement: var(--white); - --color-contacts-label: var(--white); - --color-contacts-description-div: var(--white); --color-uptime-dashboard-logo: var(--grey-light); --color-uptime-dashboard-logo-description: var(--white); --color-values-grid-div: var(--white); @@ -156,23 +142,14 @@ html[theme = "dark"] --background-hw-logo-first: var(--blue-light); --background-hw-logo-second: var(--red-light); --background-hw-logo-third: var(--green-light); - --background-card-body-squares-grid-first-div: var(--grey); - --background-card-body-squares-grid-second-div: var(--grey); - --background-card-body-squares-grid-third-div: var(--grey); --background-usage-underline-first: var(--blue-light); --background-usage-underline-second: var(--red-light); --background-usage-underline-third: var(--green-light); --background-footer-first: var(--blue); - --background-footer-first-card-footer-dots-grid-div-inner-dot: var(--blue-light); --background-footer-second: var(--red); - --background-footer-second-card-footer-dots-grid-div-inner-dot: var(--red-light); --background-footer-third: var(--green); - --background-footer-third-card-footer-dots-grid-div-inner-dot: var(--green-light); --background-dividers-div: var(--grey-dark); --background-uptime: var(--grey-dark); - --background-uptime-squares-grid-first: var(--grey-light); - --background-uptime-squares-grid-second: var(--grey-light); - --background-uptime-squares-grid-third: var(--grey-light); --background-values-grid-div: var(--grey-opacity-70); --background-labels-grid-div: var(--grey-opacity-90); --background-chart-rectangle-grid-first: var(--blue-light); diff --git a/src/main/resources/static/img/controls/left.png b/src/main/resources/static/img/controls/left.png deleted file mode 100644 index a5c664ac25965b2854dce37c4ab80581ddfbf256..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6043 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 J>MeZ}{{uXZU9A8B diff --git a/src/main/resources/static/img/controls/right.png b/src/main/resources/static/img/controls/right.png deleted file mode 100644 index 0203a2ae03d31e14f54f1b8c1a0d11b54aeb8788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6078 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�L+n5rvep z36B+n6C7(jv{~)iEFou3btYoCZ@T++Kz@lRC}_=k?)@4i(--6> z+!lN6ol{Y7)j2oWODqCo+U3g@O%bxsDSj&`>JPV*ZRQ+~nd;Elx8~0qKtYD-einL4 zFVL-K&f%TvOWF*h=c0E6M>2iR+$40#3%(Q!ab7824_uK~dJHSr5vAu&9T!dXOUhQS zt2Sy=u(0$hwjOF=hM48T*T)@%gp)C z_s{|MagZc!bE0xexE3QNM1i}8ZTb`>9dK-z>z#+#JLSY=SAljirRUo$NRQn-$=qF% zl)^bDEXuXV8st$IVO&4scUW%vmDMU}wn9T1ls$F-txc+z-Kvj9*>I6WKFtQ4BsSe9 zDdzXv4CL&v-I=n-zx{!F=q@xMT0H#eRh?PRijR<6_rpeTn2PZFwjFxtxk#7KW)ps)W}+ByYpuq?&Bgdi|gGYU1?^waxbUL z&3ied#{t|p?D^5vS^s}j(z?j*Vr;pXLv53COY#mAk<>l(iC{5UYR6+Z2~Wnz_%1& zEi`JtJzzC&D`1>-lKF({%P67*l(cE!OFN^R+J}qUtt^dR%Mq)s?jU_<+(0ub#9kaQ zACOGt=rNc#Wivg)cT)B3cwGLrc1hx^jJwD;PHEP^6@vs2xJMSys>0^2%Uo1G?dQrJbYw(wJ_${$)$rqYueAzf}v18D6S1wvRH zV=w)7uxeCGJU&8pczRjJdiw-_zIxIu9uz3)sueFP9)Iv$?$X#zH>S(D$Nm$ye=<+NVWbv_RGiM+fXJ&7N`2f7lPE+riQkghJZX zVVa0Kl&H9|13QDCw8dTOysGn|Vh572mZ_sM<4#;Eg-1l|y)GYYI#)7(JhBdiWCc@+NP`chG&V3He0xa}Fks zi$S;=?(NKge%e}4Gsh1;(=@)mw9x8n+9mn*e0!BaMpO?;Z%ZPc>dl%k!+Z^&4$=|Iv#@jbu=cReh z4Lr&tV|val@DkRC8KyF_=xiw|7QmTOI*yXrQa;wutx$IF?uM^j7w?|QiON9;9m3Un z+N(nLVsl0S0;M8^6oAQ|(dF9{T6%iXapQ@OQ&%2kGutP5W~x&4(n>;FE0+{PX}NdX zl5wT2MXO+6&$Tb!oTU1UXY^7TwV0+xt2gM0v=rSh$#^JIQoeq9B5Ocv z<*tH}vrzk$&ziTowTExi%wN%Tn$^h)k*#=_09w-5jDJz&ogP@{=HVBWba+5GxI`fP zEbF^yY{;?z;!(Sgr&H9du!XP15JX*DjJeN+eRTyMJ6L2dho2W4x1p!5!O+~oS4FDXmT zpUKixbU{jpEL?!gV|i#^F`4|wxohQhu?}z7Yyu~f)CXxv_+nBD+*XrxKjN)>mKHK|%AG_Hsu<01MdnC9n2Y+>fo5Cxq^`P`%R-Zk(NmOk@ntGDX&p zb}$?SimhWjt(itndM0l*Jcs7<9<;ucbFxdbx_kN@K9S=iD&V?aOP+;^Y@_#b3PZc2 zKd3CviozBd+ZxS)9V{uXi37ymyBpU#ZV+^A@4zobOoSEu`^8Zie=rxTQ`D#eD0eGC#KPAjA=H#bguD07gy@(}?iBPb9h})d0F`@w`;W$~ZRGm&^H?=vQI#@5a{sgZH&-%OX#^ zu*KGNpg}R=b;=0=WBqwqAptq^?_67^3a{VHpUmWg9b(fITs=lwDA3d_V_HJ0*7X~E sA_V!mE7!LWwy!s^NXa`!8sAbcL~W$o>2<#P`S-A$wX;>L#i`T(0YBV=rT_o{ diff --git a/src/main/resources/static/img/ico/favicon.ico b/src/main/resources/static/img/ico/favicon.ico index 46f5b5d7492b614a93876d3e06e2282cc6eedba2..6f4e867b1f354fcccb8a6c74cf9dd01f2012260b 100644 GIT binary patch literal 2973 zcmb7Gc{J7A7eC+YOZU3wdAbNil(9@1ZX)v(3VFG1gi_`qic8{!M@TM`8}g9xB}1Vr zTp2P%(L*j$d8TU~uHna9@BP;A{r>r_-#+K8v-jEithGODpS|}10NNi11Oagniw1yi zpTBQqVaUoX#Jtb48XM`KKhPd5B)q?^h2iE7ByT?pTc{^DI1>Q$8Dsr3wjsaIWrz9j zP6<+Sxcv@u7)N=^FthDKQPhB{dvT?eRz5OJr_Y~5*bG}0t24Y*QD#xQL~8Z)f+|%D z-?f@F_@JVu3ZANPF%i!cK5~5e67$sYniN*A_Un_zHo|)i4SM#w%|`9lbnPCMZt!H( zd;Ly?``GAC62XMB7TN1 z4KhJ5OgIWoLL?M0|6fO_4X$feSuM#ZR(0u{MvnCNeruA8Mewq6w{Ua{9EYZ3?+OAgc zSWZojM8u`(3AIYbDS^Z8I}ty{e%@%|1F}k}!}>E!UV%kBp_`Pzh2HSs&B4(0MBMYo zH>&iw(oBSb$3yRkww2gZ0ulaGNL7i`SLvUJzM9Y%+Erq4RE|AzCpB%iW z5!a1>c!i$#buaVHV%FqPxO2VmZSd%=Lrr^W^7NYAgPEal%h|xE;L9IF;Ydp+41uZc zd(fwJpP>y-t$6vwx!@*$%CK&N4zfvy5+&=hra?Z;uvZrEF}1xNuV#hb5D*cJaKLU`kdN0 zhN^CN(3}y4dhwvF55{6X;f!8?-_}oyx>VuVpGE)zhe*(o4sqw~-(1UAVKO`L(ql7| zG3;D`VX`8yt3?;AoM81Y<^;`PHl=}>lK3kR0w+LlZpt@75(Xin8xO$&CeHw^Ydi!) z6oAA5OaL4Jfdxnai31%5aqc?b$HpLvg&Z(zc<(K}IlhpCKt)s>pI_@lVjn>EnN~Rl zf1AU9-7V`FMiI=xz_?!Yj8y@QW0Cb$!pFyZNPuvds@1WmVn(^cDVj8HWH-ClDZu}- z6*g;rvGKanIu#}(L9A7NrMDkH3z_Ra2BM)rn4&)YdSO5pmKCBgfW5bhlHL;iR(PDw z5d=w)aJ6W=AV4ya1C%rPa5*atiH)lr0IGNMz&U0ey_VC_p$trVWex`f<=vK00;(<3 z=TnI1JaSqn%HU?2^s>Y~X}P05(;}c;-)yhoQt$)|L<`En{x_uDhjBN5$nR;?z4pRL zfcqf@*5K+OOQY&GI$P;`k?oM2h7YZv~&*w?`kQ2kt z1(RgvE$et;aV0SW-MikCiJbdB_eOuF0OIKV-CMADJE)p~8*fPMNcz@umvR&G88|Md zPKvhX(=HCmd6&$-OaoGXI9>!uh0Y3=X5UgRhu~lQik16{Fgj!AYsw;)L801W2oAes z;o&-z`y!@w+HE|rO5dxGhz}h4C3H77w>kv29Iv3P*7F^M>>tv0QQ+;&QUk%|_fSf7uP}S?1XSXGxzOwS zVaRBNzk*D@z2n?=7(rzRCakM*!jVZR!aAfLlf|;b!u>(1sJ?+x#jD zCd+_8qATquC(Bv176{v6B|8)id>b%tF4k^m#O01i)Q~>+jYmFfWTGaBHH| zZz)}07tk_sH!bpB_V9dD2E4vuTs)g11YOB7alqbjF&cyj5w0aDKiUnbFWi~JK)o#3 z5U-S?*933s8<F!XvTGzurPk|Aop08%;%nIY#tMcWv>#!>_-*5@oZk6 zXTs4qi_Hzs!8gfm-d2tM{0V^|b$+i9lcS+gp7g;6|2}7p4PU>OnF(68CCO}F&an!^ zUk>CUs;#IkTGjPR(xRk{HNpyCzoXmkP(1H14+|6cv~tyVW_$)VI7@62e(xlkQida( zyFWPSehevHmI8mkBc*qC;}dt~w$!V~YEsc>k4y+9TzE*OV=IF1*C<}|Jw4O z&3n!p2noXRqd>%6;P_fBSu>^yUyklE@sEqF7|1bMOO8BJW@)My)^s9evxj2%eRACc zk3H_6>a@FDZf4QT?eCM&!|v9@kN7!Q8aNA4!o zgQlN)^pnsYdfJ!}HD4U^-(QZuAXoDOHs%*$1Y)OY^@lG@5d`IZ7~Y7ZxiR}FKBnAp zbvbp`rD)J-&0wb@wW*@_wC`kEH>5`Ov{jbktK)i;R#Ic5IZy7XYgGpPf3;}dcwV}?p0a`MRg!olT?=WqVsBsols&i zcD>wTk2y15QB<9jaG&V=5zp0kX**>X z8tQx~NYfel8oT1&!5H7Je5yQ${o8sS`qvEEvpOgG_RGAIHB$q5W_ls+V#d+C;SLhB zo^CF}{jR;`HSgzVrsT+SW~qI0*qFh1vR*;^w=kf?NW|D*pvI0twY!94mzeh#@_W$XtIH!Wtw)=@Jw~*>~CW@;guY_1R4)0r$YRN}S-;4gH-sl&9 zNQ$xz{VMIHPg$yq-z?*@&!7D0eag?=k3W$TL+KS}Ps!UxSK)oKEUVR`Ieq6avoCSg z=4PSJ&}s1&Kg|Wp$ulS+l~oPl1Y15|TOqT7@`HKC1O1{EBR5iR;prmBALRW;nX56O zoPNvE@;w>i5j_!&%rk<=+D_l|!3wX@RWRne~^=su$eL077Pi z`aHp6`H1&ga9=jJUT|iLE=lHU4bDm_|MDAey^d_T^BUqZm@l`BoD1{`n0>|LLW1L7 zkLYOzycSM02l+r{(Bdz?A;jA!xJ7p(A2fDYeI-+^-V)+9*@)B3P6d5B`P%Yqy_9oC zD`z<;VD}VLT)AKclHs7H&i98`l8~u@G}#^Z`z6mYhs*w!$z3wA$l|@q;l8%r}HKDOHMj%1%40$zHhsqhe zCKHgTyizVIczUiL3jBXWfiKrABqhudq8E;l67~pLw_|0u*f08eJ}G8?QR@ ze7#zp=2gyum$l~hRB)~xGmVGBoM=WA|^``&~ly zn=c=v^HiBKc}|2bQ6&phC-H^rLSGS~n_S*2tye;wR1f=q__mMF!u`zI0SjE#n%J%)ZXZ0DhqUBiDNSDQKWn5ui8Y+m*#kIlg`PTG%3-?v$v#nW0v$3Y5@gPs?LX9z+r-losqOWYL| z&)ONOP32WAjO{BWA;t9~cP3cDkZ-bD} z92(hT=V#VCJe|DVAMI1Kr|6^azxbq|$INbJ?O|TS_-L$h7u?lgwcOYwI&1Ah5WE=X zTj=PftkRuBwOc1-)yMCp`7F#zo|mFHLxyena`$KHwKnsWAyINkv=6*tI^(zU%Hksr zIIW_K1;0_cpr7;eEC&ZlB_#t}L`Q)e?QwT ze;Tm+WLEO1@MMg^&tHCRS{FgE@r#d%r=ona#5hB&&k}}TYw&?*uBFJfiUM?3_Q^)k z-6~L;222=d_+F<`w%Wtv6twq4*50su{bI6j!+O%l*(NnQTrE8KhOQwfexRBDK*7%! zBop9+|9r8R&usl%p?xsS_gtX-@DcrPg~xBc?mFT#Rt{+qMU#v6fd{ex*gdbk^NLzb$*Z#VUjW*du~JyZD75sIz8ha? z|BoAbK_6cdw0j{7ys9ivX-n5G3G+C}|ASAcky)oxEhn3+i$A(=@yj|xrSw0XrC-^r^OYm`Nq2(|v2#J?i zRx$vx;Fuy?Tw?T_(68(EOrSE9@db{TzMtx&{d_TGLiqX+>@i*Xsr(2!QADdA=$h)W6s^l{uyP`!} zB~jO4txW4M=cdWV?K)lvk?d@9^!MZ&xvh!RRFw4Uu;iu5`!66iYcRP;^m)Nsvq|OA zY+Zw?IIYtH_}pe4$2CQNr#GHT1N4nb%zG6|u0MPz;rHYRdr7fU4&zIyll*(~Gh{mP zR#hT};V1vz^ZdV;0??tfuZ+<6&Wzyr_6&Y}dm2ByJuPc^NT;O!AzfzwAW>2VI6s4@ zX+nA$Kc#nC7ESzFx~yP-T_#PT;kx%i zYeunLPuJLVeHU5dHNpOR@7L>=oN${I-p-u`zb!Tx*J3^0sKTN-?08$=m^-uY2?Oh< z;E16^NcrIdquJ7m&&?K3koq;_+oSg;cj2N&N<_ z-FJVy^!+oB2lI_rUg}+AHm-75-JnIxhOfYa%}9l%^yiU{-P&c3*B1Sa_MzKQ_7@)` zwp%$DY%MW*F&?vQbH#iD@LT({%lF*+%=3?Hf<0&8KvH^O?-;+0A6s&0lK5I?_tCFXwMq6KPq%$oV;ukV)iSFN0l@GgR#H8 zs*4>_Z4b2go5v=#TZFLvS*5qlA;B+@_|D`h`ua~#PD=16sBlg+FW$FjRFGjAg?GGR zd#~Ci>kwszqjumJPr;X^-?)3#MOyH`U9|8_zs0g!uzD1Ft8jz>?47(|dMGuB_EY{JWf;+lWhF`gjfFXtlC#@J@_B?cgI9Z4z=;IoJuHz6bUikZS@o1g!{a>Gc zGCg21t#I1hvQ>=PPbqDj@LSajf-DM+G7En|Jl!BW*8d~(?+Jdf3op1p=dCi#b=jP< z)sYCx@3P22_+b=UcoOBC(OtOYmI*he^er6kV{&%PG^9wl2J8^u7xk{{a*h-qg{|>%U zW<*z122ohx#}e2(PtHk-Rx@9lMa0sg$>5!4g?Hlm8~s{mVG5?TOAc$D1MTt6utO(| zy-wJS-vAgz7u)&$cSI;Ic))A3H(6QCe{phX2a*_(zafDZpvw}f3#FM^Zw}4>&LY_9X`JRzZCj_^V$;n0KSU_ zgD$)vrA*WMouF;VBHY)SkIGGPR7>*kD49?rOBT+pJ6Z(0j) z`tFbS{TuD?iGIf3U}G@PM0`jQn62>H{%P{mNyMCU?EE&#QQWAuD<#ea(CNM!bKRJ9 zS9$4Fk4)rAz^NW%q;L=$wqfb&PZYiCvw8m{K2z0AXxAUGLx$46_eA}(GGABGR%OXq z?lrS6n#ePVDx1L;@uz*0LPUmW8p_R{MpJ6`zH`u<6+!YR}!`$ z_qG5d1Z@n)lRwrb@b3UmOqb=hXwAIcJ5O(w?0et~ip~Y`JR-RD&4N+rwAvH!>4d-X zttb%OES&ppTF4=+fL{;(^#+-7z_%I4Yv^|$e1JEcKd6iADjp2I*ZGVUZ+jTbGw`*? z!$6;VifzA)O-qYSCv={L-{(d2K?j`+lKY;AZeTR?kO48>18}^h+|l3t^_3~nwzIeY zOzIfxQ{crm5B1L@Mj&1<0qv+vel1!d#m%~9OZx|H)euqP#T%ci8VL-`T)cG7~mhT-%|Xc7bNt#T6goxZ%)Hpu$s;Vk}?-i zpJohS4t)^UkKn-~@L<&Lpn@SgzhB!2zVvN~sff(QiSi6QiBb1vv|Y9^pI|O{7<~|;@*{aJQ2USOSR)AVzg~L%&A*M- zS8wPyHS+8%$k9&f3s0VlQNIKBiI^i;tr*F_`sl;cu}<9SpuCf`PDG4E;lBKzQqCdP zyqrPMC(5F8P|{qWeuJ&1Yz^!bngkqu@kr`7yb(O)uMyx&SLWi_`iR0vWt*V3q^cuX zS7V*%q`VV9Pttl=8!nnM?TM7~ch>ajI>g8>pmR`|b~KhDw!Vts--7kcqdArPk|-B@ zEIzPr0OsNxN(V)bChAp~OSNqiwC_9>`WIkh=!n@E4C*}IhBdJT&!p zH;z-QDEa)^Z}b5VZ*p;nLlF^+Q;j$!B(9nlATQnp?{_PBi}vlMddvZJF5pDOheY78 zUh6^3Sx>yb@a^O3VeibENdi{$eV{|L7x5Lm&?NJ2th*^3kE4b0R<6NZ_Tbgyev^Q| z>DbXRh|3Y{5X%(+{xmuH;BJ;}dWiN7@J}eO^$;0J8xD4|!z?j?wRTADB^jNzzH@u9FT!Sng&D$60w@;xtm zD9}TJ9t!kO;N&QPIiF7Z)XsludHWnWm%<4Sm(ys@5AW2`JPTn>@p)$d5TVbR2yu$f zNm`K1!F!U%$LF0ymqo^7k7qO|%5ytRgk(78T{VYRH382dnSh*6sLabVeU6a8K>h{oxM} z^nG{1J7W<0b~w2m_$`VNPj=a2CPO#NJMMd^Zz0s1o9c$LVpCGJXqnNHd>)_30M|0mXnfz|67>lh)rUBv+w*UQ& zzjYt{tBsYeWdGjlN`J|D+gRmu#>b^5w}beJ)e|4M^OPA)8;!)bFaPDae%Rl>*~d6! zixqp7wPTf4-=c4S{!h0|y#LNbASduN?U|?h1td*udoPR-ZBM%s*`Z z=He3od&)(yPx}hQb_f#u$!5e7#m5w=_{8Uk&-mxr=M0DihnxTg)Zdf8d*|3X2B%_J z(GJdvh>KO|LI=bVgb?fh=zqstAn8k-t@wVXIu^g9 z;Dgwr_?Q^_4t>*%^Hd&91yk$&;`iS>yVhzxNaI?~G^RT)PLsl9YjCzpT+BFqhnUcE z%)^NeU@hRM@b1u-O`{uFo7D-N%!nPsnQRHXNbxk=5t|VgV?}X;d|Lb1(+{1{-jSIv zOsD5p++N2p0p8-1E%sO(GlfNy*^aZ@BInhp??C4!#9%xyVx< zc=TKblg-s7ew6-(c#wq`4IO++vGJ)89DmbIy#p5Ga>RdzdEe7@OtRHB%n687^ThU0 zL}<`~{Zuqg4W5MKUt7LiIke7ZDU%SFYeu|XvV7%m-iXy2l<7VLmA+~YSyPC3#FLJT zK0Zd_Uw5osGYq_6L1T~2G!89^_h~#0#ff1MuTA58BD|{Rh;#d8-lBK9b+&Vb`H$8z zY>0*2vx>=dG~hfJoV|!PZ1%2g(0DSOf%1p=81obPw(iP&zF-~!UX$uMwu#4_ZxIq> z0hMp8#W_j>Vv7(f$Z&|!iJV2Het!hFd)zJ7l+8W)@WXvD=dZ>-qVSxbG{))v28jbr zXd67@coJif6`EIwx&KT*ExlVlONoTW50{P_mF_oJE%LJhcrTziAK}bQ+0WS!YuF&; z%naYV!0mjVpeZliO4+`c8XzRzuzah4_GvT?Q)2Of~R@*&+X zb*Omz?*|NoL-AL*ZolOg#Gf9!8@yjHSbbq#ENN`>b%r*NWE2qV*jb0YPj&(EvK;o! zM9x4{@kicPWcx*PO*HS#H~J&aYPZ`af%h@zC&ozAI6aSFFc%{xO0E$Q$1H@f&nj_` zOr)Jo#Ny4yr=RM&OQBxBzI}V)ETwq?@V<@mzDBO z_-utwuqN7pbB7YvL=W73H!)-#x)pPN4R7&6zG&3*m2C1<8D2sxS9?8TupNluV>o)o zS&|NhzCm2)fj8fq^{bp9`t`z3&aG#x*);Z>u0uGDbqI8?ecQKwKcrQ1WYPZdpdV2H^9!9;$QO+@6~2ebD%&;cn-4yr z=QHg^9HZ>T-a4Mg7@&I-y5iIcePbrYsk?9N=6AZkY<7_4I~njk6kmmh(J}4 zhb3t~rtQEURk-!Q_evb^nlC=@gP8k`9XRVNfW3Ei$S6e@NQ#*T%|cicJw}^)@Sceo zepA)gUaYCi`2OTJP_`NJ>>+x-*7*a@#W~UX@%aAQW``pj*Uw?EU{`&U##Bo?k8B(p z_cc7(dhIioB^4%-OGq6?Oc#c7MxEwBEIsh7pA8nRv!4N zW0Z~o&3US$z^Bk9U-dBHw=`lOo3d9{ z(FHZuV*x$4W&au)4t3I3!QS0hgZCwo+PT=oJ?atuqI(wC{>NJ{CrmQyapoP?uXh8# z`Vhvz@pJ*!Q|j;-E3nQ-8ya&y^u??VyT0u*k5^?MxfncVqjJ_o&udJfYk)u73jamh zu(P~u8th!{EY|udY`i$9HgBqy%`JQTwzI+i*nZ#i{lKS&ktRdraA8Scihya2}*P9D|rDt z))CeP>6(*{u|!)5Fwb)Id;`VKm88Q_xR}FteX;7}gne@= z$VafR-ceR^E%5WGJgO5kr>#jZ_+c5SzWdtpzRW)o1 z8!!4EG!5Vkgj+^kI#NZaORnewHp{aZ18q&vhr@DOTUVj{6rZTRd!%gF=z(W<5qMg~bnGAeGO>@e z<&=su)v2KG{t@SY$3fD*&ELIi5NKN(rZ4(FwJu0)!=DZtIrO-;;opuOdm8L-OZ{xv z#;fIbp|r%>>i#F5eMB3nxVJlhSWC}gz8Bx$7?x9*1L$1s>T0`HzaRQ;8U7zZRNsvQ z*X8!9KRrTqEzmbCV`92s;+mVnR&2xHeso;h@YYq|4gv4$U5cGc%f_qdt(7>tSXsMu zK}h2T`siHrPhO%f0K1LGoI>%0zWdSS$L{Zzw`fxvzW$2fJd8hszOAt}H)tF=lUt=J z&Czf5)Ha;T7dzwm=dnjW?>_K;qhN!LS2-hH-QOABD@x&DY<`RXJ9Jz=iYLR!VMBF| z9PpJFZ~sRo{yEGEUgn(aOF&x=`!o}E!6euecZ`7r z*WGljCT)id9-M}C=*I!@J`Xv@>;*lo5`IT*ybK4JJx3VgfJSd0C*#btWo8m6W+O-r9X9t~)Dte;<@{6)_kaRO%w zpW^Ni8bUa8K!6=;$Nob(gRociv|mbhY2xoFExEnjCDpaLTyiV=UQJD+R8(2YUd1pC zXBJs<$no}hr^1usSkKy~cDkMI?f8FED(n`gtD}aozs9nSgAX65>V^MDMgBACtoc+h z)%Rx)=ud4TzoY!s5eJ*Lfj!f_vBZ2U%Qjq8TqLE_|4D-wEwySwUeDs3a>+40ob1SH za!kkn1-O&q&oK1~!-#UnUnn>1Wu6i5#ej z!KUrt891IatmFzlV-=D8KEMXP@%ZC=K$qm=JG2@{EHXuterb zMsgk`I$6%52R?*zKAh`#8e))1qIp*MnINAd^+s zYb1Y*khdsK$lswkj;~bmPI{O`_z(&;m&4CEry?V$lQUyE4ynL%8vgKKkF(S~1GjvC T8Gl**`SCLTvc~_P?wtPu@ne2` diff --git a/src/main/resources/static/img/icons/disk.png b/src/main/resources/static/img/icons/disk.png new file mode 100644 index 0000000000000000000000000000000000000000..46403622e850457add77f29d80debfeb573266fa GIT binary patch literal 21416 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≶m&C)>&PpP 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/img/icons/memory.png b/src/main/resources/static/img/icons/memory.png new file mode 100644 index 0000000000000000000000000000000000000000..03e211ca0274692289d01cf1bcab41c46d8dd0ba GIT binary patch literal 6895 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 KR35+d=YIoM2P-T9 literal 0 HcmV?d00001 diff --git a/src/main/resources/static/img/icons/processor.png b/src/main/resources/static/img/icons/processor.png new file mode 100644 index 0000000000000000000000000000000000000000..f289a9d302aebe78358df3e8eae4104fd4253c4e GIT binary patch literal 11134 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

?b+4Uo*VEW-rdi>8pRs-m3=gKdSL68A^ zpXK=OU03v%S_R`nq_GC!P~t*H;GXsV_wV0_fXUgI?3LUit#hCHFH4#jhcr+2@QVqd zS58sSz%ggxvL54mXZdB9r^i-S8ZBa@3R4ZPA;~@Em;WAO^(e_j;?tD^)R-6 zE4ZR{PEh+|v1|iqXH7_&yqC<>!ri7^Q#v>o{LQ~uR-NJK2Pmy>ywwLC8ug9$}Lnr9F%Y=TKaxcJ9RxhtTi^2XX6;0*;EdcH%m5Uzp3GK zlKeUR_t3JldgrFge8!c(xJ;3|`q{FcwyG8m{1n6cZD#JLHJ#GM-nlxka8e@aP4^}J z{CmQ<^L5S&{3kD<+$YKgV#d`?-$%ni`*0YH2E61-Jl;6SaEPNLronNCzH70uAid!p zcb7Zm?-!1jynF^$o%Enui@&E}+LFLg(%2 zJ3|&3sPUMIBMM{;`Kb~ZdvGLzc6e)+%xq!M*Tc2caE&J(-+*lZAuLaRbJzbelvQ$n3Uc- z=isH1Q!Q2O9wS?F`Kc!fjNu(TsDjZMeiL;C2Swq#N}B+FAUfNNl2qW-;RE)0&{SVf z-jBU=KWj76(vYj@PAg~wRXaI5e}{@PT)PKf-Exx8sB&_5e{g#ADUSBEpyy@RwJ@?< zyi1Mawj~^|%)PPAn~L5{e*8uo;IRwC!vb1tzH=Z3x(6VxsI!w(b1p1c{!_(5R-k{+ z32cL=y0egmq{X1Kdfk*vUTzGvNG)p+8I(dXB} z-p2-359)!J zTtPrnj*Lb#hAT^&oCbE#m&@wSf?-Ly8@~EOi7XeRhJ?Ww*+GH7Fu#x3L4|o-5>(NY zElEHT-;uu`0v)5Q(xG>okcX~j(&+WXdCJCcI6wQjEP>?5y=vxLL07dzmA9i#=YF{s zqxbVFc&R|LE4Cj_LJ!Wo*sBEX8mSxmKmZ&nCKXTSK%>J~mt=a^roe^p-5ZIBNle-Z zS;--tO__W$bIzC9;A^7)#Lwy4yBc7y-ehq6fDFg^lZQZ-v$xyeO)7S^gqB4YXf(2T zC^7f3DIPcEdz=R5ZtW{u4xhJn=%BGKw@s9K<8JAf8ej#!w9rx&p9EV=OMm%YT<6`q z^WgQ>qrVZHeuyR_w!vsA>w^83rUC59rF$dIzNzKq8gfa&`3R^654HugnA$IE?iKU4 zh#2C)KH11EbpsWHk~+sMA$8XEBlt$fcImP}P|tt^-{UQU(*v=5i}a3JhExEtlio4Vi{^F6afUMXp;D1~I;pIy{`(Bk) zJ7P_V{BorcFUH(==^JGqWzfskZigyqlGX|Dc!KUb9!rl0^T}S^F&Jdta>g|~Moz<; z?+_40-+YKvoF3-}qijXQu8DtrGEp;_IDKsNK#L{cW3EF!?U5ixSp9~(eXH(C>f?-&2wqg;x1x5wn+X^kEJ}meTM>^;~z1&7zN^IV} rwy(HfS}vb#S>Al{#igK6KN;LlA6Wg#C78PV-$qP~ERIxRPbK~@{lzPs diff --git a/src/main/resources/static/img/logo/background.png b/src/main/resources/static/img/logo/background.png index 0d3e9425a63150778bfb6a83f41d37d6aa4d2ac4..e037b563ba319c166925d58afbf2c88069272d66 100644 GIT binary patch literal 154799 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 G!u~%E1w^0# literal 108380 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�AA^wtKWmBP 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�;D3-!~g9 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 HTZI1~igOjI diff --git a/src/main/resources/static/js/background.js b/src/main/resources/static/js/background.js index 2b1835f1..dab8db02 100644 --- a/src/main/resources/static/js/background.js +++ b/src/main/resources/static/js/background.js @@ -36,7 +36,7 @@ if (html.getAttribute("enableFog") == "true") } if (html.getAttribute("backgroundColor") == "default" ) { - document.body.style.backgroundColor = html.getAttribute("theme") == "light" ? "#e5e5e5" : "#303030" + document.body.style.backgroundColor = html.getAttribute("theme") == "light" ? "#e5e5e5" : "#292929" } else { diff --git a/src/main/resources/static/js/globals.js b/src/main/resources/static/js/globals.js index b0a4cbf3..7dc6dbfb 100644 --- a/src/main/resources/static/js/globals.js +++ b/src/main/resources/static/js/globals.js @@ -111,31 +111,6 @@ let ramTriangle; */ let storageTriangle; -/** - * Used to determine current page - */ -let currentPage; - -/** - * Used to select pages - */ -let firstControl; - -/** - * Used to select pages - */ -let secondControl; - -/** - * Used to determine logo page - */ -let logoPage; - -/** - * Used to determine info page - */ -let contactsPage; - /** * Used to determine left cloud */ diff --git a/src/main/resources/static/js/index.js b/src/main/resources/static/js/index.js index b7d4814b..2a71cde4 100644 --- a/src/main/resources/static/js/index.js +++ b/src/main/resources/static/js/index.js @@ -5,9 +5,6 @@ */ function indexInitialization() { - logoPage = document.getElementById("logo-page"); - contactsPage = document.getElementById("contacts-page"); - showCards(); currentClockSpeed = document.getElementById("currentClockSpeed"); @@ -15,10 +12,6 @@ function indexInitialization() currentTotalStorage = document.getElementById("currentTotalStorage"); currentDiskCount = document.getElementById("currentDiskCount"); - currentPage = 1; - firstControl = document.getElementById("first-control"); - secondControl = document.getElementById("second-control"); - cloudLeft = document.getElementById("cloud-left"); cloudRight = document.getElementById("cloud-right"); @@ -32,9 +25,6 @@ function indexInitialization() uptimeXHR = new XMLHttpRequest(); sendUsageRequest(); - - firstControl.addEventListener("click", function(event) {changePage(event.target || event.srcElement)}); - secondControl.addEventListener("click", function(event) {changePage(event.target || event.srcElement)}); } /** @@ -42,8 +32,6 @@ function indexInitialization() */ function showCards() { - contactsPage.style.visibility = "hidden"; - let cards = document.getElementsByClassName("card"); let versionLabel = document.getElementById("project-version"); @@ -153,52 +141,6 @@ function sendUptimeRequest() infoXHR.send(); } -/** - * Changes page - * - * @param {*} control element - */ -function changePage(element) -{ - if ((String(element.id) == "first-control") && (currentPage > 1)) - { - currentPage -= 1; - setCloudAnimation(currentPage); - } - else if ((String(element.id) == "second-control") && (currentPage < 2)) - { - currentPage += 1; - setCloudAnimation(currentPage); - } - - setPageVisibility(currentPage); - setControlOpacity(currentPage); -} - -/** - * Changes page visibility - * - * @param {*} new page - */ -function setPageVisibility(newPage) -{ - switch (newPage) - { - case 1: - { - logoPage.style.visibility = ""; - contactsPage.style.visibility = "hidden"; - break; - } - case 2: - { - logoPage.style.visibility = "hidden"; - contactsPage.style.visibility = ""; - break; - } - } -} - /** * Animates clouds * diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 2202f652..8ff28a99 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -30,18 +30,15 @@

- +
Processor
-
-
-
-
-
@@ -56,17 +53,6 @@