diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartyAddForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartyAddForm.java
index 304d7f241..79d98c8b4 100755
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartyAddForm.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartyAddForm.java
@@ -29,8 +29,6 @@ import com.arsdigita.bebop.SimpleContainer;
import com.arsdigita.bebop.event.FormInitListener;
import com.arsdigita.bebop.event.FormProcessListener;
import com.arsdigita.bebop.event.FormSectionEvent;
-import com.arsdigita.bebop.event.PrintEvent;
-import com.arsdigita.bebop.event.PrintListener;
import com.arsdigita.bebop.form.CheckboxGroup;
import com.arsdigita.bebop.form.Hidden;
import com.arsdigita.bebop.form.Option;
@@ -39,23 +37,20 @@ import com.arsdigita.bebop.form.Submit;
import com.arsdigita.bebop.form.Widget;
import com.arsdigita.bebop.parameters.NotNullValidationListener;
import com.arsdigita.globalization.GlobalizedMessage;
-import com.arsdigita.ui.admin.GlobalizationUtil;
-import com.arsdigita.util.UncheckedWrapperException;
import com.arsdigita.xml.Element;
+
+import org.libreccm.core.UnexpectedErrorException;
import org.libreccm.security.Party;
import org.librecms.CmsConstants;
-import java.math.BigDecimal;
import java.util.List;
import java.util.TooManyListenersException;
-
/**
* Form for adding multiple parties to a role.
*
* @author Yannick Bülter
* @author Scott Seago (scott@arsdigita.com)
- * @version Id: PartyAddForm.java 754 2005-09-02 13:26:17Z sskracic $
*/
public abstract class PartyAddForm extends SimpleContainer
implements FormInitListener, FormProcessListener {
@@ -64,118 +59,129 @@ public abstract class PartyAddForm extends SimpleContainer
private final static String PARTIES = "parties";
private final static String SUBMIT = "addSubmit";
private final static String CANCEL = "addCancel";
- private final static String SUBMIT_LABEL = "Add Members";
- private final static String CANCEL_LABEL = "Cancel";
- private Widget m_search;
- private RequestLocal m_query;
+ private Widget searchWidget;
+ private RequestLocal queryRequestLocal;
- private CMSContainer m_noMatches;
- private CMSContainer m_matches;
-
- private Form m_form;
- private Hidden m_searchQuery;
- private Submit m_cancel;
+ private CMSContainer noMatchesContainer;
+ private CMSContainer matchesContainer;
+ private Form form;
+ private Hidden searchQueryField;
+ private Submit cancelButton;
/**
- * Private access prevents this constructor from ever being called
- * directly.
+ * Private access prevents this constructor from ever being called directly.
*/
private PartyAddForm() {
super();
}
-
/**
* Constructor.
*
- * @param search The widget on the search form that contains the value
- * of the search string.
+ * @param searchWidget The widget on the search form that contains the value
+ * of the search string.
*/
- public PartyAddForm(Widget search) {
+ public PartyAddForm(final Widget searchWidget) {
+
this();
- m_search = search;
+ this.searchWidget = searchWidget;
- m_query = new RequestLocal() {
- protected Object initialValue(PageState state) {
- return makeQuery(state);
- }
- };
+ queryRequestLocal = new RequestLocal() {
- m_form = makeForm();
+ @Override
+ protected Object initialValue(final PageState state) {
+ return makeQuery(state);
+ }
- Label title = new Label(GlobalizationUtil.globalize("cms.ui.matches"));
+ };
+
+ form = makeForm();
+
+ final Label title = new Label(new GlobalizedMessage("cms.ui.matches",
+ CmsConstants.CMS_BUNDLE));
title.setFontWeight(Label.BOLD);
- Label label = new Label(GlobalizationUtil.globalize("cms.ui.there_was_no_one_matching_the_search_criteria"));
+ final Label label = new Label(new GlobalizedMessage(
+ "cms.ui.there_was_no_one_matching_the_search_criteria",
+ CmsConstants.CMS_BUNDLE));
label.setFontWeight("em");
- m_noMatches = new CMSContainer();
- m_noMatches.add(title);
- m_noMatches.add(label);
- add(m_noMatches);
+ noMatchesContainer = new CMSContainer();
+ noMatchesContainer.add(title);
+ noMatchesContainer.add(label);
+ super.add(noMatchesContainer);
- m_matches = new CMSContainer();
- m_matches.add(title);
- m_matches.add(m_form);
- add(m_matches);
+ matchesContainer = new CMSContainer();
+ matchesContainer.add(title);
+ matchesContainer.add(form);
+ super.add(matchesContainer);
}
-
/**
* Build the form used to add parties.
*
* @return The form
*/
private Form makeForm() {
- final CMSForm form = new CMSForm("AddParties") {
- @Override
- public final boolean isCancelled(final PageState state) {
- return m_cancel.isSelected(state);
- }
- };
+
+ final CMSForm addPartyForm = new CMSForm("AddParties") {
+
+ @Override
+ public final boolean isCancelled(final PageState state) {
+ return cancelButton.isSelected(state);
+ }
+
+ };
// This hidden field will store the search query. A hidden widget is
// used instead of a request local variable because the search query
// should only be updated when the search form is submitted.
- m_searchQuery = new Hidden(SEARCH_QUERY);
- form.add(m_searchQuery, ColumnPanel.FULL_WIDTH);
+ searchQueryField = new Hidden(SEARCH_QUERY);
+ addPartyForm.add(searchQueryField, ColumnPanel.FULL_WIDTH);
- Label l = new Label(
- new GlobalizedMessage("Check the box next to the name of the person(s) to assign to this role."));
- form.add(l, ColumnPanel.FULL_WIDTH);
+ final Label hintLabel = new Label(
+ new GlobalizedMessage("cms.ui.party_add_form.hint",
+ CmsConstants.CMS_BUNDLE));
+ addPartyForm.add(hintLabel, ColumnPanel.FULL_WIDTH);
// Add the list of parties that can be added.
- CheckboxGroup m_parties = new CheckboxGroup(PARTIES);
- m_parties.addValidationListener(new NotNullValidationListener());
+ final CheckboxGroup partyCheckboxes = new CheckboxGroup(PARTIES);
+ partyCheckboxes.addValidationListener(new NotNullValidationListener());
try {
- m_parties.addPrintListener(event -> {
- CheckboxGroup target = (CheckboxGroup) event.getTarget();
- PageState state = event.getPageState();
+ partyCheckboxes.addPrintListener(event -> {
+ final CheckboxGroup target = (CheckboxGroup) event.getTarget();
+ final PageState state = event.getPageState();
// Ensures that the init listener gets fired before the
// print listeners.
- FormData data = m_form.getFormData(state);
+ final FormData data = addPartyForm.getFormData(state);
addParties(state, target);
});
- } catch (TooManyListenersException e) {
- UncheckedWrapperException.throwLoggedException(getClass(), "Too many listeners", e);
+ } catch (TooManyListenersException ex) {
+ throw new UnexpectedErrorException(ex);
}
- form.add(m_parties, ColumnPanel.FULL_WIDTH);
+ addPartyForm.add(partyCheckboxes, ColumnPanel.FULL_WIDTH);
// Submit and Cancel buttons.
- SimpleContainer s = new SimpleContainer();
- Submit m_submit = new Submit(SUBMIT, new GlobalizedMessage(SUBMIT_LABEL, CmsConstants.CMS_BUNDLE));
- s.add(m_submit);
- m_cancel = new Submit(CANCEL, new GlobalizedMessage(CANCEL_LABEL, CmsConstants.CMS_BUNDLE));
- s.add(m_cancel);
- form.add(s, ColumnPanel.FULL_WIDTH | ColumnPanel.CENTER);
+ final SimpleContainer buttonContainer = new SimpleContainer();
+ final Submit submitButton = new Submit(SUBMIT,
+ new GlobalizedMessage(
+ "cms.ui.save",
+ CmsConstants.CMS_BUNDLE));
+ buttonContainer.add(submitButton);
+ cancelButton = new Submit(CANCEL,
+ new GlobalizedMessage("cms.ui.cancel",
+ CmsConstants.CMS_BUNDLE));
+ buttonContainer.add(cancelButton);
+ addPartyForm.add(buttonContainer, ColumnPanel.FULL_WIDTH
+ | ColumnPanel.CENTER);
- form.addInitListener(this);
- form.addProcessListener(this);
+ addPartyForm.addInitListener(this);
+ addPartyForm.addProcessListener(this);
- return form;
+ return addPartyForm;
}
/**
@@ -184,7 +190,7 @@ public abstract class PartyAddForm extends SimpleContainer
* @return The "add party" form
*/
public Form getForm() {
- return m_form;
+ return form;
}
/**
@@ -193,88 +199,96 @@ public abstract class PartyAddForm extends SimpleContainer
* @return The widget that contains the search string
*/
protected Widget getSearchWidget() {
- return m_searchQuery;
+ return searchQueryField;
}
/**
* Return true if the form is cancelled, false otherwise.
*
* @param state The page state
+ *
* @return true if the form is cancelled, false otherwise.
+ *
* @pre ( state != null )
*/
- public boolean isCancelled(PageState state) {
- return m_cancel.isSelected(state);
+ public boolean isCancelled(final PageState state) {
+ return cancelButton.isSelected(state);
}
-
/**
* Adds parties to the option group.
*
- * @param state The page state
+ * @param state The page state
* @param target The option group
+ *
* @pre ( state != null && target != null )
*/
- private void addParties(PageState state, OptionGroup target) {
+ private void addParties(final PageState state, final OptionGroup target) {
+
@SuppressWarnings("unchecked")
- List parties = (List) m_query.get(state);
+ final List parties = (List) queryRequestLocal.get(state);
+
+ target.clearOptions();
for (final Party party : parties) {
target.addOption(new Option(
- Long.toString(party.getPartyId()),
- new Label(new GlobalizedMessage(party.getName()))
+ Long.toString(party.getPartyId()),
+ new Label(new GlobalizedMessage(party.getName()))
));
}
}
-
/**
- * Generates a {@link Object} that encapsulates
- * search results.
+ * Generates a {@link Object} that encapsulates search results.
*
* @param state The page state
+ *
+ * @return
*/
protected abstract List makeQuery(PageState state);
-
/**
* Stores the search query in the hidden field.
*
* @param event The form event
+ *
+ * @throws com.arsdigita.bebop.FormProcessException
*/
@Override
- public void init(FormSectionEvent event) throws FormProcessException {
+ public void init(final FormSectionEvent event) throws FormProcessException {
+
PageState state = event.getPageState();
- m_searchQuery.setValue(state, m_search.getValue(state));
+ searchQueryField.setValue(state, searchWidget.getValue(state));
}
/**
* Process listener for the "Add parties" form.
*
* @param event The form event
+ *
+ * @throws com.arsdigita.bebop.FormProcessException
*/
@Override
public abstract void process(FormSectionEvent event)
throws FormProcessException;
-
/**
* Displays the appropriate frame.
*
- * @param state The page state
+ * @param state The page state
* @param parent The parent DOM element
*/
@Override
- public void generateXML(PageState state, Element parent) {
+ public void generateXML(final PageState state, final Element parent) {
@SuppressWarnings("unchecked")
- List searchResults = (List) m_query.get(state);
+ final List searchResults = (List) queryRequestLocal.get(state);
- if ( searchResults.size() > 0 ) {
- m_matches.generateXML(state, parent);
+ if (searchResults.size() > 0) {
+ matchesContainer.generateXML(state, parent);
} else {
- m_noMatches.generateXML(state, parent);
+ noMatchesContainer.generateXML(state, parent);
}
}
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartySearchForm.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartySearchForm.java
index 58c31c97a..f4f35c4e8 100755
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartySearchForm.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/PartySearchForm.java
@@ -33,24 +33,23 @@ import com.arsdigita.util.Assert;
*/
public class PartySearchForm extends BaseForm {
- private final static String SEARCH_LABEL = "Search";
-
- private final TextField m_search;
+ private final TextField searchField;
public PartySearchForm() {
super("SearchParties", gz("cms.ui.search"));
addComponent(new Label(gz("cms.ui.search_prompt")));
- m_search = new TextField(new StringParameter("query"));
- m_search.setSize(40);
- addComponent(m_search);
+ searchField = new TextField(new StringParameter("query"));
+ searchField.setSize(40);
+ addComponent(searchField);
addAction(new Submit("finish", gz("cms.ui.search")));
addAction(new Cancel());
}
+ @Override
public final void register(final Page page) {
super.register(page);
@@ -58,6 +57,6 @@ public class PartySearchForm extends BaseForm {
}
public TextField getSearchWidget() {
- return m_search;
+ return searchField;
}
}
diff --git a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPaneController.java b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPaneController.java
index 85f226d45..fa5f818b6 100644
--- a/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPaneController.java
+++ b/ccm-cms/src/main/java/com/arsdigita/cms/ui/role/RoleAdminPaneController.java
@@ -326,6 +326,7 @@ public class RoleAdminPaneController {
"No ContentSection with ID %d in the database."
+ "Where did that ID come from?",
CMS.getContext().getContentSection().getObjectId())));
+ sectionManager.addRoleToContentSection(role, contentSection);
final Folder rootDocumentsFolder = contentSection
.getRootDocumentsFolder();
final Folder rootAssetsFolder = contentSection.getRootAssetsFolder();
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
index 2cddced84..204ea6ce0 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources.properties
@@ -510,3 +510,7 @@ cms.ui.category.is_visible=Visible?
cms.ui.category.move=Move category
cms.ui.title=Title
cms.ui.select_one=Choose one
+cms.ui.search_prompt=Search to add new members
+cms.ui.matches=Matches
+cms.ui.there_was_no_one_matching_the_search_criteria=There not no one matching the search criteria
+cms.ui.party_add_form.hint=Check the box next to the name of the person(s) to assign to this role.
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
index d10d51e5b..259bb2485 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_de.properties
@@ -507,3 +507,7 @@ cms.ui.category.is_visible=Sichtbar?
cms.ui.category.move=Kategorie verschieben
cms.ui.title=Titel
cms.ui.select_one=Bitte ausw\u00e4hlen
+cms.ui.search_prompt=Suche um neue Mitglieder zu erg\u00e4nzen
+cms.ui.matches=Treffer
+cms.ui.there_was_no_one_matching_the_search_criteria=Keine Element erf\u00fcllt die Suchkritieren
+cms.ui.party_add_form.hint=Aktivieren Sie die Checkbox vor dem Namen, um die Person oder Gruppe der Rolle hinzuzuf\u00fcgen
diff --git a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
index 7e6b7926a..6e7ebcf83 100644
--- a/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
+++ b/ccm-cms/src/main/resources/org/librecms/CmsResources_fr.properties
@@ -469,3 +469,7 @@ cms.ui.category.linked_none=No linked categories
cms.ui.category.move=Move category
cms.ui.title=Title
cms.ui.select_one=Choose one
+cms.ui.search_prompt=Search to add new members
+cms.ui.matches=Matches
+cms.ui.there_was_no_one_matching_the_search_criteria=There not no one matching the search criteria
+cms.ui.party_add_form.hint=Check the box next to the name of the person(s) to assign to this role.
diff --git a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java
index bdee13ee7..11890a77d 100644
--- a/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java
+++ b/ccm-core/src/main/java/org/libreccm/core/AbstractEntityRepository.java
@@ -31,7 +31,6 @@ import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.JoinType;
import javax.persistence.criteria.Root;
import javax.transaction.Transactional;