applied feedback

This commit is contained in:
lotte
2018-12-19 13:38:37 +01:00
parent cc53dda46b
commit 6163d159f7
13 changed files with 150 additions and 104 deletions

View File

@@ -56,7 +56,9 @@
"header": "Statistics"
},
"login": "Log In",
"logout": "Log Out"
"logout": "Log Out",
"language": "Language switch",
"search": "Search"
},
"pagination": {
"results-per-page": "Results Per Page",
@@ -210,8 +212,15 @@
"no-items": "No bitstream formats to show."
}
}
}
},
"menu": {
"header": {
"admin": "Admin",
"image": {
"logo": "Repository logo"
}
},
"sidebar": {
"section": {
"pin": "Pin sidebar",
"unpin": "Unpin sidebar",
@@ -255,7 +264,32 @@
"browse_community": "This Community",
"browse_community_by_issue_date": "By Issue Date",
"browse_community_by_author": "By Author",
"browse_community_by_title": "By Title"
"browse_community_by_title": "By Title",
"icon": {
"pin": "Pin sidebar",
"unpin": "Unpin sidebar",
"new": "New menu section",
"edit": "Edit menu section",
"import": "Import menu section",
"export": "Export menu section",
"access_control": "Access Control menu section",
"find": "Find menu section",
"registries": "Registries menu section",
"curation_task": "Curation Task menu section",
"statistics_task": "Statistics Task menu section",
"control_panel": "Control Panel menu section"
},
"toggle": {
"new": "Toggle New section",
"edit": "Toggle Edit section",
"import": "Toggle Import section",
"export": "Toggle Export section",
"access_control": "Toggle Access Control section",
"find": "Toggle Find section",
"registries": "Toggle Registries section",
"curation_task": "Toggle Curation Task section",
"statistics_task": "Toggle Statistics Task section",
"control_panel": "Toggle Control Panel section"
}
}
},
@@ -329,5 +363,8 @@
"errors": {
"invalid-user": "Invalid email address or password."
}
},
"chips": {
"remove": "Remove chip"
}
}

View File

@@ -11,12 +11,14 @@
<li class="admin-menu-header sidebar-section">
<a class="shortcut-icon navbar-brand mr-0" href="#">
<span class="logo-wrapper">
<img class="admin-logo" src="assets/images/dspace-logo-mini.svg">
<img class="admin-logo" src="assets/images/dspace-logo-mini.svg"
[alt]="('menu.header.image.logo') | translate">
</span>
</a>
<div class="sidebar-collapsible">
<a class="navbar-brand mr-0" href="#">
<h4 class="section-header-text mb-0">Admin</h4>
<h4 class="section-header-text mb-0">{{'menu.header.admin' |
translate}}</h4>
</a>
</div>
</li>
@@ -32,15 +34,17 @@
<a class="nav-item nav-link shortcut-icon"
href="#"
(click)="toggle($event)">
<i class="fas fa-fw"
[ngClass]="{'fa-angle-double-right': (menuCollapsed | async), 'fa-angle-double-left': !(menuCollapsed | async)}"></i>
<i *ngIf="(menuCollapsed | async)" class="fas fa-fw fa-angle-double-right"
[title]="'menu.section.icon.pin' | translate"></i>
<i *ngIf="!(menuCollapsed | async)" class="fas fa-fw fa-angle-double-left"
[title]="'menu.section.icon.unpin' | translate"></i>
</a>
<div class="sidebar-collapsible">
<a class="nav-item nav-link sidebar-section"
href="#"
(click)="toggle($event)">
<span *ngIf="menuCollapsed | async" class="section-header-text">{{'admin.sidebar.section.pin' | translate }}</span>
<span *ngIf="!(menuCollapsed | async)" class="section-header-text">{{'admin.sidebar.section.unpin' | translate }}</span>
<span *ngIf="menuCollapsed | async" class="section-header-text">{{'menu.section.pin' | translate }}</span>
<span *ngIf="!(menuCollapsed | async)" class="section-header-text">{{'menu.section.unpin' | translate }}</span>
</a>
</div>
</div>

View File

@@ -93,7 +93,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.new'
text: 'menu.section.new'
} as TextMenuItemModel,
icon: 'plus-circle',
index: 0
@@ -105,7 +105,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.new_community',
text: 'menu.section.new_community',
link: '/communities/submission'
} as LinkMenuItemModel,
},
@@ -116,7 +116,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.new_collection',
text: 'menu.section.new_collection',
link: '/collections/submission'
} as LinkMenuItemModel,
},
@@ -127,7 +127,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.new_item',
text: 'menu.section.new_item',
link: '/items/submission'
} as LinkMenuItemModel,
},
@@ -138,7 +138,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.new_item_version',
text: 'menu.section.new_item_version',
link: '#'
} as LinkMenuItemModel,
},
@@ -150,7 +150,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.edit'
text: 'menu.section.edit'
} as TextMenuItemModel,
icon: 'pencil-alt',
index: 1
@@ -162,7 +162,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.edit_community',
text: 'menu.section.edit_community',
link: '#'
} as LinkMenuItemModel,
},
@@ -173,7 +173,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.edit_collection',
text: 'menu.section.edit_collection',
link: '#'
} as LinkMenuItemModel,
},
@@ -184,7 +184,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.edit_item',
text: 'menu.section.edit_item',
link: '#'
} as LinkMenuItemModel,
},
@@ -196,7 +196,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.import'
text: 'menu.section.import'
} as TextMenuItemModel,
icon: 'sign-in-alt',
index: 2
@@ -208,7 +208,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.import_metadata',
text: 'menu.section.import_metadata',
link: '#'
} as LinkMenuItemModel,
},
@@ -219,7 +219,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.import_batch',
text: 'menu.section.import_batch',
link: '#'
} as LinkMenuItemModel,
},
@@ -231,7 +231,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.export'
text: 'menu.section.export'
} as TextMenuItemModel,
icon: 'sign-out-alt',
index: 3
@@ -243,7 +243,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.export_community',
text: 'menu.section.export_community',
link: '#'
} as LinkMenuItemModel,
},
@@ -254,7 +254,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.export_collection',
text: 'menu.section.export_collection',
link: '#'
} as LinkMenuItemModel,
},
@@ -265,7 +265,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.export_item',
text: 'menu.section.export_item',
link: '#'
} as LinkMenuItemModel,
}, {
@@ -275,7 +275,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.export_metadata',
text: 'menu.section.export_metadata',
link: '#'
} as LinkMenuItemModel,
},
@@ -287,7 +287,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.access_control'
text: 'menu.section.access_control'
} as TextMenuItemModel,
icon: 'key',
index: 4
@@ -299,7 +299,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.access_control_people',
text: 'menu.section.access_control_people',
link: '#'
} as LinkMenuItemModel,
},
@@ -310,7 +310,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.access_control_groups',
text: 'menu.section.access_control_groups',
link: '#'
} as LinkMenuItemModel,
},
@@ -321,7 +321,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.access_control_authorizations',
text: 'menu.section.access_control_authorizations',
link: '#'
} as LinkMenuItemModel,
},
@@ -333,7 +333,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.find'
text: 'menu.section.find'
} as TextMenuItemModel,
icon: 'search',
index: 5
@@ -345,7 +345,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.find_items',
text: 'menu.section.find_items',
link: '/search'
} as LinkMenuItemModel,
},
@@ -356,7 +356,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.find_withdrawn_items',
text: 'menu.section.find_withdrawn_items',
link: '#'
} as LinkMenuItemModel,
},
@@ -367,7 +367,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.find_private_items',
text: 'menu.section.find_private_items',
link: '/admin/items'
} as LinkMenuItemModel,
},
@@ -379,7 +379,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.registries'
text: 'menu.section.registries'
} as TextMenuItemModel,
icon: 'list',
index: 6
@@ -391,7 +391,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.registries_metadata',
text: 'menu.section.registries_metadata',
link: 'admin/registries/metadata'
} as LinkMenuItemModel,
},
@@ -402,7 +402,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.registries_format',
text: 'menu.section.registries_format',
link: 'admin/registries/bitstream-formats'
} as LinkMenuItemModel,
},
@@ -414,7 +414,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.curation_task',
text: 'menu.section.curation_task',
link: '/curation'
} as LinkMenuItemModel,
icon: 'filter',
@@ -428,7 +428,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.statistics_task',
text: 'menu.section.statistics_task',
link: '#'
} as LinkMenuItemModel,
icon: 'chart-bar',
@@ -442,7 +442,7 @@ export class AdminSidebarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.control_panel',
text: 'menu.section.control_panel',
link: '#'
} as LinkMenuItemModel,
icon: 'cogs',

View File

