Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Finer Control of Default Projects #2326

Open
zeel01 opened this issue Aug 28, 2024 · 0 comments
Open

Add Finer Control of Default Projects #2326

zeel01 opened this issue Aug 28, 2024 · 0 comments

Comments

@zeel01
Copy link

zeel01 commented Aug 28, 2024

Describe the new feature

The ability to control which project is automatically selected based on a set of simple criteria rather than per integration or per exact URL.

What I imagine would be a list of URL matching patterns like *.github.com/zeel01/* or trac.mycompany.com/* that can be assigned to specific projects. Rather than relying on matching an existing project exactly, or building features around specific integrations like #264, this feature would allow for user-defined matching. This wouldn't work for every service since some don't have nice clean URLs, but it would work for many include some of the most popular ones. There are of course a wide variety of ways that the extension could identify a page, and many of these could be presented to the user in an easy to use way.

Additional options could include:

  • URL pattern matching (as above)
  • Page title pattern matching
  • Specific CSS selector matching
    • Element text content pattern matching
    • Element style matching (is it red or blue?)
  • Full regular expression matching

With just a handful of matching options such as these, even non-technical users could fairly easily configure the extension for most integrations to function as their needs demand.

How does this help you?

At the moment there's a lot of extra user input required after starting a timer even with an integration, because most of the time the project selection isn't going to really make sense. For ticketing/issue systems like Github, Gitlab, Trac, Jira, etc you are highly unlikely to create a "project" in Toggl for every ticket, rather certain tickets might belong to certain projects, or might just belong to one "Tickets" project that belongs to a specific client. Rather than setting one top-level default for a service, or the opaque remembering of the last project used on a particular page, this feature would allow a highly flexible means of identifying pages and assigning them to the correct project thus reducing the need for user input.

A few examples:

  • I have a default project for my day job, that just ensures that miscellaneous tasks are assigned to the correct client. For integrations like Outlook this is the task I would use. For this the integration-specific option is fine.
  • My company has a Github organization, if I start a tracker from there I want the time tracked for the company. With the URL based matching, this would be trivial for me to configure.
  • I have a personal Github account, if I start tracking from a repo I own, I want the default to be a different project which is assigned to the client "personal" in my Toggl account. Again with URL matches, trivial.
  • I have certain personal repos that I track time for individually, with a more specific pattern I could match to those repos.
  • My company has a Trac ticketing system. The text in .trac-type a would indicate the appropriate project to assign a time entry to.

If we couldn't add this feature, is there a compromise you can think of?

The most compromised version of this feature would be only to support URL matching, or even only support URL prefix/suffix rather than patterns. I don't think there is a more minimal version of this feature.

However, I believe I can achieve my goals by editing the relevant integrations myself. But that would be a lot more work to configure and debug, and to modify in the future, compared to this proposal. And that's only an accessible option because I'm a developer, most users will not be able to do this.

Edit: Or not, looks like that feature is no longer supported #2187 #2245

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant