Selaa lähdekoodia

Merge branch 'master' of https://github.com/codelibs/fess

Shinsuke Sugaya 9 vuotta sitten
vanhempi
commit
f692bc7c5c
48 muutettua tiedostoa jossa 658 lisäystä ja 633 poistoa
  1. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/boostdocumentrule/AdminBoostdocumentruleAction.java
  2. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java
  3. 14 17
      src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java
  4. 12 10
      src/main/java/org/codelibs/fess/app/web/admin/dict/kuromoji/AdminDictKuromojiAction.java
  5. 14 14
      src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java
  6. 1 1
      src/main/java/org/codelibs/fess/app/web/admin/failureurl/AdminFailureurlAction.java
  7. 0 5
      src/main/java/org/codelibs/fess/app/web/admin/failureurl/EditForm.java
  8. 7 4
      src/main/java/org/codelibs/fess/app/web/admin/failureurl/SearchForm.java
  9. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/fileauthentication/AdminFileauthenticationAction.java
  10. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java
  11. 11 10
      src/main/java/org/codelibs/fess/app/web/admin/group/AdminGroupAction.java
  12. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java
  13. 19 16
      src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java
  14. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/overlappinghost/AdminOverlappinghostAction.java
  15. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/pathmapping/AdminPathmappingAction.java
  16. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/requestheader/AdminRequestheaderAction.java
  17. 11 10
      src/main/java/org/codelibs/fess/app/web/admin/role/AdminRoleAction.java
  18. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/roletype/AdminRoletypeAction.java
  19. 21 22
      src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java
  20. 21 60
      src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java
  21. 36 48
      src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java
  22. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/suggestbadword/AdminSuggestbadwordAction.java
  23. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/suggestelevateword/AdminSuggestelevatewordAction.java
  24. 15 15
      src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java
  25. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/webauthentication/AdminWebauthenticationAction.java
  26. 18 16
      src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java
  27. 6 6
      src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java
  28. 4 4
      src/main/resources/fess_label.properties
  29. 13 14
      src/main/webapp/WEB-INF/view/admin/dict/index.jsp
  30. 17 4
      src/main/webapp/WEB-INF/view/admin/dict/kuromoji/details.jsp
  31. 20 20
      src/main/webapp/WEB-INF/view/admin/dict/kuromoji/download.jsp
  32. 22 2
      src/main/webapp/WEB-INF/view/admin/dict/kuromoji/edit.jsp
  33. 12 2
      src/main/webapp/WEB-INF/view/admin/dict/kuromoji/index.jsp
  34. 23 23
      src/main/webapp/WEB-INF/view/admin/dict/kuromoji/upload.jsp
  35. 17 4
      src/main/webapp/WEB-INF/view/admin/dict/synonym/details.jsp
  36. 20 20
      src/main/webapp/WEB-INF/view/admin/dict/synonym/download.jsp
  37. 22 2
      src/main/webapp/WEB-INF/view/admin/dict/synonym/edit.jsp
  38. 13 4
      src/main/webapp/WEB-INF/view/admin/dict/synonym/index.jsp
  39. 20 19
      src/main/webapp/WEB-INF/view/admin/dict/synonym/upload.jsp
  40. 8 8
      src/main/webapp/WEB-INF/view/admin/failureurl/index.jsp
  41. 4 13
      src/main/webapp/WEB-INF/view/admin/suggestbadword/download.jsp
  42. 1 2
      src/main/webapp/WEB-INF/view/admin/suggestbadword/index.jsp
  43. 4 7
      src/main/webapp/WEB-INF/view/admin/suggestbadword/upload.jsp
  44. 4 12
      src/main/webapp/WEB-INF/view/admin/suggestelevateword/download.jsp
  45. 2 3
      src/main/webapp/WEB-INF/view/admin/suggestelevateword/edit.jsp
  46. 2 3
      src/main/webapp/WEB-INF/view/admin/suggestelevateword/index.jsp
  47. 4 13
      src/main/webapp/WEB-INF/view/admin/suggestelevateword/upload.jsp
  48. 4 8
      src/main/webapp/WEB-INF/view/common/admin/crud/breadcrumb.jsp

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/boostdocumentrule/AdminBoostdocumentruleAction.java

