[Ils-source] r1367 - in branches/1.6: . sql webapp webapp/WEB-INF/classes

scribe at crosswire.org scribe at crosswire.org
Thu Dec 17 14:17:18 MST 2015


Author: scribe
Date: 2015-12-17 14:17:18 -0700 (Thu, 17 Dec 2015)
New Revision: 1367

Added:
   branches/1.6/sql/clearrecurrenttraining.properties
   branches/1.6/sql/users.csv
   branches/1.6/sql/workgroups.csv
Modified:
   branches/1.6/
   branches/1.6/sql/createForumTables.properties
   branches/1.6/sql/importroles.properties
   branches/1.6/sql/importusers.properties
   branches/1.6/sql/importworkgroups.properties
   branches/1.6/sql/roles.csv
   branches/1.6/webapp/SQL.jsp
   branches/1.6/webapp/WEB-INF/classes/versions.properties
   branches/1.6/webapp/selfregistration.jsp
Log:
Merged in fixes for import scripts and selfregistration patch from Adam
Cut version 1.80.3



Property changes on: branches/1.6
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk:796-1303,1306-1307,1309-1311,1319-1320,1322-1323,1325,1328-1330,1332,1334-1335,1337,1339,1349-1355
   + /trunk:796-1303,1306-1307,1309-1311,1319-1320,1322-1323,1325,1328-1330,1332,1334-1335,1337,1339,1349-1355,1360-1365

Copied: branches/1.6/sql/clearrecurrenttraining.properties (from rev 1360, trunk/sql/clearrecurrenttraining.properties)
===================================================================
--- branches/1.6/sql/clearrecurrenttraining.properties	                        (rev 0)
+++ branches/1.6/sql/clearrecurrenttraining.properties	2015-12-17 21:17:18 UTC (rev 1367)
@@ -0,0 +1,11 @@
+Category=Student Records
+Name=Clear Recurrent Training
+Description=This statement clears recurrent training for a user
+#Requires=CompanyID
+
+Heading=Select a profile for which to clear all recurrent training
+#SQL=SELECT * FROM USERPROFILE WHERE COMPANYID={CompanyID}
+SQL=SELECT * FROM USERPROFILE WHERE COMPANYID=1
+LinkColumn=USERPRID
+#SQL2=update COURSEATTEMPT set CAEXPIREDON=NULL WHERE USERPRID={0} AND COMPANYID={CompanyID} and CAEXPIREDON is not NULL
+SQL2=update COURSEATTEMPT set CAEXPIREDON=NULL, CAWARNEDON1=NULL, CAWARNEDON2=NULL, CAWARNEDON3=NULL, CAWARNEDON4=NULL WHERE USERPRID={0} AND COMPANYID=1 and CAEXPIREDON is not NULL

Modified: branches/1.6/sql/createForumTables.properties
===================================================================
--- branches/1.6/sql/createForumTables.properties	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/sql/createForumTables.properties	2015-12-17 21:17:18 UTC (rev 1367)
@@ -3,24 +3,24 @@
 Description=Create all Forum Tables
 
 SQL=CREATE TABLE FORUMMESSAGE (		\
-FORUMMESSAGEID INTEGER NOT NULL AUTO_INCREMENT,	\
+FORUMMESSAGEID INTEGER NOT NULL IDENTITY(1,1),	\
 FORUMTOPICID INTEGER NOT NULL,	\
 SITEID VARCHAR(128),	\
-CREATEDATE TIMESTAMP DEFAULT NOW(),		\
+CREATEDATE DATETIME DEFAULT CURRENT_TIMESTAMP,		\
 FROMUSERID VARCHAR(256),			\
 SUBJECT VARCHAR(256),			\
 LIKES INTEGER NOT NULL DEFAULT 0,	\
 VIEWS INTEGER NOT NULL DEFAULT 0,	\
-APPROVED BOOLEAN DEFAULT FALSE,	\
-BODY TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci,	\
+APPROVED BIT DEFAULT 0,	\
+BODY TEXT,	\
 CONSTRAINT FORUMMESSAGEPK1 PRIMARY KEY (FORUMMESSAGEID))
 
 SQL2=CREATE TABLE FORUMTOPIC (		\
-FORUMTOPICID INTEGER NOT NULL AUTO_INCREMENT,	\
+FORUMTOPICID INTEGER NOT NULL IDENTITY(1,1),	\
 FORUMTOPICNAME VARCHAR(256),			\
 COURSEID INTEGER NOT NULL,	\
 COURSENAME VARCHAR(256),	\
-REQUIREAPPROVAL BOOLEAN,	\
+REQUIREAPPROVAL BIT,	\
 CONSTRAINT FORUMTOPICPK1 PRIMARY KEY (FORUMTOPICID))
 
 SQL3=CREATE INDEX FORUMTOPICCOURSEID ON FORUMTOPIC (COURSEID, FORUMTOPICID) 

Modified: branches/1.6/sql/importroles.properties
===================================================================
--- branches/1.6/sql/importroles.properties	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/sql/importroles.properties	2015-12-17 21:17:18 UTC (rev 1367)
@@ -4,6 +4,6 @@
 Requires=CompanyID
 
 Heading=Create Site Roles
-ImportDupCheck=SELECT * FROM ILSGROUP WHERE COMPANYID='{CompanyID}' AND GROUPNAME='{0}' AND GROUPTYPEID=1
-ImportFile=roles.csv|INSERT INTO ILSGROUP (COMPANYID, GROUPNAME, GROUPDESC, GROUPTYPEID) VALUES ('{CompanyID}', '{0}', '{1}', 1)
+ImportDupCheck=SELECT * FROM ILSGROUP WHERE COMPANYID={CompanyID} AND GROUPNAME='{0}' AND GROUPTYPEID=1
+ImportFile=roles.csv|INSERT INTO ILSGROUP (COMPANYID, GROUPNAME, GROUPDESC, GROUPTYPEID) VALUES ({CompanyID}, '{0}', '{1}', 1)
 SQL=NA

Modified: branches/1.6/sql/importusers.properties
===================================================================
--- branches/1.6/sql/importusers.properties	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/sql/importusers.properties	2015-12-17 21:17:18 UTC (rev 1367)
@@ -4,17 +4,57 @@
 Requires=CompanyID
 
 Heading=Create Site Employees
-#save LOCATION in COUNTRY for later address lookup.
-ImportDupCheck=SELECT * FROM USERPROFILE WHERE COMPANYID='{CompanyID}' AND USERPRNUM='{0}'
-ImportFile=users.csv|INSERT INTO USERPROFILE (COMPANYID, USERPRNUM, USERPRPASSWD, USERPRFNAME, USERPRLNAME, USERPRSTATUSID, USERPRHIREDATE, USERPRACCESSLEVEL) values ('{CompanyID}', '{0}', 'changeme', '{1}', '{2}', 1, current_timestamp, 1)
+ImportDupCheck=SELECT * FROM USERPROFILE WHERE COMPANYID={CompanyID} AND USERPRNUM='{0}'
+ImportFile=users.csv|INSERT INTO USERPROFILE (COMPANYID, USERPRNUM, USERPRPASSWD, USERPRFNAME, USERPRMNAME, USERPRLNAME, USERPRSNAME, USERPRSTATUSID, USERPRHIREDATE, USERPRACCESSLEVEL) values ({CompanyID}, '{0}', 'changeme', '{1}', '{2}', '{3}', '{4}', 1, current_timestamp, 1)
 SQL=NA
 
-Heading2=Assign Employees to Role Groups
-ImportDupCheck2=SELECT * FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID='{CompanyID}' and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME={4} AND USERPROFILE.USERPRNUM={0} AND ILSGROUP.GROUPTYPEID=1
-ImportFile2=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid='{CompanyID}' and groupname='{4}' and grouptypeid=1), userprid from userprofile where companyid='{CompanyID}' and userprnum='{0}'
+Heading2=Assign Employees to Workgroups 1
+ImportDupCheck2=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{5}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=2 UNION SELECT 1 WHERE '{5}' = ''
+ImportFile2=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{5}' and grouptypeid=2), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
 SQL2=NA
 
-Heading3=Assign Employees to Workgroups
-ImportDupCheck3=SELECT * FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID='{CompanyID}' and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME={3} AND USERPROFILE.USERPRNUM={0} AND ILSGROUP.GROUPTYPEID=2
-ImportFile3=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid='{CompanyID}' and groupname='{3}' and grouptypeid=2), userprid from userprofile where companyid='{CompanyID}' and userprnum='{0}'
+Heading3=Assign Employees to Workgroups 2
+ImportDupCheck3=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{6}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=2 UNION SELECT 1 WHERE '{6}' = ''
+ImportFile3=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid='{CompanyID}' and groupname='{6}' and grouptypeid=2), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
 SQL3=NA
