datacite/bracco

View on GitHub
app/templates/components/provider-list.hbs

Summary

Maintainability
Test Coverage
<div class="col-md-3">
  {{#if (can 'create provider')}}
    <div class="panel facets">
      <div class="panel-body">
        <div class="btn-toolbar">
          <div class="btn-group btn-group-sm">
            <LinkTo
              @route="providers.new"
              class="btn btn-warning"
              id="add-provider"
            >
              <i class="fas fa-plus"></i>
              Add Member
            </LinkTo>
          </div>
        </div>
      </div>
    </div>
  {{else}}
    <div class="panel panel-transparent">
      <div class="panel-body">
        <div class="edit"></div>
      </div>
    </div>
  {{/if}}
  {{#if (or this.model.meta.years this.model.query.year)}}
    <div class="panel facets add">
      <div class="panel-body">
        <h4>
          Year joined
        </h4>
        <ul>
          {{#if this.model.meta.years}}
            {{#each this.model.meta.years as |year|}}
              <li>
                {{#if this.model.query.year}}
                  <LinkTo @route="providers" @query={{hash year=''}}>
                    <i class="far fa-check-square"></i>
                  </LinkTo>
                {{else}}
                  <LinkTo @route="providers" @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}}
          {{else}}
            <li>
              <LinkTo @route="providers" @query={{hash year=''}}>
                <i class="far fa-check-square"></i>
              </LinkTo>
              <div class="facet-title">
                {{this.model.query.year}}
              </div>
              <span class="number pull-right">
                0
              </span>
              <div class="clearfix"></div>
            </li>
          {{/if}}
        </ul>
      </div>
    </div>
  {{/if}}
  {{#if (or this.model.meta.regions this.model.query.region)}}
    <div class="panel facets">
      <div class="panel-body">
        <h4>
          Region
        </h4>
        <ul>
          {{#if this.model.meta.regions}}
            {{#each this.model.meta.regions as |region|}}
              <li>
                {{#if this.model.query.region}}
                  <LinkTo @route="providers" @query={{hash region=''}}>
                    <i class="far fa-check-square"></i>
                  </LinkTo>
                {{else}}
                  <LinkTo @route="providers" @query={{hash region=region.id}}>
                    <i class="far fa-square"></i>
                  </LinkTo>
                {{/if}}
                <div class="facet-title">
                  {{region.title}}
                </div>
                <span class="number pull-right">
                  {{region.count}}
                </span>
                <div class="clearfix"></div>
              </li>
            {{/each}}
          {{else}}
            <li>
              <LinkTo @route="providers" @query={{hash region=''}}>
                <i class="far fa-check-square"></i>
              </LinkTo>
              <div class="facet-title">
                {{this.model.query.region}}
              </div>
              <span class="number pull-right">
                0
              </span>
              <div class="clearfix"></div>
            </li>
          {{/if}}
        </ul>
      </div>
    </div>
  {{/if}}
  {{#if (can 'create provider')}}
    {{#if (or this.model.meta.memberTypes this.model.query.member-type)}}
      <div class="panel facets">
        <div class="panel-body">
          <h4>
            Member Type
          </h4>
          <ul>
            {{#if this.model.meta.memberTypes}}
              {{#each this.model.meta.memberTypes as |memberType|}}
                <li>
                  {{#if this.model.query.member-type}}
                    <LinkTo @route="providers" @query={{hash member-type=''}}>
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      @route="providers"
                      @query={{hash member-type=memberType.id}}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{memberType.title}}
                  </div>
                  <span class="number pull-right">
                    {{memberType.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            {{else}}
              <li>
                <LinkTo @route="providers" @query={{hash member-type=''}}>
                  <i class="far fa-check-square"></i>
                </LinkTo>
                <div class="facet-title">
                  {{this.model.query.member-type}}
                </div>
                <span class="number pull-right">
                  0
                </span>
                <div class="clearfix"></div>
              </li>
            {{/if}}
          </ul>
        </div>
      </div>
    {{/if}}
    {{#if (or this.model.meta.nonProfitStatuses this.model.query.non-profit-status)}}
      <div class="panel facets">
        <div class="panel-body">
          <h4>
            Tax Status
          </h4>
          <ul>
            {{#if this.model.meta.nonProfitStatuses}}
              {{#each this.model.meta.nonProfitStatuses as |nonProfitStatus|}}
                <li>
                  {{#if this.model.query.non-profit-status}}
                    <LinkTo
                      @route="providers"
                      @query={{hash non-profit-status=''}}
                    >
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      @route="providers"
                      @query={{hash non-profit-status=nonProfitStatus.id}}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{nonProfitStatus.title}}
                  </div>
                  <span class="number pull-right">
                    {{nonProfitStatus.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            {{else}}
              <li>
                <LinkTo @route="providers" @query={{hash non-profit-status=''}}>
                  <i class="far fa-check-square"></i>
                </LinkTo>
                <div class="facet-title">
                  {{this.model.query.non-profit-status}}
                </div>
                <span class="number pull-right">
                  0
                </span>
                <div class="clearfix"></div>
              </li>
            {{/if}}
          </ul>
        </div>
      </div>
    {{/if}}
    {{#if (or this.model.meta.organizationTypes this.model.query.organization-type)}}
      <div class="panel facets">
        <div class="panel-body">
          <h4>
            Organization Type
          </h4>
          <ul>
            {{#if this.model.meta.organizationTypes}}
              {{#each this.model.meta.organizationTypes as |organizationType|}}
                <li>
                  {{#if this.model.query.organization-type}}
                    <LinkTo
                      @route="providers"
                      @query={{hash organization-type=''}}
                    >
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      @route="providers"
                      @query={{hash organization-type=organizationType.id}}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{organizationType.title}}
                  </div>
                  <span class="number pull-right">
                    {{organizationType.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            {{else}}
              <li>
                <LinkTo @route="providers" @query={{hash organization-type=''}}>
                  <i class="far fa-check-square"></i>
                </LinkTo>
                <div class="facet-title">
                  {{this.model.query.organization-type}}
                </div>
                <span class="number pull-right">
                  0
                </span>
                <div class="clearfix"></div>
              </li>
            {{/if}}
          </ul>
        </div>
      </div>
    {{/if}}
    {{#if (or this.model.meta.focusAreas this.model.query.focus-area)}}
      <div class="panel facets">
        <div class="panel-body">
          <h4>
            Focus Area
          </h4>
          <ul>
            {{#if this.model.meta.focusAreas}}
              {{#each this.model.meta.focusAreas as |focusArea|}}
                <li>
                  {{#if this.model.query.focus-area}}
                    <LinkTo @route="providers" @query={{hash focus-area=''}}>
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      @route="providers"
                      @query={{hash focus-area=focusArea.id}}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{focusArea.title}}
                  </div>
                  <span class="number pull-right">
                    {{focusArea.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            {{else}}
              <li>
                <LinkTo @route="providers" @query={{hash focus-area=''}}>
                  <i class="far fa-check-square"></i>
                </LinkTo>
                <div class="facet-title">
                  {{this.model.query.focus-area}}
                </div>
                <span class="number pull-right">
                  0
                </span>
                <div class="clearfix"></div>
              </li>
            {{/if}}
          </ul>
        </div>
      </div>
    {{/if}}
    {{#if (or this.model.meta.hasRequiredContacts this.model.query.has-required-contacts)
    }}
      <div class="panel facets">
        <div class="panel-body">
          <h4>
            All Required Contacts
          </h4>
          <ul>
            {{#if this.model.meta.hasRequiredContacts}}
              {{#each this.model.meta.hasRequiredContacts as |hasRequiredContacts|}}
                <li>
                  {{#if this.model.query.has-required-contacts}}
                    <LinkTo
                      @route="providers"
                      @query={{hash has-required-contacts=''}}
                    >
                      <i class="far fa-check-square"></i>
                    </LinkTo>
                  {{else}}
                    <LinkTo
                      @route="providers"
                      @query={{hash has-required-contacts=hasRequiredContacts.id
                      }}
                    >
                      <i class="far fa-square"></i>
                    </LinkTo>
                  {{/if}}
                  <div class="facet-title">
                    {{hasRequiredContacts.title}}
                  </div>
                  <span class="number pull-right">
                    {{hasRequiredContacts.count}}
                  </span>
                  <div class="clearfix"></div>
                </li>
              {{/each}}
            {{else}}
              <li>
                <LinkTo
                  @route="providers"
                  @query={{hash has-required-contacts=''}}
                >
                  <i class="far fa-check-square"></i>
                </LinkTo>
                <div class="facet-title">
                  {{this.model.query.has-required-contacts}}
                </div>
                <span class="number pull-right">
                  0
                </span>
                <div class="clearfix"></div>
              </li>
            {{/if}}
          </ul>
        </div>
      </div>
    {{/if}}
  {{/if}}
</div>
<div class="col-md-9 panel-list" id="content">
  {{#if this.searchable}}
    <ModelSearch
      @model={{this.model}}
      @sortable={{true}}
      @name="Member"
      @link="providers"
    />
  {{/if}}
  {{#if this.model}}
    {{#each this.model as |provider|}}
      <div class="panel panel-transparent" data-test-provider>
        <div class="panel-body">
          <h3 class="work">
            <LinkTo @route="providers.show" @model={{provider.id}}>
              {{provider.displayName}}
            </LinkTo>
            {{#unless provider.isActive}}
              <span class="label label-warning-inv">
                Inactive
              </span>
            {{/unless}}
          </h3>
          <h5>
            Member ID
          </h5>
          {{provider.symbol}}
          {{#if provider.rorId}}
            <h5>
              ROR ID
            </h5>
            <a href="{{provider.rorId}}">
              {{provider.rorId}}
            </a>
          {{/if}}
          <h5>
            Member Type
          </h5>
          {{titleize (humanize (underscore provider.memberType))}}
          <h5>
            Tax Status
          </h5>
          {{titleize provider.nonProfitStatus}}
          {{#if provider.organizationType}}
            <h5>
              Organization Type
            </h5>
            {{titleize (humanize (underscore provider.organizationType))}}
          {{/if}}
          {{#if provider.focusArea}}
            <h5>
              Focus Area
            </h5>
            {{titleize (humanize (underscore provider.focusArea))}}
          {{/if}}
          {{#if (not-eq provider.memberType 'developer')}}
            {{#if (not-eq provider.memberType 'consortium_organization')}}
              <h5>
                Voting Representative
              </h5>
              <div cy-data="voting">
                {{#if provider.votingContact.email}}
                  {{format-contact provider.votingContact}}
                {{else}}
                  <span class="small icon-warning">
                    Please provide this information.
                  </span>
                {{/if}}
              </div>
            {{/if}}
            <h5>
              Service Contact
            </h5>
            <div cy-data="service">
              {{#if provider.serviceContact.email}}
                {{format-contact provider.serviceContact}}
              {{else}}
                <span class="small icon-warning">
                  Please provide this information.
                </span>
              {{/if}}
            </div>
            {{#if (not-eq provider.memberType 'consortium_organization')}}
              <h5>
                Billing Contact
              </h5>
              <div cy-data="billing">
                {{#if provider.billingContact.email}}
                  {{format-contact provider.billingContact}}
                {{else}}
                  <span class="small icon-warning">
                    Please provide this information.
                  </span>
                {{/if}}
              </div>
              <h5>
                Billing Information
              </h5>
              {{#if provider.formattedBillingInformation}}
                {{#if provider.billingContact.familyName}}
                  {{provider.billingContact.givenName}}
                  {{provider.billingContact.familyName}}
                  <br />
                {{/if}}
                {{#if provider.billingInformation.department}}
                  {{provider.billingInformation.department}}<br />
                {{/if}}
                {{#if provider.billingInformation.organization}}
                  {{provider.billingInformation.organization}}<br />
                {{else}}
                  {{provider.name}}<br />
                {{/if}}
                {{#if provider.formattedBillingInformation}}
                  {{#each provider.formattedBillingInformation as |line|}}
                    {{line}}<br />
                  {{/each}}
                {{/if}}
              {{else}}
                <span class="small icon-warning">
                  Please provide this information.
                </span>
              {{/if}}
            {{/if}}
          {{/if}}
        </div>
      </div>
    {{/each}}
    <div class="text-center">
      {{#if (gt this.model.meta.totalPages 1)}}
        <PageNumbers @model={{this.model}} @link="providers" />
      {{/if}}
    </div>
  {{else}}
    <BsAlert @dismissible={{false}} @type="warning">
      No members found.
    </BsAlert>
  {{/if}}
</div>