@@ -171,7 +171,6 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createBoostDocumentRule(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             boostDocumentRuleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -185,7 +184,6 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createBoostDocumentRule(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             boostDocumentRuleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -212,27 +210,20 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
     //                                                                        Assist Logic
     //                                                                        ============
 
-    protected OptionalEntity<BoostDocumentRule> createBoostDocumentRule(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<BoostDocumentRule> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final BoostDocumentRule entity = new BoostDocumentRule();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new BoostDocumentRule()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return boostDocumentRuleService.getBoostDocumentRule(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return boostDocumentRuleService.getBoostDocumentRule(((EditForm) form).id);
             }
             break;
         default:
@@ -241,6 +232,17 @@ public class AdminBoostdocumentruleAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<BoostDocumentRule> createBoostDocumentRule(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java

@@ -196,7 +196,6 @@ public class AdminDataconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createDataConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             dataConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -210,7 +209,6 @@ public class AdminDataconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createDataConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             dataConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -236,27 +234,20 @@ public class AdminDataconfigAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<DataConfig> createDataConfig(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<DataConfig> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final DataConfig entity = new DataConfig();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new DataConfig()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return dataConfigService.getDataConfig(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return dataConfigService.getDataConfig(((EditForm) form).id);
             }
             break;
         default:
@@ -265,6 +256,17 @@ public class AdminDataconfigAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<DataConfig> createDataConfig(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRolesAndLabels(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());

+ 14 - 17
src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java

@@ -33,6 +33,7 @@ import org.codelibs.fess.Constants;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.exception.FessSystemException;
 import org.codelibs.fess.helper.SystemHelper;
+import org.dbflute.optional.OptionalEntity;
 import org.lastaflute.web.Execute;
 import org.lastaflute.web.callback.ActionRuntime;
 import org.lastaflute.web.response.ActionResponse;
@@ -177,10 +178,11 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
 
     @Execute
     public StreamResponse download(final DesignForm form) {
-        final File file = getTargetFile(form);
+        File file = getTargetFile(form).get();
         if (file == null) {
             throwValidationError(messages -> messages.addErrorsTargetFileDoesNotExist(GLOBAL, form.fileName), toMainHtml());
         }
+
         return asStream(file.getName()).stream(out -> {
             try (FileInputStream fis = new FileInputStream(file)) {
                 out.write(fis);
@@ -191,14 +193,14 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
     @Execute
     //(token = TxToken.VALIDATE)
     public HtmlResponse delete(final DesignForm form) {
-        final File file = getTargetFile(form);
-        if (file == null) {
+        getTargetFile(form).ifPresent(file -> {
+            if (!file.delete()) {
+                logger.error("Failed to delete {}", file.getAbsolutePath());
+                throwValidationError(messages -> messages.addErrorsFailedToDeleteFile(GLOBAL, form.fileName), toMainHtml());
+            }
+        }).orElse(() -> {
             throwValidationError(messages -> messages.addErrorsTargetFileDoesNotExist(GLOBAL, form.fileName), toMainHtml());
-        }
-        if (!file.delete()) {
-            logger.error("Failed to delete {}", file.getAbsolutePath());
-            throwValidationError(messages -> messages.addErrorsFailedToDeleteFile(GLOBAL, form.fileName), toMainHtml());
-        }
+        });
         saveInfo(messages -> messages.addSuccessDeleteFile(GLOBAL, form.fileName));
         return redirect(getClass());
     }
@@ -261,21 +263,16 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    private File getTargetFile(final DesignForm form) {
+    private OptionalEntity<File> getTargetFile(final DesignForm form) {
         final File baseDir = new File(getServletContext().getRealPath("/"));
         final File targetFile = new File(getServletContext().getRealPath(form.fileName));
         final List<File> fileList = getAccessibleFileList(baseDir);
-        boolean exist = false;
         for (final File file : fileList) {
             if (targetFile.equals(file)) {
-                exist = true;
-                break;
+                return OptionalEntity.of(targetFile);
             }
         }
-        if (exist) {
-            return targetFile;
-        }
-        return null;
+        return OptionalEntity.empty();
     }
 
     private List<File> getAccessibleFileList(final File baseDir) {
@@ -306,4 +303,4 @@ public class AdminDesignAction extends FessAdminAction implements Serializable {
             return asHtml(path_AdminDesign_AdminDesignJsp);
         };
     }
-}
+}

+ 12 - 10
src/main/java/org/codelibs/fess/app/web/admin/dict/kuromoji/AdminDictKuromojiAction.java

@@ -207,7 +207,7 @@ public class AdminDictKuromojiAction extends FessAdminAction {
     public ActionResponse download(final DownloadForm form) {
         validate(form, messages -> {}, () -> downloadpage(form.dictId));
         return kuromojiService.getKuromojiFile(form.dictId).map(file -> {
-            return asStream(new File(file.getPath()).getName()).contentType("text/plain; charset=UTF-8").stream(out -> {
+            return asStream(new File(file.getPath()).getName()).stream(out -> {
                 try (InputStream inputStream = file.getInputStream()) {
                     out.write(inputStream);
                 }
@@ -266,10 +266,6 @@ public class AdminDictKuromojiAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createKuromojiItem(form).ifPresent(entity -> {
-            entity.setNewToken(form.token);
-            entity.setNewSegmentation(form.segmentation);
-            entity.setNewReading(form.reading);
-            entity.setNewPos(form.pos);
             kuromojiService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -283,10 +279,6 @@ public class AdminDictKuromojiAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createKuromojiItem(form).ifPresent(entity -> {
-            entity.setNewToken(form.token);
-            entity.setNewSegmentation(form.segmentation);
-            entity.setNewReading(form.reading);
-            entity.setNewPos(form.pos);
             kuromojiService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -312,7 +304,7 @@ public class AdminDictKuromojiAction extends FessAdminAction {
     //                                                                        Assist Logic
     //                                                                        ============
 
-    protected OptionalEntity<KuromojiItem> createKuromojiItem(final CreateForm form) {
+    private OptionalEntity<KuromojiItem> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
@@ -331,6 +323,16 @@ public class AdminDictKuromojiAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<KuromojiItem> createKuromojiItem(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            entity.setNewToken(form.token);
+            entity.setNewSegmentation(form.segmentation);
+            entity.setNewReading(form.reading);
+            entity.setNewPos(form.pos);
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 14 - 14
src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java

@@ -238,7 +238,7 @@ public class AdminDictSynonymAction extends FessAdminAction {
     public ActionResponse download(final DownloadForm form) {
         validate(form, messages -> {}, () -> downloadpage(form.dictId));
         return synonymService.getSynonymFile(form.dictId).map(file -> {
-            return asStream(new File(file.getPath()).getName()).contentType("text/plain; charset=UTF-8").stream(out -> {
+            return asStream(new File(file.getPath()).getName()).stream(out -> {
                 try (InputStream inputStream = file.getInputStream()) {
                     out.write(inputStream);
                 }
@@ -297,12 +297,6 @@ public class AdminDictSynonymAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createSynonymItem(form).ifPresent(entity -> {
-            final String[] newInputs = splitLine(form.inputs);
-            validateSynonymString(newInputs, () -> confirmfromcreate(form));
-            entity.setNewInputs(newInputs);
-            final String[] newOutputs = splitLine(form.outputs);
-            validateSynonymString(newOutputs, () -> confirmfromcreate(form));
-            entity.setNewOutputs(newOutputs);
             synonymService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -316,12 +310,6 @@ public class AdminDictSynonymAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createSynonymItem(form).ifPresent(entity -> {
-            final String[] newInputs = splitLine(form.inputs);
-            validateSynonymString(newInputs, () -> confirmfromupdate(form));
-            entity.setNewInputs(newInputs);
-            final String[] newOutputs = splitLine(form.outputs);
-            validateSynonymString(newOutputs, () -> confirmfromupdate(form));
-            entity.setNewOutputs(newOutputs);
             synonymService.store(form.dictId, entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -347,7 +335,7 @@ public class AdminDictSynonymAction extends FessAdminAction {
     //                                                                        Assist Logic
     //                                                                        ============
 
-    protected OptionalEntity<SynonymItem> createSynonymItem(final CreateForm form) {
+    private OptionalEntity<SynonymItem> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
@@ -366,6 +354,18 @@ public class AdminDictSynonymAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<SynonymItem> createSynonymItem(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            final String[] newInputs = splitLine(form.inputs);
+            validateSynonymString(newInputs, () -> confirmfromcreate(form));
+            entity.setNewInputs(newInputs);
+            final String[] newOutputs = splitLine(form.outputs);
+            validateSynonymString(newOutputs, () -> confirmfromcreate(form));
+            entity.setNewOutputs(newOutputs);
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 1 - 1
src/main/java/org/codelibs/fess/app/web/admin/failureurl/AdminFailureurlAction.java

@@ -99,7 +99,7 @@ public class AdminFailureurlAction extends FessAdminAction {
         data.register("failureUrlItems", failureUrlService.getFailureUrlList(failureUrlPager)); // page navi
 
         // restore from pager
-        copyBeanToBean(failureUrlPager, form, op -> op.include("id"));
+        copyBeanToBean(failureUrlPager, form, op -> op.include("url", "errorCountMin", "errorCountMax", "errorName"));
     }
 
     // -----------------------------------------------------

+ 0 - 5
src/main/java/org/codelibs/fess/app/web/admin/failureurl/EditForm.java

@@ -16,8 +16,6 @@
 package org.codelibs.fess.app.web.admin.failureurl;
 
 import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.validation.constraints.Size;
 
@@ -39,9 +37,6 @@ public class EditForm implements Serializable {
     @ValidateTypeFailure
     public String pageNumber;
 
-    // TODO remove?
-    public Map<String, String> searchParams = new HashMap<String, String>();
-
     @ValidateTypeFailure
     public Integer crudMode;
 

+ 7 - 4
src/main/java/org/codelibs/fess/app/web/admin/failureurl/SearchForm.java

@@ -16,8 +16,6 @@
 package org.codelibs.fess.app.web.admin.failureurl;
 
 import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * @author codelibs
@@ -27,7 +25,12 @@ public class SearchForm implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    public String id;
+    public String url;
+
+    public String errorCountMin;
+
+    public String errorCountMax;
+
+    public String errorName;
 
-    public Map<String, String> searchParams = new HashMap<String, String>();
 }

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/fileauthentication/AdminFileauthenticationAction.java

@@ -193,7 +193,6 @@ public class AdminFileauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createFileAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -207,7 +206,6 @@ public class AdminFileauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createFileAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -233,27 +231,20 @@ public class AdminFileauthenticationAction extends FessAdminAction {
     //===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<FileAuthentication> createFileAuthentication(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<FileAuthentication> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final FileAuthentication entity = new FileAuthentication();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new FileAuthentication()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return fileAuthenticationService.getFileAuthentication(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return fileAuthenticationService.getFileAuthentication(((EditForm) form).id);
             }
             break;
         default:
@@ -262,6 +253,17 @@ public class AdminFileauthenticationAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<FileAuthentication> createFileAuthentication(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerProtocolSchemeItems(final RenderData data) {
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final Locale locale = LaRequestUtil.getRequest().getLocale();

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java

@@ -184,7 +184,6 @@ public class AdminFileconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createFileConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -198,7 +197,6 @@ public class AdminFileconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createFileConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             fileConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -224,27 +222,20 @@ public class AdminFileconfigAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<FileConfig> createFileConfig(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<FileConfig> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final FileConfig entity = new FileConfig();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new FileConfig()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return fileConfigService.getFileConfig(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return fileConfigService.getFileConfig(((EditForm) form).id);
             }
             break;
         default:
@@ -253,6 +244,17 @@ public class AdminFileconfigAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<FileConfig> createFileConfig(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRolesAndLabels(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());

+ 11 - 10
src/main/java/org/codelibs/fess/app/web/admin/group/AdminGroupAction.java

@@ -174,8 +174,6 @@ public class AdminGroupAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createGroup(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             groupService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -189,8 +187,6 @@ public class AdminGroupAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createGroup(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             groupService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -216,19 +212,16 @@ public class AdminGroupAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<Group> createGroup(final CreateForm form) {
+    private OptionalEntity<Group> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final Group entity = new Group();
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new Group());
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return groupService.getGroup(((EditForm) form).id).map(entity -> {
-                    return entity;
-                });
+                return groupService.getGroup(((EditForm) form).id);
             }
             break;
         default:
@@ -237,6 +230,14 @@ public class AdminGroupAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<Group> createGroup(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/keymatch/AdminKeymatchAction.java

@@ -173,7 +173,6 @@ public class AdminKeymatchAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createKeyMatch(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             keyMatchService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
             ComponentUtil.getKeyMatchHelper().update();
@@ -188,7 +187,6 @@ public class AdminKeymatchAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createKeyMatch(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             keyMatchService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
             ComponentUtil.getKeyMatchHelper().update();
@@ -216,28 +214,21 @@ public class AdminKeymatchAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<KeyMatch> createKeyMatch(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
 
+    private OptionalEntity<KeyMatch> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final KeyMatch entity = new KeyMatch();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new KeyMatch()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return keyMatchService.getKeyMatch(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return keyMatchService.getKeyMatch(((EditForm) form).id);
             }
             break;
         default:
@@ -246,6 +237,17 @@ public class AdminKeymatchAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<KeyMatch> createKeyMatch(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 19 - 16
src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java

@@ -182,7 +182,6 @@ public class AdminLabeltypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createLabelType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             labelTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -196,7 +195,6 @@ public class AdminLabeltypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createLabelType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             labelTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -222,27 +220,21 @@ public class AdminLabeltypeAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<LabelType> createLabelType(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+
+    private OptionalEntity<LabelType> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final LabelType entity = new LabelType();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new LabelType()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return labelTypeService.getLabelType(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return labelTypeService.getLabelType(((EditForm) form).id);
             }
             break;
         default:
@@ -251,6 +243,17 @@ public class AdminLabeltypeAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<LabelType> createLabelType(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRoleTypeItems(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
     }

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/overlappinghost/AdminOverlappinghostAction.java

@@ -172,7 +172,6 @@ public class AdminOverlappinghostAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createOverlappingHost(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             overlappingHostService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -186,7 +185,6 @@ public class AdminOverlappinghostAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createOverlappingHost(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             overlappingHostService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -212,27 +210,20 @@ public class AdminOverlappinghostAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<OverlappingHost> createOverlappingHost(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<OverlappingHost> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final OverlappingHost entity = new OverlappingHost();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new OverlappingHost()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return overlappingHostService.getOverlappingHost(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return overlappingHostService.getOverlappingHost(((EditForm) form).id);
             }
             break;
         default:
@@ -241,6 +232,17 @@ public class AdminOverlappinghostAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<OverlappingHost> createOverlappingHost(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/pathmapping/AdminPathmappingAction.java

@@ -173,7 +173,6 @@ public class AdminPathmappingAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createPathMapping(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             pathMappingService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -187,7 +186,6 @@ public class AdminPathmappingAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createPathMapping(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             pathMappingService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -213,27 +211,20 @@ public class AdminPathmappingAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<PathMapping> createPathMapping(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<PathMapping> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final PathMapping entity = new PathMapping();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new PathMapping()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return pathMappingService.getPathMapping(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return pathMappingService.getPathMapping(((EditForm) form).id);
             }
             break;
         default:
@@ -242,6 +233,17 @@ public class AdminPathmappingAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<PathMapping> createPathMapping(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/requestheader/AdminRequestheaderAction.java

@@ -195,7 +195,6 @@ public class AdminRequestheaderAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createRequestHeader(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             requestHeaderService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -209,7 +208,6 @@ public class AdminRequestheaderAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createRequestHeader(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             requestHeaderService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -235,27 +233,20 @@ public class AdminRequestheaderAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<RequestHeader> createRequestHeader(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<RequestHeader> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final RequestHeader entity = new RequestHeader();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new RequestHeader()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return requestHeaderService.getRequestHeader(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return requestHeaderService.getRequestHeader(((EditForm) form).id);
             }
             break;
         default:
@@ -264,6 +255,17 @@ public class AdminRequestheaderAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<RequestHeader> createRequestHeader(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerProtocolSchemeItems(final RenderData data) {
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final Locale locale = LaRequestUtil.getRequest().getLocale();

+ 11 - 10
src/main/java/org/codelibs/fess/app/web/admin/role/AdminRoleAction.java

@@ -174,8 +174,6 @@ public class AdminRoleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createRole(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             roleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -189,8 +187,6 @@ public class AdminRoleAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createRole(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             roleService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -216,19 +212,16 @@ public class AdminRoleAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<Role> createRole(final CreateForm form) {
+    private OptionalEntity<Role> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final Role entity = new Role();
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new Role());
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return roleService.getRole(((EditForm) form).id).map(entity -> {
-                    return entity;
-                });
+                return roleService.getRole(((EditForm) form).id);
             }
             break;
         default:
@@ -237,6 +230,14 @@ public class AdminRoleAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<Role> createRole(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/roletype/AdminRoletypeAction.java

@@ -172,7 +172,6 @@ public class AdminRoletypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createRoleType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             roleTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -186,7 +185,6 @@ public class AdminRoletypeAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createRoleType(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             roleTypeService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -212,27 +210,20 @@ public class AdminRoletypeAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<RoleType> createRoleType(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<RoleType> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final RoleType entity = new RoleType();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new RoleType()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return roleTypeService.getRoleType(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return roleTypeService.getRoleType(((EditForm) form).id);
             }
             break;
         default:
@@ -241,6 +232,17 @@ public class AdminRoletypeAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<RoleType> createRoleType(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 21 - 22
src/main/java/org/codelibs/fess/app/web/admin/scheduledjob/AdminScheduledjobAction.java

@@ -268,35 +268,20 @@ public class AdminScheduledjobAction extends FessAdminAction {
         form.available = entity.isEnabled() ? Constants.ON : null;
     }
 
-    protected OptionalEntity<ScheduledJob> createScheduledJob(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<ScheduledJob> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final ScheduledJob entity = new ScheduledJob();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-                entity.setJobLogging(Constants.ON.equals(form.jobLogging) ? Constants.T : Constants.F);
-                entity.setCrawler(Constants.ON.equals(form.crawler) ? Constants.T : Constants.F);
-                entity.setAvailable(Constants.ON.equals(form.available) ? Constants.T : Constants.F);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new ScheduledJob()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return scheduledJobService.getScheduledJob(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
-                    entity.setJobLogging(Constants.ON.equals(form.jobLogging) ? Constants.T : Constants.F);
-                    entity.setCrawler(Constants.ON.equals(form.crawler) ? Constants.T : Constants.F);
-                    entity.setAvailable(Constants.ON.equals(form.available) ? Constants.T : Constants.F);
-                    return entity;
-                });
+                return scheduledJobService.getScheduledJob(((EditForm) form).id);
             }
             break;
         default:
@@ -305,6 +290,20 @@ public class AdminScheduledjobAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<ScheduledJob> createScheduledJob(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setJobLogging(Constants.ON.equals(form.jobLogging) ? Constants.T : Constants.F);
+            entity.setCrawler(Constants.ON.equals(form.crawler) ? Constants.T : Constants.F);
+            entity.setAvailable(Constants.ON.equals(form.available) ? Constants.T : Constants.F);
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 21 - 60
src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java

@@ -22,7 +22,6 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
 import org.codelibs.core.lang.StringUtil;
-import org.codelibs.fess.Constants;
 import org.codelibs.fess.app.service.SearchService;
 import org.codelibs.fess.app.web.base.FessAdminAction;
 import org.codelibs.fess.entity.SearchRenderData;
@@ -113,47 +112,26 @@ public class AdminSearchlistAction extends FessAdminAction {
     // Search Execute
     // ==============
     @Execute
-    public HtmlResponse index(final SearchListForm form) {
+    public HtmlResponse index(final ListForm form) {
+        validate(form, messages -> {}, () -> asHtml(path_ErrorJsp));
         return asHtml(path_AdminSearchlist_IndexJsp);
     }
 
-    protected HtmlResponse doSearch(final SearchListForm form) {
+    protected HtmlResponse doSearch(final ListForm form) {
 
         if (StringUtil.isBlank(form.query)) {
             // redirect to index page
             form.query = null;
             return redirect(getClass());
         }
+        validate(form, messages -> {}, () -> asHtml(path_ErrorJsp));
         return asHtml(path_AdminSearchlist_IndexJsp).renderWith(data -> {
             doSearchInternal(data, form);
         });
     }
 
-    private void doSearchInternal(final RenderData data, final SearchListForm form) {
-        // init pager
-        if (StringUtil.isBlank(form.start)) {
-            form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-        } else {
-            try {
-                Long.parseLong(form.start);
-            } catch (final NumberFormatException e) {
-                form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-            }
-        }
-        if (StringUtil.isBlank(form.num)) {
-            form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
-        } else {
-            try {
-                final int num = Integer.parseInt(form.num);
-                if (num > 100) {
-                    // max page size
-                    form.num = "100";
-                }
-            } catch (final NumberFormatException e) {
-                form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
-            }
-        }
-
+    private void doSearchInternal(final RenderData data, final ListForm form) {
+        form.initialize();
         try {
             final WebRenderData renderData = new WebRenderData(data);
             searchService.search(request, form, renderData);
@@ -173,52 +151,35 @@ public class AdminSearchlistAction extends FessAdminAction {
     }
 
     @Execute
-    public HtmlResponse search(final SearchListForm form) {
+    public HtmlResponse search(final ListForm form) {
         return doSearch(form);
     }
 
     @Execute
-    public HtmlResponse prev(final SearchListForm form) {
+    public HtmlResponse prev(final ListForm form) {
         return doMove(form, -1);
     }
 
     @Execute
-    public HtmlResponse next(final SearchListForm form) {
+    public HtmlResponse next(final ListForm form) {
         return doMove(form, 1);
     }
 
     @Execute
-    public HtmlResponse move(final SearchListForm form) {
+    public HtmlResponse move(final ListForm form) {
         return doMove(form, 0);
     }
 
-    protected HtmlResponse doMove(final SearchListForm form, final int move) {
-        int size = Constants.DEFAULT_PAGE_SIZE;
-        if (StringUtil.isBlank(form.num)) {
-            form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
-        } else {
-            try {
-                size = Integer.parseInt(form.num);
-            } catch (final NumberFormatException e) {
-                form.num = String.valueOf(Constants.DEFAULT_PAGE_SIZE);
+    protected HtmlResponse doMove(final ListForm form, final int move) {
+        form.initialize();
+        Integer pageNumber = form.pn;
+        if (pageNumber != null && pageNumber > 0) {
+            pageNumber = pageNumber + move;
+            if (pageNumber < 1) {
+                pageNumber = 1;
             }
+            form.start = (pageNumber - 1) * form.getPageSize();
         }
-
-        if (StringUtil.isBlank(form.pn)) {
-            form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-        } else {
-            Integer pageNumber = Integer.parseInt(form.pn);
-            if (pageNumber != null && pageNumber > 0) {
-                pageNumber = pageNumber + move;
-                if (pageNumber < 1) {
-                    pageNumber = 1;
-                }
-                form.start = String.valueOf((pageNumber - 1) * size);
-            } else {
-                form.start = String.valueOf(Constants.DEFAULT_START_COUNT);
-            }
-        }
-
         return doSearch(form);
     }
 
@@ -226,16 +187,16 @@ public class AdminSearchlistAction extends FessAdminAction {
     // Confirm
     // -------
     @Execute
-    public HtmlResponse confirmDelete(final SearchListForm form) {
+    public HtmlResponse confirmDelete(final ListForm form) {
         return asHtml(path_AdminSearchlist_ConfirmDeleteJsp);
     }
 
     @Execute
-    public HtmlResponse delete(final SearchListForm form) {
+    public HtmlResponse delete(final ListForm form) {
         return deleteByQuery(form);
     }
 
-    private HtmlResponse deleteByQuery(final SearchListForm form) {
+    private HtmlResponse deleteByQuery(final ListForm form) {
         final String docId = form.docId;
         if (jobHelper.isCrawlProcessRunning()) {
             // TODO Error

+ 36 - 48
src/main/java/org/codelibs/fess/app/web/admin/searchlist/SearchListForm.java → src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java

@@ -19,42 +19,44 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.codelibs.core.lang.StringUtil;
+import javax.validation.constraints.Size;
+
 import org.codelibs.fess.entity.FacetInfo;
 import org.codelibs.fess.entity.GeoInfo;
 import org.codelibs.fess.entity.SearchRequestParams;
 import org.codelibs.fess.helper.QueryHelper;
 import org.codelibs.fess.util.ComponentUtil;
+import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
 
 /**
  * @author codelibs
  * @author Keiichi Watanabe
  */
 //public class SearchListForm implements Serializable {
-public class SearchListForm implements SearchRequestParams, Serializable {
+public class ListForm implements SearchRequestParams, Serializable {
 
     private static final long serialVersionUID = 1L;
 
-    //@Maxbytelength(maxbytelength = 1000)
+    @Size(max = 1000)
     public String query;
 
     public String sort;
 
-    //@Digits(integer=10, fraction=0)
-    public String start;
+    @ValidateTypeFailure
+    public Integer start;
 
-    //@Digits(integer=10, fraction=0)
-    public String pn;
+    @ValidateTypeFailure
+    public Integer pn;
 
-    //@Digits(integer=10, fraction=0)
-    public String num;
+    @ValidateTypeFailure
+    public Integer num;
 
     public String[] lang;
 
-    //@Required(target = "confirmDelete,delete")
+    // @Required
     public String docId;
 
-    //@Required(target = "confirmDelete")
+    // @Required
     public String url;
 
     @Override
@@ -66,7 +68,7 @@ public class SearchListForm implements SearchRequestParams, Serializable {
 
     public String additional[];
 
-    //@Maxbytelength(maxbytelength = 10)
+    @Size(max = 10)
     public String op;
 
     @Override
@@ -92,51 +94,24 @@ public class SearchListForm implements SearchRequestParams, Serializable {
 
     public FacetInfo facet;
 
-    private int startPosition = -1;
-
-    private int pageSize = -1;
-
     @Override
     public int getStartPosition() {
-        if (startPosition != -1) {
-            return startPosition;
-        }
-
-        final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
-        if (StringUtil.isBlank(start)) {
-            startPosition = queryHelper.getDefaultStart();
-        } else {
-            try {
-                startPosition = Integer.parseInt(start);
-            } catch (final NumberFormatException e) {
-                startPosition = queryHelper.getDefaultStart();
-            }
+        if (start == null) {
+            start = ComponentUtil.getQueryHelper().getDefaultStart();
         }
-        start = String.valueOf(startPosition);
-        return startPosition;
+        return start;
     }
 
     @Override
     public int getPageSize() {
-        if (pageSize != -1) {
-            return pageSize;
-        }
-
         final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
-        if (StringUtil.isBlank(num)) {
-            pageSize = queryHelper.getDefaultPageSize();
-        } else {
-            try {
-                pageSize = Integer.parseInt(num);
-                if (pageSize > queryHelper.getMaxPageSize() || pageSize <= 0) {
-                    pageSize = queryHelper.getMaxPageSize();
-                }
-            } catch (final NumberFormatException e) {
-                pageSize = queryHelper.getDefaultPageSize();
-            }
+        if (num == null) {
+            num = queryHelper.getDefaultPageSize();
         }
-        num = String.valueOf(pageSize);
-        return pageSize;
+        if (num > queryHelper.getMaxPageSize() || num <= 0) {
+            num = queryHelper.getMaxPageSize();
+        }
+        return num;
     }
 
     @Override
@@ -158,4 +133,17 @@ public class SearchListForm implements SearchRequestParams, Serializable {
     public String getSort() {
         return sort;
     }
+
+    public void initialize() {
+        final QueryHelper queryHelper = ComponentUtil.getQueryHelper();
+        if (start == null) {
+            start = queryHelper.getDefaultStart();
+        }
+        if (num == null) {
+            num = queryHelper.getDefaultPageSize();
+        } else if (num > queryHelper.getMaxPageSize()) {
+            num = queryHelper.getMaxPageSize();
+        }
+    }
+
 }

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/suggestbadword/AdminSuggestbadwordAction.java

@@ -224,7 +224,6 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createSuggestBadWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestBadWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -238,7 +237,6 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createSuggestBadWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestBadWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -320,27 +318,20 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<SuggestBadWord> createSuggestBadWord(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<SuggestBadWord> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final SuggestBadWord entity = new SuggestBadWord();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new SuggestBadWord()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return suggestBadWordService.getSuggestBadWord(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return suggestBadWordService.getSuggestBadWord(((EditForm) form).id);
             }
             break;
         default:
@@ -349,6 +340,17 @@ public class AdminSuggestbadwordAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<SuggestBadWord> createSuggestBadWord(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/suggestelevateword/AdminSuggestelevatewordAction.java

@@ -224,7 +224,6 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createSuggestElevateWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestElevateWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -238,7 +237,6 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createSuggestElevateWord(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             suggestElevateWordService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -320,27 +318,20 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<SuggestElevateWord> createSuggestElevateWord(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<SuggestElevateWord> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final SuggestElevateWord entity = new SuggestElevateWord();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new SuggestElevateWord()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return suggestElevateWordService.getSuggestElevateWord(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return suggestElevateWordService.getSuggestElevateWord(((EditForm) form).id);
             }
             break;
         default:
@@ -349,6 +340,17 @@ public class AdminSuggestelevatewordAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<SuggestElevateWord> createSuggestElevateWord(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     // ===================================================================================
     //                                                                        Small Helper
     //                                                                        ============

+ 15 - 15
src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java

@@ -203,8 +203,6 @@ public class AdminUserAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createUser(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude("crudMode", "password", "confirmPassword"));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             userService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -219,8 +217,6 @@ public class AdminUserAction extends FessAdminAction {
         validate(form, messages -> {}, toEditHtml());
         //verifyPassword(form);
         createUser(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude("crudMode", "password", "confirmPassword"));
-            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
             userService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -246,20 +242,11 @@ public class AdminUserAction extends FessAdminAction {
     //===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<User> createUser(final CreateForm form) {
+    private OptionalEntity<User> getEntity(final CreateForm form) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final User entity = new User();
-                sessionManager.getAttribute(TEMPORARY_PASSWORD, String.class).ifPresent(password -> {
-                    entity.setPassword(password);
-                });
-                return OptionalEntity.of(entity);
-            }
-            break;
-        case CrudMode.EDIT:
-            if (form instanceof EditForm) {
-                return userService.getUser(((EditForm) form).id).map(entity -> {
+                return OptionalEntity.of(new User()).map(entity -> {
                     sessionManager.getAttribute(TEMPORARY_PASSWORD, String.class).ifPresent(password -> {
                         entity.setPassword(password);
                     });
@@ -267,12 +254,25 @@ public class AdminUserAction extends FessAdminAction {
                 });
             }
             break;
+        case CrudMode.EDIT:
+            if (form instanceof EditForm) {
+                return userService.getUser(((EditForm) form).id);
+            }
+            break;
         default:
             break;
         }
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<User> createUser(final CreateForm form) {
+        return getEntity(form).map(entity -> {
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            entity.setId(Base64.getEncoder().encodeToString(entity.getName().getBytes(Constants.CHARSET_UTF_8)));
+            return entity;
+        });
+    }
+
     protected Map<String, String> createItem(final String label, final String value) {
         final Map<String, String> map = new HashMap<String, String>(2);
         map.put(Constants.ITEM_LABEL, label);

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/webauthentication/AdminWebauthenticationAction.java

@@ -194,7 +194,6 @@ public class AdminWebauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createWebAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -208,7 +207,6 @@ public class AdminWebauthenticationAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createWebAuthentication(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webAuthenticationService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -234,27 +232,20 @@ public class AdminWebauthenticationAction extends FessAdminAction {
     //===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<WebAuthentication> createWebAuthentication(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<WebAuthentication> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final WebAuthentication entity = new WebAuthentication();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new WebAuthentication()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return webAuthenticationService.getWebAuthentication(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return webAuthenticationService.getWebAuthentication(((EditForm) form).id);
             }
             break;
         default:
@@ -263,6 +254,17 @@ public class AdminWebauthenticationAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<WebAuthentication> createWebAuthentication(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerProtocolSchemeItems(final RenderData data) {
         final List<Map<String, String>> itemList = new ArrayList<Map<String, String>>();
         final Locale locale = LaRequestUtil.getRequest().getLocale();

+ 18 - 16
src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java

@@ -185,7 +185,6 @@ public class AdminWebconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.CREATE);
         validate(form, messages -> {}, toEditHtml());
         createWebConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudCreateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -199,7 +198,6 @@ public class AdminWebconfigAction extends FessAdminAction {
         verifyCrudMode(form.crudMode, CrudMode.EDIT);
         validate(form, messages -> {}, toEditHtml());
         createWebConfig(form).ifPresent(entity -> {
-            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
             webConfigService.store(entity);
             saveInfo(messages -> messages.addSuccessCrudUpdateCrudTable(GLOBAL));
         }).orElse(() -> {
@@ -225,27 +223,20 @@ public class AdminWebconfigAction extends FessAdminAction {
     // ===================================================================================
     //                                                                        Assist Logic
     //                                                                        ============
-    protected OptionalEntity<WebConfig> createWebConfig(final CreateForm form) {
-        final String username = systemHelper.getUsername();
-        final long currentTime = systemHelper.getCurrentTimeAsLong();
+    private OptionalEntity<WebConfig> getEntity(final CreateForm form, final String username, final long currentTime) {
         switch (form.crudMode) {
         case CrudMode.CREATE:
             if (form instanceof CreateForm) {
-                final WebConfig entity = new WebConfig();
-                entity.setCreatedBy(username);
-                entity.setCreatedTime(currentTime);
-                entity.setUpdatedBy(username);
-                entity.setUpdatedTime(currentTime);
-                return OptionalEntity.of(entity);
+                return OptionalEntity.of(new WebConfig()).map(entity -> {
+                    entity.setCreatedBy(username);
+                    entity.setCreatedTime(currentTime);
+                    return entity;
+                });
             }
             break;
         case CrudMode.EDIT:
             if (form instanceof EditForm) {
-                return webConfigService.getWebConfig(((EditForm) form).id).map(entity -> {
-                    entity.setUpdatedBy(username);
-                    entity.setUpdatedTime(currentTime);
-                    return entity;
-                });
+                return webConfigService.getWebConfig(((EditForm) form).id);
             }
             break;
         default:
@@ -254,6 +245,17 @@ public class AdminWebconfigAction extends FessAdminAction {
         return OptionalEntity.empty();
     }
 
+    protected OptionalEntity<WebConfig> createWebConfig(final CreateForm form) {
+        final String username = systemHelper.getUsername();
+        final long currentTime = systemHelper.getCurrentTimeAsLong();
+        return getEntity(form, username, currentTime).map(entity -> {
+            entity.setUpdatedBy(username);
+            entity.setUpdatedTime(currentTime);
+            copyBeanToBean(form, entity, op -> op.exclude(Constants.COMMON_CONVERSION_RULE));
+            return entity;
+        });
+    }
+
     protected void registerRolesAndLabels(final RenderData data) {
         data.register("roleTypeItems", roleTypeService.getRoleTypeList());
         data.register("labelTypeItems", labelTypeService.getLabelTypeList());

+ 6 - 6
src/main/java/org/codelibs/fess/mylasta/action/FessLabels.java

@@ -3029,13 +3029,13 @@ public class FessLabels extends ActionMessages {
     public static final String LABELS_dict_synonym_link_create = "{labels.dict_synonym_link_create}";
 
     /** The key of the message: Edit */
-    public static final String LABELS_dict_synonym_link_update = "{labels.dict_synonym_link_update}";
+    public static final String LABELS_dict_synonym_link_edit = "{labels.dict_synonym_link_edit}";
 
     /** The key of the message: Delete */
     public static final String LABELS_dict_synonym_link_delete = "{labels.dict_synonym_link_delete}";
 
-    /** The key of the message: Confirm */
-    public static final String LABELS_dict_synonym_link_confirm = "{labels.dict_synonym_link_confirm}";
+    /** The key of the message: Details */
+    public static final String LABELS_dict_synonym_link_details = "{labels.dict_synonym_link_details}";
 
     /** The key of the message: Download */
     public static final String LABELS_dict_synonym_link_download = "{labels.dict_synonym_link_download}";
@@ -3089,13 +3089,13 @@ public class FessLabels extends ActionMessages {
     public static final String LABELS_dict_kuromoji_link_create = "{labels.dict_kuromoji_link_create}";
 
     /** The key of the message: Edit */
-    public static final String LABELS_dict_kuromoji_link_update = "{labels.dict_kuromoji_link_update}";
+    public static final String LABELS_dict_kuromoji_link_edit = "{labels.dict_kuromoji_link_edit}";
 
     /** The key of the message: Delete */
     public static final String LABELS_dict_kuromoji_link_delete = "{labels.dict_kuromoji_link_delete}";
 
-    /** The key of the message: Confirm */
-    public static final String LABELS_dict_kuromoji_link_confirm = "{labels.dict_kuromoji_link_confirm}";
+    /** The key of the message: Details */
+    public static final String LABELS_dict_kuromoji_link_details = "{labels.dict_kuromoji_link_details}";
 
     /** The key of the message: Download */
     public static final String LABELS_dict_kuromoji_link_download = "{labels.dict_kuromoji_link_download}";

+ 4 - 4
src/main/resources/fess_label.properties

@@ -1032,9 +1032,9 @@ labels.dict_synonym_configuration=Synonym List
 labels.dict_synonym_title=Synonym List
 labels.dict_synonym_list_link=List
 labels.dict_synonym_link_create=Create New
-labels.dict_synonym_link_update=Edit
+labels.dict_synonym_link_edit=Edit
 labels.dict_synonym_link_delete=Delete
-labels.dict_synonym_link_confirm=Confirm
+labels.dict_synonym_link_details=Details
 labels.dict_synonym_link_download=Download
 labels.dict_synonym_link_upload=Upload
 labels.dict_synonym_source=Source
@@ -1052,9 +1052,9 @@ labels.dict_kuromoji_configuration=Kuromoji List
 labels.dict_kuromoji_title=Kuromoji List
 labels.dict_kuromoji_list_link=List
 labels.dict_kuromoji_link_create=Create New
-labels.dict_kuromoji_link_update=Edit
+labels.dict_kuromoji_link_edit=Edit
 labels.dict_kuromoji_link_delete=Delete
-labels.dict_kuromoji_link_confirm=Confirm
+labels.dict_kuromoji_link_details=Details
 labels.dict_kuromoji_link_download=Download
 labels.dict_kuromoji_link_upload=Upload
 labels.dict_kuromoji_token=Token

+ 13 - 14
src/main/webapp/WEB-INF/view/admin/dict/index.jsp

@@ -2,7 +2,8 @@
 <html>
 <head>
 <meta charset="UTF-8">
-<title><la:message key="labels.admin_brand_title"/> | <la:message key="labels.dict_configuration" /></title>
+<title><la:message key="labels.admin_brand_title" /> | <la:message
+		key="labels.dict_configuration" /></title>
 <jsp:include page="/WEB-INF/view/common/admin/head.jsp"></jsp:include>
 </head>
 <body class="skin-blue sidebar-mini">
@@ -12,39 +13,36 @@
 			<jsp:param name="menuCategoryType" value="system" />
 			<jsp:param name="menuType" value="dict" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-				<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.dict_list_title" />
 				</h1>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:message key="labels.dict_synonym_list_link" /></li>
+				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<h3 class="box-title">
 									<la:message key="labels.dict_list_link" />
 								</h3>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>
 									<la:info id="msg" message="true">
-										<div class="alert alert-info">
-											${msg}
-										</div>
+										<div class="alert alert-info">${msg}</div>
 									</la:info>
 									<la:errors />
 								</div>
-
 								<%-- List --%>
 								<c:if test="${fn:length(dictFiles) == 0}">
 									<p class="callout callout-info">
@@ -62,8 +60,9 @@
 										<tbody>
 											<c:forEach var="data" varStatus="s" items="${dictFiles}">
 												<tr class="${s.index % 2 == 0 ? 'row1' : 'row2'}">
-														<td>${f:h(data.type)}</td>
-														<td><la:link href="${f:h(data.type)}/?dictId=${f:h(data.id)}">${f:h(data.path)}</la:link></td>
+													<td>${f:h(data.type)}</td>
+													<td><la:link
+															href="${f:h(data.type)}/?dictId=${f:h(data.id)}">${f:h(data.path)}</la:link></td>
 												</tr>
 											</c:forEach>
 										</tbody>

+ 17 - 4
src/main/webapp/WEB-INF/view/admin/dict/kuromoji/details.jsp

@@ -18,7 +18,15 @@
 				<h1>
 					<la:message key="labels.dict_kuromoji_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_kuromoji_list_link" />
+						</la:link></li>
+					<li class="active"><la:message key="labels.dict_kuromoji_link_details" /></li>
+				</ol>
 			</section>
 			<section class="content">
 				<la:form>
@@ -38,33 +46,38 @@
 											<la:message key="labels.dict_kuromoji_link_create" />
 										</c:if>
 										<c:if test="${crudMode == 2}">
-											<la:message key="labels.dict_kuromoji_link_update" />
+											<la:message key="labels.dict_kuromoji_link_edit" />
 										</c:if>
 										<c:if test="${crudMode == 3}">
 											<la:message key="labels.dict_kuromoji_link_delete" />
 										</c:if>
 										<c:if test="${crudMode == 4}">
-											<la:message key="labels.dict_kuromoji_link_confirm" />
+											<la:message key="labels.dict_kuromoji_link_details" />
 										</c:if>
 									</h3>
 									<div class="btn-group pull-right">
 										<la:link href="../" styleClass="btn btn-default btn-xs">
+											<i class="fa fa-book"></i>
 											<la:message key="labels.dict_list_link" />
 										</la:link>
 										<la:link href="list/1?dictId=${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-th-list"></i>
 											<la:message key="labels.dict_kuromoji_list_link" />
 										</la:link>
-										<la:link href="createpage/${f:u(dictId)}"
+										<la:link href="createnew/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-plus"></i>
 											<la:message key="labels.dict_kuromoji_link_create" />
 										</la:link>
 										<la:link href="downloadpage/${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-download"></i>
 											<la:message key="labels.dict_kuromoji_link_download" />
 										</la:link>
 										<la:link href="uploadpage/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-upload"></i>
 											<la:message key="labels.dict_kuromoji_link_upload" />
 										</la:link>
 									</div>

+ 20 - 20
src/main/webapp/WEB-INF/view/admin/dict/kuromoji/download.jsp

@@ -13,54 +13,57 @@
 			<jsp:param name="menuCategoryType" value="system" />
 			<jsp:param name="menuType" value="dict" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.dict_kuromoji_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
 				<ol class="breadcrumb">
-					<li class="active"><la:link href="list/0?dictId=${dictId}">
-							<la:message key="labels.dict_kuromoji_link_download" />
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
 						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_kuromoji_list_link" />
+						</la:link></li>
+					<li class="active"><la:message
+							key="labels.dict_kuromoji_link_download" /></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<h3 class="box-title">
 									<la:message key="labels.dict_kuromoji_link_download" />
 								</h3>
 								<div class="btn-group pull-right">
-									<la:link href="/admin/dict" styleClass="btn btn-primary btn-xs">
+									<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
+										<i class="fa fa-book"></i>
 										<la:message key="labels.dict_list_link" />
 									</la:link>
 									<la:link href="list/0/?dictId=${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-th-list"></i>
 										<la:message key="labels.dict_kuromoji_list_link" />
 									</la:link>
-									<la:link href="createpage/${f:u(dictId)}"
-										styleClass="btn btn-create btn-xs">
+									<la:link href="createnew/${f:u(dictId)}"
+										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-plus"></i>
 										<la:message key="labels.dict_kuromoji_link_create" />
 									</la:link>
 									<la:link href="#" styleClass="btn btn-primary btn-xs disabled">
+										<i class="fa fa-download"></i>
 										<la:message key="labels.dict_kuromoji_link_download" />
 									</la:link>
 									<la:link href="uploadpage/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-upload"></i>
 										<la:message key="labels.dict_kuromoji_link_upload" />
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>
@@ -69,9 +72,7 @@
 									</la:info>
 									<la:errors />
 								</div>
-
-								<%-- Edit Form: BEGIN --%>
-								<la:form target="_blank">
+								<la:form>
 									<div>
 										<la:hidden property="dictId" />
 										<table class="table table-bordered table-striped">
@@ -82,6 +83,7 @@
 														<button type="submit" class="btn btn-primary"
 															name="download"
 															value="<la:message key="labels.dict_kuromoji_button_download" />">
+															<i class="fa fa-download"></i>
 															<la:message key="labels.dict_kuromoji_button_download" />
 														</button>
 													</td>
@@ -90,16 +92,14 @@
 										</table>
 									</div>
 								</la:form>
-								<%-- Edit Form: END --%>
-
 							</div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 22 - 2
src/main/webapp/WEB-INF/view/admin/dict/kuromoji/edit.jsp

@@ -18,6 +18,21 @@
 				<h1>
 					<la:message key="labels.dict_kuromoji_title" />
 				</h1>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_kuromoji_list_link" />
+						</la:link></li>
+					<c:if test="${crudMode == 1}">
+						<li class="active"><la:message
+								key="labels.dict_synonym_link_create" /></li>
+					</c:if>
+					<c:if test="${crudMode == 2}">
+						<li class="active"><la:message key="labels.dict_synonym_link_edit" /></li>
+					</c:if>
+				</ol>
 			</section>
 			<section class="content">
 				<la:form styleClass="form-horizontal">
@@ -37,27 +52,32 @@
 											<la:message key="labels.dict_kuromoji_link_create" />
 										</c:if>
 										<c:if test="${crudMode == 2}">
-											<la:message key="labels.dict_kuromoji_link_update" />
+											<la:message key="labels.dict_kuromoji_link_edit" />
 										</c:if>
 									</h3>
 									<div class="btn-group pull-right">
 										<la:link href="../" styleClass="btn btn-default btn-xs">
+											<i class="fa fa-book"></i>
 											<la:message key="labels.dict_list_link" />
 										</la:link>
 										<la:link href="list/1?dictId=${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-th-list"></i>
 											<la:message key="labels.dict_kuromoji_list_link" />
 										</la:link>
-										<la:link href="createpage/${f:u(dictId)}"
+										<la:link href="createnew/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-plus"></i>
 											<la:message key="labels.dict_kuromoji_link_create" />
 										</la:link>
 										<la:link href="downloadpage/${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-download"></i>
 											<la:message key="labels.dict_kuromoji_link_download" />
 										</la:link>
 										<la:link href="uploadpage/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-upload"></i>
 											<la:message key="labels.dict_kuromoji_link_upload" />
 										</la:link>
 									</div>

+ 12 - 2
src/main/webapp/WEB-INF/view/admin/dict/kuromoji/index.jsp

@@ -18,7 +18,12 @@
 				<h1>
 					<la:message key="labels.dict_kuromoji_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:message key="labels.dict_kuromoji_list_link" /></li>
+				</ol>
 			</section>
 			<section class="content">
 				<div class="row">
@@ -31,22 +36,27 @@
 								</h3>
 								<div class="btn-group pull-right">
 									<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
+										<i class="fa fa-book"></i>
 										<la:message key="labels.dict_list_link" />
 									</la:link>
 									<la:link href="list/1?dictId=${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-th-list"></i>
 										<la:message key="labels.dict_kuromoji_list_link" />
 									</la:link>
-									<la:link href="createpage/${f:u(dictId)}"
+									<la:link href="createnew/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-plus"></i>
 										<la:message key="labels.dict_kuromoji_link_create" />
 									</la:link>
 									<la:link href="downloadpage/${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-download"></i>
 										<la:message key="labels.dict_kuromoji_link_download" />
 									</la:link>
 									<la:link href="uploadpage/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-upload"></i>
 										<la:message key="labels.dict_kuromoji_link_upload" />
 									</la:link>
 								</div>

+ 23 - 23
src/main/webapp/WEB-INF/view/admin/dict/kuromoji/upload.jsp

@@ -13,54 +13,57 @@
 			<jsp:param name="menuCategoryType" value="system" />
 			<jsp:param name="menuType" value="dict" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.dict_kuromoji_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
 				<ol class="breadcrumb">
-					<li class="active"><la:link href="list/0?dictId=${dictId}">
-							<la:message key="labels.dict_kuromoji_link_upload" />
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
 						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_kuromoji_list_link" />
+						</la:link></li>
+					<li class="active"><la:message
+							key="labels.dict_kuromoji_link_upload" /></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<h3 class="box-title">
 									<la:message key="labels.dict_kuromoji_link_upload" />
 								</h3>
 								<div class="btn-group pull-right">
-									<la:link href="/admin/dict" styleClass="btn btn-primary btn-xs">
+									<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
+										<i class="fa fa-book"></i>
 										<la:message key="labels.dict_list_link" />
 									</la:link>
 									<la:link href="list/0/?dictId=${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-th-list"></i>
 										<la:message key="labels.dict_kuromoji_list_link" />
 									</la:link>
-									<la:link href="createpage/${f:u(dictId)}"
-										styleClass="btn btn-create btn-xs">
+									<la:link href="createnew/${f:u(dictId)}"
+										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-plus"></i>
 										<la:message key="labels.dict_kuromoji_link_create" />
 									</la:link>
-									<la:link href="#" styleClass="btn btn-primary btn-xs">
+									<la:link href="downloadpage/${f:u(dictId)}"
+										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-download"></i>
 										<la:message key="labels.dict_kuromoji_link_download" />
 									</la:link>
-									<la:link href="uploadpage/${f:u(dictId)}"
-										styleClass="btn btn-success btn-xs disabled">
+									<la:link href="#" styleClass="btn btn-success btn-xs disabled">
+										<i class="fa fa-upload"></i>
 										<la:message key="labels.dict_kuromoji_link_upload" />
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>
@@ -69,8 +72,6 @@
 									</la:info>
 									<la:errors />
 								</div>
-
-								<%-- Edit Form: BEGIN --%>
 								<la:form action="upload" enctype="multipart/form-data">
 									<div>
 										<la:hidden property="dictId" />
@@ -87,9 +88,10 @@
 											<tfoot>
 												<tr>
 													<td colspan="2">
-														<button type="submit" class="btn btn-primary"
+														<button type="submit" class="btn btn-success"
 															name="upload"
 															value="<la:message key="labels.dict_kuromoji_button_upload" />">
+															<i class="fa fa-upload"></i>
 															<la:message key="labels.dict_kuromoji_button_upload" />
 														</button>
 													</td>
@@ -98,16 +100,14 @@
 										</table>
 									</div>
 								</la:form>
-								<%-- Edit Form: END --%>
-
 							</div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 17 - 4
src/main/webapp/WEB-INF/view/admin/dict/synonym/details.jsp

@@ -18,7 +18,15 @@
 				<h1>
 					<la:message key="labels.dict_synonym_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_synonym_list_link" />
+						</la:link></li>
+					<li class="active"><la:message key="labels.dict_synonym_link_details" /></li>
+				</ol>
 			</section>
 			<section class="content">
 				<la:form>
@@ -38,34 +46,39 @@
 											<la:message key="labels.dict_synonym_link_create" />
 										</c:if>
 										<c:if test="${crudMode == 2}">
-											<la:message key="labels.dict_synonym_link_update" />
+											<la:message key="labels.dict_synonym_link_edit" />
 										</c:if>
 										<c:if test="${crudMode == 3}">
 											<la:message key="labels.dict_synonym_link_delete" />
 										</c:if>
 										<c:if test="${crudMode == 4}">
-											<la:message key="labels.dict_synonym_link_confirm" />
+											<la:message key="labels.dict_synonym_link_details" />
 										</c:if>
 									</h3>
 									<div class="btn-group pull-right">
 										<la:link href="/admin/dict"
 											styleClass="btn btn-default btn-xs">
+											<i class="fa fa-book"></i>
 											<la:message key="labels.dict_list_link" />
 										</la:link>
 										<la:link href="list/1?dictId=${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-th-list"></i>
 											<la:message key="labels.dict_synonym_list_link" />
 										</la:link>
-										<la:link href="createpage/${f:u(dictId)}"
+										<la:link href="createnew/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-plus"></i>
 											<la:message key="labels.dict_synonym_link_create" />
 										</la:link>
 										<la:link href="downloadpage/${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-download"></i>
 											<la:message key="labels.dict_synonym_link_download" />
 										</la:link>
 										<la:link href="uploadpage/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-upload"></i>
 											<la:message key="labels.dict_synonym_link_upload" />
 										</la:link>
 									</div>

+ 20 - 20
src/main/webapp/WEB-INF/view/admin/dict/synonym/download.jsp

@@ -13,54 +13,57 @@
 			<jsp:param name="menuCategoryType" value="system" />
 			<jsp:param name="menuType" value="dict" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.dict_synonym_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
 				<ol class="breadcrumb">
-					<li class="active"><la:link href="list/0?dictId=${dictId}">
-							<la:message key="labels.dict_synonym_link_download" />
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
 						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_synonym_list_link" />
+						</la:link></li>
+					<li class="active"><la:message
+							key="labels.dict_synonym_link_download" /></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<h3 class="box-title">
 									<la:message key="labels.dict_synonym_link_download" />
 								</h3>
 								<div class="btn-group pull-right">
-									<la:link href="/admin/dict" styleClass="btn btn-primary btn-xs">
+									<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
+										<i class="fa fa-book"></i>
 										<la:message key="labels.dict_list_link" />
 									</la:link>
 									<la:link href="list/0/?dictId=${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-th-list"></i>
 										<la:message key="labels.dict_synonym_list_link" />
 									</la:link>
-									<la:link href="createpage/${f:u(dictId)}"
-										styleClass="btn btn-create btn-xs">
+									<la:link href="createnew/${f:u(dictId)}"
+										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-plus"></i>
 										<la:message key="labels.dict_synonym_link_create" />
 									</la:link>
 									<la:link href="#" styleClass="btn btn-primary btn-xs disabled">
+										<i class="fa fa-download"></i>
 										<la:message key="labels.dict_synonym_link_download" />
 									</la:link>
 									<la:link href="uploadpage/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-upload"></i>
 										<la:message key="labels.dict_synonym_link_upload" />
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>
@@ -69,9 +72,7 @@
 									</la:info>
 									<la:errors />
 								</div>
-
-								<%-- Edit Form: BEGIN --%>
-								<la:form target="_blank">
+								<la:form>
 									<div>
 										<la:hidden property="dictId" />
 										<table class="table table-bordered table-striped">
@@ -82,6 +83,7 @@
 														<button type="submit" class="btn btn-primary"
 															name="download"
 															value="<la:message key="labels.dict_synonym_button_download" />">
+															<i class="fa fa-download"></i>
 															<la:message key="labels.dict_synonym_button_download" />
 														</button>
 													</td>
@@ -90,16 +92,14 @@
 										</table>
 									</div>
 								</la:form>
-								<%-- Edit Form: BEGIN --%>
-
 							</div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 22 - 2
src/main/webapp/WEB-INF/view/admin/dict/synonym/edit.jsp

@@ -18,6 +18,21 @@
 				<h1>
 					<la:message key="labels.dict_synonym_title" />
 				</h1>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_synonym_list_link" />
+						</la:link></li>
+					<c:if test="${crudMode == 1}">
+						<li class="active"><la:message
+								key="labels.dict_synonym_link_create" /></li>
+					</c:if>
+					<c:if test="${crudMode == 2}">
+						<li class="active"><la:message key="labels.dict_synonym_link_edit" /></li>
+					</c:if>
+				</ol>
 			</section>
 			<section class="content">
 				<la:form styleClass="form-horizontal">
@@ -37,27 +52,32 @@
 											<la:message key="labels.dict_synonym_link_create" />
 										</c:if>
 										<c:if test="${crudMode == 2}">
-											<la:message key="labels.dict_synonym_link_update" />
+											<la:message key="labels.dict_synonym_link_edit" />
 										</c:if>
 									</h3>
 									<div class="btn-group pull-right">
 										<la:link href="../" styleClass="btn btn-default btn-xs">
+											<i class="fa fa-book"></i>
 											<la:message key="labels.dict_list_link" />
 										</la:link>
 										<la:link href="list/1?dictId=${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-th-list"></i>
 											<la:message key="labels.dict_synonym_list_link" />
 										</la:link>
-										<la:link href="createpage/${f:u(dictId)}"
+										<la:link href="createnew/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-plus"></i>
 											<la:message key="labels.dict_synonym_link_create" />
 										</la:link>
 										<la:link href="downloadpage/${f:u(dictId)}"
 											styleClass="btn btn-primary btn-xs">
+											<i class="fa fa-download"></i>
 											<la:message key="labels.dict_synonym_link_download" />
 										</la:link>
 										<la:link href="uploadpage/${f:u(dictId)}"
 											styleClass="btn btn-success btn-xs">
+											<i class="fa fa-upload"></i>
 											<la:message key="labels.dict_synonym_link_upload" />
 										</la:link>
 									</div>

+ 13 - 4
src/main/webapp/WEB-INF/view/admin/dict/synonym/index.jsp

@@ -18,40 +18,49 @@
 				<h1>
 					<la:message key="labels.dict_synonym_title" />
 				</h1>
-				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
+				<ol class="breadcrumb">
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
+						</la:link></li>
+					<li><la:message key="labels.dict_synonym_list_link" /></li>
+				</ol>
 			</section>
 			<section class="content">
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<h3 class="box-title">
 									<la:message key="labels.dict_synonym_list_link" />
 								</h3>
 								<div class="btn-group pull-right">
 									<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
+										<i class="fa fa-book"></i>
 										<la:message key="labels.dict_list_link" />
 									</la:link>
 									<la:link href="list/1?dictId=${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-th-list"></i>
 										<la:message key="labels.dict_synonym_list_link" />
 									</la:link>
-									<la:link href="createpage/${f:u(dictId)}"
+									<la:link href="createnew/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-plus"></i>
 										<la:message key="labels.dict_synonym_link_create" />
 									</la:link>
 									<la:link href="downloadpage/${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-download"></i>
 										<la:message key="labels.dict_synonym_link_download" />
 									</la:link>
 									<la:link href="uploadpage/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-upload"></i>
 										<la:message key="labels.dict_synonym_link_upload" />
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>

+ 20 - 19
src/main/webapp/WEB-INF/view/admin/dict/synonym/upload.jsp

@@ -13,54 +13,58 @@
 			<jsp:param name="menuCategoryType" value="system" />
 			<jsp:param name="menuType" value="dict" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.dict_synonym_title" />
 				</h1>
 				<jsp:include page="/WEB-INF/view/common/admin/crud/breadcrumb.jsp"></jsp:include>
 				<ol class="breadcrumb">
-					<li class="active"><la:link href="list/0?dictId=${dictId}">
-							<la:message key="labels.dict_synonym_link_upload" />
+					<li><la:link href="list">
+							<la:message key="labels.dict_list_link" />
 						</la:link></li>
+					<li><la:link href="list/0/?dictId=${f:u(dictId)}">
+							<la:message key="labels.dict_synonym_list_link" />
+						</la:link></li>
+					<li class="active"><la:message
+							key="labels.dict_synonym_link_upload" /></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<h3 class="box-title">
 									<la:message key="labels.dict_synonym_link_upload" />
 								</h3>
 								<div class="btn-group pull-right">
-									<la:link href="/admin/dict" styleClass="btn btn-primary btn-xs">
+									<la:link href="/admin/dict" styleClass="btn btn-default btn-xs">
+										<i class="fa fa-book"></i>
 										<la:message key="labels.dict_list_link" />
 									</la:link>
 									<la:link href="list/0/?dictId=${f:u(dictId)}"
 										styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-th-list"></i>
 										<la:message key="labels.dict_synonym_list_link" />
 									</la:link>
-									<la:link href="createpage/${f:u(dictId)}"
-										styleClass="btn btn-create btn-xs">
+									<la:link href="createnew/${f:u(dictId)}"
+										styleClass="btn btn-success btn-xs">
+										<i class="fa fa-plus"></i>
 										<la:message key="labels.dict_synonym_link_create" />
 									</la:link>
 									<la:link href="#" styleClass="btn btn-primary btn-xs">
+										<i class="fa fa-download"></i>
 										<la:message key="labels.dict_synonym_link_download" />
 									</la:link>
 									<la:link href="uploadpage/${f:u(dictId)}"
 										styleClass="btn btn-success btn-xs disabled">
+										<i class="fa fa-upload"></i>
 										<la:message key="labels.dict_synonym_link_upload" />
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>
@@ -69,8 +73,6 @@
 									</la:info>
 									<la:errors />
 								</div>
-
-								<%-- Edit Form: BEGIN --%>
 								<la:form action="upload" enctype="multipart/form-data">
 									<div>
 										<la:hidden property="dictId" />
@@ -87,9 +89,10 @@
 											<tfoot>
 												<tr>
 													<td colspan="2">
-														<button type="submit" class="btn btn-primary"
+														<button type="submit" class="btn btn-success"
 															name="upload"
 															value="<la:message key="labels.dict_synonym_button_upload" />">
+															<i class="fa fa-upload"></i>
 															<la:message key="labels.dict_synonym_button_upload" />
 														</button>
 													</td>
@@ -98,16 +101,14 @@
 										</table>
 									</div>
 								</la:form>
-								<%-- Edit Form: BEGIN --%>
-
 							</div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 8 - 8
src/main/webapp/WEB-INF/view/admin/failureurl/index.jsp

@@ -41,33 +41,33 @@
 								</div>
 								<la:form styleClass="form-horizontal">
 									<div class="form-group">
-										<label for="searchParams.url" class="col-sm-2 control-label"><la:message
+										<label for="url" class="col-sm-2 control-label"><la:message
 												key="labels.failure_url_search_url" /></label>
 										<div class="col-sm-10">
-											<la:text property="searchParams.url"
+											<la:text property="url"
 												styleClass="form-control"></la:text>
 										</div>
 									</div>
 									<div class="form-group row">
-										<label for="searchParams.errorCountMin"
+										<label for="errorCountMin"
 											class="col-sm-2 control-label"><la:message
 												key="labels.failure_url_search_error_count" /></label>
 										<div class="col-xs-2">
-											<la:text property="searchParams.errorCountMin" size="2"
+											<la:text property="errorCountMin" size="2"
 												styleClass="form-control"></la:text>
 										</div>
 										<div class="pull-left">-</div>
 										<div class="col-xs-2">
-											<la:text property="searchParams.errorCountMax" size="2"
+											<la:text property="errorCountMax" size="2"
 												styleClass="form-control"></la:text>
 										</div>
 									</div>
 									<div class="form-group">
-										<label for="searchParams.errorName"
+										<label for="errorName"
 											class="col-sm-2 control-label"><la:message
 												key="labels.failure_url_search_error_name" /></label>
 										<div class="col-sm-10">
-											<la:text property="searchParams.errorName"
+											<la:text property="errorName"
 												styleClass="form-control"></la:text>
 										</div>
 									</div>
@@ -78,7 +78,7 @@
 												<i class="fa fa-search"></i>
 												<la:message key="labels.crud_button_search" />
 											</button>
-											<button type="reset" class="btn btn-secondary" name="reset"
+											<button type="submit" class="btn btn-secondary" name="reset"
 												value="<la:message key="labels.crud_button_reset" />">
 												<la:message key="labels.crud_button_reset" />
 											</button>

+ 4 - 13
src/main/webapp/WEB-INF/view/admin/suggestbadword/download.jsp

@@ -13,10 +13,7 @@
 			<jsp:param name="menuCategoryType" value="suggest" />
 			<jsp:param name="menuType" value="suggestBadWord" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.suggest_bad_word_configuration" />
@@ -30,13 +27,10 @@
 								key="labels.suggest_bad_word_link_download" /></a></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<jsp:include page="/WEB-INF/view/common/admin/crud/header.jsp"></jsp:include>
 								<div class="btn-group pull-right">
@@ -44,7 +38,7 @@
 										styleClass="btn btn-default btn-xs">
 										<la:message key="labels.suggest_bad_word_link_list" />
 									</la:link>
-									<la:link href="createpage" styleClass="btn btn-success btn-xs">
+									<la:link href="createnew" styleClass="btn btn-success btn-xs">
 										<la:message key="labels.suggest_bad_word_link_create_new" />
 									</la:link>
 									<la:link href="downloadpage"
@@ -56,7 +50,7 @@
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<la:form>
 									<table class="table table-bordered">
@@ -71,17 +65,14 @@
 										</tbody>
 									</table>
 								</la:form>
-
 							</div>
-							<%-- Box Footer --%>
-							<div class="box-footer"></div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 1 - 2
src/main/webapp/WEB-INF/view/admin/suggestbadword/index.jsp

@@ -32,7 +32,7 @@
 										styleClass="btn btn-default btn-xs">
 										<la:message key="labels.suggest_bad_word_link_list" />
 									</la:link>
-									<la:link href="createpage" styleClass="btn btn-success btn-xs">
+									<la:link href="createnew" styleClass="btn btn-success btn-xs">
 										<la:message key="labels.suggest_bad_word_link_create_new" />
 									</la:link>
 									<la:link href="downloadpage"
@@ -44,7 +44,6 @@
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
 							<div class="box-body">
 								<%-- Message --%>
 								<div>

+ 4 - 7
src/main/webapp/WEB-INF/view/admin/suggestbadword/upload.jsp

@@ -44,7 +44,7 @@
 										styleClass="btn btn-default btn-xs">
 										<la:message key="labels.suggest_bad_word_link_list" />
 									</la:link>
-									<la:link href="createpage" styleClass="btn btn-success btn-xs">
+									<la:link href="createnew" styleClass="btn btn-success btn-xs">
 										<la:message key="labels.suggest_bad_word_link_create_new" />
 									</la:link>
 									<la:link href="downloadpage"
@@ -56,7 +56,7 @@
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<la:form action="upload" enctype="multipart/form-data">
 									<table class="table table-bordered">
@@ -79,17 +79,14 @@
 										</tfoot>
 									</table>
 								</la:form>
-
 							</div>
-							<%-- Box Footer --%>
-							<div class="box-footer"></div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 4 - 12
src/main/webapp/WEB-INF/view/admin/suggestelevateword/download.jsp

@@ -13,10 +13,7 @@
 			<jsp:param name="menuCategoryType" value="suggest" />
 			<jsp:param name="menuType" value="suggestElevateWord" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.suggest_elevate_word_configuration" />
@@ -30,9 +27,7 @@
 								key="labels.suggest_elevate_word_link_download" /></a></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
@@ -44,7 +39,7 @@
 										styleClass="btn btn-default btn-xs">
 										<la:message key="labels.suggest_elevate_word_link_list" />
 									</la:link>
-									<la:link href="createpage" styleClass="btn btn-success btn-xs">
+									<la:link href="createnew" styleClass="btn btn-success btn-xs">
 										<la:message key="labels.suggest_elevate_word_link_create_new" />
 									</la:link>
 									<la:link href="downloadpage"
@@ -56,7 +51,7 @@
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<la:form>
 									<table class="table table-bordered">
@@ -71,17 +66,14 @@
 										</tbody>
 									</table>
 								</la:form>
-
 							</div>
-							<%-- Box Footer --%>
-							<div class="box-footer"></div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 2 - 3
src/main/webapp/WEB-INF/view/admin/suggestelevateword/edit.jsp

@@ -33,7 +33,6 @@
 						<div class="col-md-12">
 							<div
 								class="box <c:if test="${crudMode == 1}">box-success</c:if><c:if test="${crudMode == 2}">box-warning</c:if>">
-								<%-- Box Header --%>
 								<div class="box-header with-border">
 									<jsp:include page="/WEB-INF/view/common/admin/crud/header.jsp"></jsp:include>
 									<div class="btn-group pull-right">
@@ -41,7 +40,7 @@
 											styleClass="btn btn-default btn-xs">
 											<la:message key="labels.suggest_elevate_word_link_list" />
 										</la:link>
-										<la:link href="createpage" styleClass="btn btn-success btn-xs">
+										<la:link href="createnew" styleClass="btn btn-success btn-xs">
 											<la:message key="labels.suggest_elevate_word_link_create_new" />
 										</la:link>
 										<la:link href="downloadpage"
@@ -53,7 +52,7 @@
 										</la:link>
 									</div>
 								</div>
-								<%-- Box Body --%>
+								<!-- /.box-header -->
 								<div class="box-body">
 									<%-- Message --%>
 									<div>

+ 2 - 3
src/main/webapp/WEB-INF/view/admin/suggestelevateword/index.jsp

@@ -24,7 +24,6 @@
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<jsp:include page="/WEB-INF/view/common/admin/crud/header.jsp"></jsp:include>
 								<div class="btn-group pull-right">
@@ -32,7 +31,7 @@
 										styleClass="btn btn-default btn-xs">
 										<la:message key="labels.suggest_elevate_word_link_list" />
 									</la:link>
-									<la:link href="createpage" styleClass="btn btn-success btn-xs">
+									<la:link href="createnew" styleClass="btn btn-success btn-xs">
 										<la:message key="labels.suggest_elevate_word_link_create_new" />
 									</la:link>
 									<la:link href="downloadpage"
@@ -44,7 +43,7 @@
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<%-- Message --%>
 								<div>

+ 4 - 13
src/main/webapp/WEB-INF/view/admin/suggestelevateword/upload.jsp

@@ -13,10 +13,7 @@
 			<jsp:param name="menuCategoryType" value="suggest" />
 			<jsp:param name="menuType" value="suggestElevateWord" />
 		</jsp:include>
-
 		<div class="content-wrapper">
-
-			<%-- Content Header --%>
 			<section class="content-header">
 				<h1>
 					<la:message key="labels.suggest_elevate_word_configuration" />
@@ -30,13 +27,10 @@
 								key="labels.suggest_elevate_word_link_upload" /></a></li>
 				</ol>
 			</section>
-
 			<section class="content">
-
 				<div class="row">
 					<div class="col-md-12">
 						<div class="box box-primary">
-							<%-- Box Header --%>
 							<div class="box-header with-border">
 								<jsp:include page="/WEB-INF/view/common/admin/crud/header.jsp"></jsp:include>
 								<div class="btn-group pull-right">
@@ -44,7 +38,7 @@
 										styleClass="btn btn-default btn-xs">
 										<la:message key="labels.suggest_elevate_word_link_list" />
 									</la:link>
-									<la:link href="createpage" styleClass="btn btn-success btn-xs">
+									<la:link href="createnew" styleClass="btn btn-success btn-xs">
 										<la:message key="labels.suggest_elevate_word_link_create_new" />
 									</la:link>
 									<la:link href="downloadpage"
@@ -56,7 +50,7 @@
 									</la:link>
 								</div>
 							</div>
-							<%-- Box Body --%>
+							<!-- /.box-header -->
 							<div class="box-body">
 								<la:form action="upload" enctype="multipart/form-data">
 									<table class="table table-bordered">
@@ -80,17 +74,14 @@
 										</tfoot>
 									</table>
 								</la:form>
-
 							</div>
-							<%-- Box Footer --%>
-							<div class="box-footer"></div>
+							<!-- /.box-body -->
 						</div>
+						<!-- /.box -->
 					</div>
 				</div>
-
 			</section>
 		</div>
-
 		<jsp:include page="/WEB-INF/view/common/admin/footer.jsp"></jsp:include>
 	</div>
 	<jsp:include page="/WEB-INF/view/common/admin/foot.jsp"></jsp:include>

+ 4 - 8
src/main/webapp/WEB-INF/view/common/admin/crud/breadcrumb.jsp

@@ -4,19 +4,15 @@
 			<la:message key="labels.crud_link_list" />
 		</la:link></li>
 	<c:if test="${crudMode == 1}">
-		<li class="active"><a href="#"><la:message
-					key="labels.crud_link_create" /></a></li>
+		<li class="active"><la:message key="labels.crud_link_create" /></li>
 	</c:if>
 	<c:if test="${crudMode == 2}">
-		<li class="active"><a href="#"><la:message
-					key="labels.crud_link_edit" /></a></li>
+		<li class="active"><la:message key="labels.crud_link_edit" /></li>
 	</c:if>
 	<c:if test="${crudMode == 3}">
-		<li class="active"><a href="#"><la:message
-					key="labels.crud_link_delete" /></a></li>
+		<li class="active"><la:message key="labels.crud_link_delete" /></li>
 	</c:if>
 	<c:if test="${crudMode == 4}">
-		<li class="active"><a href="#"><la:message
-					key="labels.crud_link_details" /></a></li>
+		<li class="active"><la:message key="labels.crud_link_details" /></li>
 	</c:if>
 </ol>