added FormValidationListeners, html tags in Link- and FileAttachmentsTable will be interpreted now.

git-svn-id: https://svn.libreccm.org/ccm/trunk@3475 8810af33-2d31-482b-a856-94f89814c4df
master
konermann 2015-06-09 19:01:07 +00:00
parent f4c2d83332
commit 825aa26231
9 changed files with 110 additions and 32 deletions

View File

@ -6,9 +6,9 @@ cms.contentassets.file_attachment.upload_new_file_label=Upload a new file
cms.contentassets.file_attachment.tableheader_file=File cms.contentassets.file_attachment.tableheader_file=File
cms.contentassets.file_attachment.tableheader_description=Description cms.contentassets.file_attachment.tableheader_description=Description
cms.contentassets.file_attachment.list_label=File attachments cms.contentassets.file_attachment.list_label=File attachments
cms.contentassets.file_attachment.already_attached=A file with the name {0} as already been attached. cms.contentassets.file_attachment.already_attached=A file with the name {0} has already been attached.
cms.contentassets.file_attachment.cancelled=Cancelled cms.contentassets.file_attachment.cancelled=Cancelled
cms.contentassets.file_attachment.caption=caption cms.contentassets.file_attachment.caption=caption:
cms.contentassets.file_attachment.file=file cms.contentassets.file_attachment.file=file
cms.contentassets.file_attachment.table.edit_attached_file=\u270d cms.contentassets.file_attachment.table.edit_attached_file=\u270d
#Beschreibung/Zwischentitel: #Beschreibung/Zwischentitel:
@ -21,3 +21,5 @@ cms.contentassets.file_attachment.table_delete=delete
cms.contentassets.file_attachment.description.too_long=The description execceds the limit of {0} characters. cms.contentassets.file_attachment.description.too_long=The description execceds the limit of {0} characters.
cms.contentassets.file_attachment.caption.too_long=The caption execceds the limit of {0} characters. cms.contentassets.file_attachment.caption.too_long=The caption execceds the limit of {0} characters.
cms.contentassets.file_attachment.title=Title: cms.contentassets.file_attachment.title=Title:
cms.contentassets.file_attachment.input_mandatory=Error: At least one of the fields must be filled out
cms.contentassets.file_attachment.desc=Description:

View File

@ -8,7 +8,7 @@ cms.contentassets.file_attachment.tableheader_description=Beschreibung
cms.contentassets.file_attachment.list_label=Dateianh\u00e4nge cms.contentassets.file_attachment.list_label=Dateianh\u00e4nge
cms.contentassets.file_attachment.already_attached=Eine Datei mit dem Namen {0} wurde bereits hinzugef\u00fcgt. cms.contentassets.file_attachment.already_attached=Eine Datei mit dem Namen {0} wurde bereits hinzugef\u00fcgt.
cms.contentassets.file_attachment.cancelled=Abgebrochen cms.contentassets.file_attachment.cancelled=Abgebrochen
cms.contentassets.file_attachment.caption=Zwischentitel cms.contentassets.file_attachment.caption=Zwischentitel:
cms.contentassets.file_attachment.file=Datei cms.contentassets.file_attachment.file=Datei
cms.contentassets.file_attachment.table.edit_attached_file=\u270d cms.contentassets.file_attachment.table.edit_attached_file=\u270d
cms.contentassets.file_attachment.caption_or_description=Beschreibung/Zwischentitel: cms.contentassets.file_attachment.caption_or_description=Beschreibung/Zwischentitel:
@ -20,3 +20,5 @@ cms.contentassets.file_attachment.table_delete=l\u00f6schen
cms.contentassets.file_attachment.description.too_long=Die Beschreibung ist l\u00e4nger als {0} Zeichen. cms.contentassets.file_attachment.description.too_long=Die Beschreibung ist l\u00e4nger als {0} Zeichen.
cms.contentassets.file_attachment.caption.too_long=Die Zwischen\u00fcberschrift ist l\u00e4nger als {0} Zeichen. cms.contentassets.file_attachment.caption.too_long=Die Zwischen\u00fcberschrift ist l\u00e4nger als {0} Zeichen.
cms.contentassets.file_attachment.title=Titel: cms.contentassets.file_attachment.title=Titel:
cms.contentassets.file_attachment.input_mandatory=Fehler: Es muss mindestens eins der Felder ausgef\u00fcllt werden.
cms.contentassets.file_attachment.desc=Beschreibung:

