Merge branch 'master' into w2p-44988_search-sidebar

Conflicts:
	src/app/+search-page/search-page.component.html
This commit is contained in:
Lotte Hofstede
2017-11-02 15:14:09 +01:00
11 changed files with 172 additions and 164 deletions

View File

@@ -1,50 +1,52 @@
<div class="collection-page"> <div class="container">
<div *ngIf="collectionData.hasSucceeded | async" @fadeInOut> <div class="collection-page">
<div *ngIf="collectionData.payload | async; let collectionPayload"> <div *ngIf="collectionData.hasSucceeded | async" @fadeInOut>
<!-- Collection Name --> <div *ngIf="collectionData.payload | async; let collectionPayload">
<ds-comcol-page-header <!-- Collection Name -->
[name]="collectionPayload.name"> <ds-comcol-page-header
</ds-comcol-page-header> [name]="collectionPayload.name">
<!-- Collection logo --> </ds-comcol-page-header>
<ds-comcol-page-logo *ngIf="logoData" <!-- Collection logo -->
[logo]="logoData.payload | async" <ds-comcol-page-logo *ngIf="logoData"
[alternateText]="'Collection Logo'"> [logo]="logoData.payload | async"
</ds-comcol-page-logo> [alternateText]="'Collection Logo'">
<!-- Introductionary text --> </ds-comcol-page-logo>
<ds-comcol-page-content <!-- Introductionary text -->
[content]="collectionPayload.introductoryText" <ds-comcol-page-content
[hasInnerHtml]="true"> [content]="collectionPayload.introductoryText"
</ds-comcol-page-content> [hasInnerHtml]="true">
<!-- News --> </ds-comcol-page-content>
<ds-comcol-page-content <!-- News -->
[content]="collectionPayload.sidebarText" <ds-comcol-page-content
[hasInnerHtml]="true" [content]="collectionPayload.sidebarText"
[title]="'community.page.news'"> [hasInnerHtml]="true"
</ds-comcol-page-content> [title]="'community.page.news'">
<!-- Copyright --> </ds-comcol-page-content>
<ds-comcol-page-content <!-- Copyright -->
[content]="collectionPayload.copyrightText" <ds-comcol-page-content
[hasInnerHtml]="true"> [content]="collectionPayload.copyrightText"
</ds-comcol-page-content> [hasInnerHtml]="true">
<!-- Licence --> </ds-comcol-page-content>
<ds-comcol-page-content <!-- Licence -->
[content]="collectionPayload.license" <ds-comcol-page-content
[title]="'collection.page.license'"> [content]="collectionPayload.license"
</ds-comcol-page-content> [title]="'collection.page.license'">
</ds-comcol-page-content>
</div>
</div> </div>
<ds-error *ngIf="collectionData.hasFailed | async" message="{{'error.collection' | translate}}"></ds-error>
<ds-loading *ngIf="collectionData.isLoading | async" message="{{'loading.collection' | translate}}"></ds-loading>
<br>
<div *ngIf="itemData.hasSucceeded | async" @fadeIn>
<h2>{{'collection.page.browse.recent.head' | translate}}</h2>
<ds-object-list
[config]="paginationConfig"
[sortConfig]="sortConfig"
[objects]="itemData"
[hideGear]="false">
</ds-object-list>
</div>
<ds-error *ngIf="itemData.hasFailed | async" message="{{'error.items' | translate}}"></ds-error>
<ds-loading *ngIf="itemData.isLoading | async" message="{{'loading.items' | translate}}"></ds-loading>
</div> </div>
<ds-error *ngIf="collectionData.hasFailed | async" message="{{'error.collection' | translate}}"></ds-error>
<ds-loading *ngIf="collectionData.isLoading | async" message="{{'loading.collection' | translate}}"></ds-loading>
<br>
<div *ngIf="itemData.hasSucceeded | async" @fadeIn>
<h2>{{'collection.page.browse.recent.head' | translate}}</h2>
<ds-object-list
[config]="paginationConfig"
[sortConfig]="sortConfig"
[objects]="itemData"
[hideGear]="false">
</ds-object-list>
</div>
<ds-error *ngIf="itemData.hasFailed | async" message="{{'error.items' | translate}}"></ds-error>
<ds-loading *ngIf="itemData.isLoading | async" message="{{'loading.items' | translate}}"></ds-loading>
</div> </div>

