Loading module/Oscar/src/Oscar/Entity/WorkPackage.php +5 −0 Original line number Diff line number Diff line Loading @@ -244,6 +244,7 @@ class WorkPackage 'validating' => 0, 'conflicts' => 0, 'validate' => 0, 'unsend' => 0 ]; } switch( $timesheet->getStatus() ){ Loading @@ -260,6 +261,9 @@ class WorkPackage case TimeSheet::STATUS_ACTIVE: $timesPersons[$timesheet->getPerson()->getId()]['validate'] += $timesheet->getHours(); break; default: $timesPersons[$timesheet->getPerson()->getId()]['unsend'] += $timesheet->getHours(); } // $timesPersons[$timesheet->getPerson()->getId()] += $timesheet->getHours(); Loading @@ -275,6 +279,7 @@ class WorkPackage 'validating' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['validating'] : 0, 'conflicts' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['conflicts'] : 0, 'validate' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['validate'] : 0, 'unsend' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['unsend'] : 0, ]; } return [ Loading public/css/app-beta.css +5 −0 Original line number Diff line number Diff line Loading @@ -8062,6 +8062,11 @@ time.date-missing { background: rgba(136, 223, 93, 0.5); } .wp-hours .validating:hover { background: #499D1F; } .wp-hours .unsend { color: rgba(0, 0, 0, 0.5); background: rgba(183, 236, 156, 0.5); } .wp-hours .unsend:hover { background: #499D1F; } .wp-hours .duration { background: #AAA; } Loading public/css/app.css +5 −0 Original line number Diff line number Diff line Loading @@ -8062,6 +8062,11 @@ time.date-missing { background: rgba(136, 223, 93, 0.5); } .wp-hours .validating:hover { background: #499D1F; } .wp-hours .unsend { color: rgba(0, 0, 0, 0.5); background: rgba(183, 236, 156, 0.5); } .wp-hours .unsend:hover { background: #499D1F; } .wp-hours .duration { background: #AAA; } Loading public/css/app.scss +8 −0 Original line number Diff line number Diff line Loading @@ -3900,6 +3900,14 @@ $oscar-line: dotted thin $colorGreyLight; } } .unsend { color: rgba(0,0,0,.5); background: rgba(lighten($colorGreen, 40%), .5); &:hover { background: $colorGreen; } } .duration { background: $colorGreyLight } } Loading public/js/components/build/workpackageperson.js +1 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ define(['exports', 'vue', 'vue-resource', 'LocalDB', 'bootbox', 'moment-timezone _vue2.default.http.options.emulateHTTP = true; var WorkpackagePerson = { template: '<article class="workpackage-person">\n <div class="displayname">\n <strong>{{ person.person.displayname }}</strong>\n <a href="#" @click.prevent="handlerRemove(person)" class="link" v-if="editable && mode == \'read\'" title="Supprimer ce d\xE9clarant"><i class="icon-trash"></i></a>\n </div>\n <div class="tempsdeclare temps">\n <div v-if="editable && mode == \'edit\'">\n Heures pr\xE9vues :\n <input type="integer" v-model="durationForm" style="width: 5em" @keyup.13="handlerUpdate"/>\n <a href="#" @click.prevent="handlerUpdate" title="Appliquer la modification des heures pr\xE9vues"><i class="icon-floppy"></i></a>\n <a href="#" @click.prevent="handlerCancel" title="Annuler la modification des heures pr\xE9vues"><i class="icon-cancel-outline"></i></a>\n </div>\n <span v-else>\n <strong class="wp-hours">\n <span title="Heure(s) valid\xE9e(s)" class="wp-hour validate">{{person.validate}}</span>\n <span title="Heure(s) en cours de validation" class="wp-hour validating" v-if="person.validating > 0">{{person.validating}}</span>\n <span title="Heure(s) en conflit" class="wp-hour conflicts" v-if="person.conflicts > 0">{{person.conflicts}}</span>\n <span title="Heure(s) \xE0 valider" class="wp-hour duration"> \n / {{person.duration}}\n <a href="#" @click.prevent="handlerEdit" v-if="editable && mode == \'read\'" title="Modifier les heures pr\xE9vues"><i class="icon-pencil"></i></a>\n </span>\n </strong>\n </span>\n </div>\n </article>', template: '<article class="workpackage-person">\n <div class="displayname">\n <strong>{{ person.person.displayname }}</strong>\n <a href="#" @click.prevent="handlerRemove(person)" class="link" v-if="editable && mode == \'read\'" title="Supprimer ce d\xE9clarant"><i class="icon-trash"></i></a>\n </div>\n <div class="tempsdeclare temps">\n <div v-if="editable && mode == \'edit\'">\n Heures pr\xE9vues :\n <input type="integer" v-model="durationForm" style="width: 5em" @keyup.13="handlerUpdate"/>\n <a href="#" @click.prevent="handlerUpdate" title="Appliquer la modification des heures pr\xE9vues"><i class="icon-floppy"></i></a>\n <a href="#" @click.prevent="handlerCancel" title="Annuler la modification des heures pr\xE9vues"><i class="icon-cancel-outline"></i></a>\n </div>\n <span v-else>\n <strong class="wp-hours">\n <span title="Heure(s) saisie(s)" class="wp-hour unsend">{{person.unsend}}</span>\n <span title="Heure(s) valid\xE9e(s)" class="wp-hour validate">{{person.validate}}</span>\n <span title="Heure(s) en cours de validation" class="wp-hour validating" v-if="person.validating > 0">{{person.validating}}</span>\n <span title="Heure(s) en conflit" class="wp-hour conflicts" v-if="person.conflicts > 0">{{person.conflicts}}</span>\n <span title="Heure(s) \xE0 valider" class="wp-hour duration"> \n / {{person.duration}}\n <a href="#" @click.prevent="handlerEdit" v-if="editable && mode == \'read\'" title="Modifier les heures pr\xE9vues"><i class="icon-pencil"></i></a>\n </span>\n </strong>\n </span>\n </div>\n </article>', props: { 'person': { default: function _default() { return {}; Loading Loading
module/Oscar/src/Oscar/Entity/WorkPackage.php +5 −0 Original line number Diff line number Diff line Loading @@ -244,6 +244,7 @@ class WorkPackage 'validating' => 0, 'conflicts' => 0, 'validate' => 0, 'unsend' => 0 ]; } switch( $timesheet->getStatus() ){ Loading @@ -260,6 +261,9 @@ class WorkPackage case TimeSheet::STATUS_ACTIVE: $timesPersons[$timesheet->getPerson()->getId()]['validate'] += $timesheet->getHours(); break; default: $timesPersons[$timesheet->getPerson()->getId()]['unsend'] += $timesheet->getHours(); } // $timesPersons[$timesheet->getPerson()->getId()] += $timesheet->getHours(); Loading @@ -275,6 +279,7 @@ class WorkPackage 'validating' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['validating'] : 0, 'conflicts' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['conflicts'] : 0, 'validate' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['validate'] : 0, 'unsend' => array_key_exists($person->getPerson()->getId(), $timesPersons) ? $timesPersons[$person->getPerson()->getId()]['unsend'] : 0, ]; } return [ Loading
public/css/app-beta.css +5 −0 Original line number Diff line number Diff line Loading @@ -8062,6 +8062,11 @@ time.date-missing { background: rgba(136, 223, 93, 0.5); } .wp-hours .validating:hover { background: #499D1F; } .wp-hours .unsend { color: rgba(0, 0, 0, 0.5); background: rgba(183, 236, 156, 0.5); } .wp-hours .unsend:hover { background: #499D1F; } .wp-hours .duration { background: #AAA; } Loading
public/css/app.css +5 −0 Original line number Diff line number Diff line Loading @@ -8062,6 +8062,11 @@ time.date-missing { background: rgba(136, 223, 93, 0.5); } .wp-hours .validating:hover { background: #499D1F; } .wp-hours .unsend { color: rgba(0, 0, 0, 0.5); background: rgba(183, 236, 156, 0.5); } .wp-hours .unsend:hover { background: #499D1F; } .wp-hours .duration { background: #AAA; } Loading
public/css/app.scss +8 −0 Original line number Diff line number Diff line Loading @@ -3900,6 +3900,14 @@ $oscar-line: dotted thin $colorGreyLight; } } .unsend { color: rgba(0,0,0,.5); background: rgba(lighten($colorGreen, 40%), .5); &:hover { background: $colorGreen; } } .duration { background: $colorGreyLight } } Loading
public/js/components/build/workpackageperson.js +1 −1 Original line number Diff line number Diff line Loading @@ -30,7 +30,7 @@ define(['exports', 'vue', 'vue-resource', 'LocalDB', 'bootbox', 'moment-timezone _vue2.default.http.options.emulateHTTP = true; var WorkpackagePerson = { template: '<article class="workpackage-person">\n <div class="displayname">\n <strong>{{ person.person.displayname }}</strong>\n <a href="#" @click.prevent="handlerRemove(person)" class="link" v-if="editable && mode == \'read\'" title="Supprimer ce d\xE9clarant"><i class="icon-trash"></i></a>\n </div>\n <div class="tempsdeclare temps">\n <div v-if="editable && mode == \'edit\'">\n Heures pr\xE9vues :\n <input type="integer" v-model="durationForm" style="width: 5em" @keyup.13="handlerUpdate"/>\n <a href="#" @click.prevent="handlerUpdate" title="Appliquer la modification des heures pr\xE9vues"><i class="icon-floppy"></i></a>\n <a href="#" @click.prevent="handlerCancel" title="Annuler la modification des heures pr\xE9vues"><i class="icon-cancel-outline"></i></a>\n </div>\n <span v-else>\n <strong class="wp-hours">\n <span title="Heure(s) valid\xE9e(s)" class="wp-hour validate">{{person.validate}}</span>\n <span title="Heure(s) en cours de validation" class="wp-hour validating" v-if="person.validating > 0">{{person.validating}}</span>\n <span title="Heure(s) en conflit" class="wp-hour conflicts" v-if="person.conflicts > 0">{{person.conflicts}}</span>\n <span title="Heure(s) \xE0 valider" class="wp-hour duration"> \n / {{person.duration}}\n <a href="#" @click.prevent="handlerEdit" v-if="editable && mode == \'read\'" title="Modifier les heures pr\xE9vues"><i class="icon-pencil"></i></a>\n </span>\n </strong>\n </span>\n </div>\n </article>', template: '<article class="workpackage-person">\n <div class="displayname">\n <strong>{{ person.person.displayname }}</strong>\n <a href="#" @click.prevent="handlerRemove(person)" class="link" v-if="editable && mode == \'read\'" title="Supprimer ce d\xE9clarant"><i class="icon-trash"></i></a>\n </div>\n <div class="tempsdeclare temps">\n <div v-if="editable && mode == \'edit\'">\n Heures pr\xE9vues :\n <input type="integer" v-model="durationForm" style="width: 5em" @keyup.13="handlerUpdate"/>\n <a href="#" @click.prevent="handlerUpdate" title="Appliquer la modification des heures pr\xE9vues"><i class="icon-floppy"></i></a>\n <a href="#" @click.prevent="handlerCancel" title="Annuler la modification des heures pr\xE9vues"><i class="icon-cancel-outline"></i></a>\n </div>\n <span v-else>\n <strong class="wp-hours">\n <span title="Heure(s) saisie(s)" class="wp-hour unsend">{{person.unsend}}</span>\n <span title="Heure(s) valid\xE9e(s)" class="wp-hour validate">{{person.validate}}</span>\n <span title="Heure(s) en cours de validation" class="wp-hour validating" v-if="person.validating > 0">{{person.validating}}</span>\n <span title="Heure(s) en conflit" class="wp-hour conflicts" v-if="person.conflicts > 0">{{person.conflicts}}</span>\n <span title="Heure(s) \xE0 valider" class="wp-hour duration"> \n / {{person.duration}}\n <a href="#" @click.prevent="handlerEdit" v-if="editable && mode == \'read\'" title="Modifier les heures pr\xE9vues"><i class="icon-pencil"></i></a>\n </span>\n </strong>\n </span>\n </div>\n </article>', props: { 'person': { default: function _default() { return {}; Loading