hummingbird-me/kitsu-web

View on GitHub
app/templates/components/groups/leaders/leader-list.hbs

Summary

Maintainability
Test Coverage
<div class="leader-chat--header">
  <h6>{{t "groups.leaders.list.header"}}</h6>
</div>
<div class="leader-table-wrapper">
  <table class="leader-table">
    <tbody>
      {{#if getLeadersTask.isRunning}}
        <div class="text-xs-center m-t-2">
          {{loading-spinner size="large"}}
        </div>
      {{else}}
        {{#infinite-pagination onPagination=(action "onPagination")}}
          {{#each (reject-by "rank" "pleb" leaders) as |leader|}}
            {{groups/leaders/leader-list-user
              leader=leader
              isManaging=isManaging
              tagName="tr"}}
          {{/each}}
        {{/infinite-pagination}}
      {{/if}}
    </tbody>
  </table>
</div>

<div class="leader-chat--footer add-leader">
  {{#if isManaging}}
    {{#power-select
      selected=userToAdd
      allowClear=true
      search=(perform searchUsersTask)
      onchange=(action (mut userToAdd))
      placeholder=(t "groups.leaders.list.add-placeholder")
      triggerClass="leader-input"
      as |user|
    }}
      <strong>{{user.name}}</strong>
    {{/power-select}}

    <button class="btn btn-primary"
      disabled={{unless canAdd "disabled"}}
      onclick={{perform findGroupMemberTask}}>
      {{#if findGroupMemberTask.isRunning}}
        {{loading-spinner size="small"}}
      {{else}}
        {{t "groups.leaders.list.add-btn"}}
      {{/if}}
    </button>
  {{else}}
    {{#unless (and session.hasUser (can "view dashboard for group" membership=membership))}}
      {{#if membership}}
        <button class="btn btn-primary message-leaders" {{action "openTicketModal"}}>
          {{t "groups.leaders.list.message-btn"}}
        </button>
      {{else}}
        {{groups/member-button class="w-100" group=group membership=membership}}
      {{/if}}
    {{else}}
      <div class="text-xs-center font-italic w-100">
        {{t "groups.leaders.list.message-leader"}}
      </div>
    {{/unless}}
  {{/if}}
</div>

{{#if permissionsModal}}
  {{to-elsewhere named="modal" send=(component "groups/dashboard/leaders/leader-permissions-modal"
    leader=foundMember
    onSave=(action "addNewMember" foundMember)
    onClose=(toggle-action "permissionsModal" this)
  )}}
{{/if}}

{{#if ticketModal}}
  {{to-elsewhere named="modal" send=(component "groups/tickets/ticket-conversation"
    ticket=newTicket
    isPersonalTicket=true
    isNewTicket=true
    onCreate=(action onTicketCreated)
    onClose=(toggle-action "ticketModal" this)
  )}}
{{/if}}