Author: solomax
Date: Thu Aug 30 19:02:24 2012
New Revision: 1379068
URL: http://svn.apache.org/viewvc?rev=1379068&view=rev
Log:
Web interface is improved:
1) Wicket works at /openmeetings/html
2) Admin users page displays paged user list and selects users with Ajax
Added:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_down.png
(with props)
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_right.png
(with props)
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/NaviDTO.java
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/jMenu.jquery.css
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml
(original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/web.xml Thu
Aug 30 19:02:24 2012
@@ -64,10 +64,9 @@
<filter-mapping>
<filter-name>ServletRequestExFilter</filter-name>
- <url-pattern>/*</url-pattern>
+ <url-pattern>*</url-pattern>
</filter-mapping>
- <!-- Commented for now
<filter>
<filter-name>OpenmeetingsApplication</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
@@ -78,9 +77,8 @@
</filter>
<filter-mapping>
<filter-name>OpenmeetingsApplication</filter-name>
- <url-pattern>/*</url-pattern>
+ <url-pattern>/html/*</url-pattern>
</filter-mapping>
- -->
<context-param>
<param-name>contextConfigLocation</param-name>
Added:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_down.png
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_down.png?rev=1379068&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_down.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_right.png
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_right.png?rev=1379068&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/images/arrow_right.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified:
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/jMenu.jquery.css
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/jMenu.jquery.css?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/jMenu.jquery.css
(original)
+++
incubator/openmeetings/trunk/singlewebapp/WebContent/openmeetings/css/jMenu.jquery.css
Thu Aug 30 19:02:24 2012
@@ -15,6 +15,7 @@
background-color: #322f32;
margin: 0; //
float: left;
+ width: 120px;
}
#jMenu li a {
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/Navimanagement.java
Thu Aug 30 19:02:24 2012
@@ -20,7 +20,6 @@ package org.openmeetings.app.data.basic;
import java.util.ArrayList;
import java.util.Date;
-import java.util.Iterator;
import java.util.List;
import javax.persistence.EntityManager;
@@ -28,6 +27,8 @@ import javax.persistence.PersistenceCont
import javax.persistence.TypedQuery;
import org.openmeetings.app.OpenmeetingsVariables;
+import org.openmeetings.app.dto.NaviDTO;
+import org.openmeetings.app.dto.NaviDTO.MenuActions;
import org.openmeetings.app.persistence.beans.basic.Naviglobal;
import org.openmeetings.app.persistence.beans.basic.Navimain;
import org.red5.logging.Red5LoggerFactory;
@@ -60,26 +61,45 @@ public class Navimanagement {
}
public List<Naviglobal> getMainMenu(long user_level, long USER_ID, long
language_id) {
- List<Naviglobal> ll = this.getMainMenu(user_level, USER_ID);
- for (Iterator<Naviglobal> it2 = ll.iterator(); it2.hasNext();) {
- Naviglobal navigl = it2.next();
+ List<Naviglobal> ll = getMainMenu(user_level, USER_ID);
+ for (Naviglobal navigl : ll) {
navigl.setLabel(fieldmanagment.getFieldByIdAndLanguageByNavi(
navigl.getFieldvalues_id(),
language_id));
navigl.setTooltip(fieldmanagment.getFieldByIdAndLanguageByNavi(
navigl.getTooltip_fieldvalues_id(),
language_id));
- List<Navimain> s = navigl.getMainnavi();
- for (Iterator<Navimain> it3 = s.iterator();
it3.hasNext();) {
- Navimain navim = it3.next();
+ for (Navimain navim : navigl.getMainnavi()) {
navim.setLabel(fieldmanagment.getFieldByIdAndLanguageByNavi(
navim.getFieldvalues_id(),
language_id));
navim.setTooltip(fieldmanagment.getFieldByIdAndLanguageByNavi(
navim.getTooltip_fieldvalues_id(), language_id));
-
}
}
return ll;
}
+ //FIXME need to be refactored
+ public List<NaviDTO> getMainMenuDTO(long user_level, long USER_ID, long
language_id) {
+ ArrayList<NaviDTO> result = new ArrayList<NaviDTO>();
+ for (Naviglobal ng: getMainMenu(user_level, USER_ID,
language_id)) {
+ NaviDTO nd = new NaviDTO();
+ //nd.setAction(MenuActions.valueOf(ng.getAction()));
+ nd.setLabel(ng.getLabel().getValue());
+ nd.setTooltip(ng.getTooltip().getValue());
+ ArrayList<NaviDTO> items = new ArrayList<NaviDTO>();
+ for (Navimain navim : ng.getMainnavi()) {
+ NaviDTO mnd = new NaviDTO();
+
mnd.setAction(MenuActions.valueOf(navim.getAction()));
+ mnd.setParam(navim.getParams());
+ mnd.setLabel(navim.getLabel().getValue());
+ mnd.setTooltip(navim.getTooltip().getValue());
+ items.add(mnd);
+ }
+ nd.setItems(items);
+ result.add(nd);
+ }
+ return result;
+ }
+
public List<Naviglobal> getMainMenu(long user_level, long USER_ID) {
try {
TypedQuery<Naviglobal> query =
em.createNamedQuery("getNavigation", Naviglobal.class);
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
Thu Aug 30 19:02:24 2012
@@ -137,6 +137,13 @@ public class UsersDaoImpl {
return null;
}
+ public List<Users> getNondeletedUsers(int first, int count) {
+ TypedQuery<Users> q = em.createNamedQuery("getNondeletedUsers",
Users.class);
+ q.setFirstResult(first);
+ q.setMaxResults(count);
+ return q.getResultList();
+ }
+
public List<Users> getAllUsers() {
try {
// get all non-deleted users
Added:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/NaviDTO.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/NaviDTO.java?rev=1379068&view=auto
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/NaviDTO.java
(added)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/dto/NaviDTO.java
Thu Aug 30 19:02:24 2012
@@ -0,0 +1,81 @@
+/*
+ * 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.openmeetings.app.dto;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class NaviDTO implements Serializable {
+ private static final long serialVersionUID = -5791532960902753608L;
+ public enum MenuActions {
+ dashboardModuleStartScreen
+ , dashboardModuleCalendar
+ , recordModule
+ , conferenceModuleRoomList
+ , eventModuleRoomList
+ , moderatorModuleUser
+ , moderatorModuleRoom
+ , adminModuleUser
+ , adminModuleConnections
+ , adminModuleOrg
+ , adminModuleRoom
+ , adminModuleConfiguration
+ , adminModuleLanguages
+ , adminModuleLDAP
+ , adminModuleBackup
+ , adminModuleServers
+ }
+
+ private String label;
+ private String tooltip;
+ private MenuActions action;
+ private String param;
+ private List<NaviDTO> items;
+
+ public String getLabel() {
+ return label;
+ }
+ public void setLabel(String label) {
+ this.label = label;
+ }
+ public String getTooltip() {
+ return tooltip;
+ }
+ public void setTooltip(String tooltip) {
+ this.tooltip = tooltip;
+ }
+ public MenuActions getAction() {
+ return action;
+ }
+ public void setAction(MenuActions action) {
+ this.action = action;
+ }
+ public String getParam() {
+ return param;
+ }
+ public void setParam(String param) {
+ this.param = param;
+ }
+ public List<NaviDTO> getItems() {
+ return items;
+ }
+ public void setItems(List<NaviDTO> items) {
+ this.items = items;
+ }
+}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
Thu Aug 30 19:02:24 2012
@@ -51,9 +51,9 @@ import org.simpleframework.xml.Root;
@Entity
@NamedQueries({
- @NamedQuery(name="getAllUsers",
- query="SELECT u FROM Users u")
- , @NamedQuery(name="getUsersByOrganisationId",
+ @NamedQuery(name="getAllUsers", query="SELECT u FROM Users u")
+ , @NamedQuery(name="getNondeletedUsers", query="SELECT u FROM Users u
WHERE u.deleted = false")
+ , @NamedQuery(name="getUsersByOrganisationId",
query="SELECT u FROM Users u WHERE u.deleted = false AND
u.organisation_users.organisation.organisation_id = :organisation_id")
})
@Table(name = "users")
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/app/WebSession.java
Thu Aug 30 19:02:24 2012
@@ -18,15 +18,19 @@
*/
package org.openmeetings.web.app;
+import java.util.List;
+
import
org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
import org.apache.wicket.authroles.authorization.strategies.role.Roles;
import org.apache.wicket.request.Request;
import org.openmeetings.app.data.basic.AuthLevelmanagement;
import org.openmeetings.app.data.basic.Configurationmanagement;
import org.openmeetings.app.data.basic.Fieldmanagment;
+import org.openmeetings.app.data.basic.Navimanagement;
import org.openmeetings.app.data.basic.Sessionmanagement;
import org.openmeetings.app.data.user.Usermanagement;
import org.openmeetings.app.data.user.dao.UsersDaoImpl;
+import org.openmeetings.app.dto.NaviDTO;
import org.openmeetings.app.persistence.beans.basic.Sessiondata;
import org.openmeetings.app.persistence.beans.user.Users;
@@ -35,6 +39,7 @@ public class WebSession extends Abstract
private long userId = -1;
private long userLevel = -1;
private String SID = null;
+ private List<NaviDTO> menu = null;
public WebSession(Request request) {
super(request);
@@ -84,6 +89,15 @@ public class WebSession extends Abstract
return fieldManagment.getString(id, getLanguage());
}
+ public static List<NaviDTO> getNavMenu() {
+ WebSession session = get();
+ if (session.menu == null) {
+ session.menu = Application.getBean(Navimanagement.class)
+ .getMainMenuDTO(session.userLevel,
session.userId, getLanguage());
+ }
+ return session.menu;
+ }
+
public static long getLanguage() {
WebSession session = get();
if (session.isSignedIn()) {
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/MenuPage.java
Thu Aug 30 19:02:24 2012
@@ -18,101 +18,76 @@
*/
package org.openmeetings.web.pages;
-import java.util.List;
-
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.markup.html.list.AbstractItem;
-import org.apache.wicket.markup.repeater.RepeatingView;
-import org.openmeetings.app.data.basic.Navimanagement;
-import org.openmeetings.app.persistence.beans.basic.Naviglobal;
-import org.openmeetings.app.persistence.beans.basic.Navimain;
-import org.openmeetings.web.app.Application;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.ListView;
+import org.openmeetings.app.dto.NaviDTO;
import org.openmeetings.web.app.WebSession;
import org.openmeetings.web.pages.admin.UsersPage;
public class MenuPage extends UserPage {
private static final long serialVersionUID = 6421960759218157999L;
- private enum MenuActions {
- dashboardModuleStartScreen
- , dashboardModuleCalendar
- , recordModule
- , conferenceModuleRoomList
- , eventModuleRoomList
- , moderatorModuleUser
- , moderatorModuleRoom
- , adminModuleUser
- , adminModuleConnections
- , adminModuleOrg
- , adminModuleRoom
- , adminModuleConfiguration
- , adminModuleLanguages
- , adminModuleLDAP
- , adminModuleBackup
- , adminModuleServers
- }
public MenuPage() {
- //FIXME all this need to be refactored
- List<Naviglobal> menu =
Application.getBean(Navimanagement.class)
- .getMainMenu(WebSession.getUserLevel(),
WebSession.getUserId(), WebSession.getLanguage());
-
- RepeatingView repeater = new RepeatingView("mainItem");
- add(repeater);
- for (Naviglobal global : menu) {
- AbstractItem item = new
AbstractItem(repeater.newChildId());
- repeater.add(item);
- item.add(new Label("label",
global.getLabel().getValue()).setRenderBodyOnly(true));
+ add(new ListView<NaviDTO>("mainItem", WebSession.getNavMenu()) {
+ private static final long serialVersionUID =
2173926553418745231L;
- RepeatingView subRepeater = new
RepeatingView("childItem");
- item.add(subRepeater);
- for (Navimain subMenu : global.getMainnavi()) {
- AbstractItem subItem = new
AbstractItem(subRepeater.newChildId());
- subRepeater.add(subItem);
+ @Override
+ protected void populateItem(ListItem<NaviDTO> item) {
+ NaviDTO gl = item.getModelObject();
+ item.add(new Label("label",
gl.getLabel()).setRenderBodyOnly(true));
+ item.add(new ListView<NaviDTO>("childItem",
gl.getItems()) {
+ private static final long
serialVersionUID = 3609635268338379087L;
- Link<Void> link = new
BookmarkablePageLink<Void>("link", MenuPage.class);
-
switch(MenuActions.valueOf(subMenu.getAction())) {
- case dashboardModuleStartScreen:
- break;
- case dashboardModuleCalendar:
- break;
- case recordModule:
- break;
- case conferenceModuleRoomList:
- //requires params
- break;
- case eventModuleRoomList:
- break;
- case moderatorModuleUser:
- break;
- case moderatorModuleRoom:
- break;
- case adminModuleUser:
- link = new
BookmarkablePageLink<Void>("link", UsersPage.class);
- break;
- case adminModuleConnections:
- break;
- case adminModuleOrg:
- break;
- case adminModuleRoom:
- break;
- case adminModuleConfiguration:
- break;
- case adminModuleLanguages:
- break;
- case adminModuleLDAP:
- break;
- case adminModuleBackup:
- break;
- case adminModuleServers:
- break;
- }
- subItem.add(link);
- link.add(new Label("name",
subMenu.getLabel().getValue()).setRenderBodyOnly(true));
- link.add(new Label("description",
subMenu.getTooltip().getValue()).setRenderBodyOnly(true));
+ @Override
+ protected void
populateItem(ListItem<NaviDTO> item) {
+ NaviDTO m =
item.getModelObject();
+ Link<Void> link = new
BookmarkablePageLink<Void>("link", MenuPage.class);
+ switch(m.getAction()) {
+ case
dashboardModuleStartScreen:
+ break;
+ case
dashboardModuleCalendar:
+ break;
+ case recordModule:
+ break;
+ case
conferenceModuleRoomList:
+ //requires
params
+ break;
+ case
eventModuleRoomList:
+ break;
+ case
moderatorModuleUser:
+ break;
+ case
moderatorModuleRoom:
+ break;
+ case adminModuleUser:
+ link = new
BookmarkablePageLink<Void>("link", UsersPage.class);
+ break;
+ case
adminModuleConnections:
+ break;
+ case adminModuleOrg:
+ break;
+ case adminModuleRoom:
+ break;
+ case
adminModuleConfiguration:
+ break;
+ case
adminModuleLanguages:
+ break;
+ case adminModuleLDAP:
+ break;
+ case adminModuleBackup:
+ break;
+ case adminModuleServers:
+ break;
+ }
+ item.add(link);
+ link.add(new Label("name",
m.getLabel()).setRenderBodyOnly(true));
+ link.add(new
Label("description", m.getTooltip()).setRenderBodyOnly(true));
+ }
+ }.setReuseItems(true));
}
- }
+ }.setReuseItems(true));
}
}
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.html
Thu Aug 30 19:02:24 2012
@@ -21,6 +21,29 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.5-strict.dtd"
lang="en">
<wicket:extend>
- Users will goes here
+ <table>
+ <tr>
+ <td>
+ <span wicket:id="navigator">[dataview
navigator]</span>
+ <table>
+ <tr>
+ <th><wicket:ommessage
key="146" /></th>
+ <th><wicket:ommessage
key="147" /></th>
+ <th><wicket:ommessage
key="148" /></th>
+ <th><wicket:ommessage
key="149" /></th>
+ </tr>
+ <tr wicket:id="userList">
+ <td><span
wicket:id="userId"></span></td>
+ <td><span
wicket:id="login"></span></td>
+ <td><span
wicket:id="firstName"></span></td>
+ <td><span
wicket:id="lastName"></span></td>
+ </tr>
+ </table>
+ </td>
+ <td>
+ <span wicket:id="selected"></span>
+ </td>
+ </tr>
+ </table>
</wicket:extend>
</html>
Modified:
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
URL:
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java?rev=1379068&r1=1379067&r2=1379068&view=diff
==============================================================================
---
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
(original)
+++
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/web/pages/admin/UsersPage.java
Thu Aug 30 19:02:24 2012
@@ -18,9 +18,75 @@
*/
package org.openmeetings.web.pages.admin;
+import java.util.Iterator;
+
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.navigation.paging.PagingNavigator;
+import org.apache.wicket.markup.repeater.Item;
+import org.apache.wicket.markup.repeater.data.DataView;
+import org.apache.wicket.markup.repeater.data.IDataProvider;
+import org.apache.wicket.model.CompoundPropertyModel;
+import org.apache.wicket.model.IModel;
+import org.apache.wicket.model.PropertyModel;
+import org.openmeetings.app.data.user.dao.UsersDaoImpl;
+import org.openmeetings.app.persistence.beans.user.Users;
+import org.openmeetings.web.app.Application;
+
public class UsersPage extends AdminPage {
private static final long serialVersionUID = -4463107742579790120L;
-
+ @SuppressWarnings("unused")
+ private String selectedText = "Click on the table to change the user";
+ private Label selected = null;
+
public UsersPage() {
+ DataView<Users> dataView = new DataView<Users>("userList", new
IDataProvider<Users>(){
+ private static final long serialVersionUID =
-6822789354860988626L;
+
+ public void detach() {
+ //empty
+ }
+
+ public Iterator<? extends Users> iterator(long first,
long count) {
+ return
Application.getBean(UsersDaoImpl.class).getNondeletedUsers((int)first,
(int)count).iterator();
+ }
+
+ public long size() {
+ return
Application.getBean(UsersDaoImpl.class).selectMaxFromUsers();
+ }
+
+ public IModel<Users> model(Users object) {
+ return new CompoundPropertyModel<Users>(object);
+ }
+
+ }) {
+ private static final long serialVersionUID =
8715559628755439596L;
+
+ @Override
+ protected void populateItem(Item<Users> item) {
+ Users u = item.getModelObject();
+ item.add(new Label("userId", "" +
u.getUser_id()));
+ item.add(new Label("login", u.getLogin()));
+ final String fName = u.getFirstname();
+ item.add(new Label("firstName", fName));
+ final String lName = u.getLastname();
+ item.add(new Label("lastName", lName));
+ item.add(new AjaxEventBehavior("onclick") {
+ private static final long
serialVersionUID = -8069413566800571061L;
+
+ protected void
onEvent(AjaxRequestTarget target) {
+ selectedText = fName + " " +
lName + " selected.";
+ target.add(selected);
+ }
+ });
+ }
+ };
+ selected = new Label("selected", new
PropertyModel<String>(this, "selectedText"));
+ selected.setOutputMarkupId(true);
+ add(selected);
+ dataView.setItemsPerPage(8); //FIXME need to be parametrized
+ add(dataView);
+ add(new PagingNavigator("navigator", dataView));
}
}