add download/upload for elevateword & badword functions

This commit is contained in:
shatake 2014-10-24 19:05:13 +09:00
parent 42091b4588
commit fafacb82c4
19 changed files with 841 additions and 0 deletions

View file

@ -16,10 +16,14 @@
package jp.sf.fess.action.admin;
import java.io.*;
import java.sql.Timestamp;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import jp.sf.fess.Constants;
import jp.sf.fess.FessSystemException;
import jp.sf.fess.crud.CommonConstants;
import jp.sf.fess.crud.CrudMessageException;
import jp.sf.fess.crud.action.admin.BsSuggestBadWordAction;
@ -29,12 +33,16 @@ import jp.sf.fess.helper.SuggestHelper;
import jp.sf.fess.helper.SystemHelper;
import jp.sf.fess.util.FessBeans;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.DynamicProperties;
import org.codelibs.robot.util.StreamUtil;
import org.codelibs.sastruts.core.annotation.Token;
import org.codelibs.sastruts.core.exception.SSCActionMessagesException;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.exception.ActionMessagesException;
import org.seasar.struts.util.ResponseUtil;
public class SuggestBadWordAction extends BsSuggestBadWordAction {
@ -49,6 +57,9 @@ public class SuggestBadWordAction extends BsSuggestBadWordAction {
@Resource
protected SuggestHelper suggestHelper;
@Resource
protected DynamicProperties crawlerProperties;
public String getHelpLink() {
return systemHelper.getHelpLink("suggestBadWord");
}
@ -191,4 +202,123 @@ public class SuggestBadWordAction extends BsSuggestBadWordAction {
}
}
@Token(save = true, validate = false)
@Execute(validator = false, input = "downloadpage")
public String downloadpage() {
return "download.jsp";
}
@Token(save = false, validate = true)
@Execute(validator = false, input = "downloadpage")
public String download() {
final HttpServletResponse response = ResponseUtil.getResponse();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\""
+ "suggestbadword.csv" + "\"");
Writer writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
response.getOutputStream(), crawlerProperties.getProperty(
Constants.CSV_FILE_ENCODING_PROPERTY,
Constants.UTF_8)));
suggestBadWordService.exportCsv(writer);
writer.flush();
return null;
} catch (final Exception e) {
log.error("Failed to export data.", e);
throw new SSCActionMessagesException(e,
"errors.failed_to_export_data");
} finally {
IOUtils.closeQuietly(writer);
}
}
@Token(save = true, validate = false)
@Execute(validator = false, input = "uploadpage")
public String uploadpage() {
return "upload.jsp";
}
@Token(save = false, validate = true)
@Execute(validator = true, input = "uploadpage")
public String upload() {
BufferedInputStream is = null;
File tempFile = null;
FileOutputStream fos = null;
final byte[] b = new byte[20];
try {
tempFile = File.createTempFile("suggestbadword-import-", ".csv");
is = new BufferedInputStream(suggestBadWordForm.suggestBadWordFile.getInputStream());
is.mark(20);
if (is.read(b, 0, 20) <= 0) {
throw new FessSystemException("no import data.");
}
is.reset();
fos = new FileOutputStream(tempFile);
StreamUtil.drain(is, fos);
} catch (final Exception e) {
if (tempFile != null && !tempFile.delete()) {
log.warn("Could not delete "
+ tempFile.getAbsolutePath());
}
log.error("Failed to import data.", e);
throw new SSCActionMessagesException(e,
"errors.failed_to_import_data");
} finally {
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(fos);
}
final File oFile = tempFile;
try {
final String head = new String(b, Constants.UTF_8);
if (!head.startsWith("\"SuggestWord\",")) {
log.error("Unknown file: " + suggestBadWordForm.suggestBadWordFile);
throw new SSCActionMessagesException(
"errors.unknown_import_file");
}
final String enc = crawlerProperties.getProperty(
Constants.CSV_FILE_ENCODING_PROPERTY, Constants.UTF_8);
new Thread(new Runnable() {
@Override
public void run() {
Reader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(
new FileInputStream(oFile), enc));
suggestBadWordService.importCsv(reader);
} catch (final Exception e) {
log.error("Failed to import data.", e);
throw new FessSystemException(
"Failed to import data.", e);
} finally {
if (!oFile.delete()) {
log.warn("Could not delete "
+ oFile.getAbsolutePath());
}
IOUtils.closeQuietly(reader);
suggestHelper.deleteAllBadWord();
suggestHelper.updateSolrBadwordFile();
}
}
}).start();
} catch (final ActionMessagesException e) {
if (!oFile.delete()) {
log.warn("Could not delete " + oFile.getAbsolutePath());
}
throw e;
} catch (final Exception e) {
if (!oFile.delete()) {
log.warn("Could not delete " + oFile.getAbsolutePath());
}
log.error("Failed to import data.", e);
throw new SSCActionMessagesException(e,
"errors.failed_to_import_data");
}
SAStrutsUtil.addSessionMessage("success.upload_suggest_bad_word");
return "uploadpage?redirect=true";
}
}

