FlexitimeTracker/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/index.html

301 lines
16 KiB
HTML

<html>
<head>
<title>Flexi Time Data Viewer</title>
<link rel="shortcut icon" href="favicon.ico" />
<link rel="stylesheet preload" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet preload" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/css/bootstrap-datepicker3.min.css">
<link href="spa.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sammy.js/0.7.6/sammy.js" type="text/javascript"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://cdn.jsdelivr.net/momentjs/2.10.6/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.6.1/js/bootstrap-datepicker.js"></script>
</head>
<body data-bind="css: {footerBody: errorData() !== null}">
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Big Brother</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<!-- ko foreach: menuOptions -->
<li data-bind="css: { active: $root.chosenMenuItemId() == $data },
click: $root.goToMenuOption">
<a class="indent-nav-xs" data-bind="text: $data"></a>
</li>
<!-- /ko -->
</ul>
</div>
</div>
</nav>
<div class="container" data-bind="with: userList">
<!-- Home page > All User List -->
<div class="col-md-10 col-md-offset-1">
<div class="row">
<div class="col-xs-8">
<form class="input-group" action="#users" method="get">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">Go!</button>
</span>
<input type="text" class="form-control" placeholder="Search for..." name="query" data-bind="value: Query">
</form>
</div>
<button class="btn btn-default pull-right" data-bind="click: $root.returnButtonClick" pagedestination="newUser"><span class="glyphicon glyphicon-plus"></span> Add New User</button>
</div>
<br/>
<div>
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>UserId</th>
<th class="col-md-1">firstName</th>
<th class="col-md-1">lastName</th>
<th/>
<th/>
</tr>
</thead>
<tbody data-bind="foreach: Users">
<tr>
<td class="valign" data-bind="text: UserId"></td>
<td class="valign" data-bind="text: UserId"></td>
<td class="valign" data-bind="text: LastName"></td>
<td class="valign" data-bind="text: FirstName"></td>
<td class="fit"><button data-bind="click: $root.goToUserDetails" class="btn btn-default">Details</button></td>
<td class="fit hidden-md-down"><button data-bind="click: $root.goToTimeLogs" class="btn btn-default">View Logs</button></td>
</tr>
</tbody>
</table>
</div>
<div class="row">
<div class="pagination col-md-3 align-middle">
<label>Total User Count: <span data-bind="text: TotalUserCount"></span></label>
</div>
<div class="col-md-6">
<div class="text-center">
<ul class="pagination" data-bind="foreach: new Array(PageCount)">
<li data-bind="css:{ active: $parent.PageNumber==($index()+1)}">
<a data-bind="text: $index()+1, click: function(){$root.goToUserPage($index()+1);}"></a>
</li>
</ul>
</div>
</div>
<div class="pagination col-md-2 text-center" style="float: right">
<div>
<button class="btn btn-default dropdown-toggle" type="button" id="pageSizeDropDown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Page Size
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="pageSizeDropDown">
<li data-bind="css:{disabled:$root.userList().PageSize===-1}">
<a data-bind="click: function(){$root.setPageSize(-1);}">All</a>
</li>
<li data-bind="css:{disabled:$root.userList().PageSize===1}">
<a data-bind="click: function(){$root.setPageSize(1);}">1</a>
</li>
<li data-bind="css:{disabled:$root.userList().PageSize===10}">
<a data-bind="click: function(){$root.setPageSize(10);}">10</a>
</li>
<li data-bind="css:{disabled:$root.userList().PageSize===20}">
<a data-bind="click: function(){$root.setPageSize(20);}">20</a>
</li>
<li data-bind="css:{disabled:$root.userList().PageSize===50}">
<a data-bind="click: function(){$root.setPageSize(50);}">50</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="container" data-bind="with: chosenUserDetails">
<!-- Edit User Page -->
<div class="col-md-10 col-md-offset-1">
<button pageDestination="Users" data-bind="click: $root.returnButtonClick" id="returnButton" class="btn btn-default">
<span class="glyphicon glyphicon-chevron-left"></span>Users
</button>
<h1 data-bind="text: FirstName"></h1>
<form action="#edituser" method="post">
<input type="hidden" name="id" data-bind="value: UserId">
<div class="form-group">
<label for="FirstName">First Name</label>
<input for="FirstName" type="text" class="form-control" id="firstNameEdit" placeholder="Your First Name" data-bind="value: FirstName"/>
</div>
<div class="form-group">
<label for="LastName">Last Name</label>
<input for="LastName" type="text" class="form-control" id="lastNameEdit" placeholder="Your Last Name" data-bind="value: LastName"/>
</div>
<div class="form-group">
<label for="HoursPerWeek">Hours Per Week</label>
<input for="HoursPerWeek" type="text" class="form-control" id="hoursPerWeekEdit" placeholder="Contracted Hours per Week" data-bind="value: HoursPerWeek"/>
</div>
<div class="form-group">
<div class="input-group ">
<span class="input-group-addon">
<input for="IsContractor" type="checkbox" id="isContractorEditor" data-bind="checked: IsContractor" />
</span>
<input type="text" readonly class="form-control col-md-8" value="This User is a Contractor"/>
</div>
</div>
<div>
<label for="AssociatedCards">Associated Cards</label>
<br/>
<div class="row">
<!-- ko foreach: AssociatedIdentifiers -->
<div class="col-md-6 col-md-push-0 col-sm-6 col-sm-push-0 col-xs-12 col-xs-push-0">
<div class="input-group ">
<span class="input-group-addon">
<input type="checkbox" data-bind="name: Id, value: UniqueId, checked: IsAssociatedToUser" />
</span>
<input type="text" readonly class="form-control col-md-8" data-bind="value: UniqueId"/>
</div>
</div>
<!-- /ko -->
</div>
<hr/>
</div>
<div data-bind="with: $root.unassignedCardData">
<label for="AssociatedCards">Unassociated/Available Cards</label>
<br/>
<div class="row">
<!-- ko foreach: data -->
<div class="col-md-6 col-md-push-0 col-sm-6 col-sm-push-0 col-xs-12 col-xs-push-0">
<div class="input-group">
<span class="input-group-addon">
<input type="checkbox" data-bind="name: Id, value: UniqueId, checked: IsAssociatedToUser" />
</span>
<input type="text" readonly class="form-control" data-bind="value: UniqueId"/>
</div>
</div>
<!-- /ko -->
</div>
</div>
<br/>
<button pageDestination="Users" class="btn btn-secondary" type="button" data-bind="click: $root.returnButtonClick">Cancel</button> <button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
<div class="container" data-bind="with: userTimeLogData">
<button pageDestination="Users" data-bind="click: $root.returnButtonClick" id="returnButton" class="btn btn-default">
<span class="glyphicon glyphicon-chevron-left"></span>Users
</button>
<br />
<br />
<div class="row">
<div class="col-md-3 col-xs-12">
<div id="datePickerContainer">
<div id="weeklyDatePicker"></div>
</div>
<div class="form-group">
<input type="text" data-bind="value: $root.selectedCalendarWeek">
</div>
</div>
<div class="col-md-9 col-xs-12 well">
<!-- main content panel. -->
<table class="table table-striped">
<thead>
<tr>
<th>Day Of Week</th>
<th>In</th>
<th>Out</th>
<th>In</th>
<th>Out</th>
<th>In</th>
<th>Out</th>
<th>Sub-Total</th>
</tr>
</thead>
<tbody>
<tr>
<td class="valign" for="monday">Monday</td>
<td class="valign" for="timein1"></td>
<td class="valign" for="timeout1"></td>
<td class="valign" for="timein2"></td>
<td class="valign" for="timeout2"></td>
<td class="valign" for="timein3"></td>
<td class="valign" for="timeout3"></td>
<td class="valign" for="dailyHrsTotal">8</td>
</tr>
<tr>
<td class="valign" for="monday">Tuesday</td>
<td class="valign" for="timein1"></td>
<td class="valign" for="timeout1"></td>
<td class="valign" for="timein2"></td>
<td class="valign" for="timeout2"></td>
<td class="valign" for="timein3"></td>
<td class="valign" for="timeout3"></td>
<td class="valign" for="dailyHrsTotal">8</td>
</tr>
<tr>
<td class="valign" for="monday">Wednesday</td>
<td class="valign" for="timein1"></td>
<td class="valign" for="timeout1"></td>
<td class="valign" for="timein2"></td>
<td class="valign" for="timeout2"></td>
<td class="valign" for="timein3"></td>
<td class="valign" for="timeout3"></td>
<td class="valign" for="dailyHrsTotal">8</td>
</tr>
<tr>
<td class="valign" for="monday">Thursday</td>
<td class="valign" for="timein1"></td>
<td class="valign" for="timeout1"></td>
<td class="valign" for="timein2"></td>
<td class="valign" for="timeout2"></td>
<td class="valign" for="timein3"></td>
<td class="valign" for="timeout3"></td>
<td class="valign" for="dailyHrsTotal">8</td>
</tr>
<tr>
<td class="valign" for="monday">Friday</td>
<td class="valign" for="timein1"></td>
<td class="valign" for="timeout1"></td>
<td class="valign" for="timein2"></td>
<td class="valign" for="timeout2"></td>
<td class="valign" for="timein3"></td>
<td class="valign" for="timeout3"></td>
<td class="valign" for="dailyHrsTotal">8</td>
</tr>
<tr>
<td class="valign" colspan="7" for="monday">Weekly Total</td>
<td class="valign" for="dailyHrsTotal">37</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<footer data-bind="with: errorData, css: {footer: $root.errorData()!==null}">
<div class="container">
<!-- Alert/Error banner-->
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close" data-bind="click: $root.dismissAlert"><span aria-hidden="true">&times;</span></button>
<strong>Error!</strong>
<br />
<div data-bind="text: errorMessage"></div>
<div data-bind="text: errorSource"></div>
<div data-bind="text: errorDate"></div>
</div>
</div>
</footer>
<script src="spa.js" type="text/javascript"></script>
</body>
</html>