Commit Graph
184 Commits
Author SHA1 Message Date
Rūdolfs Ošiņš 5cd098187c Rename "project.tree" to "project.source"
This aligns better with the component and tab naming.

Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-08-08 15:35:27 +02:00
Rūdolfs Ošiņš 3cc485dce2 Flatten ProjectLoadedRoute type
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-08-08 15:24:26 +02:00
Rūdolfs Ošiņš d39fee871d Move project view into App.svelte
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-08-08 14:50:58 +02:00
Rūdolfs Ošiņš 723509a267 Extract top-level menu into a layout
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-08-08 14:40:45 +02:00
Rūdolfs Ošiņš 0146ca00b5 Update the UI to work with the new COB schema
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-08-08 10:53:49 +02:00
Thomas Scholtes cbe1fa5c9a Simplify and align project view props
We simplify the properties of the project views `Issue`, `Issues`,
`NewIssue`, and `Patch`. This aligns them with other project views and
makes the view selection consistent.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-31 17:53:30 +02:00
Thomas Scholtes 8acb2410d5 Remove redundant project route parameters
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-31 17:33:43 +02:00
Sebastian Martinez 4525771264 Use /nodes/ in URL instead of /seeds/
We still allow already published URLs with `/seeds/` in them to be
resolved.

Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-31 16:58:45 +02:00
Sebastian Martinez adc0660e87 Make seed hostname reactive in seed project listing
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-07-31 14:05:53 +02:00
Sebastian Martinez f4bf5b9c6a Sort projects in seed view by most recent activity
Uses the projects activity, fetched from `/projects/${id}/activity`
which is an array of commit timestamps.
So could suffer from some errors if commits with non current timestamps
are being used.

Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-07-31 13:05:56 +02:00
Rūdolfs OšiņšandThomas Scholtes 391f188b69 Fix navigating to history when a file is selected
Co-authored-by: Thomas Scholtes <geigerzaehler@axiom.fm>
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-26 14:17:18 +02:00
Rūdolfs Ošiņš 653bacd8d0 Replace deprecated substr with substring
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-25 17:20:38 +02:00
Rūdolfs Ošiņš 69d2f9bff9 Make issues/patches tab counters reactive
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-25 15:47:06 +02:00
Thomas Scholtes 8f4b788a65 Simplify SourceBrowsingHeader props
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-25 11:56:33 +02:00
Thomas Scholtes afbdf2f041 Introduce TreeView and HistoryView
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-25 11:56:33 +02:00
Rūdolfs Ošiņš 251d97cdde Load issue list in project router
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-25 11:33:52 +02:00
Rūdolfs Ošiņš fbe133cd95 Load patch list in project router
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-25 11:32:28 +02:00
Thomas Scholtes 1b6bed73a6 Lift branch/peer selector data into main views
We prepare the data for `PeerSelector` and `BranchSelector` in the
`History` and `Browser` instead of `SourceBrowsingHeader`. This makes
the component APIs overall simpler and allows us to remove
`LoadedSourceBrowsingView`.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-24 14:25:53 +02:00
Thomas Scholtes 9c1392598a Simplify BranchSelector
There’s no need for the outer `if branches.length > 0`. We already
disable the dropdown unless `branches.length > 1`.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-24 14:10:26 +02:00
Thomas Scholtes 29e3295f45 Represent issue status filter in route
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-24 12:15:35 +02:00
Thomas Scholtes dd7f3a850e Simplify project route loading
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-24 12:15:35 +02:00
Thomas Scholtes b76db5dfa3 Remove source browsing header from commit view
For a single commit view the source browsing header (peer selector,
branch selector, commits, contributor count) does not contain meaningful
information. We remove the header and simply show the commit.

See #938.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-20 17:14:12 +02:00
Thomas Scholtes c44cd5771b Fix movement of diff text when lines are selected
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-20 15:56:05 +02:00
xphoniex 5ee8c8281b Make diff line selectable and shareable
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-07-20 11:37:57 +02:00
Thomas Scholtes aae50a2fda Use structured routing for patch views
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-19 15:14:53 +02:00
Thomas Scholtes fdd074fd13 Simplify BranchSelector and PeerSelector props
We greatly reduce the numbers of properties that need to be passed to
`BranchSelector` and `PeerSelector` by constructing routes in
`SourceBrowsingHeader`. We’ll lift the logic out of
`SourceBrowsingHeader` in a follow-up.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-19 15:00:39 +02:00
Sebastian Martinez e4a051b17a Add auto linking in Markdown components
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-07-19 09:07:01 +02:00
Thomas Scholtes fabd98fb57 Extract tree and history route loading
The `loadProjectRoute` function has become too big too understand. To
address this, we extract and separate the loading for the `tree` and
`history` views. This also gives us the opportunity to simplify some of
the code and parallelize more HTTP requests.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-17 15:48:37 +02:00
Thomas Scholtes 283b665b31 Switch to flat project route type
We switch to a project route type that is just a union. This has the
following advantages

