Skip to content

Let every preference be saved at the user level or workspace level #748

Open

Description

@jeromeetienne

Problem

Heidrun does not offer a consistent choice of where preferences are saved. Saved searches for issues and pull requests are shared across every workspace. Macros already have personal macros and project macros, but the same choice is not consistently presented across preferences.

The developer should be able to keep a preference for every workspace or only for the current workspace.

General rule

Every preference supports both the user level and the workspace level. When saving or editing a preference, Heidrun clearly shows the selected level and lets the developer change that level.

Show a field named Save at with two mutually exclusive choices:

  • User level — applies to every workspace.
  • Workspace level — applies only to the current workspace.

Choosing a level saves the preference at that level. The two choices do not mean that every save writes to both levels.

Expected behavior

  • Apply the same rule to saved searches for issues, pull requests, and merge requests, to macros, and to all other preferences.
  • For individual settings, a workspace value takes priority over a user value. When no workspace value exists, use the user value.
  • For collections such as saved searches and macros, make items from both levels available in the current workspace and clearly show the level of each item.
  • When editing an existing preference, show the current level and allow the developer to change the level.
  • Preserve existing preferences when introducing the two levels.
  • Record this rule in the project rules and update the relevant glossary and user interface rules.
  • Support the same behavior for GitHub and GitLab saved searches.

Decisions to settle during implementation

  • How collection items with the same name at both levels are displayed and selected.
  • Which level is selected initially for a new preference.
  • What happens to an existing value when the developer changes its level, including conflicts at the destination level.
  • How the existing personal macros and project macros map to the user level and workspace level.

Screenshots

The first screenshot shows saved searches in the Code hosting sidebar section. The second screenshot shows the macro menu. These are the examples that prompted the general rule.

Saved searches in the Code hosting sidebar section

Macro menu with personal macros and hard-coded macros

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    simple-workSmall change with a clear scope

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions