home *** CD-ROM | disk | FTP | other *** search
/ bombers.k12.ar.us / bombers.k12.ar.us.tar / bombers.k12.ar.us / survey_unconfigured / EmailAddressList.asp < prev    next >
Text File  |  2006-10-25  |  17KB  |  439 lines

  1. <!--#Include File="Include/Top_inc.asp"-->
  2. <%
  3. '***********************************************************************
  4. '   Application: SelectSurveyASP Advanced v8.1.11
  5. '   Author: Aaron Baril for ClassApps.com
  6. '   Page Description: This page allows a user to view and manage
  7. '                      the list of email addresses for an email list.
  8. '
  9. '   COPYRIGHT NOTICE                                
  10. '
  11. '   See attached Software License Agreement
  12. '
  13. '   (c) Copyright 2002 - 2006 by ClassApps.com.  All rights reserved.
  14. '***********************************************************************
  15. %>
  16. <!--#Include File="Include/Config_inc.asp"-->
  17. <!--#Include File="Include/SurveyUtility_inc.asp"-->
  18. <!--#Include File="Include/Utility_inc.asp"-->
  19. <!--#Include File="Include/adovbs_inc.asp"-->
  20. <!--#Include File="Include/Constants_inc.asp"-->
  21. <!--#Include File="Include/SurveySecurity_inc.asp"-->
  22. <!--#Include File="Include/CurrentUser_inc.asp"-->
  23.  
  24. <%
  25.     'If the user does not have "Create" or "Admin" permission, redirect to the access denied page.
  26.     If lngUserSecurityLevel <> SUR_SECURITY_LEVEL_CREATE And lngUserSecurityLevel <> SUR_SECURITY_LEVEL_ADMIN Then
  27.         Response.Redirect "AccessDenied.asp?Reason=" & SUR_ACCESS_DENIED_NOT_ADMIN_SECURITY_LEVEL
  28.     End If
  29.  
  30.     Dim lngEmailListID
  31.     Dim strSQL
  32.     Dim rsEmailAddresses
  33.     Dim lngEmailAddressID
  34.     Dim strEmailListName    
  35.     Dim strSortColumn
  36.     Dim strSortOrder
  37.     Dim strTempSortOrder
  38.     Dim lngNumberPerPage
  39.     Dim lngStartNumber
  40.     Dim lngTotalEmailAddressCount    
  41.     Dim lngPreviousNumber
  42.     Dim lngNextNumber
  43.     Dim lngDisplayedCount
  44.     Dim i
  45.     Dim lngCurrentPageEndNumber
  46.     Dim strTableRowColor
  47.     Dim strEmailAddressIDs
  48.             
  49.     'Initialization
  50.     Set rsEmailAddresses = Server.CreateObject("ADODB.Recordset")
  51.     lngDisplayedCount = 0
  52.  
  53.     'The first time the page is called, the values are in the query string.  After that, the values are in the form.
  54.     If Len(Request.QueryString("EmailListID")) > 0 Then
  55.         lngEmailListID = Request.QueryString("EmailListID")
  56.         lngTotalEmailAddressCount = GetEmailAddressCount(lngEmailListID)
  57.         strEmailListName = Request.QueryString("EmailListName")
  58.         strSortColumn = "email_address"
  59.         strSortOrder = SUR_SORT_ORDER_ASCENDING
  60.         lngNumberPerPage = 50
  61.         If lngNumberPerPage > lngTotalEmailAddressCount Then
  62.             lngCurrentPageEndNumber = lngTotalEmailAddressCount
  63.         Else
  64.             lngCurrentPageEndNumber = CLng(lngStartNumber) + CLng(lngNumberPerPage)
  65.         End If
  66.         lngStartNumber = 1
  67.         lngPreviousNumber = -1
  68.         If lngTotalEmailAddressCount > 50 Then
  69.             lngNextNumber = 51
  70.         Else
  71.             lngNextNumber = -1
  72.         End If
  73.     Else
  74.         lngEmailListID = Request.Form("EmailListID")
  75.         lngTotalEmailAddressCount = GetEmailAddressCount(lngEmailListID)
  76.         strEmailListName = Request.Form("EmailListName")
  77.         strSortColumn = Request.Form("SortColumn")
  78.         strSortOrder = Request.Form("SortOrder")
  79.         lngNumberPerPage = Request.Form("NumberPerPage")
  80.         lngStartNumber = Request.Form("StartNumber")
  81.         lngPreviousNumber = CLng(lngStartNumber) - CLng(lngNumberPerPage)
  82.         If lngPreviousNumber <= 0 Then
  83.             If CLng(lngStartNumber) > 1 Then
  84.                 lngPreviousNumber = 1
  85.             Else
  86.                 lngPreviousNumber = -1
  87.             End If
  88.         End If
  89.         lngNextNumber = CLng(lngStartNumber) + CLng(lngNumberPerPage)
  90.         If CLng(lngNextNumber) > CLng(lngTotalEmailAddressCount) Then
  91.             lngNextNumber = -1
  92.         End If
  93.         If lngNumberPerPage < lngTotalEmailAddressCount Then
  94.             lngCurrentPageEndNumber = lngTotalEmailAddressCount
  95.         Else
  96.             If CLng(lngStartNumber) + CLng(lngNumberPerPage) > lngTotalEmailAddressCount Then
  97.                 lngCurrentPageEndNumber = lngTotalEmailAddressCount
  98.             Else
  99.                 lngCurrentPageEndNumber = CLng(lngStartNumber) + CLng(lngNumberPerPage) - 1
  100.             End If
  101.         End If
  102.     End If
  103.  
  104.     'Initialize the row color
  105.     strTableRowColor = "TableRowLightColor"
  106. %>
  107.  
  108. <html>
  109. <head>
  110.     <title>Email Address List</title>
  111.     <link rel="stylesheet" href="Resources/StyleSheet/SurveyStyle.css">
  112. </head>
  113.  
  114. <script language ="JavaScript" src="ClientInclude/Utility.js"></script>
  115. <script language="JavaScript">
  116. function sortList(strSortColumn, strSortOrder)
  117. {
  118.     document.forms['frmSortAndPaginate'].SortColumn.value = strSortColumn;
  119.     document.forms['frmSortAndPaginate'].SortOrder.value = strSortOrder;
  120.     document.forms['frmSortAndPaginate'].NumberPerPage.value = document.all['cboNumberPerPage'].value;
  121.     document.forms['frmSortAndPaginate'].submit();
  122. }
  123.  
  124. function displayCountChange()
  125. {
  126.     document.forms['frmSortAndPaginate'].NumberPerPage.value = document.all['cboNumberPerPage'].value;
  127.     document.forms['frmSortAndPaginate'].submit();
  128. }
  129.  
  130. function paginate(lngStartNumber)
  131. {
  132.     document.forms['frmSortAndPaginate'].StartNumber.value = lngStartNumber;
  133.     document.forms['frmSortAndPaginate'].NumberPerPage.value = document.all['cboNumberPerPage'].value;
  134.     document.forms['frmSortAndPaginate'].submit();
  135. }
  136.  
  137. function editEmailAddress(lngEmailAddressID)
  138. {
  139.     window.location.href = 'EmailAddress.asp?EmailListID=<%=lngEmailListID%>&EmailAddressID=' + lngEmailAddressID + '&EmailListName=<%=Replace(strEmailListName, "'", "\'")%>';
  140. }
  141.  
  142. function submitCheck()
  143. {
  144.     document.forms['frmEmailAddressList'].Action.value = '<%=SUR_FORM_ACTION_SAVE%>';
  145.     document.forms['frmEmailAddressList'].submit();
  146. }
  147.  
  148. function deleteChecked()
  149. {
  150.     if (confirm("Are you sure you want to delete all checked email addresses?") == true) //OK
  151.     {
  152.         document.forms['frmEmailAddressList'].Action.value = '<%=SUR_FORM_ACTION_DELETE%>';
  153.         document.forms['frmEmailAddressList'].submit();
  154.     }
  155. }
  156. </script>
  157.  
  158. <body class="MainBodyStyle">
  159.  
  160. <!--#Include File="Include/FrameworkTop_inc.asp"-->
  161.  
  162. <table border="0" cellspacing="0" cellpadding="0" width="754" class="MediumBlueBackgroundColor">
  163.     <tr>
  164.         <td height="36" valign="center">
  165.               <span class="H1HeadingStyle"><a name="skipnav" tabindex="1">Email Address List</a></span> <img style="cursor:hand" alt="Help" onClick="javascript:window.open('Help/Help.htm#EmailLists', null, 'menubar=no,toolbar=no,titlebar=no,status=no,left=10,top=10,scrollbars=yes,resizable=yes,height=550,width=770');" border="0" src="Resources/Images/Help.gif">
  166.         </td>
  167.     </tr>
  168. </table>
  169.  
  170. <!--#Include File="Include/FrameworkTop2_inc.asp"-->
  171.  
  172. <table width="740" border="0" cellpadding="0" cellspacing="6" class="LightGrayBackgroundColor">
  173.     <form name="frmEmailAddressList" method="post" action="EmailAddressListAction.asp" onSubmit="return submitCheck();">
  174.         <input type="hidden" name="EmailListID" value="<%=lngEmailListID%>">
  175.         <input type="hidden" name="Action" value="" ID="Hidden1">
  176.         <tr>
  177.             <td valign="center" height="40">
  178.                 <span class="H2HeadingStyle">
  179.                     Email Addresses for '<%=strEmailListName%>' Email List
  180.                 </span>
  181.             </td>
  182.             <td valign="bottom" width="145" align="right">
  183.                 <span class="InlineHelpSpanStyle">
  184.                     Displaying 
  185. <%
  186.                     If CStr(lngStartNumber) = CStr(lngCurrentPageEndNumber) Then
  187.                         Response.Write lngStartNumber
  188.                     ElseIf CLng(lngTotalEmailAddressCount) = 0 Then
  189.                         Response.Write "0"
  190.                     Else
  191.                         Response.Write lngStartNumber & "-" & lngCurrentPageEndNumber
  192.                     End If
  193. %>    
  194.                     of <%=lngTotalEmailAddressCount%>
  195.                 </span>
  196.             </td>
  197.         </tr>
  198.     </table>
  199.     <table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td height="1" background="Resources/Images/ThinDivider.gif"></td></tr>
  200.     <table border="0" cellpadding="6" cellspacing="0" width="740" class="WhiteBackgroundColor" summary="This page displays a list of email addresses for the selected email address list.">
  201.         <tr class="TableHeadingColor" height="40">
  202.             <th id="Delete" width="40" valign="center">
  203.                 <span class="TableHeadingBold">Delete</span>
  204.             </th>
  205.             <th id="Active" width="40" valign="center">
  206.                 <span class="TableHeadingBold">Active</span>
  207.             </th>
  208.             <th id="EmailAddress" width="262" valign="center">
  209. <%
  210.                 'Determine the sort order if the user clicks this column heading
  211.                 If strSortColumn = "email_address" Then
  212.                     If strSortOrder = SUR_SORT_ORDER_ASCENDING Then
  213.                         strTempSortOrder = SUR_SORT_ORDER_DESCENDING
  214.                     Else
  215.                         strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  216.                     End If
  217.                 Else
  218.                     strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  219.                 End If
  220. %>
  221.                 <span class="TableHeadingBold"><a href="javascript:sortList('email_address', '<%=strTempSortOrder%>');">Email Address</a></span>
  222.             </th>
  223.             <th id="FirstName" width="105" valign="center">
  224. <%
  225.                 'Determine the sort order if the user clicks this column heading
  226.                 If strSortColumn = "first_name" Then
  227.                     If strSortOrder = SUR_SORT_ORDER_ASCENDING Then
  228.                         strTempSortOrder = SUR_SORT_ORDER_DESCENDING
  229.                     Else
  230.                         strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  231.                     End If
  232.                 Else
  233.                     strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  234.                 End If
  235. %>
  236.                 <span class="TableHeadingBold"><a href="javascript:sortList('first_name', '<%=strTempSortOrder%>');">First Name</a></span>
  237.             </th>
  238.             <th id="LastName" width="120" valign="center">
  239. <%
  240.                 'Determine the sort order if the user clicks this column heading
  241.                 If strSortColumn = "last_name" Then
  242.                     If strSortOrder = SUR_SORT_ORDER_ASCENDING Then
  243.                         strTempSortOrder = SUR_SORT_ORDER_DESCENDING
  244.                     Else
  245.                         strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  246.                     End If
  247.                 Else
  248.                     strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  249.                 End If
  250. %>
  251.                 <span class="TableHeadingBold"><a href="javascript:sortList('last_name', '<%=strTempSortOrder%>');">Last Name</a></span>
  252.             </th>
  253.             <th id="CustomData1" width="123" align="left" valign="center">
  254. <%
  255.                 'Determine the sort order if the user clicks this column heading
  256.                 If strSortColumn = "custom_data_1" Then
  257.                     If strSortOrder = SUR_SORT_ORDER_ASCENDING Then
  258.                         strTempSortOrder = SUR_SORT_ORDER_DESCENDING
  259.                     Else
  260.                         strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  261.                     End If
  262.                 Else
  263.                     strTempSortOrder = SUR_SORT_ORDER_ASCENDING
  264.                 End If
  265. %>
  266.                 <span class="TableHeadingBold"><a href="javascript:sortList('custom_data_1', '<%=strTempSortOrder%>');">Custom Data 1</a></span>
  267.             </th>
  268.             <th id="Edit" width="50" align="center" valign="center">
  269.                 <span class="TableHeadingBold">Edit</span>
  270.             </th>
  271.         </tr>
  272. <%
  273.         'Select all of the email addresses
  274.         strSQL = "SELECT email_address_id, active_yn, email_address, " & _
  275.                  "first_name, last_name, custom_data_1, custom_data_2, custom_data_3 " & _
  276.                  "FROM sur_email_address " & _
  277.                  "WHERE email_list_id = " & lngEmailListID & _
  278.                  " AND deleted_yn = " & SQLEncode(SUR_BOOLEAN_NEGATIVE) & _
  279.                  " ORDER BY " & strSortColumn & " " & strSortOrder
  280.         rsEmailAddresses.Open ConvertSQL(strSQL), SURVEY_APP_CONNECTION, adOpenForwardOnly, adLockReadOnly, adCmdText
  281.  
  282.         'If there are no email addresses, display a message saying so
  283.         If rsEmailAddresses.EOF = True Then
  284. %>    
  285.             <tr>
  286.                 <td colspan="7">
  287.                     <span class="Normal">There are no email addresses in this list.</span>
  288.                 </td>
  289.             </tr>
  290. <%        
  291.         Else 'There are email addresses
  292.             rsEmailAddresses.MoveFirst
  293.                         
  294.             'Move the recordset to the correct starting position
  295.             For i = 1 To lngStartNumber - 1
  296.                 If Not rsEmailAddresses.EOF Then
  297.                     rsEmailAddresses.MoveNext
  298.                 End If
  299.             Next
  300.  
  301.             Do While Not rsEmailAddresses.EOF And CLng(lngDisplayedCount) < CLng(lngNumberPerPage)
  302.                 lngDisplayedCount = lngDisplayedCount + 1
  303.                 lngEmailAddressID = rsEmailAddresses("email_address_id") 
  304.                 
  305.                 'Keep a list of all of the email address ID's
  306.                 strEmailAddressIDs = strEmailAddressIDs & lngEmailAddressID & ", "
  307. %>
  308.                 <tr class="<%=strTableRowColor%>">
  309.                     <td align="center" valign="center">
  310.                         <input type="checkbox" name="chkDelete<%=lngEmailAddressID%>" id="chkDelete<%=lngEmailAddressID%>">
  311.                     </td>
  312.                     <td align="center" valign="center">
  313.                         <input <% If Trim(rsEmailAddresses("active_yn")) = SUR_BOOLEAN_POSITIVE Then Response.Write "checked" End If %> type="checkbox" name="chkActive<%=lngEmailAddressID%>" id="chkActive<%=lngEmailAddressID%>">
  314.                     </td>
  315.                     <td>
  316.                         <span class="Normal"><a href="mailto:<%=rsEmailAddresses("email_address")%>"><%=rsEmailAddresses("email_address")%></a><br></span>
  317.                     </td>
  318.                     <td>
  319.                         <span class="Normal"><label for="chkDelete<%=lngEmailAddressID%>"><%=rsEmailAddresses("first_name")%></label><br></span>
  320.                     </td>
  321.                     <td>
  322.                         <span class="Normal"><label for="chkActive<%=lngEmailAddressID%>"><%=rsEmailAddresses("last_name")%></label><br></span>
  323.                     </td>
  324.                     <td>
  325.                         <span class="Normal"><%=rsEmailAddresses("custom_data_1")%><br></span>
  326.                     </td>
  327.                     <td align="center">
  328.                         <a href="javascript:editEmailAddress('<%=rsEmailAddresses("email_address_id")%>');"><img alt="Edit this email address" border="0" src="Resources/Icons/Edit.gif" onMouseOver="this.style.cursor='hand'"></a>
  329.                     </td>
  330.                 </tr>
  331. <%            
  332.                 'Alternate the colors for the rows in the table
  333.                 If strTableRowColor = "TableRowDarkColor" Then
  334.                     strTableRowColor = "TableRowLightColor"
  335.                 Else
  336.                     strTableRowColor = "TableRowDarkColor"
  337.                 End If
  338.  
  339.                 rsEmailAddresses.MoveNext
  340.             Loop
  341.         End If
  342. %>                    
  343.         <tr class="<%=strTableRowColor%>">
  344.             <td align="left" valign="top" colspan="3">
  345.                 <span class="Normal">
  346.                     <label for="cboNumberPerPage">Show </label>
  347.                     <select name="cboNumberPerPage" id="cboNumberPerPage" style="width:55px" onChange="javascript:displayCountChange();">
  348.                         <option <% If lngNumberPerPage = 25 Then Response.Write "selected" End If%> value="25">25</option>
  349.                         <option <% If lngNumberPerPage = 50 Then Response.Write "selected" End If%> value="50">50</option>
  350.                         <option <% If lngNumberPerPage = 100 Then Response.Write "selected" End If%> value="100">100</option>
  351.                     </select> 
  352.                     email addresses per page
  353.                 </span>
  354.             </td>
  355.             <td align="right" colspan="4">
  356.                 <span class="Normal">
  357. <%
  358.                     If lngPreviousNumber <> -1 Then
  359. %>
  360.                         <a href="javascript:paginate(<%=lngPreviousNumber%>);">Previous</a>
  361. <%
  362.                     End If
  363.                     
  364.                     If lngPreviousNumber <> -1 And lngNextNumber <> -1 Then
  365. %>
  366.                          | 
  367. <%
  368.                     End If
  369.                     
  370.                     If lngNextNumber <> -1 Then
  371. %>
  372.                         <a href="javascript:paginate(<%=lngNextNumber%>);">Next</a>
  373. <%
  374.                     End If
  375. %>
  376.                 </span>
  377.             </td>
  378.         </tr>
  379.         <tr>
  380.             <td colspan="7" align="right">
  381.                 <a href="EmailListList.asp"><img border="0" alt="Back" name="btnBack" src="Resources/Buttons/Back.gif"></a>
  382. <%
  383.                 'Only display the save and delete buttons if there is at least one email address in the list
  384.                 If CLng(lngTotalEmailAddressCount) > 0 Then
  385. %>
  386.                     <a href="javascript:deleteChecked();"><img border="0" alt="Delete all checked email address" name="btnDeleteChecked" src="Resources/Buttons/DeleteChecked.gif"></a>
  387.                     <a href="javascript:submitCheck();"><img border="0" alt="Save the active status of each email address" name="btnSave" src="Resources/Buttons/Save.gif"></a>
  388. <%
  389.                 End If
  390. %>    
  391.             </td>
  392.         </tr>
  393.         <input type="hidden" name="EmailAddressIDs" value="<%=strEmailAddressIDs%>">
  394.     </form>
  395. </table>
  396.  
  397. <!--#Include File="Include/FrameworkBottom_inc.asp"-->
  398.  
  399. </body>
  400.  
  401. <form name="frmSortAndPaginate" method="post" action="EmailAddressList.asp">
  402.     <input type="hidden" name="SortColumn" value="<%=strSortColumn%>">
  403.     <input type="hidden" name="SortOrder" value="<%=strSortOrder%>">
  404.     <input type="hidden" name="NumberPerPage" value="<%=lngNumberPerPage%>">
  405.     <input type="hidden" name="StartNumber" value="<%=lngStartNumber%>">
  406.     <input type="hidden" name="EmailListID" value="<%=lngEmailListID%>">
  407.     <input type="hidden" name="EmailListName" value="<%=strEmailListName%>">
  408. </form>
  409. </html>
  410.  
  411. <%        
  412.     'Ensure that the web server returns the page
  413.     Response.Flush
  414.  
  415.     'Get the count of email addresses for the specified email list
  416.     Function GetEmailAddressCount(lngEmailListID)
  417.  
  418.         Dim strSQL
  419.         Dim lngCount
  420.         Dim rsEmailAddressCount
  421.  
  422.         'Initialization    
  423.         Set rsEmailAddressCount = Server.CreateObject("ADODB.Recordset")
  424.  
  425.         'Get the total count of email addresses in this list
  426.         strSQL = "SELECT count(email_address_id) As EmailAddressCount " & _
  427.                  "FROM sur_email_address " & _
  428.                  "WHERE email_list_id = " & lngEmailListID
  429.         rsEmailAddressCount.Open ConvertSQL(strSQL), SURVEY_APP_CONNECTION, adOpenForwardOnly, adLockReadOnly, adCmdText
  430.         lngCount = CLng(rsEmailAddressCount("EmailAddressCount"))
  431.         
  432.         'Clean up
  433.         rsEmailAddressCount.Close
  434.         Set rsEmailAddressCount = Nothing
  435.         
  436.         GetEmailAddressCount = lngCount
  437.     End Function
  438. %>
  439.