Maurizio Vitale be49e72208 [ADF-4340] FormCloud - Be able to upload a file from the local source (#4647)
* Add a shiny upload button

* Fix tslint

* Enable the viewer on the content click

* Call the process storage in case the form has an upload

* Fix the lint

* Fix unit tests

* Fix tslint on unit tests

* Fix the lint

* Fix the lint
2019-04-25 15:23:07 +01:00

415 lines
16 KiB
TypeScript

/*!
* @license
* Copyright 2019 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 { ModuleWithProviders } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { AuthGuard, AuthGuardEcm, ErrorContentComponent, AuthGuardBpm, AuthGuardSsoRoleService } from '@alfresco/adf-core';
import { AppLayoutComponent } from './components/app-layout/app-layout.component';
import { LoginComponent } from './components/login/login.component';
import { HomeComponent } from './components/home/home.component';
import { LogoutComponent } from './components/logout/logout.component';
import { ProcessServiceComponent } from './components/process-service/process-service.component';
import { ShowDiagramComponent } from './components/process-service/show-diagram.component';
import { FormViewerComponent } from './components/process-service/form-viewer.component';
import { FormNodeViewerComponent } from './components/process-service/form-node-viewer.component';
import { AppsViewComponent } from './components/process-service/apps-view.component';
import { SearchResultComponent } from './components/search/search-result.component';
import { SearchExtendedComponent } from './components/search/search-extended.component';
import { FilesComponent } from './components/files/files.component';
import { FormComponent } from './components/form/form.component';
import { FormListComponent } from './components/form/form-list.component';
import { OverlayViewerComponent } from './components/overlay-viewer/overlay-viewer.component';
import { SharedLinkViewComponent } from './components/shared-link-view/shared-link-view.component';
import { FormLoadingComponent } from './components/form/form-loading.component';
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
import { ReportIssueComponent } from './components/report-issue/report-issue.component';
import { AppComponent } from './app.component';
import { TreeViewSampleComponent } from './components/tree-view/tree-view-sample.component';
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
import { PeopleGroupCloudDemoComponent } from './components/cloud/people-groups-cloud-demo.component';
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
import { ProcessesCloudDemoComponent } from './components/cloud/processes-cloud-demo.component';
import { StartTaskCloudDemoComponent } from './components/cloud/start-task-cloud-demo.component';
import { StartProcessCloudDemoComponent } from './components/cloud/start-process-cloud-demo.component';
import { TaskDetailsCloudDemoComponent } from './components/cloud/task-details-cloud-demo.component';
import { CloudViewerComponent } from './components/cloud/cloud-viewer.component';
import { ProcessDetailsCloudDemoComponent } from './components/cloud/process-details-cloud-demo.component';
import { TemplateDemoComponent } from './components/template-list/template-demo.component';
import { FormCloudDemoComponent } from './components/app-layout/cloud/form-demo/cloud-form-demo.component';
import { ConfirmDialogExampleComponent } from './components/confirm-dialog/confirm-dialog-example.component';
export const appRoutes: Routes = [
{ path: 'login', component: LoginComponent },
{ path: 'logout', component: LogoutComponent },
{
path: 'settings',
loadChildren: 'app/components/settings/settings.module#AppSettingsModule'
},
{
path: 'files/:nodeId/view',
component: AppComponent,
canActivate: [ AuthGuardEcm ],
canActivateChild: [ AuthGuardEcm ],
outlet: 'overlay',
children: [
{
path: '',
loadChildren: 'app/components/file-view/file-view.module#FileViewModule'
}
]
},
{
path: 'preview/blob',
component: AppComponent,
outlet: 'overlay',
pathMatch: 'full',
children: [
{
path: '',
loadChildren: 'app/components/blob-preview/blob-preview.module#BlobPreviewModule'
}
]
},
{ path: 'preview/s/:id', component: SharedLinkViewComponent },
{
path: '',
component: AppLayoutComponent,
canActivate: [AuthGuard],
children: [
{
path: 'breadcrumb',
canActivate: [AuthGuardEcm],
loadChildren: 'app/components/breadcrumb-demo/breadcrumb-demo.module#AppBreadcrumbModule'
},
{
path: 'notifications',
children: [
{
path: '',
loadChildren: 'app/components/notifications/notifications.module#AppNotificationsModule'
}
]
},
{
path: 'config-editor',
children: [
{
path: '',
loadChildren: 'app/components/config-editor/config-editor.module#AppConfigEditorModule'
}
]
},
{
path: 'card-view',
children: [
{
path: '',
loadChildren: 'app/components/card-view/card-view.module#AppCardViewModule'
}
]
},
{
path: 'sites',
children: [
{
path: '',
loadChildren: 'app/components/sites/sites.module#SitesModule'
}
]
},
{
path: 'header-data',
children: [
{
path: '',
loadChildren: 'app/components/header-data/header-data.module#AppHeaderDataModule'
}
]
},
{
path: '',
component: HomeComponent
},
{
path: 'home',
component: HomeComponent
},
{
path: 'cloud',
canActivate: [AuthGuardSsoRoleService],
data: { roles: ['ACTIVITI_USER'], redirectUrl: '/error/403'},
children: [
{
path: '',
component: AppsCloudDemoComponent
},
{
path: 'people-group-cloud',
component: PeopleGroupCloudDemoComponent
},
{
path: ':appName',
canActivate: [AuthGuardSsoRoleService],
data: { clientRoles: ['appName'], roles: ['ACTIVITI_USER'], redirectUrl: '/error/403'},
children: [
{
path: '',
component: CloudLayoutComponent,
children: [
{
path: 'tasks',
component: TasksCloudDemoComponent
},
{
path: 'processes',
component: ProcessesCloudDemoComponent
}
]
},
{
path: 'start-task',
component: StartTaskCloudDemoComponent
},
{
path: 'start-process',
component: StartProcessCloudDemoComponent
},
{
path: 'task-details/:taskId',
component: TaskDetailsCloudDemoComponent
},
{
path: 'task-details/:taskId/files/:nodeId/view',
component: CloudViewerComponent
},
{
path: 'process-details/:processInstanceId',
component: ProcessDetailsCloudDemoComponent
}
]
}
]
},
{
path: 'node-selector',
loadChildren: 'app/components/content-node-selector/content-node-selector.module#AppContentNodeSelectorModule'
},
{
path: 'confirm-dialog',
component: ConfirmDialogExampleComponent
},
{
path: 'settings-layout',
loadChildren: 'app/components/settings/settings.module#AppSettingsModule'
},
{
path: 'trashcan',
canActivate: [AuthGuardEcm],
loadChildren: 'app/components/trashcan/trashcan.module#AppTrashcanModule'
},
{
path: 'files',
component: FilesComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'extensions/document-list/presets',
canActivate: [AuthGuardEcm],
loadChildren: './components/document-list/extension-presets/extension-presets.module#ExtensionPresetsModule'
},
{
path: 'files/:id',
component: FilesComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'files/:id/display/:mode',
component: FilesComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'dl-custom-sources',
canActivate: [AuthGuardEcm],
loadChildren: 'app/components/files/custom-sources.module#AppCustomSourcesModule'
},
{
path: 'datatable',
loadChildren: 'app/components/datatable/datatable.module#AppDataTableModule'
},
{
path: 'datatable/dnd',
loadChildren: './components/datatable/drag-and-drop/datatable-dnd.module#AppDataTableDndModule'
},
{
path: 'search',
component: SearchResultComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'extendedSearch',
component: SearchExtendedComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'activiti',
component: AppsViewComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps',
component: AppsViewComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps/:appId/tasks',
component: ProcessServiceComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps/:appId/tasks/:filterId',
component: ProcessServiceComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps/:appId/processes',
component: ProcessServiceComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps/:appId/processes/:filterId',
component: ProcessServiceComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps/:appId/diagram/:processDefinitionId',
component: ShowDiagramComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'activiti/apps/:appId/report',
component: ProcessServiceComponent,
canActivate: [AuthGuardBpm]
},
// TODO: check if needed
{
path: 'activiti/appId/:appId',
component: ProcessServiceComponent,
canActivate: [AuthGuardBpm]
},
// TODO: check if needed
{
path: 'activiti/tasks/:id',
component: FormViewerComponent,
canActivate: [AuthGuardBpm]
},
// TODO: check if needed
{
/* cspell:disable-next-line */
path: 'activiti/tasksnode/:id',
component: FormNodeViewerComponent,
canActivate: [AuthGuardBpm]
},
{
path: 'webscript',
canActivate: [AuthGuardEcm],
loadChildren: 'app/components/webscript/webscript.module#AppWebScriptModule'
},
{
path: 'tag',
canActivate: [AuthGuardEcm],
loadChildren: 'app/components/tag/tag.module#AppTagModule'
},
{
path: 'social',
canActivate: [AuthGuardEcm],
loadChildren: 'app/components/social/social.module#AppSocialModule'
},
{
path: 'permissions/:id',
component: DemoPermissionComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'treeview',
component: TreeViewSampleComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'about',
loadChildren: 'app/components/about/about.module#AppAboutModule'
},
{
path: 'icons',
loadChildren: './components/icons/icons.module#AppIconsModule'
},
{ path: 'form-cloud', component: FormCloudDemoComponent },
{ path: 'form', component: FormComponent },
{ path: 'form-list', component: FormListComponent },
{ path: 'form-loading', component: FormLoadingComponent },
{
path: 'overlay-viewer',
component: OverlayViewerComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'report-issue',
component: ReportIssueComponent
},
{
path: 'datatable-lazy',
loadChildren: 'app/components/lazy-loading/lazy-loading.module#LazyLoadingModule'
},
{
path: 'copy-content',
loadChildren: 'app/components/datatable/copy-content/datatable.module#AppDataTableCopyModule'
},
{
path: 'template-list',
component: TemplateDemoComponent
},
{
path: 'task-list',
canActivate: [AuthGuardBpm],
loadChildren: 'app/components/task-list-demo/task-list.module#AppTaskListModule'
},
{
path: 'process-list',
canActivate: [AuthGuardBpm],
loadChildren: 'app/components/process-list-demo/process-list.module#AppProcessListModule'
},
{
path: 'error/:id',
component: ErrorContentComponent
},
{
path: 'error/no-authorization',
component: ErrorContentComponent
},
{
path: '**',
redirectTo: 'error/404'
}
]
}
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, { initialNavigation: true });