diff --git a/app/src/assets/svg/icons/avatar.svg b/app/src/assets/svg/icons/avatar.svg
new file mode 100644
index 000000000..96f0cb29d
--- /dev/null
+++ b/app/src/assets/svg/icons/avatar.svg
@@ -0,0 +1,4 @@
+
diff --git a/app/src/assets/svg/icons/menu.svg b/app/src/assets/svg/icons/menu.svg
new file mode 100644
index 000000000..f09df24f2
--- /dev/null
+++ b/app/src/assets/svg/icons/menu.svg
@@ -0,0 +1,11 @@
+
diff --git a/app/src/assets/svg/icons/settings.svg b/app/src/assets/svg/icons/settings.svg
new file mode 100644
index 000000000..42035fd9a
--- /dev/null
+++ b/app/src/assets/svg/icons/settings.svg
@@ -0,0 +1,3 @@
+
diff --git a/app/src/assets/svg/icons/workspace.svg b/app/src/assets/svg/icons/workspace.svg
new file mode 100644
index 000000000..5c63fd78e
--- /dev/null
+++ b/app/src/assets/svg/icons/workspace.svg
@@ -0,0 +1,4 @@
+
diff --git a/projects/aca-content/assets/app.extensions.json b/projects/aca-content/assets/app.extensions.json
index 0dbb7ab99..dcc7d039a 100644
--- a/projects/aca-content/assets/app.extensions.json
+++ b/projects/aca-content/assets/app.extensions.json
@@ -242,32 +242,24 @@
"id": "app.navbar.primary",
"items": [
{
- "id": "app.navbar.personalFiles",
+ "id": "app.navbar.menu",
"order": 100,
"icon": "folder",
- "title": "APP.BROWSE.PERSONAL.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.PERSONAL.SIDENAV_LINK.TOOLTIP",
- "route": "personal-files",
- "rules": {
- "visible": "app.isContentServiceEnabled"
- }
- },
- {
- "id": "app.navbar.libraries.menu",
- "order": 200,
- "icon": "library_books",
- "title": "APP.BROWSE.LIBRARIES.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.LIBRARIES.SIDENAV_LINK.TOOLTIP",
+ "title": "APP.BROWSE.FILE.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.FILE.SIDENAV_LINK.TOOLTIP",
"rules": {
"visible": "app.isContentServiceEnabled"
},
"children": [
{
- "id": "app.navbar.libraries.favorite",
+ "id": "app.navbar.personalFiles",
"order": 100,
- "title": "APP.BROWSE.LIBRARIES.MENU.FAVORITE_LIBRARIES.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.LIBRARIES.MENU.FAVORITE_LIBRARIES.SIDENAV_LINK.TOOLTIP",
- "route": "favorite/libraries"
+ "title": "APP.BROWSE.PERSONAL.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.PERSONAL.SIDENAV_LINK.TOOLTIP",
+ "route": "personal-files",
+ "rules": {
+ "visible": "app.isContentServiceEnabled"
+ }
},
{
"id": "app.navbar.libraries.files",
@@ -275,53 +267,45 @@
"title": "APP.BROWSE.LIBRARIES.MENU.MY_LIBRARIES.SIDENAV_LINK.LABEL",
"description": "APP.BROWSE.LIBRARIES.MENU.MY_LIBRARIES.SIDENAV_LINK.TOOLTIP",
"route": "libraries"
+ },
+ {
+ "id": "app.navbar.libraries.favorite",
+ "order": 300,
+ "title": "APP.BROWSE.LIBRARIES.MENU.FAVORITE_LIBRARIES.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.LIBRARIES.MENU.FAVORITE_LIBRARIES.SIDENAV_LINK.TOOLTIP",
+ "route": "favorite/libraries"
+ },
+ {
+ "id": "app.navbar.recentFiles",
+ "order": 400,
+ "title": "APP.BROWSE.RECENT.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.RECENT.SIDENAV_LINK.TOOLTIP",
+ "route": "recent-files"
+ },
+ {
+ "id": "app.navbar.favorites",
+ "order": 500,
+ "title": "APP.BROWSE.FAVORITES.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.FAVORITES.SIDENAV_LINK.TOOLTIP",
+ "route": "favorites"
+ },
+ {
+ "id": "app.navbar.shared",
+ "order": 600,
+ "title": "APP.BROWSE.SHARED.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.SHARED.SIDENAV_LINK.TOOLTIP",
+ "route": "shared"
+ },
+ {
+ "id": "app.navbar.trashcan",
+ "order": 700,
+ "title": "APP.BROWSE.TRASHCAN.SIDENAV_LINK.LABEL",
+ "description": "APP.BROWSE.TRASHCAN.SIDENAV_LINK.TOOLTIP",
+ "route": "trashcan"
}
]
}
]
- },
- {
- "id": "app.navbar.secondary",
- "rules": {
- "visible": "app.isContentServiceEnabled"
- },
- "items": [
- {
- "id": "app.navbar.shared",
- "order": 100,
- "icon": "people",
- "title": "APP.BROWSE.SHARED.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.SHARED.SIDENAV_LINK.TOOLTIP",
- "route": "shared",
- "rules": {
- "visible": "repository.isQuickShareEnabled"
- }
- },
- {
- "id": "app.navbar.recentFiles",
- "order": 200,
- "icon": "schedule",
- "title": "APP.BROWSE.RECENT.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.RECENT.SIDENAV_LINK.TOOLTIP",
- "route": "recent-files"
- },
- {
- "id": "app.navbar.favorites",
- "order": 300,
- "icon": "star",
- "title": "APP.BROWSE.FAVORITES.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.FAVORITES.SIDENAV_LINK.TOOLTIP",
- "route": "favorites"
- },
- {
- "id": "app.navbar.trashcan",
- "order": 400,
- "icon": "delete",
- "title": "APP.BROWSE.TRASHCAN.SIDENAV_LINK.LABEL",
- "description": "APP.BROWSE.TRASHCAN.SIDENAV_LINK.TOOLTIP",
- "route": "trashcan"
- }
- ]
}
],
"toolbar": [
diff --git a/projects/aca-content/assets/i18n/en.json b/projects/aca-content/assets/i18n/en.json
index d9fedaece..98675b87b 100644
--- a/projects/aca-content/assets/i18n/en.json
+++ b/projects/aca-content/assets/i18n/en.json
@@ -1,6 +1,7 @@
{
"APP": {
"COPYRIGHT": "© 2017 - 2020 Alfresco Software, Inc. All rights reserved.",
+ "TITLE": "Workspace",
"ABOUT": {
"VERSION": "Version:",
"PLUGINS": {
@@ -103,6 +104,13 @@
}
},
"BROWSE": {
+ "FILE": {
+ "TITLE": "Files",
+ "SIDENAV_LINK": {
+ "LABEL": "Files",
+ "TOOLTIP": "Files"
+ }
+ },
"PERSONAL": {
"TITLE": "Personal Files",
"SIDENAV_LINK": {
@@ -409,7 +417,12 @@
"EXPAND": "Expand",
"CLOSE_LIBRARY": "Close Library"
}
- }
+ },
+ "TOOLTIPS": {
+ "COLLAPSE_NAVIGATION": "Collapse navigation menu",
+ "OPTIONS_SETTINGS": "Options and settings",
+ "MY_PROFILE": "My profile"
+ }
},
"NODE_SELECTOR": {
"COPY_ITEM": "Copy '{{ name }}' to...",
diff --git a/projects/aca-content/src/lib/aca-content.module.ts b/projects/aca-content/src/lib/aca-content.module.ts
index 3d6365c26..8623e7729 100644
--- a/projects/aca-content/src/lib/aca-content.module.ts
+++ b/projects/aca-content/src/lib/aca-content.module.ts
@@ -121,6 +121,7 @@ import { AppSharedLinkViewModule } from './components/shared-link-view/shared-li
import { AcaFolderRulesModule } from '@alfresco/aca-folder-rules';
import { TagsColumnComponent } from './components/dl-custom-components/tags-column/tags-column.component';
import { UserInfoComponent } from './components/common/user-info/user-info.component';
+import { CustomIconsModule } from './extensions/custom-icons.module';
registerLocaleData(localeFr);
registerLocaleData(localeDe);
@@ -169,7 +170,8 @@ registerLocaleData(localeSv);
ViewProfileModule,
AppTrashcanModule,
AppSharedLinkViewModule,
- AcaFolderRulesModule
+ AcaFolderRulesModule,
+ CustomIconsModule
],
declarations: [
FilesComponent,
diff --git a/projects/aca-content/src/lib/components/header/header.component.html b/projects/aca-content/src/lib/components/header/header.component.html
index 6db2b8bf7..e69de29bb 100644
--- a/projects/aca-content/src/lib/components/header/header.component.html
+++ b/projects/aca-content/src/lib/components/header/header.component.html
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/projects/aca-content/src/lib/components/header/header.component.spec.ts b/projects/aca-content/src/lib/components/header/header.component.spec.ts
index 9a4c8ddf7..62f75d19d 100644
--- a/projects/aca-content/src/lib/components/header/header.component.spec.ts
+++ b/projects/aca-content/src/lib/components/header/header.component.spec.ts
@@ -33,7 +33,6 @@ import { AppTestingModule } from '../../testing/app-testing.module';
import { AppExtensionService, SharedToolbarModule } from '@alfresco/aca-shared';
import { CoreModule } from '@alfresco/adf-core';
import { AppSearchInputModule } from '../search/search-input.module';
-import { By } from '@angular/platform-browser';
describe('AppHeaderComponent', () => {
let component: AppHeaderComponent;
@@ -94,29 +93,5 @@ describe('AppHeaderComponent', () => {
tick();
expect(component.actions).toEqual(actions);
}));
-
- describe('Search input', () => {
- beforeEach(() => {
- localStorage.clear();
- });
-
- afterEach(() => {
- localStorage.clear();
- });
-
- it('should search be present when contentService is enabled', () => {
- fixture.detectChanges();
- const searchInput = fixture.debugElement.query(By.css('.aca-search-input'));
-
- expect(searchInput).not.toBeNull();
- });
-
- it('should search not be present when contentService is disabled', () => {
- localStorage.setItem('contentService', 'false');
- fixture.detectChanges();
- const searchInput = fixture.debugElement.query(By.css('.aca-search-input'));
-
- expect(searchInput).toBeNull();
- });
- });
});
+
diff --git a/projects/aca-content/src/lib/components/sidenav/components/expand-menu.component.html b/projects/aca-content/src/lib/components/sidenav/components/expand-menu.component.html
index ed51d164f..93e39280a 100644
--- a/projects/aca-content/src/lib/components/sidenav/components/expand-menu.component.html
+++ b/projects/aca-content/src/lib/components/sidenav/components/expand-menu.component.html
@@ -10,7 +10,6 @@
mat-button
class="action-button full-width"
>
-
{{ item.title | translate }}
@@ -18,28 +17,23 @@
-
+
-
+
+
diff --git a/projects/aca-content/src/lib/components/sidenav/directives/expansion-panel.directive.ts b/projects/aca-content/src/lib/components/sidenav/directives/expansion-panel.directive.ts
index 1caace78f..bbc4d2019 100644
--- a/projects/aca-content/src/lib/components/sidenav/directives/expansion-panel.directive.ts
+++ b/projects/aca-content/src/lib/components/sidenav/directives/expansion-panel.directive.ts
@@ -64,6 +64,26 @@ export class ExpansionPanelDirective implements OnInit, OnDestroy {
return false;
}
+ isRouteAbout(): boolean {
+ return this.router.url.includes('/about');
+ }
+
+ isRouteProfile(): boolean {
+ return this.router.url.includes('/profile');
+ }
+
+ isRouteSearch(): boolean {
+ return this.router.url.includes('/search');
+ }
+
+ isItemExpanded() {
+ if (this.isRouteAbout() || this.isRouteProfile() || this.isRouteSearch()) {
+ return !this.hasActiveLinks();
+ } else {
+ return this.hasActiveLinks();
+ }
+ }
+
ngOnInit() {
this.hasActiveChildren = this.hasActiveLinks();
diff --git a/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.html b/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.html
new file mode 100644
index 000000000..4b5c9fc0e
--- /dev/null
+++ b/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.scss b/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.scss
new file mode 100644
index 000000000..633c82c7b
--- /dev/null
+++ b/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.scss
@@ -0,0 +1,32 @@
+app-navigation-menu {
+ .app-menu-button {
+ height: 32px;
+ background: none;
+ line-height: 24px;
+ }
+}
+
+.mat-menu-panel {
+ .app-menu-user-details {
+ display: flex;
+ height: 66px;
+
+ &-button {
+ height: 32px;
+ padding: 0;
+ line-height: 24px;
+ background: none;
+ border: none;
+ margin-top: 14px;
+ transform: scale(1.2);
+ }
+
+ &-name-mail {
+ line-height: 40px;
+ }
+
+ &-name {
+ height: 24px;
+ }
+ }
+}
diff --git a/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.ts b/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.ts
new file mode 100644
index 000000000..ee8f5506a
--- /dev/null
+++ b/projects/aca-content/src/lib/components/sidenav/navigation-menu/navigation-menu.component.ts
@@ -0,0 +1,31 @@
+/*
+ * Copyright © 2005 - 2021 Alfresco Software, Ltd. All rights reserved.
+ *
+ * License rights for this program may be obtained from Alfresco Software, Ltd.
+ * pursuant to a written agreement and any use of this program without such an
+ * agreement is prohibited.
+ */
+
+import { Component, OnInit, ViewEncapsulation } from '@angular/core';
+import { ContentApiService } from '@alfresco/aca-shared';
+
+@Component({
+ selector: 'app-navigation-menu',
+ templateUrl: './navigation-menu.component.html',
+ styleUrls: ['./navigation-menu.component.scss'],
+ encapsulation: ViewEncapsulation.None
+})
+export class NavigationMenuComponent implements OnInit {
+ userName = '';
+ userEmail = '';
+
+ constructor(private contentApi: ContentApiService) {}
+
+ ngOnInit() {
+ this.contentApi.getPerson('-me-').subscribe((person) => {
+ const personDetails = person?.entry;
+ this.userName = personDetails.displayName;
+ this.userEmail = personDetails.email;
+ });
+ }
+}
diff --git a/projects/aca-content/src/lib/components/sidenav/sidenav.component.html b/projects/aca-content/src/lib/components/sidenav/sidenav.component.html
index 2c91866da..8b0a19915 100644
--- a/projects/aca-content/src/lib/components/sidenav/sidenav.component.html
+++ b/projects/aca-content/src/lib/components/sidenav/sidenav.component.html
@@ -1,10 +1,21 @@
-