app/templates/components/repository-list.hbs
<div class="row">
<div data-test-left-sidebar class="col-md-3">
{{#if
(and
(can 'create repository' this.model)
(eq this.link 'providers.show.repositories')
(not-eq this.model.provider.memberType 'consortium')
(eq this.hasRequiredContacts true)
)
}}
{{#if
(eq (await (prefixes-available this.model.provider.id)) 0)
}}
<div class="panel panel-transparent">
<div class="panel-body" cy-data="alert">
<BsAlert @dismissible={{false}} @type="warning">
Contact Support to get more prefixes for new repositories.
</BsAlert>
</div>
</div>
{{/if}}
<div class="panel facets">
<div class="panel-body">
<div class="btn-toolbar">
<div class="btn-group btn-group-sm">
<LinkTo
@route="providers.show.repositories.new"
@model={{this.model.provider.id}}
class="btn btn-warning"
id="add-repository"
@disabled={{if (eq (await (prefixes-available this.model.provider.id)) 0) "true" ""}}
>
<i class="fas fa-plus"></i>
Add Repository
</LinkTo>
</div>
</div>
</div>
</div>
{{else}}
<div class="panel panel-transparent">
<div class="panel-body" cy-data="alert">
{{#if
(or
(not-eq this.link 'providers.show.repositories')
(eq this.model.provider.memberType 'consortium')
)
}}
<BsAlert @dismissible={{false}} @type="warning">
New repositories can't be created from this page.
</BsAlert>
{{else if (cannot 'create repository' this.model)}}
<BsAlert @dismissible={{false}} @type="warning">
New repositories can't be created unless the user has the correct
permissions.
</BsAlert>
{{else if (not-eq this.hasRequiredContacts true)}}
<BsAlert @dismissible={{false}} @type="warning">
New repositories can't be created because you have not provided the
required
{{if
(eq this.model.provider.memberType 'consortium_organization')
'service contact'
'billing, service and voting contacts'
}}
for your organization. Please
<LinkTo
@route="providers.show.contacts.new"
@model={{this.model.provider.id}}
id="add-contact"
>
add at least one contact.
</LinkTo>
</BsAlert>
<BsAlert @dismissible={{false}} @type="warning">
After adding contacts, please assign roles in the
<LinkTo
@route="providers.show.edit"
@model={{this.model.provider.id}}
id="edit-provider"
>
{{if
(eq this.model.provider.memberType 'consortium_organization')
'Consortium Organization'
'Member'
}}
Settings.
</LinkTo>
</BsAlert>
{{/if}}
</div>
</div>
{{/if}}
{{#if (or this.model.repositories.meta.years this.model.repositories.query.year)}}
<div class="panel facets add">
<div class="panel-body">
<h4>
Year joined
</h4>
<ul>
{{#if this.model.repositories.meta.years}}
{{#each this.model.repositories.meta.years as |year|}}
<li>
{{#if this.model.repositories.query.year}}
<LinkTo @route={{this.link}} @query={{hash year=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo @route={{this.link}} @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="repositories" @query={{hash year=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
<div class="facet-title">
{{this.model.repositories.query.year}}
</div>
<span class="number pull-right">
0
</span>
<div class="clearfix"></div>
</li>
{{/if}}
</ul>
</div>
</div>
{{/if}}
{{#if
(and
(eq this.link 'repositories')
(or
this.model.repositories.meta.providers this.model.repositories.query.provider-id
)
)
}}
<div class="panel facets">
<div class="panel-body">
<h4>
Provider
</h4>
<ul>
{{#if this.model.repositories.meta.providers}}
{{#each this.model.repositories.meta.providers as |provider|}}
<li>
{{#if this.model.repositories.query.provider-id}}
<LinkTo @route={{this.link}} @query={{hash provider-id=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route={{this.link}}
@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}}
{{else}}
<li>
<LinkTo @route={{this.link}} @query={{hash provider=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
<div class="facet-title">
{{titleize this.model.repositories.query.provider}}
</div>
<span class="number pull-right">
0
</span>
<div class="clearfix"></div>
</li>
{{/if}}
</ul>
</div>
</div>
{{/if}}
{{#if
(or
this.model.repositories.meta.clientTypes this.model.repositories.query.client-type
)
}}
<div class="panel facets">
<div class="panel-body">
<h4>
Type
</h4>
<ul>
{{#if this.model.repositories.meta.clientTypes}}
{{#each this.model.repositories.meta.clientTypes as |clientType|}}
<li>
{{#if this.model.repositories.query.client-type}}
<LinkTo @route={{this.link}} @query={{hash client-type=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route={{this.link}}
@query={{hash client-type=clientType.id}}
>
<i class="far fa-square"></i>
</LinkTo>
{{/if}}
<div class="facet-title">
{{clientType.title}}
</div>
<span class="number pull-right">
{{clientType.count}}
</span>
<div class="clearfix"></div>
</li>
{{/each}}
{{else}}
<li>
<LinkTo @route={{this.link}} @query={{hash client-type=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
<div class="facet-title">
{{titleize this.model.repositories.query.client-type}}
</div>
<span class="number pull-right">
0
</span>
<div class="clearfix"></div>
</li>
{{/if}}
</ul>
</div>
</div>
{{/if}}
{{#if
(or
this.model.repositories.meta.repositoryTypes
this.model.repositories.query.repository-type
)
}}
<div class="panel facets">
<div class="panel-body">
<h4>
Repository Type
</h4>
<ul>
{{#if this.model.repositories.meta.repositoryTypes}}
{{#each
this.model.repositories.meta.repositoryTypes as |repositoryType|
}}
<li>
{{#if this.model.repositories.query.repository-type}}
<LinkTo @route={{this.link}} @query={{hash repository-type=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route={{this.link}}
@query={{hash repository-type=repositoryType.id}}
>
<i class="far fa-square"></i>
</LinkTo>
{{/if}}
<div class="facet-title">
{{repositoryType.title}}
</div>
<span class="number pull-right">
{{repositoryType.count}}
</span>
<div class="clearfix"></div>
</li>
{{/each}}
{{else}}
<li>
<LinkTo @route={{this.link}} @query={{hash repository-type=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
<div class="facet-title">
{{this.model.repositories.query.repository-type}}
</div>
<span class="number pull-right">
0
</span>
<div class="clearfix"></div>
</li>
{{/if}}
</ul>
</div>
</div>
{{/if}}
{{#if
(or
this.model.repositories.meta.certificates
this.model.repositories.query.certificate
)
}}
<div class="panel facets">
<div class="panel-body">
<h4>
Certificate
</h4>
<ul>
{{#if this.model.repositories.meta.certificates}}
{{#each this.model.repositories.meta.certificates as |certificate|}}
<li>
{{#if this.model.repositories.query.certificate}}
<LinkTo @route={{this.link}} @query={{hash certificate=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route={{this.link}}
@query={{hash certificate=certificate.id}}
>
<i class="far fa-square"></i>
</LinkTo>
{{/if}}
<div class="facet-title">
{{certificate.title}}
</div>
<span class="number pull-right">
{{certificate.count}}
</span>
<div class="clearfix"></div>
</li>
{{/each}}
{{else}}
<li>
<LinkTo @route={{this.link}} @query={{hash certificate=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
<div class="facet-title">
{{this.model.repositories.query.certificate}}
</div>
<span class="number pull-right">
0
</span>
<div class="clearfix"></div>
</li>
{{/if}}
</ul>
</div>
</div>
{{/if}}
{{#if
(or this.model.repositories.meta.software this.model.repositories.query.software)
}}
<div class="panel facets">
<div class="panel-body">
<h4>
Software
</h4>
<ul>
{{#if this.model.repositories.meta.software}}
{{#each this.model.repositories.meta.software as |software|}}
<li>
{{#if this.model.repositories.query.software}}
<LinkTo @route={{this.link}} @query={{hash software=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
{{else}}
<LinkTo
@route={{this.link}}
@query={{hash software=software.id}}
>
<i class="far fa-square"></i>
</LinkTo>
{{/if}}
<div class="facet-title">
{{software.title}}
</div>
<span class="number pull-right">
{{software.count}}
</span>
<div class="clearfix"></div>
</li>
{{/each}}
{{else}}
<li>
<LinkTo @route={{this.link}} @query={{hash software=''}}>
<i class="far fa-check-square"></i>
</LinkTo>
<div class="facet-title">
{{this.model.repositories.query.software}}
</div>
<span class="number pull-right">
0
</span>
<div class="clearfix"></div>
</li>
{{/if}}
</ul>
</div>
</div>
{{/if}}
</div>
<div class="col-md-9 panel-list" id="content">
{{#if this.searchable}}
<ModelSearch
@model={{this.model.repositories}}
@name="Repository"
@sortable={{true}}
@link={{this.link}}
/>
{{/if}}
{{#if this.model.repositories}}
{{#each this.model.repositories as |repository|}}
<div class="panel panel-transparent" data-test-repository>
<div class="panel-body">
<h3 class="work">
<LinkTo @route="repositories.show" @model={{repository.id}}>
{{repository.name}}
{{#if repository.alternateName}}
<div class="subtitle">
{{repository.alternateName}}
</div>
{{/if}}
</LinkTo>
{{#if (eq repository.clientType 'periodical')}}
<span class="label label-primary-inv">
Periodical
</span>
{{/if}}
{{#unless repository.isActive}}
<span class="label label-warning-inv">
Inactive
</span>
{{/unless}}
</h3>
<h5 class="repository-id">
Repository ID
<span>
<i class="fas fa-question-circle"></i>
<BsTooltip @renderInPlace={{true}} @placement="top" @viewportPadding={{10}}>
The Repository ID is a unique identifier for each repository in DataCite. It must contain only upper case letters and numbers, and must start with the Member ID.
</BsTooltip>
</span>
</h5>
{{repository.symbol}}
{{#if repository.re3data}}
<h5>
re3data Record
<span>
<i class="fas fa-question-circle"></i>
<BsTooltip @renderInPlace={{true}} @placement="top" @viewportPadding={{10}}>
re3data is a registry of research data repositories.
</BsTooltip>
</span>
</h5>
<a href="{{repository.re3data}}">
{{repository.re3data}}
</a>
{{/if}}
{{#if repository.systemEmail}}
<h5>
System Email
</h5>
<a href="mailto:{{repository.systemEmail}}">
{{repository.systemEmail}}
</a>
{{/if}}
{{#if repository.url}}
<h5>
URL
</h5>
<a href="{{repository.url}}">
{{repository.url}}
</a>
{{/if}}
{{#if repository.repositoryType}}
<h5>
Repository Type
</h5>
{{#each repository.repositoryType as |type|}}
{{titleize type}}
{{#unless (eq type repository.repositoryType.lastObject)}}
,
{{/unless}}
{{/each}}
{{/if}}
{{#if repository.certificate}}
<h5>
Certificate
<div class="info-icon icons-certificate_active"></div>
</h5>
{{#each repository.certificate as |cert|}}
{{cert}}
{{#unless (eq cert repository.certificate.lastObject)}}
,
{{/unless}}
{{/each}}
{{/if}}
</div>
</div>
{{/each}}
<div class="text-center">
{{#if (gt this.model.repositories.meta.totalPages 1)}}
<PageNumbers @model={{this.model.repositories}} @link={{this.link}} />
{{/if}}
</div>
{{else}}
<BsAlert @dismissible={{false}} @type="warning">
No repositories found.
</BsAlert>
{{/if}}
</div>
</div>