428 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			HTML
		
	
	
		
		
			
		
	
	
			428 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			HTML
		
	
	
|  | <?xml version="1.0" encoding="utf-8"?> | ||
|  | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> | ||
|  | <html xmlns="http://www.w3.org/1999/xhtml"> | ||
|  | 
 | ||
|  | <head> | ||
|  |     <link rel="stylesheet" type="text/css" href="/main/diary/css/bootstrap.min.css" /> | ||
|  |     <link rel="stylesheet" type="text/css" href="/main/diary/favicon.css" /> | ||
|  |     <title>Diary Management | ||
|  |     </title> | ||
|  |     <script type="text/javascript" src="/main/diary/diary.js"> | ||
|  |     </script> | ||
|  | </head> | ||
|  | 
 | ||
|  | <body> | ||
|  |     <div class="container mx-auto" style="width: 80%; margin-left: ($spacer * .25) !important"> | ||
|  |         <header _id="header"> | ||
|  |         </header> | ||
|  |         <!-- Add new entry --> | ||
|  |         <div id="new" _id="new" style="border-width: .2rem; border: solid #f7f7f9; padding: 1.5rem; background-color: #e0eefa;"> | ||
|  |             <form method="post" action="#" _id="edit"> | ||
|  |                 <h3>New diary record: | ||
|  |                 </h3> | ||
|  |                 <div class="form-row"> | ||
|  |                     <input type="hidden" name="do" value="diary" /> | ||
|  |                     <input type="hidden" name="diary:edit:id" _id="id" /> | ||
|  |                     <input type="hidden" _id="hiddens" /> | ||
|  | 
 | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <label for="date">When</label> | ||
|  |                         <span class="arrow_prev" onclick="change_date('diary:edit:ddate', -1)"> | ||
|  |                         </span> | ||
|  |                         <span class="form-inline" _id="date"> | ||
|  |                         </span> | ||
|  |                         <span class="arrow_next" onclick="change_date('diary:edit:ddate', 1)"> | ||
|  |                         </span> | ||
|  |                     </div> | ||
|  |                     <div class="from-group col-xs-2"> | ||
|  |                         <label for="person">Engineer</label> | ||
|  |                         <select name="diary:edit:who" class="custom-select"> | ||
|  |                             <option _id="person">Engineer | ||
|  |                             </option> | ||
|  |                         </select> | ||
|  |                     </div> | ||
|  |                     <div class="from-group col-xs-3"> | ||
|  |                         <label for="hours">Hours</label> | ||
|  |                         <input _id="hours" autocomplete="off" type="text" size="2" name="diary:edit:hours" class="form-control" /> | ||
|  |                     </div> | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <label for="project">Project</label> | ||
|  |                         <select name="diary:edit:prj_id" class="custom-select"> | ||
|  |                             <option class="btn btn-primary" _id="project">Project | ||
|  |                             </option> | ||
|  |                         </select> | ||
|  |                     </div> | ||
|  |                 </div> | ||
|  |                 <div style="width: 800px; overflow: auto; "> | ||
|  |                     <textarea name="diary:edit:descr" cols="70" rows="10" class="form-control"></textarea> | ||
|  |                 </div> | ||
|  |                 <div> | ||
|  |                     <button type="submit" value="Submit" class="btn btn-primary btn-sm">Submit / Ctrl+Enter</button> | ||
|  |                 </div> | ||
|  |             </form> | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <hr> | ||
|  | 
 | ||
|  |         <div> | ||
|  |             <form method="post" action="#"> | ||
|  |                 <div id="massapproval" _id="massapproval"> | ||
|  |                     <button type="submit" name="diary:action:verb" value="ApproveAll" class="btn btn-primary btn-sm" _id="edit">Approve All | ||
|  |                     </button> | ||
|  |                     <button type="submit" name="diary:action:verb" value="DenyAll" class="btn btn-warning btn-sm" _id="edit">Deny All | ||
|  |                     </button> | ||
|  |                     <button type="submit" name="diary:action:verb" value="RejectAll" class="btn btn-danger btn-sm" _id="edit">Reject All | ||
|  |                     </button> | ||
|  |                 </div> | ||
|  |             </form> | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <!-- Entries to be approved --> | ||
|  |         <div id="approvals" _id="approvals"> | ||
|  |             <h3 class="display-4">Records for approval | ||
|  |             </h3> | ||
|  |             <hr class="my-4"> | ||
|  |             <div _id="entries"> | ||
|  |                 <div class="input-group mb-3"> | ||
|  |                     <form method="post" _id="view" action="#"> | ||
|  | 
 | ||
