- New ImageStepDisplay now needs less width

- Some formatting etc. in SciDepartmentMembersTab


git-svn-id: https://svn.libreccm.org/ccm/trunk@2699 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2014-06-13 18:09:26 +00:00
parent 8c3b2a4ab4
commit 48b65ada10
8 changed files with 283 additions and 184 deletions

View File

@ -9,3 +9,12 @@ cms.contentassets.ui.image_step.edit_attached_image=Edit caption
cms.contentassets.ui.image_step.caption=Caption cms.contentassets.ui.image_step.caption=Caption
cms.contentassets.ui.image_step.image_table.thumbnail=Thumbnail cms.contentassets.ui.image_step.image_table.thumbnail=Thumbnail
cms.contentassets.ui.image_step.remove_attached_image.confirm=Are you sure to remove this attached image? cms.contentassets.ui.image_step.remove_attached_image.confirm=Are you sure to remove this attached image?
cms.contentassets.ui.image_step.image_table.properties=Image properties
cms.contentassets.ui.image_step.table.edit_attached_image=\u270D
cms.contentassets.ui.image_step.table.move_attached_image_up=\u2B06
cms.contentassets.ui.image_step.table.move_attached_image_down=\u2B07
cms.contentassets.ui.image_step.table.remove_attached_image=\u2716
cms.contentassets.ui.image_step.table.edit_attached_image.header=
cms.contentassets.ui.image_step.table.move_attached_image_up.header=
cms.contentassets.ui.image_step.table.move_attached_image_down.header=
cms.contentassets.ui.image_step.table.remove_attached_image.header=

View File

@ -9,3 +9,12 @@ cms.contentassets.ui.image_step.edit_attached_image=Bildunterschrift editieren
cms.contentassets.ui.image_step.caption=Bildunterschrift cms.contentassets.ui.image_step.caption=Bildunterschrift
cms.contentassets.ui.image_step.image_table.thumbnail=Vorschau cms.contentassets.ui.image_step.image_table.thumbnail=Vorschau
cms.contentassets.ui.image_step.remove_attached_image.confirm=Sind Sie sicher das Sie die Zuordnung dieses Bildes entfernen m\u00f6chten? cms.contentassets.ui.image_step.remove_attached_image.confirm=Sind Sie sicher das Sie die Zuordnung dieses Bildes entfernen m\u00f6chten?
cms.contentassets.ui.image_step.image_table.properties=Bildeigenschaften
cms.contentassets.ui.image_step.table.edit_attached_image=\u270D
cms.contentassets.ui.image_step.table.move_attached_image_up=\u2B06
cms.contentassets.ui.image_step.table.move_attached_image_down=\u2B07
cms.contentassets.ui.image_step.table.remove_attached_image=\u2716
cms.contentassets.ui.image_step.table.edit_attached_image.header=
cms.contentassets.ui.image_step.table.move_attached_image_up.header=
cms.contentassets.ui.image_step.table.move_attached_image_down.header=
cms.contentassets.ui.image_step.table.remove_attached_image.header=

View File

@ -9,3 +9,12 @@ cms.contentassets.ui.image_step.edit_attached_image=Edit caption
cms.contentassets.ui.image_step.caption=Caption cms.contentassets.ui.image_step.caption=Caption
cms.contentassets.ui.image_step.image_table.thumbnail=Thumbnail cms.contentassets.ui.image_step.image_table.thumbnail=Thumbnail
cms.contentassets.ui.image_step.remove_attached_image.confirm=cms.contentassets.ui.image_step.remove_attached_image.confirm cms.contentassets.ui.image_step.remove_attached_image.confirm=cms.contentassets.ui.image_step.remove_attached_image.confirm
cms.contentassets.ui.image_step.image_table.properties=Image properties
cms.contentassets.ui.image_step.table.edit_attached_image=\u270D
cms.contentassets.ui.image_step.table.move_attached_image_up=\u2B06
cms.contentassets.ui.image_step.table.move_attached_image_down=\u2B07
cms.contentassets.ui.image_step.table.remove_attached_image=\u2716
cms.contentassets.ui.image_step.table.edit_attached_image.header=
cms.contentassets.ui.image_step.table.move_attached_image_up.header=
cms.contentassets.ui.image_step.table.move_attached_image_down.header=
cms.contentassets.ui.image_step.table.remove_attached_image.header=

View File

