mirror of
https://github.com/goharbor/harbor.git
synced 2024-11-27 20:59:10 +01:00
Add routing-resolvers
Signed-off-by: AllForNothing <sshijun@vmware.com>
This commit is contained in:
parent
eb2af6095e
commit
887d693fa4
@ -19,7 +19,7 @@ import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|||||||
import { CookieService } from 'ngx-cookie';
|
import { CookieService } from 'ngx-cookie';
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
import { SessionService } from './shared/session.service';
|
import { SessionService } from './shared/session.service';
|
||||||
import { AppConfigService } from './app-config.service';
|
import { AppConfigService } from './services/app-config.service';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
import { ClarityModule } from "@clr/angular";
|
import { ClarityModule } from "@clr/angular";
|
||||||
import { APP_BASE_HREF } from "@angular/common";
|
import { APP_BASE_HREF } from "@angular/common";
|
||||||
|
@ -18,9 +18,9 @@ import { TranslateService } from '@ngx-translate/core';
|
|||||||
import { CookieService } from 'ngx-cookie';
|
import { CookieService } from 'ngx-cookie';
|
||||||
|
|
||||||
import { SessionService } from './shared/session.service';
|
import { SessionService } from './shared/session.service';
|
||||||
import { AppConfigService } from './app-config.service';
|
import { AppConfigService } from './services/app-config.service';
|
||||||
import { ThemeService } from './theme.service';
|
import { ThemeService } from './services/theme.service';
|
||||||
import { themeArray, ThemeInterface } from './theme';
|
import { themeArray, ThemeInterface } from './services/theme';
|
||||||
import { clone } from '../lib/utils/utils';
|
import { clone } from '../lib/utils/utils';
|
||||||
|
|
||||||
const HAS_STYLE_MODE: string = 'styleModeLocal';
|
const HAS_STYLE_MODE: string = 'styleModeLocal';
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
import { BrowserModule } from '@angular/platform-browser';
|
import { BrowserModule } from '@angular/platform-browser';
|
||||||
import { NgModule, APP_INITIALIZER, LOCALE_ID, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
import { NgModule, APP_INITIALIZER, LOCALE_ID, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
import { InterceptHttpService } from './intercept-http.service';
|
import { InterceptHttpService } from './services/intercept-http.service';
|
||||||
|
|
||||||
import { BaseModule } from './base/base.module';
|
import { BaseModule } from './base/base.module';
|
||||||
import { HarborRoutingModule } from './harbor-routing.module';
|
import { HarborRoutingModule } from './harbor-routing.module';
|
||||||
@ -26,8 +26,8 @@ import { DeveloperCenterModule } from './dev-center/dev-center.module';
|
|||||||
import { registerLocaleData } from '@angular/common';
|
import { registerLocaleData } from '@angular/common';
|
||||||
|
|
||||||
import { TranslateService } from "@ngx-translate/core";
|
import { TranslateService } from "@ngx-translate/core";
|
||||||
import { AppConfigService } from './app-config.service';
|
import { AppConfigService } from './services/app-config.service';
|
||||||
import { SkinableConfig } from "./skinable-config.service";
|
import { SkinableConfig } from "./services/skinable-config.service";
|
||||||
import { ProjectConfigComponent } from './project/project-config/project-config.component';
|
import { ProjectConfigComponent } from './project/project-config/project-config.component';
|
||||||
|
|
||||||
import zh from '@angular/common/locales/zh-Hans';
|
import zh from '@angular/common/locales/zh-Hans';
|
||||||
|
@ -3,8 +3,8 @@ import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|||||||
import { GlobalSearchComponent } from './global-search.component';
|
import { GlobalSearchComponent } from './global-search.component';
|
||||||
import { SearchTriggerService } from './search-trigger.service';
|
import { SearchTriggerService } from './search-trigger.service';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { SkinableConfig } from "../../skinable-config.service";
|
import { SkinableConfig } from "../../services/skinable-config.service";
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
|
|
||||||
|
@ -19,12 +19,12 @@ import { Subject , Subscription } from "rxjs";
|
|||||||
|
|
||||||
import { SearchTriggerService } from './search-trigger.service';
|
import { SearchTriggerService } from './search-trigger.service';
|
||||||
|
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import {TranslateService} from "@ngx-translate/core";
|
import {TranslateService} from "@ngx-translate/core";
|
||||||
import {SkinableConfig} from "../../skinable-config.service";
|
import {SkinableConfig} from "../../services/skinable-config.service";
|
||||||
|
|
||||||
const deBounceTime = 500; // ms
|
const deBounceTime = 500; // ms
|
||||||
|
|
||||||
|
@ -4,13 +4,13 @@ import { SearchResults } from './search-results';
|
|||||||
import { SearchTriggerService } from './search-trigger.service';
|
import { SearchTriggerService } from './search-trigger.service';
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { AppConfigService } from './../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { ListProjectROComponent } from '../../shared/list-project-ro/list-project-ro.component';
|
import { ListProjectROComponent } from '../../shared/list-project-ro/list-project-ro.component';
|
||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { SearchResultComponent } from './search-result.component';
|
import { SearchResultComponent } from './search-result.component';
|
||||||
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { AppConfig } from '../../app-config';
|
import { AppConfig } from '../../services/app-config';
|
||||||
import { ClarityModule } from '@clr/angular';
|
import { ClarityModule } from '@clr/angular';
|
||||||
|
|
||||||
describe('SearchResultComponent', () => {
|
describe('SearchResultComponent', () => {
|
||||||
|
@ -18,7 +18,7 @@ import { GlobalSearchService } from './global-search.service';
|
|||||||
import { SearchResults } from './search-results';
|
import { SearchResults } from './search-results';
|
||||||
import { SearchTriggerService } from './search-trigger.service';
|
import { SearchTriggerService } from './search-trigger.service';
|
||||||
|
|
||||||
import { AppConfigService } from './../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { filter, switchMap } from "rxjs/operators";
|
import { filter, switchMap } from "rxjs/operators";
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
import { AppConfigService } from '../..//app-config.service';
|
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
@ -18,8 +17,9 @@ import { FormsModule } from '@angular/forms';
|
|||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { AccountSettingsModalService } from '../../account/account-settings/account-settings-modal-service.service';
|
import { AccountSettingsModalService } from '../../account/account-settings/account-settings-modal-service.service';
|
||||||
import { PasswordSettingService } from '../../account/password-setting/password-setting.service';
|
import { PasswordSettingService } from '../../account/password-setting/password-setting.service';
|
||||||
import { SkinableConfig } from '../../skinable-config.service';
|
import { SkinableConfig } from '../../services/skinable-config.service';
|
||||||
import { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';
|
import { InlineAlertComponent } from '../../shared/inline-alert/inline-alert.component';
|
||||||
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
|
|
||||||
describe('HarborShellComponent', () => {
|
describe('HarborShellComponent', () => {
|
||||||
let component: HarborShellComponent;
|
let component: HarborShellComponent;
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';
|
import { Component, OnInit, ViewChild, OnDestroy } from '@angular/core';
|
||||||
import { Router, ActivatedRoute } from '@angular/router';
|
import { Router, ActivatedRoute } from '@angular/router';
|
||||||
import { Subscription } from "rxjs";
|
import { Subscription } from "rxjs";
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
|
|
||||||
import { ModalEvent } from '../modal-event';
|
import { ModalEvent } from '../modal-event';
|
||||||
import { modalEvents } from '../modal-events.const';
|
import { modalEvents } from '../modal-events.const';
|
||||||
|
@ -6,10 +6,10 @@ import { PlatformLocation } from '@angular/common';
|
|||||||
import { NavigatorComponent } from './navigator.component';
|
import { NavigatorComponent } from './navigator.component';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { CookieService } from 'ngx-cookie';
|
import { CookieService } from 'ngx-cookie';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { SearchTriggerService } from '../global-search/search-trigger.service';
|
import { SearchTriggerService } from '../global-search/search-trigger.service';
|
||||||
import { SkinableConfig } from "../../skinable-config.service";
|
import { SkinableConfig } from "../../services/skinable-config.service";
|
||||||
|
|
||||||
describe('NavigatorComponent', () => {
|
describe('NavigatorComponent', () => {
|
||||||
let component: NavigatorComponent;
|
let component: NavigatorComponent;
|
||||||
|
@ -21,14 +21,14 @@ import { modalEvents } from '../modal-events.const';
|
|||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { CookieService, CookieOptions } from 'ngx-cookie';
|
import { CookieService, CookieOptions } from 'ngx-cookie';
|
||||||
import { supportedLangs, enLang, languageNames } from '../../shared/shared.const';
|
import { supportedLangs, enLang, languageNames } from '../../shared/shared.const';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { SearchTriggerService } from '../global-search/search-trigger.service';
|
import { SearchTriggerService } from '../global-search/search-trigger.service';
|
||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { SkinableConfig } from "../../skinable-config.service";
|
import { SkinableConfig } from "../../services/skinable-config.service";
|
||||||
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
||||||
import { ThemeInterface, themeArray } from '../../theme';
|
import { ThemeInterface, themeArray } from '../../services/theme';
|
||||||
import { clone } from '../../../lib/utils/utils';
|
import { clone } from '../../../lib/utils/utils';
|
||||||
import { ThemeService } from '../../theme.service';
|
import { ThemeService } from '../../services/theme.service';
|
||||||
const HAS_STYLE_MODE: string = 'styleModeLocal';
|
const HAS_STYLE_MODE: string = 'styleModeLocal';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { ConfirmMessageHandler } from '../config.msg.utils';
|
import { ConfirmMessageHandler } from '../config.msg.utils';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { ConfigurationService } from '../config.service';
|
import { ConfigurationService } from '../config.service';
|
||||||
import { ConfigurationAuthComponent } from './config-auth.component';
|
import { ConfigurationAuthComponent } from './config-auth.component';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
|
@ -16,7 +16,7 @@ import { NgForm } from '@angular/forms';
|
|||||||
import { Subscription } from "rxjs";
|
import { Subscription } from "rxjs";
|
||||||
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../../shared/message-handler/message-handler.service';
|
||||||
import { ConfirmMessageHandler } from '../config.msg.utils';
|
import { ConfirmMessageHandler } from '../config.msg.utils';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { ConfigurationService } from '../config.service';
|
import { ConfigurationService } from '../config.service';
|
||||||
import { Configuration } from "../../../lib/components/config/config";
|
import { Configuration } from "../../../lib/components/config/config";
|
||||||
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
||||||
|
@ -5,7 +5,7 @@ import { MessageHandlerService } from '../shared/message-handler/message-handler
|
|||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
import { ClarityModule } from "@clr/angular";
|
import { ClarityModule } from "@clr/angular";
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { ConfigurationService } from './config.service';
|
import { ConfigurationService } from './config.service';
|
||||||
import { ConfigurationComponent } from './config.component';
|
import { ConfigurationComponent } from './config.component';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
|
@ -17,7 +17,7 @@ import { ConfirmationTargets, ConfirmationState } from '../shared/shared.const';
|
|||||||
import { SessionService } from '../shared/session.service';
|
import { SessionService } from '../shared/session.service';
|
||||||
import { ConfirmationDialogService } from '../shared/confirmation-dialog/confirmation-dialog.service';
|
import { ConfirmationDialogService } from '../shared/confirmation-dialog/confirmation-dialog.service';
|
||||||
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { ConfigurationAuthComponent } from './auth/config-auth.component';
|
import { ConfigurationAuthComponent } from './auth/config-auth.component';
|
||||||
import { ConfigurationEmailComponent } from './email/config-email.component';
|
import { ConfigurationEmailComponent } from './email/config-email.component';
|
||||||
import { ConfigurationService } from './config.service';
|
import { ConfigurationService } from './config.service';
|
||||||
|
@ -7,7 +7,7 @@ import { GroupService } from "../group.service";
|
|||||||
import { MessageHandlerService } from "./../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "./../../shared/message-handler/message-handler.service";
|
||||||
import { SessionService } from "./../../shared/session.service";
|
import { SessionService } from "./../../shared/session.service";
|
||||||
import { UserGroup } from "./../group";
|
import { UserGroup } from "./../group";
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { AddGroupModalComponent } from './add-group-modal.component';
|
import { AddGroupModalComponent } from './add-group-modal.component';
|
||||||
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ import { GroupService } from "../group.service";
|
|||||||
import { MessageHandlerService } from "./../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "./../../shared/message-handler/message-handler.service";
|
||||||
import { SessionService } from "./../../shared/session.service";
|
import { SessionService } from "./../../shared/session.service";
|
||||||
import { UserGroup } from "./../group";
|
import { UserGroup } from "./../group";
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { GroupType } from "../../../lib/entities/shared.const";
|
import { GroupType } from "../../../lib/entities/shared.const";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -9,7 +9,7 @@ import { GroupService } from "./group.service";
|
|||||||
import { of } from "rxjs";
|
import { of } from "rxjs";
|
||||||
import { ConfirmationDialogService } from "./../shared/confirmation-dialog/confirmation-dialog.service";
|
import { ConfirmationDialogService } from "./../shared/confirmation-dialog/confirmation-dialog.service";
|
||||||
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { OperationService } from "../../lib/components/operation/operation.service";
|
import { OperationService } from "../../lib/components/operation/operation.service";
|
||||||
|
|
||||||
describe('GroupComponent', () => {
|
describe('GroupComponent', () => {
|
||||||
|
@ -16,7 +16,7 @@ import { UserGroup } from "./group";
|
|||||||
import { GroupService } from "./group.service";
|
import { GroupService } from "./group.service";
|
||||||
import { MessageHandlerService } from "../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../shared/message-handler/message-handler.service";
|
||||||
import { throwError as observableThrowError } from "rxjs";
|
import { throwError as observableThrowError } from "rxjs";
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { OperationService } from "../../lib/components/operation/operation.service";
|
import { OperationService } from "../../lib/components/operation/operation.service";
|
||||||
import { operateChanges, OperateInfo, OperationState } from "../../lib/components/operation/operate";
|
import { operateChanges, OperateInfo, OperationState } from "../../lib/components/operation/operate";
|
||||||
import { errorHandler } from "../../lib/utils/shared/shared.utils";
|
import { errorHandler } from "../../lib/utils/shared/shared.utils";
|
||||||
|
@ -29,7 +29,6 @@ import { SignInComponent } from './sign-in/sign-in.component';
|
|||||||
import { ResetPasswordComponent } from './account/password-setting/reset-password/reset-password.component';
|
import { ResetPasswordComponent } from './account/password-setting/reset-password/reset-password.component';
|
||||||
import { GroupComponent } from './group/group.component';
|
import { GroupComponent } from './group/group.component';
|
||||||
import { TotalReplicationPageComponent } from './replication/total-replication/total-replication-page.component';
|
import { TotalReplicationPageComponent } from './replication/total-replication/total-replication-page.component';
|
||||||
import { ReplicationTasksPageComponent } from './replication/replication-tasks-page/replication-tasks-page.component';
|
|
||||||
import { DestinationPageComponent } from './replication/destination/destination-page.component';
|
import { DestinationPageComponent } from './replication/destination/destination-page.component';
|
||||||
import { AuditLogComponent } from './log/audit-log.component';
|
import { AuditLogComponent } from './log/audit-log.component';
|
||||||
import { LogPageComponent } from './log/log-page.component';
|
import { LogPageComponent } from './log/log-page.component';
|
||||||
@ -40,7 +39,7 @@ import { RobotAccountComponent } from './project/robot-account/robot-account.com
|
|||||||
import { WebhookComponent } from './project/webhook/webhook.component';
|
import { WebhookComponent } from './project/webhook/webhook.component';
|
||||||
import { ProjectLabelComponent } from './project/project-label/project-label.component';
|
import { ProjectLabelComponent } from './project/project-label/project-label.component';
|
||||||
import { ProjectConfigComponent } from './project/project-config/project-config.component';
|
import { ProjectConfigComponent } from './project/project-config/project-config.component';
|
||||||
import { ProjectRoutingResolver } from './project/project-routing-resolver.service';
|
import { ProjectRoutingResolver } from './services/routing-resolvers/project-routing-resolver.service';
|
||||||
import { ListChartsComponent } from './project/helm-chart/list-charts.component';
|
import { ListChartsComponent } from './project/helm-chart/list-charts.component';
|
||||||
import { ListChartVersionsComponent } from './project/helm-chart/list-chart-versions/list-chart-versions.component';
|
import { ListChartVersionsComponent } from './project/helm-chart/list-chart-versions/list-chart-versions.component';
|
||||||
import { HelmChartDetailComponent } from './project/helm-chart/helm-chart-detail/chart-detail.component';
|
import { HelmChartDetailComponent } from './project/helm-chart/helm-chart-detail/chart-detail.component';
|
||||||
@ -60,6 +59,9 @@ import { USERSTATICPERMISSION } from "../lib/services";
|
|||||||
import { RepositoryGridviewComponent } from "./project/repository/repository-gridview.component";
|
import { RepositoryGridviewComponent } from "./project/repository/repository-gridview.component";
|
||||||
import { ArtifactListPageComponent } from "./project/repository/artifact-list-page/artifact-list-page.component";
|
import { ArtifactListPageComponent } from "./project/repository/artifact-list-page/artifact-list-page.component";
|
||||||
import { ArtifactSummaryComponent } from "./project/repository/artifact/artifact-summary.component";
|
import { ArtifactSummaryComponent } from "./project/repository/artifact/artifact-summary.component";
|
||||||
|
import { ReplicationTasksComponent } from "../lib/components/replication/replication-tasks/replication-tasks.component";
|
||||||
|
import { ReplicationTasksRoutingResolverService } from "./services/routing-resolvers/replication-tasks-routing-resolver.service";
|
||||||
|
import { ArtifactDetailRoutingResolverService } from "./services/routing-resolvers/artifact-detail-routing-resolver.service";
|
||||||
|
|
||||||
const harborRoutes: Routes = [
|
const harborRoutes: Routes = [
|
||||||
{ path: '', redirectTo: 'harbor', pathMatch: 'full' },
|
{ path: '', redirectTo: 'harbor', pathMatch: 'full' },
|
||||||
@ -149,8 +151,11 @@ const harborRoutes: Routes = [
|
|||||||
canActivate: [SystemAdminGuard],
|
canActivate: [SystemAdminGuard],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: 'replications/:id/:tasks',
|
path: 'replications/:id/tasks',
|
||||||
component: ReplicationTasksPageComponent,
|
component: ReplicationTasksComponent,
|
||||||
|
resolve: {
|
||||||
|
replicationTasksRoutingResolver: ReplicationTasksRoutingResolverService
|
||||||
|
},
|
||||||
canActivate: [SystemAdminGuard],
|
canActivate: [SystemAdminGuard],
|
||||||
canActivateChild: [SystemAdminGuard]
|
canActivateChild: [SystemAdminGuard]
|
||||||
},
|
},
|
||||||
@ -334,7 +339,7 @@ const harborRoutes: Routes = [
|
|||||||
component: ArtifactSummaryComponent,
|
component: ArtifactSummaryComponent,
|
||||||
canActivate: [MemberGuard],
|
canActivate: [MemberGuard],
|
||||||
resolve: {
|
resolve: {
|
||||||
projectResolver: ProjectRoutingResolver
|
artifactResolver: ArtifactDetailRoutingResolverService
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -342,7 +347,7 @@ const harborRoutes: Routes = [
|
|||||||
component: ArtifactSummaryComponent,
|
component: ArtifactSummaryComponent,
|
||||||
canActivate: [MemberGuard],
|
canActivate: [MemberGuard],
|
||||||
resolve: {
|
resolve: {
|
||||||
projectResolver: ProjectRoutingResolver
|
artifactResolver: ArtifactDetailRoutingResolverService
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,7 @@ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectorRef } from '@angular/core';
|
|||||||
import { ClarityModule } from '@clr/angular';
|
import { ClarityModule } from '@clr/angular';
|
||||||
import { FormsModule } from '@angular/forms';
|
import { FormsModule } from '@angular/forms';
|
||||||
import { SessionService } from "../../shared/session.service";
|
import { SessionService } from "../../shared/session.service";
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { SearchTriggerService } from "../../base/global-search/search-trigger.service";
|
import { SearchTriggerService } from "../../base/global-search/search-trigger.service";
|
||||||
import { MessageHandlerService } from "../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../../shared/message-handler/message-handler.service";
|
||||||
|
@ -27,7 +27,7 @@ import { ConfirmationDialogService } from "../../shared/confirmation-dialog/conf
|
|||||||
import { MessageHandlerService } from "../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../../shared/message-handler/message-handler.service";
|
||||||
import { ConfirmationMessage } from "../../shared/confirmation-dialog/confirmation-message";
|
import { ConfirmationMessage } from "../../shared/confirmation-dialog/confirmation-message";
|
||||||
import { SearchTriggerService } from "../../base/global-search/search-trigger.service";
|
import { SearchTriggerService } from "../../base/global-search/search-trigger.service";
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { Project } from "../project";
|
import { Project } from "../project";
|
||||||
import { map, catchError, finalize } from "rxjs/operators";
|
import { map, catchError, finalize } from "rxjs/operators";
|
||||||
import { throwError as observableThrowError } from "rxjs";
|
import { throwError as observableThrowError } from "rxjs";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
import { of } from "rxjs";
|
import { of } from "rxjs";
|
||||||
import { MemberService } from '../member.service';
|
import { MemberService } from '../member.service';
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { ClarityModule } from '@clr/angular';
|
import { ClarityModule } from '@clr/angular';
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
|
@ -26,7 +26,7 @@ import { InlineAlertComponent } from '../../../shared/inline-alert/inline-alert.
|
|||||||
import { UserService } from '../../../user/user.service';
|
import { UserService } from '../../../user/user.service';
|
||||||
import { MemberService } from '../member.service';
|
import { MemberService } from '../member.service';
|
||||||
import { UserGroup } from "../../../group/group";
|
import { UserGroup } from "../../../group/group";
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { ProjectRootInterface } from "../../../../lib/services";
|
import { ProjectRootInterface } from "../../../../lib/services";
|
||||||
import { GroupType, PROJECT_ROOTS } from "../../../../lib/entities/shared.const";
|
import { GroupType, PROJECT_ROOTS } from "../../../../lib/entities/shared.const";
|
||||||
import { errorHandler } from "../../../../lib/utils/shared/shared.utils";
|
import { errorHandler } from "../../../../lib/utils/shared/shared.utils";
|
||||||
|
@ -12,7 +12,7 @@ import { MessageHandlerService } from "../../shared/message-handler/message-hand
|
|||||||
import { ConfirmationDialogService } from "../../shared/confirmation-dialog/confirmation-dialog.service";
|
import { ConfirmationDialogService } from "../../shared/confirmation-dialog/confirmation-dialog.service";
|
||||||
import { SessionService } from "../../shared/session.service";
|
import { SessionService } from "../../shared/session.service";
|
||||||
import { MemberService } from "./member.service";
|
import { MemberService } from "./member.service";
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { OperationService } from "../../../lib/components/operation/operation.service";
|
import { OperationService } from "../../../lib/components/operation/operation.service";
|
||||||
import { UserPermissionService } from "../../../lib/services";
|
import { UserPermissionService } from "../../../lib/services";
|
||||||
|
@ -28,7 +28,7 @@ import { AddGroupComponent } from './add-group/add-group.component';
|
|||||||
import { AddHttpAuthGroupComponent } from './add-http-auth-group/add-http-auth-group.component';
|
import { AddHttpAuthGroupComponent } from './add-http-auth-group/add-http-auth-group.component';
|
||||||
import { MemberService } from "./member.service";
|
import { MemberService } from "./member.service";
|
||||||
import { AddMemberComponent } from "./add-member/add-member.component";
|
import { AddMemberComponent } from "./add-member/add-member.component";
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { map, catchError } from "rxjs/operators";
|
import { map, catchError } from "rxjs/operators";
|
||||||
import { throwError as observableThrowError } from "rxjs";
|
import { throwError as observableThrowError } from "rxjs";
|
||||||
import { OperationService } from "../../../lib/components/operation/operation.service";
|
import { OperationService } from "../../../lib/components/operation/operation.service";
|
||||||
|
@ -10,7 +10,7 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
|
|||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { ProjectService, UserPermissionService } from "../../../lib/services";
|
import { ProjectService, UserPermissionService } from "../../../lib/services";
|
||||||
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import { Component, OnInit, HostListener, AfterViewInit, OnDestroy, ChangeDetect
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Project } from '../project';
|
import { Project } from '../project';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { forkJoin, Subject, Subscription } from "rxjs";
|
import { forkJoin, Subject, Subscription } from "rxjs";
|
||||||
import { UserPermissionService, USERSTATICPERMISSION } from "../../../lib/services";
|
import { UserPermissionService, USERSTATICPERMISSION } from "../../../lib/services";
|
||||||
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
||||||
|
@ -27,7 +27,7 @@ import { AddMemberComponent } from './member/add-member/add-member.component';
|
|||||||
import { AddGroupComponent } from './member/add-group/add-group.component';
|
import { AddGroupComponent } from './member/add-group/add-group.component';
|
||||||
import { MemberService } from './member/member.service';
|
import { MemberService } from './member/member.service';
|
||||||
import { RobotService } from './robot-account/robot-account.service';
|
import { RobotService } from './robot-account/robot-account.service';
|
||||||
import { ProjectRoutingResolver } from './project-routing-resolver.service';
|
import { ProjectRoutingResolver } from '../services/routing-resolvers/project-routing-resolver.service';
|
||||||
import { TargetExistsValidatorDirective } from '../shared/target-exists-directive';
|
import { TargetExistsValidatorDirective } from '../shared/target-exists-directive';
|
||||||
import { HelmChartModule } from './helm-chart/helm-chart.module';
|
import { HelmChartModule } from './helm-chart/helm-chart.module';
|
||||||
import { RobotAccountComponent } from './robot-account/robot-account.component';
|
import { RobotAccountComponent } from './robot-account/robot-account.component';
|
||||||
@ -114,7 +114,6 @@ import { LastTriggerComponent } from "./webhook/last-trigger/last-trigger.compon
|
|||||||
],
|
],
|
||||||
exports: [ProjectComponent, ListProjectComponent],
|
exports: [ProjectComponent, ListProjectComponent],
|
||||||
providers: [
|
providers: [
|
||||||
ProjectRoutingResolver,
|
|
||||||
MemberService,
|
MemberService,
|
||||||
RobotService,
|
RobotService,
|
||||||
WebhookService,
|
WebhookService,
|
||||||
|
@ -11,24 +11,6 @@
|
|||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
/*
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"project_id": 1,
|
|
||||||
"owner_id": 1,
|
|
||||||
"name": "library",
|
|
||||||
"creation_time": "2017-02-10T07:57:56Z",
|
|
||||||
"creation_time_str": "",
|
|
||||||
"deleted": 0,
|
|
||||||
"owner_name": "",
|
|
||||||
"public": 1,
|
|
||||||
"togglable": true,
|
|
||||||
"update_time": "2017-02-10T07:57:56Z",
|
|
||||||
"current_user_role_id": 1,
|
|
||||||
"repo_count": 0
|
|
||||||
}
|
|
||||||
]
|
|
||||||
*/
|
|
||||||
export class Project {
|
export class Project {
|
||||||
project_id: number;
|
project_id: number;
|
||||||
owner_id: number;
|
owner_id: number;
|
||||||
|
@ -9,7 +9,7 @@ import { of } from 'rxjs';
|
|||||||
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { SessionService } from "../../../shared/session.service";
|
import { SessionService } from "../../../shared/session.service";
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { ArtifactService } from "../../../../../ng-swagger-gen/services/artifact.service";
|
import { ArtifactService } from "../../../../../ng-swagger-gen/services/artifact.service";
|
||||||
import { ArtifactDefaultService } from "../artifact/artifact.service";
|
import { ArtifactDefaultService } from "../artifact/artifact.service";
|
||||||
import { IServiceConfig, SERVICE_CONFIG } from "../../../../lib/entities/service.config";
|
import { IServiceConfig, SERVICE_CONFIG } from "../../../../lib/entities/service.config";
|
||||||
|
@ -15,7 +15,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { ArtifactListComponent } from "./artifact-list/artifact-list.component";
|
import { ArtifactListComponent } from "./artifact-list/artifact-list.component";
|
||||||
import { ArtifactDefaultService } from "../artifact/artifact.service";
|
import { ArtifactDefaultService } from "../artifact/artifact.service";
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { SessionService } from "../../../shared/session.service";
|
import { SessionService } from "../../../shared/session.service";
|
||||||
import { ArtifactClickEvent } from "../../../../lib/services";
|
import { ArtifactClickEvent } from "../../../../lib/services";
|
||||||
import { Project } from "../../project";
|
import { Project } from "../../project";
|
||||||
|
@ -9,7 +9,8 @@ import { ArtifactService } from "../../../../../ng-swagger-gen/services/artifact
|
|||||||
import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
||||||
import { TranslateFakeLoader, TranslateLoader, TranslateModule } from "@ngx-translate/core";
|
import { TranslateFakeLoader, TranslateLoader, TranslateModule } from "@ngx-translate/core";
|
||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
|
import { Project } from "../../project";
|
||||||
|
|
||||||
describe('ArtifactSummaryComponent', () => {
|
describe('ArtifactSummaryComponent', () => {
|
||||||
|
|
||||||
@ -43,11 +44,7 @@ describe('ArtifactSummaryComponent', () => {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
projectResolver: {
|
artifactResolver: [mockedArtifact, new Project()]
|
||||||
has_project_admin_role: true,
|
|
||||||
current_user_role_id: 3,
|
|
||||||
name: "demo"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data: of({
|
data: of({
|
||||||
|
@ -5,7 +5,7 @@ import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
|||||||
import { Label } from "../../../../../ng-swagger-gen/models/label";
|
import { Label } from "../../../../../ng-swagger-gen/models/label";
|
||||||
import { ProjectService } from "../../../../lib/services";
|
import { ProjectService } from "../../../../lib/services";
|
||||||
import { ActivatedRoute, Router } from "@angular/router";
|
import { ActivatedRoute, Router } from "@angular/router";
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { Project } from "../../project";
|
import { Project } from "../../project";
|
||||||
import { finalize } from "rxjs/operators";
|
import { finalize } from "rxjs/operators";
|
||||||
|
|
||||||
@ -77,11 +77,9 @@ export class ArtifactSummaryComponent implements OnInit {
|
|||||||
if (this.repositoryName && this.artifactDigest) {
|
if (this.repositoryName && this.artifactDigest) {
|
||||||
const resolverData = this.route.snapshot.data;
|
const resolverData = this.route.snapshot.data;
|
||||||
if (resolverData) {
|
if (resolverData) {
|
||||||
const pro: Project = <Project>resolverData['projectResolver'];
|
const pro: Project = <Project>(resolverData['artifactResolver'][1]);
|
||||||
this.projectName = pro.name;
|
this.projectName = pro.name;
|
||||||
if (this.projectName) {
|
this.artifact = <Artifact>(resolverData['artifactResolver'][0]);
|
||||||
this.getArtifactDetails();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import { RobotService } from "../robot-account.service";
|
|||||||
import { of } from "rxjs";
|
import { of } from "rxjs";
|
||||||
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
||||||
|
|
||||||
describe('AddRobotComponent', () => {
|
describe('AddRobotComponent', () => {
|
||||||
|
@ -17,7 +17,7 @@ import { TranslateService } from "@ngx-translate/core";
|
|||||||
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
import { MessageHandlerService } from "../../../shared/message-handler/message-handler.service";
|
||||||
import { InlineAlertComponent } from "../../../shared/inline-alert/inline-alert.component";
|
import { InlineAlertComponent } from "../../../shared/inline-alert/inline-alert.component";
|
||||||
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
|
||||||
import { AppConfigService } from "../../../app-config.service";
|
import { AppConfigService } from "../../../services/app-config.service";
|
||||||
import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../../lib/utils/error-handler";
|
||||||
const ONE_THOUSAND: number = 1000;
|
const ONE_THOUSAND: number = 1000;
|
||||||
const NEVER_EXPIRED: number = -1;
|
const NEVER_EXPIRED: number = -1;
|
||||||
|
@ -4,7 +4,7 @@ import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { SummaryComponent } from './summary.component';
|
import { SummaryComponent } from './summary.component';
|
||||||
import { ProjectService, UserPermissionService } from "../../../lib/services";
|
import { ProjectService, UserPermissionService } from "../../../lib/services";
|
||||||
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { Component, Input, OnInit } from '@angular/core';
|
import { Component, Input, OnInit } from '@angular/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { AppConfigService } from "../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { QUOTA_DANGER_COEFFICIENT, QUOTA_WARNING_COEFFICIENT, QuotaUnits } from "../../../lib/entities/shared.const";
|
import { QUOTA_DANGER_COEFFICIENT, QUOTA_WARNING_COEFFICIENT, QuotaUnits } from "../../../lib/entities/shared.const";
|
||||||
import { ProjectService, UserPermissionService, USERSTATICPERMISSION } from "../../../lib/services";
|
import { ProjectService, UserPermissionService, USERSTATICPERMISSION } from "../../../lib/services";
|
||||||
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
import { ErrorHandler } from "../../../lib/utils/error-handler";
|
||||||
|
@ -1 +0,0 @@
|
|||||||
<replication-tasks [executionId]="executionId"></replication-tasks>
|
|
@ -1,48 +0,0 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
||||||
import { ReplicationTasksPageComponent } from './replication-tasks-page.component';
|
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
||||||
import { of } from 'rxjs';
|
|
||||||
|
|
||||||
describe('ReplicationTasksPageComponent', () => {
|
|
||||||
let component: ReplicationTasksPageComponent;
|
|
||||||
let fixture: ComponentFixture<ReplicationTasksPageComponent>;
|
|
||||||
let mockActivatedRoute = {
|
|
||||||
snapshot: {
|
|
||||||
params: 1
|
|
||||||
}
|
|
||||||
};
|
|
||||||
let mockRouter = null;
|
|
||||||
|
|
||||||
beforeEach(async(() => {
|
|
||||||
TestBed.configureTestingModule({
|
|
||||||
declarations: [ReplicationTasksPageComponent],
|
|
||||||
schemas: [
|
|
||||||
CUSTOM_ELEMENTS_SCHEMA
|
|
||||||
],
|
|
||||||
imports: [
|
|
||||||
TranslateModule.forRoot()
|
|
||||||
],
|
|
||||||
providers: [
|
|
||||||
{
|
|
||||||
provide: ActivatedRoute, useValue: mockActivatedRoute
|
|
||||||
},
|
|
||||||
{
|
|
||||||
provide: Router, useValue: mockRouter
|
|
||||||
},
|
|
||||||
TranslateService
|
|
||||||
]
|
|
||||||
}).compileComponents();
|
|
||||||
}));
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
fixture = TestBed.createComponent(ReplicationTasksPageComponent);
|
|
||||||
component = fixture.componentInstance;
|
|
||||||
fixture.detectChanges();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should create', () => {
|
|
||||||
expect(component).toBeTruthy();
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,18 +0,0 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
|
||||||
import { ActivatedRoute } from '@angular/router';
|
|
||||||
@Component({
|
|
||||||
selector: 'app-replication-tasks-page',
|
|
||||||
templateUrl: './replication-tasks-page.component.html',
|
|
||||||
styleUrls: ['./replication-tasks-page.component.scss']
|
|
||||||
})
|
|
||||||
export class ReplicationTasksPageComponent implements OnInit {
|
|
||||||
executionId: string;
|
|
||||||
constructor(
|
|
||||||
private route: ActivatedRoute,
|
|
||||||
) { }
|
|
||||||
|
|
||||||
ngOnInit(): void {
|
|
||||||
this.executionId = this.route.snapshot.params["id"];
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -13,13 +13,10 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
import { NgModule } from '@angular/core';
|
import { NgModule } from '@angular/core';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
|
|
||||||
import { ReplicationManagementComponent } from './replication-management/replication-management.component';
|
import { ReplicationManagementComponent } from './replication-management/replication-management.component';
|
||||||
import { ReplicationPageComponent } from './replication-page.component';
|
import { ReplicationPageComponent } from './replication-page.component';
|
||||||
import { TotalReplicationPageComponent } from './total-replication/total-replication-page.component';
|
import { TotalReplicationPageComponent } from './total-replication/total-replication-page.component';
|
||||||
import { DestinationPageComponent } from './destination/destination-page.component';
|
import { DestinationPageComponent } from './destination/destination-page.component';
|
||||||
import { ReplicationTasksPageComponent } from './replication-tasks-page/replication-tasks-page.component';
|
|
||||||
|
|
||||||
import { SharedModule } from '../shared/shared.module';
|
import { SharedModule } from '../shared/shared.module';
|
||||||
import {ReactiveFormsModule} from "@angular/forms";
|
import {ReactiveFormsModule} from "@angular/forms";
|
||||||
|
|
||||||
@ -33,13 +30,11 @@ import {ReactiveFormsModule} from "@angular/forms";
|
|||||||
ReplicationPageComponent,
|
ReplicationPageComponent,
|
||||||
ReplicationManagementComponent,
|
ReplicationManagementComponent,
|
||||||
TotalReplicationPageComponent,
|
TotalReplicationPageComponent,
|
||||||
ReplicationTasksPageComponent,
|
|
||||||
DestinationPageComponent,
|
DestinationPageComponent,
|
||||||
],
|
],
|
||||||
exports: [
|
exports: [
|
||||||
ReplicationPageComponent,
|
ReplicationPageComponent,
|
||||||
DestinationPageComponent,
|
DestinationPageComponent,
|
||||||
ReplicationTasksPageComponent,
|
|
||||||
TotalReplicationPageComponent,
|
TotalReplicationPageComponent,
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
@ -9,7 +9,7 @@ import { FormsModule } from '@angular/forms';
|
|||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
||||||
import {SessionService} from "../../shared/session.service";
|
import {SessionService} from "../../shared/session.service";
|
||||||
import {AppConfigService} from "../../app-config.service";
|
import {AppConfigService} from "../../services/app-config.service";
|
||||||
|
|
||||||
describe('TotalReplicationPageComponent', () => {
|
describe('TotalReplicationPageComponent', () => {
|
||||||
let component: TotalReplicationPageComponent;
|
let component: TotalReplicationPageComponent;
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import {Router, ActivatedRoute} from "@angular/router";
|
import {Router, ActivatedRoute} from "@angular/router";
|
||||||
import {SessionService} from "../../shared/session.service";
|
import {SessionService} from "../../shared/session.service";
|
||||||
import {AppConfigService} from "../../app-config.service";
|
import {AppConfigService} from "../../services/app-config.service";
|
||||||
import { ReplicationRule } from "../../../lib/services";
|
import { ReplicationRule } from "../../../lib/services";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -3,8 +3,7 @@ import { HttpClientTestingModule, HttpTestingController } from '@angular/common/
|
|||||||
import { CookieService } from 'ngx-cookie';
|
import { CookieService } from 'ngx-cookie';
|
||||||
import { AppConfigService } from './app-config.service';
|
import { AppConfigService } from './app-config.service';
|
||||||
import { AppConfig } from './app-config';
|
import { AppConfig } from './app-config';
|
||||||
import { Component } from '@angular/core';
|
import { CURRENT_BASE_HREF } from "../../lib/utils/utils";
|
||||||
import { CURRENT_BASE_HREF } from "../lib/utils/utils";
|
|
||||||
|
|
||||||
describe('AppConfigService', () => {
|
describe('AppConfigService', () => {
|
||||||
let injector: TestBed;
|
let injector: TestBed;
|
@ -15,12 +15,12 @@ import { Injectable } from '@angular/core';
|
|||||||
import { HttpClient } from '@angular/common/http';
|
import { HttpClient } from '@angular/common/http';
|
||||||
import { CookieService } from 'ngx-cookie';
|
import { CookieService } from 'ngx-cookie';
|
||||||
import { AppConfig } from './app-config';
|
import { AppConfig } from './app-config';
|
||||||
import { CookieKeyOfAdmiral, HarborQueryParamKey } from './shared/shared.const';
|
import { CookieKeyOfAdmiral, HarborQueryParamKey } from '../shared/shared.const';
|
||||||
import { maintainUrlQueryParmas } from './shared/shared.utils';
|
import { maintainUrlQueryParmas } from '../shared/shared.utils';
|
||||||
import { map, catchError } from "rxjs/operators";
|
import { map } from "rxjs/operators";
|
||||||
import { Observable, throwError as observableThrowError } from "rxjs";
|
import { Observable } from "rxjs";
|
||||||
import { CURRENT_BASE_HREF, HTTP_GET_OPTIONS } from "../lib/utils/utils";
|
import { CURRENT_BASE_HREF, HTTP_GET_OPTIONS } from "../../lib/utils/utils";
|
||||||
import { CONFIG_AUTH_MODE } from "../lib/entities/shared.const";
|
import { CONFIG_AUTH_MODE } from "../../lib/entities/shared.const";
|
||||||
export const systemInfoEndpoint = CURRENT_BASE_HREF + "/systeminfo";
|
export const systemInfoEndpoint = CURRENT_BASE_HREF + "/systeminfo";
|
||||||
/**
|
/**
|
||||||
* Declare service to handle the bootstrap options
|
* Declare service to handle the bootstrap options
|
@ -13,7 +13,7 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
import { ClairDBStatus } from "../lib/services";
|
import { ClairDBStatus } from "../../lib/services";
|
||||||
|
|
||||||
export class AppConfig {
|
export class AppConfig {
|
||||||
with_notary: boolean;
|
with_notary: boolean;
|
@ -0,0 +1,23 @@
|
|||||||
|
import { TestBed, inject } from '@angular/core/testing';
|
||||||
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
|
import { ProjectService } from "../../../lib/services";
|
||||||
|
import { ArtifactService } from "../../../../ng-swagger-gen/services/artifact.service";
|
||||||
|
import { ArtifactDetailRoutingResolverService } from "./artifact-detail-routing-resolver.service";
|
||||||
|
|
||||||
|
describe('ArtifactDetailRoutingResolverService', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
imports: [
|
||||||
|
RouterTestingModule
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
{ provide: ProjectService, useValue: null },
|
||||||
|
{ provide: ArtifactService, useValue: null },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', inject([ArtifactDetailRoutingResolverService], (service: ArtifactDetailRoutingResolverService) => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
}));
|
||||||
|
});
|
@ -0,0 +1,56 @@
|
|||||||
|
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 { Injectable } from '@angular/core';
|
||||||
|
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
|
||||||
|
import { forkJoin, Observable, of } from 'rxjs';
|
||||||
|
import { map, catchError, mergeMap } from "rxjs/operators";
|
||||||
|
import { Artifact } from "../../../../ng-swagger-gen/models/artifact";
|
||||||
|
import { ArtifactService } from "../../../../ng-swagger-gen/services/artifact.service";
|
||||||
|
import { Project } from "../../project/project";
|
||||||
|
import { ProjectService } from "../../../lib/services";
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class ArtifactDetailRoutingResolverService implements Resolve<Artifact> {
|
||||||
|
constructor(
|
||||||
|
private projectService: ProjectService,
|
||||||
|
private artifactService: ArtifactService,
|
||||||
|
private router: Router) { }
|
||||||
|
|
||||||
|
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<Artifact> | any {
|
||||||
|
const projectId: string = route.params['id'];
|
||||||
|
const repositoryName: string = route.params['repo'];
|
||||||
|
const artifactDigest: string = route.params['digest'];
|
||||||
|
return this.projectService
|
||||||
|
.getProject(projectId)
|
||||||
|
.pipe(
|
||||||
|
mergeMap((project: Project) => {
|
||||||
|
return forkJoin([this.artifactService.getArtifact({
|
||||||
|
repositoryName: repositoryName,
|
||||||
|
reference: artifactDigest,
|
||||||
|
projectName: project.name,
|
||||||
|
withLabel: true,
|
||||||
|
withScanOverview: true,
|
||||||
|
withSignature: true,
|
||||||
|
withImmutableStatus: true
|
||||||
|
}), of(project)]);
|
||||||
|
}),
|
||||||
|
catchError (error => {
|
||||||
|
this.router.navigate(['/harbor', 'projects']);
|
||||||
|
return null;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
import { TestBed, inject } from '@angular/core/testing';
|
import { TestBed, inject } from '@angular/core/testing';
|
||||||
import { SessionService } from '../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { ProjectRoutingResolver } from './project-routing-resolver.service';
|
import { ProjectRoutingResolver } from './project-routing-resolver.service';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { ProjectService } from "../../lib/services";
|
import { ProjectService } from "../../../lib/services";
|
||||||
|
|
||||||
describe('ProjectRoutingResolverService', () => {
|
describe('ProjectRoutingResolverService', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
@ -13,17 +13,19 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
|
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
|
||||||
import { Project } from './project';
|
import { Project } from '../../project/project';
|
||||||
import { SessionService } from '../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { map, catchError } from "rxjs/operators";
|
import { map, catchError } from "rxjs/operators";
|
||||||
import { RoleInfo } from '../shared/shared.const';
|
import { RoleInfo } from '../../shared/shared.const';
|
||||||
|
|
||||||
|
|
||||||
import { Roles } from '../shared/shared.const';
|
import { Roles } from '../../shared/shared.const';
|
||||||
import { ProjectService } from "../../lib/services";
|
import { ProjectService } from "../../../lib/services";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
export class ProjectRoutingResolver implements Resolve<Project> {
|
export class ProjectRoutingResolver implements Resolve<Project> {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
@ -0,0 +1,21 @@
|
|||||||
|
import { TestBed, inject } from '@angular/core/testing';
|
||||||
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
|
import { ReplicationService } from "../../../lib/services";
|
||||||
|
import { ReplicationTasksRoutingResolverService } from "./replication-tasks-routing-resolver.service";
|
||||||
|
|
||||||
|
describe('ReplicationTasksRoutingResolverService', () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
imports: [
|
||||||
|
RouterTestingModule
|
||||||
|
],
|
||||||
|
providers: [
|
||||||
|
{ provide: ReplicationService, useValue: null },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should be created', inject([ReplicationTasksRoutingResolverService], (service: ReplicationTasksRoutingResolverService) => {
|
||||||
|
expect(service).toBeTruthy();
|
||||||
|
}));
|
||||||
|
});
|
@ -0,0 +1,46 @@
|
|||||||
|
// Copyright (c) 2017 VMware, Inc. All Rights Reserved.
|
||||||
|
//
|
||||||
|
// 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 { Injectable } from '@angular/core';
|
||||||
|
import { Router, Resolve, RouterStateSnapshot, ActivatedRouteSnapshot } from '@angular/router';
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
import { map, catchError } from "rxjs/operators";
|
||||||
|
import { ReplicationJob, ReplicationService } from "../../../lib/services";
|
||||||
|
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class ReplicationTasksRoutingResolverService implements Resolve<ReplicationJob> {
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
private replicationService: ReplicationService,
|
||||||
|
private router: Router) { }
|
||||||
|
|
||||||
|
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<ReplicationJob> | any {
|
||||||
|
// Support both parameters and query parameters
|
||||||
|
let executionId = route.params['id'];
|
||||||
|
if (!executionId) {
|
||||||
|
executionId = route.queryParams['project_id'];
|
||||||
|
}
|
||||||
|
return this.replicationService.getExecutionById(executionId)
|
||||||
|
.pipe(map((res: ReplicationJob) => {
|
||||||
|
if (!res) {
|
||||||
|
this.router.navigate(['/harbor', 'projects']);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}), catchError (error => {
|
||||||
|
this.router.navigate(['/harbor', 'projects']);
|
||||||
|
return null;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,7 @@
|
|||||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { SkinableConfig } from "../../skinable-config.service";
|
import { SkinableConfig } from "../../services/skinable-config.service";
|
||||||
import { AboutDialogComponent } from './about-dialog.component';
|
import { AboutDialogComponent } from './about-dialog.component';
|
||||||
import { ClarityModule } from "@clr/angular";
|
import { ClarityModule } from "@clr/angular";
|
||||||
|
|
||||||
|
@ -14,8 +14,8 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { TranslateService } from "@ngx-translate/core";
|
import { TranslateService } from "@ngx-translate/core";
|
||||||
|
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { SkinableConfig } from "../../skinable-config.service";
|
import { SkinableConfig } from "../../services/skinable-config.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'about-dialog',
|
selector: 'about-dialog',
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { TestBed, inject } from '@angular/core/testing';
|
import { TestBed, inject } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { MessageHandlerService } from '../message-handler/message-handler.service';
|
import { MessageHandlerService } from '../message-handler/message-handler.service';
|
||||||
import { SearchTriggerService } from '../../base/global-search/search-trigger.service';
|
import { SearchTriggerService } from '../../base/global-search/search-trigger.service';
|
||||||
import { AuthCheckGuard } from './auth-user-activate.service';
|
import { AuthCheckGuard } from './auth-user-activate.service';
|
||||||
|
@ -21,7 +21,7 @@ import {
|
|||||||
} from '@angular/router';
|
} from '@angular/router';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { AdmiralQueryParamKey } from '../../shared/shared.const';
|
import { AdmiralQueryParamKey } from '../../shared/shared.const';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { maintainUrlQueryParmas } from '../../shared/shared.utils';
|
import { maintainUrlQueryParmas } from '../../shared/shared.utils';
|
||||||
import { MessageHandlerService } from '../message-handler/message-handler.service';
|
import { MessageHandlerService } from '../message-handler/message-handler.service';
|
||||||
import { SearchTriggerService } from '../../base/global-search/search-trigger.service';
|
import { SearchTriggerService } from '../../base/global-search/search-trigger.service';
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { TestBed, async, inject } from '@angular/core/testing';
|
import { TestBed, async, inject } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { ModeGuard } from './mode-guard-activate.service';
|
import { ModeGuard } from './mode-guard-activate.service';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
|
|
||||||
describe('ModeGuardActivateServiceGuard', () => {
|
describe('ModeGuardActivateServiceGuard', () => {
|
||||||
const fakeAppConfigService = null;
|
const fakeAppConfigService = null;
|
||||||
|
@ -18,7 +18,7 @@ import {
|
|||||||
RouterStateSnapshot,
|
RouterStateSnapshot,
|
||||||
CanActivateChild
|
CanActivateChild
|
||||||
} from '@angular/router';
|
} from '@angular/router';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { TestBed, async, inject } from '@angular/core/testing';
|
import { TestBed, async, inject } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { OidcGuard } from './oidc-guard-active.service';
|
import { OidcGuard } from './oidc-guard-active.service';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { UserPermissionService } from "../../../lib/services";
|
import { UserPermissionService } from "../../../lib/services";
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ import {
|
|||||||
RouterStateSnapshot,
|
RouterStateSnapshot,
|
||||||
CanActivateChild
|
CanActivateChild
|
||||||
} from '@angular/router';
|
} from '@angular/router';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
||||||
import { UserPermissionService } from "../../../lib/services";
|
import { UserPermissionService } from "../../../lib/services";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { TestBed, inject } from '@angular/core/testing';
|
import { TestBed, inject } from '@angular/core/testing';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { SystemAdminGuard } from './system-admin-activate.service';
|
import { SystemAdminGuard } from './system-admin-activate.service';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
|
|
||||||
describe('SystemAdminGuard', () => {
|
describe('SystemAdminGuard', () => {
|
||||||
|
@ -20,7 +20,7 @@ import {
|
|||||||
NavigationExtras
|
NavigationExtras
|
||||||
} from '@angular/router';
|
} from '@angular/router';
|
||||||
import { SessionService } from '../../shared/session.service';
|
import { SessionService } from '../../shared/session.service';
|
||||||
import { AppConfigService } from '../../app-config.service';
|
import { AppConfigService } from '../../services/app-config.service';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
import { CommonRoutes } from "../../../lib/entities/shared.const";
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ import { StatisticsService } from "./statistics.service";
|
|||||||
import { SessionService } from "../session.service";
|
import { SessionService } from "../session.service";
|
||||||
import { MessageHandlerService } from "../message-handler/message-handler.service";
|
import { MessageHandlerService } from "../message-handler/message-handler.service";
|
||||||
import { StatisticHandler } from "./statistic-handler.service";
|
import { StatisticHandler } from "./statistic-handler.service";
|
||||||
import { AppConfigService } from "./../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
import { Statistics } from './statistics';
|
import { Statistics } from './statistics';
|
||||||
import { Volumes } from './volumes';
|
import { Volumes } from './volumes';
|
||||||
describe('StatisticsPanelComponent', () => {
|
describe('StatisticsPanelComponent', () => {
|
||||||
|
@ -22,7 +22,7 @@ import { Volumes } from "./volumes";
|
|||||||
|
|
||||||
import { MessageHandlerService } from "../message-handler/message-handler.service";
|
import { MessageHandlerService } from "../message-handler/message-handler.service";
|
||||||
import { StatisticHandler } from "./statistic-handler.service";
|
import { StatisticHandler } from "./statistic-handler.service";
|
||||||
import { AppConfigService } from "./../../app-config.service";
|
import { AppConfigService } from "../../services/app-config.service";
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
@ -2,10 +2,10 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|||||||
import { SignInComponent } from './sign-in.component';
|
import { SignInComponent } from './sign-in.component';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { RouterTestingModule } from '@angular/router/testing';
|
import { RouterTestingModule } from '@angular/router/testing';
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { SessionService } from '../shared/session.service';
|
import { SessionService } from '../shared/session.service';
|
||||||
import { CookieService } from 'ngx-cookie';
|
import { CookieService } from 'ngx-cookie';
|
||||||
import { SkinableConfig } from "../skinable-config.service";
|
import { SkinableConfig } from "../services/skinable-config.service";
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
|
||||||
import { ClarityModule } from "@clr/angular";
|
import { ClarityModule } from "@clr/angular";
|
||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
||||||
|
@ -19,11 +19,11 @@ import { SessionService } from '../shared/session.service';
|
|||||||
import { SignInCredential } from '../shared/sign-in-credential';
|
import { SignInCredential } from '../shared/sign-in-credential';
|
||||||
import { SignUpComponent } from '../account/sign-up/sign-up.component';
|
import { SignUpComponent } from '../account/sign-up/sign-up.component';
|
||||||
import { ForgotPasswordComponent } from '../account/password-setting/forgot-password/forgot-password.component';
|
import { ForgotPasswordComponent } from '../account/password-setting/forgot-password/forgot-password.component';
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { AppConfig } from '../app-config';
|
import { AppConfig } from '../services/app-config';
|
||||||
import { User } from '../user/user';
|
import { User } from '../user/user';
|
||||||
import { CookieService, CookieOptions } from 'ngx-cookie';
|
import { CookieService, CookieOptions } from 'ngx-cookie';
|
||||||
import { SkinableConfig } from "../skinable-config.service";
|
import { SkinableConfig } from "../services/skinable-config.service";
|
||||||
import {ModalEvent} from "../base/modal-event";
|
import {ModalEvent} from "../base/modal-event";
|
||||||
import {modalEvents} from "../base/modal-events.const";
|
import {modalEvents} from "../base/modal-events.const";
|
||||||
import {AboutDialogComponent} from "../shared/about-dialog/about-dialog.component";
|
import {AboutDialogComponent} from "../shared/about-dialog/about-dialog.component";
|
||||||
|
@ -6,7 +6,7 @@ import { UserService } from './user.service';
|
|||||||
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
||||||
import { ConfirmationDialogService } from '../shared/confirmation-dialog/confirmation-dialog.service';
|
import { ConfirmationDialogService } from '../shared/confirmation-dialog/confirmation-dialog.service';
|
||||||
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { SessionService } from '../shared/session.service';
|
import { SessionService } from '../shared/session.service';
|
||||||
import { UserComponent } from './user.component';
|
import { UserComponent } from './user.component';
|
||||||
import { OperationService } from "../../lib/components/operation/operation.service";
|
import { OperationService } from "../../lib/components/operation/operation.service";
|
||||||
|
@ -19,7 +19,7 @@ import { ConfirmationDialogService } from '../shared/confirmation-dialog/confirm
|
|||||||
import { ConfirmationMessage } from '../shared/confirmation-dialog/confirmation-message';
|
import { ConfirmationMessage } from '../shared/confirmation-dialog/confirmation-message';
|
||||||
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
import { MessageHandlerService } from '../shared/message-handler/message-handler.service';
|
||||||
import { SessionService } from '../shared/session.service';
|
import { SessionService } from '../shared/session.service';
|
||||||
import { AppConfigService } from '../app-config.service';
|
import { AppConfigService } from '../services/app-config.service';
|
||||||
import { NewUserModalComponent } from './new-user-modal.component';
|
import { NewUserModalComponent } from './new-user-modal.component';
|
||||||
import { UserService } from './user.service';
|
import { UserService } from './user.service';
|
||||||
import { User } from './user';
|
import { User } from './user';
|
||||||
|
@ -2,7 +2,7 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|||||||
import { ClarityModule } from '@clr/angular';
|
import { ClarityModule } from '@clr/angular';
|
||||||
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
||||||
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
||||||
import { AppConfigService } from "../app-config.service";
|
import { AppConfigService } from "../services/app-config.service";
|
||||||
import { VulnerabilityPageComponent } from './vulnerability-page.component';
|
import { VulnerabilityPageComponent } from './vulnerability-page.component';
|
||||||
|
|
||||||
describe('VulnerabilityPageComponent', () => {
|
describe('VulnerabilityPageComponent', () => {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Component, OnInit } from "@angular/core";
|
import { Component, OnInit } from "@angular/core";
|
||||||
import { AppConfigService } from "../app-config.service";
|
import { AppConfigService } from "../services/app-config.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "vulnerability-page",
|
selector: "vulnerability-page",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { Component, OnInit, Input, OnDestroy } from '@angular/core';
|
import { Component, OnInit, OnDestroy } from '@angular/core';
|
||||||
import { Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { ReplicationService } from "../../../services/replication.service";
|
import { ReplicationService } from "../../../services/replication.service";
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { finalize } from "rxjs/operators";
|
import { finalize } from "rxjs/operators";
|
||||||
@ -9,6 +9,7 @@ import { ReplicationJob, ReplicationTasks, Comparator, ReplicationJobItem, State
|
|||||||
import { CustomComparator, DEFAULT_PAGE_SIZE } from "../../../utils/utils";
|
import { CustomComparator, DEFAULT_PAGE_SIZE } from "../../../utils/utils";
|
||||||
import { RequestQueryParams } from "../../../services/RequestQueryParams";
|
import { RequestQueryParams } from "../../../services/RequestQueryParams";
|
||||||
import { REFRESH_TIME_DIFFERENCE } from '../../../entities/shared.const';
|
import { REFRESH_TIME_DIFFERENCE } from '../../../entities/shared.const';
|
||||||
|
|
||||||
const executionStatus = 'InProgress';
|
const executionStatus = 'InProgress';
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'replication-tasks',
|
selector: 'replication-tasks',
|
||||||
@ -30,7 +31,7 @@ export class ReplicationTasksComponent implements OnInit, OnDestroy {
|
|||||||
stopOnGoing: boolean;
|
stopOnGoing: boolean;
|
||||||
executions: ReplicationJobItem[];
|
executions: ReplicationJobItem[];
|
||||||
timerDelay: Subscription;
|
timerDelay: Subscription;
|
||||||
@Input() executionId: string;
|
executionId: string;
|
||||||
startTimeComparator: Comparator<ReplicationJob> = new CustomComparator<
|
startTimeComparator: Comparator<ReplicationJob> = new CustomComparator<
|
||||||
ReplicationJob
|
ReplicationJob
|
||||||
>("start_time", "date");
|
>("start_time", "date");
|
||||||
@ -43,13 +44,19 @@ export class ReplicationTasksComponent implements OnInit, OnDestroy {
|
|||||||
private router: Router,
|
private router: Router,
|
||||||
private replicationService: ReplicationService,
|
private replicationService: ReplicationService,
|
||||||
private errorHandler: ErrorHandler,
|
private errorHandler: ErrorHandler,
|
||||||
|
private route: ActivatedRoute,
|
||||||
) { }
|
) { }
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.searchTask = '';
|
this.searchTask = '';
|
||||||
this.getExecutionDetail();
|
this.executionId = this.route.snapshot.params['id'];
|
||||||
|
const resolverData = this.route.snapshot.data;
|
||||||
|
if (resolverData) {
|
||||||
|
const replicationJob = <ReplicationJob>(resolverData["replicationTasksRoutingResolver"]);
|
||||||
|
this.executions = replicationJob.data;
|
||||||
|
this.clrLoadPage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getExecutionDetail(): void {
|
getExecutionDetail(): void {
|
||||||
this.inProgress = true;
|
this.inProgress = true;
|
||||||
if (this.executionId) {
|
if (this.executionId) {
|
||||||
|
Loading…
Reference in New Issue
Block a user