mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-2054] Created a new widget to handle uploading file from Share (#2810)
* [ADF-2054] start creating custom upload widget for share integration * [ADF-2054] changed content node selector service to allow different opening approach * [ADF-2054] addedd support for multi resource files * [ADF-2054] fixed base case for upload when only local files are selected * [ADF-2054] start adding and fixing tests for new share attach button widget * [ADF-2054] changed test to perfrom a correct check * [ADF-2054] removed fdescribe * [ADF-2054] added test for share-widget component * [ADF-2054] added peer reviews changes * [ADF-2054] created a module folder for content widgets * [ADF-2054] fixed wrong import * [ADF-2054] fixed rebase errors * [ADF-2054] restored some files changed by rebase * [ADF-2054] added link to content services to fix packaging issue * [ADF-2054] renamed widget
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
import { AlfrescoApiService } from '../../services/alfresco-api.service';
|
||||
import { LogService } from '../../services/log.service';
|
||||
import { Injectable } from '@angular/core';
|
||||
import { AlfrescoApi } from 'alfresco-js-api';
|
||||
import { AlfrescoApi, MinimalNodeEntryEntity } from 'alfresco-js-api';
|
||||
import { Observable } from 'rxjs/Observable';
|
||||
import { ExternalContent } from '../components/widgets/core/external-content';
|
||||
import { ExternalContentLink } from '../components/widgets/core/external-content-link';
|
||||
@@ -49,6 +49,24 @@ export class ActivitiContentService {
|
||||
.catch(err => this.handleError(err));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all the repositories configured
|
||||
*
|
||||
* @param accountId
|
||||
* @param folderId
|
||||
* @returns {any}
|
||||
*/
|
||||
getAlfrescoRepositories(tenantId: number, includeAccount: boolean): Observable<any> {
|
||||
let apiService: AlfrescoApi = this.apiService.getInstance();
|
||||
const opts = {
|
||||
tenantId: tenantId,
|
||||
includeAccounts: includeAccount
|
||||
};
|
||||
return Observable.fromPromise(apiService.activiti.alfrescoApi.getRepositories(opts))
|
||||
.map(this.toJsonArray)
|
||||
.catch(err => this.handleError(err));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of child nodes below the specified folder
|
||||
*
|
||||
@@ -68,6 +86,20 @@ export class ActivitiContentService {
|
||||
})).map(this.toJson).catch(err => this.handleError(err));
|
||||
}
|
||||
|
||||
applyAlfrescoNode(node: MinimalNodeEntryEntity, siteId: string, accountId: string) {
|
||||
let apiService: AlfrescoApi = this.apiService.getInstance();
|
||||
let params: any = {
|
||||
source: accountId,
|
||||
sourceId: node.id + ';1.0@' + siteId,
|
||||
name: node.name,
|
||||
link: false
|
||||
};
|
||||
return Observable.fromPromise(
|
||||
apiService.activiti.contentApi.createTemporaryRelatedContent(params))
|
||||
.map(this.toJson)
|
||||
.catch(err => this.handleError(err));
|
||||
}
|
||||
|
||||
toJson(res: any) {
|
||||
if (res) {
|
||||
return res || {};
|
||||
|
@@ -17,7 +17,6 @@
|
||||
|
||||
import { DynamicComponentResolver } from '../../index';
|
||||
import {
|
||||
AttachWidgetComponent,
|
||||
FormFieldModel,
|
||||
FormFieldTypes,
|
||||
UnknownWidgetComponent,
|
||||
@@ -33,17 +32,6 @@ describe('FormRenderingService', () => {
|
||||
service = new FormRenderingService();
|
||||
});
|
||||
|
||||
it('should resolve Upload field as Attach widget', () => {
|
||||
let field = new FormFieldModel(null, {
|
||||
type: FormFieldTypes.UPLOAD,
|
||||
params: {
|
||||
link: 'link'
|
||||
}
|
||||
});
|
||||
let type = service.resolveComponentType(field);
|
||||
expect(type).toBe(AttachWidgetComponent);
|
||||
});
|
||||
|
||||
it('should resolve Upload field as Upload widget', () => {
|
||||
let field = new FormFieldModel(null, {
|
||||
type: FormFieldTypes.UPLOAD,
|
||||
@@ -55,10 +43,10 @@ describe('FormRenderingService', () => {
|
||||
expect(type).toBe(UploadWidgetComponent);
|
||||
});
|
||||
|
||||
it('should resolve Unknown widget for Upload field', () => {
|
||||
it('should resolve Upload widget for Upload field', () => {
|
||||
let resolver = service.getComponentTypeResolver(FormFieldTypes.UPLOAD);
|
||||
let type = resolver(null);
|
||||
expect(type).toBe(UnknownWidgetComponent);
|
||||
expect(type).toBe(UploadWidgetComponent);
|
||||
});
|
||||
|
||||
it('should resolve Uknown widget for unknown field type', () => {
|
||||
@@ -67,12 +55,6 @@ describe('FormRenderingService', () => {
|
||||
expect(type).toBe(UnknownWidgetComponent);
|
||||
});
|
||||
|
||||
it('shoulld resolve custom value for unknown field type', () => {
|
||||
let resolver = service.getComponentTypeResolver('missing-type', AttachWidgetComponent);
|
||||
let type = resolver(null);
|
||||
expect(type).toBe(AttachWidgetComponent);
|
||||
});
|
||||
|
||||
it('should fallback to default resolver when field type missing', () => {
|
||||
let resolver = service.getComponentTypeResolver(null);
|
||||
let type = resolver(null);
|
||||
@@ -123,7 +105,7 @@ describe('FormRenderingService', () => {
|
||||
});
|
||||
|
||||
it('should return custom value when resolving with no field', () => {
|
||||
expect(service.resolveComponentType(null, AttachWidgetComponent)).toBe(AttachWidgetComponent);
|
||||
expect(service.resolveComponentType(null, UploadWidgetComponent)).toBe(UploadWidgetComponent);
|
||||
});
|
||||
|
||||
});
|
||||
|
@@ -20,7 +20,6 @@ import { Injectable, Type } from '@angular/core';
|
||||
|
||||
import {
|
||||
AmountWidgetComponent,
|
||||
AttachWidgetComponent,
|
||||
CheckboxWidgetComponent,
|
||||
ContainerWidgetComponent,
|
||||
DateWidgetComponent,
|
||||
@@ -28,7 +27,6 @@ import {
|
||||
DocumentWidgetComponent,
|
||||
DropdownWidgetComponent,
|
||||
DynamicTableWidgetComponent,
|
||||
FormFieldModel,
|
||||
FunctionalGroupWidgetComponent,
|
||||
HyperlinkWidgetComponent,
|
||||
MultilineTextWidgetComponentComponent,
|
||||
@@ -63,21 +61,11 @@ export class FormRenderingService extends DynamicComponentMapper {
|
||||
'dynamic-table': DynamicComponentResolver.fromType(DynamicTableWidgetComponent),
|
||||
'container': DynamicComponentResolver.fromType(ContainerWidgetComponent),
|
||||
'group': DynamicComponentResolver.fromType(ContainerWidgetComponent),
|
||||
'document': DynamicComponentResolver.fromType(DocumentWidgetComponent)
|
||||
'document': DynamicComponentResolver.fromType(DocumentWidgetComponent),
|
||||
'upload': DynamicComponentResolver.fromType(UploadWidgetComponent)
|
||||
};
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.types['upload'] = (field: FormFieldModel): Type<{}> => {
|
||||
if (field) {
|
||||
let params = field.params;
|
||||
if (params && params.link) {
|
||||
return AttachWidgetComponent;
|
||||
}
|
||||
return UploadWidgetComponent;
|
||||
}
|
||||
return UnknownWidgetComponent;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user