app/templates/providers/show/prefixes/index.hbs
<div class="row">
<div class="col-md-3">
{{#if
(and
(can 'write index' this.model)
(not-eq this.model.provider.memberType 'consortium')
(or (eq this.model.currentUser.role_id 'staff_admin') this.model.provider.hasRequiredContacts)
)
}}
<div class="panel facets">
<div class="panel-body">
<div class="btn-toolbar">
<div class="btn-group btn-group-sm">
<LinkTo
@route="providers.show.prefixes.new"
@model={{this.model.provider.id}}
class="btn btn-warning"
id="assign-prefix"
@disabled={{if (eq (await (prefixes-available)) 0) "true" ""}}
>
<i class="fas fa-link"></i>
Assign Prefix
</LinkTo>
</div>
</div>
</div>
</div>
{{else}}
<div class="panel panel-transparent">
<div class="panel-body">
{{this.link}}
{{#if (eq this.model.provider.memberType 'consortium')}}
<BsAlert @dismissible={{false}} @type="warning">
New prefixes can't be assigned from this page.
</BsAlert>
{{else if (cannot 'create prefix' this.model)}}
<BsAlert @dismissible={{false}} @type="warning">
Please ask DataCite Staff if you want to add a prefix.
</BsAlert>
{{else if (not this.model.provider.hasRequiredContacts)}}
<BsAlert @dismissible={{false}} @type="warning">
New prefixes can't be assigned unless all required contacts are assigned.
</BsAlert>
{{/if}}
</div>
</div>
{{/if}}
{{#if this.model.prefixes.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 repository.
</BsTooltip>
</span>
</h4>
<ul>
{{#each this.model.prefixes.meta.states as |state|}}
<li>
{{#if this.model.prefixes.query.state}}
<LinkTo
@route="providers.show.prefixes"
@query={{hash state=null}}
>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route="providers.show.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.prefixes.meta.years}}
<div class="panel facets add">
<div class="panel-body">
<h4>
Year created
</h4>
<ul>
{{#each this.model.prefixes.meta.years as |year|}}
<li>
{{#if this.model.prefixes.query.year}}
<LinkTo
@route="providers.show.prefixes"
@query={{hash year=null}}
>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route="providers.show.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 (eq this.model.provider.memberType 'consortium')}}
<div class="panel facets">
<div class="panel-body">
<h4>
Consortium Organizations
</h4>
<ul>
{{#each this.model.prefixes.meta.providers as |consortium-organization|}}
<li>
{{#if this.model.prefixes.query.consortium-organization-id}}
<LinkTo
@route="providers.show.prefixes"
@query={{hash consortium-organization-id=null}}
>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route="providers.show.prefixes"
@query={{hash
consortium-organization-id=consortium-organization.id
}}
>
<i class="far fa-square"></i>
</LinkTo>
{{/if}}
<div class="facet-title">
{{consortium-organization.title}}
</div>
<span class="number pull-right">
{{consortium-organization.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.prefixes}}
@name="Prefix"
@sortable={{true}}
@link="providers.show.prefixes"
/>
{{#if this.model.prefixes}}
{{#each this.model.prefixes as |providerPrefix|}}
<div class="panel panel-transparent" data-test-prefix>
<div class="panel-body">
{{#if (not-eq this.model.provider.memberType 'consortium')}}
<h3 class="work">
<LinkTo
@route="providers.show.prefixes.show"
@models={{array
providerPrefix.provider.id
providerPrefix.prefix.id
}}
>
{{providerPrefix.prefix.id}}
</LinkTo>
</h3>
{{else}}
<h3 class="member">
{{providerPrefix.prefix.id}}
</h3>
<h5>
Consortium Organization
</h5>
{{#if providerPrefix.provider}}
<LinkTo
@route="providers.show.prefixes.show"
@models={{array
providerPrefix.provider.id
providerPrefix.prefix.id
}}
>
{{providerPrefix.provider.name}}
</LinkTo>
<br />
{{else}}
<span class="icon-warning">
No member found.
</span>
{{/if}}
{{/if}}
<h5>
{{pluralize
providerPrefix.repositories.length
'Repository'
without-count=true
}}
</h5>
{{#if providerPrefix.repositories}}
{{#each providerPrefix.repositories as |repository|}}
<LinkTo
@route="repositories.show.prefixes.show"
@models={{array repository.id providerPrefix.prefix.id}}
>
{{repository.name}}
</LinkTo>
<br />
{{/each}}
{{#if this.features.useElasticsearch}}
<h5>
DOIs
</h5>
<LinkTo
@route="providers.show.dois"
@model={{providerPrefix.provider.id}}
@query={{hash prefix=providerPrefix.prefix.id}}
>
DOIs for prefix
{{providerPrefix.prefix.id}}
</LinkTo>
{{/if}}
{{else}}
<span class="icon-warning">
No repository found.
</span>
{{/if}}
<h5>
Added
</h5>
{{format-time
providerPrefix.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.prefixes.meta.totalPages 1)}}
<PageNumbers
@model={{this.model.prefixes}}
@link="providers.show.prefixes"
/>
{{/if}}
</div>
{{else}}
<BsAlert @dismissible={{false}} @type="warning">
No prefixes found.
</BsAlert>
{{/if}}
</div>
</div>