╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ──────────────╮ │src/ui/Repo/Patches.zig│ ╰───────────────────────╯ ╭────────────────────────────────────────────╮ │433 .user_id = user_id, │ │434 .repo_id = repo_id, │ │435 .title = title, │ │436 - .tags = tags, │ │436 + .labels = labels, │ │437 .description = description, │ │438 .target_branch = target_branch,│ │439 .author = author, │ ╰────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │482 } │ │483 │ │484 // an empty listing, for the wasm / no-repo paths. │ │485 -pub fn emptyResult(aa: std.mem.Allocator, identity: []const u8, tag: []const u8, search: []const u8, selected_id: []const u8, comment_id: []const u8, comments_start: usize, theirs_picks: []const u8, view: ui.RoutablePage.PatchesView) !Self { │ │485 +pub fn emptyResult(aa: std.mem.Allocator, identity: []const u8, label: []const u8, search: []const u8, selected_id: []const u8, comment_id: []const u8, comments_start: usize, theirs_picks: []const u8, view: ui.RoutablePage.PatchesView) !Self {│ │486 return .{ │ │487 .identity = try aa.dupe(u8, identity), │ │488 .default_target_branch = "", │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │489 - .tag = try aa.dupe(u8, tag), │ │489 + .label = try aa.dupe(u8, label), │ │490 .search = if (search.len == 0) null else std.Uri.percentDecodeInPlace(try aa.dupe(u8, search)),│ │491 .selected_id = try aa.dupe(u8, selected_id), │ │492 .comment_id = try aa.dupe(u8, comment_id), │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────╮ │505 else => view, │ │506 }, │ │507 .description_page = view == .description,│ │508 - .tags = &.{}, │ │508 + .labels = &.{}, │ │509 }; │ │510 } │ │511 │ ╰──────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │530 return result; │ │531 } │ │532 │ │533 -// read one window per status of an opened repo's patches (filtered to `tag` │ │533 +// read one window per status of an opened repo's patches (filtered to `label`│ │534 // when set), ordered by creation (newest first). the window of the patch │ │535 // `selected_id` names starts at it ("" = the beginning). a git repo reads the│ │536 // event db next to it (synced from the events branch on each page build); a │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────╮ │548 repo_id_maybe: ?[evt.event_id_size]u8,│ │549 identity: []const u8, │ │550 target_branch: []const u8, │ │551 - tag: []const u8, │ │551 + label: []const u8, │ │552 search: []const u8, │ │553 selected_id: []const u8, │ │554 comment_id: []const u8, │ ╰───────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │557 view: ui.RoutablePage.PatchesView, │ │558 ) !Self { │ │559 const allowed_view: ui.RoutablePage.PatchesView = if (session.local != null and view == .drafts) .open else view; │ │560 - var empty = try emptyResult(arena.allocator(), identity, tag, search, selected_id, comment_id, comments_start, theirs_picks, allowed_view); │ │560 + var empty = try emptyResult(arena.allocator(), identity, label, search, selected_id, comment_id, comments_start, theirs_picks, allowed_view);│ │561 empty.default_target_branch = try arena.allocator().dupe(u8, target_branch); │ │562 │ │563 const aa = arena.allocator(); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │564 const DB = evt.EventDB(repo_opts.hash); │ │565 const rooted = empty.selected_id.len != 0; │ │566 - const tagged = empty.tag.len != 0; │ │566 + const labeled = empty.label.len != 0; │ │567 const drafts_window = if (admin_moment) |admin| │ │568 if (repo_id_maybe) |repo_id| │ │569 if (session.data.user_id != null and session.repos_dir != null)│ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │585 if (draft_selected and view != .edit and view != .publish and view != .remove) empty.view = .drafts;│ │586 │ │587 // an explicitly named published patch that doesn't exist is a bad url │ │588 - // (NotFound -> 404); drafts, tags, and bare routes can use the empty fallback. │ │588 + // (NotFound -> 404); drafts, labels, and bare routes can use the empty fallback. │ │589 const strict = rooted and !draft_selected; │ │590 │ │591 // a repo with no consumed events has no moment yet. │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │602 return empty; │ │603 }; │ │604 │ │605 - // the sorted sets to window, per status: the tag's sets when filtered, │ │605 + // the sorted sets to window, per status: the label's sets when filtered,│ │606 // else the top-level per-status sets. a missing set is an empty window. │ │607 var open_set: ?DB.SortedSet(.read_only) = null; │ │608 var closed_set: ?DB.SortedSet(.read_only) = null; │ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