style permissions fix and add in hasPermission possibility to check t… (#2113)

* style permissions fix and add in hasPermission possibility to check the negate permission
* remove fdescribe in discovery test and add test for negate permissions
This commit is contained in:
Eugenio Romano 2017-07-22 16:01:08 +01:00
parent 03f60d910f
commit d573f32640
8 changed files with 37 additions and 20 deletions

View File

@ -24,6 +24,14 @@ adf-document-list >>> adf-datatable tr.is-selected .image-table-cell {
position: relative; position: relative;
} }
adf-document-list >>> adf-datatable tr.document-list__create {
background: green !important;
}
adf-document-list >>> adf-datatable tr.document-list__disable {
background: red !important;
}
adf-document-list >>> adf-datatable tr.is-selected .image-table-cell::before { adf-document-list >>> adf-datatable tr.is-selected .image-table-cell::before {
content: "\E876"; /* "done" */ content: "\E876"; /* "done" */
font-family: "Material Icons"; font-family: "Material Icons";
@ -45,7 +53,8 @@ adf-document-list >>> adf-datatable tr.is-selected .image-table-cell::before {
.adf-demo-site-container-style { .adf-demo-site-container-style {
margin-top: 10px; margin-top: 10px;
margin-bottom: 10px; margin-bottom: 10px;
margin-left: 3%;
width: 100%; width: 100%;
min-width: 200px; min-width: 200px;
} }

View File

@ -1,7 +1,5 @@
<div class="container"> <div class="container">
<div class="adf-demo-site-container-style" id="demo-container"> <div class="adf-demo-site-container-style" id="demo-container">
<span> Choose A Site from DropDown </span>
<p></p>
<adf-sites-dropdown (change)="getSiteContent($event)"> <adf-sites-dropdown (change)="getSiteContent($event)">
</adf-sites-dropdown> </adf-sites-dropdown>
</div> </div>

View File

@ -18,7 +18,7 @@
import { ChangeDetectorRef, Component, Input, OnInit, Optional, ViewChild } from '@angular/core'; import { ChangeDetectorRef, Component, Input, OnInit, Optional, ViewChild } from '@angular/core';
import { MdDialog } from '@angular/material'; import { MdDialog } from '@angular/material';
import { ActivatedRoute, Params } from '@angular/router'; import { ActivatedRoute, Params } from '@angular/router';
import { AlfrescoContentService, FileUploadCompleteEvent, FolderCreatedEvent, NotificationService, SiteModel, UploadService } from 'ng2-alfresco-core'; import { AlfrescoContentService, FileUploadCompleteEvent, FolderCreatedEvent, NotificationService, PermissionsEnum, SiteModel, UploadService } from 'ng2-alfresco-core';
import { DocumentListComponent, DropdownSitesComponent, PermissionStyleModel } from 'ng2-alfresco-documentlist'; import { DocumentListComponent, DropdownSitesComponent, PermissionStyleModel } from 'ng2-alfresco-documentlist';
import { CreateFolderDialogComponent } from '../../dialogs/create-folder.dialog'; import { CreateFolderDialogComponent } from '../../dialogs/create-folder.dialog';
@ -40,7 +40,7 @@ export class FilesComponent implements OnInit {
useCustomToolbar = true; useCustomToolbar = true;
toolbarColor = 'default'; toolbarColor = 'default';
useDropdownBreadcrumb = true; useDropdownBreadcrumb = false;
selectionModes = [ selectionModes = [
{ value: 'none', viewValue: 'None' }, { value: 'none', viewValue: 'None' },
@ -115,6 +115,9 @@ export class FilesComponent implements OnInit {
this.uploadService.fileUploadComplete.debounceTime(300).subscribe(value => this.onFileUploadComplete(value)); this.uploadService.fileUploadComplete.debounceTime(300).subscribe(value => this.onFileUploadComplete(value));
this.contentService.folderCreated.subscribe(value => this.onFolderCreated(value)); this.contentService.folderCreated.subscribe(value => this.onFolderCreated(value));
// this.permissionsStyle.push(new PermissionStyleModel('document-list__create', PermissionsEnum.CREATE));
// this.permissionsStyle.push(new PermissionStyleModel('document-list__disable', PermissionsEnum.NOT_CREATE, false, true));
} }
onNavigationError(err: any) { onNavigationError(err: any) {

View File

@ -111,19 +111,29 @@ describe('AlfrescoContentService', () => {
}); });
}); });
it('should havePermission should be false if allowableOperation is not present in the node', () => { it('should havePermission be false if allowableOperation is not present in the node', () => {
let permissionNode = {}; let permissionNode = {};
expect(contentService.hasPermission(permissionNode, 'create')).toBeFalsy(); expect(contentService.hasPermission(permissionNode, 'create')).toBeFalsy();
}); });
it('should havePermission should be true if allowableOperation is present and you have the permission for the request operation', () => { it('should havePermission be true if allowableOperation is present and you have the permission for the request operation', () => {
let permissionNode = {allowableOperations: ['delete', 'update', 'create', 'updatePermissions']}; let permissionNode = {allowableOperations: ['delete', 'update', 'create', 'updatePermissions']};
expect(contentService.hasPermission(permissionNode, 'create')).toBeTruthy(); expect(contentService.hasPermission(permissionNode, 'create')).toBeTruthy();
}); });
it('should havePermission should be false if allowableOperation is present but you don\'t have the permission for the request operation', () => { it('should havePermission be false if allowableOperation is present but you don\'t have the permission for the request operation', () => {
let permissionNode = {allowableOperations: ['delete', 'update', 'updatePermissions']}; let permissionNode = {allowableOperations: ['delete', 'update', 'updatePermissions']};
expect(contentService.hasPermission(permissionNode, 'create')).toBeFalsy(); expect(contentService.hasPermission(permissionNode, 'create')).toBeFalsy();
}); });
it('should havePermission works in the opposite way with negate value', () => {
let permissionNode = {allowableOperations: ['delete', 'update', 'updatePermissions']};
expect(contentService.hasPermission(permissionNode, '!create')).toBeTruthy();
});
it('should havePermission return false id no permission parameter are passed', () => {
let permissionNode = {allowableOperations: ['delete', 'update', 'updatePermissions']};
expect(contentService.hasPermission(permissionNode, null)).toBeFalsy();
});
}); });

