<!DOCTYPE html>
<html lang="en">
<head>
  <!--#include file="./includes/header.asp"-->
  <!--#include file="./includes/sql.asp"-->
</head>

<%
	theme = Request.Cookies("theme")
	IF theme = "" THEN
		theme="bg-theme1"
	END IF
%>

<body class="bg-theme <%Response.Write(theme)%>">

<!-- start loader -->
   <div id="pageloader-overlay" class="visible incoming"><div class="loader-wrapper-outer"><div class="loader-wrapper-inner" ><div class="loader"></div></div></div></div>
   <!-- end loader -->
<!-- Start wrapper-->
 <div id="wrapper">
  <!--#include file="./includes/leftsidebar.asp"-->
<!--Start topbar header-->
  <!--#include file="./includes/topbarheader.asp"-->
<!--End topbar header-->
<div class="clearfix"></div>

  <div class="content-wrapper">
    <div class="container-fluid">

      <div class="row mt-3">
        <div class="col-xl-auto">
          <div class="card">
            <div class="card-body">
              <%
                Dim showAll
                showAll = Request.QueryString("showall")
                If showAll = "" Then showAll = "0"
              %>
              <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:15px;">
                <h5 class="card-title" style="margin:0;">
                  <i class="zmdi zmdi-notifications"></i> Notifications
                  <% If showAll = "1" Then %>
                    <span class="badge badge-info">Showing All</span>
                  <% Else %>
                    <span class="badge badge-success">Showing Active</span>
                  <% End If %>
                </h5>
                <div>
                  <% If showAll = "1" Then %>
                    <a href="./displaynotifications.asp" class="btn btn-success">
                      <i class="zmdi zmdi-eye"></i> Show Active Only
                    </a>
                  <% Else %>
                    <a href="./displaynotifications.asp?showall=1" class="btn btn-info">
                      <i class="zmdi zmdi-time-restore"></i> Show All History
                    </a>
                  <% End If %>
                  <a href="./calendar.asp" class="btn btn-secondary">
                    <i class="zmdi zmdi-calendar"></i> Calendar View
                  </a>
                  <a href="./addnotification.asp" class="btn btn-primary">
                    <i class="zmdi zmdi-plus-circle"></i> Add Notification
                  </a>
                </div>
              </div>

			  <div class="table-responsive">
              <table class="table table-hover">
                <thead>
                  <tr>
                    <th scope="col">Message</th>
                    <th scope="col">Type</th>
                    <th scope="col">Business Unit</th>
                    <th scope="col">Ticket</th>
                    <th scope="col">Start Time</th>
                    <th scope="col">End Time</th>
                    <th scope="col">Status</th>
                    <th scope="col">Shopfloor</th>
                    <th scope="col">Actions</th>
                  </tr>
                </thead>
                <tbody>

