This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new bdf017117 [OPENMEETINGS-2824] wicketstuff is updated; charts are moved
to chart.js
bdf017117 is described below
commit bdf017117f23d724ee46f20a8f76089d0302e7f1
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Sun Nov 1 23:10:58 2026 +0700
[OPENMEETINGS-2824] wicketstuff is updated; charts are moved to chart.js
---
LICENSE | 125 +++++++------
openmeetings-web/pom.xml | 4 -
openmeetings-web/src/main/front/package.json | 1 +
.../src/main/front/src/css/_polls.scss | 4 +-
openmeetings-web/src/main/front/src/room/index.js | 2 +
.../src/main/front/src/room/omcharts.js | 61 +++++++
openmeetings-web/src/main/java/module-info.java | 2 -
.../openmeetings/web/room/menu/PollsSubMenu.java | 4 +-
.../web/room/poll/PollResultsDialog.html | 5 +-
.../web/room/poll/PollResultsDialog.java | 197 +++++----------------
pom.xml | 11 +-
11 files changed, 182 insertions(+), 234 deletions(-)
diff --git a/LICENSE b/LICENSE
index 09963ab13..ba41c67eb 100644
--- a/LICENSE
+++ b/LICENSE
@@ -234,9 +234,9 @@ conditions of the following licenses.
BSD-2-Clause
- * commonmark-java core (org.commonmark:commonmark:0.30.0 -
https://github.com/commonmark/commonmark-java/commonmark)
- * commonmark-java extension for strikethrough
(org.commonmark:commonmark-ext-gfm-strikethrough:0.30.0 -
https://github.com/commonmark/commonmark-java/commonmark-ext-gfm-strikethrough)
- * commonmark-java extension for tables
(org.commonmark:commonmark-ext-gfm-tables:0.30.0 -
https://github.com/commonmark/commonmark-java/commonmark-ext-gfm-tables)
+ * commonmark-java core (org.commonmark:commonmark:0.31.0 -
https://github.com/commonmark/commonmark-java/commonmark)
+ * commonmark-java extension for strikethrough
(org.commonmark:commonmark-ext-gfm-strikethrough:0.31.0 -
https://github.com/commonmark/commonmark-java/commonmark-ext-gfm-strikethrough)
+ * commonmark-java extension for tables
(org.commonmark:commonmark-ext-gfm-tables:0.31.0 -
https://github.com/commonmark/commonmark-java/commonmark-ext-gfm-tables)
* PostgreSQL JDBC Driver (org.postgresql:postgresql:42.7.14 -
https://jdbc.postgresql.org)
CDDL, v1.0, LGPL, v2.1 or later
@@ -331,7 +331,7 @@ conditions of the following licenses.
* Tempus Dominus Bootstrap 4
(org.webjars:tempusdominus-bootstrap-4:5.39.0 - http://webjars.org)
* typeahead.js (org.webjars:typeaheadjs:0.10.5-1 - http://webjars.org)
* uuid (org.webjars.npm:uuid:9.0.0-beta.0 - https://www.webjars.org)
- * wicketstuff-urlfragment
(org.wicketstuff:wicketstuff-urlfragment:10.12.0-20261014.155132-34 -
https://github.com/Horsed/WicketUrlFragment/wicketstuff-urlfragment)
+ * wicketstuff-urlfragment
(org.wicketstuff:wicketstuff-urlfragment:10.12.0 -
https://github.com/Horsed/WicketUrlFragment/wicketstuff-urlfragment)
NOASSERTION
@@ -339,7 +339,7 @@ conditions of the following licenses.
Oracle Free Use Terms and Conditions (FUTC)
- * ojdbc10 (com.oracle.database.jdbc:ojdbc10:19.32.0.0 -
https://www.oracle.com/database/technologies/maven-central-guide.html)
+ * ojdbc10 (com.oracle.database.jdbc:ojdbc10:19.33.0.0 -
https://www.oracle.com/database/technologies/maven-central-guide.html)
Public Domain
@@ -363,6 +363,7 @@ conditions of the following licenses.
* Apache Commons Math (org.apache.commons:commons-math3:3.6.1 -
http://commons.apache.org/proper/commons-math/)
* Apache Commons Net (commons-net:commons-net:3.13.0 -
https://commons.apache.org/proper/commons-net/)
* Apache Commons Pool (org.apache.commons:commons-pool2:2.13.1 -
https://commons.apache.org/proper/commons-pool/)
+ * Apache Commons Secure XML
(org.apache.commons:commons-secure-xml:1.1.0 -
https://commons.apache.org/proper/commons-secure-xml/)
* Apache Commons Text (org.apache.commons:commons-text:1.15.0 -
https://commons.apache.org/proper/commons-text)
* Apache CXF Advanced Logging Feature
(org.apache.cxf:cxf-rt-features-logging:4.2.4 -
https://cxf.apache.org/cxf-rt-features-logging)
* Apache CXF Core (org.apache.cxf:cxf-core:4.2.4 -
https://cxf.apache.org)
@@ -403,38 +404,37 @@ conditions of the following licenses.
* Apache POI - Common (org.apache.poi:poi:5.5.1 -
https://poi.apache.org/)
* Apache ServiceMix :: Bundles :: dom4j
(org.apache.servicemix.bundles:org.apache.servicemix.bundles.dom4j:2.1.4_1 -
http://servicemix.apache.org/bundles-pom/org.apache.servicemix.bundles.dom4j/)
* Apache ServiceMix :: Bundles :: xpp3
(org.apache.servicemix.bundles:org.apache.servicemix.bundles.xpp3:1.1.4c_7 -
http://servicemix.apache.org/bundles-pom/org.apache.servicemix.bundles.xpp3/)
- * Apache Tika Apple parser module
(org.apache.tika:tika-parser-apple-module:4.1.0 -
https://tika.apache.org/tika-parser-apple-module/)
- * Apache Tika audiovideo parser module
(org.apache.tika:tika-parser-audiovideo-module:4.1.0 -
https://tika.apache.org/tika-parser-audiovideo-module/)
- * Apache Tika cad parser module
(org.apache.tika:tika-parser-cad-module:4.1.0 -
https://tika.apache.org/tika-parser-cad-module/)
- * Apache Tika code parser module
(org.apache.tika:tika-parser-code-module:4.1.0 -
https://tika.apache.org/tika-parser-code-module/)
- * Apache Tika core (org.apache.tika:tika-core:4.1.0 -
https://tika.apache.org/)
- * Apache Tika crypto parser module
(org.apache.tika:tika-parser-crypto-module:4.1.0 -
https://tika.apache.org/tika-parser-crypto-module/)
- * Apache Tika data URI commons
(org.apache.tika:tika-parser-datauri-commons:4.1.0 -
https://tika.apache.org/tika-parser-datauri-commons/)
- * Apache Tika digest commons
(org.apache.tika:tika-parser-digest-commons:4.1.0 -
https://tika.apache.org/tika-parser-digest-commons/)
- * Apache Tika font parser module
(org.apache.tika:tika-parser-font-module:4.1.0 -
https://tika.apache.org/tika-parser-font-module/)
- * Apache Tika HTML encoding detector
(org.apache.tika:tika-encoding-detector-html:4.1.0 -
https://tika.apache.org/tika-encoding-detectors/tika-encoding-detector-html/)
- * Apache Tika html parser module
(org.apache.tika:tika-parser-html-module:4.1.0 -
https://tika.apache.org/tika-parser-html-module/)
- * Apache Tika image parser module
(org.apache.tika:tika-parser-image-module:4.1.0 -
https://tika.apache.org/tika-parser-image-module/)
- * Apache Tika mail commons
(org.apache.tika:tika-parser-mail-commons:4.1.0 -
https://tika.apache.org/tika-parser-mail-commons/)
- * Apache Tika mail parser module
(org.apache.tika:tika-parser-mail-module:4.1.0 -
https://tika.apache.org/tika-parser-mail-module/)
- * Apache Tika Microsoft parser module
(org.apache.tika:tika-parser-microsoft-module:4.1.0 -
https://tika.apache.org/tika-parser-microsoft-module/)
- * Apache Tika miscellaneous office format parser module
(org.apache.tika:tika-parser-miscoffice-module:4.1.0 -
https://tika.apache.org/tika-parser-miscoffice-module/)
- * Apache Tika ML charset encoding detector
(org.apache.tika:tika-encoding-detector-mojibuster:4.1.0 -
https://tika.apache.org/tika-encoding-detectors/tika-encoding-detector-mojibuster/)
- * Apache Tika ML core (no Tika dependencies)
(org.apache.tika:tika-ml-core:4.1.0 - https://tika.apache.org/tika-ml-core/)
- * Apache Tika ML junk detector — runtime and training tools
(org.apache.tika:tika-ml-junkdetect:4.1.0 -
https://tika.apache.org/tika-ml-junkdetect/)
- * Apache Tika news parser module
(org.apache.tika:tika-parser-news-module:4.1.0 -
https://tika.apache.org/tika-parser-news-module/)
- * Apache Tika OCR parser module
(org.apache.tika:tika-parser-ocr-module:4.1.0 -
https://tika.apache.org/tika-parser-ocr-module/)
- * Apache Tika package parser module
(org.apache.tika:tika-parser-pkg-module:4.1.0 -
https://tika.apache.org/tika-parser-pkg-module/)
- * Apache Tika PDF parser module
(org.apache.tika:tika-parser-pdf-module:4.1.0 -
https://tika.apache.org/tika-parser-pdf-module/)
- * Apache Tika serialization (org.apache.tika:tika-serialization:4.1.0
- https://tika.apache.org)
- * Apache Tika standard parser package
(org.apache.tika:tika-parsers-standard-package:4.1.0 -
https://tika.apache.org/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/)
- * Apache Tika text parser module
(org.apache.tika:tika-parser-text-module:4.1.0 -
https://tika.apache.org/tika-parser-text-module/)
- * Apache Tika WARC parser module
(org.apache.tika:tika-parser-webarchive-module:4.1.0 -
https://tika.apache.org/tika-parser-webarchive-module/)
- * Apache Tika XML parser module
(org.apache.tika:tika-parser-xml-module:4.1.0 -
https://tika.apache.org/tika-parser-xml-module/)
- * Apache Tika XMP commons
(org.apache.tika:tika-parser-xmp-commons:4.1.0 -
https://tika.apache.org/tika-parser-xmp-commons/)
- * Apache Tika ZIP commons
(org.apache.tika:tika-parser-zip-commons:4.1.0 -
https://tika.apache.org/tika-parser-zip-commons/)
- * Apache Wicket IPageStore Common
(org.wicketstuff:wicketstuff-datastore-common:10.12.0-20261014.155132-38 -
http://wicketstuff.org/datastores-parent/wicketstuff-datastore-common)
- * Apache Wicket IPageStore Hazelcast
(org.wicketstuff:wicketstuff-datastore-hazelcast:10.12.0-20261014.155132-33 -
http://wicketstuff.org/datastores-parent/wicketstuff-datastore-hazelcast)
+ * Apache Tika Apple parser module
(org.apache.tika:tika-parser-apple-module:4.2.0 -
https://tika.apache.org/tika-parser-apple-module/)
+ * Apache Tika audiovideo parser module
(org.apache.tika:tika-parser-audiovideo-module:4.2.0 -
https://tika.apache.org/tika-parser-audiovideo-module/)
+ * Apache Tika cad parser module
(org.apache.tika:tika-parser-cad-module:4.2.0 -
https://tika.apache.org/tika-parser-cad-module/)
+ * Apache Tika code parser module
(org.apache.tika:tika-parser-code-module:4.2.0 -
https://tika.apache.org/tika-parser-code-module/)
+ * Apache Tika core (org.apache.tika:tika-core:4.2.0 -
https://tika.apache.org/)
+ * Apache Tika crypto parser module
(org.apache.tika:tika-parser-crypto-module:4.2.0 -
https://tika.apache.org/tika-parser-crypto-module/)
+ * Apache Tika data URI commons
(org.apache.tika:tika-parser-datauri-commons:4.2.0 -
https://tika.apache.org/tika-parser-datauri-commons/)
+ * Apache Tika digest commons
(org.apache.tika:tika-parser-digest-commons:4.2.0 -
https://tika.apache.org/tika-parser-digest-commons/)
+ * Apache Tika font parser module
(org.apache.tika:tika-parser-font-module:4.2.0 -
https://tika.apache.org/tika-parser-font-module/)
+ * Apache Tika HTML encoding detector
(org.apache.tika:tika-encoding-detector-html:4.2.0 -
https://tika.apache.org/tika-encoding-detectors/tika-encoding-detector-html/)
+ * Apache Tika html parser module
(org.apache.tika:tika-parser-html-module:4.2.0 -
https://tika.apache.org/tika-parser-html-module/)
+ * Apache Tika image parser module
(org.apache.tika:tika-parser-image-module:4.2.0 -
https://tika.apache.org/tika-parser-image-module/)
+ * Apache Tika mail parser module
(org.apache.tika:tika-parser-mail-module:4.2.0 -
https://tika.apache.org/tika-parser-mail-module/)
+ * Apache Tika Microsoft parser module
(org.apache.tika:tika-parser-microsoft-module:4.2.0 -
https://tika.apache.org/tika-parser-microsoft-module/)
+ * Apache Tika miscellaneous office format parser module
(org.apache.tika:tika-parser-miscoffice-module:4.2.0 -
https://tika.apache.org/tika-parser-miscoffice-module/)
+ * Apache Tika ML charset encoding detector
(org.apache.tika:tika-encoding-detector-mojibuster:4.2.0 -
https://tika.apache.org/tika-encoding-detectors/tika-encoding-detector-mojibuster/)
+ * Apache Tika ML core (no Tika dependencies)
(org.apache.tika:tika-ml-core:4.2.0 - https://tika.apache.org/tika-ml-core/)
+ * Apache Tika ML junk detector — runtime and training tools
(org.apache.tika:tika-ml-junkdetect:4.2.0 -
https://tika.apache.org/tika-ml-junkdetect/)
+ * Apache Tika news parser module
(org.apache.tika:tika-parser-news-module:4.2.0 -
https://tika.apache.org/tika-parser-news-module/)
+ * Apache Tika OCR parser module
(org.apache.tika:tika-parser-ocr-module:4.2.0 -
https://tika.apache.org/tika-parser-ocr-module/)
+ * Apache Tika package parser module
(org.apache.tika:tika-parser-pkg-module:4.2.0 -
https://tika.apache.org/tika-parser-pkg-module/)
+ * Apache Tika PDF parser module
(org.apache.tika:tika-parser-pdf-module:4.2.0 -
https://tika.apache.org/tika-parser-pdf-module/)
+ * Apache Tika serialization (org.apache.tika:tika-serialization:4.2.0
- https://tika.apache.org)
+ * Apache Tika standard parser package
(org.apache.tika:tika-parsers-standard-package:4.2.0 -
https://tika.apache.org/tika-parsers/tika-parsers-standard/tika-parsers-standard-package/)
+ * Apache Tika text parser module
(org.apache.tika:tika-parser-text-module:4.2.0 -
https://tika.apache.org/tika-parser-text-module/)
+ * Apache Tika WARC parser module
(org.apache.tika:tika-parser-webarchive-module:4.2.0 -
https://tika.apache.org/tika-parser-webarchive-module/)
+ * Apache Tika XML parser module
(org.apache.tika:tika-parser-xml-module:4.2.0 -
https://tika.apache.org/tika-parser-xml-module/)
+ * Apache Tika XMP commons
(org.apache.tika:tika-parser-xmp-commons:4.2.0 -
https://tika.apache.org/tika-parser-xmp-commons/)
+ * Apache Tika ZIP commons
(org.apache.tika:tika-parser-zip-commons:4.2.0 -
https://tika.apache.org/tika-parser-zip-commons/)
+ * Apache Wicket IPageStore Common
(org.wicketstuff:wicketstuff-datastore-common:10.12.0 -
http://wicketstuff.org/datastores-parent/wicketstuff-datastore-common)
+ * Apache Wicket IPageStore Hazelcast
(org.wicketstuff:wicketstuff-datastore-hazelcast:10.12.0 -
http://wicketstuff.org/datastores-parent/wicketstuff-datastore-hazelcast)
* Apache XBean :: ASM shaded (repackaged)
(org.apache.xbean:xbean-asm9-shaded:4.26 -
http://geronimo.apache.org/maven/xbean/4.26/xbean-asm9-shaded)
* Asterisk-Java (org.asteriskjava:asterisk-java:3.42.2 -
https://github.com/asterisk-java/asterisk-java)
* Bootstrap (org.webjars:bootstrap:5.3.8 - http://webjars.org)
@@ -445,26 +445,27 @@ conditions of the following licenses.
* Byte Buddy (without dependencies) (net.bytebuddy:byte-buddy:1.18.4 -
https://bytebuddy.net/byte-buddy)
* Caffeine cache (com.github.ben-manes.caffeine:caffeine:2.9.3 -
https://github.com/ben-manes/caffeine)
* CalDav4j (com.github.caldav4j:caldav4j:1.0.5 -
https://github.com/caldav4j/caldav4j.git)
- * com.drewnoakes:metadata-extractor
(com.drewnoakes:metadata-extractor:2.21.0 - https://drewnoakes.com/code/exif/)
+ * com.drewnoakes:metadata-extractor
(com.drewnoakes:metadata-extractor:2.22.0 - https://drewnoakes.com/code/exif/)
* core (org.kurento:kms-api-core:7.3.0 - https://kurento.openvidu.io/)
* elements (org.kurento:kms-api-elements:7.3.0 -
https://kurento.openvidu.io/)
* error-prone annotations
(com.google.errorprone:error_prone_annotations:2.41.0 -
https://errorprone.info/error_prone_annotations)
- * error-prone annotations
(com.google.errorprone:error_prone_annotations:2.48.0 -
https://errorprone.info/error_prone_annotations)
+ * error-prone annotations
(com.google.errorprone:error_prone_annotations:2.50.0 -
https://errorprone.info/error_prone_annotations)
* filters (org.kurento:kms-api-filters:7.3.0 -
https://kurento.openvidu.io/)
* FindBugs-jsr305 (com.google.code.findbugs:jsr305:3.0.2 -
http://findbugs.sourceforge.net/)
* Gson (com.google.code.gson:gson:2.14.0 -
https://github.com/google/gson)
+ * Gson (com.google.code.gson:gson:2.15.0 -
https://github.com/google/gson)
* Guava: Google Core Libraries for Java
(com.google.guava:guava:33.5.0-jre - https://github.com/google/guava)
* Guava InternalFutureFailureAccess and InternalFutures
(com.google.guava:failureaccess:1.0.3 -
https://github.com/google/guava/failureaccess)
* Guava ListenableFuture only
(com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava -
https://github.com/google/guava/listenablefuture)
* hazelcast (com.hazelcast:hazelcast:5.7.0 -
http://www.hazelcast.com/hazelcast/)
* J2ObjC Annotations (com.google.j2objc:j2objc-annotations:3.1 -
https://github.com/google/j2objc/)
- * Jackcess (com.healthmarketscience.jackcess:jackcess:5.0.0 -
https://jackcess.sourceforge.io)
- * Jackcess Encrypt
(com.healthmarketscience.jackcess:jackcess-encrypt:5.0.0 -
http://jackcessencrypt.sf.net)
+ * Jackcess (com.healthmarketscience.jackcess:jackcess:5.0.4 -
https://jackcess.sourceforge.io)
+ * Jackcess Encrypt
(com.healthmarketscience.jackcess:jackcess-encrypt:5.0.2 -
http://jackcessencrypt.sf.net)
* Jackson-annotations
(com.fasterxml.jackson.core:jackson-annotations:2.22 -
https://github.com/FasterXML/jackson)
* Jackson-core (com.fasterxml.jackson.core:jackson-core:2.22.0 -
https://github.com/FasterXML/jackson-core)
- * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.22.3 -
https://github.com/FasterXML/jackson-core)
+ * Jackson-core (com.fasterxml.jackson.core:jackson-core:2.22.4 -
https://github.com/FasterXML/jackson-core)
* jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.22.0
- https://github.com/FasterXML/jackson)
- * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.22.3
- https://github.com/FasterXML/jackson)
+ * jackson-databind (com.fasterxml.jackson.core:jackson-databind:2.22.4
- https://github.com/FasterXML/jackson)
* Jakarta Dependency Injection
(jakarta.inject:jakarta.inject-api:2.0.1.MR -
https://github.com/eclipse-ee4j/injection-api)
* Jasney Bootstrap Extensions (org.webjars:jasny-bootstrap:3.1.3-2 -
http://webjars.org)
* java-libpst (com.pff:java-libpst:0.9.3 -
https://github.com/rjohnsondev/java-libpst)
@@ -479,8 +480,6 @@ conditions of the following licenses.
* Jettison (org.codehaus.jettison:jettison:1.5.7 -
https://github.com/jettison-json/jettison)
* JODConverter Core (org.jodconverter:jodconverter-core:5.1.1 -
https://github.com/jodconverter/jodconverter/)
* JODConverter Local (org.jodconverter:jodconverter-local:5.1.1 -
https://github.com/jodconverter/jodconverter/)
- * jqplot4java (org.wicketstuff:jqplot4java:10.12.0-20261014.151453-33
- http://maven.apache.org)
- * JqPlot Plugin Integration
(org.wicketstuff:jqplot:10.12.0-20261014.151512-28 -
http://wicketstuff.org/jqplot-parent/jqplot)
* JSpecify annotations (org.jspecify:jspecify:1.0.0 -
http://jspecify.org/)
* JSpecify annotations (org.jspecify:jspecify:1.0.1 -
https://jspecify.dev/)
* jwarc (org.netpreserve:jwarc:0.37.0 - https://github.com/iipc/jwarc)
@@ -551,23 +550,23 @@ conditions of the following licenses.
* swagger-annotations (io.swagger.core.v3:swagger-annotations:2.2.55 -
https://github.com/swagger-api/swagger-core/modules/swagger-annotations)
* tomcat (org.apache.tomcat:tomcat:11.0.27 -
https://tomcat.apache.org/)
* UNO interface library (org.openoffice:unoil:4.1.2 -
https://wiki.openoffice.org/wiki/Uno)
- * Wicket Auth Roles
(org.apache.wicket:wicket-auth-roles:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-auth-roles)
- * Wicket Core
(org.apache.wicket:wicket-core:10.12.0-20261023.153745-14 -
http://wicket.apache.org/wicket-core)
- * Wicket Development Utilities
(org.apache.wicket:wicket-devutils:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-devutils)
- * Wicket Extensions
(org.apache.wicket:wicket-extensions:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-extensions)
- * Wicket IoC common code
(org.apache.wicket:wicket-ioc:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-ioc)
+ * Wicket Auth Roles (org.apache.wicket:wicket-auth-roles:10.12.0 -
http://wicket.apache.org/wicket-auth-roles)
+ * Wicket Core (org.apache.wicket:wicket-core:10.12.0 -
http://wicket.apache.org/wicket-core)
+ * Wicket Development Utilities
(org.apache.wicket:wicket-devutils:10.12.0 -
http://wicket.apache.org/wicket-devutils)
+ * Wicket Extensions (org.apache.wicket:wicket-extensions:10.12.0 -
http://wicket.apache.org/wicket-extensions)
+ * Wicket IoC common code (org.apache.wicket:wicket-ioc:10.12.0 -
http://wicket.apache.org/wicket-ioc)
* Wicket JQuery Selectors
(de.agilecoders.wicket:jquery-selectors:4.0.15 -
http://nexus.sonatype.org/oss-repository-hosting.html/jquery-selectors)
- * wicket-jquery-ui-calendar
(org.wicketstuff:wicketstuff-jquery-ui-calendar:10.12.0-20261014.155132-39 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui-calendar)
- * wicket-jquery-ui-core
(org.wicketstuff:wicketstuff-jquery-ui-core:10.12.0-20261014.155132-34 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui-core)
- * wicket-jquery-ui-plugins
(org.wicketstuff:wicketstuff-jquery-ui-plugins:10.12.0-20261014.155132-40 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui-plugins)
- * Wicket Native WebSocket Core
(org.apache.wicket:wicket-native-websocket-core:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-native-websocket/wicket-native-websocket-core)
- * Wicket Native WebSocket Javax
(org.apache.wicket:wicket-native-websocket-javax:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-native-websocket/wicket-native-websocket-javax)
- * Wicket Request
(org.apache.wicket:wicket-request:10.12.0-20261023.153745-14 -
http://maven.apache.org)
- * Wicket Spring Integration
(org.apache.wicket:wicket-spring:10.12.0-20261023.124610-11 -
http://wicket.apache.org/wicket-spring)
- * Wicketstuff Dashboard Core
(org.wicketstuff:wicketstuff-dashboard-core:10.12.0-20261014.155132-31 -
http://wicketstuff.org/wicketstuff-dashboard-parent/wicketstuff-dashboard-core)
- * wicketstuff-jquery-ui
(org.wicketstuff:wicketstuff-jquery-ui:10.12.0-20261014.155132-35 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui)
- * Wicketstuff-Select2 Components
(org.wicketstuff:wicketstuff-select2:10.12.0-20261014.155132-34 -
http://wicketstuff.org/wicketstuff-select2-parent/wicketstuff-select2)
- * Wicket Util
(org.apache.wicket:wicket-util:10.12.0-20261023.153745-14 -
http://wicket.apache.org/wicket-util)
+ * wicket-jquery-ui-calendar
(org.wicketstuff:wicketstuff-jquery-ui-calendar:10.12.0 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui-calendar)
+ * wicket-jquery-ui-core
(org.wicketstuff:wicketstuff-jquery-ui-core:10.12.0 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui-core)
+ * wicket-jquery-ui-plugins
(org.wicketstuff:wicketstuff-jquery-ui-plugins:10.12.0 -
https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui-plugins)
+ * Wicket Native WebSocket Core
(org.apache.wicket:wicket-native-websocket-core:10.12.0 -
http://wicket.apache.org/wicket-native-websocket/wicket-native-websocket-core)
+ * Wicket Native WebSocket Javax
(org.apache.wicket:wicket-native-websocket-javax:10.12.0 -
http://wicket.apache.org/wicket-native-websocket/wicket-native-websocket-javax)
+ * Wicket Request (org.apache.wicket:wicket-request:10.12.0 -
http://maven.apache.org)
+ * Wicket Spring Integration (org.apache.wicket:wicket-spring:10.12.0 -
http://wicket.apache.org/wicket-spring)
+ * Wicketstuff Dashboard Core
(org.wicketstuff:wicketstuff-dashboard-core:10.12.0 -
http://wicketstuff.org/wicketstuff-dashboard-parent/wicketstuff-dashboard-core)
+ * wicketstuff-jquery-ui (org.wicketstuff:wicketstuff-jquery-ui:10.12.0
- https://github.com/sebfz1/wicket-jquery-ui/wicketstuff-jquery-ui)
+ * Wicketstuff-Select2 Components
(org.wicketstuff:wicketstuff-select2:10.12.0 -
http://wicketstuff.org/wicketstuff-select2-parent/wicketstuff-select2)
+ * Wicket Util (org.apache.wicket:wicket-util:10.12.0 -
http://wicket.apache.org/wicket-util)
* Woodstox (com.fasterxml.woodstox:woodstox-core:7.2.2 -
https://github.com/FasterXML/woodstox)
* XmlBeans (org.apache.xmlbeans:xmlbeans:5.3.0 -
https://xmlbeans.apache.org/)
* XML Commons Resolver Component (xml-resolver:xml-resolver:1.2 -
http://xml.apache.org/commons/components/resolver/)
@@ -582,7 +581,7 @@ conditions of the following licenses.
The BSD 3-Clause License (BSD3)
* Adobe XMPCore (com.adobe.xmp:xmpcore:6.1.11 -
https://www.adobe.com/devnet/xmp/library/eula-xmp-library-java.html)
- * asm (org.ow2.asm:asm:9.10.1 - http://asm.ow2.io/)
+ * asm (org.ow2.asm:asm:9.11.1 - http://asm.ow2.io/)
* asm (org.ow2.asm:asm:9.9.1 - http://asm.ow2.io/)
* bootstrap-italia (org.webjars.npm:bootstrap-italia:2.18.0 -
https://www.webjars.org)
* dom4j (org.dom4j:dom4j:2.2.0 - http://dom4j.github.io/)
@@ -598,4 +597,4 @@ conditions of the following licenses.
UnRar License
- * Java Unrar (com.github.junrar:junrar:8.1.1 -
https://github.com/junrar/junrar)
+ * Java Unrar (com.github.junrar:junrar:8.1.2 -
https://github.com/junrar/junrar)
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 15915d50d..b1f0d0f8d 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -449,10 +449,6 @@
<groupId>org.wicketstuff</groupId>
<artifactId>wicketstuff-select2</artifactId>
</dependency>
- <dependency>
- <groupId>org.wicketstuff</groupId>
- <artifactId>jqplot</artifactId>
- </dependency>
<dependency>
<groupId>de.agilecoders.wicket</groupId>
<artifactId>wicket-bootstrap-extensions</artifactId>
diff --git a/openmeetings-web/src/main/front/package.json
b/openmeetings-web/src/main/front/package.json
index 39245fe18..df54089eb 100644
--- a/openmeetings-web/src/main/front/package.json
+++ b/openmeetings-web/src/main/front/package.json
@@ -26,6 +26,7 @@
"dependencies": {
"fabric": "7.4.0",
"freeice": "2.2.2",
+ "chart.js": "4.6.1",
"@mathjax/mathjax-newcm-font": "^4.1.0",
"@mathjax/src": "^4.1.0",
"nosleep.js": "^0.12.0",
diff --git a/openmeetings-web/src/main/front/src/css/_polls.scss
b/openmeetings-web/src/main/front/src/css/_polls.scss
index 39bc4832e..96cbfbb70 100644
--- a/openmeetings-web/src/main/front/src/css/_polls.scss
+++ b/openmeetings-web/src/main/front/src/css/_polls.scss
@@ -1,6 +1,6 @@
/* Licensed under the Apache License, Version 2.0 (the "License")
http://www.apache.org/licenses/LICENSE-2.0 */
-#room-poll-chart {
- height: 300px;
+.room-poll-chart-container {
+ max-height: 20rem;
}
#quick-vote {
position: absolute;
diff --git a/openmeetings-web/src/main/front/src/room/index.js
b/openmeetings-web/src/main/front/src/room/index.js
index 7bac06097..560f50626 100644
--- a/openmeetings-web/src/main/front/src/room/index.js
+++ b/openmeetings-web/src/main/front/src/room/index.js
@@ -1,4 +1,5 @@
/* Licensed under the Apache License, Version 2.0 (the "License")
http://www.apache.org/licenses/LICENSE-2.0 */
+import { OmCharts } from './omcharts'
// Let's re-style jquery-ui dialogs and buttons
Object.assign($.ui.dialog.prototype.options.classes, {
@@ -19,4 +20,5 @@ Object.assign(window, {
, Room: require('./room')
, Activities: require('./activities')
, UserSettings: require('./user-settings')
+ , OmCharts: OmCharts
});
diff --git a/openmeetings-web/src/main/front/src/room/omcharts.js
b/openmeetings-web/src/main/front/src/room/omcharts.js
new file mode 100644
index 000000000..ae04429f2
--- /dev/null
+++ b/openmeetings-web/src/main/front/src/room/omcharts.js
@@ -0,0 +1,61 @@
+/* Licensed under the Apache License, Version 2.0 (the "License")
http://www.apache.org/licenses/LICENSE-2.0 */
+import Chart from 'chart.js/auto'
+const Settings = require('../main/settings');
+
+export class OmCharts {
+ static updateChart(id, type, setLabel, labels, values) {
+ const canvas = document.getElementById(id);
+ let chart = canvas.chart;
+ if (chart && canvas.chart.options.type != type) {
+ chart.destroy();
+ chart = null;
+ }
+ if (chart) {
+ const data = canvas.chart.data;
+ data.labels = labels;
+ const ds = data.datasets[0];
+ ds.label = setLabel;
+ ds.data = values;
+ chart.update();
+ } else {
+ const opts = {
+ indexAxis: 'y',
+ elements: {
+ bar: {
+ borderWidth: 2,
+ }
+ },
+ responsive: true,
+ plugins: {
+ legend: {
+ position: Settings.isRtl ?
'left' : 'right',
+ },
+ title: {
+ display: true,
+ text: setLabel
+ }
+ }
+ };
+ if ('bar' === type) {
+ opts.scales = {
+ y: {
+ beginAtZero: true
+ }
+ };
+ opts.plugins.legend.display = false;
+ }
+ canvas.chart = new Chart(canvas, {
+ type: type,
+ data: {
+ labels: labels,
+ datasets: [{
+ label: setLabel,
+ data: values,
+ borderWidth: 1
+ }]
+ },
+ options: opts
+ });
+ }
+ }
+};
diff --git a/openmeetings-web/src/main/java/module-info.java
b/openmeetings-web/src/main/java/module-info.java
index 3df18d701..575f5f60f 100644
--- a/openmeetings-web/src/main/java/module-info.java
+++ b/openmeetings-web/src/main/java/module-info.java
@@ -52,8 +52,6 @@ module org.apache.openmeetings.web {
requires org.wicketstuff.datastore.hazelcast;
requires org.wicketstuff.select2;
requires org.wicketstuff.urlfragment;
- requires org.wicketstuff.jqplot;
- requires org.wicketstuff.jqplot4j;
requires org.wicketstuff.jquery.ui;
requires org.wicketstuff.jquery.ui.calendar;
requires org.wicketstuff.jquery.ui.core;
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
index 2db859c50..c4155b9e1 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
@@ -142,7 +142,7 @@ public class PollsSubMenu implements Serializable {
@Override
protected void onClick(AjaxRequestTarget target) {
- pollResults.updateModel(target, true,
room.getClient().hasRight(Room.Right.MODERATOR));
+ pollResults.updateModel(target,
room.getClient().hasRight(Room.Right.MODERATOR));
pollResults.show(target);
}
};
@@ -181,7 +181,7 @@ public class PollsSubMenu implements Serializable {
vote.show(handler);
}
if (pollResults.isOpened()) {
- pollResults.updateModel(handler, false,
room.getClient().hasRight(Room.Right.MODERATOR));
+ pollResults.updateModel(handler,
room.getClient().hasRight(Room.Right.MODERATOR));
}
}
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
index c950c33f9..32f334679 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.html
@@ -46,8 +46,9 @@
</div>
</form>
<div class="row">
- <label class="form-label col-4"><wicket:message
key="40"/></label>
- <div class="col-7" wicket:id="chart" id="room-poll-chart"></div>
+ <div class="col-11 room-poll-chart-container">
+ <canvas id="room-poll-chart"></canvas>
+ </div>
</div>
</wicket:extend>
</html>
diff --git
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
index 7a3153255..4e2486762 100644
---
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
+++
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
@@ -25,6 +25,9 @@ import static
org.apache.openmeetings.web.common.confirmation.ConfirmationHelper
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
import org.apache.openmeetings.db.dao.room.PollDao;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -36,30 +39,12 @@ import
org.apache.openmeetings.web.common.OmModalCloseButton;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
-import org.apache.wicket.markup.head.CssHeaderItem;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.ChoiceRenderer;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
-
-import org.wicketstuff.jqplot.behavior.JqPlotBehavior;
-import org.wicketstuff.jqplot.behavior.JqPlotCssResourceReference;
-import org.wicketstuff.jqplot.behavior.JqPlotJavascriptResourceReference;
-import org.wicketstuff.jqplot.lib.Chart;
-import org.wicketstuff.jqplot.lib.ChartConfiguration;
-import org.wicketstuff.jqplot.lib.JqPlotResources;
-import org.wicketstuff.jqplot.lib.JqPlotUtils;
-import org.wicketstuff.jqplot.lib.chart.BarChart;
-import org.wicketstuff.jqplot.lib.chart.PieChart;
-import org.wicketstuff.jqplot.lib.elements.Highlighter;
-import org.wicketstuff.jqplot.lib.elements.Location;
-import org.wicketstuff.jqplot.lib.elements.RendererOptions;
import
de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
@@ -69,8 +54,9 @@ import jakarta.inject.Inject;
public class PollResultsDialog extends Modal<RoomPoll> {
private static final long serialVersionUID = 1L;
- private static final String[] NUM_TICKS = new String[] {"1", "2", "3",
"4", "5", "6", "7", "8", "9", "10"};
- private final WebMarkupContainer chartDiv = new
WebMarkupContainer("chart");
+ private static final String NUM_TICKS = getValList(List.of(1, 2, 3, 4,
5, 6, 7, 8, 9, 10));
+ private String boolTicks;
+
private final Long roomId;
private PollSelectForm selForm;
private PollResultsForm dispForm;
@@ -81,6 +67,7 @@ public class PollResultsDialog extends Modal<RoomPoll> {
private boolean opened = false;
private String chartSimple;
private String chartPie;
+ private String setLabel;
private final CreatePollDialog createPoll;
private DropDownChoice<String> chartType;
@@ -102,6 +89,8 @@ public class PollResultsDialog extends Modal<RoomPoll> {
chartSimple = getString("1414");
chartPie = getString("1415");
+ setLabel = getString("40");
+ boolTicks = getValList(List.of(getString("35"),
getString("34")));
add(selForm = new PollSelectForm("selForm"));
add(dispForm = new PollResultsForm("dispForm"));
addButton(close = new BootstrapAjaxLink<>(BUTTON_MARKUP_ID,
null, Buttons.Type.Outline_Danger, new ResourceModel("1418")) {
@@ -115,7 +104,7 @@ public class PollResultsDialog extends Modal<RoomPoll> {
RoomPoll p = pollDao.get(id);
selForm.select.setModelObject(p);
- dispForm.updateModel(p, true, target);
+ dispForm.updateModel(p, target);
sendRoom(new RoomMessage(roomId,
findParent(MainPanel.class).getClient(), RoomMessage.Type.POLL_UPDATED));
close(target);
}
@@ -129,7 +118,7 @@ public class PollResultsDialog extends Modal<RoomPoll> {
public void onClick(AjaxRequestTarget target) {
pollDao.delete(dispForm.getModelObject());
selForm.updateModel(target);
-
dispForm.updateModel(selForm.select.getModelObject(), true, target);
+
dispForm.updateModel(selForm.select.getModelObject(), target);
sendRoom(new RoomMessage(roomId,
findParent(MainPanel.class).getClient(), RoomMessage.Type.POLL_UPDATED));
close(target);
}
@@ -157,66 +146,26 @@ public class PollResultsDialog extends Modal<RoomPoll> {
});
clone.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
addButton(OmModalCloseButton.of());
- add(chartDiv.setOutputMarkupId(true));
super.onInitialize();
}
- public void updateModel(IPartialPageRequestHandler target, boolean
onOpen, boolean moderator) {
+ private static <T> String getValList(List<T> data) {
+ return data.stream()
+ .map(v -> "'" + v + "'")
+ .collect(Collectors.joining(", "));
+ }
+ public void updateModel(IPartialPageRequestHandler target, boolean
moderator) {
selForm.updateModel(target);
this.moderator = moderator;
RoomPoll p = selForm.select.getModelObject();
- dispForm.updateModel(p, !onOpen, target);
- }
-
- private StringBuilder getScript(Chart<?> chart, boolean onShow) {
- StringBuilder sb = new StringBuilder()
-
.append("$('#").append(chartDiv.getMarkupId()).append("').html(''); ");
- if (onShow) {
-
sb.append("$('#").append(getMarkupId()).append("').off('shown.bs.modal').on('shown.bs.modal',
function (e) {\n");
- }
-
sb.append("$.jqplot('").append(chartDiv.getMarkupId()).append("', ")
- .append(chart.getChartData().toJsonString())
- .append(", ")
-
.append(JqPlotUtils.jqPlotToJson(chart.getChartConfiguration()))
- .append(");");
- if (onShow) {
- sb.append("});");
- }
- return sb;
- }
-
- @Override
- public void renderHead(IHeaderResponse response) {
- super.renderHead(response);
-
response.render(JavaScriptHeaderItem.forReference(JqPlotJavascriptResourceReference.get()));
-
response.render(CssHeaderItem.forReference(JqPlotCssResourceReference.get()));
- Chart<?> c1 = new PieChart<>(null);
- c1.getChartConfiguration().setHighlighter(new Highlighter());
- for (Chart<?> chart : new Chart<?>[]{c1, new
BarChart<Integer>(null)}) {
- for (String resource :
JqPlotUtils.retriveJavaScriptResources(chart)) {
-
response.render(JavaScriptHeaderItem.forReference(new
JavaScriptResourceReference(JqPlotBehavior.class, removeMinified(resource))));
- }
- }
- }
-
- private static String removeMinified(String inName) {
- String name = inName;
- int idxOfExtension = name.lastIndexOf('.');
- if (idxOfExtension > -1) {
- String extension = name.substring(idxOfExtension);
- name = name.substring(0, name.length() -
extension.length() + 1);
- if (name.endsWith(".min.")) {
- name = name.substring(0, name.length() - 5) +
extension;
- }
- }
- return name;
+ dispForm.updateModel(p, target);
}
@Override
public Modal<RoomPoll> show(IPartialPageRequestHandler handler) {
opened = true;
super.show(handler);
- redraw(handler, true);
+ redraw(handler);
return this;
}
@@ -229,84 +178,38 @@ public class PollResultsDialog extends Modal<RoomPoll> {
return opened;
}
- private String[] getTicks(RoomPoll p) {
+ private String getTicks(RoomPoll p) {
return p != null && RoomPoll.Type.NUMERIC == p.getType()
? NUM_TICKS
- : new String[] {getString("35"),
getString("34")};
+ : boolTicks;
}
- private static Integer[] initValues(int size) {
- Integer[] values = new Integer[size];
- for (int i = 0; i < size; ++i) {
- values[i] = 0;
- }
- return values;
- }
-
- private static Integer[] getValues(RoomPoll p) {
- Integer[] values = initValues(p != null &&
RoomPoll.Type.NUMERIC == p.getType() ? 10 : 2);
+ private static String getValues(RoomPoll p) {
+ List<AtomicInteger> values = Stream
+ .generate(() -> new AtomicInteger(0))
+ .limit(p != null && RoomPoll.Type.NUMERIC ==
p.getType() ? 10 : 2)
+ .toList();
if (p != null) {
for (RoomPollAnswer a : p.getAnswers()) {
- if (RoomPoll.Type.NUMERIC == p.getType()) {
- values[a.getPointList() - 1] ++;
- } else {
-
values[Boolean.FALSE.equals(a.getAnswer()) ? 0 : 1] ++;
- }
+ int idx = RoomPoll.Type.NUMERIC == p.getType()
? a.getPointList() - 1 : (Boolean.FALSE.equals(a.getAnswer()) ? 0 : 1);
+ values.get(idx).incrementAndGet();
}
}
- return values;
- }
-
- private BarChart<Integer> barChart(RoomPoll p) {
- String[] ticks = getTicks(p);
- BarChart<Integer> barChart = new BarChart<>(null);
- barChart.addValue(List.of(getValues(p)));
-
- barChart.getSeriesDefaults()
- .setRendererOptions(new
RendererOptions().setHighlightMouseDown(true).setShowDataLabels(true)
-
.setFill(false).setSliceMargin(4).setLineWidth(5).setBarDirection("horizontal"));
-
- Highlighter h = new Highlighter();
- h.setShow(true);
- h.setFormatString("%s, %P");
- h.setTooltipLocation(Location.ne);
- h.setShowTooltip(true);
- h.setUseAxesFormatters(false);
-
- ChartConfiguration<Long> cfg = barChart.getChartConfiguration();
- cfg.setLegend(null).setHighlighter(h);
- cfg.axesInstance().setXaxis(null);
-
cfg.axesInstance().yAxisInstance().setTicks(ticks).setRenderer(JqPlotResources.CategoryAxisRenderer);
- return barChart;
- }
-
- private PieChart<Integer> pieChart(RoomPoll p) {
- PieChart<Integer> pieChart = new PieChart<>(null);
- String[] ticks = getTicks(p);
- Integer[] values = getValues(p);
- for (int i = 0; i < values.length; ++i) {
- pieChart.addValue(ticks[i], values[i]);
- }
-
- pieChart.getSeriesDefaults().setRendererOptions(new
RendererOptions().setHighlightMouseDown(true)
-
.setShowDataLabels(true).setFill(false).setSliceMargin(4).setLineWidth(5));
-
- Highlighter h = new Highlighter();
- h.setShow(true);
- h.setFormatString("%s, %P");
- h.setTooltipLocation(Location.ne);
- h.setShowTooltip(true);
- h.setUseAxesFormatters(false);
-
- pieChart.getChartConfiguration()
- .setLegend(null).setHighlighter(h);
- return pieChart;
+ return
values.stream().map(String::valueOf).collect(Collectors.joining(", "));
}
- private void redraw(IPartialPageRequestHandler handler, boolean onShow)
{
+ private String getScript() {
RoomPoll p = dispForm.getModelObject();
- Chart<?> chart = chartSimple.equals(chartType.getModelObject())
? barChart(p) : pieChart(p);
- handler.appendJavaScript(getScript(chart, onShow));
+ return "OmCharts.updateChart('room-poll-chart', '%s', '%s',
[%s], [%s]);"
+ .formatted(
+ chartSimple.equals(chartType.getModelObject())
? "bar" : "pie"
+ , setLabel
+ , getTicks(p)
+ , getValues(p)
+ );
+ }
+ private void redraw(IPartialPageRequestHandler handler) {
+ handler.appendJavaScript(getScript());
}
private class PollSelectForm extends Form<RoomPoll> {
@@ -326,19 +229,15 @@ public class PollResultsDialog extends Modal<RoomPoll> {
@Override
public Object getDisplayValue(RoomPoll poll) {
- if (poll == null) {
- return "";
- }
- return poll.getName() +
(poll.isArchived() ? "" : " (" + getString("1413") + ")");
+ return poll == null ? ""
+ : poll.getName() +
(poll.isArchived() ? "" : " (" + getString("1413") + ")");
}
@Override
public String getIdValue(RoomPoll poll, int
index) {
return poll == null ? "" : "" +
poll.getId();
}
-
})).add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE
- , target ->
dispForm.updateModel(select.getModelObject(), true, target)
- )));
+
})).add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target ->
dispForm.updateModel(select.getModelObject(), target))));
updateModel(null);
}
@@ -372,13 +271,11 @@ public class PollResultsDialog extends Modal<RoomPoll> {
protected void onInitialize() {
add(name, question, count);
chartType = new DropDownChoice<>("chartType",
Model.of(chartSimple), List.of(chartSimple, chartPie));
-
add(chartType.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE
- , target -> redraw(target, false)
- )));
+
add(chartType.add(AjaxFormComponentUpdatingBehavior.onUpdate(EVT_CHANGE, target
-> redraw(target))));
super.onInitialize();
}
- public void updateModel(RoomPoll poll, boolean redraw,
IPartialPageRequestHandler handler) {
+ public void updateModel(RoomPoll poll,
IPartialPageRequestHandler handler) {
setModelObject(poll);
name.setDefaultModelObject(poll == null ? "" :
VoteDialog.getName(this, poll.getCreator()));
question.setDefaultModelObject(poll == null ? "" :
poll.getQuestion());
@@ -388,9 +285,7 @@ public class PollResultsDialog extends Modal<RoomPoll> {
clone.setVisible(moderator && (poll != null &&
poll.isArchived()));
delete.setVisible(moderator);
handler.add(close, clone, delete);
- if (redraw) {
- redraw(handler, false);
- }
+ redraw(handler);
}
}
}
diff --git a/pom.xml b/pom.xml
index 7a19f704f..36d18e686 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,7 +47,7 @@
<version.maven-javadoc-plugin>3.12.0</version.maven-javadoc-plugin>
<surefire.version>3.6.1</surefire.version>
<version.maven-site-plugin>4.0.0-M16</version.maven-site-plugin>
-
<version.maven-enforcer-plugin>3.6.3</version.maven-enforcer-plugin>
+
<version.maven-enforcer-plugin>3.7.0</version.maven-enforcer-plugin>
<version.maven-source-plugin>3.4.0</version.maven-source-plugin>
<version.maven-compiler-plugin>3.14.1</version.maven-compiler-plugin>
<version.maven-project-info-reports-plugin>3.9.0</version.maven-project-info-reports-plugin>
@@ -88,7 +88,7 @@
<!-- dependency versions -->
<junit.version>6.1.3</junit.version>
<wicket.version>10.12.0</wicket.version>
- <wicketstuff.version>10.12.0-SNAPSHOT</wicketstuff.version>
+ <wicketstuff.version>10.12.0</wicketstuff.version>
<wicket-bootstrap.version>7.0.15</wicket-bootstrap.version>
<fullcalendar.version>7.1.0</fullcalendar.version>
<spring.version>7.0.10</spring.version>
@@ -123,7 +123,7 @@
<postgresql.version>42.7.14</postgresql.version>
<mysql.version>26.10.0</mysql.version>
<mssql.version>13.6.1.jre11</mssql.version>
- <ojdbc.version>19.32.0.0</ojdbc.version>
+ <ojdbc.version>19.33.0.0</ojdbc.version>
<xstream.version>1.4.21</xstream.version>
<api-all.version>2.1.9</api-all.version>
<caldav4j.version>1.0.5</caldav4j.version>
@@ -949,11 +949,6 @@
<artifactId>wicketstuff-select2</artifactId>
<version>${wicketstuff.version}</version>
</dependency>
- <dependency>
- <groupId>org.wicketstuff</groupId>
- <artifactId>jqplot</artifactId>
- <version>${wicketstuff.version}</version>
- </dependency>
<dependency>
<groupId>de.agilecoders.wicket</groupId>
<artifactId>wicket-bootstrap-extensions</artifactId>