View File

@ -137,9 +137,6 @@ public class FileAttachmentCaptionForm extends Form
add(m_title); add(m_title);
m_captionText = new DHTMLEditor("caption"); m_captionText = new DHTMLEditor("caption");
// m_captionText.setCols(10);
// m_captionText.setRows(1);
m_captionText.addValidationListener(new NotNullValidationListener());
m_captionText.addValidationListener(new StringInRangeValidationListener( m_captionText.addValidationListener(new StringInRangeValidationListener(
0, 0,
s_config.getFileAttachmentDescriptionMaxLength(), s_config.getFileAttachmentDescriptionMaxLength(),
@ -162,7 +159,15 @@ public class FileAttachmentCaptionForm extends Form
@Override @Override
public void validate(final FormSectionEvent event) throws FormProcessException { public void validate(final FormSectionEvent event) throws FormProcessException {
// do nothing // test if the user made an input
PageState state = event.getPageState();
String title = (String) m_title.getValue(state);
String desc = (String) m_captionText.getValue(state);
if ((title.length() + desc.length()) <= 0) {
throw new FormProcessException(FileAttachmentGlobalizationUtil
.globalize(
"cms.contentassets.file_attachment.input_mandatory"));
}
} }
// process: update the mime type and content // process: update the mime type and content

View File

@ -66,7 +66,7 @@ public class FileAttachmentsTable extends Table {
m_fileModel = fileModel; m_fileModel = fileModel;
setRowSelectionModel(m_fileModel); setRowSelectionModel(m_fileModel);
getColumn(0).setCellRenderer(new FileLinkCellRenderer()); getColumn(0).setCellRenderer(new FileLinkCellRenderer());
//column 1 is description/caption getColumn(1).setCellRenderer(new DescriptionCellRenderer());
getColumn(2).setCellRenderer(new EditLinkCellRenderer()); getColumn(2).setCellRenderer(new EditLinkCellRenderer());
getColumn(3).setCellRenderer(new DeleteLinkCellRenderer()); getColumn(3).setCellRenderer(new DeleteLinkCellRenderer());
getColumn(4).setCellRenderer(new MoveUpLinkCellRenderer()); getColumn(4).setCellRenderer(new MoveUpLinkCellRenderer());
@ -273,10 +273,13 @@ public class FileAttachmentsTable extends Table {
String cap = attachment.getAdditionalInfo(); String cap = attachment.getAdditionalInfo();
if (cap != null) { if (cap != null) {
if (attachment.getAdditionalInfo().equals("caption")) { if (attachment.getAdditionalInfo().equals("caption")) {
if (attachment.getDisplayName() != null && attachment.getDisplayName().equals("iscaption")) { if (attachment.getDisplayName() != null && attachment.getDisplayName().equals("iscaption")) {
return new Label(" "); return new Label(" ");
} }
return new Label(attachment.getDisplayName()); Label label = new Label(attachment.getDisplayName());
label.setOutputEscaping(false);
return label;
} }
} }
@ -284,4 +287,23 @@ public class FileAttachmentsTable extends Table {
Utilities.getAssetURL(attachment)); Utilities.getAssetURL(attachment));
} }
} }
private class DescriptionCellRenderer implements TableCellRenderer {
public Component getComponent(final Table table,
PageState state,
Object value,
boolean isSelected,
Object key,
int row,
int column) {
final String downloadKey = (String) key;
FileAttachment attachment = new FileAttachment(new BigDecimal(downloadKey));
Label label = new Label(attachment.getDescription());
label.setOutputEscaping(false);
return label;
}
}
} }

View File