View File

@@ -1,30 +1,32 @@
<div class="community-page" *ngIf="communityData.hasSucceeded | async" @fadeInOut> <div class="container">
<div *ngIf="communityData.payload | async; let communityPayload"> <div class="community-page" *ngIf="communityData.hasSucceeded | async" @fadeInOut>
<!-- Community name --> <div *ngIf="communityData.payload | async; let communityPayload">
<ds-comcol-page-header [name]="communityPayload.name"></ds-comcol-page-header> <!-- Community name -->
<!-- Community logo --> <ds-comcol-page-header [name]="communityPayload.name"></ds-comcol-page-header>
<ds-comcol-page-logo *ngIf="logoData" <!-- Community logo -->
[logo]="logoData.payload | async" <ds-comcol-page-logo *ngIf="logoData"
[alternateText]="'Community Logo'"> [logo]="logoData.payload | async"
</ds-comcol-page-logo> [alternateText]="'Community Logo'">
<!-- Introductionary text --> </ds-comcol-page-logo>
<ds-comcol-page-content <!-- Introductionary text -->
[content]="communityPayload.introductoryText" <ds-comcol-page-content
[hasInnerHtml]="true"> [content]="communityPayload.introductoryText"
</ds-comcol-page-content> [hasInnerHtml]="true">
<!-- News --> </ds-comcol-page-content>
<ds-comcol-page-content <!-- News -->
[content]="communityPayload.sidebarText" <ds-comcol-page-content
[hasInnerHtml]="true" [content]="communityPayload.sidebarText"
[title]="'community.page.news'"> [hasInnerHtml]="true"
</ds-comcol-page-content> [title]="'community.page.news'">
<!-- Copyright --> </ds-comcol-page-content>
<ds-comcol-page-content <!-- Copyright -->
[content]="communityPayload.copyrightText" <ds-comcol-page-content
[hasInnerHtml]="true"> [content]="communityPayload.copyrightText"
</ds-comcol-page-content> [hasInnerHtml]="true">
<ds-community-page-sub-collection-list></ds-community-page-sub-collection-list> </ds-comcol-page-content>
<ds-community-page-sub-collection-list></ds-community-page-sub-collection-list>
</div>
</div> </div>
<ds-error *ngIf="communityData.hasFailed | async" message="{{'error.community' | translate}}"></ds-error>
<ds-loading *ngIf="communityData.isLoading | async" message="{{'loading.community' | translate}}"></ds-loading>
</div> </div>
<ds-error *ngIf="communityData.hasFailed | async" message="{{'error.community' | translate}}"></ds-error>
<ds-loading *ngIf="communityData.isLoading | async" message="{{'loading.community' | translate}}"></ds-loading>

View File

@@ -1,6 +1,6 @@
<div class="jumbotron jumbotron-fluid"> <div class="jumbotron jumbotron-fluid">
<div class="container-fluid"> <div class="container">
<div class="row"> <div class="d-flex">
<div class="dspace-logo-container"> <div class="dspace-logo-container">
<img src="assets/images/dspace-logo.png" /> <img src="assets/images/dspace-logo.png" />
</div> </div>
@@ -9,14 +9,12 @@
<p class="lead">DSpace is an open source software platform that enables organisations to:</p> <p class="lead">DSpace is an open source software platform that enables organisations to:</p>
</div> </div>
</div> </div>
<div class="row"> <ul>
<ul> <li>capture and describe digital material using a submission workflow module, or a variety of programmatic ingest options
<li>capture and describe digital material using a submission workflow module, or a variety of programmatic ingest options </li>
</li> <li>distribute an organisation's digital assets over the web through a search and retrieval system
<li>distribute an organisation's digital assets over the web through a search and retrieval system </li>
</li> <li>preserve digital assets over the long term</li>
<li>preserve digital assets over the long term</li> </ul>
</ul>
</div>
</div> </div>
</div> </div>