|  |                         <input type="hidden" name="do" value="diary" /> | ||
|  |                         <input type="hidden" name="diary:action:id" _id="edit_id" /> | ||
|  |                         <input type="hidden" _id="hiddens" /> | ||
|  |                         <div class="alert alert-info"> | ||
|  |                             <span _id="date">01 Jan 1970 | ||
|  |                             </span> | ||
|  |                             <span _id="person">Engineer name | ||
|  |                             </span> | ||
|  |                             <strong><span _id="hours">100 | ||
|  |                                 </span></strong> hour(s); | ||
|  |                             Project | ||
|  |                             <span _id="project_name">Project name | ||
|  |                             </span> | ||
|  |                             <span class="badge badge-primary badge-pill" _id="project">customer/tag | ||
|  |                             </span> | ||
|  |                         </div> | ||
|  | 
 | ||
|  |                         <div style="width: 800px; overflow: auto; margin-left: 10px;"> | ||
|  |                             <pre _id="descr">Work description</pre> | ||
|  |                         </div> | ||
|  |                         <div class="timestamp badge">Status: | ||
|  |                             <span class="badge badge-warning badge-pill" _id="state">valid | ||
|  |                             </span> created | ||
|  |                             <span _id="created">2006-10-23 10:20:00 | ||
|  |                             </span>, modified | ||
|  |                             <span _id="modified">2006-10-24 15:17:00 | ||
|  |                             </span> | ||
|  |                         </div> | ||
|  |                         <div _id="appnote" class="form-control"> | ||
|  |                             <span _id="created">01 10 1970 | ||
|  |                             </span> | ||
|  |                             <span _id="author">Author | ||
|  |                             </span>: | ||
|  |                             <span _id="note">Approval note | ||
|  |                             </span> | ||
|  |                         </div> | ||
|  |                         <p> | ||
|  |                             <textarea name="diary:edit:approval" cols="70" rows="5" class="form-control"></textarea> | ||
|  |                         </p> | ||
|  |                         <p> | ||
|  |                             <button type="submit" name="diary:action:verb" value="Approve" class="btn btn-success btn-sm" _id="edit">Approve | ||
|  |                             </button> | ||
|  |                             <button type="submit" name="diary:action:verb" value="Deny" class="btn btn-warning btn-sm" _id="edit">Deny | ||
|  |                             </button> | ||
|  |                             <button type="submit" name="diary:action:verb" value="Reject" class="btn btn-danger btn-sm" _id="edit">Reject | ||
|  |                             </button> | ||
|  |                         </p> | ||
|  |                     </form> | ||
|  |                 </div> | ||
|  |             </div> | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <!-- Selection menu --> | ||
|  |         <div id="menu" _id="menu" style="border-width: .2rem; border: solid #f7f7f9; padding: 1.5rem; background-color: #e0eefa;"> | ||
|  |             <form method="get" action="#"> | ||
|  |                 <h3>Select diary records to list: | ||
|  |                 </h3> | ||
|  |                 <input type="hidden" name="do" value="diary"> | ||
|  |                 <div class="form-row"> | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <label for="start_date">From</label> | ||
|  |                         <span class="form-inline" _id="start_date"> | ||
|  |                         </span> | ||
|  |                         <small class="form-text text-muted"># - current day or year</small> | ||
|  |                     </div> | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <label for="end_date">To</label> | ||
|  |                         <span class="form-inline" _id="end_date"> | ||
|  |                         </span> | ||
|  |                         <small class="form-text text-muted">$ - end of month</small> | ||
|  |                     </div> | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <label for="project">Project</label> | ||
|  |                         <select name="diary:list:prj_id" class="custom-select"> | ||
|  |                             <option class="btn btn-primary" _id="project">Project | ||
|  |                             </option> | ||
|  |                         </select> | ||
|  |                     </div> | ||
|  |                 </div> | ||
|  |                 <div class="form-row"> | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <select name="diary:list:customer" class="custom-select"> | ||
|  |                             <option _id="customer">Customer | ||
|  |                             </option> | ||
|  |                         </select> | ||
|  |                     </div> | ||
|  |                     <div class="form-group col-xs-3"> | ||
|  |                         <select name="diary:list:who" class="custom-select"> | ||
|  |                             <option _id="who">Engineer | ||
|  |                             </option> | ||
|  |                         </select> | ||
|  |                     </div> | ||
|  |                 </div> | ||
|  |                 <div class="form-check form-group"> | ||
|  |                     <span _id="newest_first"></span> | ||
|  |                     <label class=" form-check-label" for="newest_first">Newest first</label> | ||
|  |                 </div> | ||
|  |                 <div class="form-check form-group"> | ||
|  |                     <span _id="just_stats"></span> | ||
|  |                     <label class="form-check-label" for="just_stats">Just stats</label> | ||
|  |                 </div> | ||
|  | 
 | ||
|  |                 <button type="submit" class="btn btn-primary btn-sm">Search | ||
|  |                 </button> | ||
|  | 
 | ||
|  |             </form> | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <div _id="nodata" id="nodata"> | ||
|  |             No entries | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <hr> | ||
|  | 
 | ||
|  |         <!-- Summary --> | ||
|  |         <div _id="detailed_totals" id="detailed_totals"> | ||
|  |             <h3>Summary | ||
|  |             </h3> | ||
|  |             <p>Total hours: | ||
|  |                 <span _id="hours">100 | ||
|  |                 </span> | ||
|  |             </p> | ||
|  |             <h4>By projects: | ||
|  |             </h4> | ||
|  |             <ul> | ||
|  |                 <li _id="customer"> | ||
|  |                     <span _id="name">Name | ||
|  |                     </span>, | ||
|  |                     <span _id="hours">1000 | ||
|  |                     </span> hour(s) | ||
|  |                     <ul> | ||
|  |                         <li _id="project"> | ||
|  |                             <span _id="name">Name</span> (<span _id="customer">customer</span>/<span _id="tag">tag</span>), | ||
|  |                             <span _id="hours">100</span> hour(s) | ||
|  |                         </li> | ||
|  |                     </ul> | ||
|  |                 </li> | ||
|  |             </ul> | ||
|  |             <h4>By engineers: | ||
|  |             </h4> | ||
|  |             <table class="table table-striped table-hover table-sm"> | ||
|  |                 <caption>Lag: days it took to submit the records, Mon,Tue etc. : average number of hours per day in the selected period (vacations are not handled)</caption> | ||
|  |                 <thead> | ||
|  |                     <tr> | ||
|  |                         <th scope="col">Engineer</th> | ||
|  |                         <th scope="col">Hours</th> | ||
|  |                         <th scope="col">Lag</th> | ||
|  |                         <th scope="col">Mon</th> | ||
|  |                         <th scope="col">Tue</th> | ||
|  |                         <th scope="col">Wed</th> | ||
|  |                         <th scope="col">Thu</th> | ||
|  |                         <th scope="col">Fri</th> | ||
|  |                         <th scope="col">Sat</th> | ||
|  |                         <th scope="col">Sun</th> | ||
|  |                     </tr> | ||
|  |                 </thead> | ||
|  |                 <tbody> | ||
|  |                     <tr _id="person"> | ||
|  |                         <th scope="row" _id="name"> </th> | ||
|  |                         <td _id="hours"> </td> | ||
|  |                         <td _id="delay"> </td> | ||
|  |                         <td _id="mon_stat"> </td> | ||
|  |                         <td _id="tue_stat"> </td> | ||
|  |                         <td _id="wed_stat"> </td> | ||
|  |                         <td _id="thu_stat"> </td> | ||
|  |                         <td _id="fri_stat"> </td> | ||
|  |                         <td _id="sat_stat"> </td> | ||
|  |                         <td _id="sun_stat"> </td> | ||
|  |                     </tr> | ||
|  |                 </tbody> | ||
|  |             </table> | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <div _id="totals" id="totals"> | ||
|  |             <h3>Summary | ||
|  |             </h3> | ||
|  |             <p>Total hours: | ||
|  |                 <span _id="hours">100 | ||
|  |                 </span> | ||
|  |             </p> | ||
|  |             <h4>By projects: | ||
|  |             </h4> | ||
|  |             <ul> | ||
|  |                 <li _id="customer"> | ||
|  |                     <span _id="name">Name | ||
|  |                     </span>, | ||
|  |                     <span _id="hours">1000 | ||
|  |                     </span> hour(s) | ||
|  |                     <ul> | ||
|  |                         <li _id="project"> | ||
|  |                             <span _id="name">Name</span> (<span _id="customer">customer</span>/<span _id="tag">tag</span>), | ||
|  |                             <span _id="hours">100</span> hour(s) | ||
|  |                         </li> | ||
|  |                     </ul> | ||
|  |                 </li> | ||
|  |             </ul> | ||
|  |             <h4>By engineers: | ||
|  |             </h4> | ||
|  |             <ul> | ||
|  |                 <li _id="person"> | ||
|  |                     <span _id="name">Person | ||
|  |                     </span>, | ||
|  |                     <span _id="hours">100 | ||
|  |                     </span> hour(s) | ||
|  |                 </li> | ||
|  |             </ul> | ||
|  |         </div> | ||
|  | 
 | ||
