1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.app.web.admin.failureurl;
17
18 import javax.annotation.Resource;
19
20 import org.codelibs.fess.Constants;
21 import org.codelibs.fess.annotation.Secured;
22 import org.codelibs.fess.app.pager.FailureUrlPager;
23 import org.codelibs.fess.app.service.FailureUrlService;
24 import org.codelibs.fess.app.web.CrudMode;
25 import org.codelibs.fess.app.web.base.FessAdminAction;
26 import org.codelibs.fess.util.RenderDataUtil;
27 import org.lastaflute.web.Execute;
28 import org.lastaflute.web.response.HtmlResponse;
29 import org.lastaflute.web.response.render.RenderData;
30 import org.lastaflute.web.ruts.process.ActionRuntime;
31
32
33
34
35
36 public class AdminFailureurlAction extends FessAdminAction {
37
38 public static final String ROLE = "admin-failureurl";
39
40
41
42
43 @Resource
44 private FailureUrlService failureUrlService;
45 @Resource
46 private FailureUrlPager failureUrlPager;
47
48
49
50
51 @Override
52 protected void setupHtmlData(final ActionRuntime runtime) {
53 super.setupHtmlData(runtime);
54 runtime.registerData("helpLink", systemHelper.getHelpLink(fessConfig.getOnlineHelpNameFailureurl()));
55 }
56
57 @Override
58 protected String getActionRole() {
59 return ROLE;
60 }
61
62
63
64
65 @Execute
66 @Secured({ ROLE, ROLE + VIEW })
67 public HtmlResponse index() {
68 saveToken();
69 return asListHtml();
70 }
71
72 @Execute
73 @Secured({ ROLE, ROLE + VIEW })
74 public HtmlResponse list(final Integer pageNumber, final SearchForm form) {
75 failureUrlPager.setCurrentPageNumber(pageNumber);
76 return asHtml(path_AdminFailureurl_AdminFailureurlJsp).renderWith(data -> {
77 searchPaging(data, form);
78 });
79 }
80
81 @Execute
82 @Secured({ ROLE, ROLE + VIEW })
83 public HtmlResponse search(final SearchForm form) {
84 copyBeanToBean(form, failureUrlPager, op -> op.exclude(Constants.PAGER_CONVERSION_RULE));
85 return asHtml(path_AdminFailureurl_AdminFailureurlJsp).renderWith(data -> {
86 searchPaging(data, form);
87 });
88 }
89
90 @Execute
91 @Secured({ ROLE, ROLE + VIEW })
92 public HtmlResponse reset(final SearchForm form) {
93 failureUrlPager.clear();
94 return asHtml(path_AdminFailureurl_AdminFailureurlJsp).renderWith(data -> {
95 searchPaging(data, form);
96 });
97 }
98
99 @Execute
100 @Secured({ ROLE, ROLE + VIEW })
101 public HtmlResponse back(final SearchForm form) {
102 return asHtml(path_AdminFailureurl_AdminFailureurlJsp).renderWith(data -> {
103 searchPaging(data, form);
104 });
105 }
106
107 protected void searchPaging(final RenderData data, final SearchForm form) {
108 RenderDataUtil.register(data, "failureUrlItems", failureUrlService.getFailureUrlList(failureUrlPager));
109
110
111 copyBeanToBean(failureUrlPager, form, op -> op.include("url", "errorCountMin", "errorCountMax", "errorName"));
112 }
113
114
115
116
117 @Execute
118 @Secured({ ROLE, ROLE + VIEW })
119 public HtmlResponse details(final int crudMode, final String id) {
120 verifyCrudMode(crudMode, CrudMode.DETAILS);
121 return asHtml(path_AdminFailureurl_AdminFailureurlDetailsJsp).useForm(EditForm.class, op -> {
122 op.setup(form -> {
123 failureUrlService.getFailureUrl(id).ifPresent(entity -> {
124 copyBeanToBean(entity, form, copyOp -> {
125 copyOp.excludeNull();
126 });
127 form.crudMode = crudMode;
128 }).orElse(() -> {
129 throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), this::asListHtml);
130 });
131 });
132 });
133 }
134
135
136
137
138
139 @Execute
140 @Secured({ ROLE })
141 public HtmlResponse delete(final EditForm form) {
142 verifyCrudMode(form.crudMode, CrudMode.DETAILS);
143 validate(form, messages -> {}, this::asDetailsHtml);
144 verifyToken(this::asDetailsHtml);
145 final String id = form.id;
146 failureUrlService.getFailureUrl(id).alwaysPresent(entity -> {
147 failureUrlService.delete(entity);
148 saveInfo(messages -> messages.addSuccessCrudDeleteCrudTable(GLOBAL));
149 });
150 return redirect(getClass());
151 }
152
153 @Execute
154 @Secured({ ROLE })
155 public HtmlResponse deleteall() {
156 verifyToken(this::asListHtml);
157 failureUrlService.deleteAll(failureUrlPager);
158 failureUrlPager.clear();
159 saveInfo(messages -> messages.addSuccessFailureUrlDeleteAll(GLOBAL));
160 return redirect(getClass());
161 }
162
163
164
165
166 protected void verifyCrudMode(final int crudMode, final int expectedMode) {
167 if (crudMode != expectedMode) {
168 throwValidationError(messages -> {
169 messages.addErrorsCrudInvalidMode(GLOBAL, String.valueOf(expectedMode), String.valueOf(crudMode));
170 }, this::asListHtml);
171 }
172 }
173
174
175
176
177
178 private HtmlResponse asListHtml() {
179 return asHtml(path_AdminFailureurl_AdminFailureurlJsp).renderWith(data -> {
180 RenderDataUtil.register(data, "failureUrlItems", failureUrlService.getFailureUrlList(failureUrlPager));
181 }).useForm(SearchForm.class, setup -> {
182 setup.setup(form -> {
183 copyBeanToBean(failureUrlPager, form, op -> op.include("url", "errorCountMin", "errorCountMax", "errorName"));
184 });
185 });
186 }
187
188 private HtmlResponse asDetailsHtml() {
189 return asHtml(path_AdminFailureurl_AdminFailureurlDetailsJsp);
190 }
191 }