@ -18,8 +18,10 @@
*/ */
package com.arsdigita.cms.contentassets.ui; package com.arsdigita.cms.contentassets.ui;
import com.arsdigita.bebop.BoxPanel;
import com.arsdigita.bebop.Component; import com.arsdigita.bebop.Component;
import com.arsdigita.bebop.ControlLink; import com.arsdigita.bebop.ControlLink;
import com.arsdigita.bebop.Image;
import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Label;
import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.Table; import com.arsdigita.bebop.Table;
@ -33,6 +35,7 @@ import com.arsdigita.bebop.table.TableModelBuilder;
import com.arsdigita.cms.CMS; import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentItem; import com.arsdigita.cms.ContentItem;
import com.arsdigita.cms.ImageAsset; import com.arsdigita.cms.ImageAsset;
import com.arsdigita.cms.ReusableImageAsset;
import com.arsdigita.cms.Service; import com.arsdigita.cms.Service;
import com.arsdigita.cms.contentassets.ItemImageAttachment; import com.arsdigita.cms.contentassets.ItemImageAttachment;
import com.arsdigita.cms.contentassets.util.ImageStepGlobalizationUtil; import com.arsdigita.cms.contentassets.util.ImageStepGlobalizationUtil;
@ -59,16 +62,23 @@ public class ImageStepDisplayTable extends Table {
private final static String TABLE_COL_UP = "table_col_up"; private final static String TABLE_COL_UP = "table_col_up";
private final static String TABLE_COL_DOWN = "table_col_down"; private final static String TABLE_COL_DOWN = "table_col_down";
private final static int TABLE_COL_INDEX_THUMBNAIL = 0; private final static int TABLE_COL_INDEX_THUMBNAIL = 0;
private final static int TABLE_COL_INDEX_NAME = 1; private final static int TABLE_COL_INDEX_PROPS = 1;
private final static int TABLE_COL_INDEX_DIMENSIONS = 2; //private final static int TABLE_COL_INDEX_NAME = 1;
private final static int TABLE_COL_INDEX_TYPE = 3; //private final static int TABLE_COL_INDEX_DIMENSIONS = 2;
private final static int TABLE_COL_INDEX_CAPTION = 4; //private final static int TABLE_COL_INDEX_TYPE = 3;
private final static int TABLE_COL_INDEX_EDIT = 5; // private final static int TABLE_COL_INDEX_CAPTION = 4;
private final static int TABLE_COL_INDEX_UP = 6; // private final static int TABLE_COL_INDEX_EDIT = 5;
private final static int TABLE_COL_INDEX_DOWN = 7; // private final static int TABLE_COL_INDEX_UP = 6;
private final static int TABLE_COL_INDEX_DEL = 8; // private final static int TABLE_COL_INDEX_DOWN = 7;
// private final static int TABLE_COL_INDEX_DEL = 8;
private final static int TABLE_COL_INDEX_CAPTION = 2;
private final static int TABLE_COL_INDEX_EDIT = 3;
private final static int TABLE_COL_INDEX_UP = 4;
private final static int TABLE_COL_INDEX_DOWN = 5;
private final static int TABLE_COL_INDEX_DEL = 6;
private final static int UP = -1; private final static int UP = -1;
private final static int DOWN = 1; private final static int DOWN = 1;
private static final String CONTROL_LINK_FONT_SIZE = "font-size: 200%;";
private final ImageStep imageStep; private final ImageStep imageStep;
@ -85,19 +95,23 @@ public class ImageStepDisplayTable extends Table {
"cms.contentassets.ui.image_step.image_table.thumbnail"))); "cms.contentassets.ui.image_step.image_table.thumbnail")));
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
TABLE_COL_INDEX_NAME, TABLE_COL_INDEX_PROPS,
GlobalizationUtil.globalize( ImageStepGlobalizationUtil
"cms.contentasset.image.ui.display.name"))); .globalize("cms.contentassets.ui.image_step.image_table.properties")));
columnModel.add(new TableColumn(
TABLE_COL_INDEX_DIMENSIONS,
GlobalizationUtil.globalize("cms.contentasset.image.ui.display.dimensions")));
columnModel.add(new TableColumn(
TABLE_COL_INDEX_TYPE,
GlobalizationUtil.globalize(
"cms.contentasset.image.ui.display.type")));
// columnModel.add(new TableColumn(
// TABLE_COL_INDEX_NAME,
// GlobalizationUtil.globalize(
// "cms.contentasset.image.ui.display.name")));
//
// columnModel.add(new TableColumn(
// TABLE_COL_INDEX_DIMENSIONS,
// GlobalizationUtil.globalize("cms.contentasset.image.ui.display.dimensions")));
//
// columnModel.add(new TableColumn(
// TABLE_COL_INDEX_TYPE,
// GlobalizationUtil.globalize(
// "cms.contentasset.image.ui.display.type")));
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
TABLE_COL_INDEX_CAPTION, TABLE_COL_INDEX_CAPTION,
GlobalizationUtil.globalize("cms.contentasset.image.ui.caption"))); GlobalizationUtil.globalize("cms.contentasset.image.ui.caption")));
@ -105,38 +119,39 @@ public class ImageStepDisplayTable extends Table {
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
TABLE_COL_INDEX_EDIT, TABLE_COL_INDEX_EDIT,
ImageStepGlobalizationUtil.globalize( ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.edit_attached_image"), "cms.contentassets.ui.image_step.table.edit_attached_image.header"),
TABLE_COL_EDIT)); TABLE_COL_EDIT));
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
TABLE_COL_INDEX_UP, TABLE_COL_INDEX_UP,
ImageStepGlobalizationUtil.globalize( ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.move_attached_image_up"), "cms.contentassets.ui.image_step.table.move_attached_image_up.header"),
TABLE_COL_UP)); TABLE_COL_UP));
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
TABLE_COL_INDEX_DOWN, TABLE_COL_INDEX_DOWN,
ImageStepGlobalizationUtil.globalize( ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.move_attached_image_down"), "cms.contentassets.ui.image_step.table.move_attached_image_down.header"),
TABLE_COL_DOWN)); TABLE_COL_DOWN));
columnModel.add(new TableColumn( columnModel.add(new TableColumn(
TABLE_COL_INDEX_DEL, TABLE_COL_INDEX_DEL,
ImageStepGlobalizationUtil.globalize( ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.remove_attached_image"), "cms.contentassets.ui.image_step.table.remove_attached_image.header"),
TABLE_COL_DEL)); TABLE_COL_DEL));
setModelBuilder(new ImageTableModelBuilder(imageStep)); setModelBuilder(new ImageTableModelBuilder(imageStep));
columnModel.get(0).setCellRenderer(new ThumbnailCellRenderer()); columnModel.get(TABLE_COL_INDEX_THUMBNAIL).setCellRenderer(new ThumbnailCellRenderer());
columnModel.get(1).setCellRenderer(new NameCellRenderer()); columnModel.get(TABLE_COL_INDEX_PROPS).setCellRenderer(new PropertiesCellRenderer());
columnModel.get(2).setCellRenderer(new DimensionsCellRenderer()); // columnModel.get(TABLE_COL_INDEX_NAME).setCellRenderer(new NameCellRenderer());
columnModel.get(3).setCellRenderer(new TypeCellRenderer()); // columnModel.get(TABLE_COL_INDEX_DIMENSIONS).setCellRenderer(new DimensionsCellRenderer());
columnModel.get(4).setCellRenderer(new CaptionCellRenderer()); // columnModel.get(TABLE_COL_INDEX_TYPE).setCellRenderer(new TypeCellRenderer());
columnModel.get(5).setCellRenderer(new EditCellRenderer()); columnModel.get(TABLE_COL_INDEX_CAPTION).setCellRenderer(new CaptionCellRenderer());
columnModel.get(6).setCellRenderer(new UpCellRenderer()); columnModel.get(TABLE_COL_INDEX_EDIT).setCellRenderer(new EditCellRenderer());
columnModel.get(7).setCellRenderer(new DownCellRenderer()); columnModel.get(TABLE_COL_INDEX_UP).setCellRenderer(new UpCellRenderer());
columnModel.get(8).setCellRenderer(new DeleteCellRenderer()); columnModel.get(TABLE_COL_INDEX_DOWN).setCellRenderer(new DownCellRenderer());
columnModel.get(TABLE_COL_INDEX_DEL).setCellRenderer(new DeleteCellRenderer());
addTableActionListener(new ImageStepTableActionListener()); addTableActionListener(new ImageStepTableActionListener());
@ -195,27 +210,29 @@ public class ImageStepDisplayTable extends Table {
switch (columnIndex) { switch (columnIndex) {
case TABLE_COL_INDEX_THUMBNAIL: case TABLE_COL_INDEX_THUMBNAIL:
return image; return image;
case TABLE_COL_INDEX_NAME: case TABLE_COL_INDEX_PROPS:
return image.getImage().getName(); return image;
case TABLE_COL_INDEX_DIMENSIONS: // case TABLE_COL_INDEX_NAME:
return String.format("%sx%s px", image.getImage().getWidth().toString(), // return image.getImage().getName();
image.getImage().getHeight().toString()); // case TABLE_COL_INDEX_DIMENSIONS:
case TABLE_COL_INDEX_TYPE: // return String.format("%sx%s px", image.getImage().getWidth().toString(),
return image.getImage().getMimeType().getLabel(); // image.getImage().getHeight().toString());
// case TABLE_COL_INDEX_TYPE:
// return image.getImage().getMimeType().getLabel();
case TABLE_COL_INDEX_CAPTION: case TABLE_COL_INDEX_CAPTION:
return image.getCaption(); return image.getCaption();
case TABLE_COL_INDEX_EDIT: case TABLE_COL_INDEX_EDIT:
return ImageStepGlobalizationUtil.globalize( return ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.edit_attached_image"); "cms.contentassets.ui.image_step.table.edit_attached_image");
case TABLE_COL_INDEX_UP: case TABLE_COL_INDEX_UP:
return ImageStepGlobalizationUtil.globalize( return ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.move_attached_image_up"); "cms.contentassets.ui.image_step.table.move_attached_image_up");
case TABLE_COL_INDEX_DOWN: case TABLE_COL_INDEX_DOWN:
return ImageStepGlobalizationUtil.globalize( return ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.move_attached_image_down"); "cms.contentassets.ui.image_step.table.move_attached_image_down");
case TABLE_COL_INDEX_DEL: case TABLE_COL_INDEX_DEL:
return ImageStepGlobalizationUtil.globalize( return ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.remove_attached_image"); "cms.contentassets.ui.image_step.table.remove_attached_image");
default: default:
return null; return null;
@ -280,6 +297,31 @@ public class ImageStepDisplayTable extends Table {
} }
private class PropertiesCellRenderer extends LockableImpl implements TableCellRenderer {
@Override
public Component getComponent(final Table table,
final PageState state,
final Object value,
final boolean isSelected,
final Object key,
final int row,
final int column) {
final ItemImageAttachment attachment = (ItemImageAttachment) value;
final ReusableImageAsset image = attachment.getImage();
final BoxPanel panel = new BoxPanel(BoxPanel.VERTICAL);
panel.add(new Label(image.getName()));
panel.add(new Label(String.format("%sx%s px", image.getWidth().toString(),
image.getHeight().toString())));
panel.add(new Label(image.getMimeType().getLabel()));
return panel;
}
}
private class NameCellRenderer extends LockableImpl implements TableCellRenderer { private class NameCellRenderer extends LockableImpl implements TableCellRenderer {
@Override @Override
@ -359,12 +401,13 @@ public class ImageStepDisplayTable extends Table {
item); item);
if (canEdit) { if (canEdit) {
return new ControlLink(new Label((GlobalizedMessage) value)); final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
link.setStyleAttr(CONTROL_LINK_FONT_SIZE);
return link;
} else { } else {
return new Label(""); return new Label("");
} }
} }
} }
private class UpCellRenderer extends LockableImpl implements TableCellRenderer { private class UpCellRenderer extends LockableImpl implements TableCellRenderer {
@ -381,7 +424,9 @@ public class ImageStepDisplayTable extends Table {
//First row, don't show up link //First row, don't show up link
return new Label(""); return new Label("");
} else { } else {
return new ControlLink(new Label((GlobalizedMessage) value)); final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
link.setStyleAttr(CONTROL_LINK_FONT_SIZE);
return link;
} }
} }
@ -404,7 +449,9 @@ public class ImageStepDisplayTable extends Table {
//Last row in table, don't show down link //Last row in table, don't show down link
return new Label(""); return new Label("");
} else { } else {
return new ControlLink(new Label((GlobalizedMessage) value)); final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
link.setStyleAttr(CONTROL_LINK_FONT_SIZE);
return link;
} }
} }
@ -432,7 +479,7 @@ public class ImageStepDisplayTable extends Table {
final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value)); final ControlLink link = new ControlLink(new Label((GlobalizedMessage) value));
link.setConfirmation(ImageStepGlobalizationUtil.globalize( link.setConfirmation(ImageStepGlobalizationUtil.globalize(
"cms.contentassets.ui.image_step.remove_attached_image.confirm")); "cms.contentassets.ui.image_step.remove_attached_image.confirm"));
link.setStyleAttr(CONTROL_LINK_FONT_SIZE);
return link; return link;
} else { } else {
return new Label(""); return new Label("");

View File

@ -25,7 +25,7 @@ import com.arsdigita.util.parameter.Parameter;
import com.arsdigita.util.parameter.StringParameter; import com.arsdigita.util.parameter.StringParameter;
/** /**
* Configuration for SciDepartment. * Configuration for SciDepartment.
* *
* @author Jens Pelzetter * @author Jens Pelzetter
* @version $Id$ * @version $Id$
@ -55,117 +55,107 @@ public class SciDepartmentConfig extends AbstractConfig {
public SciDepartmentConfig() { public SciDepartmentConfig() {
enableSubDepartmentsStep = enableSubDepartmentsStep = new BooleanParameter(
new BooleanParameter( "com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step",
"com.arsdigita.cms.contenttypes.scidepartment.enable.subdepartments_step", Parameter.REQUIRED,
Parameter.REQUIRED, Boolean.TRUE);
Boolean.TRUE);
subDepartmentsStepSortKey = subDepartmentsStepSortKey = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.subdepartments_step_sortkey",
"com.arsdigita.cms.contenttypes.scidepartment.subdepartments_step_sortkey", Parameter.REQUIRED,
Parameter.REQUIRED, 10);
10);
enableSuperDepartmentsStep = enableSuperDepartmentsStep = new BooleanParameter(
new BooleanParameter( "com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step",
"com.arsdigita.cms.contenttypes.scidepartment.enable.super_departments_step", Parameter.REQUIRED,
Parameter.REQUIRED, Boolean.TRUE);
Boolean.TRUE);
superDepartmentsStepSortKey = superDepartmentsStepSortKey = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.superdepartments_step_sortkey",
"com.arsdigita.cms.contenttypes.scidepartment.superdepartments_step_sortkey", Parameter.REQUIRED,
Parameter.REQUIRED, 20);
20);
enableProjectsStep = enableProjectsStep = new BooleanParameter(
new BooleanParameter( "com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step",
"com.arsdigita.cms.contenttypes.scidepartment.enable.projects_step", Parameter.REQUIRED,
Parameter.REQUIRED, Boolean.TRUE);
Boolean.TRUE);
projectsStepSortKey = projectsStepSortKey = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.projects_step_sortkey",
"com.arsdigita.cms.contenttypes.scidepartment.projects_step_sortkey", Parameter.REQUIRED,
Parameter.REQUIRED, 30);
30);
enableProjectDepartmentsStep = enableProjectDepartmentsStep = new BooleanParameter(
new BooleanParameter( "com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step",
"com.arsdigita.cms.contenttypes.scidepartment.enable.project_departments_step", Parameter.REQUIRED,
Parameter.REQUIRED, Boolean.TRUE);
Boolean.TRUE);
projectDepartmentsStepSortKey = projectDepartmentsStepSortKey = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.project_departments_step_sortkey",
"com.arsdigita.cms.contenttypes.scidepartment.project_departments_step_sortkey", Parameter.REQUIRED,
Parameter.REQUIRED, 40);
40);
shortDescMaxLength = shortDescMaxLength = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length",
"com.arsdigita.cms.contenttypes.scidepartment.short_desc.max_length", Parameter.REQUIRED,
Parameter.REQUIRED, 500);
500);
enableDescriptionDhtml = enableDescriptionDhtml = new BooleanParameter(
new BooleanParameter( "com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable",
"com.arsdigita.cms.contenttypes.scidepartment.description.dhtml_enable", Parameter.REQUIRED,
Parameter.REQUIRED, Boolean.TRUE);
Boolean.TRUE);
permittedPersonType = permittedPersonType = new StringParameter(
new StringParameter( "com.arsdigita.cms.contenttypes.sciproject.permitted_person_type",
"com.arsdigita.cms.contenttypes.sciproject.permitted_person_type", Parameter.REQUIRED,
Parameter.REQUIRED, "com.arsdigita.cms.contenttypes.GenericPerson");
"com.arsdigita.cms.contenttypes.GenericPerson");
tabs = tabs = new StringParameter(
new StringParameter( "com.arsdigita.cms.contenttypes.sciproject.tabs",
"com.arsdigita.cms.contenttypes.sciproject.tabs", Parameter.REQUIRED,
Parameter.REQUIRED, "summary:com.arsdigita.cms.contenttypes.ui.SciDepartmentSummaryTab;desc:com.arsdigita.cms.contenttypes.ui.SciDepartmentDescTab;members:com.arsdigita.cms.contenttypes.ui.SciDepartmentMembersTab;projects:com.arsdigita.cms.contenttypes.ui.SciDepartmentProjectsTab;publications:com.arsdigita.cms.contenttypes.ui.SciDepartmentPublicationsTab");
"summary:com.arsdigita.cms.contenttypes.ui.SciDepartmentSummaryTab;desc:com.arsdigita.cms.contenttypes.ui.SciDepartmentDescTab;members:com.arsdigita.cms.contenttypes.ui.SciDepartmentMembersTab;projects:com.arsdigita.cms.contenttypes.ui.SciDepartmentProjectsTab;publications:com.arsdigita.cms.contenttypes.ui.SciDepartmentPublicationsTab");
activeStatus = new StringParameter( activeStatus = new StringParameter(
"com.arsdigita.cms.contenttypes.scidepartment.summarytab.status.active", "com.arsdigita.cms.contenttypes.scidepartment.summarytab.status.active",
Parameter.REQUIRED, Parameter.REQUIRED,
"active"); "active");
headRole = new StringParameter( headRole = new StringParameter(
"com.arsdigita.cms.contenttypes.scidepartment.heads.role", "com.arsdigita.cms.contenttypes.scidepartment.heads.role",
Parameter.REQUIRED, Parameter.REQUIRED,
"head"); "head");
viceHeadRole = new StringParameter( viceHeadRole = new StringParameter(
"com.arsdigita.cms.contenttypes.scidepartment.viceheads.role", "com.arsdigita.cms.contenttypes.scidepartment.viceheads.role",
Parameter.REQUIRED, Parameter.REQUIRED,
"vicehead"); "vicehead");
secretariatRole = new StringParameter( secretariatRole = new StringParameter(
"com.arsdigita.cms.contenttypes.scidepartment.secretariat.role", "com.arsdigita.cms.contenttypes.scidepartment.secretariat.role",
Parameter.REQUIRED, Parameter.REQUIRED,
"secretariat"); "secretariat");
showHeadInList = new BooleanParameter( showHeadInList = new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciproject.listview.show_head", "com.arsdigita.cms.contenttypes.sciproject.listview.show_head",
Parameter.REQUIRED, Parameter.REQUIRED,
Boolean.TRUE); Boolean.TRUE);
showViceHeadInList = new BooleanParameter( showViceHeadInList = new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciproject.listview.show_vicehead", "com.arsdigita.cms.contenttypes.sciproject.listview.show_vicehead",
Parameter.REQUIRED, Parameter.REQUIRED,
Boolean.TRUE); Boolean.TRUE);
showSecretriatInList = new BooleanParameter( showSecretriatInList = new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciproject.listview.show_secretriat", "com.arsdigita.cms.contenttypes.sciproject.listview.show_secretriat",
Parameter.REQUIRED, Parameter.REQUIRED,
Boolean.TRUE); Boolean.TRUE);
listShowRoleContacts = new BooleanParameter( listShowRoleContacts = new BooleanParameter(
"com.arsdigita.cms.contenttypes.sciproject.listview.show_role_contacts", "com.arsdigita.cms.contenttypes.sciproject.listview.show_role_contacts",
Parameter.REQUIRED, Parameter.REQUIRED,
Boolean.TRUE); Boolean.TRUE);
register(enableSubDepartmentsStep); register(enableSubDepartmentsStep);
register(subDepartmentsStepSortKey); register(subDepartmentsStepSortKey);
@ -187,7 +177,6 @@ public class SciDepartmentConfig extends AbstractConfig {
register(showViceHeadInList); register(showViceHeadInList);
register(showSecretriatInList); register(showSecretriatInList);
register(listShowRoleContacts); register(listShowRoleContacts);
loadInfo(); loadInfo();
} }

View File

@ -89,7 +89,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
public boolean hasData(final GenericOrganizationalUnit orgaunit, public boolean hasData(final GenericOrganizationalUnit orgaunit,
final PageState state) { final PageState state) {
if ((orgaunit.getPersons() != null) if ((orgaunit.getPersons() != null)
&& orgaunit.getPersons().size() > 0) { && orgaunit.getPersons().size() > 0) {
return true; return true;
} else if (config.isMergingMembers()) { } else if (config.isMergingMembers()) {
final DataQuery persons = getData(orgaunit, state).getMembers(); final DataQuery persons = getData(orgaunit, state).getMembers();
@ -110,19 +110,24 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
final Map<String, String> membersStatus = membersData.getMembersStatus(); final Map<String, String> membersStatus = membersData.getMembersStatus();
final HttpServletRequest request = state.getRequest(); final HttpServletRequest request = state.getRequest();
applySurnameFilter(persons, request); if (config.getMembersTabSurnameFilter()) {
applySurnameFilter(persons, request);
}
final Element depMembersElem = parent.newChildElement( final Element depMembersElem = parent.newChildElement(
"departmentMembers"); "departmentMembers");
final Element filtersElem = depMembersElem.newChildElement("filters"); final Element filtersElem = depMembersElem.newChildElement("filters");
statusFilter.generateXml(filtersElem); if (config.getMembersTabStatusFilter()) {
statusFilter.generateXml(filtersElem);
}
if ((persons == null) || persons.isEmpty()) { if ((persons == null) || persons.isEmpty()) {
if ((surnameFilter != null) if (((surnameFilter != null)
&& (surnameFilter.getFilter() != null) && (surnameFilter.getFilter() != null)
&& !(surnameFilter.getFilter().trim().isEmpty())) { && !(surnameFilter.getFilter().trim().isEmpty()))
&& (config.getMembersTabSurnameFilter())) {
surnameFilter.generateXml(filtersElem); surnameFilter.generateXml(filtersElem);
} }
depMembersElem.newChildElement("noMembers"); depMembersElem.newChildElement("noMembers");
@ -130,7 +135,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
} }
final RelationAttributeCollection roles = new RelationAttributeCollection( final RelationAttributeCollection roles = new RelationAttributeCollection(
SciDepartment.ROLE_ENUM_NAME); SciDepartment.ROLE_ENUM_NAME);
roles.addLanguageFilter(GlobalizationHelper.getNegotiatedLocale().getLanguage()); roles.addLanguageFilter(GlobalizationHelper.getNegotiatedLocale().getLanguage());
final Element rolesElem = depMembersElem.newChildElement("roles"); final Element rolesElem = depMembersElem.newChildElement("roles");
while (roles.next()) { while (roles.next()) {
@ -138,7 +143,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
} }
final RelationAttributeCollection statusValues = new RelationAttributeCollection( final RelationAttributeCollection statusValues = new RelationAttributeCollection(
"GenericOrganizationalUnitMemberStatus"); "GenericOrganizationalUnitMemberStatus");
statusValues.addLanguageFilter(GlobalizationHelper.getNegotiatedLocale().getLanguage()); statusValues.addLanguageFilter(GlobalizationHelper.getNegotiatedLocale().getLanguage());
final Element statusValuesElem = depMembersElem.newChildElement("statusValues"); final Element statusValuesElem = depMembersElem.newChildElement("statusValues");
while (statusValues.next()) { while (statusValues.next()) {
@ -149,9 +154,10 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
(int) persons.size(), (int) persons.size(),
config.getPageSize()); config.getPageSize());
if ((paginator.getPageCount() > config.getEnableSearchLimit()) if (((paginator.getPageCount() > config.getEnableSearchLimit())
|| ((surnameFilter.getFilter() != null) || ((surnameFilter.getFilter() != null)
&& !(surnameFilter.getFilter().trim().isEmpty()))) { && !(surnameFilter.getFilter().trim().isEmpty())))
&& config.getMembersTabSurnameFilter()) {
surnameFilter.generateXml(filtersElem); surnameFilter.generateXml(filtersElem);
} }
@ -212,20 +218,20 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
final PageState state) { final PageState state) {
if (!(orgaunit instanceof SciDepartment)) { if (!(orgaunit instanceof SciDepartment)) {
throw new IllegalArgumentException(String.format( throw new IllegalArgumentException(String.format(
"This tab can only process instances of " "This tab can only process instances of "
+ "'com.arsdigita.cms.contenttypes.SciDepartment'. Provided " + "'com.arsdigita.cms.contenttypes.SciDepartment'. Provided "
+ "object is of type '%s'", + "object is of type '%s'",
orgaunit.getClass().getName())); orgaunit.getClass().getName()));
} }
final DataQuery personBundlesQuery = SessionManager.getSession(). final DataQuery personBundlesQuery = SessionManager.getSession().
retrieveQuery( retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfMembersOfOrgaUnits"); "com.arsdigita.cms.contenttypes.getIdsOfMembersOfOrgaUnits");
final List<String> orgaUnitIds = new ArrayList<String>(); final List<String> orgaUnitIds = new ArrayList<String>();
if (config.isMergingMembers()) { if (config.isMergingMembers()) {
final DataQuery subDepartmentsQuery = SessionManager.getSession().retrieveQuery( final DataQuery subDepartmentsQuery = SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType"); "com.arsdigita.cms.contenttypes.getIdsOfSubordinateOrgaUnitsRecursivlyWithAssocType");
subDepartmentsQuery.setParameter("orgaunitId", subDepartmentsQuery.setParameter("orgaunitId",
orgaunit.getContentBundle().getID().toString()); orgaunit.getContentBundle().getID().toString());
subDepartmentsQuery.setParameter("assocType", subDepartmentsQuery.setParameter("assocType",
@ -239,7 +245,9 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
} }
personBundlesQuery.setParameter("orgaunitIds", orgaUnitIds); personBundlesQuery.setParameter("orgaunitIds", orgaUnitIds);
applyStatusFilter(personBundlesQuery, state.getRequest()); if (config.getMembersTabStatusFilter()) {
applyStatusFilter(personBundlesQuery, state.getRequest());
}
final Map<String, String> membersRoles = new HashMap<String, String>(); final Map<String, String> membersRoles = new HashMap<String, String>();
final Map<String, String> membersStatus = new HashMap<String, String>(); final Map<String, String> membersStatus = new HashMap<String, String>();
@ -255,7 +263,7 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
membersStatus.put(memberId, (String) personBundlesQuery.get("status")); membersStatus.put(memberId, (String) personBundlesQuery.get("status"));
} }
final DataCollection membersQuery = SessionManager.getSession().retrieve( final DataCollection membersQuery = SessionManager.getSession().retrieve(
GenericPerson.BASE_DATA_OBJECT_TYPE); GenericPerson.BASE_DATA_OBJECT_TYPE);
if (filterBuilder.length() == 0) { if (filterBuilder.length() == 0) {
//No member return null to indicate //No member return null to indicate
@ -339,4 +347,5 @@ public class SciDepartmentMembersTab implements GenericOrgaUnitTab {
} }
} }
} }

View File

@ -36,36 +36,45 @@ public class SciDepartmentMembersTabConfig extends AbstractConfig {
private Parameter pageSize; private Parameter pageSize;
private Parameter enableSearchLimit; private Parameter enableSearchLimit;
private Parameter mergeMembers; private Parameter mergeMembers;
private Parameter membersTabStatusFilter;
private Parameter membersTabSurnameFilter;
public SciDepartmentMembersTabConfig() { public SciDepartmentMembersTabConfig() {
statusValues = statusValues = new StringArrayParameter(
new StringArrayParameter( "com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_values",
"com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_values", Parameter.REQUIRED,
Parameter.REQUIRED, new String[]{"active", "associated", "former"});
new String[]{"active", "associated", "former"});
pageSize = pageSize = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.tabs.members.page_size",
"com.arsdigita.cms.contenttypes.scidepartment.tabs.members.page_size", Parameter.REQUIRED,
Parameter.REQUIRED, 30);
30);
enableSearchLimit = enableSearchLimit = new IntegerParameter(
new IntegerParameter( "com.arsdigita.cms.contenttypes.scidepartment.tabs.members.enable_search_limit",
"com.arsdigita.cms.contenttypes.scidepartment.tabs.members.enable_search_limit", Parameter.REQUIRED,
Parameter.REQUIRED, 0);
0);
mergeMembers = mergeMembers = new BooleanParameter(
new BooleanParameter( "com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge",
"com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge", Parameter.REQUIRED,
Parameter.REQUIRED, Boolean.FALSE);
Boolean.FALSE);
membersTabStatusFilter = new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_filter",
Parameter.REQUIRED,
Boolean.TRUE);
membersTabSurnameFilter = new BooleanParameter(
"com.arsdigita.cms.contenttypes.scidepartment.tabs.members.surname_filter",
Parameter.REQUIRED,
Boolean.TRUE);
register(statusValues); register(statusValues);
register(pageSize); register(pageSize);
register(enableSearchLimit); register(enableSearchLimit);
register(mergeMembers); register(mergeMembers);
register(membersTabStatusFilter);
register(membersTabSurnameFilter);
loadInfo(); loadInfo();
} }
@ -86,4 +95,12 @@ public class SciDepartmentMembersTabConfig extends AbstractConfig {
return (Boolean) get(mergeMembers); return (Boolean) get(mergeMembers);
} }
public Boolean getMembersTabStatusFilter() {
return (Boolean) get(membersTabStatusFilter);
}
public Boolean getMembersTabSurnameFilter() {
return (Boolean) get(membersTabSurnameFilter);
}
} }

View File

@ -17,3 +17,13 @@ com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.title = Merge m
com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.purpose = Merge the members of the department and its sub departments into one list? com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.purpose = Merge the members of the department and its sub departments into one list?
com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.example = true com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.example = true
com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.format = [Boolean] com.arsdigita.cms.contenttypes.scidepartments.tabs.members.merge.format = [Boolean]
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_filter.title = Show status filter in Members Tab?
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_filter.purpose = Show status filter in Members Tab?
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_filter.example = true
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.status_filter.format = [Boolean]
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.surname_filter.title = Show surname filter in Members tab?
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.surname_filter.purpose = Show surname filter in Members tab?
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.surname_filter.example = true
com.arsdigita.cms.contenttypes.scidepartment.tabs.members.surname_filter.format = [Boolean]