╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ──────────────╮ │src/ui/Repo/Patches.zig│ ╰───────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │133 // how many patches one window shows before a "next" link appears. │ │134 pub const page_size = 20; │ │135 │ │136 -// how many tags the tags view shows at most. │ │137 -pub const max_tags = 1000; │ │136 +// how many labels the labels view shows at most. │ │137 +pub const max_labels = 1000; │ │138 │ │139 // one patch from the repo's consumed event database, with its hex event id│ │140 // (the id lives in the event envelope, not the payload). │ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────╮ │173 // record; the chunks split the description against the merge base.│ │174 pub const Conflict = struct { │ │175 title: ?FieldConflict = null, │ │176 - tags: ?FieldConflict = null, │ │176 + labels: ?FieldConflict = null, │ │177 status: ?FieldConflict = null, │ │178 revision: ?FieldConflict = null, │ │179 target_branch: ?FieldConflict = null, │ ╰────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │204 // "owner/name", so the view can build /repo/owner/name/patches/... links. │ │205 identity: []const u8, │ │206 default_target_branch: []const u8 = "", │ │207 -// the url-encoded tag the lists are filtered to ("" = unfiltered). │ │208 -tag: []const u8, │ │207 +// the url-encoded label the lists are filtered to ("" = unfiltered). │ │208 +label: []const u8, │ │209 // the decoded query the lists are filtered to, or null when unfiltered. │ │210 search: ?[]const u8 = null, │ │211 // the hex event id of the patch its status's window is rooted at ("" = the│ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │233 // the /description page: the detail pane shows the selected patch's whole│ │234 // description behind a back link. │ │235 description_page: bool = false, │ │236 -// every tag in the repo, in sorted order, for the tags view. │ │237 -tags: []const []const u8, │ │236 +// every label in the repo, in sorted order, for the labels view. │ │237 +labels: []const []const u8, │ │238 // the on-disk repo this page was read from, for the terminal submit path │ │239 // (the web posts the new-patch form to the patch route instead). │ │240 repo_source: ?ui.RepoSource = null, │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │252 return event.status.kind(); │ │253 } │ │254 │ │255 -pub fn listRoute(identity: []const u8, status: Status, tag: []const u8, selected: []const u8) ?ui.RoutablePage { │ │256 - return ui.RoutablePage.repoPatchesRoute(identity, status, tag, selected); │ │255 +pub fn listRoute(identity: []const u8, status: Status, label: []const u8, selected: []const u8) ?ui.RoutablePage {│ │256 + return ui.RoutablePage.repoPatchesRoute(identity, status, label, selected); │ │257 } │ │258 │ │259 pub fn commitsRoute(identity: []const u8, entry: PatchWithId) !?ui.RoutablePage { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────╮ │312 allocator: std.mem.Allocator,│ │313 author: evt.CommitAuthor, │ │314 title: []const u8, │ │315 - tags: []const u8, │ │315 + labels: []const u8, │ │316 description: []const u8, │ │317 target_branch: []const u8, │ │318 source_branch: ?[]const u8, │ ╰──────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │319 ) ![evt.event_id_size * 2]u8 { │ │320 - if (!evt.Patch.fieldsValid(title, tags)) return error.InvalidFields; │ │320 + if (!evt.Patch.fieldsValid(title, labels)) return error.InvalidFields;│ │321 const io = session.io orelse return error.NotFound; │ │322 const repo_source = data.repo_source orelse return error.NotFound; │ │323 var id_bytes: [evt.event_id_size]u8 = undefined; │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │331 switch (any_repo) { │ │332 inline else => |*repo| try pch.writeBranchPatch(session.data.host_kind, repo_kind, repo.self_repo_opts, io, allocator, repo, id, .{│ │333 .title = title, │ │334 - .tags = tags, │ │334 + .labels = labels, │ │335 .description = description, │ │336 .target_branch = target_branch, │ │337 .source_branch = branch, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │353 .repo_id = repo_id, │ │354 .title = title, │ │355 .description = description, │ │356 - .tags = tags, │ │356 + .labels = labels, │ │357 .target_branch = target_branch, │ │358 .author = author, │ │359 .timestamp = @intCast(std.Io.Timestamp.now(io, .real).toSeconds()),│ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────╮ │412 author: evt.CommitAuthor, │ │413 id: []const u8, │ │414 title: []const u8, │ │415 - tags: []const u8, │ │415 + labels: []const u8, │ │416 description: []const u8, │ │417 target_branch: []const u8,│ │418 ) !void { │ ╰───────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