From 949414b7f1c9fcd5fc88993a1b9dc6ebf8524c5f Mon Sep 17 00:00:00 2001 From: baka Date: Thu, 6 Oct 2016 09:43:33 +0000 Subject: [PATCH] =?UTF-8?q?Removes=20the=20use=20of=20DataQueries=20in=20R?= =?UTF-8?q?olePartyAddForm=20and=20uses=20the=20PartyRepository=20instead.?= =?UTF-8?q?=20Removes=20=20the=20filtering=20by=20user=20information=20and?= =?UTF-8?q?=20adds=20a=20note=20in=20the=20JavaDoc=E2=84=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4355 8810af33-2d31-482b-a856-94f89814c4df --- .../cms/ui/role/RolePartyAddForm.java | 63 ++++++------------- 1 file changed, 18 insertions(+), 45 deletions(-) diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java index 05a6b0206..41cef6940 100755 --- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java +++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RolePartyAddForm.java @@ -33,10 +33,16 @@ import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.security.*; import org.librecms.CmsConstants; -import java.math.BigDecimal; +import java.util.Arrays; import java.util.List; /** + * Adds a form which can add {@link Party parties} to {@link Role roles}. + * Also enables searching for parties. + * + * NOTE: In earlier versions it was also possible to filter + * parties using {@link User} attributes such as username, name, last name, etc. + * This feature may be added later if still needed. * * @author Yannick Bülter * @author Michael Pih @@ -50,12 +56,7 @@ class RolePartyAddForm extends PartyAddForm { private SingleSelectionModel m_roles; - private static final String NAME_FILTER = - "(upper(name) like ('%' || upper(:search) || '%'))" + - " or " + - "(upper(email) like ('%' || upper(:search) || '%'))"; - - public RolePartyAddForm(SingleSelectionModel roles, TextField search) { + RolePartyAddForm(SingleSelectionModel roles, TextField search) { super(search); m_roles = roles; @@ -64,54 +65,26 @@ class RolePartyAddForm extends PartyAddForm { (new FormSecurityListener(CmsConstants.PRIVILEGE_ADMINISTER_ROLES)); } - /* - protected DataQuery makeQuery(PageState s) { - Assert.isTrue(m_roles.isSelected(s)); - - Session session = SessionManager.getSession(); - - // XXX: Figure out how to use role directly here - DataQuery dq = - session.retrieveQuery("com.arsdigita.cms.searchToAddMemberParties"); - - BigDecimal roleId = new BigDecimal((String) m_roles.getSelectedKey(s)); - String searchQuery = (String) getSearchWidget().getValue(s); - - makeFilter(dq, roleId, searchQuery); - dq.addOrder("isUser desc, upper(name), upper(email)"); - return dq; - }*/ @Override - protected List makeQuery(PageState state) { - return null; + protected List makeQuery(PageState s) { + Assert.isTrue(m_roles.isSelected(s)); + + final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); + final PartyRepository partyRepository = cdiUtil.findBean(PartyRepository.class); + + final String searchQuery = (String) getSearchWidget().getValue(s); + + return partyRepository.searchByName(searchQuery); } - /** - * Filters out members of the current group and parties whose name or email - * address matches the search string. - */ - /* - private void makeFilter(DataQuery dq, BigDecimal roleId, String search) { - - dq.setParameter("excludedRoleId", roleId); - - // Add the search filter if the search query is not null. - if (search != null) { - - dq.clearFilter(); - Filter filter = dq.addFilter(NAME_FILTER); - filter.set("search", search); - } - }*/ - public void process(FormSectionEvent event) throws FormProcessException { FormData data = event.getFormData(); PageState state = event.getPageState(); Assert.isTrue(m_roles.isSelected(state)); String[] parties = (String[]) data.get("parties"); - s_log.debug("PARTIES = " + parties); + s_log.debug("PARTIES = " + Arrays.toString(parties)); if (parties == null) { throw new FormProcessException(GlobalizationUtil.globalize( "cms.ui.role.no_party_selected"));