{{#if isAuthorized }}
  {{title 'Policies'}}
{{else}}
  {{title 'Access Controls'}}
{{/if}}

{{#let (selectable-key-values
    (array "Name:asc" "A to Z")
    (array "Name:desc" "Z to A")
      selected=sortBy
  )
  as |sort|
}}

<AppView
  @class="policy list"
  @loading={{isLoading}}
  @authorized={{isAuthorized}}
  @enabled={{isEnabled}}
  >
  <BlockSlot @name="notification" as |status type|>
    {{partial 'dc/acls/policies/notifications'}}
  </BlockSlot>
  <BlockSlot @name="header">
    <h1>
      Access Controls
    </h1>
  </BlockSlot>
  <BlockSlot @name="nav">
{{#if isAuthorized }}
    {{partial 'dc/acls/nav'}}
{{/if}}
  </BlockSlot>
  <BlockSlot @name="disabled">
    {{partial 'dc/acls/disabled'}}
  </BlockSlot>
  <BlockSlot @name="authorization">
    {{partial 'dc/acls/authorization'}}
  </BlockSlot>
  <BlockSlot @name="actions">
      <a data-test-create href="{{href-to 'dc.acls.policies.create'}}" class="type-create">Create</a>
  </BlockSlot>
  <BlockSlot @name="toolbar">
  {{#if (gt items.length 0) }}
    <SearchBar
      @value={{search}}
      @onsearch={{action (mut search) value="target.value"}}
      @secondary="sort"
      @selected={{sort.selected}}
      @options={{sort.items}}
      @onchange={{action (mut sortBy) value='target.selected.key'}}
    />
  {{/if}}
  </BlockSlot>
  <BlockSlot @name="content">
  {{#let (sort-by (comparator 'policy' sort.selected.key) items) as |sorted|}}
    <ChangeableSet @dispatcher={{searchable 'policy' sorted}} @terms={{search}}>
      <BlockSlot @name="set" as |filtered|>
        <ConsulPolicyList
          @items={{filtered}}
          @ondelete={{action send 'delete'}}
        />
      </BlockSlot>
      <BlockSlot @name="empty">
        <EmptyState @allowLogin={{true}}>
          <BlockSlot @name="header">
            <h2>
              {{#if (gt items.length 0)}}
                No policies found
              {{else}}
                Welcome to Policies
              {{/if}}
            </h2>
          </BlockSlot>
          <BlockSlot @name="body">
            <p>
              {{#if (gt items.length 0)}}
                No policies where found matching that search, or you may not have access to view the policies you are searching for.
              {{else}}
                There don't seem to be any policies, or you may not have access to view policies yet.
              {{/if}}
            </p>
          </BlockSlot>
          <BlockSlot @name="actions">
            <li class="docs-link">
              <a href="{{env 'CONSUL_DOCS_URL'}}/commands/acl/policy" rel="noopener noreferrer" target="_blank">Documentation on policies</a>
            </li>
            <li class="learn-link">
              <a href="{{env 'CONSUL_LEARN_URL'}}/consul/security-networking/managing-acl-policies" rel="noopener noreferrer" target="_blank">Read the guide</a>
            </li>
          </BlockSlot>
        </EmptyState>
      </BlockSlot>
    </ChangeableSet>
  {{/let}}
  </BlockSlot>
</AppView>
{{/let}}