1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require "pro_tacts/admin/group_label"
require "pro_tacts/admin/member_picker"
module ProTacts
module Admin
# GET /groups/:id/members — the picker (Admin::MemberPicker) over
# a group that exists, its Save moving only what was toggled.
class GroupsMembers < MemberPicker
# @rbs @group: Group
#: (group: Group, contacts: Array[ListedContact], login: String) -> void
def initialize(group:, contacts:, login:)
@group = group
super(contacts:, login:)
end
private
#: () -> String
def title = "Members of #{@group.label}"
#: () -> String
def action = "/groups/#{@group.id}/members"
#: () -> [String, (String | Phlex::HTML)]
def back = ["/groups/#{@group.id}", GroupLabel.new(group: @group)]
#: () -> String
def submit = "Save"
#: () -> Array[String]
def ticked = @group.members
#: () -> Array[String]
def was = @group.members
end
end
end