+
+Heading4=Assign Employees to Role Groups 1
+ImportDupCheck4=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{7}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{7}' = ''
+ImportFile4=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{7}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL4=NA
+
+Heading5=Assign Employees to Role Groups 2
+ImportDupCheck5=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{8}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{8}' = ''
+ImportFile5=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{8}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL5=NA
+
+Heading6=Assign Employees to Role Groups 3
+ImportDupCheck6=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{9}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{9}' = ''
+ImportFile6=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{9}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL6=NA
+
+Heading7=Assign Employees to Role Groups 4
+ImportDupCheck7=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{10}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{10}' = ''
+ImportFile7=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{10}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL7=NA
+
+Heading8=Assign Employees to Role Groups 5
+ImportDupCheck8=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{11}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{11}' = ''
+ImportFile8=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{11}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL8=NA
+
+Heading9=Assign Employees to Role Groups 6
+ImportDupCheck9=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{12}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{12}' = ''
+ImportFile9=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{12}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL9=NA
+
+Heading10=Assign Employees to Role Groups 7
+ImportDupCheck10=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{13}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{13}' = ''
+ImportFile10=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{13}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL10=NA
+
+Heading11=Assign Employees to Role Groups 8
+ImportDupCheck11=SELECT 1 FROM USERGROUP, USERPROFILE, ILSGROUP where USERGROUP.COMPANYID={CompanyID} and USERPROFILE.COMPANYID={CompanyID} and ILSGROUP.COMPANYID={CompanyID} and USERPROFILE.USERPRID=USERGROUP.USERPRID AND ILSGROUP.ILSGROUPID=USERGROUP.ILSGROUPID AND ILSGROUP.GROUPNAME='{14}' AND USERPROFILE.USERPRNUM='{0}' AND ILSGROUP.GROUPTYPEID=1 UNION SELECT 1 WHERE '{14}' = ''
+ImportFile11=users.csv|INSERT INTO USERGROUP (COMPANYID, ILSGROUPID, USERPRID) select {CompanyID}, (select ilsgroupid from ilsgroup where companyid={CompanyID} and groupname='{14}' and grouptypeid=1), userprid from userprofile where companyid={CompanyID} and userprnum='{0}'
+SQL11=NA
+

Modified: branches/1.6/sql/importworkgroups.properties
===================================================================
--- branches/1.6/sql/importworkgroups.properties	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/sql/importworkgroups.properties	2015-12-17 21:17:18 UTC (rev 1367)
@@ -4,6 +4,6 @@
 Requires=CompanyID
 
 Heading=Create Site Workgroups
-ImportDupCheck=SELECT * FROM ILSGROUP WHERE COMPANYID='{CompanyID}' AND GROUPNAME='{0}' AND GROUPTYPEID=2
-ImportFile=workgroups.csv|INSERT INTO ILSGROUP (COMPANYID, GROUPNAME, GROUPDESC, GROUPTYPEID) VALUES ('{CompanyID}', '{0}', '{1}', 2)
+ImportDupCheck=SELECT * FROM ILSGROUP WHERE COMPANYID={CompanyID} AND GROUPNAME='{0}' AND GROUPTYPEID=2
+ImportFile=workgroups.csv|INSERT INTO ILSGROUP (COMPANYID, GROUPNAME, GROUPDESC, GROUPTYPEID) VALUES ({CompanyID}, '{0}', '{1}', 2)
 SQL=NA

