AlexandrePTJ / kemai

Kimai desktop client
MIT License
94 stars 25 forks source link

[Improvement] Support for multiple remote kimai endpoints as "profiles" #46

Closed silentridge closed 2 years ago

silentridge commented 2 years ago

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.

AlexandrePTJ commented 2 years ago

I wanted to implement this multi-profiles features since the begining, so I approve. However instead of using sqlite database, you should use the existing config file with the settings class from kemai/src/core/settings.h