@@ -4,7 +4,7 @@
params: {endColor: (sidebarActiveBg | async)}}">
<div class="icon-wrapper">
<a class="nav-item nav-link shortcut-icon" (click)="toggleSection($event)" href="#">
<i class="fas fa-{{section.icon}} fa-fw"></i>
<i class="fas fa-{{section.icon}} fa-fw" [title]="('menu.section.icon.' + section.id) | translate"></i>
</a>
</div>
<div class="sidebar-collapsible">
@@ -15,7 +15,7 @@
*ngComponentOutlet="itemComponents.get(section.id); injector: itemInjectors.get(section.id);"></ng-container>
</span>
<i class="fas fa-chevron-right fa-pull-right"
[@rotate]="(expanded | async) ? 'expanded' : 'collapsed'"></i>
[@rotate]="(expanded | async) ? 'expanded' : 'collapsed'" [title]="('menu.section.toggle.' + section.id) | translate"></i>
</a>
<ul class="sidebar-sub-level-items list-unstyled" @slide *ngIf="(expanded | async)">
<li *ngFor="let subSection of (subSections | async)">

View File

@@ -9,6 +9,7 @@ import { of as observableOf } from 'rxjs';
import { Component } from '@angular/core';
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
import { By } from '@angular/platform-browser';
import { TranslateModule } from '@ngx-translate/core';
describe('ExpandableAdminSidebarSectionComponent', () => {
let component: ExpandableAdminSidebarSectionComponent;
@@ -17,7 +18,7 @@ describe('ExpandableAdminSidebarSectionComponent', () => {
const iconString = 'test';
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [NoopAnimationsModule],
imports: [NoopAnimationsModule, TranslateModule.forRoot()],
declarations: [ExpandableAdminSidebarSectionComponent, TestComponent],
providers: [
{ provide: 'sectionDataProvider', useValue: {icon: iconString} },

View File

@@ -7,6 +7,9 @@ import { Subscription } from 'rxjs/internal/Subscription';
import { MenuService } from '../shared/menu/menu.service';
import { MenuID } from '../shared/menu/initial-menus-state';
/**
* This component represents a wrapper for the horizontal navbar and the header
*/
@Component({
selector: 'ds-header-navbar-wrapper',
styleUrls: ['header-navbar-wrapper.component.scss'],

View File

@@ -5,8 +5,8 @@
</a>
<nav class="navbar navbar-light navbar-expand-md float-right px-0">
<a href="#" class="px-1"><i class="fas fa-search fa-lg fa-fw"></i></a>
<a href="#" class="px-1"><i class="fas fa-globe-asia fa-lg fa-fw"></i></a>
<a href="#" class="px-1"><i class="fas fa-search fa-lg fa-fw" [title]="'nav.search' | translate"></i></a>
<a href="#" class="px-1"><i class="fas fa-globe-asia fa-lg fa-fw" [title]="'nav.language' | translate"></i></a>
<ds-auth-nav-menu></ds-auth-nav-menu>
<div class="pl-2">
<button class="navbar-toggler" type="button" (click)="toggleNavbar()"

View File

@@ -47,7 +47,7 @@ export class NavbarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.TEXT,
text: 'admin.sidebar.section.browse_global'
text: 'menu.section.browse_global'
} as TextMenuItemModel,
index: 0
},
@@ -58,7 +58,7 @@ export class NavbarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.browse_global_communities_and_collections',
text: 'menu.section.browse_global_communities_and_collections',
link: '#'
} as LinkMenuItemModel,
},
@@ -69,7 +69,7 @@ export class NavbarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.browse_global_by_issue_date',
text: 'menu.section.browse_global_by_issue_date',
link: '#'
} as LinkMenuItemModel,
}, {
@@ -79,7 +79,7 @@ export class NavbarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.browse_global_by_title',
text: 'menu.section.browse_global_by_title',
link: '/browse/title'
} as LinkMenuItemModel,
},
@@ -90,7 +90,7 @@ export class NavbarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.browse_global_by_author',
text: 'menu.section.browse_global_by_author',
link: '/browse/author'
} as LinkMenuItemModel,
},
@@ -102,7 +102,7 @@ export class NavbarComponent extends MenuComponent implements OnInit {
visible: true,
model: {
type: MenuItemType.LINK,
text: 'admin.sidebar.section.statistics',
text: 'menu.section.statistics',
link: '#'
} as LinkMenuItemModel,
index: 2

View File

@@ -39,7 +39,7 @@ const effects = [
})
/**
* This module handles all components and pipes that are necessary for the search page
* This module handles all components and pipes that are necessary for the horizontal navigation bar
*/
export class NavbarModule {
}

