Skip to content

Commit 780d082

Browse files
Merge pull request #6 from dynamiatools/5.4.x
update to Dynamia Tools v5.4.4
2 parents 7f84ace + 8712e29 commit 780d082

File tree

12 files changed

+267
-184
lines changed

12 files changed

+267
-184
lines changed

pom.xml

Lines changed: 10 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<modelVersion>4.0.0</modelVersion>
2323
<groupId>dynamia-tools-demos</groupId>
2424
<artifactId>my-book-store</artifactId>
25-
<version>3.3.0</version>
25+
<version>3.4.1</version>
2626
<packaging>jar</packaging>
2727

2828
<name>MyBookStore</name>
@@ -32,24 +32,24 @@
3232
<parent>
3333
<groupId>org.springframework.boot</groupId>
3434
<artifactId>spring-boot-starter-parent</artifactId>
35-
<version>3.4.4</version>
35+
<version>3.5.5</version>
3636
<relativePath/> <!-- lookup parent from repository -->
3737
</parent>
3838

3939
<properties>
4040
<author>DynamiaTools</author>
4141
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
4242
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
43-
<java.version>17</java.version>
44-
<target.version>17</target.version>
45-
<maven.compiler>3.13.0</maven.compiler>
43+
<java.version>21</java.version>
44+
<target.version>21</target.version>
45+
<maven.compiler>3.14.0</maven.compiler>
4646
<source.encoding>UTF-8</source.encoding>
4747
<timestamp>${maven.build.timestamp}</timestamp>
4848
<maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format>
4949

50-
<tools.version>5.3.6</tools.version>
51-
<entityfiles.version>7.3.0</entityfiles.version>
52-
<security.version>1.0.2</security.version>
50+
<tools.version>5.4.4</tools.version>
51+
<entityfiles.version>7.4.0</entityfiles.version>
52+
<security.version>1.1.0</security.version>
5353
</properties>
5454

5555
<dependencies>
@@ -62,7 +62,7 @@
6262
<dependency>
6363
<groupId>tools.dynamia.themes</groupId>
6464
<artifactId>tools.dynamia.themes.dynamical</artifactId>
65-
<version>5.3.6</version>
65+
<version>5.4.1</version>
6666
</dependency>
6767

6868