View File

@ -90,7 +90,7 @@ let fakeBPMDiscoveryResponse: any = {
'minorVersion': '6' 'minorVersion': '6'
}; };
fdescribe('Discovery Api Service', () => { describe('Discovery Api Service', () => {
let service; let service;

View File

@ -1060,6 +1060,7 @@ The permissionsStyle array can define different styles depending from the permi
[PermissionStyleModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-alfresco-documentlist/src/models/permissions-style.model.ts) [PermissionStyleModel](https://github.com/Alfresco/alfresco-ng2-components/blob/master/ng2-components/ng2-alfresco-documentlist/src/models/permissions-style.model.ts)
| Property | Description | | Property | Description |
| --- | --- | --- | --- |
| isFile/isFolder | allow you to select if you want apply the style to file/folder nodes | | isFile/isFolder | allow you to select if you want apply the style to file/folder nodes |
| permission | is an enum value [Permissions](https://github.com/Alfresco/alfresco-ng2-core/blob/master/ng2-components/ng2-alfresco-documentlist/src/models/permissions.enum.ts) | | permission | is an enum value [Permissions](https://github.com/Alfresco/alfresco-ng2-core/blob/master/ng2-components/ng2-alfresco-documentlist/src/models/permissions.enum.ts) |
| css| the name of the class to add | | css| the name of the class to add |
@ -1080,9 +1081,8 @@ this.permissionsStyle.push(new PermissionStyleModel('document-list__create', Per
``` ```
```css ```css
adf-document-list >>> adf-datatable tr.document-list__create {
adf-document-list >>> adf-datatable >>> tr.alfresco-datatable__row.document-list__create { background: green !important;
color: rgb(57, 239, 121);
} }
``` ```
@ -1102,10 +1102,8 @@ this.permissionsStyle.push(new PermissionStyleModel('document-list__disable', Pe
``` ```
```css ```css
adf-document-list >>> adf-datatable tr.document-list__disable {
adf-document-list >>> adf-datatable >>> tr.alfresco-datatable__row.document-list__disable { background: red !important;
color: rgba(0, 0, 0, 0.28);
} }
``` ```

View File

@ -59,6 +59,7 @@ export * from './src/models/content-action.model';
export * from './src/models/document-library.model'; export * from './src/models/document-library.model';
export * from './src/models/permissions.model'; export * from './src/models/permissions.model';
export * from './src/models/permissions-style.model'; export * from './src/models/permissions-style.model';
export * from './src/models/permissions-style.model';
export const DOCUMENT_LIST_DIRECTIVES: any[] = [ export const DOCUMENT_LIST_DIRECTIVES: any[] = [
DocumentListComponent, DocumentListComponent,

View File

@ -256,10 +256,8 @@ export class ShareDataRow implements DataRow {
if (this.applyPermissionStyleToFolder(nodeEntity.entry, currentPermissionsStyle) || this.applyPermissionStyleToFile(nodeEntity.entry, currentPermissionsStyle)) { if (this.applyPermissionStyleToFolder(nodeEntity.entry, currentPermissionsStyle) || this.applyPermissionStyleToFile(nodeEntity.entry, currentPermissionsStyle)) {
if (currentPermissionsStyle.permission.startsWith('!') && !this.documentListService.hasPermission(nodeEntity.entry, currentPermissionsStyle.permission)) { if (this.documentListService.hasPermission(nodeEntity.entry, currentPermissionsStyle.permission)) {
permissionsClasses += ` ${currentPermissionsStyle.css}`; permissionsClasses += ` ${currentPermissionsStyle.css}`;
} else if (this.documentListService.hasPermission(nodeEntity.entry, currentPermissionsStyle.permission)) {
permissionsClasses += ` ${currentPermissionsStyle.css}`;
} }
} }