docbrown/app/components/admin/users/tools/organizations_component.html.erb
rhymes fc01a93326
Admin Member view: add Tools::HeaderComponent to reduce duplication (#14558)
* This does not work

* Revert "This does not work"

This reverts commit b2292e61fb10faa6051b009214e732a9927c7746.

* Tried with a partial, works

* Improved with component
2021-08-24 15:08:48 +02:00

84 lines
3.6 KiB
Text

<section
class="crayons-card p-3 js-component"
data-controller="users--tools--ajax"
data-action="ajax:success@document->users--tools--ajax#success ajax:error@document->users--tools--ajax#error">
<%= render Admin::Users::Tools::HeaderComponent.new(title: "Organizations", user: @user) %>
<%# Add new org membership %>
<%= form_with model: [:admin, OrganizationMembership.new],
remote: true,
class: "my-3",
id: "add-membership" do |f| %>
<%= f.hidden_field :user_id, value: @user.id %>
<fieldset>
<legend class="fw-medium mb-3">Add <%= @user.name %> to a new organization</legend>
<div class="crayons-field form-group w-50">
<%= f.label :organization_id, "Organization ID", class: "crayons-field__label" %>
<%= f.number_field :organization_id, class: "crayons-textfield" %>
</div>
<div class="crayons-field form-group w-50">
<%= f.label :type_of_user, "Membership Level", class: "crayons-field__label", id: "membership-add" %>
<%= select_tag "organization_membership[type_of_user]",
options_for_select(@memberships_for_select, "Member"),
id: nil,
class: "crayons-select",
"aria-label": "Membership level" %>
</div>
<%= f.submit "Add",
class: "crayons-btn",
data: { disable_with: "Adding..." } %>
</fieldset>
<% end -%>
<%# Manage existing memberships %>
<% if @memberships.present? %>
<article class="mt-5">
<details>
<summary class="fw-medium">Manage memberships</summary>
<ul class="list-none">
<% @memberships.each do |membership, index| %>
<li class="py-3 pl-3 <%= index == @memberships.size - 1 ? "border-b-0" : "border-b-1" %> border-l-0 border-t-0 border-r-0 border-solid border-base-50">
<div class="flex justify-between">
<a href="<%= membership.organization.path %>" target="_blank" rel="noopener" class="inline-block">
<h4><%= membership.organization.name %></h4>
</a>
<%= button_to "Remove from organization",
admin_organization_membership_path(membership),
method: :delete,
remote: true,
class: "crayons-btn crayons-btn--danger",
data: { confirm: "Are you sure?" } %>
</div>
<%= form_with model: [:admin, membership],
method: :patch,
remote: true,
id: "update-permissions-#{index}" do |f| %>
<div class="crayons-field form-group w-50">
<%= f.label :type_of_user, "Membership Level", class: "crayons-field__label", id: "update-permissions-label-#{index}" %>
<%= select_tag "organization_membership[type_of_user]",
options_for_select(@memberships_for_select, membership.type_of_user),
id: nil,
class: "crayons-select",
"aria-label": "Membership level for #{membership.organization.name}" %>
</div>
<%= f.submit "Update Permissions",
class: "crayons-btn",
data: { disable_with: "Updating..." } %>
<% end %>
</li>
<% end %>
</ul>
</details>
</article>
<% end %>
</section>