|  |         <hr> | ||
|  | 
 | ||
|  |         <!-- Details --> | ||
|  |         <div _id="details" id="details"> | ||
|  |             <h3>Details | ||
|  |             </h3> | ||
|  |             <div _id="entries"> | ||
|  |                 <form _id="view_only" style="margin-top: 3px;" class="card"> | ||
|  |                     <div class="card-body"> | ||
|  |                         <div class="card-title"> | ||
|  |                             <span _id="date">01 Jan 1970 | ||
|  |                             </span>: | ||
|  |                             <span _id="person">Engineer name | ||
|  |                             </span> | ||
|  |                             <span _id="hours">100 hour(s) | ||
|  |                             </span>; | ||
|  |                             Project | ||
|  |                             <span _id="project_name">Project name | ||
|  |                             </span> | ||
|  |                             <span class="badge badge-success badge-pill" _id="project">customer/tag | ||
|  |                             </span> | ||
|  |                         </div> | ||
|  |                         <div style="width: 900px; overflow: auto;" class="card-body"> | ||
|  |                             <pre _id="descr">Work description</pre> | ||
|  |                         </div> | ||
|  |                     </div> | ||
|  |                 </form> | ||
|  |                 <form method="post" _id="view" style="margin-top: 3px;" class="card"> | ||
|  |                     <div class="card-body"> | ||
|  |                         <div class="card-title"> | ||
|  |                             <input type="hidden" name="do" value="diary" /> | ||
|  |                             <input type="hidden" name="diary:list:edit" _id="edit_id" /> | ||
|  |                             <input type="hidden" name="diary:action:id" _id="edit_id" /> | ||
|  |                             <input type="hidden" _id="hiddens" /> | ||
|  |                             <span _id="date">01 Jan 1970 | ||
|  |                             </span> | ||
|  |                             <span _id="person">Engineer name | ||
|  |                             </span> | ||
|  |                             <span _id="hours">100 h | ||
|  |                             </span> | ||
|  |                             <span _id="project_name">Project name | ||
|  |                             </span> | ||
|  |                             <span class="badge badge-success badge-pill" _id="project">customer/tag | ||
|  |                             </span> | ||
|  |                             <button type="submit" name="diary:action:verb" value="Edit" class="btn btn-outline-primary btn-sm" _id="edit">Edit | ||
|  |                             </button> | ||
|  |                             <button type="submit" name="diary:action:verb" value="Delete" class="btn btn-outline-secondary btn-sm" _id="edit">Delete | ||
|  |                             </button> | ||
|  |                         </div> | ||
|  |                         <div class="card-body" style="width: 900px; overflow: auto;"> | ||
|  |                             <pre _id="descr">Work description</pre> | ||
|  |                         </div> | ||
|  |                         <div _id="appnote" class="appnote"> | ||
|  |                             <p> | ||
|  |                                 <span _id="created">01 10 1970 | ||
|  |                                 </span> | ||
|  |                                 <span _id="author">Author | ||
|  |                                 </span>: | ||
|  |                                 <span _id="note">Approval note | ||
|  |                                 </span> | ||
|  |                             </p> | ||
|  |                         </div> | ||
|  |                         <div class="timestamp card-subtitle"><small>Status: | ||
|  |                                 <span _id="state">valid | ||
|  |                                 </span>; created | ||
|  |                                 <span _id="created">2006-10-23 10:20:00 | ||
|  |                                 </span>, modified | ||
|  |                                 <span _id="modified">2006-10-24 15:17:00 | ||
|  |                                 </span> | ||
|  |                             </small> | ||
|  |                         </div> | ||
|  |                     </div> | ||
|  |                 </form> | ||
|  |                 <form method="post" _id="edit" style="margin-top: 3px;" class="card"> | ||
|  |                     <div class="edit"> | ||
|  |                         <h5>Edit diary record: | ||
|  |                         </h5> | ||
|  |                         <div class="form-row"> | ||
|  |                             <input type="hidden" name="do" value="diary" /> | ||
|  |                             <input type="hidden" name="diary:edit:id" _id="id" /> | ||
|  |                             <input type="hidden" _id="hiddens" /> | ||
|  | 
 | ||