View File

@@ -1,8 +1,7 @@
@import '../../../styles/variables.scss'; @import '../../../styles/variables.scss';
:host { :host {
display: block; display: block;
margin-right: ($grid-gutter-width / -2);
margin-left: ($grid-gutter-width / -2);
margin-top: -$content-spacing; margin-top: -$content-spacing;
margin-bottom: -$content-spacing; margin-bottom: -$content-spacing;
} }

View File

@@ -1,3 +1,5 @@
<ds-home-news></ds-home-news> <ds-home-news></ds-home-news>
<ds-search-form></ds-search-form> <div class="container">
<ds-top-level-community-list></ds-top-level-community-list> <ds-search-form></ds-search-form>
<ds-top-level-community-list></ds-top-level-community-list>
</div>

View File

@@ -1,23 +1,25 @@
<div class="item-page" *ngIf="item.hasSucceeded | async" @fadeInOut> <div class="container">
<div *ngIf="item.payload | async; let itemPayload"> <div class="item-page" *ngIf="item.hasSucceeded | async" @fadeInOut>
<ds-item-page-title-field [item]="itemPayload"></ds-item-page-title-field> <div *ngIf="item.payload | async; let itemPayload">
<div class="simple-view-link"> <ds-item-page-title-field [item]="itemPayload"></ds-item-page-title-field>
<a class="btn btn-outline-primary col-4" [routerLink]="['/items/' + itemPayload.id]"> <div class="simple-view-link">
{{"item.page.link.simple" | translate}} <a class="btn btn-outline-primary col-4" [routerLink]="['/items/' + itemPayload.id]">
</a> {{"item.page.link.simple" | translate}}
</a>
</div>
<table class="table table-responsive table-striped">
<tbody>
<tr *ngFor="let metadatum of (metadata | async)">
<td>{{metadatum.key}}</td>
<td>{{metadatum.value}}</td>
<td>{{metadatum.language}}</td>
</tr>
</tbody>
</table>
<ds-item-page-full-file-section [item]="itemPayload"></ds-item-page-full-file-section>
<ds-item-page-collections [item]="itemPayload"></ds-item-page-collections>
</div> </div>
<table class="table table-responsive table-striped">
<tbody>
<tr *ngFor="let metadatum of (metadata | async)">
<td>{{metadatum.key}}</td>
<td>{{metadatum.value}}</td>
<td>{{metadatum.language}}</td>
</tr>
</tbody>
</table>
<ds-item-page-full-file-section [item]="itemPayload"></ds-item-page-full-file-section>
<ds-item-page-collections [item]="itemPayload"></ds-item-page-collections>
</div> </div>
<ds-error *ngIf="item.hasFailed | async" message="{{'error.item' | translate}}"></ds-error>
<ds-loading *ngIf="item.isLoading | async" message="{{'loading.item' | translate}}"></ds-loading>
</div> </div>
<ds-error *ngIf="item.hasFailed | async" message="{{'error.item' | translate}}"></ds-error>
<ds-loading *ngIf="item.isLoading | async" message="{{'loading.item' | translate}}"></ds-loading>

View File

