You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2012/09/24 11:34:41 UTC
svn commit: r1389258 - in
/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings:
data/user/dao/ web/components/admin/groups/
Author: solomax
Date: Mon Sep 24 09:34:41 2012
New Revision: 1389258
URL: http://svn.apache.org/viewvc?rev=1389258&view=rev
Log:
Wicket: Group panel: User search is implemented
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html
incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java?rev=1389258&r1=1389257&r2=1389258&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UsersDaoImpl.java Mon Sep 24 09:34:41 2012
@@ -58,6 +58,38 @@ public class UsersDaoImpl implements OmD
return getNondeletedUsers(first, count);
}
+ //FIXME need to be generalized with other copy/pasted methods
+ public List<Users> get(String search) {
+ String[] searchItems = search.split(" ");
+ StringBuilder hql = new StringBuilder("SELECT u FROM Users u WHERE u.deleted = false ");
+
+ hql.append("AND ( ");
+ for (int i = 0; i < searchItems.length; ++i) {
+ if (searchItems[i].isEmpty()) {
+ continue;
+ }
+ if (i != 0) {
+ hql.append(" OR ");
+ }
+ StringBuilder placeholder = new StringBuilder();
+ placeholder.append("%").append(StringUtils.lowerCase(searchItems[i])).append("%");
+
+ hql.append("(lower(u.lastname) LIKE '")
+ .append(placeholder)
+ .append("' OR lower(u.firstname) LIKE '")
+ .append(placeholder)
+ .append("' OR lower(u.login) LIKE '")
+ .append(placeholder)
+ .append("' OR lower(u.adresses.email) LIKE '")
+ .append(placeholder)
+ .append("' ) ");
+ }
+
+ hql.append(" ) ");
+ TypedQuery<Users> q = em.createQuery(hql.toString(), Users.class);
+ return q.getResultList();
+ }
+
public long count() {
return selectMaxFromUsers();
}
Added: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java?rev=1389258&view=auto
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java (added)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/AddUsersForm.java Mon Sep 24 09:34:41 2012
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.components.admin.groups;
+
+import static org.apache.openmeetings.web.components.admin.groups.GroupUsersPanel.getUser;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
+import org.apache.openmeetings.persistence.beans.user.Users;
+import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.markup.html.form.ListMultipleChoice;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+
+public class AddUsersForm extends Form<Void> {
+ private static final long serialVersionUID = -2458265250684437277L;
+ private String userSearchText;
+ private List<Users> usersToAdd = new ArrayList<Users>();
+
+ public AddUsersForm(String id) {
+ super(id);
+
+ IModel<List<Users>> usersModel = new PropertyModel<List<Users>>(AddUsersForm.this, "usersToAdd");
+ final ListMultipleChoice<Users> users = new ListMultipleChoice<Users>("users"
+ , usersModel
+ , usersModel
+ , new IChoiceRenderer<Users>() {
+ private static final long serialVersionUID = 1L;
+
+ public Object getDisplayValue(Users object) {
+ return getUser(object);
+ }
+
+ public String getIdValue(Users object, int index) {
+ return "" + object.getUser_id();
+ }
+ });
+
+ add(new TextField<String>("searchText", new PropertyModel<String>(AddUsersForm.this, "userSearchText")));
+ add(new AjaxButton("search", Model.of(WebSession.getString(182L))) {
+ private static final long serialVersionUID = -4752180617634945030L;
+
+ protected void onAfterSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
+ usersToAdd.clear();
+ usersToAdd.addAll(Application.getBean(UsersDaoImpl.class).get(userSearchText));
+ target.add(users);
+ }
+ });
+ add(users.setOutputMarkupId(true));
+ add(new AjaxButton("add", Model.of(WebSession.getString(175L))) {
+ private static final long serialVersionUID = 5553555064487161840L;
+
+ protected void onAfterSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
+ for (Users u : usersToAdd) {
+ //add them
+ }
+ }
+ });
+ }
+
+}
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html?rev=1389258&r1=1389257&r2=1389258&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.html Mon Sep 24 09:34:41 2012
@@ -27,6 +27,7 @@
closeOnEscape: true
, autoOpen: false
, resizable: false
+ , width: 400
});
};
</script>
@@ -67,7 +68,7 @@
</tr>
<tr>
<td style="font-weight: bold;"><wicket:ommessage key="273" /></td>
- <td style="text-align: right;"><div class="formNewButton" onclick="$('#addUsers :text').val(''); $('#addUsers').dialog('open');"><input/></div></td>
+ <td style="text-align: right;"><div wicket:id="addUsersBtn" class="formNewButton" onclick="$('#addUsers :text').val(''); $('#addUsers').dialog('open');"><input/></div></td>
</tr>
<tr>
<td><wicket:ommessage key="177" /></td>
@@ -92,7 +93,7 @@
</tr>
<tr>
<td><wicket:ommessage key="183" /></td>
- <td><select wicket:id="users"></select></td>
+ <td><select wicket:id="users" style="width: 200px;"></select></td>
</tr>
<tr>
<td style="text-align: right"><input type="button" wicket:id="add" /></td>
Modified: incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java
URL: http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java?rev=1389258&r1=1389257&r2=1389258&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java (original)
+++ incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/groups/GroupsPanel.java Mon Sep 24 09:34:41 2012
@@ -18,42 +18,29 @@
*/
package org.apache.openmeetings.web.components.admin.groups;
-import static org.apache.openmeetings.web.components.admin.groups.GroupUsersPanel.getUser;
-
import org.apache.openmeetings.data.user.dao.OrganisationDAO;
-import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
import org.apache.openmeetings.persistence.beans.domain.Organisation;
-import org.apache.openmeetings.persistence.beans.user.Users;
-import org.apache.openmeetings.web.app.Application;
-import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.components.admin.AdminPanel;
import org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
import org.apache.openmeetings.web.data.OmDataProvider;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.IChoiceRenderer;
-import org.apache.wicket.markup.html.form.ListMultipleChoice;
-import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;
-import org.apache.wicket.model.Model;
-import org.apache.wicket.model.PropertyModel;
public class GroupsPanel extends AdminPanel {
private static final long serialVersionUID = -5170400556006464830L;
- private String userSearchText;
public GroupsPanel(String id) {
super(id);
final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
+ final WebMarkupContainer addUsersBtn = new WebMarkupContainer("addUsersBtn");
final GroupForm form = new GroupForm("form", listContainer, new Organisation());
- add(form);
-
+ add(form.add(addUsersBtn.setEnabled(false).setOutputMarkupId(true)));
+
DataView<Organisation> dataView = new DataView<Organisation>("groupList", new OmDataProvider<Organisation>(OrganisationDAO.class)) {
private static final long serialVersionUID = 8715559628755439596L;
@@ -67,6 +54,7 @@ public class GroupsPanel extends AdminPa
protected void onEvent(AjaxRequestTarget target) {
form.setModelObject(organisation);
+ addUsersBtn.setEnabled(true); //FIXME need to be handled differently
form.updateView(target);
target.add(form);
}
@@ -85,37 +73,6 @@ public class GroupsPanel extends AdminPa
}
});
- add(new Form<Void>("addUsers"){
- private static final long serialVersionUID = 3726465576292784604L;
-
- {
- add(new TextField<String>("searchText", new PropertyModel<String>(GroupsPanel.this, "userSearchText")));
- add(new AjaxButton("search", Model.of(WebSession.getString(182L))) {
- private static final long serialVersionUID = -4752180617634945030L;
-
- protected void onAfterSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
-
- }
- });
- add(new ListMultipleChoice<Users>("users", Application.getBean(UsersDaoImpl.class).getAllUsers(), new IChoiceRenderer<Users>() {
- private static final long serialVersionUID = 1L;
-
- public Object getDisplayValue(Users object) {
- return getUser(object);
- }
-
- public String getIdValue(Users object, int index) {
- return "" + object.getUser_id();
- }
- }));
- add(new AjaxButton("add", Model.of(WebSession.getString(175L))) {
- private static final long serialVersionUID = 5553555064487161840L;
-
- protected void onAfterSubmit(AjaxRequestTarget target, org.apache.wicket.markup.html.form.Form<?> form) {
-
- }
- });
- }
- });
+ add(new AddUsersForm("addUsers"));
}
}