Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1054 → Rev 1055

/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserManager.java
326,8 → 326,17
}
}
 
public static final Integer SORT_LOGIN = new Integer(1);
public Collection listUserLogins(CollectionInfo info, int rowsPerPage, int pageNumber,
Integer[] sortingKeys, User editor, User user)
throws ModelException
{
return store.listUserLogins(info, rowsPerPage, pageNumber, sortingKeys, user);
}
 
public static final Integer SORT_LOGIN = new Integer(1);
public static final Integer SORT_LOGINS_TIME = new Integer(2);
public static final Integer SORT_LOGINS_TIME_REVERSE = new Integer(3);
 
public static final Comparator LOGIN_COMPARATOR = new LoginComparator();
public static final Comparator LOGINS_TIME_COMPARATOR = new LoginsTimeComparator();
 
/hostadmiral/trunk/src/ak/hostadmiral/core/model/store/UserStore.java
39,4 → 39,8
 
public Collection listSubusers(User user)
throws ModelStoreException;
 
public Collection listUserLogins(CollectionInfo info, int rowsPerPage, int pageNumber,
Integer[] sortingKeys, User user)
throws ModelStoreException;
}
/hostadmiral/trunk/src/ak/hostadmiral/core/model/store/hibernate/UserHibernate.java
182,7 → 182,33
}
}
 
public Collection listUserLogins(CollectionInfo info, int rowsPerPage, int pageNumber,
Integer[] sortingKeys, User user)
throws ModelStoreException
{
try {
if(info != null) {
info.init(((Integer)HibernateUtil.currentSession().iterate(
"select count(*) from UserLogin where usr = ?",
new Object[] { user },
new Type[] { Hibernate.entity(User.class) }
).next()).intValue(),
pageNumber, rowsPerPage);
}
 
return HibernateUtil.pageableList(rowsPerPage, pageNumber,
"select l from UserLogin l where usr = ?"
+ HibernateUtil.formOrderClause(sortingKeys, sortKeysLogins),
new Object[] { user },
new Type[] { Hibernate.entity(User.class) } );
}
catch(HibernateException ex) {
throw new ModelStoreException(ex);
}
}
 
protected static Map sortKeys = new HashMap();
protected static Map sortKeysLogins = new HashMap();
private static boolean sortKeysInitialized = false;
 