<%
	Dim strSQL, rs
	strSQL = "SELECT n.*, nt.typename, nt.typecolor, bu.businessunit, " & _
	         "TIMESTAMPDIFF(MINUTE, n.endtime, NOW()) as minutes_since_end, " & _
	         "CASE " & _
	         "  WHEN n.endtime IS NOT NULL AND n.endtime < NOW() THEN 1 " & _
	         "  ELSE 0 " & _
	         "END as is_complete " & _
	         "FROM notifications n " & _
	         "LEFT JOIN notificationtypes nt ON n.notificationtypeid = nt.notificationtypeid " & _
	         "LEFT JOIN businessunits bu ON n.businessunitid = bu.businessunitid "

	' Add WHERE clause based on showall parameter
	If showAll <> "1" Then
		' Show only truly active notifications:
		' 1. isactive = 1 AND (endtime is NULL OR endtime >= NOW())
		' 2. OR recently completed (within 30 min grace period for fade-out)
		strSQL = strSQL & _
		         "WHERE (n.isactive = 1 AND (n.endtime IS NULL OR n.endtime >= NOW())) OR " & _
		         "  (n.isactive = 0 AND n.endtime IS NOT NULL AND " & _
		         "   DATE_ADD(n.endtime, INTERVAL 30 MINUTE) >= NOW()) "
	End If

	strSQL = strSQL & "ORDER BY n.notificationid DESC"
	Set rs = objconn.Execute(strSQL)

	If rs.EOF Then
		Response.Write("<tr><td colspan='9' class='text-center text-muted'>No notifications found.</td></tr>")
	Else
		Do While Not rs.EOF
			Dim statusText, statusClass, typeText, typeColor, rowOpacity, rowStyle
			If CBool(rs("isactive")) = True Then
				statusText = "Active"
				statusClass = "success"
			Else
				statusText = "Inactive"
				statusClass = "secondary"
			End If

			' Calculate opacity for completed notifications (fade over 30 minutes)
			rowOpacity = 1.0
			If rs("is_complete") = 1 And Not IsNull(rs("minutes_since_end")) Then
				' Fade from 1.0 to 0.5 over 30 minutes
				Dim minutesSinceEnd
				minutesSinceEnd = CDbl(rs("minutes_since_end"))
				If minutesSinceEnd >= 0 Then
					rowOpacity = 1.0 - (minutesSinceEnd / 30) * 0.5
					If rowOpacity < 0.5 Then rowOpacity = 0.5
				End If
				statusText = "Complete"
				statusClass = "info"
			End If

			' Get notification type info
			If IsNull(rs("typename")) Or rs("typename") = "" Then
				typeText = "TBD"
				typeColor = "secondary"
			Else
				typeText = rs("typename")
				typeColor = rs("typecolor")
			End If

			' Get business unit info
			Dim businessUnitText
			If IsNull(rs("businessunit")) Or rs("businessunit") = "" Then
				businessUnitText = "<span class='text-muted'><em>All</em></span>"
			Else
				businessUnitText = Server.HTMLEncode(rs("businessunit"))
			End If

			' Apply opacity style
			rowStyle = "opacity: " & rowOpacity & ";"
			Response.Write("<tr style='" & rowStyle & "'>")
			Response.Write("<td>" & Server.HTMLEncode(rs("notification") & "") & "</td>")
			Response.Write("<td><span class='badge badge-" & typeColor & "'>" & typeText & "</span></td>")
			Response.Write("<td>" & businessUnitText & "</td>")
			Response.Write("<td><a href='https://geit.service-now.com/now/nav/ui/search/0f8b85d0c7922010099a308dc7c2606a/params/search-term/" & Server.URLEncode(rs("ticketnumber") & "") & "/global-search-data-config-id/c861cea2c7022010099a308dc7c26041/back-button-label/IT4IT%20Homepage/search-context/now%2Fnav%2Fui' target='_blank'>" & Server.HTMLEncode(rs("ticketnumber") & "") & "</a></td>")
			Response.Write("<td>" & rs("starttime") & "</td>")
			Response.Write("<td>" & rs("endtime") & "</td>")
			Response.Write("<td><span class='badge badge-" & statusClass & "'>" & statusText & "</span></td>")

			' Shopfloor Dashboard column
			Dim shopfloorText, shopfloorIcon
			If CBool(rs("isshopfloor")) = True Then
				shopfloorText = "Yes"
				shopfloorIcon = "<i class='zmdi zmdi-tv text-success' title='Shows on shopfloor dashboard'></i>"
			Else
				shopfloorText = "No"
				shopfloorIcon = "<i class='zmdi zmdi-tv-off text-muted' title='Not on shopfloor dashboard'></i>"
			End If
			Response.Write("<td class='text-center'>" & shopfloorIcon & "</td>")

			Response.Write("<td>")
			Response.Write("<a href='./editnotification.asp?notificationid=" & rs("notificationid") & "' class='btn btn-sm btn-info'><i class='zmdi zmdi-edit'></i></a> ")
			If CBool(rs("isactive")) = True Then
				Response.Write("<a href='./deactivatenotification.asp?notificationid=" & rs("notificationid") & "' class='btn btn-sm btn-warning' onclick='return confirm(""Deactivate this notification?"");'><i class='zmdi zmdi-close-circle'></i></a>")
			Else
				Response.Write("<a href='./activatenotification.asp?notificationid=" & rs("notificationid") & "' class='btn btn-sm btn-success' onclick='return confirm(""Activate this notification?"");'><i class='zmdi zmdi-check-circle'></i></a>")
			End If
			Response.Write("</td>")
			Response.Write("</tr>")
			rs.MoveNext
		Loop
	End If

	rs.Close
	Set rs = Nothing
	objConn.Close
%>
                </tbody>
              </table>
            </div>
            </div>
          </div>
        </div>
      </div><!--End Row-->

    <!-- End container-fluid-->

    </div><!--End content-wrapper-->
   <!--Start Back To Top Button-->
    <a href="javaScript:void();" class="back-to-top"><i class="fa fa-angle-double-up"></i> </a>
    <!--End Back To Top Button-->

	<!--Start footer-->
	<footer class="footer">
      <div class="container">
        <div class="text-center">
        </div>
      </div>
    </footer>
	<!--End footer-->

  </div><!--End wrapper-->


  <!-- Bootstrap core JavaScript-->
  <script src="assets/js/jquery.min.js"></script>
  <script src="assets/js/popper.min.js"></script>
  <script src="assets/js/bootstrap.min.js"></script>

  <!-- simplebar js -->
  <script src="assets/plugins/simplebar/js/simplebar.js"></script>
  <!-- sidebar-menu js -->
  <script src="assets/js/sidebar-menu.js"></script>

  <!-- Custom scripts -->
  <script src="assets/js/app-script.js"></script>

</body>
</html>
