diff --git a/demo-shell-ng2/app/app.component.html b/demo-shell-ng2/app/app.component.html
index ff54c49dbd..92feb69098 100644
--- a/demo-shell-ng2/app/app.component.html
+++ b/demo-shell-ng2/app/app.component.html
@@ -30,25 +30,9 @@
more_vert
-
+
extension
- DL: Trashcan
-
-
- extension
- DL: Shared Links
-
-
- extension
- DL: Sites
-
-
- extension
- DL: Favorites
-
-
- extension
- DL: Recent
+ DL: Custom Sources
view_module
diff --git a/demo-shell-ng2/app/app.module.ts b/demo-shell-ng2/app/app.module.ts
index fa5c696895..d184360c00 100644
--- a/demo-shell-ng2/app/app.module.ts
+++ b/demo-shell-ng2/app/app.module.ts
@@ -45,11 +45,7 @@ import { ThemePickerModule } from './components/theme-picker/theme-picker';
import { MaterialModule } from './material.module';
import { DebugAppConfigService } from './services/debug-app-config.service';
-import { FavoritesComponent } from './components/files/favorites.component';
-import { RecentComponent } from './components/files/recent.component';
-import { SharedLinksComponent } from './components/files/shared-links.component';
-import { SitesComponent } from './components/files/sites.component';
-import { TrashcanComponent } from './components/files/trashcan.component';
+import { CustomSourcesComponent } from './components/files/custom-sources.component';
import {
AboutComponent,
@@ -128,11 +124,7 @@ if (process.env.ENV === 'production') {
SettingsComponent,
FormDemoComponent,
FormListDemoComponent,
- TrashcanComponent,
- SharedLinksComponent,
- SitesComponent,
- FavoritesComponent,
- RecentComponent
+ CustomSourcesComponent
],
providers: [
{ provide: AppConfigService, useClass: DebugAppConfigService },
diff --git a/demo-shell-ng2/app/app.routes.ts b/demo-shell-ng2/app/app.routes.ts
index 6befb2aa7c..ecc6bea0a9 100644
--- a/demo-shell-ng2/app/app.routes.ts
+++ b/demo-shell-ng2/app/app.routes.ts
@@ -39,11 +39,7 @@ import {
} from './components/index';
import { UploadButtonComponent } from 'ng2-alfresco-upload';
-import { FavoritesComponent } from './components/files/favorites.component';
-import { RecentComponent } from './components/files/recent.component';
-import { SharedLinksComponent } from './components/files/shared-links.component';
-import { SitesComponent } from './components/files/sites.component';
-import { TrashcanComponent } from './components/files/trashcan.component';
+import { CustomSourcesComponent } from './components/files/custom-sources.component';
import { FormListDemoComponent } from './components/form/form-list-demo.component';
export const appRoutes: Routes = [
@@ -69,28 +65,8 @@ export const appRoutes: Routes = [
canActivate: [AuthGuardEcm]
},
{
- path: 'trashcan',
- component: TrashcanComponent,
- canActivate: [AuthGuardEcm]
- },
- {
- path: 'shared-links',
- component: SharedLinksComponent,
- canActivate: [AuthGuardEcm]
- },
- {
- path: 'sites',
- component: SitesComponent,
- canActivate: [AuthGuardEcm]
- },
- {
- path: 'favorites',
- component: FavoritesComponent,
- canActivate: [AuthGuardEcm]
- },
- {
- path: 'recent',
- component: RecentComponent,
+ path: 'dl-custom-sources',
+ component: CustomSourcesComponent,
canActivate: [AuthGuardEcm]
},
{
diff --git a/demo-shell-ng2/app/components/files/custom-sources.component.html b/demo-shell-ng2/app/components/files/custom-sources.component.html
new file mode 100644
index 0000000000..cff8d59ede
--- /dev/null
+++ b/demo-shell-ng2/app/components/files/custom-sources.component.html
@@ -0,0 +1,13 @@
+
+
+
+
+ {{ source.title }}
+
+
+
+
+
+
diff --git a/demo-shell-ng2/app/components/files/shared-links.component.ts b/demo-shell-ng2/app/components/files/custom-sources.component.ts
similarity index 50%
rename from demo-shell-ng2/app/components/files/shared-links.component.ts
rename to demo-shell-ng2/app/components/files/custom-sources.component.ts
index af11fd29f3..d047a65729 100644
--- a/demo-shell-ng2/app/components/files/shared-links.component.ts
+++ b/demo-shell-ng2/app/components/files/custom-sources.component.ts
@@ -15,11 +15,25 @@
* limitations under the License.
*/
-import { Component } from '@angular/core';
+import { Component, Input } from '@angular/core';
@Component({
- selector: 'adf-shared-links-demo',
- templateUrl: 'shared-links.component.html'
+ selector: 'adf-custom-sources-demo',
+ templateUrl: 'custom-sources.component.html'
})
-export class SharedLinksComponent {
+export class CustomSourcesComponent {
+
+ @Input()
+ selectedSource = '-recent-';
+
+ sources = [
+ { title: 'Favorites', value: '-favorites-' },
+ { title: 'Recent', value: '-recent-' },
+ { title: 'Shared Links', value: '-sharedlinks-' },
+ { title: 'Sites', value: '-sites-' },
+ { title: 'Trashcan', value: '-trashcan-' },
+ { title: 'Root', value: '-root-' },
+ { title: 'My', value: '-my-' },
+ { title: 'Shared', value: '-shared-' }
+ ];
}
diff --git a/demo-shell-ng2/app/components/files/favorites.component.html b/demo-shell-ng2/app/components/files/favorites.component.html
deleted file mode 100644
index 68ead31ba3..0000000000
--- a/demo-shell-ng2/app/components/files/favorites.component.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/demo-shell-ng2/app/components/files/favorites.component.ts b/demo-shell-ng2/app/components/files/favorites.component.ts
deleted file mode 100644
index d6b7d4023e..0000000000
--- a/demo-shell-ng2/app/components/files/favorites.component.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * @license
- * Copyright 2016 Alfresco Software, Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { Component } from '@angular/core';
-
-@Component({
- selector: 'adf-favorites-demo',
- templateUrl: 'favorites.component.html'
-})
-export class FavoritesComponent {
-}
diff --git a/demo-shell-ng2/app/components/files/recent.component.html b/demo-shell-ng2/app/components/files/recent.component.html
deleted file mode 100644
index d157bd5d93..0000000000
--- a/demo-shell-ng2/app/components/files/recent.component.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/demo-shell-ng2/app/components/files/recent.component.ts b/demo-shell-ng2/app/components/files/recent.component.ts
deleted file mode 100644
index b23a9e933e..0000000000
--- a/demo-shell-ng2/app/components/files/recent.component.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * @license
- * Copyright 2016 Alfresco Software, Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { Component } from '@angular/core';
-
-@Component({
- selector: 'adf-recent-demo',
- templateUrl: 'recent.component.html'
-})
-export class RecentComponent {
-}
diff --git a/demo-shell-ng2/app/components/files/shared-links.component.html b/demo-shell-ng2/app/components/files/shared-links.component.html
deleted file mode 100644
index 16613db0df..0000000000
--- a/demo-shell-ng2/app/components/files/shared-links.component.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/demo-shell-ng2/app/components/files/sites.component.html b/demo-shell-ng2/app/components/files/sites.component.html
deleted file mode 100644
index 1a6dda4905..0000000000
--- a/demo-shell-ng2/app/components/files/sites.component.html
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
diff --git a/demo-shell-ng2/app/components/files/sites.component.ts b/demo-shell-ng2/app/components/files/sites.component.ts
deleted file mode 100644
index 01f2eff4ac..0000000000
--- a/demo-shell-ng2/app/components/files/sites.component.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * @license
- * Copyright 2016 Alfresco Software, Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { Component } from '@angular/core';
-
-@Component({
- selector: 'adf-sites-demo',
- templateUrl: 'sites.component.html'
-})
-export class SitesComponent {
-}
diff --git a/demo-shell-ng2/app/components/files/trashcan.component.html b/demo-shell-ng2/app/components/files/trashcan.component.html
deleted file mode 100644
index 0771c06548..0000000000
--- a/demo-shell-ng2/app/components/files/trashcan.component.html
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/demo-shell-ng2/app/components/files/trashcan.component.ts b/demo-shell-ng2/app/components/files/trashcan.component.ts
deleted file mode 100644
index d92ab94ebd..0000000000
--- a/demo-shell-ng2/app/components/files/trashcan.component.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-/*!
- * @license
- * Copyright 2016 Alfresco Software, Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import { Component } from '@angular/core';
-
-@Component({
- selector: 'adf-trashcan-demo',
- templateUrl: 'trashcan.component.html'
-})
-export class TrashcanComponent {
-}
diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.component.ts b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.component.ts
index 6a8278bd96..6d466ba7ce 100644
--- a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.component.ts
+++ b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.component.ts
@@ -201,6 +201,10 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
}
}
+ get hasCustomLayout(): boolean {
+ return this.columnList && this.columnList.columns && this.columnList.columns.length > 0;
+ }
+
ngOnInit() {
this.data = new ShareDataTableAdapter(this.documentListService, null, this.getDefaultSorting());
this.data.thumbnails = this.thumbnails;
@@ -222,7 +226,7 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
ngAfterContentInit() {
let schema: DataColumn[] = [];
- if (this.columnList && this.columnList.columns && this.columnList.columns.length > 0) {
+ if (this.hasCustomLayout) {
schema = this.columnList.columns.map(c => c);
}
@@ -239,20 +243,23 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
}
ngOnChanges(changes: SimpleChanges) {
- if (changes['folderNode'] && changes['folderNode'].currentValue) {
+ if (changes.folderNode && changes.folderNode.currentValue) {
this.loadFolder();
- } else if (changes['currentFolderId'] && changes['currentFolderId'].currentValue) {
- this.loadFolderByNodeId(changes['currentFolderId'].currentValue);
+ } else if (changes.currentFolderId && changes.currentFolderId.currentValue) {
+ if (!this.hasCustomLayout) {
+ this.setupDefaultColumns(changes.currentFolderId.currentValue);
+ }
+ this.loadFolderByNodeId(changes.currentFolderId.currentValue);
} else if (this.data) {
- if (changes['node'] && changes['node'].currentValue) {
- this.data.loadPage(changes['node'].currentValue);
- } else if (changes['rowFilter']) {
- this.data.setFilter(changes['rowFilter'].currentValue);
+ if (changes.node && changes.node.currentValue) {
+ this.data.loadPage(changes.node.currentValue);
+ } else if (changes.rowFilter) {
+ this.data.setFilter(changes.rowFilter.currentValue);
if (this.currentFolderId) {
this.loadFolderNodesByFolderNodeId(this.currentFolderId, this.pageSize, this.skipCount);
}
- } else if (changes['imageResolver']) {
- this.data.setImageResolver(changes['imageResolver'].currentValue);
+ } else if (changes.imageResolver) {
+ this.data.setImageResolver(changes.imageResolver.currentValue);
}
}
}
@@ -561,8 +568,10 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
* Creates a set of predefined columns.
*/
setupDefaultColumns(preset: string = 'default'): void {
- const columns = this.getLayoutPreset(preset);
- this.data.setColumns(columns);
+ if (this.data) {
+ const columns = this.getLayoutPreset(preset);
+ this.data.setColumns(columns);
+ }
}
onPreviewFile(node: MinimalNodeEntity) {
@@ -711,9 +720,7 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
}
canNavigateFolder(node: MinimalNodeEntity): boolean {
- const restricted = ['-trashcan-', '-sharedlinks-', '-sites-', '-favorites-', '-recent-'];
-
- if (restricted.indexOf(this.currentFolderId) > -1) {
+ if (this.isCustomSource(this.currentFolderId)) {
return false;
}
@@ -724,6 +731,16 @@ export class DocumentListComponent implements OnInit, OnChanges, AfterContentIni
return false;
}
+ isCustomSource(folderId: string): boolean {
+ const sources = ['-trashcan-', '-sharedlinks-', '-sites-', '-favorites-', '-recent-'];
+
+ if (sources.indexOf(folderId) > -1) {
+ return true;
+ }
+
+ return false;
+ }
+
updateSkipCount(newSkipCount) {
this.skipCount = newSkipCount;
}