View file

@ -16,10 +16,14 @@
package jp.sf.fess.action.admin;
import java.io.*;
import java.sql.Timestamp;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import jp.sf.fess.Constants;
import jp.sf.fess.FessSystemException;
import jp.sf.fess.crud.CommonConstants;
import jp.sf.fess.crud.CrudMessageException;
import jp.sf.fess.crud.action.admin.BsSuggestElevateWordAction;
@ -29,12 +33,16 @@ import jp.sf.fess.helper.SuggestHelper;
import jp.sf.fess.helper.SystemHelper;
import jp.sf.fess.util.FessBeans;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.DynamicProperties;
import org.codelibs.robot.util.StreamUtil;
import org.codelibs.sastruts.core.annotation.Token;
import org.codelibs.sastruts.core.exception.SSCActionMessagesException;
import org.seasar.struts.annotation.Execute;
import org.seasar.struts.exception.ActionMessagesException;
import org.seasar.struts.util.ResponseUtil;
public class SuggestElevateWordAction extends BsSuggestElevateWordAction {
@ -49,6 +57,9 @@ public class SuggestElevateWordAction extends BsSuggestElevateWordAction {
@Resource
protected SuggestHelper suggestHelper;
@Resource
protected DynamicProperties crawlerProperties;
public String getHelpLink() {
return systemHelper.getHelpLink("suggestElevateWord");
}
@ -187,4 +198,123 @@ public class SuggestElevateWordAction extends BsSuggestElevateWordAction {
"errors.crud_failed_to_delete_crud_table");
}
}
@Token(save = true, validate = false)
@Execute(validator = false, input = "downloadpage")
public String downloadpage() {
return "download.jsp";
}
@Token(save = false, validate = true)
@Execute(validator = false, input = "downloadpage")
public String download() {
final HttpServletResponse response = ResponseUtil.getResponse();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=\""
+ "suggestelevateword.csv" + "\"");
Writer writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
response.getOutputStream(), crawlerProperties.getProperty(
Constants.CSV_FILE_ENCODING_PROPERTY,
Constants.UTF_8)));
suggestElevateWordService.exportCsv(writer);
writer.flush();
return null;
} catch (final Exception e) {
log.error("Failed to export data.", e);
throw new SSCActionMessagesException(e,
"errors.failed_to_export_data");
} finally {
IOUtils.closeQuietly(writer);
}
}
@Token(save = true, validate = false)
@Execute(validator = false, input = "uploadpage")
public String uploadpage() {
return "upload.jsp";
}
@Token(save = false, validate = true)
@Execute(validator = true, input = "uploadpage")
public String upload() {
BufferedInputStream is = null;
File tempFile = null;
FileOutputStream fos = null;
final byte[] b = new byte[20];
try {
tempFile = File.createTempFile("suggestelevateword-import-", ".csv");
is = new BufferedInputStream(suggestElevateWordForm.suggestElevateWordFile.getInputStream());
is.mark(20);
if (is.read(b, 0, 20) <= 0) {
throw new FessSystemException("no import data.");
}
is.reset();
fos = new FileOutputStream(tempFile);
StreamUtil.drain(is, fos);
} catch (final Exception e) {
if (tempFile != null && !tempFile.delete()) {
log.warn("Could not delete "
+ tempFile.getAbsolutePath());
}
log.error("Failed to import data.", e);
throw new SSCActionMessagesException(e,
"errors.failed_to_import_data");
} finally {
IOUtils.closeQuietly(is);
IOUtils.closeQuietly(fos);
}
final File oFile = tempFile;
try {
final String head = new String(b, Constants.UTF_8);
if (!head.startsWith("\"SuggestWord\",")) {
log.error("Unknown file: " + suggestElevateWordForm.suggestElevateWordFile);
throw new SSCActionMessagesException(
"errors.unknown_import_file");
}
final String enc = crawlerProperties.getProperty(
Constants.CSV_FILE_ENCODING_PROPERTY, Constants.UTF_8);
new Thread(new Runnable() {
@Override
public void run() {
Reader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(
new FileInputStream(oFile), enc));
suggestElevateWordService.importCsv(reader);
} catch (final Exception e) {
log.error("Failed to import data.", e);
throw new FessSystemException(
"Failed to import data.", e);
} finally {
if (!oFile.delete()) {
log.warn("Could not delete "
+ oFile.getAbsolutePath());
}
IOUtils.closeQuietly(reader);
suggestHelper.storeAllElevateWords();
}
}
}).start();
} catch (final ActionMessagesException e) {
if (!oFile.delete()) {
log.warn("Could not delete " + oFile.getAbsolutePath());
}
throw e;
} catch (final Exception e) {
if (!oFile.delete()) {
log.warn("Could not delete " + oFile.getAbsolutePath());
}
log.error("Failed to import data.", e);
throw new SSCActionMessagesException(e,
"errors.failed_to_import_data");
}
SAStrutsUtil.addSessionMessage("success.upload_suggest_elevate_word");
return "uploadpage?redirect=true";
}
}

