kimb-technologies / tasktimeterminate Goto Github PK
View Code? Open in Web Editor NEWTool to record timings for tasks and terminate work sessions — 📝⏰
License: GNU General Public License v3.0
Tool to record timings for tasks and terminate work sessions — 📝⏰
License: GNU General Public License v3.0
The merge functions is not implemented until now.
The time format always shows hours and minutes. Add Days here also. (Maybe user decideable in config.)
1./ 2. via added commandline parameters -cats A,B,C -lastcat B -lasttask Test
3. Local socket, send a string Co
and get a list of possible Tasks back Coding,Cooking,...
ToDo | Windows | macOS | Core-Support | OOP-Core-Support |
---|---|---|---|---|
1. | ✓ | ✓ | ✓ | ✓ |
2. | ✓ | ✓ | ✓ | ✓ |
3. | ✓* | ✗ | ✓ | ✓ |
^* Disabled by default (until now)
Currently TTT crunches many data "on-the-fly". Using TTT for a long time, could result in too much data and therefore long running reports. The system should store preprocessed data and cache results better.
In the end the sync protocol is also time consuming, maybe one cloud also add better caches there and implement some type of "summary access" (s.t. not all plain data has to be transmitted always).
Add more possibilities to query the stats for default time ranges
ttt s year
The last year (last 356 days)ttt s cYear
The current year (last 01.01. to today)ttt s cWeek
The current week (last monday to today)ttt s cMonth
The current month (last 01. to today)Also add to Sync-Server and Bot!
Compile the Dialog for Apple Silicone Macs running Big Sur. (If possible on an intel Mac.)
Extension showing percentages, like pie chart per category or task (if filtered by category).
See https://codegolf.stackexchange.com/questions/23350/ascii-art-pie-chart for how to draw on terminal.
Also add time of day mode, so TTT would show that one did x for 25% iff one did it for 6 hours on a 24h day.
Cache reports for ttt s, expecially when using a sync server.
Until now a client can only request a full file list from the API, maybe it should be possible to only get a list for special devices or special day ranges.
Fatal error: Uncaught Error: Undefined constant "FILTER_FLAG_HOST_REQUIRED" in /TaskTimeTerminate/core/Settings.php:315
Stack trace:
#0 /TaskTimeTerminate/core/Settings.php(348): Settings->{closure}('https://...')
#1 /TaskTimeTerminate/core/Settings.php(285): Settings->editSync('server', Object(JSONReader))
#2 /TaskTimeTerminate/core/Settings.php(29): Settings->sync(Array)
https://github.com/KIMB-technologies/TaskTimeTerminate/blob/master/core/Stats.php#L76
Reset vars isNames and iCats to false.
Multi device sync:
Each sync is either local path or a http url. Also each client needs an „unique“ name in its sync group (devices syncing their stats).
The local client will get a column and a new arguments in stats view to filter tasks per device and show the device of each task.
Windows only bug
Figure out what "sometimes" means and fix it!
Allow to give a cusotom range for ttt s range 2020-01-11 2020-01-15
.
Also allow a single day ttt s range 2020-01-11
and show a view like today
, but for given day.
Add an extension to export datasets per month in some sort of PHP-array-Syntax to use with MiLog.php
.
The TTTd.app does not find PHP 8 and therefore does not start TTT with PHP 8.
The first column has one space left of the content, all other two spaces.
Fix it at https://github.com/KIMB-technologies/TaskTimeTerminate/blob/master/core/CLIOutput.php#L61
The install.sh
uses git checkout -- .
to prevent merge conflicts, but this will also reset the config.json
.
Remove config.json from repo? Manually select files to checkout?
The command ttt r
seems to restart the autocomplete socket each time the command is executed, that should not happen.
Cause the socket's process runs fine.
If the user uses the ttt r
command and while the user types the background job opens another dialog, two dialogs are open.
Also the last (current task before dialog) will be logged twice. a) Lock the current.json or b) check for some file which indicates a opened dialog.
It would be nice to use TTT also on mobiles, a Telegram-Bot could be used. It should provide a CLI-like command system. So one could type /ttt s
instead of ttt s
.
Also a dialog to add tasks should be available, like the InTerminaDialog, but in a Telegram chat. If a task is completed the Bot should send a message, to notify the user.
The configuration should be the same as on the TTT-Desktop-Client. The Bot should run in a Docker-Container.
The Sync-Server then only provides user management system and basic stats. Also it should allow to edit tasks and manually create tasks.
Show the user that an update is available in the CLI-Interface and allow user to start update.
Use the TTT-Sync. Server to get the current version, when doing API-Requests. (TTT-Server should check from GitHub)
Add a view to cli, where one can see if the system is currently en-/ or disabled.
Also show the current task there: category, name, started, end.
ttt o,overview
TTT is enabled/ disabled
Your current Task is:
Category: xxx
Name: xxx
Started: xxx
Planned end: xxx
Worked until now: xxx
When the client is offline, all server request will fail, here the client should recognize this and wait until the client is online again.
If one is offline more than a day, it may be possible, that tasks would not be synced to the server.
Here the client should cache the tasks to sync them later.
#3 has to be finished before!
Make it possible to delete and/or edit wrong task ttt edit 2020-01-20
and get a guide through all tasks of this day.
Choose Task to edit:
<table ID; NAME; CATEGORY>
Which ID to edit:
Delete Task (y/n)?
exit;
For all upcoming, leave empty to remain unchanged.
Give new name for name 'xxx' :
List of categories:
<list ID; CATEGORY>
Give ID for new category 'xxx':
Give new duration for '' (Format 1h2m):
Also ask to delete entries when deleting category.
Until now, only DirectorySynchronisation is fully implemented.
This issue covers the rest of #7 after release of version 0.9.3b ee43a1e
Selecting stats ttt s day
will not work as expected, cause it will only load the files of the current day (same bug in week
, month
).
Filename represents 2020-10-12
midnight, so the file 2020-10-12
won't be load if until is2020-10-12 02:00
.
Fix https://github.com/KIMB-technologies/TaskTimeTerminate/blob/master/core/StatsData.php#L26 in a way, that it will allow load file 2020-10-12
for all timestamps between 2020-10-12 00:00
and 2020-10-12 23:59
for each day.
The output should recognise the Terminal size, e.g. stty size
.
The dialog should display options in the touchbar (e.g. +10m, +30m, +1h or Autocomplete Items MyCat,MyTask,1h
)
A file like the attached one throws an error, if using ttt s
or ttt s range 2021-04-24
.
If we have save a task, we use the current date to determine the file, but the task may be days old (e.g. after shutdown).
https://github.com/KIMB-technologies/TaskTimeTerminate/blob/master/core/Recorder.php#L60
When deleting the only task of a day it will not get synced. The task will remain in the sync.
The problem it the guessing of the filename done in, for empty arrays it will result in date('',NULL)
:
A full work day is 8 hours, not 6.
Fix for a
!
https://github.com/KIMB-technologies/TaskTimeTerminate/blob/master/core/Time.php#L10
And also in: https://github.com/KIMB-technologies/TaskTimeTerminateServer/blob/master/php/core/ttt/TTTTime.php#L22
Until now there are two possibilities to have a break.
One may press the button Pause
in the dialog, it will then open around one minute later again or
one may use ttt t
and disable TTT until it is enabled again.
The idea is to improve the dialog when pressing Pause
, s.t. TTT reads the input for time and opens the dialog
after the given amount of time again (and not one minute later).
The cli and the dialog seem to work with PHP 8, only the autocomplete socket does not.
The problem will be that PHP 8 uses a Socket-Object instead of a resource. So one may not use is_resource
in the code and check if the variable is a object of type Socket.
Display the sum of worked hours when displaying stats.
Create an extension providing a macOS „Today Widget“. This widget should show some daily stats and the current task.
Communication between recorder process and widget can be done by a unix socket or a file (macOS FSEvents API).
Clicking on the widget should open a terminal running „ttt s && tttt o && read && exit“.
On days where the time is changed for daylight saving, the durations of tasks are calculated wrong!
Only times, not durations are affected, also everything is logged correctly.
https://github.com/KIMB-technologies/TaskTimeTerminate/blob/master/core/InputParser.php#L50
12:00
results in 11:00
12:00
results in 13:00
see title
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.