@@ -1,27 +1,29 @@
<div class="item-page" *ngIf="item.hasSucceeded | async" @fadeInOut> <div class="container">
<div *ngIf="item.payload | async; let itemPayload"> <div class="item-page" *ngIf="item.hasSucceeded | async" @fadeInOut>
<ds-item-page-title-field [item]="itemPayload"></ds-item-page-title-field> <div *ngIf="item.payload | async; let itemPayload">
<div class="row"> <ds-item-page-title-field [item]="itemPayload"></ds-item-page-title-field>
<div class="col-xs-12 col-md-4"> <div class="row">
<ds-metadata-field-wrapper> <div class="col-xs-12 col-md-4">
<ds-thumbnail [thumbnail]="thumbnail | async"></ds-thumbnail> <ds-metadata-field-wrapper>
</ds-metadata-field-wrapper> <ds-thumbnail [thumbnail]="thumbnail | async"></ds-thumbnail>
<ds-item-page-file-section [item]="itemPayload"></ds-item-page-file-section> </ds-metadata-field-wrapper>
<ds-item-page-date-field [item]="itemPayload"></ds-item-page-date-field> <ds-item-page-file-section [item]="itemPayload"></ds-item-page-file-section>
<ds-item-page-author-field [item]="itemPayload"></ds-item-page-author-field> <ds-item-page-date-field [item]="itemPayload"></ds-item-page-date-field>
</div> <ds-item-page-author-field [item]="itemPayload"></ds-item-page-author-field>
<div class="col-xs-12 col-md-6"> </div>
<ds-item-page-abstract-field [item]="itemPayload"></ds-item-page-abstract-field> <div class="col-xs-12 col-md-6">
<ds-item-page-uri-field [item]="itemPayload"></ds-item-page-uri-field> <ds-item-page-abstract-field [item]="itemPayload"></ds-item-page-abstract-field>
<ds-item-page-collections [item]="itemPayload"></ds-item-page-collections> <ds-item-page-uri-field [item]="itemPayload"></ds-item-page-uri-field>
<div> <ds-item-page-collections [item]="itemPayload"></ds-item-page-collections>
<a class="btn btn-outline-primary" [routerLink]="['/items/' + itemPayload.id + '/full']"> <div>
{{"item.page.link.full" | translate}} <a class="btn btn-outline-primary" [routerLink]="['/items/' + itemPayload.id + '/full']">
</a> {{"item.page.link.full" | translate}}
</a>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<ds-error *ngIf="item.hasFailed | async" message="{{'error.item' | translate}}"></ds-error>
<ds-loading *ngIf="item.isLoading | async" message="{{'loading.item' | translate}}"></ds-loading>
</div> </div>
<ds-error *ngIf="item.hasFailed | async" message="{{'error.item' | translate}}"></ds-error>
<ds-loading *ngIf="item.isLoading | async" message="{{'loading.item' | translate}}"></ds-loading>

View File

@@ -1,32 +1,35 @@
<div class="search-page"> <div class="container">
<ds-search-sidebar dsStick *ngIf="!(isMobileView | async)" class="col-3 sidebar-md-fixed" id="search-sidebar" <div class="search-page">
resultCount="{{(results.pageInfo | async)?.totalElements}}"></ds-search-sidebar> <ds-search-sidebar dsStick *ngIf="!(isMobileView | async)" class="col-3 sidebar-md-fixed" id="search-sidebar"
<div id="search-header" class="row"> resultCount="{{(results.pageInfo | async)?.totalElements}}"></ds-search-sidebar>
<ds-search-form id="search-form" class="col-12 col-md-9 ml-md-auto" <div id="search-header" class="row">
[query]="query" <ds-search-form id="search-form" class="col-12 col-md-9 ml-md-auto"
[scope]="scopeObject?.payload | async" [query]="query"
[currentParams]="currentParams" [scope]="scopeObject?.payload | async"
[scopes]="scopeList?.payload"> [currentParams]="currentParams"
</ds-search-form> [scopes]="scopeList?.payload">
</div> </ds-search-form>
<div class="row"> </div>
<div id="search-body" *ngIf="(isMobileView | async)" class="row-offcanvas row-offcanvas-left" [@slideInOut]="(isSidebarCollapsed() | async) ? 'collapsed' : 'expanded'"> <div class="row">
<ds-search-sidebar class="col-12" id="search-sidebar-xs" <div id="search-body" *ngIf="(isMobileView | async)" class="row-offcanvas row-offcanvas-left" [@slideInOut]="(isSidebarCollapsed() | async) ? 'collapsed' : 'expanded'">
resultCount="{{(results.pageInfo | async)?.totalElements}}" <ds-search-sidebar class="col-12" id="search-sidebar-xs"
(toggleSidebar)="closeSidebar()" [ngClass]="{'active': !(isSidebarCollapsed() | async)}"></ds-search-sidebar> resultCount="{{(results.pageInfo | async)?.totalElements}}"
<div id="search-content" class="col-12 col-md-9 ml-md-auto"> (toggleSidebar)="closeSidebar()" [ngClass]="{'active': !(isSidebarCollapsed() | async)}"></ds-search-sidebar>
<div class="d-block d-md-none search-controls clearfix"> <div id="search-content" class="col-12 col-md-9 ml-md-auto">
<div class="d-block d-md-none search-controls clearfix">
<ds-view-mode-switch></ds-view-mode-switch> <ds-view-mode-switch></ds-view-mode-switch>
<button (click)="openSidebar()" aria-controls="#search-body" <button (click)="openSidebar()" aria-controls="#search-body"
class="btn btn-outline-primary float-right open-sidebar"><i class="btn btn-outline-primary float-right open-sidebar"><i
class="fa fa-sliders"></i> {{"search.sidebar.open" class="fa fa-sliders"></i> {{"search.sidebar.open"
| translate}} | translate}}
</button> </button>
</div>
<ds-search-results [searchResults]="results"
[searchConfig]="searchOptions"></ds-search-results>
</div> </div>
<ds-search-results [searchResults]="results"
[searchConfig]="searchOptions"></ds-search-results>
</div> </div>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -3,9 +3,7 @@
<ds-header></ds-header> <ds-header></ds-header>
<main class="main-content"> <main class="main-content">
<div class="container-fluid"> <router-outlet></router-outlet>
<router-outlet></router-outlet>
</div>
</main> </main>
<ds-footer></ds-footer> <ds-footer></ds-footer>