Modified: branches/1.6/sql/roles.csv
===================================================================
--- branches/1.6/sql/roles.csv	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/sql/roles.csv	2015-12-17 21:17:18 UTC (rev 1367)
@@ -1,542 +1,6 @@
-24/7 Press Oper
-Acc Admtr I
-Acc Admtr II
-Acc Bus Process Analyst
-Acc Corres
-Acc Corres I
-Acc Corres II
-Acc Corres III
-Acc Exec
-Acc Mgr
-Acc Mgr FMS+
-Acc Mgr I
-Acc Mgr II
-Acc Mgr III
-Acc Mgr IV
-Acc Rep
-Acc Spec
-Acctg Assoc
-Acctg Clrk
-Acctg Clrk I
-Acctg Clrk II
-Acctg Clrk Iii
-Acctg Clrk Iv
-Acctg Coord
-Acctg Mgr
-Acctg Supv
-Acquisition Title
-Admin Aide I
-Admin Aide II
-Admin Aide III
-Admin Aide IV
-Admin Asst
-Appl Devmt Mgr/Bill Solns
-A/R Control Clrk
-Art Dir
-Assoc Bus Analyst
-Assoc Developer
-Asst Controller
-Asst Credit Corres
-Baler Oper
-Bill Clrk
-Bill Clrk Team Leader
-Bill Cntrl Analyst
-Billing Rep
-Bill Mgr
-Bindery Helper
-Bindery Oper
-Bindery Oper/Lp
-Bindery Supp
-BSC Mgr
-BSC Opern Mgr
-BSC Opertn Mgr
-Bus Analyst
-Bus Devmt Dir
-Bus Devmt Spec
-Bus Sys Analyst
-Bus Sys Analyst-Senior
-Buyer I
-Buyer II
-Cage
-Camera/Strip
-Camera/Strip/Plate/Lp
-Catcher
-Cmptr Oper
-Cmptr Oper-Senior
-Collator Catcher
-Collator Oper
-Collator Oper/Lp
-Commcl Flat Press Oper
-Commcl Graphics Consult
-Commcl Graphics Coord
-Commissions Spec
-Composition Spec
-Compstn/Form Designer
-Compstn/Form Designer Lp
-Contract Admtn/TL
-Contract Analyst/Buyer
-Controller
-Cost Acct
-Creative Dir
-Credit Analyst
-Credit Corres
-Credit Corres I
-Credit Corres Ii
-Credit Supv
-Csr Supv
-Cust Acct Rep
-Cust Doc
-Custom Order Entry
-Custom Press Oper
-Cust Sat Interviewer
-Cust Serv Clrk I
-Cust Serv Clrk Iii
-Cust Serv Coord
-Cust Serv/Lp
-Cust Serv Rep
-Cust Serv Rep I
-Cust Serv Rep/Lp
-Cust Serv Spec
-Cust Serv Supp
-Cutter
-Data Analyst
-Data Analyst Sr II
-Database Admtr-Associate
-Database Admtr-Senior
-Data Entry Clrk
-Day Attendant
-DC Coord
-Dealer Consult
-De Oper
-De Oper Iii
-Desktop Prtg Analyst
-Developer
-Developer-Associate
-Developer-Senior
-Digital Print Oper Ii
-Dir, Billing Solutions
-Dir Bill & Transaction Svcs
-Dir Brand Mgmt & Comm
-Dir Bsd Cost Acctg
-Dir Client Fincl Serv Sr
-Dir Client Servs
-Dir Credit/Coll
-Dir Fincl Acctg & Plng
-Dir Fincl Plng/Analysis
-Dir/Gm Small Bus Solutions
-Dir Hr
-Dir Infrastructure
-Dir Integrated Srvs
-Dir Internal Audit
-Dir IT
-Dir Mktg
-Dir Opertn
-Dir Opertn Fincl Serv
-Dir Plng Bus Devmt
-Dir Pricing Admin
-Dir Proposal to Cash Distrib
-Dir Reengr & Distrib Sys
-Dir, Reg Distrib Svcs
-Dir Sales
-Dir Sales Bill Solutions
-Dir Sales Opertn
-Dir Stock Tab
-Dir Strat Devmt
-Dir Supply Chain
-Dir Supply Chain Mgt
-Divisional Sales Mgr
-Dms Coord
-Dms Inven Coord
-Doct Proc Tech I
-Doct Project Spec
-Doct Solutions Tech Ii
-Doct Spec
-Doct System Analyst
-Doct System Analyst Clrk Ii
-Docutech Oper
-Docutech Oper I
-Docutech Oper Ii
-Docutech Oper/Lp
-Encoder
-Encoder/Lp
-Engineering Dir
-Enterprise Acc Rep
-Envelope Adj
-Envelope Catcher
-ERP Sales Dir
-Est/Cust Serv
-Estimator
-Facilities Services Coord
-Factory Tool Mgmt
-Fax Oper
-Field Supp Spec
-File Clrk
-Fincl Analyst
-Fincl Analyst II
-Fincl Assoc Sr
-Fincl Spec
-Fincl Team Lead
-Flat Litho Press Oper
-Flat Press Oper
-Flat Sheet Press Oper
-Flexo Press Oper
-Flexo Press Oper/Lp
-Fms Team Leader
-Form Finishing
-Forms Collator Oper
-Forms Designer
-Fulfillment Coord
-Fulfillment Supv
-Gen Clrk Ii
-General Counsel
-GM, Billing Solutions
-GM, Natl Acct Healthcare
-Graphic Artist
-Graphic Art Tech
-Graphic Designer
-Graphic Supp Analyst
-Graphic Technology Spec
-Graphic Thru Put
-Hand Sort/Gl
-Help Desk Support
-HR/Benefits Admntr
-HR Benefits Coord
-HR Coord
-HRIS/HR Admtr
-HR Mgr
-HR Rep
-HR Sourcing Spec
-HTML Dev
-Hunkeler Oper
-Implement Acct Mgr II
-Implement Project Mgr
-Imprint Oper
-Imprint/Vertical Oper
-Imprint/Vertical Oper/Lp
-Inserter Oper
-Inside Acc Rep
-Inter Ops Coord
-Intranet Coord
-Inven Analyst
-Inven Control Coord
-Inven Control Spec
-Inven Coord Ii
-Inven Planner
-Inventory Control Coordinator
-It Audit Mgr
-IT Prod Mgr, Assoc
-Janitor/Baler
-Janitor/Baler/Lp
-Jet Press Oper
-Kitting Appl Spec
-Kitting Assoc
-Kitting Assoc/LP
-Label Press
-Label Press II
-Label Press II/LP
-Label Press Oper
-Label Spec
-Large Flat Press Oper
-Laser Oper
-Letter Press Oper
-Logistics Buyer
-Logistics Mgr
-Mac Oper
-Mac Oper/Lp
-Mailer Collator Oper
-Mailer Collator Oper/Lp
-Maint
-Maint I
-Maint I/LP
-Maint/Lp
-Maint Mechanic
-Maint Mechanic/Lp
-Maint Supv
-Maint Tech
-Material Handler
-Material Handler/Lp
-Material Spec
-Messenger
-Mfg Eng
-Mgr Acct Profitability
-Mgr A/P-OSB
-Mgr Appl Devmt
-Mgr Bus Analysis/Fincl Sys
-Mgr Bus Integration Team
-Mgr Celina Pre Press Sys
-Mgr Central Pricing
-Mgr Compensation & Benefits
-Mgr Computing Servs
-Mgr Cost Acctg
-Mgr Credit Coll Bill
-Mgr CSC
-Mgr, Cust Appl
-Mgr Cust Opertn
-Mgr Cust Serv
-Mgr Dist Ctr
-Mgr Doc Sys Analysis
-Mgr Doct Mgmt Supp
-Mgr EHS/Facilities
-Mgr Engr
-Mgr Finance/Admin
-Mgr Fincl Analysis
-Mgr Fincl Reptg
-Mgr Fincl Sys
-Mgr Gen Acctg
-Mgr Graphic Supp
-Mgr Graphic Svcs
-Mgr Graphic Tech Svcs
-Mgr Inven Control
-Mgr Large Acc
-Mgr Mfg/Qual Process
-Mgr Mktg Admin
-Mgr Mktng
-Mgr Office Opertn
-Mgr Operational Serv
-Mgr Pre Press
-Mgr, Proposal Response
-Mgr Quality Admtn
-Mgr Sales & Cust Serv
-Mgr Serv Devmt
-Mgr Strategic Accounts
-Mgr Strat Partnerships
-Mgr Supply Chain Sys
-Mgr Supply Mgt
-Mgr S/W Eng
-Mgr Tax
-Mgr Tech Systems
-Mgr Warehouse Opertn
-Mktg Mgr, Sr
-Mktg Rep Natl Acc Supp
-Mktg Spec
-Natl Acc Exec
-Natl Acc Rep
-NE Div Sales VP
-Network Eng
-Network Eng-Senior
-Network Mgr
-Oe/Estimator
-Office Admtr
-Office Assoc
-Office Clrk
-Office/Lp
-Office Mgr
-Office Serv/Lp
-Office Supv
-Opertn Mgr
-Opertn Mgr/Epm
-Order Planner
-Order Processor
-Paralegal
-Payroll Admntr
-PCM Press Oper
-Planner
-Planner/Artist
-Plant Controller
-Plant Eng
-Plant Mgr
-Plant Opertn Mgr
-Plant Supt
-Platemaker
-Platemaker I
-Platemaker Ii
-Platemaker/Stripper
-Postal Coord
-Post Press Oper
-Post Press Oper Lead
-Pre Press Mgr
-Pre Press Oper
-Prepress Oper/Lp
-Prepress Sys Analyst
-Prepress Tech Supp
-Pre Press Utility Oper
-President & CEO
-Press Helper
-Press Oper
-Press Oper II
-Press Supv
-Pricer
-Pricing Coord I
-Pricing Mgr
-Pricing Spec
-Printer Oper
-Process Editor
-Process Editor/Lp
-Procurement Coord
-Prod Mgr
-Prod Mgr, Sr
-Prod Mktg Spec
-Prodn Helper
-Prodn Mgr
-Prodn Oper
-Prodn Oper/Lp
-Prodn Scheduler
-Prodn Supv
-Prodn Supv/Epm
-Production
-Programmer
-Project Mgr
-Project Mgr/Associate
-Project Mgr Budgets/Fincl Anal
-Project Mgr/Master
-Promo Prod Mgr
-Promo Prod Spec
-Proofreader
-Proposal Analyst
-Propsal Writer
-Purchasing Agent/Inven Spec
-Purchasing Clerk III
-Purchasing Coord
-Quality Control Clrk
-Quality Control Mgr
-Quality Mgr
-Quality Spec
-Quality Supp Spec
-RDP Press Oper
-Real Estate Mgr
-Recept
-Recg Lead
-Reg Dir Novation
-Reg HR Mgr
-Reg Sales Mgr
-Reg Sales VP
-Rewinder
-Rotary Helper
-Rotary Litho Press
-Rotary Press Helper
-Rotary Press I
-Rotary Press II
-Rotary Press Iii
-Rotary Press Iii/Lp
-Rotary Press Ii/Lp
-Rotary Press Oper
-Rotary Press Oper II
-Rotary Press Oper/Lp
-Sales Admin Asst
-Sales Analyst, Sr
-Sales Asst
-Sales Consult
-Sales Consult II
-Sales Mgr SBS Direct
-Sales Office Admtr
-Sales Opertn Sr Analyst
-Sales Opertn Supv
-Sales Rep
-Sales Secy I
-Sales Secy Iii
-Sales Supv
-Scheduler
-Scheduler/Planner
-Security Analyst
-Security Officer
-Sheet Feed Press Oper
-Ship Clrk
-Ship Clrk I
-Shipper
-Ship/Recg
-Ship/Recg Clrk Ii
-Ship/Recg/Lp
-Short Run Oper
-Solutions Architect
-South Div Sales VP
-Sr Acc Corres
-Sr Acc Exec
-Sr Acc Mgr
-Sr Acctg Clrk
-Sr Admin Asst
-Sr Art Dir
-Sr Bill Clrk
-Sr Bindery Oper
-Sr BSC Mgr
-Sr Bus Analyst
-Sr Bus Sys Analyst
-Sr Credit/Coll Corres
-Sr Credit Corres
-Sr Cust Serv Rep
-Sr Dir, Distrib Svcs
-Sr Dir Fincl Oper
-Sr Dir Mfg
-Sr Fincl Analyst
-Sr Imaging Oper
-Sr Inserter Oper
-Sr Material Oper
-Sr Mgr Corp Sys
-Sr Mgr Cust Implement
-Sr Office Assoc
-Sr Security Analyst
-Sr Staff Acct
-Sr Sys Admtr
-Sr Tech Sys Eng
-Sr VP Sales
-Sr Warehouse Assoc
-Sr Warehouse Assoc/Lp
-Staff Acct I
-Staff Acct II
-Staffing Consult
-Staffing Consult II
-Stock Cutter
-Strat Acc Exec
-Strat Pricing Analyst
-Stripper
-Supply Mgt Analyst
-Supp Spec Assoc
-Supp Spec Field/Associate
-Supp Spec Field/Senior
-Supp Spec Sr
-Supv
-Supv 2Nd Shift
-Supv 3Rd Shift
-Supv Cost Acctg
-Supv Credit Supp
-Supv Cust Serv
-Supv DMS
-Supv Fulfillment
-Supv Payroll Admtn
-Supv Pegboard Imprint
-Supv Pegboard Litho
-Supv Pre Press
-Supv Print Shop
-Supv Quality Control
-Supv Warehouse
-Sys Admintr
-Sys Admtr
-Sys Admtr/Senior
-Team Leader Central Pricing
-Tech Analyst
-Tech Analyst - Associate
-Tech Analyst I
-Technical Sales Consult
-Technical Trng
-Tech Spec I
-Tech Sys Eng
-Telecomm Analyst
-Telecomm Analyst/Senior
-Time Maint Clrk
-Trainer IT
-Training Mgr
-Training Spec
-Typesetter
-Unempl Comp Admtr
-Utility Helper
-Utility Oper
-Utility Oper/Lp
-VP CIO
-VP Cust Support
-VP Enterprice Accs
-VP Human Resources
-VP Marketing
-VP Supply Chain
-Warehouse
-Warehouse Assoc
-Warehouse Assoc/Lp
-Warehouse Assoc/LP
-Warehouse Inven Control Spec
-Warehouse/Lp
-Warehouse Order Packer
-Warehouse/Quality Assurance
-Warehouse Recg Coord
-Warehouse Ship Coord
-Warehouse Supv
-Web Prog/Developer
-Workers Comp Admntr
-Workers Comp/Unemp Coord
+AOA|AOA
+Escort Authorized|Escort Authorized
+Movement Area Driver|Movement Area Driver 
+NonMovement Area Driver|NonMovement Area Driver
+SIDA|SIDA
+Sterile|Sterile

