diff --git a/demo-shell-ng2/app/components/files/files.component.html b/demo-shell-ng2/app/components/files/files.component.html index 21f76c9e68..b3be56f5b5 100644 --- a/demo-shell-ng2/app/components/files/files.component.html +++ b/demo-shell-ng2/app/components/files/files.component.html @@ -9,6 +9,13 @@ [breadcrumb]="breadcrumb" (itemClick)="showFile($event)" (folderChange)="onFolderChanged($event)"> +
- \ No newline at end of file + diff --git a/ng2-components/ng2-alfresco-documentlist/README.md b/ng2-components/ng2-alfresco-documentlist/README.md index a639182743..55b6f939d4 100644 --- a/ng2-components/ng2-alfresco-documentlist/README.md +++ b/ng2-components/ng2-alfresco-documentlist/README.md @@ -458,6 +458,29 @@ export class MyView { ## Advanced usage and customization +### Custom 'empty folder' template + +By default Document List provides the following content for the empty folder: + +![Default empty folder](docs/assets/empty-folder-template-default.png) + +This can be changed by means of the custom html template: + +```html + + + + + +``` + +That will give the following output: + +![Custom empty folder](docs/assets/empty-folder-template-custom.png) + + ### Customizing default actions It is possible extending or replacing the list of available system actions for documents and folders. diff --git a/ng2-components/ng2-alfresco-documentlist/docs/assets/empty-folder-template-custom.png b/ng2-components/ng2-alfresco-documentlist/docs/assets/empty-folder-template-custom.png new file mode 100644 index 0000000000..244955a774 Binary files /dev/null and b/ng2-components/ng2-alfresco-documentlist/docs/assets/empty-folder-template-custom.png differ diff --git a/ng2-components/ng2-alfresco-documentlist/docs/assets/empty-folder-template-default.png b/ng2-components/ng2-alfresco-documentlist/docs/assets/empty-folder-template-default.png new file mode 100644 index 0000000000..5749a98382 Binary files /dev/null and b/ng2-components/ng2-alfresco-documentlist/docs/assets/empty-folder-template-default.png differ diff --git a/ng2-components/ng2-alfresco-documentlist/ng2-alfresco-documentlist.ts b/ng2-components/ng2-alfresco-documentlist/ng2-alfresco-documentlist.ts index a8672e9163..1aff9fc9fd 100644 --- a/ng2-components/ng2-alfresco-documentlist/ng2-alfresco-documentlist.ts +++ b/ng2-components/ng2-alfresco-documentlist/ng2-alfresco-documentlist.ts @@ -20,6 +20,7 @@ import { ContentColumn } from './src/components/content-column'; import { ContentColumnList } from './src/components/content-column-list'; import { ContentAction } from './src/components/content-action'; import { ContentActionList } from './src/components/content-action-list'; +import { EmptyFolderContent } from './src/components/empty-folder-content'; import { FolderActionsService } from './src/services/folder-actions.service'; import { DocumentActionsService } from './src/services/document-actions.service'; @@ -31,6 +32,7 @@ export * from './src/components/content-column'; export * from './src/components/content-column-list'; export * from './src/components/content-action'; export * from './src/components/content-action-list'; +export * from './src/components/empty-folder-content'; // models export * from './src/models/column-sorting.model'; @@ -60,7 +62,8 @@ export const DOCUMENT_LIST_DIRECTIVES: [any] = [ ContentColumn, ContentColumnList, ContentAction, - ContentActionList + ContentActionList, + EmptyFolderContent ]; export const DOCUMENT_LIST_PROVIDERS: [any] = [ diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.css b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.css index d2fb653c58..b7f5bfbaca 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.css +++ b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.css @@ -64,6 +64,10 @@ color: #777; } +:host .empty-folder-content > img { + width: 100%; +} + /* Utils */ :host .sr-only { diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.empty-folder.png b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.empty-folder.png new file mode 100644 index 0000000000..9c335a6d7c Binary files /dev/null and b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.empty-folder.png differ diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.html b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.html index 8dc4bfacd8..8b49b4ab33 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.html +++ b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.html @@ -100,5 +100,18 @@ + + + + + + + + diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts index a83c4f4ea2..119a4aa834 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts +++ b/ng2-components/ng2-alfresco-documentlist/src/components/document-list.ts @@ -23,7 +23,8 @@ import { EventEmitter, AfterContentInit, AfterViewChecked, - OnChanges + OnChanges, + TemplateRef } from 'angular2/core'; import { AlfrescoService } from './../services/alfresco.service'; import { MinimalNodeEntity, NodePaging } from './../models/document-library.model'; @@ -45,6 +46,8 @@ export class DocumentList implements OnInit, AfterViewChecked, AfterContentInit, DEFAULT_ROOT_FOLDER: string = '/Sites/swsdp/documentLibrary'; + __baseUrl = __moduleName.replace('/document-list.js', ''); + @Input() navigate: boolean = true; @@ -73,6 +76,7 @@ export class DocumentList implements OnInit, AfterViewChecked, AfterContentInit, actions: ContentActionModel[] = []; columns: ContentColumnModel[] = []; + emptyFolderTemplate: TemplateRef; private _folder: NodePaging; diff --git a/ng2-components/ng2-alfresco-documentlist/src/components/empty-folder-content.ts b/ng2-components/ng2-alfresco-documentlist/src/components/empty-folder-content.ts new file mode 100644 index 0000000000..5a4ae68e14 --- /dev/null +++ b/ng2-components/ng2-alfresco-documentlist/src/components/empty-folder-content.ts @@ -0,0 +1,45 @@ +/*! + * @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 { + Directive, + ContentChild, + TemplateRef, + OnInit, + AfterContentInit +} from 'angular2/core'; +import { DocumentList } from './document-list'; + +@Directive({ + selector: 'empty-folder-content' +}) +export class EmptyFolderContent implements OnInit, AfterContentInit { + + @ContentChild(TemplateRef) + template: any; + + constructor( + private documentList: DocumentList) { + } + + ngOnInit() { + } + + ngAfterContentInit() { + this.documentList.emptyFolderTemplate = this.template; + } +} diff --git a/ng2-components/ng2-alfresco-documentlist/src/models/document-library.model.ts b/ng2-components/ng2-alfresco-documentlist/src/models/document-library.model.ts index 8859ae1c3b..7f72a7e04b 100644 --- a/ng2-components/ng2-alfresco-documentlist/src/models/document-library.model.ts +++ b/ng2-components/ng2-alfresco-documentlist/src/models/document-library.model.ts @@ -17,10 +17,12 @@ // note: contains only limited subset of available fields +// TODO: deprecated export class FolderEntity { items: DocumentEntity[]; } +// TODO: deprecated export class DocumentEntity { nodeRef: string; nodeType: string; @@ -52,6 +54,7 @@ export class DocumentEntity { location: LocationEntity; } +// TODO: deprecated export class LocationEntity { repositoryId: string; site: string; @@ -62,6 +65,7 @@ export class LocationEntity { parent: LocationParentEntity; } +// TODO: deprecated export class LocationParentEntity { nodeRef: string; }