View File

@@ -1,3 +1,3 @@
<div *ngIf="logo" class="dso-logo"> <div *ngIf="logo" class="dso-logo">
<img [src]="logo.content" class="img-responsive" [attr.alt]="alternateText ? alternateText : null" (error)="errorHandler($event)"/> <img [src]="logo.content" class="img-fluid" [attr.alt]="alternateText ? alternateText : null" (error)="errorHandler($event)"/>
</div> </div>

View File

@@ -6,9 +6,9 @@
<span class="align-middle" *ngIf="collectionSize">{{ 'pagination.showing.detail' | translate:getShowingDetails(collectionSize)}}</span> <span class="align-middle" *ngIf="collectionSize">{{ 'pagination.showing.detail' | translate:getShowingDetails(collectionSize)}}</span>
</div> </div>
<div class="col"> <div class="col">
<div ngbDropdown #paginationControls="ngbDropdown" class="d-inline-block float-right"> <div ngbDropdown #paginationControls="ngbDropdown" placement="bottom-right" class="d-inline-block float-right">
<button class="btn btn-outline-primary" id="paginationControls" ngbDropdownToggle><i class="fa fa-cog" aria-hidden="true"></i></button> <button class="btn btn-outline-primary" id="paginationControls" ngbDropdownToggle><i class="fa fa-cog" aria-hidden="true"></i></button>
<div class="dropdown-menu dropdown-menu-right" id="paginationControlsDropdownMenu" aria-labelledby="paginationControls" ngbDropdownMenu> <div id="paginationControlsDropdownMenu" aria-labelledby="paginationControls" ngbDropdownMenu>
<h6 class="dropdown-header">{{ 'pagination.results-per-page' | translate}}</h6> <h6 class="dropdown-header">{{ 'pagination.results-per-page' | translate}}</h6>
<button class="dropdown-item" *ngFor="let item of pageSizeOptions" (click)="doPageSizeChange(item)"><i [ngClass]="{'invisible': item != pageSize}" class="fa fa-check" aria-hidden="true"></i> {{item}} </button> <button class="dropdown-item" *ngFor="let item of pageSizeOptions" (click)="doPageSizeChange(item)"><i [ngClass]="{'invisible': item != pageSize}" class="fa fa-check" aria-hidden="true"></i> {{item}} </button>
<h6 class="dropdown-header">{{ 'pagination.sort-direction' | translate}}</h6> <h6 class="dropdown-header">{{ 'pagination.sort-direction' | translate}}</h6>