private static void initSortKeys()
189,6 → 215,8
{
if(!sortKeysInitialized) {
sortKeys.put(UserManager.SORT_LOGIN, "u.login");
sortKeysLogins.put(UserManager.SORT_LOGINS_TIME, "l.loginTime");
sortKeysLogins.put(UserManager.SORT_LOGINS_TIME_REVERSE, "l.loginTime desc");
sortKeysInitialized = true;
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/action/UserLoginsAction.java
1,8 → 1,8
package ak.hostadmiral.core.action;
 
import java.util.List;
import java.util.Collection;
import java.util.Collections;
import java.util.ArrayList;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
14,6 → 14,7
import org.apache.struts.action.ActionForward;
 
import ak.hostadmiral.util.StringConverter;
import ak.hostadmiral.util.CollectionInfo;
import ak.hostadmiral.core.model.User;
import ak.hostadmiral.core.model.UserManager;
 
20,23 → 21,27
public final class UserLoginsAction
extends Action
{
public static final int PAGE_SIZE = 20;
 
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
// FIXME: pages here
ActionUtils.prepare(request, response);
User user = (User)request.getSession().getAttribute("user");
 
DynaActionForm theForm = (DynaActionForm)form;
Long userId = StringConverter.parseLong(theForm.get("id"));
User u = UserManager.getInstance().get(user, userId);
List logins = new ArrayList(u.getLogins());
DynaActionForm theForm = (DynaActionForm)form;
Long userId = StringConverter.parseLong(theForm.get("id"));
User u = UserManager.getInstance().get(user, userId);
Long page = StringConverter.parseLong(theForm.get("pg"));
CollectionInfo listInfo = new CollectionInfo();
Collection logins = UserManager.getInstance().listUserLogins(
listInfo, PAGE_SIZE, (page == null) ? 0 : page.intValue(),
new Integer[] { UserManager.SORT_LOGINS_TIME_REVERSE }, user, u);
 
Collections.sort(logins, UserManager.LOGINS_TIME_COMPARATOR);
Collections.reverse(logins);
request.setAttribute("u", u);
request.setAttribute("logins", logins);
request.setAttribute("u", u);
request.setAttribute("logins", logins);
request.setAttribute("listInfo", listInfo);
 
return mapping.findForward("default");
}
/hostadmiral/trunk/webapp/user/logins.jsp
5,6 → 5,7
<%@ taglib uri="/WEB-INF/ak-backpath.tld" prefix="backpath" %>
<%@ taglib uri="/WEB-INF/ak-strutsx.tld" prefix="strutsx" %>
<%@ taglib uri="/WEB-INF/hostadmiral-core.tld" prefix="core" %>
<%@ taglib uri="/WEB-INF/hostadmiral-list.tld" prefix="list" %>
<html>
 
<head>
52,10 → 53,37
</logic:iterate>
</table>
 
<p>
List size: <bean:write name="listInfo" property="size" />
Page: <list:currentpage infoBean="listInfo" /> of <bean:write name="listInfo" property="totalPages" />
</p>
<p>
<list:hasfirst infoBean="listInfo"><list:firstpage infoBean="listInfo">&lt;&lt;</list:firstpage></list:hasfirst>
<list:nofirst infoBean="listInfo">&lt;&lt;</list:nofirst>
 
<list:hasprev infoBean="listInfo"><list:prevpage infoBean="listInfo">&lt;</list:prevpage></list:hasprev>
<list:noprev infoBean="listInfo">&lt;</list:noprev>
 
<list:iterate infoBean="listInfo" max="20">
<list:iscurrent>
<list:displaypage />
</list:iscurrent>
<list:notcurrent>
<list:pagelink><list:displaypage /></list:pagelink>
</list:notcurrent>
</list:iterate>
 
<list:hasnext infoBean="listInfo"><list:nextpage infoBean="listInfo">&gt;</list:nextpage></list:hasnext>
<list:nonext infoBean="listInfo">&gt;</list:nonext>
 
<list:haslast infoBean="listInfo"><list:lastpage infoBean="listInfo">&gt;&gt;</list:lastpage></list:haslast>
<list:nolast infoBean="listInfo">&gt;&gt;</list:nolast>
</p>
 
<br>
<backpath:backlink><bean:message key="ak.hostadmiral.page.user.logins.back" /></backpath:backlink>
 
<p>
<p>
<bean:message key="ak.hostadmiral.page.general.version" />:
<bean:write name="projectVersion" />
</p>
/hostadmiral/trunk/webapp/generalError.jsp
19,7 → 19,7
 
<p><bean:message key="ak.hostadmiral.page.generalError.message" /></p>
 
<html:link path="/"><bean:message key="ak.hostadmiral.page.generalError.index" /></html:link>
<html:link action="/index"><bean:message key="ak.hostadmiral.page.generalError.index" /></html:link>
<br>
<backpath:backlink><bean:message key="ak.hostadmiral.page.generalError.back" /></backpath:backlink>
 
/hostadmiral/trunk/webapp/accessDenied.jsp
19,7 → 19,7
 
<p><bean:message key="ak.hostadmiral.page.accessDenied.message" /></p>
 
<html:link path="/"><bean:message key="ak.hostadmiral.page.accessDenied.index" /></html:link>
<html:link action="/index"><bean:message key="ak.hostadmiral.page.accessDenied.index" /></html:link>
<br>
<backpath:backlink><bean:message key="ak.hostadmiral.page.accessDenied.back" /></backpath:backlink>
 
/hostadmiral/trunk/webapp/WEB-INF/struts-config.xml
37,6 → 37,7
name="UserLoginsForm"
type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="id" type="java.lang.String" />
<form-property name="pg" type="java.lang.String" />
</form-bean>
 
<form-bean
/hostadmiral/trunk/webapp/WEB-INF/validation.xml
47,6 → 47,9
<msg name="required" key="ak.hostadmiral.core.user.id.wrong" />
<msg name="long" key="ak.hostadmiral.core.user.id.wrong" />
</field>
<field property="pg" depends="integer">
<msg name="integer" key="ak.hostadmiral.page.general.page.wrong" />
</field>
</form>
 
<form name="UserEditForm">