Copied: branches/1.6/sql/users.csv (from rev 1362, trunk/sql/users.csv)
===================================================================
--- branches/1.6/sql/users.csv	                        (rev 0)
+++ branches/1.6/sql/users.csv	2015-12-17 21:17:18 UTC (rev 1367)
@@ -0,0 +1,24 @@
+BRHomola0572|Ben|R|Homola||AECOM TRANSPORTATION||AOA|||Escort Authorized||NonMovement Area Driver|SIDA|Sterile
+CLPhillips4534|Christian|Ladesse|Phillips||AECOM TRANSPORTATION||AOA|||||NonMovement Area Driver|SIDA|Sterile
+CMOhara6726|Christopher|Michael|Ohara||AECOM TRANSPORTATION||AOA|||Escort Authorized|||SIDA|Sterile
+CRRepperger3178|Clifford|Raymond|Repperger||AECOM TRANSPORTATION||AOA|||Escort Authorized|||SIDA|Sterile
+DHKomito7270|Donald|Harold|Komito||AECOM TRANSPORTATION||AOA|||Escort Authorized||NonMovement Area Driver|SIDA|Sterile
+DRBrockmiller7384|Dustin|Robert|Brockmiller||AECOM TRANSPORTATION||AOA||||||SIDA|Sterile
+GEHoup9266|Garry|Edward|Houp||AECOM TRANSPORTATION||||||||SIDA|Sterile
+JFWalz9670|John|Fred|Walz||AECOM TRANSPORTATION||AOA|||Escort Authorized||NonMovement Area Driver|SIDA|Sterile
+JJWetzel5889|John|Joseph|Wetzel||AECOM TRANSPORTATION||AOA||||||SIDA|Sterile
+JKEaton1085|Jaime|Kathleen|Eaton||AECOM TRANSPORTATION||AOA|||Escort Authorized||NonMovement Area Driver|SIDA|Sterile
+JMFernandez1774|John|Matthew|Fernandez||AECOM TRANSPORTATION||AOA||||||SIDA|Sterile
+JMWalden7613|Jason|Michael|Walden||AECOM TRANSPORTATION||AOA||||||SIDA|Sterile
+JSchrager3736|Jacob||Schrager||AECOM TRANSPORTATION||AOA|||Escort Authorized|||SIDA|Sterile
+JTFrench5212|Jamey|Thomas|French||AECOM TRANSPORTATION|||||Escort Authorized|||SIDA|Sterile
+JTFrench7633|Jamey|Tyler|French||AECOM TRANSPORTATION||AOA||||||SIDA|Sterile
+LMiekley9650|Lisa||Miekley||AECOM TRANSPORTATION||AOA|||Escort Authorized|Movement Area Driver|NonMovement Area Driver|SIDA|Sterile
+MACarringer7656|Mark|Anthony|Carringer||AECOM TRANSPORTATION|||||Escort Authorized|||SIDA|Sterile
+MMTarnowicz5942|Marcin|Michal|Tarnowicz||AECOM TRANSPORTATION||||||||SIDA|Sterile
+MSpringer1657|Michael||Springer||AECOM TRANSPORTATION||AOA|||Escort Authorized|Movement Area Driver|NonMovement Area Driver|SIDA|Sterile
+TDBuchanan4780|Timothy|Dale|Buchanan||AECOM TRANSPORTATION||AOA|||Escort Authorized|||SIDA|Sterile
+THGiles6326|Thomas|Haines|Giles||AECOM TRANSPORTATION||AOA|||Escort Authorized|||SIDA|Sterile
+TWLytell9446|Troy|William|Lytell||AECOM TRANSPORTATION||AOA|||Escort Authorized|||SIDA|Sterile
+WAndraca6228|William||Andraca||AECOM TRANSPORTATION|||||Escort Authorized|||SIDA|Sterile
+IBenitez3433|Ismael||Benitez||AEROTERM||AOA|||Escort Authorized|||SIDA|

Copied: branches/1.6/sql/workgroups.csv (from rev 1362, trunk/sql/workgroups.csv)
===================================================================
--- branches/1.6/sql/workgroups.csv	                        (rev 0)
+++ branches/1.6/sql/workgroups.csv	2015-12-17 21:17:18 UTC (rev 1367)
@@ -0,0 +1,2 @@
+AECOM TRANSPORTATION|AECOM TRANSPORTATION
+AEROTERM|AEROTERM

Modified: branches/1.6/webapp/SQL.jsp
===================================================================
--- branches/1.6/webapp/SQL.jsp	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/webapp/SQL.jsp	2015-12-17 21:17:18 UTC (rev 1367)
@@ -637,8 +637,8 @@
 	        }
 	        if (outputLevel >= 5) {
 	        while (rs.next()) {
+		  ++retVal;
 	          if (outputLevel > 5) {
-		          retVal++;
 	              if (outputLevel >= 7) out.print("<tr> <th>" + rs.getRow() + "</th>");
 	              else if (outputLevel >= 5) out.print("<b>" + rs.getRow() + "</b>");
 	              String colVals = "";
@@ -666,8 +666,18 @@
 	        }
 	        if (outputLevel >= 7) out.println("</table>");
 	        }
+		else {
+			while (rs.next()) {
+			  ++retVal;
+			}
+		}
 	      }
       }	// out != null
+		else {
+			while (rs.next()) {
+			  ++retVal;
+			}
+		}
     }
     catch (Exception e) {
       e.printStackTrace();
@@ -880,13 +890,13 @@
 		      boolean execute = true;
 		      if (importDupCheck != null) {
 		          MessageFormat format = new MessageFormat(importDupCheck);
-		          String dcSQL = format.format(fields);
+		          String dcSQL = format.format(fields.toArray());
 		          execute = (runSQL(dcSQL, null, 0, 0, null) == 0);
 		      }
 	          if (execute) {
 			    String rSQL = specialFunctions(insertSQL, fields.toArray());
 	              MessageFormat format = new MessageFormat(rSQL);
-	              rSQL  = format.format(fields);
+	              rSQL  = format.format(fields.toArray());
 	              runSQL(rSQL, null, 0, 0, errOut, outputLevel, ignoreException);
 	          }
 		}

Modified: branches/1.6/webapp/WEB-INF/classes/versions.properties
===================================================================
--- branches/1.6/webapp/WEB-INF/classes/versions.properties	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/webapp/WEB-INF/classes/versions.properties	2015-12-17 21:17:18 UTC (rev 1367)
@@ -1 +1 @@
-LMS=V1.80.2
+LMS=V1.80.3

