package org.jivesoftware.openfire.plugin.gojara.utils; import java.sql.Timestamp; import java.util.Date; import java.util.Map; /** * @author axel.frederik.brand Helper for some functions we call from gojara registration / session jsps */ public class JspHelper { /** * Create a link that leads to the same page, sorted by the attribute clicked on. The sorting Order depends on the * current sorting order. If element is not the one currently sorted by, its always ASC, else DESC * * @param column * @param sortParams * @return String with html in it */ public static String sortingHelperRegistrations(String column, Map<String, String> sortParams) { String link_beginning = "<a href=\"gojara-RegistrationsOverview.jsp?sortby="; return helpMe(column, sortParams, link_beginning); } public static String sortingHelperSessions(String column, Map<String, String> sortParams) { String link_beginning = "<a href=\"gojara-activeSessions.jsp?sortby="; return helpMe(column, sortParams, link_beginning); } private static String helpMe(String column, Map<String, String> sortParams, String link_beginning) { String image_asc = "<img alt=\"sorted ASC\" src=\"/images/sort_ascending.gif\">"; String image_desc = "<img alt=\"sorted DESC\" src=\"/images/sort_descending.gif\">"; String ending = ""; if (column.equals("username")) ending = "User Name:"; else if (column.equals("transport")) ending = "Resource:"; else if (column.equals("lastActivity")) ending = "Last Login was at:"; else if (column.equals("loginTime")) ending = "Login Time:"; else ending = "i dont want to be here"; ending += "</a>"; String sortinglink = ""; if (sortParams.containsValue(column)) { if (sortParams.containsValue("ASC")) { sortinglink = image_asc + link_beginning + column + "&sortorder=DESC\">" + ending; } else if (sortParams.containsValue("DESC")) { sortinglink = image_desc + link_beginning + column + "&sortorder=ASC\">" + ending; } } else { // This is not the currently sorted colum so we want to sort with it, Ascending. sortinglink = link_beginning + column + "&sortorder=ASC\">" + ending; } return sortinglink; } /** * Compares specified date to current date and returns String explaining how much Minutes / Hours / Days has passed * since then * * @param oldDate * @return */ public static String dateDifferenceHelper(Date oldDate) { Timestamp stamp = new Timestamp(System.currentTimeMillis()); Date currentDate = new Date(stamp.getTime()); long diff = currentDate.getTime() - oldDate.getTime(); long diffSeconds = diff / 1000 % 60; long diffMinutes = diff / (60 * 1000) % 60; long diffHours = diff / (60 * 60 * 1000) % 24; long diffDays = diff / (24 * 60 * 60 * 1000); String seconds = diffSeconds == 0 ? "" : (diffSeconds + " Sec"); String minutes = diffMinutes == 0 ? "" : (diffMinutes + " Min "); String hours = diffHours == 0 ? "" : (diffHours + " Hours "); String days = diffDays == 0 ? "" : (diffDays + " Days "); return days + hours + minutes + seconds + " ago"; } }