diff --git a/README.md b/README.md index c91dcad..7690d27 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,5 @@ - Copier le dossier `ninegate-gnome-extension@cadoles.com` dans `~/.local/share/gnome-shell/extensions` - Copier `config.json.dist` vers `config.json` et y entrer votre clé API Ninebadge -- Recharger votre session Gnome (ALT + F2, entrer "r" puis appuyer sur Entrée) \ No newline at end of file +- Recharger votre session Gnome (ALT + F2, entrer "r" puis appuyer sur Entrée) +- Activer l'extension \ No newline at end of file diff --git a/ninebadge-gnome-extension@cadoles.com/extension.js b/ninebadge-gnome-extension@cadoles.com/extension.js index 36ebb5b..130f8eb 100644 --- a/ninebadge-gnome-extension@cadoles.com/extension.js +++ b/ninebadge-gnome-extension@cadoles.com/extension.js @@ -37,9 +37,13 @@ class MyPopup extends PanelMenu.Button { this.add_child(icon); - let today = new Date() - let time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds(); - + let workedItem = new PopupMenu.PopupMenuItem(''); + let workedLabel = new St.Label({text:'TEMPS DE TRAVAIL : 0:00'}); + workedItem.add(workedLabel); + + this.menu.addMenuItem(workedItem); + + let timeItem = new PopupMenu.PopupMenuItem(''); let timeLabel = new St.Label({text:'CAPITAL TOTAL : +0:00'}); timeItem.add(timeLabel); @@ -50,7 +54,7 @@ class MyPopup extends PanelMenu.Button { let ifValidateLabel = new St.Label({text:'CAPITAL SI VALIDÉ : +0:00'}); ifValidateItem.add(ifValidateLabel); - //this.menu.addMenuItem(ifValidateItem); + this.menu.addMenuItem(ifValidateItem); this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); @@ -77,7 +81,38 @@ class MyPopup extends PanelMenu.Button { started = false label.set_text('DÉBUT POINTAGE'); } - ifValidateLabel.set_text('CAPITAL SI VALIDÉ : +0:00') + let today = new Date(); + + let timers = result.timers; + let lastTimer = new Date(timers[timers.length - 1].start); + + let currentHours = parseInt(Math.abs(today - lastTimer) / (1000 * 60 * 60) % 24); + let currentMinutes = parseInt(Math.abs(today.getTime() - lastTimer.getTime()) / (1000 * 60) % 60); + + let timeday = status.timeday; + let timedayToMinutes = timeday.split(':'); + timedayToMinutes = parseInt(timedayToMinutes[0]) * 60 + parseInt(timedayToMinutes[1]); + + let workedToday = timedayToMinutes + currentHours * 60 + currentMinutes; + let workedHours = Math.floor(workedToday / 60); + let workedMinutes = workedToday % 60; + + let capitalToMinutes = result.capitaltime.replace('+', '').split(':'); + capitalToMinutes = parseInt(capitalToMinutes[0]) * 60 + parseInt(capitalToMinutes[1]); + + let workedTodayPlusCapital = workedToday + capitalToMinutes + let diff = 7*60 - workedTodayPlusCapital + let diffHours = Math.floor(diff / 60); + let diffMinutes = diff % 60; + + workedLabel.set_text('TEMPS DE TRAVAIL : '+ workedHours + ':' + String(workedMinutes).padStart(2, 0)); + + if(diff > 0) { + ifValidateLabel.set_text('CAPITAL SI VALIDÉ : -' + diffHours + ':' + String(diffMinutes).padStart(2, 0)); + } else { + ifValidateLabel.set_text('CAPITAL SI VALIDÉ : +' + diffHours + ':' + String(diffMinutes).padStart(2, 0)); + } + } catch(error) { log(error); } @@ -136,6 +171,10 @@ function get_config(property) { return json_result[property]; } +function addMinutes(date, minutes) { + return new Date(date.getTime() + minutes*60000); +} + function init() { }