cityssm/attendance-tracking

View on GitHub
views/reports.ejs

Summary

Maintainability
Test Coverage
<%- include('_header'); -%>

<div class="columns">
  <div class="column is-3">
    <aside class="menu" id="menu--reports" style="position:sticky;top:60px">
      <h2 class="menu-label">
        Reports
      </h2>
      <ul class="menu-list">
        <li>
          <a class="is-active" href="#tab--employeeAttendance">
            <span class="icon">
              <span class="fa-layers fa-fw" aria-hidden="true">
                <i class="fas fa-hard-hat"></i>
                <i class="fas fa-check" data-fa-transform="shrink-8 right-8 down-5" data-fa-glow="10"></i>
              </span>
            </span>
            <span>Employee Attendance</span>
          </a>
        </li>
        <% if (permissionFunctions.hasPermission(user, 'attendance.callOuts.canView')) { %>
          <li>
            <a href="#tab--employees">
              <span class="icon">
                <i class="fas fa-fw fa-hard-hat" aria-hidden="true"></i>
              </span>
              <span>Employees</span>
            </a>
          </li>
        <% } %>
      </ul>
    </aside>
  </div>
  <div class="column">
    <div class="tabs-container" id="tabs-container--reports">
      <article id="tab--employeeAttendance">
        <nav class="breadcrumb is-hidden-mobile">
          <ul>
            <li class="is-active">
              <a href="#" aria-current="page">
                Report Library
              </a>
            </li>
            <li class="is-active">
              <a href="#">
                <span>Employee Attendance Reports</span>
              </a>
            </li>
          </ul>
        </nav>
        <h1 class="title is-1 is-size-3-mobile">Employee Attendance Reports</h1>
        
        <div class="columns">
          <div class="column">
            <% if (configFunctions.getConfigProperty('features.attendance.absences') && permissionFunctions.hasPermission(user, 'attendance.absences.canView')) { %>
              <div class="panel">
                <h2 class="panel-heading">Absence Reports</h2>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/absenceRecords-recent" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Recent Absence Records</strong><br />
                      All absence records recorded in the past <%= configFunctions.getConfigProperty('settings.recentDays') %> days.
                    </div>
                  </div>
                </a>
              </div>
            <% } %>
    
            <% if (configFunctions.getConfigProperty('features.attendance.returnsToWork') && permissionFunctions.hasPermission(user, 'attendance.returnsToWork.canView')) { %>
              <div class="panel">
                <h2 class="panel-heading">Return to Work Reports</h2>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/returnToWorkRecords-recent" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Recent Return to Work Records</strong><br />
                      All return to work records recorded in the past <%= configFunctions.getConfigProperty('settings.recentDays') %> days.
                    </div>
                  </div>
                </a>
              </div>
            <% } %>
    
            <% if (configFunctions.getConfigProperty('features.attendance.callOuts') && permissionFunctions.hasPermission(user, 'attendance.callOuts.canView')) { %>
              <div class="panel">
                <h2 class="panel-heading">Call Out Reports</h2>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/callOutListMembers-formatted" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Call Out List Members</strong><br />
                      All call out list members.
                    </div>
                  </div>
                </a>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/callOutRecords-recent" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Recent Call Out Records</strong><br />
                      All call out records recorded in the past <%= configFunctions.getConfigProperty('settings.recentDays') %> days.
                    </div>
                  </div>
                </a>
              </div>
            <% } %>

            <% if (configFunctions.getConfigProperty('features.attendance.afterHours') && permissionFunctions.hasPermission(user, 'attendance.afterHours.canView')) { %>
              <div class="panel">
                <h2 class="panel-heading">After Hours Reports</h2>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/afterHoursRecords-recent" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Recent After Hours Records</strong><br />
                      All after hours records recorded in the past <%= configFunctions.getConfigProperty('settings.recentDays') %> days.
                    </div>
                  </div>
                </a>
              </div>
            <% } %>
          </div>
          <% if (permissionFunctions.hasPermission(user, 'reports.hasRawExports')) { %>
            <div class="column">
              <div class="panel">
                <div class="panel-heading">
                  <a class="is-flex is-justify-content-space-between is-panel-block-toggle" href="#">
                    <h2 class="has-text-weight-bold">Raw Data Exports</h2>
                    <span class="icon"><i class="fas fa-chevron-down" aria-hidden="true"></i></span>
                  </a>
                </div>
                <div class="panel-block is-hidden">
                  <div class="message is-info is-small">
                    <p class="message-body">
                      <strong>Note the raw data exports are unfiltered and unformatted.</strong>
                      They may include deleted records that are no longer available through the application.
                    </p>
                  </div>
                </div>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/absenceRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Absence Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.absences')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/historicalAbsenceRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Historical Absence Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.absences')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/returnToWorkRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Return to Work Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.returnsToWork')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/historicalReturnToWorkRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Historical Return to Work Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.returnsToWork')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/callOutRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Call Out Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.callOuts')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/historicalCallOutRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Historical Call Out Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.callOuts')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/afterHoursRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>After Hours Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.afterHours')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/historicalAfterHoursRecords-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Historical After Hours Records Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.afterHours')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
              </div>
              <div class="panel">
                <div class="panel-heading">
                  <a class="is-flex is-justify-content-space-between is-panel-block-toggle" href="#">
                    <h2 class="has-text-weight-bold">Raw Configuration Exports</h2>
                    <span class="icon"><i class="fas fa-chevron-down" aria-hidden="true"></i></span>
                  </a>
                </div>
                <div class="panel-block is-hidden">
                  <div class="message is-info is-small">
                    <p class="message-body">
                      <strong>Note the raw configuration exports are unfiltered and unformatted.</strong>
                      They may include deleted records that are no longer available through the application.
                    </p>
                  </div>
                </div>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/absenceTypes-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Absence Types Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.absences')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/callOutResponseTypes-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Call Out Response Types Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.callOuts')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
                <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/afterHoursReasons-all" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>After Hours Reasons Table</strong>
                    </div>
                    <% if (!configFunctions.getConfigProperty('features.attendance.afterHours')) { %>
                      <div class="column is-narrow">
                        <span class="tag is-warning">
                          Disabled
                        </span>
                      </div>
                    <% } %>
                  </div>
                </a>
              </div>
            </div>
          <% } %>
        </div>
      </article>
      <% if (permissionFunctions.hasPermission(user, 'attendance.callOuts.canView')) { %>
        <article class="is-hidden" id="tab--employees">
          <nav class="breadcrumb is-hidden-mobile">
            <ul>
              <li class="is-active">
                <a href="#" aria-current="page">
                  Report Library
                </a>
              </li>
              <li class="is-active">
                <a href="#">
                  <span>Employee Reports</span>
                </a>
              </li>
            </ul>
          </nav>
          <h1 class="title is-1 is-size-3-mobile">Employee Reports</h1>

          <div class="columns">
            <div class="column">
              <div class="panel">
                <h2 class="panel-heading">Employee Reports</h2>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/employees-contacts" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Active Employee Contacts</strong><br />
                      All contact details for all active employees.
                    </div>
                  </div>
                </a>
                <a class="panel-block is-block" href="<%= urlPrefix %>/reports/employees-inactive" download>
                  <div class="columns is-mobile is-variable is-2">
                    <div class="column is-narrow">
                      <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                    </div>
                    <div class="column">
                      <strong>Inactive Employees</strong><br />
                      Employees marked as inactive, unavailable for new records.
                    </div>
                  </div>
                </a>
              </div>
            </div>
            <% if (permissionFunctions.hasPermission(user, 'reports.hasRawExports')) { %>
              <div class="column">
                <div class="panel">
                  <div class="panel-heading">
                    <a class="is-flex is-justify-content-space-between is-panel-block-toggle" href="#">
                      <h2 class="has-text-weight-bold">Raw Data Exports</h2>
                      <span class="icon"><i class="fas fa-chevron-down" aria-hidden="true"></i></span>
                    </a>
                  </div>
                  <div class="panel-block is-hidden">
                    <div class="message is-info is-small">
                      <p class="message-body">
                        <strong>Note the raw data exports are unfiltered and unformatted.</strong>
                        They may include deleted records that are no longer available through the application.
                      </p>
                    </div>
                  </div>
                  <a class="panel-block is-block is-hidden" href="<%= urlPrefix %>/reports/employees-all" download>
                    <div class="columns is-mobile is-variable is-2">
                      <div class="column is-narrow">
                        <i class="fas fa-2x fa-file-csv" aria-hidden="true"></i>
                      </div>
                      <div class="column">
                        <strong>Employees Table</strong>
                      </div>
                    </div>
                  </a>
                </div>
              </div>
            <% } %>
          </div>
        </article>
      <% } %>
    </div>
  </div>
</div>

<%- include('_footerA'); -%>

<script src="<%= urlPrefix %>/javascripts/reports.min.js"></script>

<%- include('_footerB'); -%>