|  |                             <div class="form-group col-xs-3"> | ||
|  |                                 <span class="form-inline" _id="date"> | ||
|  |                                 </span> | ||
|  |                             </div> | ||
|  |                             <div class="form-group col-xs-2"> | ||
|  |                                 <select name="diary:edit:who" class="custom-select"> | ||
|  |                                     <option _id="person"> | ||
|  |                                     </option> | ||
|  |                                 </select> | ||
|  |                             </div> | ||
|  |                             <div class="form-group col-xs-3"> | ||
|  |                                 <input _id="hours" type="text" size="2" name="diary:edit:hours" class="form-control" /> | ||
|  |                             </div> | ||
|  |                             <div class="form-group col-xs-3"> | ||
|  |                                 <select name="diary:edit:prj_id" class="custom-select"> | ||
|  |                                     <option _id="project">Project 1 | ||
|  |                                     </option> | ||
|  |                                 </select> | ||
|  |                             </div> | ||
|  |                         </div> | ||
|  |                         <div style="width: 800px; overflow: auto; "> | ||
|  |                             <textarea name="diary:edit:descr" cols="70" rows="10" _id="descr" class="form-control">Work description</textarea> | ||
|  |                         </div> | ||
|  |                         <div _id="approval"> | ||
|  |                             <div _id="appnote" class="form-control form-inline"> | ||
|  |                                 <span _id="created">01 10 1970 | ||
|  |                                 </span> | ||
|  |                                 <span _id="author">Author | ||
|  |                                 </span>: | ||
|  |                                 <span _id="note">Approval note | ||
|  |                                 </span> | ||
|  |                             </div> | ||
|  |                             <p> | ||
|  |                                 <textarea name="diary:edit:approval" cols="70" rows="10">Approval note</textarea> | ||
|  |                             </p> | ||
|  |                         </div> | ||
|  |                         <p> | ||
|  |                             <button type="submit" value="Submit" class="btn btn-primary btn-sm">Submit / Ctrl+Enter</button> | ||
|  |                         </p> | ||
|  |                     </div> | ||
|  |                 </form> | ||
|  |             </div> | ||
|  |         </div> | ||
|  |         <span _id="footer"> | ||
|  |         </span> | ||
|  |     </div> | ||
|  | </body> | ||
|  | 
 | ||
|  | </html> |