Skip to content

Commit 9ec81f2

Browse files
committed
Merge branch 'develop' into update-from-template-merged
2 parents ac2e5bc + ec5c8b7 commit 9ec81f2

File tree

88 files changed

+5293
-36
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+5293
-36
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ body:
1515
attributes:
1616
label: "Checklist"
1717
options:
18-
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/template-placeholder/releases/latest)"
18+
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/vaadin-grid-exporter/releases/latest)"
1919
required: true
20-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
20+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/vaadin-grid-exporter/issues) or [closed](https://github.com/xdev-software/vaadin-grid-exporter/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
2121
required: true
2222
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
2323
required: true

.github/ISSUE_TEMPLATE/enhancement.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ body:
1313
attributes:
1414
label: "Checklist"
1515
options:
16-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
16+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/vaadin-grid-exporter/issues) or [closed](https://github.com/xdev-software/vaadin-grid-exporter/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1717
required: true
1818
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
1919
required: true

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
attributes:
1313
label: "Checklist"
1414
options:
15-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
15+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/vaadin-grid-exporter/issues) or [closed](https://github.com/xdev-software/vaadin-grid-exporter/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1616
required: true
1717
- label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise."
1818
required: true

.run/Run Demo.run.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<component name="ProjectRunConfigurationManager">
22
<configuration default="false" name="Run Demo" type="Application" factoryName="Application">
33
<option name="MAIN_CLASS_NAME" value="software.xdev.vaadin.Application" />
4-
<module name="template-placeholder-demo" />
4+
<module name="vaadin-grid-exporter-demo" />
55
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
66
<extension name="coverage">
77
<pattern>

CHANGELOG.md

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# 3.2.7
2+
* Migrated deployment to _Sonatype Maven Central Portal_ [#155](https://github.com/xdev-software/standard-maven-template/issues/155)
3+
* Updated dependencies
4+
5+
# 3.2.6
6+
* Fix naming so that Vaadin Directory sync works [#318](https://github.com/xdev-software/vaadin-addon-template/issues/318)
7+
* Updated dependencies
8+
9+
# 3.2.5
10+
* Make it possible to better customize ``SpecificConfigComponent``
11+
12+
# 3.2.4
13+
* Updated dependencies
14+
15+
# 3.2.3
16+
* Added dedicated method for adding steps to WizardPanel to make overriding it easier #269
17+
* Updated dependencies
18+
19+
# 3.2.2
20+
* Fix column order being ignored #256
21+
22+
# 3.2.1
23+
* Fix cells truncating data #229
24+
* Updated dependencies
25+
26+
# 3.2.0
27+
* Updated to Vaadin 24.4
28+
29+
# 3.1.0
30+
* Update to [JasperReports 7](https://github.com/xdev-software/dynamicreports-core-for-grid-exporter/blob/develop/CHANGELOG.md#200)
31+
* Updated dependencies
32+
33+
# 3.0.3
34+
* ⚠️ GroupId changed from ``com.xdev-software`` to ``software.xdev``
35+
* Updated dependencies
36+
37+
# 3.0.2
38+
* Fixed not working translations on preview step #153
39+
* Updated dependencies
40+
41+
# 3.0.1
42+
* Fixed compilation problems due to missing ``ecj`` dependency #98
43+
* Updated dependencies
44+
45+
# 3.0.0
46+
⚠️<i>This release contains breaking changes</i>
47+
48+
* Adds support for Vaadin 24+, drops support for Vaadin 23<br/>
49+
<i>If you are still using Vaadin 23, use the ``3.x`` versions.</i>
50+
* Requires Java 17+
51+
* Replaced the underlying reporting framework ``dynamicreports`` with [our fork of it](https://github.com/xdev-software/dynamicreports-core-for-grid-exporter) which is specially designed for this project
52+
* Differences from the original project are roughly described in the [changelog](https://github.com/xdev-software/dynamicreports-core-for-grid-exporter/blob/develop/CHANGELOG.md).
53+
* Removed ``XML`` from the default formats because the exported data was unusable
54+
* Replaced ``VaadinInternalRenderingColumnHeaderResolvingStrategy`` with ``VaadinColumnHeaderResolvingStrategy``
55+
* Updated dependencies
56+
57+
# 2.0.0
58+
* Undocked from RapidClipse
59+
* Changed package from ``com.rapidclipse.framework.server.reports`` to ``software.xdev.vaadin.grid_exporter``
60+
* Restructured the UI
61+
* Using a step-by-step-wizard like layout
62+
* Made formats configurable via UI
63+
* Refactored software architecture to make the component more expandable
64+
* Removed ``XLS`` from default formats due to not included dependency which causes a crash (``XLSX`` still works)
65+
* Updated dependencies
66+
67+
Example usage:
68+
69+
| v1 | v2 |
70+
| --- | --- |
71+
| ``GridExportDialog.open(grid)`` | ``GridExporter.newWithDefaults(grid).open()`` |
72+
73+
# 1.0.3
74+
* Removed unused code
75+
76+
# 1.0.2
77+
* Updated dependencies
78+
* Vaadin 23.2
79+
80+
# 1.0.1
81+
* Removed unnecessary code and dependencies; Updated jasperreports to latest version
82+
83+
# 1.0.0
84+
<i>Initial release</i>
85+
86+
* Forked project from the RapidClipse Framework (Version 11.0)
87+
* Updated to Vaadin 23
88+
* Removed unnecessary code and dependencies
89+
* Removed requirement that Grid columns need keys
90+
* Reworked localization - can now be explicitly set using ``GridExportLocalizationConfig``

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,10 @@ Bigger changes may require a complete restart.
4747
* [Vaadin automatically reloads the UI on each restart](https://vaadin.com/docs/latest/configuration/live-reload/spring-boot).<br/>
4848
You can control this behavior with the ``vaadin.devmode.liveReload.enabled`` property (default: ``true``).
4949

50-
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml)
50+
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/vaadin-grid-exporter/release.yml?branch=master)](https://github.com/xdev-software/vaadin-grid-exporter/actions/workflows/release.yml)
5151

5252
Before releasing:
53-
* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
53+
* Consider doing a [test-deployment](https://github.com/xdev-software/vaadin-grid-exporter/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
5454
* Check the [changelog](CHANGELOG.md)
5555

5656
If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes

README.md

Lines changed: 84 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,98 @@
1-
[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0?logo=vaadin)](https://vaadin.com/directory/component/template-placeholder)
2-
[![Latest version](https://img.shields.io/maven-central/v/software.xdev/template-placeholder?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/template-placeholder)
3-
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/check-build.yml?branch=develop)](https://github.com/xdev-software/template-placeholder/actions/workflows/check-build.yml?query=branch%3Adevelop)
1+
[![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0?logo=vaadin)](https://vaadin.com/directory/component/gridexporter-for-vaadin)
2+
[![Latest version](https://img.shields.io/maven-central/v/software.xdev/vaadin-grid-exporter?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/vaadin-grid-exporter)
3+
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/vaadin-grid-exporter/check-build.yml?branch=develop)](https://github.com/xdev-software/vaadin-grid-exporter/actions/workflows/check-build.yml?query=branch%3Adevelop)
44
![Vaadin 24+](https://img.shields.io/badge/Vaadin%20Platform/Flow-24+-00b4f0)
55

6-
# template-placeholder
7-
A Vaadin Template Repo
6+
# GridExporter for Vaadin
87

9-
![demo](assets/demo.png)
8+
The Vaadin Grid Exporter can convert nearly any Vaadin Grid to a variety of formats.<br/>
9+
This way you don't have to copy the Grid contents manually or print the whole website with the Grid.
1010

11+
Out of the box supported formats:
12+
* CSV
13+
* Word (DOCX)
14+
* HTML
15+
* ODS
16+
* ODT
17+
* PDF
18+
* PowerPoint (PPTX)
19+
* RTF
20+
* Plain text
21+
* Excel (XLSX)
22+
23+
_These formats are exported using [dynamicreports](https://github.com/xdev-software/dynamicreports-core-for-grid-exporter)._
24+
25+
It's also easy to extend the Exporter to support your custom format.
26+
27+
![demo](assets/preview.gif)
28+
29+
> [!NOTE]
30+
> <details><summary><b>Disclaimer about the scope of this component</b> (click to expand)</summary>
31+
>
32+
> Although the GridExporter can handle most use-cases, extreme scenarios will likely impact performance, usability and might require some hacks.<br/>
33+
> For such cases custom written exports are recommended e.g. by utilizing JasperReports directly.<br/>
34+
> If you need help implementing these feel free to [contact us](#support) or open a [question](https://github.com/xdev-software/vaadin-grid-exporter/issues/new?assignees=&labels=question&projects=&template=question.yml) if you are not sure that the GridExporter is a good option for your scenario.
35+
>
36+
> </details>
37+
38+
## Usage
39+
40+
Default usage:
41+
42+
```java
43+
GridExporter
44+
.newWithDefaults(this.grExamples)
45+
.open();
46+
```
47+
48+
Custom format (see [JsonGridExporterProvider from Demo](vaadin-grid-exporter-demo/src/main/java/software/xdev/vaadin/gridexport/example/jsonext/JsonGridExporterProvider.java)):
49+
50+
```java
51+
GridExporter
52+
.newWithDefaults(this.grExamples)
53+
.loadFromProvider(new JsonGridExporterProvider())
54+
.open();
55+
```
1156

1257
## Installation
13-
[Installation guide for the latest release](https://github.com/xdev-software/template-placeholder/releases/latest#Installation)
58+
59+
[Installation guide for the latest release](https://github.com/xdev-software/vaadin-grid-exporter/releases/latest#Installation)
60+
61+
### Comaptibility with ``CSP`` (Content-Security-Policy) and ``X-Frame-Options``
62+
63+
> [!TIP]
64+
> In Spring Security the [default value of ``X-Frame-Options`` is ``DENY``](https://docs.spring.io/spring-security/reference/features/exploits/headers.html#headers-frame-options) which will break the preview if not changed.
65+
66+
To show the preview the [CSP](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) or the [X-Frame-Options](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options) (deprecated in favor of CSP) must be configured in a way that they allow showing same-site elements.
67+
68+
This can be achieved by:
69+
* setting the CSP to include at least ``frame-ancestors 'self'`` and maybe additionally ``object-src 'self'``
70+
* setting ``X-Frame-Options`` to ``SAMESITE``.<br/>If you use Spring Security without a CSP the easiest way to set this is:
71+
```java
72+
http.headers(c -> c.frameOptions(HeadersConfigurer.FrameOptionsConfig::sameOrigin));
73+
```
74+
75+
> [!NOTE]
76+
> Depending on the browser the settings sometimes have slightly different effects.<br/>
77+
> For example Firefox blocks the preview due to privacy reasons when ``X-Frame-Option=DENY`` and ``Content-Security-Policy=frame-ancestors 'self'; object-src 'self'; ...`` but Chrome does not.
78+
79+
### Compatibility with Vaadin
80+
81+
| Vaadin version | GridExporter version |
82+
| --- | --- |
83+
| Vaadin 24+ (latest) | ``3+`` |
84+
| Vaadin 23 | ``2.x`` |
85+
86+
### Compatibility with JasperReports
87+
88+
Starting with version [3.1.0](./CHANGELOG.md#310) JasperReports 7 is required.
1489

1590
### Spring-Boot
1691
* You may have to include ``software/xdev`` inside [``vaadin.allowed-packages``](https://vaadin.com/docs/latest/integrations/spring/configuration#configure-the-scanning-of-packages)
1792

1893
## Run the Demo
1994
* Checkout the repo
20-
* Run ``mvn install && mvn -f template-placeholder-demo spring-boot:run``
95+
* Run ``mvn install && mvn -f vaadin-grid-exporter-demo spring-boot:run``
2196
* Open http://localhost:8080
2297

2398
<details>
@@ -33,4 +108,4 @@ If you need support as soon as possible and you can't wait for any pull request,
33108
See the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.
34109
35110
## Dependencies and Licenses
36-
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/template-placeholder/dependencies)
111+
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/vaadin-grid-exporter/dependencies)

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
## Reporting a Vulnerability
44

5-
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/template-placeholder/security/advisories/new).
5+
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/vaadin-grid-exporter/security/advisories/new).

assets/demo.avif

185 KB
Binary file not shown.

assets/demo.png

-13.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)