@ -50,10 +50,12 @@ public class FileDescriptionForm extends FormSection implements
.instanceOf(); .instanceOf();
private TextArea m_title; private TextArea m_title;
private TextArea m_descriptionDHTML;
private TextArea m_description; private TextArea m_description;
private FileAttachmentSelectionModel m_fileModel; private FileAttachmentSelectionModel m_fileModel;
private Submit m_cancel; private Submit m_cancel;
private Label titleLabel; private Label titleLabel;
private Label descLabel;
/** /**
* Creates a new form to edit the FileAttachment description by the item * Creates a new form to edit the FileAttachment description by the item
@ -88,9 +90,9 @@ public class FileDescriptionForm extends FormSection implements
add(titleLabel); add(titleLabel);
add(m_title); add(m_title);
m_description = new DHTMLEditor("description"); m_descriptionDHTML = new DHTMLEditor("description");
m_description.addValidationListener(new NotNullValidationListener()); // m_descriptionDHTML.addValidationListener(new NotNullValidationListener());
m_description.addValidationListener(new StringInRangeValidationListener( m_descriptionDHTML.addValidationListener(new StringInRangeValidationListener(
0, 0,
s_config.getFileAttachmentDescriptionMaxLength(), s_config.getFileAttachmentDescriptionMaxLength(),
FileAttachmentGlobalize.DescriptionTooLong(s_config.getFileAttachmentDescriptionMaxLength()))); FileAttachmentGlobalize.DescriptionTooLong(s_config.getFileAttachmentDescriptionMaxLength())));
@ -98,7 +100,14 @@ public class FileDescriptionForm extends FormSection implements
add(new Label(FileAttachmentGlobalizationUtil add(new Label(FileAttachmentGlobalizationUtil
.globalize("cms.contentassets.file_attachment.caption_or_description"))); .globalize("cms.contentassets.file_attachment.caption_or_description")));
add(m_descriptionDHTML);
m_description = new TextArea("desc");
descLabel = new Label(FileAttachmentGlobalizationUtil
.globalize("cms.contentassets.file_attachment.desc"));
add(descLabel);
add(m_description); add(m_description);
} }
/** /**
@ -126,10 +135,24 @@ public class FileDescriptionForm extends FormSection implements
@Override @Override
public void validate(FormSectionEvent event) throws FormProcessException { public void validate(FormSectionEvent event) throws FormProcessException {
PageState state = event.getPageState(); PageState state = event.getPageState();
FormData data = event.getFormData(); FileAttachment file = m_fileModel.getSelectedFileAttachment(state);
// test if the user made an input
String description = (String) m_description.getValue(state); int inputlength = 0;
// not performing any check if (file.getAdditionalInfo() != null && file.getAdditionalInfo().equals("caption")) {
String title = (String) m_title.getValue(state);
String desc = (String) m_descriptionDHTML.getValue(state);
inputlength = title.length() + desc.length();
} else {
inputlength = ((String) m_description.getValue(state)).length();
}
if (inputlength <= 0) {
throw new FormProcessException(FileAttachmentGlobalizationUtil
.globalize(
"cms.contentassets.file_attachment.input_mandatory"));
}
} }
/** /**
@ -144,18 +167,27 @@ public class FileDescriptionForm extends FormSection implements
if (m_fileModel.isSelected(state)) { if (m_fileModel.isSelected(state)) {
setVisible(state, true); setVisible(state, true);
FileAttachment file = m_fileModel.getSelectedFileAttachment(state); FileAttachment file = m_fileModel.getSelectedFileAttachment(state);
m_description.setValue(state, file.getDescription());
if (file.getAdditionalInfo() != null && file.getAdditionalInfo().equals("caption")) { if (file.getAdditionalInfo() != null && file.getAdditionalInfo().equals("caption")) {
m_description.setVisible(state, false);
descLabel.setVisible(state, false);
m_descriptionDHTML.setValue(state, file.getDescription());
m_descriptionDHTML.setVisible(state, true);
String name = file.getName(); String name = file.getName();
m_title.setVisible(state, true);
if (name != null && name.equals("iscaption")) { if (name != null && name.equals("iscaption")) {
m_title.setValue(state, null); m_title.setValue(state, null);
m_title.setVisible(state, true);
} else { } else {
m_title.setValue(state, name); m_title.setValue(state, name);
} }
} else { } else {
m_title.setVisible(state, false); m_title.setVisible(state, false);
titleLabel.setVisible(state, false); titleLabel.setVisible(state, false);
m_descriptionDHTML.setVisible(state, false);
m_description.setVisible(state, true);
descLabel.setVisible(state, true);
m_description.setValue(state, file.getDescription());
} }
} else { } else {
setVisible(state, false); setVisible(state, false);
@ -180,15 +212,16 @@ public class FileDescriptionForm extends FormSection implements
if (m_fileModel.isSelected(state)) { if (m_fileModel.isSelected(state)) {
FileAttachment file = m_fileModel FileAttachment file = m_fileModel
.getSelectedFileAttachment(state); .getSelectedFileAttachment(state);
file.setDescription((String) m_description.getValue(state));
if (file.getAdditionalInfo().equals("caption")) { if (file.getAdditionalInfo() != null && file.getAdditionalInfo().equals("caption")) {
file.setDescription((String) m_descriptionDHTML.getValue(state));
if (m_title.getValue(state) != null) { if (m_title.getValue(state) != null) {
file.setName((String) m_title.getValue(state)); file.setName((String) m_title.getValue(state));
} else { } else {
file.setName("iscaption"); file.setName("iscaption");
} }
} else {
file.setDescription((String) m_description.getValue(state));
} }
} }
m_fileModel.clearSelection(state); m_fileModel.clearSelection(state);

View File

@ -9,3 +9,4 @@ cms.contentassets.ui.related_link.caption=Caption:
cms.contentassets.ui.related_link.Description=Description/Caption: cms.contentassets.ui.related_link.Description=Description/Caption:
cms.contentassets.ui.related_link.title=Title: cms.contentassets.ui.related_link.title=Title:
cms.contentassets.ui.related_link.description=Description: cms.contentassets.ui.related_link.description=Description:
cms.contentassets.ui.related_link.input_mandatory=Error: At least one of the fields must be filled out

View File

@ -9,3 +9,4 @@ cms.contentassets.ui.related_link.caption=Zwischentitel:
cms.contentassets.ui.related_link.Description=Beschreibung/Zwischentitel: cms.contentassets.ui.related_link.Description=Beschreibung/Zwischentitel:
cms.contentassets.ui.related_link.title=Titel: cms.contentassets.ui.related_link.title=Titel:
cms.contentassets.ui.related_link.description=Beschreibung: cms.contentassets.ui.related_link.description=Beschreibung:
cms.contentassets.ui.related_link.input_mandatory=Fehler: Es muss mindestens eins der Felder ausgef\u00fcllt werden.

View File

@ -138,7 +138,7 @@ public class RelatedLinkCaptionForm extends FormSection
/* Add the standard description field */ /* Add the standard description field */
m_description = new DHTMLEditor("description"); m_description = new DHTMLEditor("description");
m_description.addValidationListener(new NotNullValidationListener()); // m_description.addValidationListener(new NotNullValidationListener());
m_description.addValidationListener(new StringLengthValidationListener(CMSConfig m_description.addValidationListener(new StringLengthValidationListener(CMSConfig
.getInstanceOf().getLinkDescMaxLength())); .getInstanceOf().getLinkDescMaxLength()));
add(new Label(RelatedLinkGlobalizationUtil.globalize("cms.contentassets.ui.related_link.Description"))); add(new Label(RelatedLinkGlobalizationUtil.globalize("cms.contentassets.ui.related_link.Description")));
@ -237,8 +237,15 @@ public class RelatedLinkCaptionForm extends FormSection
public void validate(FormSectionEvent event) public void validate(FormSectionEvent event)
throws FormProcessException { throws FormProcessException {
// test if the user has made an input
PageState state = event.getPageState();
String title = (String) m_title.getValue(state);
String desc = (String) m_description.getValue(state);
if ((title.length() + desc.length()) <= 0) {
throw new FormProcessException(RelatedLinkGlobalizationUtil
.globalize(
"cms.contentassets.ui.related_link.input_mandatory"));
}
} }
/** /**

View File

@ -207,6 +207,7 @@ public class LinkTable extends Table {
if (link.getTargetURI() != null && link.getTargetURI().equals("caption")) { if (link.getTargetURI() != null && link.getTargetURI().equals("caption")) {
Label label = new Label(link.getTitle()); Label label = new Label(link.getTitle());
label.setOutputEscaping(false);
return label; return label;
} }
String url = link.getInternalOrExternalURI(state); String url = link.getInternalOrExternalURI(state);
@ -215,11 +216,15 @@ public class LinkTable extends Table {
return extLink; return extLink;
} else if (column == m_descCol.getModelIndex()) { } else if (column == m_descCol.getModelIndex()) {
if (isSelected) { // if (isSelected) {
return new Label(link.getDescription(), Label.BOLD); // Label label = new Label(link.getDescription(), Label.BOLD);
} else { // label.setOutputEscaping(false);
return new Label(link.getDescription()); // return label;
} // } else {
Label label = new Label(link.getDescription());
label.setOutputEscaping(false);
return label;
// }
} else if (column == m_editCol.getModelIndex()) { } else if (column == m_editCol.getModelIndex()) {
if (Boolean.TRUE.equals(m_editor.get(state))) { if (Boolean.TRUE.equals(m_editor.get(state))) {
if (isSelected) { if (isSelected) {