View File

@@ -12,8 +12,7 @@
</li>
<li *ngIf="(isAuthenticated | async) && !(isXsOrSm$ | async) && (showAuth | async)" class="nav-item">
<div ngbDropdown placement="bottom-right" class="d-inline-block" @fadeInOut>
<!--<a href="#" id="dropdownUser" (click)="$event.preventDefault()" ngbDropdownToggle><i class="fas fa-user fa-fw" aria-hidden="true"></i>Hello {{(user | async).name}}<span class="caret"></span></a>-->
<a href="#" id="dropdownUser" (click)="$event.preventDefault()" class="px-1" ngbDropdownToggle><i class="fas fa-user-circle fa-lg fa-fw"></i></a>
<a href="#" id="dropdownUser" (click)="$event.preventDefault()" class="px-1" ngbDropdownToggle><i class="fas fa-user-circle fa-lg fa-fw" [title]="'nav.logout' | translate"></i></a>
<ul id="logoutDropdownMenu" ngbDropdownMenu aria-labelledby="dropdownUser">
<li class="dropdown-item">{{(user | async).name}}</li>
<li class="dropdown-item"><ds-log-out></ds-log-out></li>
@@ -21,7 +20,7 @@
</div>
</li>
<li *ngIf="(isAuthenticated | async) && (isXsOrSm$ | async)" class="nav-item">
<a id="logoutLink" routerLink="/logout" routerLinkActive="active" class="px-1"><i class="fas fa-user-circle fa-lg fa-fw"></i><span class="sr-only">(current)</span></a>
<a id="logoutLink" routerLink="/logout" routerLinkActive="active" class="px-1"><i class="fas fa-user-circle fa-lg fa-fw" [title]="'nav.logout' | translate"></i><span class="sr-only">(current)</span></a>
</li>
</ul>

View File

@@ -23,7 +23,7 @@
(mouseover)="showTooltip(t, i, icon.metadata)"
(mouseout)="t.close()"></i>
</ng-container>
<p class="chip-label text-truncate d-table-cell">{{c.display}}</p><i class="fas fa-times ml-2" (click)="removeChips($event, i)"></i>
<p class="chip-label text-truncate d-table-cell">{{c.display}}</p><i class="fas fa-times ml-2" (click)="removeChips($event, i)" [title]="'chips.remove' | translate"></i>
</span>
</a>
</li>

View File

@@ -10,6 +10,7 @@ import { SortablejsModule } from 'angular-sortablejs';
import { By } from '@angular/platform-browser';
import { FormFieldMetadataValueObject } from '../form/builder/models/form-field-metadata-value.model';
import { createTestComponent, hasClass } from '../testing/utils';
import { TranslateModule } from '@ngx-translate/core';
describe('ChipsComponent test suite', () => {
@@ -27,6 +28,7 @@ describe('ChipsComponent test suite', () => {
imports: [
NgbModule.forRoot(),
SortablejsModule.forRoot({animation: 150}),
TranslateModule.forRoot()
],
declarations: [
ChipsComponent,

View File

@@ -54,7 +54,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 0,
text: 'admin.sidebar.section.new'
text: 'menu.section.new'
},
icon: 'plus-circle',
index: 0
@@ -66,7 +66,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 1,
text: 'admin.sidebar.section.new_item',
text: 'menu.section.new_item',
link: '/items/submission'
}
},
@@ -77,7 +77,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 1,
text: 'admin.sidebar.section.new_community',
text: 'menu.section.new_community',
link: '/communities/submission'
}
},
@@ -87,7 +87,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 0,
text: 'admin.sidebar.section.access_control'
text: 'menu.section.access_control'
},
icon: 'key',
index: 4
@@ -99,7 +99,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 1,
text: 'admin.sidebar.section.access_control_people',
text: 'menu.section.access_control_people',
link: '#'
}
},
@@ -110,7 +110,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 1,
text: 'admin.sidebar.section.access_control_groups',
text: 'menu.section.access_control_groups',
link: '#'
}
},
@@ -121,7 +121,7 @@ describe('menusReducer', () => {
visible: true,
model: {
type: 1,
text: 'admin.sidebar.section.new_collection',
text: 'menu.section.new_collection',
link: '/collections/submission'
}
}