Korrektur für ein Problem mit dem ItemSearchWidget und dem persitenten Status von Bebop

git-svn-id: https://svn.libreccm.org/ccm/trunk@2367 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2013-10-22 13:54:11 +00:00
parent 26670344e3
commit 8f32e2fa15
3 changed files with 75 additions and 40 deletions

View File

@ -31,6 +31,7 @@ import com.arsdigita.bebop.table.TableColumn;
import com.arsdigita.bebop.table.TableColumnModel;
import com.arsdigita.bebop.table.TableModel;
import com.arsdigita.bebop.table.TableModelBuilder;
import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentSection;
import com.arsdigita.cms.ItemSelectionModel;
import com.arsdigita.cms.RelationAttributeCollection;
@ -123,13 +124,13 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
public TableModel makeModel(Table table, PageState state) {
table.getRowSelectionModel().clearSelection(state);
GenericOrganizationalUnit orgaunit =
(GenericOrganizationalUnit) m_itemModel.
GenericOrganizationalUnit orgaunit = (GenericOrganizationalUnit) m_itemModel.
getSelectedObject(state);
return new GenericOrganizationalUnitTableModel(table,
state,
orgaunit);
}
}
private class GenericOrganizationalUnitTableModel implements TableModel {
@ -210,6 +211,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
public Object getKeyAt(int columnIndex) {
return m_person.getID();
}
}
private class EditCellRenderer extends LockableImpl implements
@ -223,8 +225,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
Object key,
int row,
int col) {
com.arsdigita.cms.SecurityManager securityManager = Utilities.
getSecurityManager(state);
com.arsdigita.cms.SecurityManager securityManager = CMS.getSecurityManager(state);
GenericOrganizationalUnit orgaunit = (GenericOrganizationalUnit) m_itemModel.
getSelectedObject(
state);
@ -244,8 +245,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
}
ContentSection section = person.getContentSection();//CMS.getContext().getContentSection();
ItemResolver resolver = section.getItemResolver();
Link link =
new Link(String.format("%s",
Link link = new Link(String.format("%s",
value.toString()),
resolver.generateItemURL(state,
person,
@ -271,6 +271,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
return label;
}
}
}
private class EditLinkCellRenderer
@ -284,8 +285,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
Object key,
int row,
int column) {
SecurityManager securityManager =
Utilities.getSecurityManager(state);
SecurityManager securityManager = CMS.getSecurityManager(state);
GenericOrganizationalUnit orgaUnit = (GenericOrganizationalUnit) m_itemModel.
getSelectedObject(state);
@ -301,6 +301,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
return label;
}
}
}
private class DeleteCellRenderer extends LockableImpl implements
@ -314,8 +315,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
Object key,
int row,
int col) {
SecurityManager securityManager =
Utilities.getSecurityManager(state);
SecurityManager securityManager = Utilities.getSecurityManager(state);
GenericOrganizationalUnit orgaunit = (GenericOrganizationalUnit) m_itemModel.
getSelectedObject(
state);
@ -334,6 +334,7 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
return new Label(value.toString());
}
}
}
@Override
@ -380,7 +381,6 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
public void headSelected(TableActionEvent event) {
throw new UnsupportedOperationException("Not supported yet.");
}
protected String getRoleAttributeName() {
@ -390,4 +390,5 @@ public class GenericOrganizationalUnitPersonsTable extends Table implements
protected String getStatusAttributeName() {
return "GenericOrganizationalUnitMemberStatus";
}
}

View File

@ -58,7 +58,8 @@ public class ItemSearchFlatBrowsePane extends SimpleContainer {
private final Table resultsTable;
private final Paginator paginator;
private final StringParameter queryParam;
private final List<String> queryFields = new ArrayList<String>();
private final QueryFieldsRequestLocal queryFields = new QueryFieldsRequestLocal();
//private final List<String> queryFields = new ArrayList<String>();
//private final Submit submit;
private final static CMSConfig CMS_CONFIG = CMSConfig.getInstance();
@ -130,7 +131,11 @@ public class ItemSearchFlatBrowsePane extends SimpleContainer {
// }
public void addQueryField(final String queryField) {
queryFields.add(queryField);
queryFields.addQueryField(queryField);
}
void resetQueryFields() {
queryFields.reset();
}
private class ResultsTable extends Table {
@ -216,7 +221,7 @@ public class ItemSearchFlatBrowsePane extends SimpleContainer {
"((lower(%s) like lower('%%%s%%')) or (lower(%s) like lower('%%%s%%'))",
ContentItem.NAME, query,
ContentPage.TITLE, query));
for (String field : queryFields) {
for (String field : queryFields.getQueryFields()) {
buffer.append(String.
format(" or (lower(%s) like lower('%%%s%%'))", field, query));
}
@ -395,4 +400,30 @@ public class ItemSearchFlatBrowsePane extends SimpleContainer {
}
}
private class QueryFieldsRequestLocal extends RequestLocal {
private List<String> queryFields = new ArrayList<String>();
@Override
protected Object initialValue(final PageState state) {
return new ArrayList<String>();
}
public List<String> getQueryFields() {
return queryFields;
}
public void setQueryFields(final List<String> queryFields) {
this.queryFields = queryFields;
}
public void addQueryField(final String queryField) {
queryFields.add(queryField);
}
public void reset() {
queryFields = new ArrayList<String>();
}
}
}

View File

@ -137,7 +137,10 @@ public class ItemSearchPage extends CMSPage {
m_create.setEditAfterCreate((Boolean) state.getValue(new BooleanParameter("editAfterCreate")));
}
if (state.getValue(new StringParameter("queryField")) != null) {
if (state.getValue(new StringParameter("queryField")) == null) {
//Because of Bebops silly stateful behaviour we have to do this...
m_flatBrowse.resetQueryFields();
}else {
m_flatBrowse.addQueryField((String) state.getValue(new StringParameter("queryField")));
}