alexandreptj / kemai Goto Github PK
View Code? Open in Web Editor NEWKimai desktop client
License: MIT License
Kimai desktop client
License: MIT License
From #16 :
If you could make the app remember last Customer, Project and Activity would be great.
Greetings @AlexandrePTJ:
This is an enhancement suggestion:
Would it be possible to have an option to stop the user's current Kemai recording when the screen is locked?
Would monitoring this Qt signal: applicationStateChanged make it possible?
https://doc.qt.io/qt-5/qguiapplication.html#applicationStateChanged
https://doc.qt.io/qt-5/qt.html#ApplicationState-enum
Thanks for very much for considering it!
Small feature request to cover a standard use case currently.
The use case:
This is for time management. Anyone who has X hours per week, or fortnight or month to deliver to track cumulative progress, not least on the last day of the period.
The problem of course is that work periods and commitment vary a lot.
A simple suggestion would be to make three new columns available:
Of course specific people might want more granularity by project, activity or tag. I can't think of an easy way to accommodate that off hand and hope it's not an argument against at least a few nice cumulative duration
There are more complicated ways I can imagine handling it of course but would not want to see this simple idea bogged down by complexity that could come later. One idea would of course be to have a custom cumulative column that can be created which includes a time bracket, project, activity and tag filter. User defined columns to add. Just a thought but as I said, would rather see a broad sweeping sum than none to see an end to the regular exports and spreadsheet sums I'm doing ;-)
Add system to notify when new version of kemai is available
The Version 0.7.1 did not work here with two monitors.
I can move the main window to both screens, that works. But the pull-down boxes opens every time on the wrong monitor. I did not find a solution. Have to go back to 0.6 Version, this version works without issue.
Any hints?
As a freelancer, i have several customers with their own kimai installations. I want to be able to save the connection details as "profiles" for each of these servers so i can quickly start a new work session without having to enter the credentials every time.
I have started this in a fork and come quite far. I have created this issue in order to have some tracking when the pull request is submitted. If this is the wrong workflow, please correct me.
My approach to this is by using SQLite as storage engine not only because of its good support on all platforms but also for a good abstraction layer regarding data exchange between the current application state and disk storage.
Side note; This also enables for future improvements by having a SQL based storage engine for profiles in a centralized SQL compatible storage engine, for example in enterprise conditions with managed user catalogues. This is however out of the scope of this project.
The user interface will consist of an extra view for adding and editing connections as well as a dropdown in the main tracker window for quick selection of the profile to be used. Upon changing profile, the customer, tasks and activity dropdowns are populated with data from the selected backend endpoint.
I have come very far with this PR and are now merging the current release 0.6 with fork.
It would be great to support idle detection, see here how Harvest has implemented this feature.
greetings @AlexandrePTJ & Co:
Building release 0.7.1 on an up-to-date gentoo linux machine fails with:
[ 89%] Building CXX object src/app/CMakeFiles/Kemai.dir/settingsdialog.cpp.o /usr/local/src/kemai-github-alexandre/src/app/settingsdialog.cpp: In member function ‘void kemai::app::SettingsDialog::onProfileDelButtonClicked()’: /usr/local/src/kemai-github-alexandre/src/app/settingsdialog.cpp:219:29: error: ‘class QList<kemai::core::Settings::Profile>’ has no member named ‘removeIf’; did you mean ‘removeAt’? 219 | m_settings.profiles.removeIf([profileId = item->data(Qt::UserRole).toUuid()](const Settings::Profile& profile) { return profile.id == profileId; }); | ^~~~~~~~ | removeAt gmake[2]: *** [src/app/CMakeFiles/Kemai.dir/build.make:259: src/app/CMakeFiles/Kemai.dir/settingsdialog.cpp.o] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:232: src/app/CMakeFiles/Kemai.dir/all] Error 2 gmake: *** [Makefile:156: all] Error 2
I can see that kemai checks for qt6, and falls back to qt5 if qt6 is not found, but removeIf() is listed as a function that is newly introduced in qt6.1.
Does settingsdialog.cpp need an alternative to line 219 if the user has qt5?
m_settings.profiles.removeIf([profileId = item->data(Qt::UserRole).toUuid()](const Settings::Profile& profile) { return profile.id == profileId; });
I hope you will continue supporting qt5 for a while longer!
Thanks very much
--sean
Hello Alexandre,
I'm trying to run the desktop client.
The access is successfull, but the counter is not working. I checked the log file and it seems, there is something wrong .. the cut of log below.
{"code":405,"message":"Method Not Allowed"}
[2022-09-10 10:38:35.957] [kemai] [debug] ===> [PATCH] http://fqdn/api/timesheets/0/stop
[2022-09-10 10:38:36.010] [kemai] [error] Client error: Error on request [timesheets]: Error transferring https://fqdn/api/timesheets/0/stop - server replied: Method Not Allowed
{"code":405,"message":"Method Not Allowed"}
[2022-09-10 10:38:40.919] [kemai] [debug] ===> [PATCH] http://fqdn/api/timesheets/0/stop
[2022-09-10 10:38:40.975] [kemai] [error] Client error: Error on request [timesheets]: Error transferring https://fqdn/api/timesheets/0/stop - server replied: Method Not Allowed
I'm not sure about one thing. Is the plugin "Task planning" mandatory for the desktop client. If yes, then I have to test ist with the plugin, if not .. what can be the cause.
Hi,
I try to config that App under Mac OS, but without a result yet.
Especially it would a Token and I have no Idea, where I got this.
As Host I fill in my URL to Kimai.
Sample: https://b*******l.de/timetrack/
Username: My Loginname
Token: ???
So I'm new on Kimai and I'm a bit confused... Where I get the correct details?
Kimai is running on my Server as FTP installation.
Thanks for help.
Mac OS user here. Maybe you have an idea what is wrong?
$ cmake . -B build
-- The CXX compiler identification is AppleClang 11.0.0.11000033
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The C compiler identification is AppleClang 11.0.0.11000033
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
CMake Error at src/client/CMakeLists.txt:3 (find_package):
Could not find a package configuration file provided by "Qt5" with any of
the following names:
Qt5Config.cmake
qt5-config.cmake
Add the installation prefix of "Qt5" to CMAKE_PREFIX_PATH or set "Qt5_DIR"
to a directory containing one of the above files. If "Qt5" provides a
separate development package or SDK, be sure it has been installed.
-- Configuring incomplete, errors occurred!
See also "/Users/kevin/Development/kemai/build/CMakeFiles/CMakeOutput.log".
But QT5 is installed:
$ brew search qt5
==> Formulae
pyqt5 qt5 ✔
Edit: I have never used cmake or worked with C++
How can a linux deb be made for this?
Is it possible to create an app image?
When clicking on the application in the tray, it should minimize there. Another click should restore the window.
As a fallback, the tray context menu could contain entries for either showing or hiding the window.
Add an easy way to open kimai instance in browser
When I first launched the program, it naturally failed to read the clients etc. from the API because of missing credentials. I added the credentials to settings but for the program to actually work I needed to restart it. It'd be a good idea to either notify the user of the need to restart or re-load the lists automatically after changing the credentials.
Hi,
I have recently tried to use your most excellent program on MacOS. Sadly it can not connect to my kimai instance. I've tried the same kimai instance with the recent kemai version on Windows, and the kimai offline tracker for ios and it works flawlessly. So it seems to be related to the specific macos build.
This is the error message:
Error on request [version]: SSL handshake failed
Do you have an idea how I can fix this?
When trying to launch the program in a Fedora Linux and Wayland / Sway environment, I only got the following shell output:
zeip@jameson ~ » ~/softat/Kemai.AppImage
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb.
[1] 333853 abort (core dumped) ~/softat/Kemai.AppImage
Would it be difficult to add native Wayland support for the application? I did get it to work by specifying the xcb platform:
QT_QPA_PLATFORM=xcb ~/softat/Kemai.AppImage
This, however, isn't optimal as it's then not a native Wayland application.
Just connected version 0.7.1 of the app on Windows 11 to a Kimai server running 1.26.0. Trying to create a Customer, Project or Activity does not work. After filling in all data and clicking OK, no error is shown, but the items are not created. Creating through the web UI works.
Hello @AlexandrePTJ :
I am using Kemai compiled from the master branch, and appreciate your desktop client very much!
Please consider specifying the input focus and tab order in the Add Customer, Add Project, and Add Activity dialog boxes.
Input focus defaults to the second field: Customer.
Suggested input focus: Name.
Tab order currently goes from:
Country->Timezone->Name->Currency->Budget->Time Budget
Suggested tab order (based on dialog layout):
Name->Country->Timezone->Currency->Budget->Time Budget
Input focus defaults to: Budget
Suggested input focus: Name
Tab order currently goes from:
Budget->Time Budget->Name
Suggested tab order:
Name->Budget->Time Budget
Input focus defaults to: Time Budget
Suggested input focus: Name
Tab order currently goes from:
Time Budget->Name->Budget
Suggested tab order:
Name->Budget->Time Budget
This documentation may be relevant:
Hi
We recently started using Kimai and found your app for Mac. I tried setting up but getting this error.
Error on request [version]: Error transferring http://ts.developmentlogics.com/public/api/version - server replied: Not Acceptable
How can we fix this?
thanks
Varun
I'm trying to compile Kemai 0.3.0 on Debian linux and I get:
$ cmake . -B build -DCMAKE_BUILD_TYPE=Release
-- The CXX compiler identification is GNU 8.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:13 (FetchContent_MakeAvailable):
Unknown CMake command "FetchContent_MakeAvailable".
-- Configuring incomplete, errors occurred!
See also "CMakeOutput.log".
$ cmake . -B build -DCMAKE_BUILD_TYPE=Release
CMake Error at CMakeLists.txt:13 (FetchContent_MakeAvailable):
Unknown CMake command "FetchContent_MakeAvailable".
-- Configuring incomplete, errors occurred!
See also "CMakeOutput.log".
Attached you find the CMakeOutput.log.
CMakeOutput.log
Thank you
Riccardo
Hey we are using Kimai 2 - 1.11 stable (Ayumi) and when trying to connect we get this error:
Error on request (version). Error transfering https://website.com/api/version - server replied: Not found.
I belive it was not yet updated for version 2 of Kimai?
Cheers
If I want to connect to a kimai server (even the demo instance) with https I get the following error:
Error on request [version]: TLS initialization failed
The demo is not reachable without https, but my instance is, so I could test, that this doesn't happen on plain http:
I already had this issue with older kemai versions. Nor my server, nor the demo uses self-signed certificates.
Windows 10 1909.
Sorry, for spamming the issues section. Another Idea that came into my mind. :)
Fetching the list of all projects/activities everytime new is cumbersome as so has to wait a few seconds until everything is displayed correctly and fetched from the server. It would be great to have a refresh button that loads all the values only on demand / maybe schedule some planned pulls. But for quickly switching between projects this would be pretty helpful ...
It is not possible to start the appimage on Debian 10.
$ ./Kemai-0.5.0-x86_64.AppImage
./Kemai-0.5.0-x86_64.AppImage: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_Kemai-YK7m6D/lib/libQt5Widgets.so.5)
./Kemai-0.5.0-x86_64.AppImage: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_Kemai-YK7m6D/lib/libQt5Gui.so.5)
./Kemai-0.5.0-x86_64.AppImage: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_Kemai-YK7m6D/lib/libQt5Core.so.5)
./Kemai-0.5.0-x86_64.AppImage: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_Kemai-YK7m6D/lib/libpng16.so.16)
./Kemai-0.5.0-x86_64.AppImage: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_Kemai-YK7m6D/lib/libicui18n.so.66)
./Kemai-0.5.0-x86_64.AppImage: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /tmp/.mount_Kemai-YK7m6D/lib/libicuuc.so.66)
Thank you,
Riccardo
user@kraftwerk:/mnt/chromeos/MyFiles/Downloads$ ./Kemai-0.7.1-x86_64.AppImage
./Kemai-0.7.1-x86_64.AppImage: error while loading shared libraries: libOpenGL.so.0: cannot open shared object file: No such file or directory
AppImages should be as independent as possible. Imagine running on a plain terminal-only Linux where all you will be provided with is a Wayland server and an XWayland. No additional libraries.
I wanted to update from 0.1.0 to 0.2.0 on Windows. However when I run the msi I got a message that says I have another version installed, and I have to remove the old version manually to install the new one.
Is it intentional? Most installers do this automatically.
The settings wasn't deleted, but it's just annoying.
Hi there,
A small feature request: As I use Kemai along my workday to track my working time and we also create a work report at the end of the month, I fill my tasks into the description field in parallel to my work I do.
Unfortunately, this is not reflected to be send back to the server (as far as I have seen it by now).
One possibility would be to synchronize the description field again, once the current time record is being stopped. Alternatively, a synch button could be placed next to the description field to enable the same requirement.
Reports errors messages on GUI.
Use an icon at the bottom with a shorten message. Full message may be displayed on hover.
May add log widgets.
Check for kimai's rights to ensure
I have configured Kemai for the timezone Europe/Berlin. My operating system (Debian 10 Buster) is set to the same time.
When starting the clock the UI shows 22:00:00 as starting point:
After stopping the clock the web interface start and end times do not match, so no time can be calculated:
This is the logfile of the UI client:
===> [GET] "https://kimai.my-host.hld/api/version"
===> [GET] "https://kimai.my-host.hld/api/timesheets/active"
===> [GET] "https://kimai.my-host.hld/api/customers"
===> [GET] "https://kimai.my-host.hld/api/projects?customer=1"
===> [GET] "https://kimai.my-host.hld/api/activities?project=2"
===> [GET] "https://kimai.my-host.hld/api/activities?project=1"
===> [GET] "https://kimai.my-host.hld/api/timesheets/active"
===> [GET] "https://kimai.my-host.hld/api/customers"
===> [GET] "https://kimai.my-host.hld/api/projects?customer=1"
===> [GET] "https://kimai.my-host.hld/api/activities?project=1"
===> [POST] "https://kimai.my-host.hld/api/timesheets" "{\n \"activity\": 1,\n \"begin\": \"2020-05-10T13:26:05\",\n \"description\": \"\",\n \"project\": 1\n}\n"
Add translation.
Detect language from user profile, add option for user to use detected language or another one.
Use weblate.
The following error appears and none of the settings are saved:
QIODevice::read (QFile, "/home/<user>/.config/Kemai/Kemai/settings.json"): device not open
As soon as I manually create the file, everything works fine.
OS: ArchLinux
Version: develop branch
After Connecting successfully on setting tab and showing connected to kimai 1.15.5
no customers or projects is loaded
tried run as administrator same thing
Windows 10
Token should be hidden as a password.
Add a button to display it.
Allow access to self-signed protected Kimai instance.
Remove english fake translation file.
Hi there,
first let me say that I use your Kimai client nearly daily and am glad that you made it. I have a small request or question. At the bottom of the window you have an area with "Started at" and a dropdown menu for the time. Thing is - that dropdown menu is greyed out. Is there a way to use it? Sometimes I forget to start the timer timely and have to start my activitys a bit in the past. At the moment I start my acitivity with Kemai and then have to correct the start time in my Kimai instance. I would like to get rid of that extra step and correct the start time directly in Kemai.
Hi,
the Kemai-0.7.1-x86_64.AppImage on Debian 11 shows me, for multiple instances of Kimai, on different servers:
Error on request [version]: TLS initialization failed
when testing the connection.
The server ssl certificate is valid and is not self signed.
Thank you,
Riccardo
Thanks very much for your work and time developing this program. I was wondering if you would be able to add the ability for the program to remember the last position of the active window on close? I have dual monitors so it would be great to have Kemai open on my second monitor in the place it was when I last closed it. I'm not a C++ dev so can't contribute directly but I found this which might be relatively simple to implement?: https://doc.qt.io/qt-5/restoring-geometry.html
Edit: Also, if you could make the app remember last Customer, Project and Activity would be great.
Without administrator rights, Kemai silently fails without even opening. In the event log, there is an error shown about ucrtbase.dll. If Kemai is run as Administrator, it just works fine.
We are using V 0.6 smoothly, when we update V 0.7, we can't save settings. When write a settings values and try to test, Its successful but when we close the setting page and re-open all setting erased.
System win 10-64 B
I use Kimai on Windows 10 with Docker 20.10.7 and Kimai 1.14.1 stable (Ayumi).
If I change Settings "Timetracking mode" to "[Time-clock] user can start and stop records, but not edit the times or duration",
kemai wont start Timetracking.
Docker CLI shows the follow message after pressing start button:
localhost:8001 172.17.0.1 - - [09/Aug/2021:14:48:54 +0100] "POST /api/timesheets HTTP/1.1" 400 644 "-" "Mozilla/5.0"
With default Settings:
localhost:8001 172.17.0.1 - - [09/Aug/2021:14:54:24 +0100] "POST /api/timesheets HTTP/1.1" 200 726 "-" "Mozilla/5.0"
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.