From db3e8f92468e8de0bcaa9c57de875f5385acf0ec Mon Sep 17 00:00:00 2001 From: Yury Bondarenko Date: Wed, 23 Nov 2022 19:38:52 +0100 Subject: [PATCH] 96252: Extract upload-specific code from SharedModule --- src/app/admin/admin.module.ts | 4 +- .../collection-page/collection-page.module.ts | 4 +- .../edit-collection-page.module.ts | 2 +- .../community-page/community-page.module.ts | 2 +- .../edit-community-page.module.ts | 2 +- src/app/core/core.module.ts | 3 -- .../drag.service.ts} | 14 ++++++- .../upload/upload-bitstream.component.ts | 4 +- src/app/item-page/item-page.module.ts | 4 +- ...my-dspace-new-submission.component.spec.ts | 6 +-- .../my-dspace-new-submission.component.ts | 6 +-- .../my-dspace-page/my-dspace-page.module.ts | 4 +- .../comcol-form/comcol-form.component.ts | 4 +- src/app/shared/comcol/comcol.module.ts | 9 +++-- src/app/shared/shared.module.ts | 8 ---- .../file-dropzone-no-uploader.component.html | 0 .../file-dropzone-no-uploader.component.ts | 0 .../file-dropzone-no-uploader.scss | 0 src/app/shared/upload/upload.module.ts | 38 +++++++++++++++++++ .../uploader/uploader-error.model.ts | 0 .../uploader/uploader-options.model.ts | 2 +- .../uploader/uploader-properties.model.ts | 2 +- .../uploader/uploader.component.html | 0 .../uploader/uploader.component.scss | 0 .../uploader/uploader.component.spec.ts | 12 +++--- .../uploader/uploader.component.ts | 20 ++++++---- .../form/submission-form.component.ts | 2 +- .../submission-upload-files.component.spec.ts | 2 +- src/app/submission/submission.module.ts | 4 +- 29 files changed, 104 insertions(+), 54 deletions(-) rename src/app/{shared/uploader/uploader.service.ts => core/drag.service.ts} (53%) rename src/app/shared/{ => upload}/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html (100%) rename src/app/shared/{ => upload}/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts (100%) rename src/app/shared/{ => upload}/file-dropzone-no-uploader/file-dropzone-no-uploader.scss (100%) create mode 100644 src/app/shared/upload/upload.module.ts rename src/app/shared/{ => upload}/uploader/uploader-error.model.ts (100%) rename src/app/shared/{ => upload}/uploader/uploader-options.model.ts (86%) rename src/app/shared/{ => upload}/uploader/uploader-properties.model.ts (83%) rename src/app/shared/{ => upload}/uploader/uploader.component.html (100%) rename src/app/shared/{ => upload}/uploader/uploader.component.scss (100%) rename src/app/shared/{ => upload}/uploader/uploader.component.spec.ts (86%) rename src/app/shared/{ => upload}/uploader/uploader.component.ts (93%) diff --git a/src/app/admin/admin.module.ts b/src/app/admin/admin.module.ts index 0ddbefd253..dff2e506c3 100644 --- a/src/app/admin/admin.module.ts +++ b/src/app/admin/admin.module.ts @@ -10,6 +10,7 @@ import { AdminSearchModule } from './admin-search-page/admin-search.module'; import { AdminSidebarSectionComponent } from './admin-sidebar/admin-sidebar-section/admin-sidebar-section.component'; import { ExpandableAdminSidebarSectionComponent } from './admin-sidebar/expandable-admin-sidebar-section/expandable-admin-sidebar-section.component'; import { BatchImportPageComponent } from './admin-import-batch-page/batch-import-page.component'; +import { UploadModule } from '../shared/upload/upload.module'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator @@ -25,7 +26,8 @@ const ENTRY_COMPONENTS = [ AccessControlModule, AdminSearchModule.withEntryComponents(), AdminWorkflowModuleModule.withEntryComponents(), - SharedModule + SharedModule, + UploadModule, ], declarations: [ AdminCurationTasksComponent, diff --git a/src/app/collection-page/collection-page.module.ts b/src/app/collection-page/collection-page.module.ts index c35ebf9021..ff49b983ff 100644 --- a/src/app/collection-page/collection-page.module.ts +++ b/src/app/collection-page/collection-page.module.ts @@ -25,7 +25,7 @@ import { ComcolModule } from '../shared/comcol/comcol.module'; StatisticsModule.forRoot(), EditItemPageModule, CollectionFormModule, - ComcolModule + ComcolModule, ], declarations: [ CollectionPageComponent, @@ -38,7 +38,7 @@ import { ComcolModule } from '../shared/comcol/comcol.module'; ], providers: [ SearchService, - ] + ], }) export class CollectionPageModule { diff --git a/src/app/collection-page/edit-collection-page/edit-collection-page.module.ts b/src/app/collection-page/edit-collection-page/edit-collection-page.module.ts index 45612be41a..18f7feb699 100644 --- a/src/app/collection-page/edit-collection-page/edit-collection-page.module.ts +++ b/src/app/collection-page/edit-collection-page/edit-collection-page.module.ts @@ -25,7 +25,7 @@ import { ComcolModule } from '../../shared/comcol/comcol.module'; CollectionFormModule, ResourcePoliciesModule, FormModule, - ComcolModule + ComcolModule, ], declarations: [ EditCollectionPageComponent, diff --git a/src/app/community-page/community-page.module.ts b/src/app/community-page/community-page.module.ts index 7cf2c8db8a..1dd9e82499 100644 --- a/src/app/community-page/community-page.module.ts +++ b/src/app/community-page/community-page.module.ts @@ -36,7 +36,7 @@ const DECLARATIONS = [CommunityPageComponent, CommunityPageRoutingModule, StatisticsModule.forRoot(), CommunityFormModule, - ComcolModule + ComcolModule, ], declarations: [ ...DECLARATIONS diff --git a/src/app/community-page/edit-community-page/edit-community-page.module.ts b/src/app/community-page/edit-community-page/edit-community-page.module.ts index 2b0fc73f2a..0479ea6bc6 100644 --- a/src/app/community-page/edit-community-page/edit-community-page.module.ts +++ b/src/app/community-page/edit-community-page/edit-community-page.module.ts @@ -21,7 +21,7 @@ import { ComcolModule } from '../../shared/comcol/comcol.module'; EditCommunityPageRoutingModule, CommunityFormModule, ComcolModule, - ResourcePoliciesModule + ResourcePoliciesModule, ], declarations: [ EditCommunityPageComponent, diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 699543f29a..491d394e73 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -23,7 +23,6 @@ import { ObjectSelectService } from '../shared/object-select/object-select.servi import { PaginationComponentOptions } from '../shared/pagination/pagination-component-options.model'; import { CSSVariableService } from '../shared/sass-helper/sass-helper.service'; import { SidebarService } from '../shared/sidebar/sidebar.service'; -import { UploaderService } from '../shared/uploader/uploader.service'; import { SectionFormOperationsService } from '../submission/sections/form/section-form-operations.service'; import { AuthenticatedGuard } from './auth/authenticated.guard'; import { AuthStatus } from './auth/models/auth-status.model'; @@ -233,12 +232,10 @@ const PROVIDERS = [ SubmissionResponseParsingService, SubmissionJsonPatchOperationsService, JsonPatchOperationsBuilder, - UploaderService, UUIDService, NotificationsService, WorkspaceitemDataService, WorkflowItemDataService, - UploaderService, DSpaceObjectDataService, ConfigurationDataService, DSOChangeAnalyzer, diff --git a/src/app/shared/uploader/uploader.service.ts b/src/app/core/drag.service.ts similarity index 53% rename from src/app/shared/uploader/uploader.service.ts rename to src/app/core/drag.service.ts index 548de34f9c..d5f329d362 100644 --- a/src/app/shared/uploader/uploader.service.ts +++ b/src/app/core/drag.service.ts @@ -1,7 +1,17 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree and available online at + * + * http://www.dspace.org/license/ + */ + import { Injectable } from '@angular/core'; -@Injectable() -export class UploaderService { +@Injectable({ + providedIn: 'root' +}) +export class DragService { private _overrideDragOverPage = false; public overrideDragOverPage() { diff --git a/src/app/item-page/bitstreams/upload/upload-bitstream.component.ts b/src/app/item-page/bitstreams/upload/upload-bitstream.component.ts index 1e5295a347..74019de7cc 100644 --- a/src/app/item-page/bitstreams/upload/upload-bitstream.component.ts +++ b/src/app/item-page/bitstreams/upload/upload-bitstream.component.ts @@ -4,7 +4,7 @@ import { RemoteData } from '../../../core/data/remote-data'; import { Item } from '../../../core/shared/item.model'; import { map, take, switchMap } from 'rxjs/operators'; import { ActivatedRoute, Router } from '@angular/router'; -import { UploaderOptions } from '../../../shared/uploader/uploader-options.model'; +import { UploaderOptions } from '../../../shared/upload/uploader/uploader-options.model'; import { hasValue, isEmpty, isNotEmpty } from '../../../shared/empty.util'; import { ItemDataService } from '../../../core/data/item-data.service'; import { AuthService } from '../../../core/auth/auth.service'; @@ -14,7 +14,7 @@ import { PaginatedList } from '../../../core/data/paginated-list.model'; import { Bundle } from '../../../core/shared/bundle.model'; import { BundleDataService } from '../../../core/data/bundle-data.service'; import { getFirstSucceededRemoteDataPayload, getFirstCompletedRemoteData } from '../../../core/shared/operators'; -import { UploaderComponent } from '../../../shared/uploader/uploader.component'; +import { UploaderComponent } from '../../../shared/upload/uploader/uploader.component'; import { RequestService } from '../../../core/data/request.service'; import { getBitstreamModuleRoute } from '../../../app-routing-paths'; import { getEntityEditRoute } from '../../item-page-routing-paths'; diff --git a/src/app/item-page/item-page.module.ts b/src/app/item-page/item-page.module.ts index c4e86a37fb..de9f2f60c5 100644 --- a/src/app/item-page/item-page.module.ts +++ b/src/app/item-page/item-page.module.ts @@ -46,6 +46,7 @@ import { OrcidPageComponent } from './orcid-page/orcid-page.component'; import { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap'; import { OrcidSyncSettingsComponent } from './orcid-page/orcid-sync-settings/orcid-sync-settings.component'; import { OrcidQueueComponent } from './orcid-page/orcid-queue/orcid-queue.component'; +import { UploadModule } from '../shared/upload/upload.module'; const ENTRY_COMPONENTS = [ @@ -94,7 +95,8 @@ const DECLARATIONS = [ JournalEntitiesModule.withEntryComponents(), ResearchEntitiesModule.withEntryComponents(), NgxGalleryModule, - NgbAccordionModule + NgbAccordionModule, + UploadModule, ], declarations: [ ...DECLARATIONS, diff --git a/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.spec.ts b/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.spec.ts index fb43c253eb..ed61fab1d6 100644 --- a/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.spec.ts +++ b/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.spec.ts @@ -16,10 +16,10 @@ import { TranslateLoaderMock } from '../../shared/mocks/translate-loader.mock'; import { NotificationsService } from '../../shared/notifications/notifications.service'; import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub'; import { getMockScrollToService } from '../../shared/mocks/scroll-to-service.mock'; -import { UploaderService } from '../../shared/uploader/uploader.service'; +import { DragService } from '../../core/drag.service'; import { HostWindowService } from '../../shared/host-window.service'; import { HostWindowServiceStub } from '../../shared/testing/host-window-service.stub'; -import { UploaderComponent } from '../../shared/uploader/uploader.component'; +import { UploaderComponent } from '../../shared/upload/uploader/uploader.component'; import { HttpXsrfTokenExtractor } from '@angular/common/http'; import { CookieService } from '../../core/services/cookie.service'; import { CookieServiceMock } from '../../shared/mocks/cookie.service.mock'; @@ -59,7 +59,7 @@ describe('MyDSpaceNewSubmissionComponent test', () => { NgbModal, ChangeDetectorRef, MyDSpaceNewSubmissionComponent, - UploaderService, + DragService, { provide: HttpXsrfTokenExtractor, useValue: new HttpXsrfTokenExtractorMock('mock-token') }, { provide: CookieService, useValue: new CookieServiceMock() }, { provide: HostWindowService, useValue: new HostWindowServiceStub(800) }, diff --git a/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts b/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts index b2ba6fe2af..0694fc63bf 100644 --- a/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts +++ b/src/app/my-dspace-page/my-dspace-new-submission/my-dspace-new-submission.component.ts @@ -8,13 +8,13 @@ import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; import { AuthService } from '../../core/auth/auth.service'; import { DSpaceObject } from '../../core/shared/dspace-object.model'; import { NotificationsService } from '../../shared/notifications/notifications.service'; -import { UploaderOptions } from '../../shared/uploader/uploader-options.model'; +import { UploaderOptions } from '../../shared/upload/uploader/uploader-options.model'; import { HALEndpointService } from '../../core/shared/hal-endpoint.service'; import { hasValue } from '../../shared/empty.util'; import { SearchResult } from '../../shared/search/models/search-result.model'; import { CollectionSelectorComponent } from '../collection-selector/collection-selector.component'; -import { UploaderComponent } from '../../shared/uploader/uploader.component'; -import { UploaderError } from '../../shared/uploader/uploader-error.model'; +import { UploaderComponent } from '../../shared/upload/uploader/uploader.component'; +import { UploaderError } from '../../shared/upload/uploader/uploader-error.model'; import { Router } from '@angular/router'; /** diff --git a/src/app/my-dspace-page/my-dspace-page.module.ts b/src/app/my-dspace-page/my-dspace-page.module.ts index 2ccddd87f7..6ad50af96a 100644 --- a/src/app/my-dspace-page/my-dspace-page.module.ts +++ b/src/app/my-dspace-page/my-dspace-page.module.ts @@ -14,6 +14,7 @@ import { MyDSpaceNewSubmissionDropdownComponent } from './my-dspace-new-submissi import { MyDSpaceNewExternalDropdownComponent } from './my-dspace-new-submission/my-dspace-new-external-dropdown/my-dspace-new-external-dropdown.component'; import { ThemedMyDSpacePageComponent } from './themed-my-dspace-page.component'; import { SearchModule } from '../shared/search/search.module'; +import { UploadModule } from '../shared/upload/upload.module'; const DECLARATIONS = [ MyDSpacePageComponent, @@ -30,7 +31,8 @@ const DECLARATIONS = [ SharedModule, SearchModule, MyDspacePageRoutingModule, - MyDspaceSearchModule.withEntryComponents() + MyDspaceSearchModule.withEntryComponents(), + UploadModule, ], declarations: DECLARATIONS, providers: [ diff --git a/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.ts b/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.ts index 29be240753..23dfca8616 100644 --- a/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.ts +++ b/src/app/shared/comcol/comcol-forms/comcol-form/comcol-form.component.ts @@ -17,8 +17,8 @@ import { MetadataMap, MetadataValue } from '../../../../core/shared/metadata.mod import { ResourceType } from '../../../../core/shared/resource-type'; import { hasValue, isNotEmpty } from '../../../empty.util'; import { NotificationsService } from '../../../notifications/notifications.service'; -import { UploaderOptions } from '../../../uploader/uploader-options.model'; -import { UploaderComponent } from '../../../uploader/uploader.component'; +import { UploaderOptions } from '../../../upload/uploader/uploader-options.model'; +import { UploaderComponent } from '../../../upload/uploader/uploader.component'; import { Operation } from 'fast-json-patch'; import { NoContent } from '../../../../core/shared/NoContent.model'; import { getFirstCompletedRemoteData } from '../../../../core/shared/operators'; diff --git a/src/app/shared/comcol/comcol.module.ts b/src/app/shared/comcol/comcol.module.ts index 094387929a..efbcedf2c6 100644 --- a/src/app/shared/comcol/comcol.module.ts +++ b/src/app/shared/comcol/comcol.module.ts @@ -15,6 +15,7 @@ import { ThemedComcolPageBrowseByComponent } from './comcol-page-browse-by/theme import { ComcolRoleComponent } from './comcol-forms/edit-comcol-page/comcol-role/comcol-role.component'; import { SharedModule } from '../shared.module'; import { FormModule } from '../form/form.module'; +import { UploadModule } from '../upload/upload.module'; const COMPONENTS = [ ComcolPageContentComponent, @@ -28,9 +29,7 @@ const COMPONENTS = [ ComcolPageBrowseByComponent, ThemedComcolPageBrowseByComponent, ComcolRoleComponent, - ThemedComcolPageHandleComponent - ]; @NgModule({ @@ -40,10 +39,12 @@ const COMPONENTS = [ imports: [ CommonModule, FormModule, - SharedModule + SharedModule, + UploadModule, ], exports: [ - ...COMPONENTS + ...COMPONENTS, + UploadModule, ] }) export class ComcolModule { } diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index a47712f261..9569faeee3 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -17,7 +17,6 @@ import { } from '@ng-bootstrap/ng-bootstrap'; import { MissingTranslationHandler, TranslateModule } from '@ngx-translate/core'; import { NgxPaginationModule } from 'ngx-pagination'; -import { FileUploadModule } from 'ng2-file-upload'; import { InfiniteScrollModule } from 'ngx-infinite-scroll'; import { MomentModule } from 'ngx-moment'; import { ConfirmationModalComponent } from './confirmation-modal/confirmation-modal.component'; @@ -30,7 +29,6 @@ import { import { ImportBatchSelectorComponent } from './dso-selector/modal-wrappers/import-batch-selector/import-batch-selector.component'; -import { FileDropzoneNoUploaderComponent } from './file-dropzone-no-uploader/file-dropzone-no-uploader.component'; import { ItemListElementComponent } from './object-list/item-list-element/item-types/item/item-list-element.component'; import { EnumKeysPipe } from './utils/enum-keys-pipe'; import { FileSizePipe } from './utils/file-size-pipe'; @@ -73,7 +71,6 @@ import { TruncatePipe } from './utils/truncate.pipe'; import { TruncatableComponent } from './truncatable/truncatable.component'; import { TruncatableService } from './truncatable/truncatable.service'; import { TruncatablePartComponent } from './truncatable/truncatable-part/truncatable-part.component'; -import { UploaderComponent } from './uploader/uploader.component'; import { MockAdminGuard } from './mocks/admin-guard.service.mock'; import { AlertComponent } from './alert/alert.component'; import { @@ -322,7 +319,6 @@ import { GoogleRecaptchaModule } from '../core/google-recaptcha/google-recaptcha const MODULES = [ CommonModule, - FileUploadModule, FormsModule, InfiniteScrollModule, NgbNavModule, @@ -393,8 +389,6 @@ const COMPONENTS = [ SidebarFilterComponent, SidebarFilterSelectedOptionComponent, ThumbnailComponent, - UploaderComponent, - FileDropzoneNoUploaderComponent, ItemListPreviewComponent, ThemedItemListPreviewComponent, MyDSpaceItemStatusComponent, @@ -479,7 +473,6 @@ const COMPONENTS = [ ImportBatchSelectorComponent, ExportBatchSelectorComponent, ConfirmationModalComponent, - VocabularyTreeviewComponent, AuthorizedCollectionSelectorComponent, CurationFormComponent, SearchResultListElementComponent, @@ -560,7 +553,6 @@ const ENTRY_COMPONENTS = [ ImportBatchSelectorComponent, ExportBatchSelectorComponent, ConfirmationModalComponent, - VocabularyTreeviewComponent, SidebarSearchListElementComponent, PublicationSidebarSearchListElementComponent, CollectionSidebarSearchListElementComponent, diff --git a/src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html similarity index 100% rename from src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html rename to src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html diff --git a/src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts similarity index 100% rename from src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts rename to src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts diff --git a/src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.scss b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.scss similarity index 100% rename from src/app/shared/file-dropzone-no-uploader/file-dropzone-no-uploader.scss rename to src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.scss diff --git a/src/app/shared/upload/upload.module.ts b/src/app/shared/upload/upload.module.ts new file mode 100644 index 0000000000..9f2895d7ac --- /dev/null +++ b/src/app/shared/upload/upload.module.ts @@ -0,0 +1,38 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree and available online at + * + * http://www.dspace.org/license/ + */ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SharedModule } from '../shared.module'; +import { FileUploadModule } from 'ng2-file-upload'; +import { UploaderComponent } from './uploader/uploader.component'; +import { FileDropzoneNoUploaderComponent } from './file-dropzone-no-uploader/file-dropzone-no-uploader.component'; + +const COMPONENTS = [ + UploaderComponent, + FileDropzoneNoUploaderComponent, +]; + +@NgModule({ + imports: [ + CommonModule, + SharedModule, + FileUploadModule, + ], + declarations: [ + ...COMPONENTS, + ], + providers: [ + ...COMPONENTS, + ], + exports: [ + ...COMPONENTS, + FileUploadModule, + ] +}) +export class UploadModule { +} diff --git a/src/app/shared/uploader/uploader-error.model.ts b/src/app/shared/upload/uploader/uploader-error.model.ts similarity index 100% rename from src/app/shared/uploader/uploader-error.model.ts rename to src/app/shared/upload/uploader/uploader-error.model.ts diff --git a/src/app/shared/uploader/uploader-options.model.ts b/src/app/shared/upload/uploader/uploader-options.model.ts similarity index 86% rename from src/app/shared/uploader/uploader-options.model.ts rename to src/app/shared/upload/uploader/uploader-options.model.ts index 959e5c3295..559fb0485b 100644 --- a/src/app/shared/uploader/uploader-options.model.ts +++ b/src/app/shared/upload/uploader/uploader-options.model.ts @@ -1,4 +1,4 @@ -import { RestRequestMethod } from '../../core/data/rest-request-method'; +import { RestRequestMethod } from '../../../core/data/rest-request-method'; export class UploaderOptions { /** diff --git a/src/app/shared/uploader/uploader-properties.model.ts b/src/app/shared/upload/uploader/uploader-properties.model.ts similarity index 83% rename from src/app/shared/uploader/uploader-properties.model.ts rename to src/app/shared/upload/uploader/uploader-properties.model.ts index bc0376b809..b84ae30bf8 100644 --- a/src/app/shared/uploader/uploader-properties.model.ts +++ b/src/app/shared/upload/uploader/uploader-properties.model.ts @@ -1,4 +1,4 @@ -import { MetadataMap } from '../../core/shared/metadata.models'; +import { MetadataMap } from '../../../core/shared/metadata.models'; /** * Properties to send to the REST API for uploading a bitstream diff --git a/src/app/shared/uploader/uploader.component.html b/src/app/shared/upload/uploader/uploader.component.html similarity index 100% rename from src/app/shared/uploader/uploader.component.html rename to src/app/shared/upload/uploader/uploader.component.html diff --git a/src/app/shared/uploader/uploader.component.scss b/src/app/shared/upload/uploader/uploader.component.scss similarity index 100% rename from src/app/shared/uploader/uploader.component.scss rename to src/app/shared/upload/uploader/uploader.component.scss diff --git a/src/app/shared/uploader/uploader.component.spec.ts b/src/app/shared/upload/uploader/uploader.component.spec.ts similarity index 86% rename from src/app/shared/uploader/uploader.component.spec.ts rename to src/app/shared/upload/uploader/uploader.component.spec.ts index 84fee2e147..8ea23c8acb 100644 --- a/src/app/shared/uploader/uploader.component.spec.ts +++ b/src/app/shared/upload/uploader/uploader.component.spec.ts @@ -4,16 +4,16 @@ import { ComponentFixture, inject, TestBed, waitForAsync, } from '@angular/core/ import { ScrollToService } from '@nicky-lenaers/ngx-scroll-to'; -import { UploaderService } from './uploader.service'; +import { DragService } from '../../../core/drag.service'; import { UploaderOptions } from './uploader-options.model'; import { UploaderComponent } from './uploader.component'; import { FileUploadModule } from 'ng2-file-upload'; import { TranslateModule } from '@ngx-translate/core'; -import { createTestComponent } from '../testing/utils.test'; +import { createTestComponent } from '../../testing/utils.test'; import { HttpXsrfTokenExtractor } from '@angular/common/http'; -import { CookieService } from '../../core/services/cookie.service'; -import { CookieServiceMock } from '../mocks/cookie.service.mock'; -import { HttpXsrfTokenExtractorMock } from '../mocks/http-xsrf-token-extractor.mock'; +import { CookieService } from '../../../core/services/cookie.service'; +import { CookieServiceMock } from '../../mocks/cookie.service.mock'; +import { HttpXsrfTokenExtractorMock } from '../../mocks/http-xsrf-token-extractor.mock'; describe('Chips component', () => { @@ -37,7 +37,7 @@ describe('Chips component', () => { ChangeDetectorRef, ScrollToService, UploaderComponent, - UploaderService, + DragService, { provide: HttpXsrfTokenExtractor, useValue: new HttpXsrfTokenExtractorMock('mock-token') }, { provide: CookieService, useValue: new CookieServiceMock() }, ], diff --git a/src/app/shared/uploader/uploader.component.ts b/src/app/shared/upload/uploader/uploader.component.ts similarity index 93% rename from src/app/shared/uploader/uploader.component.ts rename to src/app/shared/upload/uploader/uploader.component.ts index a0dd0e5bba..50e7478157 100644 --- a/src/app/shared/uploader/uploader.component.ts +++ b/src/app/shared/upload/uploader/uploader.component.ts @@ -6,12 +6,12 @@ import { uniqueId } from 'lodash'; import { ScrollToService } from '@nicky-lenaers/ngx-scroll-to'; import { UploaderOptions } from './uploader-options.model'; -import { hasValue, isNotEmpty, isUndefined } from '../empty.util'; -import { UploaderService } from './uploader.service'; +import { hasValue, isNotEmpty, isUndefined } from '../../empty.util'; import { UploaderProperties } from './uploader-properties.model'; import { HttpXsrfTokenExtractor } from '@angular/common/http'; -import { XSRF_COOKIE, XSRF_REQUEST_HEADER, XSRF_RESPONSE_HEADER } from '../../core/xsrf/xsrf.interceptor'; -import { CookieService } from '../../core/services/cookie.service'; +import { XSRF_COOKIE, XSRF_REQUEST_HEADER, XSRF_RESPONSE_HEADER } from '../../../core/xsrf/xsrf.interceptor'; +import { CookieService } from '../../../core/services/cookie.service'; +import { DragService } from '../../../core/drag.service'; @Component({ selector: 'ds-uploader', @@ -76,7 +76,7 @@ export class UploaderComponent { @HostListener('window:dragover', ['$event']) onDragOver(event: any) { - if (this.enableDragOverDocument && this.uploaderService.isAllowedDragOverPage()) { + if (this.enableDragOverDocument && this.dragService.isAllowedDragOverPage()) { // Show drop area on the page event.preventDefault(); if ((event.target as any).tagName !== 'HTML') { @@ -85,9 +85,13 @@ export class UploaderComponent { } } - constructor(private cdr: ChangeDetectorRef, private scrollToService: ScrollToService, - private uploaderService: UploaderService, private tokenExtractor: HttpXsrfTokenExtractor, - private cookieService: CookieService) { + constructor( + private cdr: ChangeDetectorRef, + private scrollToService: ScrollToService, + private dragService: DragService, + private tokenExtractor: HttpXsrfTokenExtractor, + private cookieService: CookieService + ) { } /** diff --git a/src/app/submission/form/submission-form.component.ts b/src/app/submission/form/submission-form.component.ts index 6c17be0c71..42ee9f05ac 100644 --- a/src/app/submission/form/submission-form.component.ts +++ b/src/app/submission/form/submission-form.component.ts @@ -10,7 +10,7 @@ import { SubmissionObject } from '../../core/submission/models/submission-object import { WorkspaceitemSectionsObject } from '../../core/submission/models/workspaceitem-sections.model'; import { hasValue, isNotEmpty } from '../../shared/empty.util'; -import { UploaderOptions } from '../../shared/uploader/uploader-options.model'; +import { UploaderOptions } from '../../shared/upload/uploader/uploader-options.model'; import { SubmissionObjectEntry } from '../objects/submission-objects.reducer'; import { SectionDataObject } from '../sections/models/section-data.model'; import { SubmissionService } from '../submission.service'; diff --git a/src/app/submission/form/submission-upload-files/submission-upload-files.component.spec.ts b/src/app/submission/form/submission-upload-files/submission-upload-files.component.spec.ts index bcdd01d5a1..fa7ecebbff 100644 --- a/src/app/submission/form/submission-upload-files/submission-upload-files.component.spec.ts +++ b/src/app/submission/form/submission-upload-files/submission-upload-files.component.spec.ts @@ -28,7 +28,7 @@ import { SubmissionJsonPatchOperationsServiceStub } from '../../../shared/testin import { SubmissionJsonPatchOperationsService } from '../../../core/submission/submission-json-patch-operations.service'; import { SharedModule } from '../../../shared/shared.module'; import { createTestComponent } from '../../../shared/testing/utils.test'; -import { UploaderOptions } from '../../../shared/uploader/uploader-options.model'; +import { UploaderOptions } from '../../../shared/upload/uploader/uploader-options.model'; describe('SubmissionUploadFilesComponent Component', () => { diff --git a/src/app/submission/submission.module.ts b/src/app/submission/submission.module.ts index 0324ea345a..cab4f19c33 100644 --- a/src/app/submission/submission.module.ts +++ b/src/app/submission/submission.module.ts @@ -60,6 +60,7 @@ import { PublisherPolicyComponent } from './sections/sherpa-policies/publisher-p import { PublicationInformationComponent } from './sections/sherpa-policies/publication-information/publication-information.component'; +import { UploadModule } from '../shared/upload/upload.module'; import { MetadataInformationComponent } from './sections/sherpa-policies/metadata-information/metadata-information.component'; @@ -115,7 +116,8 @@ const DECLARATIONS = [ FormModule, NgbModalModule, NgbCollapseModule, - NgbAccordionModule + NgbAccordionModule, + UploadModule, ], declarations: DECLARATIONS, exports: [