Skip to content

Commit 62b8329

Browse files
committed
add custom homepage banner feature
1 parent 532948d commit 62b8329

File tree

7 files changed

+57
-22
lines changed

7 files changed

+57
-22
lines changed

src/main/java/com/github/chipolaris/bootforum/DataInitializer.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,8 @@ private void createDisplayOption() {
303303
displayOption.setThemeColor("w3-theme-light-blue");
304304
displayOption.setThemeComponent("saga");
305305

306+
displayOption.setHomePageBannerContent(HOMEPAGE_BANNER_CONTENT);
307+
306308
displayOption.setShowMostCommentsDiscussions(true);
307309
displayOption.setNumMostCommentsDiscussions(5);
308310

@@ -321,6 +323,9 @@ private void createDisplayOption() {
321323
applicationEventPublisher.publishEvent(new DisplayOptionLoadEvent(this, displayOption));
322324
}
323325

326+
private static final String HOMEPAGE_BANNER_CONTENT = "<div class=\"w3-theme-dark w3-opacity-min w3-center\" "
327+
+ "style=\"margin: 0 -16px;padding:16px;\"><h3>Welcome to BootForum</h3></div>";
328+
324329
private void createRemoteIPFilterOption() {
325330

326331
RemoteIPFilterOption remoteIPFilterOption = genericService.findEntity(RemoteIPFilterOption.class, 1L).getDataObject();

src/main/java/com/github/chipolaris/bootforum/domain/DisplayOption.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22

33
import java.util.List;
44

5+
import javax.persistence.Basic;
56
import javax.persistence.CascadeType;
67
import javax.persistence.Column;
78
import javax.persistence.Entity;
89
import javax.persistence.FetchType;
910
import javax.persistence.Id;
1011
import javax.persistence.JoinColumn;
1112
import javax.persistence.JoinTable;
13+
import javax.persistence.Lob;
1214
import javax.persistence.OneToMany;
1315
import javax.persistence.OrderColumn;
1416
import javax.persistence.Table;
@@ -26,6 +28,10 @@ public class DisplayOption extends BaseEntity {
2628
@Column(name="THEME_COMPONENT")
2729
private String themeComponent;
2830

31+
@Lob @Basic(fetch=FetchType.LAZY)
32+
@Column(name="HOMEPAGE_BANNER_CONTENT")
33+
private String homePageBannerContent; // HTML content for homepage's welcome area
34+
2935
@Column(name = "SHOW_MOST_VIEWS_DIS")
3036
private boolean showMostViewsDiscussions;
3137

@@ -79,6 +85,13 @@ public void setThemeComponent(String themeComponent) {
7985
this.themeComponent = themeComponent;
8086
}
8187

88+
public String getHomePageBannerContent() {
89+
return homePageBannerContent;
90+
}
91+
public void setHomePageBannerContent(String homePageBannerContent) {
92+
this.homePageBannerContent = homePageBannerContent;
93+
}
94+
8295
public boolean isShowMostViewsDiscussions() {
8396
return showMostViewsDiscussions;
8497
}

src/main/java/com/github/chipolaris/bootforum/jsf/bean/ManageDisplay.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public void onLoad() {
6767
this.tagDualList = new DualListModel<>(allTags, currentDisplayTags);
6868
}
6969

70-
public void edit() {
70+
public void update() {
7171

7272
logger.info("Updating display options ");
7373

src/main/resources/ResourceBundle/messages_en.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,8 @@ email.management=Email Management
238238

239239
host=Host
240240

241+
homepage.banner.content=Homepage Banner Content
242+
241243
show.most.comments.discussions=Show Most Comments Discussions
242244

243245
tags.display.on.home.page=Tags display on Home Page

src/main/resources/ResourceBundle/messages_vi.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,8 @@ email.management=Quản lý email
240240

241241
host=Máy chủ
242242

243+
homepage.banner.content=Nội Dung Chào Mừng Trang Chủ
244+
243245
show.most.comments.discussions=Hiển thị nhiều bình luận cuộc thảo luận nhất
244246

245247
tags.display.on.home.page=Các thẻ hiển thị trên Trang chủ

src/main/webapp/admin/displayManagement.xhtml

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,13 @@
2525

2626
.formFieldLabel {
2727
font-weight: 700;
28-
}
28+
}
29+
30+
.boxSizingBorder {
31+
-webkit-box-sizing: border-box;
32+
-moz-box-sizing: border-box;
33+
box-sizing: border-box;
34+
}
2935

3036
</style>
3137

@@ -133,12 +139,31 @@
133139
</div>
134140

135141
<div class="w3-container w3-padding">
136-
<p:commandButton value=" #{msg['save']}" icon="pi pi-save" ajax="true" action="#{manageDisplay.edit}"/>
142+
<p:commandButton value=" #{msg['save']}" icon="pi pi-save" ajax="true" action="#{manageDisplay.update}"/>
137143
</div>
138144

139145
</h:form>
140146

141-
<p/>
147+
<p/>
148+
149+
<h:form>
150+
151+
<div class="w3-container w3-large w3-border-bottom">
152+
#{msg['homepage.banner.content']}
153+
</div>
154+
155+
<div class="w3-row w3-margin-top w3-padding">
156+
<p:inputTextarea id="homePageBannerContent" value="#{manageDisplay.displayOption.homePageBannerContent}"
157+
styleClass="boxSizingBorder" style="width:100%" rows="12"/>
158+
<h:message id="contentError" for="homePageBannerContent" styleClass="w3-pale-red"/>
159+
</div>
160+
161+
<div class="w3-container w3-padding">
162+
<p:commandButton value=" #{msg['save']}" icon="pi pi-save" ajax="true" action="#{manageDisplay.update}"/>
163+
</div>
164+
</h:form>
165+
166+
<p/>
142167

143168
<h:form>
144169

@@ -209,7 +234,7 @@
209234
<p/>
210235

211236
<div class="w3-container w3-padding">
212-
<p:commandButton value=" #{msg['save']}" ajax="true" action="#{manageDisplay.edit}" icon="pi pi-save"/>
237+
<p:commandButton value=" #{msg['save']}" ajax="true" action="#{manageDisplay.update}" icon="pi pi-save"/>
213238
</div>
214239

215240
</h:form>
@@ -267,7 +292,7 @@
267292
<p/>
268293

269294
<div class="w3-container w3-padding">
270-
<p:commandButton value=" #{msg['save']}" ajax="true" action="#{manageDisplay.editDisplayTags}" icon="pi pi-save"/>
295+
<p:commandButton value=" #{msg['save']}" ajax="true" action="#{manageDisplay.updateDisplayTags}" icon="pi pi-save"/>
271296
</div>
272297

273298
</h:form>

src/main/webapp/index.xhtml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,11 @@
2222

2323
<div class="w3-panel w3-card-4" style="background-color: #f8f8f8">
2424

25-
<div class="w3-theme-dark w3-opacity-min w3-center" style="margin: 0 -16px;padding:48px 16px;">
26-
<h3>#{msg['welcome.to.forum']}</h3>
27-
28-
<h3>Custom content</h3>
29-
</div>
30-
31-
<div class="w3-large w3-margin-top">
32-
<p>
33-
<!-- welcome text -->
34-
</p>
35-
</div>
36-
37-
<div class="w3-row">
25+
<h:outputText value="#{homePage.displayOption.homePageBannerContent}" escape="false" id="banner"/>
26+
27+
<div class="w3-row w3-margin-top">
3828

39-
<div class="w3-col l9 m12 s12 w3-container">
29+
<div class="w3-col l9 m12 s12 w3-container w3-margin-bottom">
4030
<div class="w3-container w3-card w3-white w3-padding" jsf:rendered="#{not empty homePage.mostRecentDiscussions}">
4131
<div class="w3-large w3-text-theme w3-margin-top">
4232
<b><i class="pi pi-clock w3-large"/> #{msg['most.recent.discussions']}</b>
@@ -172,8 +162,6 @@
172162
<p/>
173163
</div>
174164
</p:repeat>
175-
176-
<hr/>
177165

178166
</div> <!-- end div class=w3-col l9 m12 s12 -->
179167

0 commit comments

Comments
 (0)