╭ changed ─╮ │src/ui.zig│ ╰──────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │102 }; │ │103 }, │ │104 .repo => switch (route) { │ │105 - .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_roles, .repo_repo_new, .repo_user_new, .repo_user => .{ .repo = try Repo.init(arena, session, route) }, │ │105 + .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_members, .repo_repo_new, .repo_user_new, .repo_user => .{ .repo = try Repo.init(arena, session, route) },│ │106 else => return error.UnexpectedRoute, │ │107 }, │ │108 .fork => switch (route) { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │193 repo_repo_new: Array(repo_route_max_len), │ │194 repo_user_new: Array(repo_route_max_len), │ │195 repo_settings: Array(repo_route_max_len), │ │196 - repo_roles: RepoRolesRoute, │ │196 + repo_members: RepoMembersRoute, │ │197 repo_user: struct { name: Array(repo_route_max_len), tab: UserTab = .{} },│ │198 fork_patch: ForkRoute, │ │199 fork_diff: ForkDiffRoute, │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────╮ │438 clear: bool = false, │ │439 }; │ │440 │ │441 - pub const RepoRolesRoute = struct { │ │441 + pub const RepoMembersRoute = struct { │ │442 name: Array(repo_identity_max_len), │ │443 start: usize = 0, │ │444 // the user a row's form acts on ("" = none)│ ╰─────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────╮ │445 user: Array(evt.User.name_max_len) = .{}, │ │446 // the confirmation of taking `user`'s role away │ │447 - confirm: ?Repo.Roles.Action = null, │ │447 + confirm: ?Repo.Members.Action = null, │ │448 }; │ │449 │ │450 pub fn repoSettingsRoute(identity: []const u8) ?RoutablePage {│ ╰───────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │451 return .{ .repo_settings = Array(repo_route_max_len).from(identity) orelse return null }; │ │452 } │ │453 │ │454 - pub fn repoRolesRoute(identity: []const u8, start: usize) ?RoutablePage { │ │455 - return .{ .repo_roles = .{ .name = Array(repo_identity_max_len).from(identity) orelse return null, .start = start } }; │ │454 + pub fn repoMembersRoute(identity: []const u8, start: usize) ?RoutablePage { │ │455 + return .{ .repo_members = .{ .name = Array(repo_identity_max_len).from(identity) orelse return null, .start = start } };│ │456 } │ │457 │ │458 pub fn repoUndoRoute(identity: []const u8, index: ?u64) ?RoutablePage { │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1270 .repo_repo_new => |name| try arena.allocator().print("{s}/repo/new", .{try repoUrlPrefix(arena, name.slice())}), │ │1271 .repo_user_new => |name| try arena.allocator().print("{s}/user/new", .{try repoUrlPrefix(arena, name.slice())}), │ │1272 .repo_settings => |name| try arena.allocator().print("{s}/repo/settings", .{try repoUrlPrefix(arena, name.slice())}),│ │1273 - .repo_roles => |r| blk: { │ │1273 + .repo_members => |r| blk: { │ │1274 var out: std.Io.Writer.Allocating = .init(arena.allocator()); │ │1275 - try out.writer.print("{s}/repo/roles", .{try repoUrlPrefix(arena, r.name.slice())}); │ │1275 + try out.writer.print("{s}/repo/members", .{try repoUrlPrefix(arena, r.name.slice())}); │ │1276 if (r.user.len != 0) try out.writer.print("/" ++ user_seg ++ "{s}", .{r.user.slice()}); │ │1277 if (r.start != 0) try out.writer.print("/" ++ start_seg ++ "{d}", .{r.start}); │ │1278 if (r.confirm) |action| try out.writer.print("/{s}", .{@tagName(action)}); │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────╮ │1456 .repo_discussions => |*t| t.name.slice(), │ │1457 .repo_events => |*e| e.name.slice(), │ │1458 .repo_undo => |*u| u.name.slice(), │ │1459 - .repo_roles => |*r| r.name.slice(), │ │1459 + .repo_members => |*r| r.name.slice(), │ │1460 .repo_user => |*u| u.name.slice(), │ │1461 .repo_settings, .repo_repo_new, .repo_user_new => |*name| name.slice(),│ │1462 else => null, │ ╰─────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1502 return switch (self) { │ │1503 .home_about, .home_users, .home_repo_new, .home_user_new, .home_user => .home, │ │1504 .user_repos, .user_forks, .user_repo_new, .user_user_new, .user_user => .user, │ │1505 - .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_roles, .repo_repo_new, .repo_user_new, .repo_user => .repo, │ │1505 + .repo_files, .repo_commits, .repo_diff, .repo_refs, .repo_issues, .repo_patches, .repo_discussions, .repo_events, .repo_undo, .repo_settings, .repo_members, .repo_repo_new, .repo_user_new, .repo_user => .repo,│ │1506 .fork_patch, .fork_diff, .fork_files, .fork_commits, .fork_repo_new, .fork_user_new, .fork_user => .fork, │ │1507 .not_found => .not_found, │ │1508 }; │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────╮ │1587 _ = segments.next(); │ │1588 return if (segments.next() == null) repoSettingsRoute(pair) else null;│ │1589 } │ │1590 - if (std.mem.eql(u8, word, "roles")) { │ │1590 + if (std.mem.eql(u8, word, "members")) { │ │1591 _ = segments.next(); │ │1592 const confirm_word = params.scanTail(&segments) catch return null; │ │1593 if (!params.only(&.{ .user, .start })) return null; │ ╰────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1594 - var route = repoRolesRoute(pair, params.start() orelse return null) orelse return null; │ │1595 - if (params.values.get(.user)) |user| route.repo_roles.user = Array(evt.User.name_max_len).from(user) orelse return null; │ │1594 + var route = repoMembersRoute(pair, params.start() orelse return null) orelse return null; │ │1595 + if (params.values.get(.user)) |user| route.repo_members.user = Array(evt.User.name_max_len).from(user) orelse return null;│ │1596 if (confirm_word) |value| { │ │1597 // only taking a role away asks first, and it names whose │ │1598 - const action = std.meta.stringToEnum(Repo.Roles.Action, value) orelse return null; │ │1599 - if ((action != .revoke and action != .demote) or route.repo_roles.user.len == 0) return null; │ │1600 - route.repo_roles.confirm = action; │ │1598 + const action = std.meta.stringToEnum(Repo.Members.Action, value) orelse return null; │ │1599 + if ((action != .revoke and action != .demote) or route.repo_members.user.len == 0) return null; │ │1600 + route.repo_members.confirm = action; │ │1601 } │ │1602 return route; │ │1603 } │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