@@ -136,68 +136,7 @@
136136
<parameters>true</parameters>
137137
</configuration>
138138
</plugin>
139-
<plugin>
140-
<groupId>com.github.eirslett</groupId>
141-
<artifactId>frontend-maven-plugin</artifactId>
142-
<version>1.15.1</version>
143-
<configuration>
144-
<workingDirectory>src/main/frontend</workingDirectory>
145-
<nodeVersion>v22.11.0</nodeVersion>
146-
</configuration>
147-
<executions>
148-
<!-- Instalar Node.js y npm -->
149-
<execution>
150-
<id>install-node-and-npm</id>
151-
<goals>
152-
<goal>install-node-and-npm</goal>
153-
</goals>
154-
</execution>
155-
<!-- Instalar dependencias npm -->
156-
<execution>
157-
<id>npm-install</id>
158-
<goals>
159-
<goal>npm</goal>
160-
</goals>
161-
<configuration>
162-
<arguments>install</arguments>
163-
</configuration>
164-
</execution>
165-
<!-- Construir el frontend -->
166-
<execution>
167-
<id>npm-build</id>
168-
<goals>
169-
<goal>npm</goal>
170-
</goals>
171-
<configuration>
172-
<arguments>run build</arguments>
173-
</configuration>
174-
</execution>
175-
</executions>
176-
</plugin>
177-
<plugin>
178-
<artifactId>maven-resources-plugin</artifactId>
179-
<version>3.3.1</version>
180-
<executions>
181-
<execution>
182-
<id>copy-frontend-to-static</id>
183-
<phase>process-resources</phase>
184-
<goals>
185-
<goal>copy-resources</goal>
186-
</goals>
187-
<configuration>
188-
<outputDirectory>${project.build.directory}/classes/static/app</outputDirectory>
189-
<resources>
190-
<resource>
191-
<directory>src/main/frontend/dist</directory>
192-
<includes>
193-
<include>**/*</include>
194-
</includes>
195-
</resource>
196-
</resources>
197-
</configuration>
198-
</execution>
199-
</executions>
200-
</plugin>
139+
201140
</plugins>
202141
</build>
203142

src/main/frontend/src/components/ProductCard.vue

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/main/java/mybookstore/InitSampleDataCommandLinerRunner.java

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import tools.dynamia.commons.StringUtils;
2727

2828
import java.math.BigDecimal;
29-
import java.util.Date;
29+
import java.time.LocalDate;
3030
import java.util.List;
3131
import java.util.Random;
3232

@@ -56,37 +56,35 @@ public void run(String... args) throws Exception {
5656

5757
List.of("My First Pony", "100 years of drama", "My Best Friend", "The Little Prince", "Lord of the Rings", "Game of Thrones",
5858
"Skyward", "Son of Mist", "Dune", "Divergent", "Henry Pota")
59-
.forEach(title -> {
6059

60+
.forEach(title -> {
6161
int random = new Random().nextInt(novels.getSubcategories().size());
62-
var book = new Book();
63-
book.setTitle(title);
64-
book.setCategory(novels.getSubcategories().get(random));
65-
book.setYear(new Random().nextInt(2000, DateTimeUtils.getCurrentYear()));
66-
book.setBuyDate(new Date());
67-
book.setIsbn(StringUtils.randomString().toUpperCase());
68-
book.setSinopsys("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
69-
book.setPrice(BigDecimal.valueOf(25L * random));
70-
book.setStockStatus(StockStatus.random());
71-
book.save();
62+
var category = novels.getSubcategories().get(random);
63+
newBook(title, category, random);
7264
});
7365

7466
List.of("My First Programming", "Clean Code", "Design Patterns", "Scale to the cloud", "Spring Boot", "Dynamia in Action", "Flutter", "Dart",
75-
"Javascript Maxx")
67+
"Javascript Maxx", "Tha Naxt Web", "Kotlin for Android")
7668
.forEach(title -> {
77-
int random = new Random().nextInt(programming.getSubcategories().size());
78-
var book = new Book();
79-
book.setTitle(title);
80-
book.setCategory(programming.getSubcategories().get(random));
81-
book.setYear(new Random().nextInt(2010, DateTimeUtils.getCurrentYear()));
82-
book.setBuyDate(new Date());
83-
book.setIsbn(StringUtils.randomString().toUpperCase());
84-
book.setSinopsys("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
85-
book.setPrice(BigDecimal.valueOf(40L * random));
86-
book.setStockStatus(StockStatus.random());
87-
book.save();
69+
int random = new Random().nextInt(novels.getSubcategories().size());
70+
var category = programming.getSubcategories().get(random);
71+
newBook(title, category, random);
8872
});
8973

9074
System.out.println("Demo ready to run");
9175
}
76+
77+
private static void newBook(String title, Category category, int random) {
78+
var book = new Book();
79+
book.setTitle(title);
80+
book.setCategory(category);
81+
book.setYear(new Random().nextInt(2000, DateTimeUtils.getCurrentYear()));
82+
book.setBuyDate(LocalDate.now());
83+
book.setIsbn(StringUtils.randomString().toUpperCase());
84+
book.setSinopsys("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
85+
book.setPrice(BigDecimal.valueOf(25L * random));
86+
book.setStockStatus(StockStatus.random());
87+
book.setPublishDate(DateTimeUtils.addYears(LocalDate.now(), -new Random().nextInt(1, 10)));
88+
book.save();
89+
}
9290
}

src/main/java/mybookstore/MyBookStoreApplication.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,13 @@
3030
import tools.dynamia.domain.EntityReferenceRepository;
3131
import tools.dynamia.navigation.DefaultPageProvider;
3232
import tools.dynamia.ui.icons.IconsProvider;
33+
import tools.dynamia.web.pwa.PWAIcon;
34+
import tools.dynamia.web.pwa.PWAManifest;
35+
import tools.dynamia.web.pwa.PWAShortcut;
3336
import tools.dynamia.zk.ui.ZIconsProvider;
3437

38+
import java.util.List;
39+
3540
@SpringBootApplication
3641
@EntityScan({"mybookstore", "tools.dynamia"})
3742
@EnableCaching
@@ -60,8 +65,42 @@ public DefaultPageProvider defaultPageProvider() {
6065
}
6166

6267
@Bean
63-
public IconsProvider iconsProvider(){
68+
public IconsProvider iconsProvider() {
6469
return new ZIconsProvider();
6570
}
6671

72+
73+
@Bean
74+
public PWAManifest manifest() {
75+
return PWAManifest.builder()
76+
.name("My Book Store")
77+
.shortName("Books")
78+
.startUrl("/")
79+
.backgroundColor("#ffffff")
80+
.themeColor("#3f51b5")
81+
.display("standalone")
82+
.categories(List.of("books", "education", "library"))
83+
.addIcon(PWAIcon.builder()
84+
.src("android-chrome-192x192.png")
85+
.sizes("192x192")
86+
.type("image/png")
87+
.build())
88+
.addIcon(PWAIcon.builder()
89+
.src("android-chrome-512x512.png")
90+
.sizes("512x512")
91+
.type("image/png")
92+
.build())
93+
.addShortcut(PWAShortcut.builder()
94+
.name("Home")
95+
.shortName("Home")
96+
.description("Go to home page")
97+
.url("/")
98+
.addIcon(PWAIcon.builder()
99+
.src("android-chrome-192x192.png")
100+
.sizes("192x192")
101+
.type("image/png").build())
102+
.build())
103+
.build();
104+
}
105+
67106
}

src/main/java/mybookstore/domain/Book.java

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,20 @@
2222
import jakarta.validation.constraints.NotNull;
2323
import mybookstore.domain.enums.StockStatus;
2424
import tools.dynamia.domain.OrderBy;
25-
import tools.dynamia.domain.jpa.SimpleEntity;
25+
import tools.dynamia.domain.jpa.BaseEntity;
2626
import tools.dynamia.modules.entityfile.domain.EntityFile;
2727

2828
import java.math.BigDecimal;
29+
import java.time.LocalDate;
30+
import java.time.LocalDateTime;
2931
import java.util.ArrayList;
3032
import java.util.Date;
3133
import java.util.List;
3234

3335
@Entity
3436
@Table(name = "books")
3537
@OrderBy("title")
36-
public class Book extends SimpleEntity {
38+
public class Book extends BaseEntity {
3739

3840

3941
@NotNull
@@ -47,16 +49,15 @@ public class Book extends SimpleEntity {
4749
@ManyToOne
4850
private Category category;
4951

50-
@Temporal(TemporalType.DATE)
51-
private Date publishDate;
5252

53-
@Temporal(TemporalType.DATE)
54-
private Date buyDate;
53+
private LocalDate publishDate;
54+
private LocalDate buyDate;
5555

5656
private BigDecimal price;
5757

5858
@Enumerated
5959
private StockStatus stockStatus = StockStatus.IN_STOCK;
60+
private LocalDateTime statusDate;
6061

6162
@OneToMany(mappedBy = "book", cascade = CascadeType.ALL, orphanRemoval = true)
6263
private List<BookReview> reviews = new ArrayList<>();
@@ -114,19 +115,19 @@ public void setCategory(Category category) {
114115
this.category = category;
115116
}
116117

117-
public Date getPublishDate() {
118+
public LocalDate getPublishDate() {
118119
return publishDate;
119120
}
120121

121-
public void setPublishDate(Date publishDate) {
122+
public void setPublishDate(LocalDate publishDate) {
122123
this.publishDate = publishDate;
123124
}
124125

125-
public Date getBuyDate() {
126+
public LocalDate getBuyDate() {
126127
return buyDate;
127128
}
128129

129-
public void setBuyDate(Date buyDate) {
130+
public void setBuyDate(LocalDate buyDate) {
130131
this.buyDate = buyDate;
131132
}
132133

@@ -143,6 +144,9 @@ public StockStatus getStockStatus() {
143144
}
144145

145146
public void setStockStatus(StockStatus stockStatus) {
147+
if(this.stockStatus != stockStatus){
148+
this.statusDate = LocalDateTime.now();
149+
}
146150
this.stockStatus = stockStatus;
147151
}
148152

src/main/java/mybookstore/providers/SettingsModuleProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public Module getModule() { //<2>
3535
.icon("settings")
3636
.position(1)
3737
.addPage(new ConfigPage("discounts", "Global Discounts", "discountsCfg"))
38-
.addPage(new Page("skin", "Skins", "classpath:/pages/changeSkin.zul"));
38+
.addPage(new Page("userSettings", "User Settings", "classpath:/pages/user-settings.zul"));
3939

4040
}
4141
}

src/main/java/mybookstore/viewmodel/ChangeSkinViewModel.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)