This commit is contained in:
Shinsuke Sugaya 2015-09-24 21:56:49 +09:00
parent a2c45560aa
commit f2eb979fea
21 changed files with 360 additions and 40 deletions

View file

@ -556,7 +556,7 @@
<dependency>
<groupId>org.codelibs.solr</groupId>
<artifactId>solrlib</artifactId>
<version>1.3.2</version>
<version>1.3.3-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.apache.httpcomponents</groupId>

View file

@ -25,6 +25,20 @@ import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.StringUtil;
import org.codelibs.sastruts.core.annotation.Token;
import org.codelibs.sastruts.core.exception.SSCActionMessagesException;
import org.codelibs.solr.lib.SolrGroupManager;
import org.codelibs.solr.lib.response.CoreReloadResponse;
import org.seasar.framework.beans.util.Beans;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.exception.ActionMessagesException;
import org.seasar.struts.util.ResponseUtil;
import jp.sf.fess.crud.CommonConstants;
import jp.sf.fess.crud.CrudMessageException;
import jp.sf.fess.crud.util.SAStrutsUtil;
@ -36,18 +50,6 @@ import jp.sf.fess.helper.SystemHelper;
import jp.sf.fess.pager.SynonymPager;
import jp.sf.fess.service.SynonymService;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.StringUtil;
import org.codelibs.sastruts.core.annotation.Token;
import org.codelibs.sastruts.core.exception.SSCActionMessagesException;
import org.seasar.framework.beans.util.Beans;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.exception.ActionMessagesException;
import org.seasar.struts.util.ResponseUtil;
public class SynonymAction {
private static final Log log = LogFactory.getLog(SynonymAction.class);
@ -65,10 +67,15 @@ public class SynonymAction {
@Resource
protected SystemHelper systemHelper;
@Resource
protected SolrGroupManager solrGroupManager;
public List<SynonymItem> synonymItemItems;
public String filename;
public String coreName;
public String getHelpLink() {
return systemHelper.getHelpLink("dict");
}
@ -330,7 +337,8 @@ public class SynonymAction {
throw new SSCActionMessagesException(
"errors.synonym_file_is_not_found");
}
filename = synonymFile.getSimpleName();
filename = synonymFile.getCoreName() + ":"
+ synonymFile.getSimpleName();
return "download.jsp";
}
@ -362,7 +370,8 @@ public class SynonymAction {
throw new SSCActionMessagesException(
"errors.synonym_file_is_not_found");
}
filename = synonymFile.getName();
filename = synonymFile.getCoreName() + ":"
+ synonymFile.getSimpleName();
return "upload.jsp";
}
@ -387,6 +396,40 @@ public class SynonymAction {
return "uploadpage?dictId=" + synonymForm.dictId + "&redirect=true";
}
@Token(save = true, validate = false)
@Execute(validator = false, input = "reloadpage")
public String reloadpage() {
final SynonymFile synonymFile = synonymService
.getSynonymFile(synonymForm.dictId);
if (synonymFile == null) {
throw new SSCActionMessagesException(
"errors.synonym_file_is_not_found");
}
coreName = synonymFile.getCoreName();
return "reload.jsp";
}
@Token(save = false, validate = true)
@Execute(validator = true, input = "reloadpage")
public String reload() {
final SynonymFile synonymFile = synonymService
.getSynonymFile(synonymForm.dictId);
if (synonymFile == null) {
throw new SSCActionMessagesException(
"errors.synonym_file_is_not_found");
}
CoreReloadResponse response = solrGroupManager.reloadCore(synonymFile
.getCoreName());
if (response.getStatus() == 0) {
SAStrutsUtil.addSessionMessage("success.reload_core");
} else {
throw new SSCActionMessagesException("errors.failed_to_reload_core");
}
return "reloadpage?dictId=" + synonymForm.dictId + "&redirect=true";
}
protected void loadSynonym() {
final SynonymItem synonymItem = synonymService.getSynonym(
@ -438,10 +481,12 @@ public class SynonymAction {
}
for (String value : values) {
if (value.indexOf(',') >= 0) {
throw new SSCActionMessagesException("errors.invalid_str_is_included", value, ",");
throw new SSCActionMessagesException(
"errors.invalid_str_is_included", value, ",");
}
if (value.indexOf("=>") >= 0) {
throw new SSCActionMessagesException("errors.invalid_str_is_included", value, "=>");
throw new SSCActionMessagesException(
"errors.invalid_str_is_included", value, "=>");
}
}
}

View file

@ -24,6 +24,19 @@ import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.StringUtil;
import org.codelibs.sastruts.core.annotation.Token;
import org.codelibs.sastruts.core.exception.SSCActionMessagesException;
import org.codelibs.solr.lib.SolrGroupManager;
import org.codelibs.solr.lib.response.CoreReloadResponse;
import org.seasar.framework.beans.util.Beans;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.exception.ActionMessagesException;
import org.seasar.struts.util.ResponseUtil;
import jp.sf.fess.crud.CommonConstants;
import jp.sf.fess.crud.CrudMessageException;
import jp.sf.fess.crud.util.SAStrutsUtil;
@ -35,17 +48,6 @@ import jp.sf.fess.helper.SystemHelper;
import jp.sf.fess.pager.UserDictPager;
import jp.sf.fess.service.UserDictService;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.StringUtil;
import org.codelibs.sastruts.core.annotation.Token;
import org.codelibs.sastruts.core.exception.SSCActionMessagesException;
import org.seasar.framework.beans.util.Beans;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.exception.ActionMessagesException;
import org.seasar.struts.util.ResponseUtil;
public class UserDictAction {
private static final Log log = LogFactory.getLog(UserDictAction.class);
@ -63,10 +65,15 @@ public class UserDictAction {
@Resource
protected SystemHelper systemHelper;
@Resource
protected SolrGroupManager solrGroupManager;
public List<UserDictItem> userDictItemItems;
public String filename;
public String coreName;
public String getHelpLink() {
return systemHelper.getHelpLink("dict");
}
@ -318,7 +325,8 @@ public class UserDictAction {
throw new SSCActionMessagesException(
"errors.userdict_file_is_not_found");
}
filename = userdictFile.getSimpleName();
filename = userdictFile.getCoreName() + ":"
+ userdictFile.getSimpleName();
return "download.jsp";
}
@ -350,7 +358,8 @@ public class UserDictAction {
throw new SSCActionMessagesException(
"errors.userdict_file_is_not_found");
}
filename = userdictFile.getName();
filename = userdictFile.getCoreName() + ":"
+ userdictFile.getSimpleName();
return "upload.jsp";
}
@ -375,6 +384,40 @@ public class UserDictAction {
return "uploadpage?dictId=" + userDictForm.dictId + "&redirect=true";
}
@Token(save = true, validate = false)
@Execute(validator = false, input = "reloadpage")
public String reloadpage() {
final UserDictFile userdictFile = userDictService
.getUserDictFile(userDictForm.dictId);
if (userdictFile == null) {
throw new SSCActionMessagesException(
"errors.userdict_file_is_not_found");
}
coreName = userdictFile.getCoreName();
return "reload.jsp";
}
@Token(save = false, validate = true)
@Execute(validator = true, input = "reloadpage")
public String reload() {
final UserDictFile userdictFile = userDictService
.getUserDictFile(userDictForm.dictId);
if (userdictFile == null) {
throw new SSCActionMessagesException(
"errors.userdict_file_is_not_found");
}
CoreReloadResponse response = solrGroupManager.reloadCore(userdictFile
.getCoreName());
if (response.getStatus() == 0) {
SAStrutsUtil.addSessionMessage("success.reload_core");
} else {
throw new SSCActionMessagesException("errors.failed_to_reload_core");
}
return "reloadpage?dictId=" + userDictForm.dictId + "&redirect=true";
}
protected void loadUserDict() {
final UserDictItem userDictItem = userDictService.getUserDict(

View file

@ -39,6 +39,8 @@ public abstract class DictionaryFile<T extends DictionaryItem> {
public abstract void delete(T item);
public abstract String getCoreName();
public String getId() {
return id;
}

View file

@ -31,15 +31,15 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import jp.sf.fess.Constants;
import jp.sf.fess.dict.DictionaryException;
import jp.sf.fess.dict.DictionaryFile;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.codelibs.core.util.StringUtil;
import org.codelibs.robot.util.StreamUtil;
import jp.sf.fess.Constants;
import jp.sf.fess.dict.DictionaryException;
import jp.sf.fess.dict.DictionaryFile;
public class SynonymFile extends DictionaryFile<SynonymItem> {
private static final String SYNONYM = "synonym";
@ -51,6 +51,22 @@ public class SynonymFile extends DictionaryFile<SynonymItem> {
this.file = file;
}
@Override
public String getCoreName() {
File parentFile = file.getParentFile();
while (parentFile != null) {
if ("conf".equals(parentFile.getName())) {
File file = parentFile.getParentFile();
if (file != null) {
return file.getName();
}
return null;
}
parentFile = parentFile.getParentFile();
}
return null;
}
@Override
public String getType() {
return SYNONYM;

View file

@ -31,16 +31,16 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import jp.sf.fess.Constants;
import jp.sf.fess.dict.DictionaryException;
import jp.sf.fess.dict.DictionaryFile;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.lucene.analysis.ja.util.CSVUtil;
import org.codelibs.core.util.StringUtil;
import org.codelibs.robot.util.StreamUtil;
import jp.sf.fess.Constants;
import jp.sf.fess.dict.DictionaryException;
import jp.sf.fess.dict.DictionaryFile;
public class UserDictFile extends DictionaryFile<UserDictItem> {
private static final String USERDICT = "userDict";
@ -52,6 +52,22 @@ public class UserDictFile extends DictionaryFile<UserDictItem> {
this.file = file;
}
@Override
public String getCoreName() {
File parentFile = file.getParentFile();
while (parentFile != null) {
if ("conf".equals(parentFile.getName())) {
File file = parentFile.getParentFile();
if (file != null) {
return file.getName();
}
return null;
}
parentFile = parentFile.getParentFile();
}
return null;
}
@Override
public String getType() {
return USERDICT;

View file

@ -81,6 +81,7 @@ errors.userdict_file_is_not_found=Synonym file is not found
errors.failed_to_download_userdict_file=Failed to download the UserDict file.
errors.failed_to_upload_userdict_file=Failed to upload the UserDict file.
errors.invalid_str_is_included="{1}" in "{0}" is invalid.
errors.failed_to_reload_core=Failed to reload core. Check log files.
errors.invalid_query_unknown=The given query is invalid.
errors.invalid_query_quoted=An invalid quote character is used.
@ -119,6 +120,7 @@ success.upload_synonym_file=Uploaded Synonym file.
success.upload_userdict_file=Uploaded UserDict file.
success.upload_suggest_elevate_word=Uploaded Additional Word file.
success.upload_suggest_bad_word=Uploaded Bad Word file.
success.reload_core=Reloaded core.
# labels
labels.authRealm=Realm
@ -1330,6 +1332,9 @@ labels.dict_synonym_button_update=Update
labels.dict_synonym_button_download=Download
labels.dict_synonym_button_upload=Upload
labels.dict_synonym_file=Synonym File
labels.dict_synonym_link_reload=Reload
labels.dict_synonym_button_reload=Reload
labels.dict_synonym_core_name=Core Name
# userdict
labels.dict_userdict_configuration=UserDict List
@ -1354,6 +1359,9 @@ labels.dict_userdict_button_update=Update
labels.dict_userdict_button_download=Download
labels.dict_userdict_button_upload=Upload
labels.dict_userdict_file=UserDict File
labels.dict_userdict_link_reload=Reload
labels.dict_userdict_button_reload=Reload
labels.dict_userdict_core_name=Core Name
# boost document rule
labels.boost_document_rule_configuration=Doc Boost

View file

@ -81,6 +81,7 @@ errors.userdict_file_is_not_found=Synonym file is not found
errors.failed_to_download_userdict_file=Failed to download the UserDict file.
errors.failed_to_upload_userdict_file=Failed to upload the UserDict file.
errors.invalid_str_is_included="{1}" in "{0}" is invalid.
errors.failed_to_reload_core=Failed to reload core. Check log files.
errors.invalid_query_unknown=The given query is invalid.
errors.invalid_query_quoted=An invalid quote character is used.
@ -119,6 +120,7 @@ success.upload_synonym_file=Uploaded Synonym file.
success.upload_userdict_file=Uploaded UserDict file.
success.upload_suggest_elevate_word=Uploaded Additional Word file.
success.upload_suggest_bad_word=Uploaded Bad Word file.
success.reload_core=Reloaded core.
# labels
labels.authRealm=Realm
@ -1330,6 +1332,9 @@ labels.dict_synonym_button_update=Update
labels.dict_synonym_button_download=Download
labels.dict_synonym_button_upload=Upload
labels.dict_synonym_file=Synonym File
labels.dict_synonym_link_reload=Reload
labels.dict_synonym_button_reload=Reload
labels.dict_synonym_core_name=Core Name
# userdict
labels.dict_userdict_configuration=UserDict List
@ -1354,6 +1359,9 @@ labels.dict_userdict_button_update=Update
labels.dict_userdict_button_download=Download
labels.dict_userdict_button_upload=Upload
labels.dict_userdict_file=UserDict File
labels.dict_userdict_link_reload=Reload
labels.dict_userdict_button_reload=Reload
labels.dict_userdict_core_name=Core Name
# boost document rule
labels.boost_document_rule_configuration=Doc Boost

View file

@ -81,6 +81,7 @@ errors.userdict_file_is_not_found=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u30d5\u30
errors.failed_to_download_userdict_file=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
errors.failed_to_upload_userdict_file=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002
errors.invalid_str_is_included=\u300c{1}\u300d\u306f\u5229\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u300c{0}\u300d\u306b\u300c{1}\u300d\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002
errors.failed_to_reload_core=\u30b3\u30a2\u306e\u518d\u8aad\u307f\u8fbc\u307f\u306b\u5931\u6557\u3057\u307e\u3057\u305f\u3002\u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u3092\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
errors.invalid_query_unknown=\u691c\u7d22\u30af\u30a8\u30ea\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002
errors.invalid_query_quoted=\u30af\u30aa\u30fc\u30c8\u6587\u5b57(")\u306e\u5229\u7528\u65b9\u6cd5\u304c\u6b63\u3057\u304f\u3042\u308a\u307e\u305b\u3093\u3002
@ -119,6 +120,7 @@ success.upload_synonym_file=\u540c\u7fa9\u8a9e\u30d5\u30a1\u30a4\u30eb\u3092\u30
success.upload_userdict_file=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002
success.upload_suggest_elevate_word=\u8ffd\u52a0\u5019\u88dc\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002
success.upload_suggest_bad_word=NG\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002
success.reload_core=\u30b3\u30a2\u3092\u518d\u8aad\u307f\u8fbc\u307f\u3057\u307e\u3057\u305f\u3002
# labels
labels.authRealm=\u8a8d\u8a3c\u30ec\u30eb\u30e0
@ -1330,6 +1332,9 @@ labels.dict_synonym_button_update=\u66f4\u65b0
labels.dict_synonym_button_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
labels.dict_synonym_button_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
labels.dict_synonym_file=\u540c\u7fa9\u8a9e\u30d5\u30a1\u30a4\u30eb
labels.dict_synonym_link_reload=\u53cd\u6620
labels.dict_synonym_button_reload=\u518d\u8aad\u307f\u8fbc\u307f
labels.dict_synonym_core_name=\u30b3\u30a2\u540d
# userdict
labels.dict_userdict_configuration=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u4e00\u89a7
@ -1354,6 +1359,9 @@ labels.dict_userdict_button_update=\u66f4\u65b0
labels.dict_userdict_button_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
labels.dict_userdict_button_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
labels.dict_userdict_file=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u30d5\u30a1\u30a4\u30eb
labels.dict_userdict_link_reload=\u53cd\u6620
labels.dict_userdict_button_reload=\u518d\u8aad\u307f\u8fbc\u307f
labels.dict_userdict_core_name=\u30b3\u30a2\u540d
# boost document rule
labels.boost_document_rule_configuration=\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30d6\u30fc\u30b9\u30c8

View file

@ -53,6 +53,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -40,6 +40,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -53,6 +53,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -41,6 +41,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -0,0 +1,72 @@
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><tiles:insert template="/WEB-INF/view/common/admin/layout.jsp"
flush="true">
<tiles:put name="title">
<bean:message key="labels.dict_synonym_configuration" />
</tiles:put>
<tiles:put name="header" value="/WEB-INF/view/common/admin/header.jsp" />
<tiles:put name="footer" value="/WEB-INF/view/common/admin/footer.jsp" />
<tiles:put name="menu" value="/WEB-INF/view/common/admin/menu.jsp" />
<tiles:put name="menuType" value="dict" />
<tiles:put name="headerScript" type="string"></tiles:put>
<tiles:put name="body" type="string">
<h3>
<bean:message key="labels.dict_synonym_title" />
</h3>
<%-- Message: BEGIN --%>
<div>
<html:messages id="msg" message="true">
<div class="alert-message info"><bean:write name="msg" ignore="true" /></div>
</html:messages>
<html:errors />
</div>
<%-- Message: END --%>
<div>
<ul class="pills">
<li><s:link href="../index">
<bean:message key="labels.dict_list_link" />
</s:link></li>
<li><s:link href="index?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_list_link" />
</s:link></li>
<li><s:link href="createpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_create" />
</s:link></li>
<li><s:link href="downloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_download" />
</s:link></li>
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_upload" />
</s:link></li>
<li class="active"><a href="#">
<bean:message key="labels.dict_synonym_link_reload" />
</a></li>
</ul>
</div>
<%-- Edit Form: BEGIN --%>
<s:form>
<div>
<html:hidden property="dictId" />
<table class="bordered-table zebra-striped" style="width: 500px;">
<tbody>
<tr>
<th style="vertical-align: middle;"><bean:message key="labels.dict_synonym_link_reload" /></th>
<td style="vertical-align: middle;">${f:h(coreName)}</td>
</tr>
<tr>
<td colspan="2" style="width: 150px;text-align: center;"><input type="submit"
class="btn small" name="reload"
value="<bean:message key="labels.dict_synonym_button_reload"/>" />
</td>
</tr>
</tbody>
</table>
</div>
</s:form>
<%-- Edit Form: BEGIN --%>
</tiles:put>
</tiles:insert>

View file

@ -40,6 +40,9 @@
<li class="active"><a href="#">
<bean:message key="labels.dict_synonym_link_upload" />
</a></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_synonym_link_reload" />
</s:link></li>
</ul>
</div>
@ -61,7 +64,7 @@
</tbody>
<tfoot>
<tr>
<td colspan="2">
<td colspan="2" style="text-align: center;">
<input type="submit" class="btn small" name="upload"
value="<bean:message key="labels.dict_synonym_button_upload"/>" />
</td>

View file

@ -53,6 +53,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -40,6 +40,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -53,6 +53,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -41,6 +41,9 @@
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_upload" />
</s:link></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_reload" />
</s:link></li>
</ul>
</div>

View file

@ -0,0 +1,72 @@
<%@page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%><tiles:insert template="/WEB-INF/view/common/admin/layout.jsp"
flush="true">
<tiles:put name="title">
<bean:message key="labels.dict_userdict_configuration" />
</tiles:put>
<tiles:put name="header" value="/WEB-INF/view/common/admin/header.jsp" />
<tiles:put name="footer" value="/WEB-INF/view/common/admin/footer.jsp" />
<tiles:put name="menu" value="/WEB-INF/view/common/admin/menu.jsp" />
<tiles:put name="menuType" value="dict" />
<tiles:put name="headerScript" type="string"></tiles:put>
<tiles:put name="body" type="string">
<h3>
<bean:message key="labels.dict_userdict_title" />
</h3>
<%-- Message: BEGIN --%>
<div>
<html:messages id="msg" message="true">
<div class="alert-message info"><bean:write name="msg" ignore="true" /></div>
</html:messages>
<html:errors />
</div>
<%-- Message: END --%>
<div>
<ul class="pills">
<li><s:link href="../index">
<bean:message key="labels.dict_list_link" />
</s:link></li>
<li><s:link href="index?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_list_link" />
</s:link></li>
<li><s:link href="createpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_create" />
</s:link></li>
<li><s:link href="downloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_download" />
</s:link></li>
<li><s:link href="uploadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_upload" />
</s:link></li>
<li class="active"><a href="#">
<bean:message key="labels.dict_userdict_link_reload" />
</a></li>
</ul>
</div>
<%-- Edit Form: BEGIN --%>
<s:form>
<div>
<html:hidden property="dictId" />
<table class="bordered-table zebra-striped" style="width: 500px;">
<tbody>
<tr>
<th style="vertical-align: middle;"><bean:message key="labels.dict_userdict_core_name" /></th>
<td style="vertical-align: middle;">${f:h(coreName)}</td>
</tr>
<tr>
<td colspan="2" style="width: 150px;text-align: center;"><input type="submit"
class="btn small" name="reload"
value="<bean:message key="labels.dict_userdict_button_reload"/>" />
</td>
</tr>
</tbody>
</table>
</div>
</s:form>
<%-- Edit Form: BEGIN --%>
</tiles:put>
</tiles:insert>

View file

@ -40,6 +40,9 @@
<li class="active"><a href="#">
<bean:message key="labels.dict_userdict_link_upload" />
</a></li>
<li><s:link href="reloadpage?dictId=${f:u(dictId)}">
<bean:message key="labels.dict_userdict_link_reload" />
</s:link></li>
</ul>
</div>
@ -61,7 +64,7 @@
</tbody>
<tfoot>
<tr>
<td colspan="2">
<td colspan="2" style="text-align: center;">
<input type="submit" class="btn small" name="upload"
value="<bean:message key="labels.dict_userdict_button_upload"/>" />
</td>