[Ils-source] r1356 - in trunk: src/com/resolutions/ils/data webapp
scribe at crosswire.org
scribe at crosswire.org
Tue Nov 10 17:31:49 MST 2015
Author: scribe
Date: 2015-11-10 17:31:49 -0700 (Tue, 10 Nov 2015)
New Revision: 1356
Added:
trunk/webapp/report_recurrent_training.jsp
Modified:
trunk/src/com/resolutions/ils/data/UserProfile.java
trunk/webapp/admin_profile.jsp
trunk/webapp/menu.jsp
Log:
Added initial cut of recurrent training report
Modified: trunk/src/com/resolutions/ils/data/UserProfile.java
===================================================================
--- trunk/src/com/resolutions/ils/data/UserProfile.java 2015-11-11 00:28:20 UTC (rev 1355)
+++ trunk/src/com/resolutions/ils/data/UserProfile.java 2015-11-11 00:31:49 UTC (rev 1356)
@@ -75,7 +75,10 @@
static String COUNTWOULDBEDELETES = "SELECT COUNT(*) WOULDBE FROM ("+SELECTOLDIDS+") TMPTABLE";
static String LOOKUPUSERGROUPS = "SELECT * FROM ILSGROUP T1, USERGROUP T2 WHERE T1.ILSGROUPID=T2.ILSGROUPID AND T2.USERPRID={USERPRID} AND T1.COMPANYID={COMPANYID} AND T2.COMPANYID={COMPANYID}";
+ static String RECURRENT_TRAINING_REPORT = "SELECT DISTINCT CASS.USERPRID, CASS.COURSID, UP.USERPRLNAME, UP.USERPRFNAME, UP.USERPRNUM, C.COURSNAME, CA.CACOMPLETEDATE, CASE C.COURSPASSEXPDAYS WHEN 0 THEN CA.CAEXPIREDON ELSE COALESCE(CA.CAEXPIREDON, CA.CACOMPLETEDATE+C.COURSPASSEXPDAYS) END AS CAEXPIREDON, DATEDIFF(day, CA.CAEXPIREDON, CURRENT_TIMESTAMP) as DAYSEXPIRED, CASE C.COURSPASSEXPDAYS WHEN 0 THEN NULL ELSE C.COURSPASSEXPDAYS - DATEDIFF(day, CA.CACOMPLETEDATE, CURRENT_TIMESTAMP) END as DAYSSHOULDEXPIRE from USERCOURSEASSIGNMENTSWITHGROUPS CASS LEFT JOIN COURSE C ON C.COURSID = CASS.COURSID LEFT JOIN COURSEATTEMPT CA ON CA.USERPRID=CASS.USERPRID AND CA.COURSID=CASS.COURSID INNER JOIN (SELECT USERPRID, COURSID, MAX(CACOMPLETEDATE) as max_date FROM COURSEATTEMPT GROUP BY USERPRID, COURSID)a on a.USERPRID = CA.USERPRID AND a.COURSID=CA.COURSID and a.max_date = CA.CACOMPLETEDATE LEFT JOIN USERPROFILE UP ON UP.COMPANYID=CASS.COMPANYID AND UP.USERPRID = CASS.USERPRID WHERE CASS.COMPANYID={COMPANYID} AND (DATEDIFF(day, CA.CAEXPIREDON, CURRENT_TIMESTAMP) >= 0 OR CASE C.COURSPASSEXPDAYS WHEN 0 THEN NULL ELSE C.COURSPASSEXPDAYS - DATEDIFF(day, CA.CACOMPLETEDATE, CURRENT_TIMESTAMP) END <={DAYSTILEXP}) AND UP.USERPRSTATUSID=" + STATUS_ACTIVE;
+static String RECURRENT_TRAINING_REPORT_LIMIT_TO_MANAGER = " AND CASS.USERPRID IN (SELECT DISTINCT UG.USERPRID FROM MANAGERGROUP MG LEFT JOIN USERGROUP UG ON UG.COMPANYID = MG.COMPANYID AND UG.ILSGROUPID=MG.ILSGROUPID WHERE MG.COMPANYID={COMPANYID} AND MG.USERPRID={USERPRID}) AND (GROUPTYPEID <> 2 OR ILSGROUPID IN (SELECT ILSGROUPID FROM MANAGERGROUP WHERE COMPANYID={COMPANYID} AND USERPRID={USERPRID}))";
+
private boolean isRoleLoaded = false;
private boolean isWorkgroupLoaded = false;
private boolean isCourseSummaryDataLoaded = false;
@@ -497,6 +500,21 @@
return retVal.getDataSet(sql + " OPTION (RECOMPILE)");
}
+ static public Vector<UserProfile> getManagerRecurrentTrainingReport(ILSSession session, int daysTilExpire) {
+ return getManagerRecurrentTrainingReport(session, daysTilExpire, -1);
+ }
+ static public Vector<UserProfile> getManagerRecurrentTrainingReport(ILSSession session, int daysTilExpire, int limitToManagerID) {
+ UserProfile retVal = new UserProfile();
+ String sql = RECURRENT_TRAINING_REPORT;
+ retVal.setCompanyID(session.getCompanyID());
+ retVal.setIntValue("DAYSTILEXP", daysTilExpire);
+ if (limitToManagerID != -1) {
+ sql += RECURRENT_TRAINING_REPORT_LIMIT_TO_MANAGER;
+ retVal.setUserProfileID(limitToManagerID);
+ }
+ return retVal.getDataSet(sql + " OPTION (RECOMPILE)");
+ }
+
public UserProfile []getManagers() {
String sql = LOOKUP + " AND USERPRID IN (" + LOOKUPMANAGERS + ")";
Vector<UserProfile> rows = this.getDataSet(sql);
Modified: trunk/webapp/admin_profile.jsp
===================================================================
--- trunk/webapp/admin_profile.jsp 2015-11-11 00:28:20 UTC (rev 1355)
+++ trunk/webapp/admin_profile.jsp 2015-11-11 00:31:49 UTC (rev 1356)
@@ -872,7 +872,7 @@
%>
<tr>
<td><input id="pv<%=UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS %>" type="checkbox" <%= ((userPrivs & UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS) == UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS) ? "checked=\"checked\"":"" %> name="priv" value="<%=UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS %>" /></td>
- <td>Student Records<br>
+ <td>Reports<br>
<table width="200" border="0" cellspacing="1" cellpadding="0">
<%
Modified: trunk/webapp/menu.jsp
===================================================================
--- trunk/webapp/menu.jsp 2015-11-11 00:28:20 UTC (rev 1355)
+++ trunk/webapp/menu.jsp 2015-11-11 00:31:49 UTC (rev 1356)
@@ -1,3 +1,36 @@
+<style type="text/css">
+ ul li{
+ display: inline-block;
+ position: relative;
+ }
+ ul li ul.dropdown{
+ padding: 0;
+ list-style: none;
+ display: none;
+ position: absolute;
+ z-index: 999;
+ left: 0;
+ background-image: url(images/bggradient.jpg);
+ background-position: left bottom;
+ background-size: 100% 100%;
+ background-repeat: repeat-x;
+ }
+ ul li:hover ul.dropdown{
+ display: block; /* Display the dropdown */
+ }
+ ul li ul.dropdown li{
+ text-align: left;
+ display: block;
+ border-right: none !important;
+ }
+ ul li ul.dropdown li a{
+ display: block;
+ padding: 8px 8px;
+ color: #333;
+ text-decoration: none;
+ }
+</style>
+
<div id="Banner"><span class="loggedinBar">Logged in as:<%=user.getUserProfileNum()%></span></div>
<div id="MainMenu">
<%
@@ -38,14 +71,30 @@
}
if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
%>
- <li><a href="admin_studentrecords.jsp">Student<br />Records</a></li>
+ <li><a href="#">Reports <span> ▼</span></a>
+ <ul class="dropdown">
<%
}
if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
%>
- <li><a href="report_pending_summary.jsp">Summary<br />Report</a></li>
+ <li><a href="admin_studentrecords.jsp">Student Records</a></li>
<%
}
+ if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
+%>
+ <li><a href="report_pending_summary.jsp">Summary Report</a></li>
+<%
+ }
+ if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
+%>
+ <li><a href="report_recurrent_training.jsp">Recurrent Training Report</a></li>
+<%
+ }
+ if (user.getUserProfileAccessLevel() >= UserProfile.ACCESS_MANAGER) {
+%>
+ </ul></li>
+<%
+ }
if ((user.getUserProfileAccessLevel() > UserProfile.ACCESS_MANAGER) || (user.hasAccess(UserProfile.ACCESS_MODE_MENU_USER_PROFILE_MGMT))) {
%>
<li><a href="admin_profilemanagement.jsp">User Profile<br />Management</a></li>
Added: trunk/webapp/report_recurrent_training.jsp
===================================================================
--- trunk/webapp/report_recurrent_training.jsp (rev 0)
+++ trunk/webapp/report_recurrent_training.jsp 2015-11-11 00:31:49 UTC (rev 1356)
@@ -0,0 +1,374 @@
+<%@ page
+ language="java" contentType="text/html;charset=utf-8" %>
+<%@ page trimDirectiveWhitespaces="true" %>
+<%@ page import="com.resolutions.ils.*" %>
+<%@ page import="com.resolutions.ils.data.*" %>
+<%@ page import="java.util.Vector" %>
+<%@ page import="java.util.Comparator" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="java.text.SimpleDateFormat" %>
+<%@ page import="org.apache.log4j.Logger" %>
+<%@ page import="java.util.Collections" %>
+
+<%
+ String statusMsg = "";
+ String validError = "";
+ int daysTilDue = 30;
+ String sortOrder = "past";
+ final ILSSession ilsSession = (ILSSession)session.getAttribute("ilsSession");
+ if (ilsSession == null) {
+ out.print("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=login.jsp\"></head></html>");
+ return;
+ }
+
+ boolean noHTML = false;
+
+ UserProfile user = ilsSession.getCurrentUserProfile();
+ if ((user.getUserProfileAccessLevel() <= UserProfile.ACCESS_MANAGER) && (!user.hasAccess(UserProfile.ACCESS_MODE_MENU_STUDENT_RECORDS))) {
+ out.print("<html><body><h1>Access Forbidden</h1></body></html>");
+ Logger.getLogger(this.getClass()).info("Access denied to user ["+user.getUserProfileNum()+"]");
+ return;
+ }
+
+ int limitToManager = (user.getUserProfileAccessLevel() <= UserProfile.ACCESS_MANAGER) ? user.getUserProfileID() : -1;
+
+ try { daysTilDue = (Integer)session.getAttribute("daysTilDue"); } catch(Exception e) {}
+ try { daysTilDue = Integer.parseInt(request.getParameter("daysTilDue")); } catch(Exception e) {}
+ try { session.setAttribute("daysTilDue", new Integer(daysTilDue)); } catch(Exception e) {}
+
+ String val = (String)session.getAttribute("recurrentSort"); if (val != null) sortOrder = val;
+ val = (String)request.getParameter("sort"); if (val != null) sortOrder = val;
+ session.setAttribute("recurrentSort", sortOrder);
+
+ Vector<UserProfile> userProfiles = null;
+ SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");
+ String action = request.getParameter("action");
+
+ String tmp;
+ final String sort = sortOrder;
+
+ if ("csv".equals(action)) {
+ noHTML = true;
+ response.setContentType("application/x-csv");
+ response.setHeader("Content-Disposition","attachment; filename=recurrentReport.csv");
+ }
+
+ userProfiles = UserProfile.getManagerRecurrentTrainingReport(ilsSession, daysTilDue, limitToManager);
+ int expiredCount = 0;
+ for (UserProfile up : userProfiles) {
+ if (up.getValue("DAYSEXPIRED") != null) ++expiredCount;
+ }
+ if (sort != null) {
+ Collections.sort(userProfiles, new Comparator() {
+ public int compare(Object o1, Object o2) {
+ UserProfile p1 = (UserProfile)o1;
+ UserProfile p2 = (UserProfile)o2;
+ if ("lname".equals(sort)) {
+ return p1.getUserProfileLastName().compareTo(p2.getUserProfileLastName());
+ }
+ if ("fname".equals(sort)) {
+ return p1.getUserProfileFirstName().compareTo(p2.getUserProfileFirstName());
+ }
+ if ("empid".equals(sort)) {
+ return p1.getUserProfileNum().compareTo(p2.getUserProfileNum());
+ }
+ if ("location".equals(sort)) {
+ return p1.getWorkgroup(ilsSession).compareTo(p2.getWorkgroup(ilsSession));
+ }
+ if ("role".equals(sort)) {
+ return p1.getRole(ilsSession).compareTo(p2.getRole(ilsSession));
+ }
+ if ("cname".equals(sort)) {
+ return p1.getStringValue("COURSNAME").compareTo(p2.getStringValue("COURSNAME"));
+ }
+ if ("past".equals(sort)) {
+ return p2.getIntValue("DAYSEXPIRED") - p1.getIntValue("DAYSEXPIRED");
+ }
+ if ("due".equals(sort)) {
+ Date d1 = p1.getDateValue("CAEXPIREDON");
+ Date d2 = p2.getDateValue("CAEXPIREDON");
+ long i1 = (d1 == null) ? 0 : d1.getTime();
+ long i2 = (d2 == null) ? 0 : d2.getTime();
+ return (i1 > i2) ? -1 : (i1 == i2) ? 0 : 1;
+ }
+ return 0;
+ }
+ });
+
+ }
+
+ if (!noHTML) {
+%>
+<!doctype html>
+<html>
+<head>
+<title><%= ilsSession.getCurrentCompany().getCompanyName() %> eLearning Portal</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
+ <link rel="stylesheet" href="css/chosen/chosen.min.css">
+ <script type="text/javascript" src="js/jquery/jquery.min.js"></script>
+ <script type="text/javascript" src="js/jquery/jquery.blockUI.js"></script>
+ <script type="text/javascript" src="js/chosen/chosen.jquery.min.js"></script>
+ <script type="text/javascript" src="crosswire.js"></script>
+ <link href="lms_style.css" rel="stylesheet" type="text/css"/>
+ <script type="text/javascript" language="JavaScript">
+<!--
+var rdCtl = null;
+
+function rD(val) {
+ rdCtl.value = val;
+}
+
+function scrollToReport() {
+ records = document.getElementById("gotRecords")
+ if (records) {
+ window.location.hash="report";
+ }
+}
+
+$(document).ready(function() {
+ $('#locationSelect').attr('data-placeholder', $('#selectWorkgroup').text());
+ $('#roleSelect').attr('data-placeholder', $('#selectRole').text());
+ $('#roleSelect').chosen();
+ $('#locationSelect').chosen();
+});
+
+// -->
+ </script>
+ <!-- <style type="text/css">
+<!--
+<!--.style1 {font-size: 12px}
+<!--.style2 {text-transform: none; color: #3F7ABA; padding: 4px 4px 8px; font-weight: bold; text-decoration: none; border: none; font-family: Arial, Helvetica, sans-serif;}
+<!--.style3 {font-size: 10px}
+<!--.style6 {font-size: 12px; text-transform: none; font-weight: bold; text-decoration: none; border: none; font-family: Arial, Helvetica, sans-serif;}
+-->
+ <!-- </style>// -->
+ <style type="text/css">
+<!--
+.style1 {color: #9A9697}
+-->
+ </style>
+</head>
+
+<body onLoad="scrollToReport()">
+<%@ include file="header.jsp" %>
+ <div id="pageContainer">
+<%@ include file="menu.jsp" %>
+<div id="content">
+<div id="pageTitles">
+Recurrent Training Management Report<br />
+<span class="instructiontxt"><%= statusMsg %></span>
+<span class="instructiontxt"><%= validError %></span>
+ <table class="tableBTN">
+ <tr>
+ <td class="tableBTN_td1">
+ <table>
+ <tr>
+ <td><a href="javascript:void(window.print())" target="_top"><img border="0" src="images/print_btn.gif" width="24" height="24" alt=""/></a></td>
+ <td><a class="formButtons" href="javascript:void(window.print())" target="_top">Print Report</a></td>
+ </tr>
+ </table> </td>
+ <td>
+ <table>
+ <tr>
+ <td><a href="?action=csv"><img border="0" src="images/download_btn.gif" width="24" height="24" alt=""></a></td>
+ <td></td>
+ <td><a href="?action=csv" class="formButtons">Download to Excel File </a></td>
+ <td><form action="#">View Upcoming Training Within The Next <input name="daysTilDue" size="5" value="<%=daysTilDue%>"/> Days <button>Go</button></form></td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+</div>
+
+ <table cellpadding="0" cellspacing="0" class="tableMain">
+ <tr>
+ <th>
+ Past Due Training ( <%=expiredCount %> Records ) <%= (userProfiles.size()>0)?"<a name=\"report\" id=\"gotRecords\"></a>":"" %> </th>
+
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table class="tableDataList">
+ <tr>
+ <th><a href="?sort=lname">Last Name</a></th>
+ <th><a href="?sort=fname">First Name</a></th>
+ <th><a href="?sort=empid">Emp ID</a></th>
+ <th><a href="?sort=location"><t:t>Workgroup</t:t></a></th>
+ <th><a href="?sort=role"><t:t>Role</t:t></a></th>
+ <th><a href="?sort=course">Course Name</a></th>
+ <th><a href="?sort=due">Date Due</a></th>
+ <th><a href="?sort=past">Days Past Due</a></th>
+ </tr>
+<%
+ }
+ else {
+ out.print(ilsSession.getCurrentCompany().getCompanyName() + "\n");
+ out.print(user.getUserProfileFirstName() + " " + user.getUserProfileLastName() + "\n");
+ out.print("Report Run " + df.format(new Date()) + "\n\n");
+ out.print("Recurrent Training Management Report\n\n");
+ out.print("Past Due Training\n\n");
+ out.print("Last Name,");
+ out.print("First Name,");
+ out.print("Emp ID,");
+%><t:t>Workgroup</t:t>,<%
+%><t:t>Role</t:t>,<%
+ out.print("Course Name,Date Due,Days Past Due\n");
+ }
+ for (UserProfile up : userProfiles) {
+ if (up.getValue("DAYSEXPIRED") == null) continue;
+ Date lastDate = up.getDateValue("CAEXPIREDON");
+ String eDate = (lastDate != null) ? df.format(lastDate) : "";
+ if (!noHTML) {
+ %>
+ <tr>
+ <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileLastName()%></a></td>
+ <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileFirstName()%></a></td>
+ <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileNum()%></a></td>
+<%
+ String workgroup = up.getWorkgroup(ilsSession);
+ String workgroupSet = up.getWorkgroups(ilsSession);
+ if (!workgroup.equals(workgroupSet)) workgroup += " ...";
+%>
+ <td title="<%= workgroupSet %>"><%= workgroup %></td>
+<%
+ String role = up.getRole(ilsSession);
+ String roleSet = up.getRoles(ilsSession);
+ if (!role.equals(roleSet)) role += " ...";
+%>
+ <td title="<%= roleSet %>"><%= role %></td>
+ <td width="60" align="right"><%=up.getStringValue("COURSNAME")%></td>
+ <td width="75" align="right"><%=eDate%></td>
+ <td width="60" align="right"><%=up.getIntValue("DAYSEXPIRED")%></td>
+ </tr>
+ <%
+ }
+ else {
+ out.print("\""+up.getUserProfileLastName().replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getUserProfileFirstName().replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getUserProfileNum().replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getWorkgroups(ilsSession).replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getRoles(ilsSession).replaceAll("\"", "\"\"") + "\",");
+ out.print(up.getStringValue("COURSNAME") + ",");
+ out.print(eDate + ",");
+ out.print(up.getIntValue("DAYSEXPIRED") + ",");
+ out.print("\n");
+ }
+ }
+ if (!noHTML) {
+%>
+ </table></td>
+ </tr>
+ </table>
+ <table cellpadding="0" cellspacing="0" class="tableMain">
+ <tr>
+ <th>
+ Training Required Next <%=daysTilDue%> Days ( <%=userProfiles.size() - expiredCount %> Records ) <%= (userProfiles.size()>0)?"<a name=\"report\" id=\"gotRecords\"></a>":"" %> </th>
+
+ </tr>
+ <tr>
+ <td>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <table class="tableDataList">
+ <tr>
+ <th><a href="?sort=lname">Last Name</a></th>
+ <th><a href="?sort=fname">First Name</a></th>
+ <th><a href="?sort=empid">Emp ID</a></th>
+ <th><a href="?sort=location"><t:t>Workgroup</t:t></a></th>
+ <th><a href="?sort=role"><t:t>Role</t:t></a></th>
+ <th><a href="?sort=course">Course Name</a></th>
+ <th><a href="?sort=due">Date Due</a></th>
+ <th><a href="?sort=past">Days to Due Date</a></th>
+ </tr>
+<%
+ }
+ else {
+ out.print("\n\nTraining Required Next " + daysTilDue+" Days\n\n");
+ out.print("Last Name,");
+ out.print("First Name,");
+ out.print("Emp ID,");
+%><t:t>Workgroup</t:t>,<%
+%><t:t>Role</t:t>,<%
+ out.print("Course Name,Date Due,Days to Due Date\n");
+ }
+ if ("past".equals(sort)) {
+ Collections.sort(userProfiles, new Comparator() {
+ public int compare(Object o1, Object o2) {
+ UserProfile p1 = (UserProfile)o1;
+ UserProfile p2 = (UserProfile)o2;
+ return p1.getIntValue("DAYSSHOULDEXPIRE") - p2.getIntValue("DAYSSHOULDEXPIRE");
+ }
+ });
+
+ }
+ for (UserProfile up : userProfiles) {
+ if (up.getValue("DAYSEXPIRED") != null) continue;
+ Date lastDate = up.getDateValue("CAEXPIREDON");
+ String eDate = (lastDate != null) ? df.format(lastDate) : "";
+ if (!noHTML) {
+ %>
+ <tr>
+ <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileLastName()%></a></td>
+ <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileFirstName()%></a></td>
+ <td><a href="report_employeecourseatt.jsp?profileid=<%=up.getUserProfileID()%>"><%=up.getUserProfileNum()%></a></td>
+<%
+ String workgroup = up.getWorkgroup(ilsSession);
+ String workgroupSet = up.getWorkgroups(ilsSession);
+ if (!workgroup.equals(workgroupSet)) workgroup += " ...";
+%>
+ <td title="<%= workgroupSet %>"><%= workgroup %></td>
+<%
+ String role = up.getRole(ilsSession);
+ String roleSet = up.getRoles(ilsSession);
+ if (!role.equals(roleSet)) role += " ...";
+%>
+ <td title="<%= roleSet %>"><%= role %></td>
+ <td width="60" align="right"><%=up.getStringValue("COURSNAME")%></td>
+ <td width="75" align="right"><%=eDate%></td>
+ <td width="60" align="right"><%=up.getIntValue("DAYSSHOULDEXPIRE")%></td>
+ </tr>
+ <%
+ }
+ else {
+ out.print("\""+up.getUserProfileLastName().replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getUserProfileFirstName().replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getUserProfileNum().replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getWorkgroups(ilsSession).replaceAll("\"", "\"\"") + "\",");
+ out.print("\""+up.getRoles(ilsSession).replaceAll("\"", "\"\"") + "\",");
+ out.print(up.getStringValue("COURSNAME") + ",");
+ out.print(eDate + ",");
+ out.print(up.getIntValue("DAYSSHOULDEXPIRE") + ",");
+ out.print("\n");
+ }
+ }
+ if (!noHTML) {
+%>
+ </table></td>
+ </tr>
+ </table>
+
+<%
+ }
+if (!noHTML) {
+%>
+
+<div id="attributeTranslationStrings" style="display:none;">
+<span id="selectWorkgroup"><t:t>Select Workgroup</t:t></span>
+<span id="selectRole"><t:t>Select Role</t:t></span>
+</div>
+
+</div>
+<%@ include file="footer.jsp" %>
+</div>
+
+</body>
+</html>
+
+<%} %>
More information about the Ils-source
mailing list