Modified: branches/1.6/webapp/selfregistration.jsp
===================================================================
--- branches/1.6/webapp/selfregistration.jsp	2015-12-17 20:07:11 UTC (rev 1366)
+++ branches/1.6/webapp/selfregistration.jsp	2015-12-17 21:17:18 UTC (rev 1367)
@@ -1,392 +1,393 @@
-<%@ page
-    language="java"
-    contentType="text/html;charset=utf-8"
-%>
-<%@ page import="org.crosswire.utils.HTTPUtils" %>
-<%@ page import="org.crosswire.utils.GeoData" %>
-<%@ page import="com.resolutions.ils.*" %>
-<%@ page import="com.resolutions.ils.data.*" %>
-<%@ page import="java.util.Vector" %>
-<%@ page import="java.util.Date" %>
-<%@ page import="java.io.File" %>
-<%@ page import="java.io.BufferedReader" %>
-<%@ page import="java.io.StringReader" %>
-<%@ page import="java.net.URL" %>
-<%@ page import="java.util.Properties" %>
-<%@ page import="java.text.SimpleDateFormat" %>
-<%@ page import="org.apache.log4j.Logger" %>
-
-<%
-	Logger logger = Logger.getLogger(this.getClass());
-	Logger eventsLogger = Logger.getLogger("EVENTS");
-    String statusMsg = "";
-    String validError = "";
-    boolean noSave = false;
-    
-    SimpleDateFormat df  = new SimpleDateFormat("MM/dd/yyyy");
-    String action        = request.getParameter("action");
-    if ("clear".equals(action)) session.removeAttribute("ilsSession");
-    ILSSession ilsSession = (ILSSession)session.getAttribute("ilsSession");
-    if (ilsSession != null && ilsSession.getCurrentUserProfile().getUserProfileAccessLevel() > UserProfile.ACCESS_ANONYMOUS) {
-        out.print("<html><body>You cannot self-register for an account when you are already logged in.</body></html>");
-        return;
-    }
-    else {
-        if (!"on".equals(com.resolutions.ils.Utils.getSysConfig(session).getProperty("SREnable", null))) {
-            out.print("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=login.jsp\"></head></html>");
-            return;
-        }
-        
-        // This is for Self Registration
-
-		//-- Company logic from login.jsp -------
-		// TODO: consolidate this somewhere
-        String requestURL = request.getRequestURL().toString() + "?" + request.getQueryString();
-        String co = com.resolutions.ils.Utils.getCompanyFromConfig(session, requestURL);
-        if (co == null) co = com.resolutions.ils.Utils.getSysConfig(session).getProperty("Company", null);
-        if (co == null) co = request.getParameter("co");
-        if (co != null) session.setAttribute("co", co);
-        co = (String) session.getAttribute("co");
-        Company company = Company.getCompany((co != null) ? Integer.parseInt(co):1);
-
-    	ilsSession = ILSSession.getAnonymous(company.getCompanyID());
-    }
-
-    UserProfile user    = ilsSession.getCurrentUserProfile();
-
-    UserProfile current = user;
-    int profileID       = current.getUserProfileID();
-
-	String passwd = request.getParameter("passwd");
-	String passwd2 = request.getParameter("passwd2");
-	if (passwd == null || passwd.length() == 0) passwd = "";
-	if (passwd2 == null || passwd2.length() == 0) passwd2 = "";
-
-    Vector tmp = Group.getUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
-    int currentRoleID = ((tmp != null) && (tmp.size()>0)) ? ((Group)tmp.get(0)).getGroupID() : -1;
-    String currentLocation = request.getParameter("location");
-    if (currentLocation == null) currentLocation = "";
-    else currentLocation = currentLocation.trim().toUpperCase();
-
-    if ((profileID == -1) || ("New".equals(action))) {
-        current = new UserProfile();
-        current.defaultAll();
-        currentRoleID = -1;
-        profileID = -1;
-    }
-	current.setUserProfileStatusID(UserProfile.STATUS_ACTIVE);
-
-	String val = request.getParameter("role");
-	int requestedRole = (val != null) ? (Integer.parseInt(val)) : -1;
-
-    if ("Save".equals(action)) {
-        UserProfile orig = (UserProfile)current.clone();
-        val = request.getParameter("num");
-        if (val != null) {
-          UserProfile up = UserProfile.getUserProfile(ilsSession, val);
-          if ((up != null) && (up.getUserProfileID() != current.getUserProfileID())) {
-			  validError = "The Employee ID already exists.  Please enter a unique ID.";
-          }
-          else {
-            current.setUserProfileNum(val);
-          }
-        }
-        if (passwd.length() > 0) {
-		if (passwd.equals(passwd2)) {
-			current.setUserProfilePasswd(passwd);
-		}
-		else validError = "Passwords do not match.";
-        }
-	else validError = "You must enter a password.";
-
-        val = request.getParameter("firstName");
-        if (val != null) current.setUserProfileFirstName(val);
-        val = request.getParameter("lastName");
-        if (val != null) current.setUserProfileLastName(val);
-        val = request.getParameter("addr1");
-        if (val != null) current.setUserProfileAddr1(val);
-        val = request.getParameter("addr2");
-        if (val != null) current.setUserProfileAddr2(val);
-        val = request.getParameter("city");
-        if (val != null) current.setUserProfileCity(val);
-        val = request.getParameter("state");
-        if (val != null) current.setUserProfileState(val);
-        val = request.getParameter("zip");
-        if (val != null) current.setUserProfileZip(val);
-        val = request.getParameter("country");
-        if (val != null) current.setUserProfileCountry(val);
-        val = request.getParameter("eMail");
-        if (val != null) current.setUserProfileEMail(val);
-        val = request.getParameter("phone");
-        if (val != null) current.setUserProfilePhone(val);
-        val = request.getParameter("hdate");
-        if ((val != null) && (!val.startsWith("m"))) {
-            Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
-            if (v != null) {
-                current.setUserProfileHireDate(v);
-            }
-            else {
-                validError = "Invalid Hire Date, please enter a reasonable date using the format MM/DD/YYYY";
-            }
-        }
-        val = request.getParameter("tdate");
-        if ((val != null) && (!val.startsWith("m"))) {
-            Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
-            if (v != null) {
-                current.setUserProfileTermDate(v);
-            }
-            else {
-                validError = "Invalid Termination Date, please enter a reasonable date using the format MM/DD/YYYY";
-            }
-        }
-        if ((current.getUserProfilePasswd() == null) || (current.getUserProfilePasswd().trim().length() < 1)) {
-            current.setUserProfilePasswd("changeme");
-        }
-
-        if (validError.length() > 0) {
-            // we already have an error
-        }
-        else if ((current.getUserProfileFirstName() == null) || (current.getUserProfileFirstName().length() < 1)) {
-          validError = "You must supply a First Name";
-        }
-        else if ((current.getUserProfileLastName() == null) || (current.getUserProfileLastName().length() < 1)) {
-          validError = "You must supply a Last Name";
-        }
-        else if ((current.getUserProfileNum() == null) || (current.getUserProfileNum().length() < 1)) {
-            validError = "You must supply an Employee ID";
-        }
-        else if (currentRoleID < 0 && requestedRole < 0) {
-            validError = "You must choose a <t:t>Role</t:t>";
-        }
-        else if (currentLocation.length() < 1) {
-            validError = "You must enter a <t:t>Workgroup</t:t>";
-        }
-        else {
-        	int len = -1; try { len = Integer.parseInt(com.resolutions.ils.Utils.getSysConfig(session).getProperty("SRLengthVal", "-1")); } catch (Exception e) {}
-        	if (len > 0 && currentLocation.length() != len) {
-	            validError = "Invalid <t:t>Workgroup</t:t>";
-        	}
-        	else {
-				String validationStrings = com.resolutions.ils.Utils.getSysConfig(session).getProperty("SRWGVal", null);
-				if (validationStrings != null && validationStrings.length() > 0) {
-					BufferedReader reader = new BufferedReader(new StringReader(validationStrings));
-					try {
-						String str;
-						int count = 0;
-						boolean validation = false;
-						while ((str = reader.readLine()) != null) {
-							count++;
-							if (str.trim().length() > 0) {
-								if (currentLocation.indexOf(str.trim().toUpperCase()) > -1) {
-									validation = true;
-									break;
-								}
-							}
-						}
-						if (count > 0 && !validation) {
-				            validError = "Invalid <t:t>Workgroup</t:t>";
-						}
-					} catch(Exception e) {}
-				}
-        	}
-        }
-		if (validError.length() < 1) {
-			if (orig.getUserProfileID() > 0) {
-				boolean emailNotice = "on".equals(Utils.getSysConfig(session).getProperty("EmailEnableChangePassword", "off"));
-		   		HttpSession sendEmail = (emailNotice) ? session : null;
-	            current.save(ilsSession, orig, sendEmail);
-            }
-            else {
-				current.setUserProfileAccessLevel(UserProfile.ACCESS_EMPLOYEE);
-				current.setUserProfileHireDate(new Date());
-				String roleNameForEmail = ""; try { roleNameForEmail = Group.getGroup(ilsSession, requestedRole).getGroupName(); } catch (Exception e) {}
-                current = current.saveNew(ilsSession, session, currentLocation, roleNameForEmail);
-                profileID = current.getUserProfileID();
-            }
-            if ((requestedRole != currentRoleID) && (requestedRole > -1)) {
-                Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
-                Group.addUserGroup(ilsSession, requestedRole, current.getUserProfileID());
-                // modifying an existing user
-                if (orig.getUserProfileID() > 0) {
-                	eventsLogger.info("User " + current.getUserProfileNum() + " ROLE changed from " + currentRoleID + " to " + requestedRole + " by user: " + ilsSession.getCurrentUserProfile().getUserProfileNum());
-                }
-            }
-			int requestedLocation = -1;
-			if (currentLocation != null && currentLocation.trim().length() > 0) {
-				for (int i = 0; i < 2; ++i) {
-					Group g = Group.getGroupByName(ilsSession, Group.GROUPTYPE_LOCATION, currentLocation);
-					if (g != null) {
-						requestedLocation = g.getGroupID();
-						break;
-					}
-					else {
-						if (i < 1) {
-							Group grp = new Group();
-							grp.defaultAll();
-							grp.setGroupTypeID(Group.GROUPTYPE_LOCATION);
-							grp.setGroupName(currentLocation);
-							grp.setGroupDesc(currentLocation);
-							grp.saveNew(ilsSession);
-						}
-						else {
-%>
-<t:t>Workgroup</t:t> could not be created.
-<%
-							return;
-						}
-					}
-				}
-			}
-            if (requestedLocation > -1) {
-                Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_LOCATION, current.getUserProfileID());
-                Group.addUserGroup(ilsSession, requestedLocation, current.getUserProfileID());
-                if (orig.getUserProfileID() > 0) {
-                	eventsLogger.info("User " + current.getUserProfileNum() + " add to WORKGROUP " + requestedLocation + " by user: " + ilsSession.getCurrentUserProfile().getUserProfileNum());
-                }
-            }
-            current = ilsSession.getCurrentUserProfile();
-            if (profileID != current.getUserProfileID()) {
-                current = UserProfile.getUserProfile(ilsSession, profileID);
-            }
-            tmp = Group.getUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
-            currentRoleID = ((tmp != null) && (tmp.size()>0)) ? ((Group)tmp.get(0)).getGroupID() : -1;
-            tmp = Group.getUserGroups(ilsSession, Group.GROUPTYPE_LOCATION, current.getUserProfileID());
-           	statusMsg = "Your account has been created. You may now login.";
-           	noSave = true;
-        }
-    }
-    
-    boolean alternativeLoginValidationEnable = "on".equals(Utils.getSysConfig(session).getProperty("AlternativeLoginValidationEnable", "off"));
-
-
-    Vector roles = Group.getAllGroups(ilsSession, Group.GROUPTYPE_ROLE);
-    String returnPage = "login.jsp";
-%>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-    <title><%= ilsSession.getCurrentCompany().getCompanyName() %> eLearning Portal</title>
-    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-    <meta http-equiv="Pragma" content="no-cache">
-    <meta http-equiv="Expires" content="-1">
-    <link href="lms_style.css" rel="stylesheet" type="text/css">
-    <script type="text/javascript" src="crosswire.js"></script>
-</head>
-
-<body onLoad="init()">
-<%@ include file="header.jsp" %>
-	<div id="pageContainer">
-<%@ include file="menu.jsp" %>
-		<div id="content">
-			<div id="pageTitles">
-				<br/>
-				<span class="instructiontxt"><%= statusMsg %></span>
-				<span class="instructiontxt"><%= validError %></span>
-			</div>
-			<table id="tableForm">
-			<tr>
-				<th>
-					Request an Account
-				</th>
-			</tr>
-				<tr>
-					<td> </td>
-				</tr>
-				<tr>
-					<td>
-						<form  name="profsave" method="post" action="selfregistration.jsp">
-							<input type="hidden" name="action" value="Save"/>
-							<input type="hidden" name="profileid" value="<%= profileID %>"/>
-							<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" id="tableFormData">
-			  
-			  <tr>
-			    <td class="formHeadings"><div align="right">First Name: </div></td>
-			    <td colspan="2"><input name="firstName" type="text" value="<%=current.getUserProfileFirstName()%>" size="35" />    </td>
-			  </tr>
-			  <tr>
-			    <td class="formHeadings">Last Name:</td>
-			    <td colspan="2"><input name="lastName" type="text" value="<%=current.getUserProfileLastName()%>" size="35" />    </td>
-			  </tr>
-			  <tr>
-			    <td width="140" class="formHeadings">User Name:</td>
-			    <td><input name="num" type="text" value="<%=current.getUserProfileNum()%>" size="35" /></td>
-			  </tr>
-			  <tr>
-			    <td height="23" class="formHeadings">Email: </td>
-			    <td colspan="2"><input name="eMail" type="text" value="<%=current.getUserProfileEMail()%>" size="35" />    </td>
-			  </tr>
-			  <tr>
-			    <td valign="middle" class="formHeadings"><t:t>Workgroup</t:t>:</td>
-			    <td colspan="2"><input name="location" type="text" value="<%=currentLocation%>" size="35" autocomplete="off" />    </td>
-			  </tr>
-			  <tr>
-			    <td valign="middle" class="formHeadings"><t:t>Role</t:t>: </td>
-			    <td width="228"><select name="role" style="width:215px;">
-			      <option value="-1">Select <t:t>Role</t:t></option>
-			      <%
-			     if (currentRoleID == -1) currentRoleID = requestedRole;
-			     for (int i = 0; i < roles.size(); i++) {
-			          Group role = (Group)roles.get(i);
-			%>
-			      <option value="<%=role.getGroupID()%>" <%=(role.getGroupID() == currentRoleID)?"selected=\"selected\"":""%>><%=HTTPUtils.canonize(role.getGroupName())%></option>
-			      <%
-			     }
-			%>
-			    </select>    </td>
-			    <td width="320"> </td>
-			  </tr>
-			  <tr>
-			    <td class="formHeadings">State:</td>
-			    <td colspan="2">
-			    <select name="state">
-				    <option></option>
-<%
-			    for (String[] s : GeoData.getStates()) {
-%>
-				    <option value="<%=s[0]%>" <%=(s[0].equals(current.getUserProfileState())?"selected=\"selected\"":"")%>><%=s[1] %></option>
-				
-<%
-			    }
-%>
-			    </select>
-			    </td>
-			  </tr>
-			  <tr>
-			    <td class="formHeadings">Password:</td>
-			    <td><input name="passwd" type="password" value="<%=passwd%>" size="35" <%=(!alternativeLoginValidationEnable)?"":"disabled=\"true\""%> />    </td>
-			  </tr>
-			  <tr>
-			    <td class="formHeadings">Confirm Password:</td>
-			    <td><input name="passwd2" type="password" value="<%=passwd2%>" size="35" <%=(!alternativeLoginValidationEnable)?"":"disabled=\"true\""%> />    </td>
-			  </tr>
-			  
-			  <tr>
-			    <td>&nbsp;</td>
-			    <td colspan="2">
-			<%
-			if (!noSave) {
-			%>
-			<a href="#" onClick="document.profsave.submit()"><img border="0" src="images/createaccount.png" width="106" height="23" hspace="3" alt=""/></a>
-			<a href="<%=returnPage%>"><img border="0" src="images/cancel_btn.gif" width="72" height="24" alt=""></a>
-			<%
-			}
-			else {
-			%>
-			<a href="<%=returnPage%>"><img border="0" src="images/loginnow.png" width="106" height="23" hspace="3" alt=""/></a>
-			<%
-			}
-			%>
-			</td>
-			  </tr>
-			</table>
-			<input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"/>
-			</form>
-			</td>
-			</tr>
-			</table>
-
-		</div>
-<%@ include file="footer.jsp" %>
-	</div>
-</body>
-</html>
+<%@ page
+    language="java"
+    contentType="text/html;charset=utf-8"
+%>
+<%@ page import="org.crosswire.utils.HTTPUtils" %>
+<%@ page import="org.crosswire.utils.GeoData" %>
+<%@ page import="com.resolutions.ils.*" %>
+<%@ page import="com.resolutions.ils.data.*" %>
+<%@ page import="java.util.Vector" %>
+<%@ page import="java.util.Date" %>
+<%@ page import="java.io.File" %>
+<%@ page import="java.io.BufferedReader" %>
+<%@ page import="java.io.StringReader" %>
+<%@ page import="java.net.URL" %>
+<%@ page import="java.util.Properties" %>
+<%@ page import="java.text.SimpleDateFormat" %>
+<%@ page import="org.apache.log4j.Logger" %>
+
+<%
+	Logger logger = Logger.getLogger(this.getClass());
+	Logger eventsLogger = Logger.getLogger("EVENTS");
+    String statusMsg = "";
+    String validError = "";
+    boolean noSave = false;
+    
+    SimpleDateFormat df  = new SimpleDateFormat("MM/dd/yyyy");
+    String action        = request.getParameter("action");
+    if ("clear".equals(action)) session.removeAttribute("ilsSession");
+    ILSSession ilsSession = (ILSSession)session.getAttribute("ilsSession");
+    if (ilsSession != null && ilsSession.getCurrentUserProfile().getUserProfileAccessLevel() > UserProfile.ACCESS_ANONYMOUS) {
+        out.print("<html><body>You cannot self-register for an account when you are already logged in.</body></html>");
+        return;
+    }
+    else {
+        if (!"on".equals(com.resolutions.ils.Utils.getSysConfig(session).getProperty("SREnable", null))) {
+            out.print("<html><head><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=login.jsp\"></head></html>");
+            return;
+        }
+        
+        // This is for Self Registration
+
+		//-- Company logic from login.jsp -------
+		// TODO: consolidate this somewhere
+        String requestURL = request.getRequestURL().toString() + "?" + request.getQueryString();
+        String co = com.resolutions.ils.Utils.getCompanyFromConfig(session, requestURL);
+        if (co == null) co = com.resolutions.ils.Utils.getSysConfig(session).getProperty("Company", null);
+        if (co == null) co = request.getParameter("co");
+        if (co != null) session.setAttribute("co", co);
+        co = (String) session.getAttribute("co");
+        Company company = Company.getCompany((co != null) ? Integer.parseInt(co):1);
+
+    	ilsSession = ILSSession.getAnonymous(company.getCompanyID());
+    }
+
+    UserProfile user    = ilsSession.getCurrentUserProfile();
+
+    UserProfile current = user;
+    int profileID       = current.getUserProfileID();
+
+	String passwd = request.getParameter("passwd");
+	String passwd2 = request.getParameter("passwd2");
+	if (passwd == null || passwd.length() == 0) passwd = "";
+	if (passwd2 == null || passwd2.length() == 0) passwd2 = "";
+
+    Vector tmp = Group.getUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
+    int currentRoleID = ((tmp != null) && (tmp.size()>0)) ? ((Group)tmp.get(0)).getGroupID() : -1;
+    String currentLocation = request.getParameter("location");
+    if (currentLocation == null) currentLocation = "";
+    else currentLocation = currentLocation.trim().toUpperCase();
+
+    if ((profileID == -1) || ("New".equals(action))) {
+        current = new UserProfile();
+        current.defaultAll();
+        currentRoleID = -1;
+        profileID = -1;
+    }
+	current.setUserProfileStatusID(UserProfile.STATUS_ACTIVE);
+
+	String val = request.getParameter("role");
+	int requestedRole = (val != null) ? (Integer.parseInt(val)) : -1;
+%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+    <title><%= ilsSession.getCurrentCompany().getCompanyName() %> eLearning Portal</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+    <meta http-equiv="Pragma" content="no-cache">
+    <meta http-equiv="Expires" content="-1">
+    <link href="lms_style.css" rel="stylesheet" type="text/css">
+    <script type="text/javascript" src="crosswire.js"></script>
+</head>
+
+<body onLoad="init()">
+<%@ include file="header.jsp" %>
+<%
+    if ("Save".equals(action)) {
+        UserProfile orig = (UserProfile)current.clone();
+        val = request.getParameter("num");
+        if (val != null) {
+          UserProfile up = UserProfile.getUserProfile(ilsSession, val);
+          if ((up != null) && (up.getUserProfileID() != current.getUserProfileID())) {
+			  validError = "The Employee ID already exists.  Please enter a unique ID.";
+          }
+          else {
+            current.setUserProfileNum(val);
+          }
+        }
+        if (passwd.length() > 0) {
+		if (passwd.equals(passwd2)) {
+			current.setUserProfilePasswd(passwd);
+		}
+		else validError = "Passwords do not match.";
+        }
+	else validError = "You must enter a password.";
+
+        val = request.getParameter("firstName");
+        if (val != null) current.setUserProfileFirstName(val);
+        val = request.getParameter("lastName");
+        if (val != null) current.setUserProfileLastName(val);
+        val = request.getParameter("addr1");
+        if (val != null) current.setUserProfileAddr1(val);
+        val = request.getParameter("addr2");
+        if (val != null) current.setUserProfileAddr2(val);
+        val = request.getParameter("city");
+        if (val != null) current.setUserProfileCity(val);
+        val = request.getParameter("state");
+        if (val != null) current.setUserProfileState(val);
+        val = request.getParameter("zip");
+        if (val != null) current.setUserProfileZip(val);
+        val = request.getParameter("country");
+        if (val != null) current.setUserProfileCountry(val);
+        val = request.getParameter("eMail");
+        if (val != null) current.setUserProfileEMail(val);
+        val = request.getParameter("phone");
+        if (val != null) current.setUserProfilePhone(val);
+        val = request.getParameter("hdate");
+        if ((val != null) && (!val.startsWith("m"))) {
+            Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
+            if (v != null) {
+                current.setUserProfileHireDate(v);
+            }
+            else {
+                validError = "Invalid Hire Date, please enter a reasonable date using the format MM/DD/YYYY";
+            }
+        }
+        val = request.getParameter("tdate");
+        if ((val != null) && (!val.startsWith("m"))) {
+            Date v = Utils.parseDate(val, 150 * 365, 10 * 365);
+            if (v != null) {
+                current.setUserProfileTermDate(v);
+            }
+            else {
+                validError = "Invalid Termination Date, please enter a reasonable date using the format MM/DD/YYYY";
+            }
+        }
+        if ((current.getUserProfilePasswd() == null) || (current.getUserProfilePasswd().trim().length() < 1)) {
+            current.setUserProfilePasswd("changeme");
+        }
+
+        if (validError.length() > 0) {
+            // we already have an error
+        }
+        else if ((current.getUserProfileFirstName() == null) || (current.getUserProfileFirstName().length() < 1)) {
+          validError = "You must supply a First Name";
+        }
+        else if ((current.getUserProfileLastName() == null) || (current.getUserProfileLastName().length() < 1)) {
+          validError = "You must supply a Last Name";
+        }
+        else if ((current.getUserProfileNum() == null) || (current.getUserProfileNum().length() < 1)) {
+            validError = "You must supply an Employee ID";
+        }
+        else if (currentRoleID < 0 && requestedRole < 0) {
+            validError = "You must choose a <t:t>Role</t:t>";
+        }
+        else if (currentLocation.length() < 1) {
+            validError = "You must enter a <t:t>Workgroup</t:t>";
+        }
+        else {
+        	int len = -1; try { len = Integer.parseInt(com.resolutions.ils.Utils.getSysConfig(session).getProperty("SRLengthVal", "-1")); } catch (Exception e) {}
+        	if (len > 0 && currentLocation.length() != len) {
+	            validError = "Invalid <t:t>Workgroup</t:t>";
+        	}
+        	else {
+				String validationStrings = com.resolutions.ils.Utils.getSysConfig(session).getProperty("SRWGVal", null);
+				if (validationStrings != null && validationStrings.length() > 0) {
+					BufferedReader reader = new BufferedReader(new StringReader(validationStrings));
+					try {
+						String str;
+						int count = 0;
+						boolean validation = false;
+						while ((str = reader.readLine()) != null) {
+							count++;
+							if (str.trim().length() > 0) {
+								if (currentLocation.indexOf(str.trim().toUpperCase()) > -1) {
+									validation = true;
+									break;
+								}
+							}
+						}
+						if (count > 0 && !validation) {
+				            validError = "Invalid <t:t>Workgroup</t:t>";
+						}
+					} catch(Exception e) {}
+				}
+        	}
+        }
+		if (validError.length() < 1) {
+			if (orig.getUserProfileID() > 0) {
+				boolean emailNotice = "on".equals(Utils.getSysConfig(session).getProperty("EmailEnableChangePassword", "off"));
+		   		HttpSession sendEmail = (emailNotice) ? session : null;
+	            current.save(ilsSession, orig, sendEmail);
+            }
+            else {
+				current.setUserProfileAccessLevel(UserProfile.ACCESS_EMPLOYEE);
+				current.setUserProfileHireDate(new Date());
+				String roleNameForEmail = ""; try { roleNameForEmail = Group.getGroup(ilsSession, requestedRole).getGroupName(); } catch (Exception e) {}
+                current = current.saveNew(ilsSession, session, currentLocation, roleNameForEmail);
+                profileID = current.getUserProfileID();
+            }
+            if ((requestedRole != currentRoleID) && (requestedRole > -1)) {
+                Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
+                Group.addUserGroup(ilsSession, requestedRole, current.getUserProfileID());
+                // modifying an existing user
+                if (orig.getUserProfileID() > 0) {
+                	eventsLogger.info("User " + current.getUserProfileNum() + " ROLE changed from " + currentRoleID + " to " + requestedRole + " by user: " + ilsSession.getCurrentUserProfile().getUserProfileNum());
+                }
+            }
+			int requestedLocation = -1;
+			if (currentLocation != null && currentLocation.trim().length() > 0) {
+				for (int i = 0; i < 2; ++i) {
+					Group g = Group.getGroupByName(ilsSession, Group.GROUPTYPE_LOCATION, currentLocation);
+					if (g != null) {
+						requestedLocation = g.getGroupID();
+						break;
+					}
+					else {
+						if (i < 1) {
+							Group grp = new Group();
+							grp.defaultAll();
+							grp.setGroupTypeID(Group.GROUPTYPE_LOCATION);
+							grp.setGroupName(currentLocation);
+							grp.setGroupDesc(currentLocation);
+							grp.saveNew(ilsSession);
+						}
+						else {
+%>
+<t:t>Workgroup</t:t> could not be created.
+<%
+							return;
+						}
+					}
+				}
+			}
+            if (requestedLocation > -1) {
+                Group.deleteUserGroups(ilsSession, Group.GROUPTYPE_LOCATION, current.getUserProfileID());
+                Group.addUserGroup(ilsSession, requestedLocation, current.getUserProfileID());
+                if (orig.getUserProfileID() > 0) {
+                	eventsLogger.info("User " + current.getUserProfileNum() + " add to WORKGROUP " + requestedLocation + " by user: " + ilsSession.getCurrentUserProfile().getUserProfileNum());
+                }
+            }
+            current = ilsSession.getCurrentUserProfile();
+            if (profileID != current.getUserProfileID()) {
+                current = UserProfile.getUserProfile(ilsSession, profileID);
+            }
+            tmp = Group.getUserGroups(ilsSession, Group.GROUPTYPE_ROLE, current.getUserProfileID());
+            currentRoleID = ((tmp != null) && (tmp.size()>0)) ? ((Group)tmp.get(0)).getGroupID() : -1;
+            tmp = Group.getUserGroups(ilsSession, Group.GROUPTYPE_LOCATION, current.getUserProfileID());
+           	statusMsg = "Your account has been created. You may now login.";
+           	noSave = true;
+        }
+    }
+    
+    boolean alternativeLoginValidationEnable = "on".equals(Utils.getSysConfig(session).getProperty("AlternativeLoginValidationEnable", "off"));
+
+
+    Vector roles = Group.getAllGroups(ilsSession, Group.GROUPTYPE_ROLE);
+    String returnPage = "login.jsp";
+%>
+	<div id="pageContainer">
+<%@ include file="menu.jsp" %>
+		<div id="content">
+			<div id="pageTitles">
+				<br/>
+				<span class="instructiontxt"><%= statusMsg %></span>
+				<span class="instructiontxt"><%= validError %></span>
+			</div>
+			<table id="tableForm">
+			<tr>
+				<th>
+					Request an Account
+				</th>
+			</tr>
+				<tr>
+					<td> </td>
+				</tr>
+				<tr>
+					<td>
+						<form  name="profsave" method="post" action="selfregistration.jsp">
+							<input type="hidden" name="action" value="Save"/>
+							<input type="hidden" name="profileid" value="<%= profileID %>"/>
+							<table width="100%" border="0" align="center" cellpadding="0" cellspacing="1" id="tableFormData">
+			  
+			  <tr>
+			    <td class="formHeadings"><div align="right">First Name: </div></td>
+			    <td colspan="2"><input name="firstName" type="text" value="<%=current.getUserProfileFirstName()%>" size="35" />    </td>
+			  </tr>
+			  <tr>
+			    <td class="formHeadings">Last Name:</td>
+			    <td colspan="2"><input name="lastName" type="text" value="<%=current.getUserProfileLastName()%>" size="35" />    </td>
+			  </tr>
+			  <tr>
+			    <td width="140" class="formHeadings">User Name:</td>
+			    <td><input name="num" type="text" value="<%=current.getUserProfileNum()%>" size="35" /></td>
+			  </tr>
+			  <tr>
+			    <td height="23" class="formHeadings">Email: </td>
+			    <td colspan="2"><input name="eMail" type="text" value="<%=current.getUserProfileEMail()%>" size="35" />    </td>
+			  </tr>
+			  <tr>
+			    <td valign="middle" class="formHeadings"><t:t>Workgroup</t:t>:</td>
+			    <td colspan="2"><input name="location" type="text" value="<%=currentLocation%>" size="35" autocomplete="off" />    </td>
+			  </tr>
+			  <tr>
+			    <td valign="middle" class="formHeadings"><t:t>Role</t:t>: </td>
+			    <td width="228"><select name="role" style="width:215px;">
+			      <option value="-1">Select <t:t>Role</t:t></option>
+			      <%
+			     if (currentRoleID == -1) currentRoleID = requestedRole;
+			     for (int i = 0; i < roles.size(); i++) {
+			          Group role = (Group)roles.get(i);
+			%>
+			      <option value="<%=role.getGroupID()%>" <%=(role.getGroupID() == currentRoleID)?"selected=\"selected\"":""%>><%=HTTPUtils.canonize(role.getGroupName())%></option>
+			      <%
+			     }
+			%>
+			    </select>    </td>
+			    <td width="320"> </td>
+			  </tr>
+			  <tr>
+			    <td class="formHeadings">State:</td>
+			    <td colspan="2">
+			    <select name="state">
+				    <option></option>
+<%
+			    for (String[] s : GeoData.getStates()) {
+%>
+				    <option value="<%=s[0]%>" <%=(s[0].equals(current.getUserProfileState())?"selected=\"selected\"":"")%>><%=s[1] %></option>
+				
+<%
+			    }
+%>
+			    </select>
+			    </td>
+			  </tr>
+			  <tr>
+			    <td class="formHeadings">Password:</td>
+			    <td><input name="passwd" type="password" value="<%=passwd%>" size="35" <%=(!alternativeLoginValidationEnable)?"":"disabled=\"true\""%> />    </td>
+			  </tr>
+			  <tr>
+			    <td class="formHeadings">Confirm Password:</td>
+			    <td><input name="passwd2" type="password" value="<%=passwd2%>" size="35" <%=(!alternativeLoginValidationEnable)?"":"disabled=\"true\""%> />    </td>
+			  </tr>
+			  
+			  <tr>
+			    <td>&nbsp;</td>
+			    <td colspan="2">
+			<%
+			if (!noSave) {
+			%>
+			<a href="#" onClick="document.profsave.submit()"><img border="0" src="images/createaccount.png" width="106" height="23" hspace="3" alt=""/></a>
+			<a href="<%=returnPage%>"><img border="0" src="images/cancel_btn.gif" width="72" height="24" alt=""></a>
+			<%
+			}
+			else {
+			%>
+			<a href="<%=returnPage%>"><img border="0" src="images/loginnow.png" width="106" height="23" hspace="3" alt=""/></a>
+			<%
+			}
+			%>
+			</td>
+			  </tr>
+			</table>
+			<input type="submit" style="position: absolute; left: -9999px; width: 1px; height: 1px;"/>
+			</form>
+			</td>
+			</tr>
+			</table>
+
+		</div>
+<%@ include file="footer.jsp" %>
+	</div>
+</body>
+</html>




More information about the Ils-source mailing list