Parcourir la source

invalid rate is marked

master
patrick il y a 6 ans
Parent
révision
3a5841613a
3 fichiers modifiés avec 67 ajouts et 16 suppressions
  1. +12
    -2
      css/bts_office.css
  2. +2
    -2
      html/jobv1.html
  3. +53
    -12
      js/bts_office.js

+ 12
- 2
css/bts_office.css Voir le fichier

@@ -18,6 +18,12 @@ body {
}
}

@keyframes bolder {
0% { padding-left:0px; background-color:yellow;}
50% { padding-left:10px; background-color: lightyellow;}
100% { padding-left:0px; background-color:yellow;}
}

.titlebar_gradient {
/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#f6e6b4+0,ed9017+100 */
background: rgb(246,230,180); /* Old browsers */
@@ -757,7 +763,7 @@ div.blueTable.emptyrecord {
box-shadow: 0px 0px 10px green;
}
.divTable.highlight div {
background-color: lightyellow;
background-color: lightyellow !important;
}

.divTable.invalidjob.highlight {
@@ -836,6 +842,11 @@ div.brate {
max-width: 20px;
}

div.brate.error{
background-color: red !important;
animation: bolder 1s linear infinite;
}

.divTable div > select {
width: 100%;
height: 100%;
@@ -888,7 +899,6 @@ div.jobTable.saved div.bsave span.ticon-save {
display: none;
}


div.jobTable.saved div{
background-color: transparent;
}

+ 2
- 2
html/jobv1.html Voir le fichier

@@ -8,9 +8,9 @@
</div>
<div class="divTableCell bstart">{{start}}</div>
<div class="divTableCell bfinish">{{finish}}</div>
<div class="divTableCell brate">{{rate_name}}</div>
<div class="divTableCell brate {{#non_hour}} error {{/non_hour}}">{{rate_name}}</div>
<div class="divTableCell bstaff">{{staff_name}}</div>
<div class="divTableCell bclient">{{client_name}}</div>
<div class="divTableCell bclient {{#is_week1}}week1color{{/is_week1}} {{#is_week2}}week2color{{/is_week2}}">{{client_name}}</div>
<div class="divTableCell bconfirmed"><input name="ack" type=checkbox {{#is_confirmed}}checked{{/is_confirmed}}></div>
<div class="divTableCell brating">{{rating}}</div>
<div class="divTableCell bdelete">

+ 53
- 12
js/bts_office.js Voir le fichier

@@ -1189,15 +1189,7 @@
{
//map data for each jobTable
response.jobs.forEach(function(e){
e.tos_name = bts().tos[e.tos].tos_full_str;
e.staff_name = bts().staff_map[e.staff].display_name;
e.client_name = bts().client_map[e.client].display_name;
e.rate_name = bts().earnings_rate[e.rate].RatePerUnit + "-" + bts().earnings_rate[e.rate].Name;
e.saved = true;
if (e.ack != 0){
e.is_confirmed = true;
}
//console.log('attach %s %o to %o ', e.id, e, div);
job_derive_attr(e);
});
//we do works, load timesheets
@@ -1215,6 +1207,33 @@
}, 500); //try it half seconds later
}
function job_derive_attr(e)
{
e.saved = true;
e.tos_name = bts().tos[e.tos].tos_full_str;
e.staff_name = bts().staff_map[e.staff].display_name;
e.client_name = bts().client_map[e.client].display_name;
e.rate_name = bts().earnings_rate[e.rate].RatePerUnit + "-" + bts().earnings_rate[e.rate].Name;
if (! has_txt_hour( bts().earnings_rate[e.rate].TypeOfUnits )){
e.non_hour = true;
}
if (job_is_week1(e.start)){
e.is_week1=true;
}else if (job_is_week2(e.start)){
e.is_week2=true;
}
if (e.ack != 0){
e.is_confirmed = true;
}
}
function has_txt_hour(str){
var s = str.toLowerCase();
return s.indexOf('hour') != -1;
}
function show_jobs(job_els, in_ajax){
if (job_els.length >0){
@@ -1441,21 +1460,43 @@
var el = $(this).closest('.jobTable');
var data = el.data();
data.ack = e.checked? 1: 0;
mark_dirty(el);
job_mark_dirty(el);
});
function mark_dirty(el)
function job_mark_dirty(el)
{
el.removeClass('saved');
el.addClass('dirty');
}
function mark_clean(el)
function job_mark_clean(el)
{
el.addClass('saved');
el.removeClass('dirty');
}
function job_is_week1(t)
{
var w1_begin = new Date($('span[name="w1d1"]').data().date) ;
var w1_end = new Date($('span[name="w1d7"]').data().date);
w1_begin.setHours(0,0,0,0);
w1_end.setHours(23,59,59);
//console.log("week1 begin %o, end %o", w1_begin, w1_end);
//w1_end = new Date (w1_end.setDate(w1_end.getDate()+1)); //from 00:00 to 23:59;
var me = new Date(t);
return (w1_begin <= me && me <= w1_end );
}
function job_is_week2(t)
{
var w2_begin = new Date($('span[name="w2d1"]').data().date);
var w2_end = new Date($('span[name="w2d7"]').data().date);
w2_begin.setHours(0,0,0,0);
w2_end.setHours(23,59,59);
var me = new Date(t);
return (w2_begin <= me && me <= w2_end );
}
function init_ts(){
xero(false);
wifi(false);

Chargement…
Annuler
Enregistrer