datacite/bracco

View on GitHub
app/templates/prefixes/index.hbs

Summary

Maintainability
Test Coverage
{{#if (can 'read index')}}
  <ApplicationHeader @default={{true}} />
  <div class="container-fluid">
    <IndexHeader />
    {{!-- {{#if (can "read messages" model)}} --}}
    <div class="row">
      <div class="col-md-9" style="margin-left: 10px; margin-right: 10px;">
        {{#each this.flashMessages.queue as |flash|}}
          <FlashMessage @flash={{flash}} />
        {{/each}}
      </div>
    </div>
    {{!-- {{/if}} --}}
    <div class="col-md-3">
      {{#if (can 'write prefix')}}
        <div class="panel facets">
          <div class="panel-body">
            <div class="btn-toolbar">
              <div class="btn-group btn-group-sm">
                <LinkTo
                  @route="prefixes.new"
                  class="btn btn-warning"
                  id="add-prefixes"
                >
                  <i class="fas fa-link"></i>
                  Add Prefixes
                </LinkTo>
              </div>
            </div>
          </div>
        </div>
      {{else}}
        <div class="panel panel-transparent">
          <div class="panel-body">
            <div class="edit"></div>
          </div>
        </div>
      {{/if}}
      {{#if this.model.meta.states}}
        <div class="panel facets add">
          <div class="panel-body">
            <h4>
              State
              <span class="small">
                <i class="fas fa-question-circle"></i>
                <BsTooltip @renderInPlace={{true}} @placement="top">
                  Filter prefixes by whether they have been assigned to a provider and/or repository.
                </BsTooltip>
              </span>
            </h4>
            <ul>
              {{#each this.model.meta.states as |state|}}
                <li>
                  {{#if this.model.query.state}}
                    <LinkTo @route="prefixes" @query={{hash state=null}}>
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      id="prefix-{{state.id}}"
                      @route="prefixes"
                      @query={{hash state=state.id}}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{state.title}}
                  </div>
                  <span class="number pull-right">
                    {{state.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            </ul>
          </div>
        </div>
      {{/if}}
      {{#if this.model.meta.years}}
        <div class="panel facets add">
          <div class="panel-body">
            <h4>
              Year created
            </h4>
            <ul>
              {{#each this.model.meta.years as |year|}}
                <li>
                  {{#if this.model.query.year}}
                    <LinkTo @route="prefixes" @query={{hash year=null}}>
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo @route="prefixes" @query={{hash year=year.id}}>
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{year.title}}
                  </div>
                  <span class="number pull-right">
                    {{year.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            </ul>
          </div>
        </div>
      {{/if}}
      {{#if this.model.meta.providers}}
        <div class="panel facets">
          <div class="panel-body">
            <h4>
              Member
            </h4>
            <ul>
              {{#each this.model.meta.providers as |provider|}}
                <li>
                  {{#if this.model.query.provider-id}}
                    <LinkTo @route="prefixes" @query={{hash provider-id=null}}>
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      @route="prefixes"
                      @query={{hash provider-id=provider.id}}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{provider.title}}
                  </div>
                  <span class="number pull-right">
                    {{provider.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            </ul>
          </div>
        </div>
      {{/if}}
    </div>
    <div class="col-md-9 panel-list" id="content">
      <ModelSearch
        @model={{this.model}}
        @name="Prefix"
        @sortable={{true}}
        @link="prefixes"
      />
      {{#if this.model}}
        {{#each this.model as |prefix|}}
          <div class="panel panel-transparent" data-test-prefix>
            <div class="panel-body">
              <h3 class="member">
                {{prefix.id}}
              </h3>
              <h5>
                {{pluralize prefix.providers.length 'Member' without-count=true
                }}
              </h5>
              {{#if prefix.providers}}
                {{#each prefix.providers as |provider|}}
                  <LinkTo
                    @route="providers.show.prefixes.show"
                    @models={{array provider.id prefix.id}}
                  >
                    {{provider.name}}
                  </LinkTo>
                  <br />
                {{/each}}
              {{else}}
                <span class="icon-warning">
                  No member found.
                </span>
              {{/if}}
              <h5>
                {{pluralize
                  prefix.repositories.length
                  'Repository'
                  without-count=true
                }}
              </h5>
              {{#if prefix.repositories}}
                {{#each prefix.repositories as |repository|}}
                  <LinkTo
                    @route="repositories.show.prefixes.show"
                    @models={{array repository.id prefix.id}}
                  >
                    {{repository.name}}
                  </LinkTo>
                  <br />
                {{/each}}
                {{#if this.features.useElasticsearch}}
                  <h5>
                    DOIs
                  </h5>
                  <LinkTo @route="dois" @query={{hash prefix=prefix.id}}>
                    DOIs for prefix
                    {{prefix.id}}
                  </LinkTo>
                {{/if}}
              {{else}}
                <span class="icon-warning">
                  No repository found.
                </span>
              {{/if}}
              <h5>
                Created
              </h5>
              {{format-time
                prefix.createdAt
                year='numeric'
                month='long'
                day='numeric'
                hour='numeric'
                minute='numeric'
                second='numeric'
                timeZone='UTC'
                timeZoneName='short'
                hour12=false
              }}
            </div>
          </div>
        {{/each}}
        <div class="text-center">
          {{#if (gt this.model.meta.totalPages 1)}}
            <PageNumbers @model={{this.model}} @link="prefixes" />
          {{/if}}
        </div>
      {{else}}
        <BsAlert @dismissible={{false}} @type="warning">
          No prefixes found.
        </BsAlert>
      {{/if}}
    </div>
  </div>
{{else}}
  <ApplicationHeader /><LandingPage />
{{/if}}