View file

@ -16,6 +16,8 @@
package jp.sf.fess.db.exentity;
import java.math.BigDecimal;
import jp.sf.fess.db.bsentity.BsSuggestElevateWord;
/**
@ -30,4 +32,25 @@ public class SuggestElevateWord extends BsSuggestElevateWord {
/** Serial version UID. (Default) */
private static final long serialVersionUID = 1L;
public SuggestElevateWord() {
super();
setBoost(BigDecimal.ONE);
}
public String getBoostValue() {
if (_boost != null) {
return Integer.toString(_boost.intValue());
}
return null;
}
public void setBoostValue(final String value) {
if (value != null) {
try {
_boost = new BigDecimal(value);
} catch (final Exception e) {
}
}
}
}

View file

@ -19,12 +19,17 @@ package jp.sf.fess.form.admin;
import java.io.Serializable;
import jp.sf.fess.crud.form.admin.BsSuggestBadWordForm;
import org.apache.struts.upload.FormFile;
import org.seasar.struts.annotation.Required;
public class SuggestBadWordForm extends BsSuggestBadWordForm implements
Serializable {
private static final long serialVersionUID = 1L;
@Required(target = "upload")
public FormFile suggestBadWordFile;
@Override
public void initialize() {
super.initialize();

View file

@ -19,12 +19,17 @@ package jp.sf.fess.form.admin;
import java.io.Serializable;
import jp.sf.fess.crud.form.admin.BsSuggestElevateWordForm;
import org.apache.struts.upload.FormFile;
import org.seasar.struts.annotation.Required;
public class SuggestElevateWordForm extends BsSuggestElevateWordForm implements
Serializable {
private static final long serialVersionUID = 1L;
@Required(target = "upload")
public FormFile suggestElevateWordFile;
@Override
public void initialize() {
super.initialize();

View file

@ -16,19 +16,36 @@
package jp.sf.fess.service;
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jp.sf.fess.action.admin.SuggestBadWordAction;
import jp.sf.fess.crud.service.BsSuggestBadWordService;
import jp.sf.fess.db.cbean.SuggestBadWordCB;
import jp.sf.fess.db.exentity.SuggestBadWord;
import jp.sf.fess.pager.SuggestBadWordPager;
import jp.sf.orangesignal.csv.CsvConfig;
import jp.sf.orangesignal.csv.CsvReader;
import jp.sf.orangesignal.csv.CsvWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.StringUtil;
import org.seasar.dbflute.cbean.EntityRowHandler;
public class SuggestBadWordService extends BsSuggestBadWordService implements
Serializable {
private static final long serialVersionUID = 1L;
private static final Log log = LogFactory
.getLog(SuggestBadWordService.class);
@Override
protected void setupListCondition(final SuggestBadWordCB cb,
final SuggestBadWordPager suggestBadWordPager) {
@ -67,4 +84,94 @@ public class SuggestBadWordService extends BsSuggestBadWordService implements
}
public void importCsv(final Reader reader) {
final CsvReader csvReader = new CsvReader(reader, new CsvConfig());
try {
List<String> list;
csvReader.readValues(); // ignore header
while ((list = csvReader.readValues()) != null) {
try {
final SuggestBadWordCB cb = new SuggestBadWordCB();
cb.query().setSuggestWord_Equal(strip(list.get(0)));
SuggestBadWord suggestBadWord = suggestBadWordBhv
.selectEntity(cb);
if (suggestBadWord == null) {
suggestBadWord = new SuggestBadWord();
suggestBadWord.setSuggestWord(strip(list.get(0)));
suggestBadWord.setTargetRole(strip(list.get(1)));
suggestBadWord.setTargetLabel(strip(list.get(2)));
suggestBadWord.setCreatedBy("system");
suggestBadWord.setCreatedTime(new Timestamp(System.currentTimeMillis()));
suggestBadWordBhv.insert(suggestBadWord);
} else if (list.get(1).equals("\"\"") &&
list.get(2).equals("\"\"")) {
suggestBadWord.setDeletedBy("system");
suggestBadWord.setDeletedTime(new Timestamp(System.currentTimeMillis()));
suggestBadWordBhv.update(suggestBadWord);
} else {
suggestBadWord.setTargetRole(strip(list.get(1)));
suggestBadWord.setTargetLabel(strip(list.get(2)));
suggestBadWord.setUpdatedBy("system");
suggestBadWord.setUpdatedTime(new Timestamp(System.currentTimeMillis()));
suggestBadWordBhv.update(suggestBadWord);
}
} catch (final Exception e) {
log.warn("Failed to read a sugget elevate word: " + list, e);
}
}
} catch (final IOException e) {
log.warn("Failed to read a sugget elevate word.", e);
}
}
public void exportCsv(final Writer writer) {
final CsvConfig cfg = new CsvConfig(',', '"', '"');
cfg.setEscapeDisabled(false);
cfg.setQuoteDisabled(false);
@SuppressWarnings("resource")
final CsvWriter csvWriter = new CsvWriter(writer, cfg);
final SuggestBadWordCB cb = new SuggestBadWordCB();
cb.query().setDeletedBy_IsNull();
try {
final List<String> list = new ArrayList<String>();
list.add("SuggestWord");
list.add("Role");
list.add("Label");
csvWriter.writeValues(list);
suggestBadWordBhv.selectCursor(cb,
new EntityRowHandler<SuggestBadWord>() {
@Override
public void handle(final SuggestBadWord entity) {
final List<String> list = new ArrayList<String>();
addToList(list, entity.getSuggestWord());
addToList(list, entity.getTargetRole());
addToList(list, entity.getTargetLabel());
try {
csvWriter.writeValues(list);
} catch (final IOException e) {
log.warn(
"Failed to write a sugget bad word: "
+ entity, e);
}
}
private void addToList(final List<String> list,
final Object value) {
if (value == null) {
list.add(StringUtil.EMPTY);
} else {
list.add(value.toString());
}
}
});
csvWriter.flush();
} catch (final IOException e) {
log.warn("Failed to write a sugget bad word.", e);
}
}
private static String strip(String item) {
return item.substring(1, item.length() - 1);
}
}

View file

@ -16,19 +16,36 @@
package jp.sf.fess.service;
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import jp.sf.fess.crud.service.BsSuggestElevateWordService;
import jp.sf.fess.db.cbean.SuggestElevateWordCB;
import jp.sf.fess.db.exentity.SuggestElevateWord;
import jp.sf.fess.pager.SuggestElevateWordPager;
import jp.sf.orangesignal.csv.CsvConfig;
import jp.sf.orangesignal.csv.CsvReader;
import jp.sf.orangesignal.csv.CsvWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelibs.core.util.StringUtil;
import org.seasar.dbflute.cbean.EntityRowHandler;
public class SuggestElevateWordService extends BsSuggestElevateWordService
implements Serializable {
private static final long serialVersionUID = 1L;
private static final Log log = LogFactory
.getLog(SuggestElevateWordService.class);
@Override
protected void setupListCondition(final SuggestElevateWordCB cb,
final SuggestElevateWordPager suggestElevateWordPager) {
@ -69,4 +86,102 @@ public class SuggestElevateWordService extends BsSuggestElevateWordService
}
public void importCsv(final Reader reader) {
final CsvReader csvReader = new CsvReader(reader, new CsvConfig());
try {
List<String> list;
csvReader.readValues(); // ignore header
while ((list = csvReader.readValues()) != null) {
try {
final SuggestElevateWordCB cb = new SuggestElevateWordCB();
cb.query().setSuggestWord_Equal(strip(list.get(0)));
SuggestElevateWord suggestElevateWord = suggestElevateWordBhv
.selectEntity(cb);
if (suggestElevateWord == null) {
suggestElevateWord = new SuggestElevateWord();
suggestElevateWord.setSuggestWord(strip(list.get(0)));
suggestElevateWord.setReading(strip(list.get(1)));
suggestElevateWord.setTargetRole(strip(list.get(2)));
suggestElevateWord.setTargetLabel(strip(list.get(3)));
suggestElevateWord.setBoost(new BigDecimal(strip(list.get(4))));
suggestElevateWord.setCreatedBy("system");
suggestElevateWord.setCreatedTime(new Timestamp(System.currentTimeMillis()));
suggestElevateWordBhv.insert(suggestElevateWord);
} else if (list.get(1).equals("\"\"") &&
list.get(2).equals("\"\"") &&
list.get(3).equals("\"\"")) {
suggestElevateWord.setDeletedBy("system");
suggestElevateWord.setDeletedTime(new Timestamp(System.currentTimeMillis()));
suggestElevateWordBhv.update(suggestElevateWord);
} else {
suggestElevateWord.setReading(strip(list.get(1)));
suggestElevateWord.setTargetRole(strip(list.get(2)));
suggestElevateWord.setTargetLabel(strip(list.get(3)));
suggestElevateWord.setBoost(new BigDecimal(strip(list.get(4))));
suggestElevateWord.setUpdatedBy("system");
suggestElevateWord.setUpdatedTime(new Timestamp(System.currentTimeMillis()));
suggestElevateWordBhv.update(suggestElevateWord);
}
} catch (final Exception e) {
log.warn("Failed to read a sugget elevate word: " + list, e);
}
}
} catch (final IOException e) {
log.warn("Failed to read a sugget elevate word.", e);
}
}
public void exportCsv(final Writer writer) {
final CsvConfig cfg = new CsvConfig(',', '"', '"');
cfg.setEscapeDisabled(false);
cfg.setQuoteDisabled(false);
@SuppressWarnings("resource")
final CsvWriter csvWriter = new CsvWriter(writer, cfg);
final SuggestElevateWordCB cb = new SuggestElevateWordCB();
cb.query().setDeletedBy_IsNull();
try {
final List<String> list = new ArrayList<String>();
list.add("SuggestWord");
list.add("Reading");
list.add("Role");
list.add("Label");
list.add("Boost");
csvWriter.writeValues(list);
suggestElevateWordBhv.selectCursor(cb,
new EntityRowHandler<SuggestElevateWord>() {
@Override
public void handle(final SuggestElevateWord entity) {
final List<String> list = new ArrayList<String>();
addToList(list, entity.getSuggestWord());
addToList(list, entity.getReading());
addToList(list, entity.getTargetRole());
addToList(list, entity.getTargetLabel());
addToList(list, entity.getBoost());
try {
csvWriter.writeValues(list);
} catch (final IOException e) {
log.warn(
"Failed to write a sugget elevate word: "
+ entity, e);
}
}
private void addToList(final List<String> list,
final Object value) {
if (value == null) {
list.add(StringUtil.EMPTY);
} else {
list.add(value.toString());
}
}
});
csvWriter.flush();
} catch (final IOException e) {
log.warn("Failed to write a sugget elevate word.", e);
}
}
private static String strip(String item) {
return item.substring(1, item.length() - 1);
}
}

View file

@ -115,6 +115,8 @@ success.job_stopped=Stopped job {0}.
success.joblog_delete_all=Deleted job logs.
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.
# labels
labels.authRealm=Realm
@ -284,6 +286,8 @@ labels.token=Token
labels.useAclAsRole=Use ACL as Role
labels.synonymFile=Synonym File
labels.userDictFile=UserDict File
labels.suggestElevateWordFile=Additional Word File
labels.suggestBadWordFile=Bad Word File
# view/common/common.jsp
@ -1390,18 +1394,23 @@ labels.suggest_elevate_word_link_create=Create
labels.suggest_elevate_word_link_update=Edit
labels.suggest_elevate_word_link_delete=Delete
labels.suggest_elevate_word_link_confirm=Details
labels.suggest_elevate_word_link_download=Download
labels.suggest_elevate_word_link_upload=Upload
labels.suggest_elevate_word_button_create=Create
labels.suggest_elevate_word_button_back=Back
labels.suggest_elevate_word_button_confirm=Confirm
labels.suggest_elevate_word_button_update=Update
labels.suggest_elevate_word_button_delete=Delete
labels.suggest_elevate_word_button_edit=Edit
labels.suggest_elevate_word_button_download=Download
labels.suggest_elevate_word_button_upload=Upload
labels.suggest_elevate_word_list_suggest_word=Word
labels.suggest_elevate_word_suggest_word=Word
labels.suggest_elevate_word_reading=Reading
labels.suggest_elevate_word_target_role=Role
labels.suggest_elevate_word_target_label=Label
labels.suggest_elevate_word_boost=Boost
labels.suggest_elevate_word_file=Additional Word File
# suggest bad word
labels.suggest_bad_word_configuration=Bad Word
@ -1419,16 +1428,21 @@ labels.suggest_bad_word_link_create=Create
labels.suggest_bad_word_link_update=Edit
labels.suggest_bad_word_link_delete=Delete
labels.suggest_bad_word_link_confirm=Details
labels.suggest_bad_word_link_download=Download
labels.suggest_bad_word_link_upload=Upload
labels.suggest_bad_word_button_create=Create
labels.suggest_bad_word_button_back=Back
labels.suggest_bad_word_button_confirm=Confirm
labels.suggest_bad_word_button_update=Update
labels.suggest_bad_word_button_delete=Delete
labels.suggest_bad_word_button_edit=Edit
labels.suggest_bad_word_button_download=Download
labels.suggest_bad_word_button_upload=Upload
labels.suggest_bad_word_list_suggest_word=Bad Word
labels.suggest_bad_word_suggest_word=Bad Word
labels.suggest_bad_word_target_role=Role
labels.suggest_bad_word_target_label=Label
labels.suggest_bad_word_file=Bad Word File
# CRUD PROPERTIES: BEGIN
errors.crud_invalid_mode=Invalid mode(expected value is {0}, but it's {1}).

View file

@ -115,6 +115,8 @@ success.job_stopped=\u30b8\u30e7\u30d6 {0} \u3092\u505c\u6b62\u3057\u307e\u3057\
success.joblog_delete_all=\u30b8\u30e7\u30d6\u30ed\u30b0\u3092\u524a\u9664\u3057\u307e\u3057\u305f\u3002
success.upload_synonym_file=\u540c\u7fa9\u8a9e\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002
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
# labels
labels.authRealm=\u8a8d\u8a3c\u30ec\u30eb\u30e0
@ -284,6 +286,8 @@ labels.token=\u30c8\u30fc\u30af\u30f3
labels.useAclAsRole=ACL\u3092\u30ed\u30fc\u30eb\u306b\u5229\u7528
labels.synonymFile=\u540c\u7fa9\u8a9e\u30d5\u30a1\u30a4\u30eb
labels.userDictFile=\u30e6\u30fc\u30b6\u30fc\u8f9e\u66f8\u30d5\u30a1\u30a4\u30eb
labels.suggestElevateWordFile=\u8ffd\u52a0\u5019\u88dc\u30d5\u30a1\u30a4\u30eb
labels.suggestBadWordFile=NG\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb
# view/common/common.jsp
@ -1390,18 +1394,23 @@ labels.suggest_elevate_word_link_create=\u65b0\u898f\u4f5c\u6210
labels.suggest_elevate_word_link_update=\u7de8\u96c6
labels.suggest_elevate_word_link_delete=\u524a\u9664
labels.suggest_elevate_word_link_confirm=\u8a73\u7d30
labels.suggest_elevate_word_link_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
labels.suggest_elevate_word_link_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
labels.suggest_elevate_word_button_create=\u4f5c\u6210
labels.suggest_elevate_word_button_back=\u623b\u308b
labels.suggest_elevate_word_button_confirm=\u78ba\u8a8d
labels.suggest_elevate_word_button_update=\u66f4\u65b0
labels.suggest_elevate_word_button_delete=\u524a\u9664
labels.suggest_elevate_word_button_edit=\u7de8\u96c6
labels.suggest_elevate_word_button_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
labels.suggest_elevate_word_button_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
labels.suggest_elevate_word_list_suggest_word=\u30b5\u30b8\u30a7\u30b9\u30c8\u5019\u88dc
labels.suggest_elevate_word_suggest_word=\u30b5\u30b8\u30a7\u30b9\u30c8\u5019\u88dc
labels.suggest_elevate_word_reading=\u8aad\u307f
labels.suggest_elevate_word_target_role=\u30ed\u30fc\u30eb\u540d
labels.suggest_elevate_word_target_label=\u30e9\u30d9\u30eb\u540d
labels.suggest_elevate_word_boost=\u30d6\u30fc\u30b9\u30c8\u5024
labels.suggest_elevate_word_file=\u8ffd\u52a0\u5019\u88dc\u30d5\u30a1\u30a4\u30eb
# suggest bad word
labels.suggest_bad_word_configuration=NG\u30ef\u30fc\u30c9
@ -1419,16 +1428,21 @@ labels.suggest_bad_word_link_create=\u65b0\u898f\u4f5c\u6210
labels.suggest_bad_word_link_update=\u7de8\u96c6
labels.suggest_bad_word_link_delete=\u524a\u9664
labels.suggest_bad_word_link_confirm=\u8a73\u7d30
labels.suggest_bad_word_link_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
labels.suggest_bad_word_link_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
labels.suggest_bad_word_button_create=\u4f5c\u6210
labels.suggest_bad_word_button_back=\u623b\u308b
labels.suggest_bad_word_button_confirm=\u78ba\u8a8d
labels.suggest_bad_word_button_update=\u66f4\u65b0
labels.suggest_bad_word_button_delete=\u524a\u9664
labels.suggest_bad_word_button_edit=\u7de8\u96c6
labels.suggest_bad_word_button_download=\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9
labels.suggest_bad_word_button_upload=\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9
labels.suggest_bad_word_list_suggest_word=\u30b5\u30b8\u30a7\u30b9\u30c8\u5019\u88dc
labels.suggest_bad_word_suggest_word=\u30b5\u30b8\u30a7\u30b9\u30c8\u5019\u88dc
labels.suggest_bad_word_target_role=\u30ed\u30fc\u30eb\u540d
labels.suggest_bad_word_target_label=\u30e9\u30d9\u30eb\u540d
labels.suggest_bad_word_file=NG\u30ef\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb
# CRUD PROPERTIES: BEGIN
errors.crud_invalid_mode=\u30e2\u30fc\u30c9\u304c\u9055\u3044\u307e\u3059\u3002(\u6b63\u3057\u3044\u5024\u306f {0} \u3067\u3059\u304c\u3001\u5165\u529b\u3055\u308c\u305f\u5024\u306f {1} \u306b\u306a\u3063\u3066\u3044\u307e\u3059)

View file

@ -44,6 +44,12 @@
<li class="active"><a href="#"><bean:message
key="labels.suggest_bad_word_link_confirm" /></a></li>
</c:if>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_elevate_word_link_download" />
</s:link></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_elevate_word_link_upload" />
</s:link></li>
</ul>
</div>

View file

@ -0,0 +1,63 @@
<%@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.suggest_bad_word_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="suggestBadWord" />
<tiles:put name="headerScript" type="string"></tiles:put>
<tiles:put name="body" type="string">
<h3>
<bean:message key="labels.suggest_bad_word_title_list" />
</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.suggest_bad_word_link_list" />
</s:link></li>
<li><s:link href="createpage">
<bean:message key="labels.suggest_bad_word_link_create_new" />
</s:link></li>
<li class="active"><a href="#">
<bean:message key="labels.suggest_bad_word_link_download" />
</a></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_bad_word_link_upload" />
</s:link></li>
</ul>
</div>
<%-- Edit Form: BEGIN --%>
<s:form>
<div>
<table class="bordered-table zebra-striped" style="width: 500px;">
<tbody>
<tr>
<th style="vertical-align: middle;"><bean:message
key="labels.suggest_bad_word_file" /></th>
<td style="width: 150px;text-align: center;"><input type="submit"
class="btn small" name="download"
value="<bean:message key="labels.suggest_bad_word_button_download"/>" />
</td>
</tr>
</tbody>
</table>
</div>
</s:form>
<%-- Edit Form: BEGIN --%>
</tiles:put>
</tiles:insert>

View file

@ -44,6 +44,12 @@
<li class="active"><a href="#"><bean:message
key="labels.suggest_bad_word_link_confirm" /></a></li>
</c:if>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_bad_word_link_download" />
</s:link></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_bad_word_link_upload" />
</s:link></li>
</ul>
</div>

View file

@ -32,6 +32,12 @@
<li><s:link href="createpage">
<bean:message key="labels.suggest_bad_word_link_create_new" />
</s:link></li>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_bad_word_link_download" />
</s:link></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_bad_word_link_upload" />
</s:link></li>
</ul>
</div>
<c:if test="${suggestBadWordPager.allRecordCount == 0}">

View file

@ -0,0 +1,69 @@
<%@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.suggest_bad_word_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="suggestBadWord" />
<tiles:put name="headerScript" type="string"></tiles:put>
<tiles:put name="body" type="string">
<h3>
<bean:message key="labels.suggest_bad_word_title_list" />
</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.suggest_bad_word_link_list" />
</s:link></li>
<li><s:link href="createpage">
<bean:message key="labels.suggest_bad_word_link_create_new" />
</s:link></li>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_bad_word_link_download" />
</s:link></li>
<li class="active"><a href="#">
<bean:message key="labels.suggest_bad_word_link_upload" />
</a></li>
</ul>
</div>
<%-- Edit Form: BEGIN --%>
<s:form action="upload" enctype="multipart/form-data">
<div>
<table class="bordered-table zebra-striped" style="width: 500px;">
<tbody>
<tr>
<th style="width: 150px; vertical-align: middle;"><bean:message
key="labels.suggest_bad_word_file" /></th>
<td><input type="file"
name="suggestBadWordFile" style="width: 98%;" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">
<input type="submit" class="btn small" name="upload"
value="<bean:message key="labels.suggest_bad_word_button_upload"/>" />
</td>
</tr>
</tfoot>
</table>
</div>
</s:form>
<%-- Edit Form: BEGIN --%>
</tiles:put>
</tiles:insert>

View file

@ -44,6 +44,12 @@
<li class="active"><a href="#"><bean:message
key="labels.suggest_elevate_word_link_confirm" /></a></li>
</c:if>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_elevate_word_link_download" />
</s:link></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_elevate_word_link_upload" />
</s:link></li>
</ul>
</div>

View file

@ -0,0 +1,62 @@
<%@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.suggest_elevate_word_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="suggestElevateWord" />
<tiles:put name="headerScript" type="string"></tiles:put>
<tiles:put name="body" type="string">
<h3>
<bean:message key="labels.suggest_elevate_word_title_list" />
</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.suggest_elevate_word_link_list" />
</s:link></li>
<li><s:link href="createpage">
<bean:message key="labels.suggest_elevate_word_link_create_new" />
</s:link></li>
<li class="active"><a href="#">
<bean:message key="labels.suggest_elevate_word_link_download" />
</a></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_elevate_word_link_upload" />
</s:link></li>
</ul>
</div>
<%-- Edit Form: BEGIN --%>
<s:form>
<div>
<table class="bordered-table zebra-striped" style="width: 500px;">
<tbody>
<tr>
<th style="vertical-align: middle;"><bean:message
key="labels.suggest_elevate_word_file" /></th>
<td style="width: 150px;text-align: center;"><input type="submit"
class="btn small" name="download"
value="<bean:message key="labels.suggest_elevate_word_button_download"/>" />
</td>
</tr>
</tbody>
</table>
</div>
</s:form>
<%-- Edit Form: BEGIN --%>
</tiles:put>
</tiles:insert>

View file

@ -44,6 +44,12 @@
<li class="active"><a href="#"><bean:message
key="labels.suggest_elevate_word_link_confirm" /></a></li>
</c:if>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_elevate_word_link_download" />
</s:link></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_elevate_word_link_upload" />
</s:link></li>
</ul>
</div>

View file

@ -32,6 +32,12 @@
<li><s:link href="createpage">
<bean:message key="labels.suggest_elevate_word_link_create_new" />
</s:link></li>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_elevate_word_link_download" />
</s:link></li>
<li><s:link href="uploadpage">
<bean:message key="labels.suggest_elevate_word_link_upload" />
</s:link></li>
</ul>
</div>
<c:if test="${suggestElevateWordPager.allRecordCount == 0}">

View file

@ -0,0 +1,68 @@
<%@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.suggest_elevate_word_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="suggestElevateWord" />
<tiles:put name="headerScript" type="string"></tiles:put>
<tiles:put name="body" type="string">
<h3>
<bean:message key="labels.suggest_elevate_word_title_list" />
</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.suggest_elevate_word_link_list" />
</s:link></li>
<li><s:link href="createpage">
<bean:message key="labels.suggest_elevate_word_link_create_new" />
</s:link></li>
<li><s:link href="downloadpage">
<bean:message key="labels.suggest_elevate_word_link_download" />
</s:link></li>
<li class="active"><a href="#">
<bean:message key="labels.suggest_elevate_word_link_upload" />
</a></li>
</ul>
</div>
<%-- Edit Form: BEGIN --%>
<s:form action="upload" enctype="multipart/form-data">
<div>
<table class="bordered-table zebra-striped" style="width: 500px;">
<tbody>
<tr>
<th style="width: 150px; vertical-align: middle;"><bean:message
key="labels.suggest_elevate_word_file" /></th>
<td><input type="file"
name="suggestElevateWordFile" style="width: 98%;" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="2">
<input type="submit" class="btn small" name="upload"
value="<bean:message key="labels.suggest_elevate_word_button_upload"/>" />
</td>
</tr>
</tfoot>
</table>
</div>
</s:form>
<%-- Edit Form: BEGIN --%>
</tiles:put>
</tiles:insert>