* It’s much easier to construct project routes. Fewer properties are
  needed and there are no nested objects.
* We eliminate the implicitly shared properties `path`, `peer`,
  `revision` and `route` which only belonged to the tree route.
* The structure of the project route is more regular and thus easier to
  understand.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-17 11:27:57 +02:00
Rūdolfs Ošiņš b797c6a3f7 Reverse revision commit ordering
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-14 09:26:34 +02:00
Rūdolfs Ošiņš cdd0b9c7b6 Set page title in the router
This improves UX making it easier to find the tab that I'm looking for
when I have multiple tabs open.

Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-14 08:38:15 +02:00
Thomas Scholtes d0ee6e42e6 Simplify ProjectLoadedView
We simplify some of the choices for `ProjectLoadedView` by reducing the
nesting and removing redundant properties.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-12 15:59:46 +02:00
Sebastian Martinez 205fc814bc Bring reactions to comments and issues
Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-07-12 15:36:02 +02:00
Thomas Scholtes d0a280be02 Simplify project route resolving
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-12 15:24:06 +02:00
Thomas Scholtes 9dd3af0f9f Cleanup shared peer and revision props for project route
We move the `peer` and `revision` properties from the shared
`ProjectLoadedParams` interface to the `tree` and `history` subroutes
where they are needed.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-12 15:15:39 +02:00
xphoniex 08a5a329c3 Use correct tree hash for file path on diff page
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-07-12 14:43:50 +02:00
xphoniex 5db94a962d Show "Empty file" when diff is plain without hunks
Signed-off-by: xphoniex <dj.2dixx@gmail.com>
2023-07-12 14:16:54 +02:00
Thomas Scholtes 829532fe94 Decouple project route types from loaded types
We remove the requirement that `LoadedSourceBrowsingView` needs to be
assignable to `ProjectParams["view"]`. This decouples `ProjectRoute` and
`ProjectLoadedRoute` and lets us modify them independently.

I did not use a common `routeParamsView` function because I prefer the
flexibility of being able to modify them independently while this area
of code changes a lot.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-11 14:22:41 +02:00
Thomas Scholtes f09e3f6edf Remove redundant selectedCommit route property
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-11 14:22:41 +02:00
Sebastian Martinez 9294e23ea4 Update patch review schemas
To address changes to patch code review,
implemented in Heartwood in commit 45e87a6.

Signed-off-by: Sebastian Martinez <me@sebastinez.dev>
2023-07-11 13:59:23 +02:00
Thomas Scholtes bb5f6613e7 Improve resource separation in route URL building
We refactor the code that builds a URL from a project route so that it
is clearer that only the `tree` and `history` resource have some
complicated logic. We also eliminate the use of the shared `suffix`
variable. We now build the URL left-to-right.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-11 12:04:17 +02:00
Thomas Scholtes a7f267932d Stop handling URL hash through routing
We stop handling the URL hash through the routing system. Hashes are
local to the current view and can be handled by the shown components.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-10 15:15:22 +02:00
Rūdolfs Ošiņš 74fa05cf26 Rewrite markdown link navigation
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-09 15:17:43 +02:00
Rūdolfs Ošiņš cb52e96542 Use generic routing Link component everywhere
This way we can get rid of the project browsing specific ProjectLink
component and simplify the router types.

Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-09 15:05:18 +02:00
Thomas Scholtes f3e5b47124 Don’t replace path on internal navigation
We don’t replace the path when we navigate internally. This means we
keep the hash part of the URL even if it is not part of the route and we
can remove the workaround for that.

This also means that we keep the original URL if the parsed route would
result in a different URL. This change is visible through a slight
adjustments in the tests.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-09 14:46:26 +02:00
Thomas Scholtes 2386b7c154 Move project route to path code into project router module
Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-09 13:34:11 +02:00
Thomas Scholtes 092f8ad774 Don’t leave line selected when switching blobs
Fixes #906

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-07 07:41:51 +02:00
Thomas Scholtes d94b78a784 Simplify branch loading in project route
* Don’t load branches in `commits` view. We the branch selector is not
  enabled there.
* Don’t silently swallow errors when fetching branches. Let the route
  loading mechanism handle errors.
* Don’t use the default branch as the fallback for `branches`. They are
  allowed to be empty and the empty case is handled properly now.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-05 17:06:42 +02:00
Thomas Scholtes db778f97b1 Remove unnecessary logic in BranchSelector
We remove logic used in the `BranchSelector` component. Instead we
restructure the component properties and rely on the `Browser`,
`History` and `Commit` components to pass values that result in the same
behavior.

Signed-off-by: Thomas Scholtes <geigerzaehler@axiom.fm>
2023-07-05 17:06:39 +02:00
Rūdolfs Ošiņš 44e55415d4 Slim down Project header props
Signed-off-by: Rūdolfs Ošiņš <rudolfs@osins.org>
2023-07-05 14:07:05 +02:00