diff --git a/app/components/file-details/manual-scan/request-form/login-details/index.ts b/app/components/file-details/manual-scan/request-form/login-details/index.ts
index b0cf19ecca..b838a6dfc6 100644
--- a/app/components/file-details/manual-scan/request-form/login-details/index.ts
+++ b/app/components/file-details/manual-scan/request-form/login-details/index.ts
@@ -38,7 +38,7 @@ export default class FileDetailsManualScanRequestFormLoginDetailsComponent exten
{
name: this.intl.t('action'),
component:
- 'file-details/scan-actions/manual-scan/login-details/user-role-action' as const,
+ 'file-details/manual-scan/request-form/login-details/user-role-action' as const,
textAlign: 'center',
},
];
diff --git a/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.hbs b/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.hbs
deleted file mode 100644
index 96d5ae6238..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.hbs
+++ /dev/null
@@ -1,88 +0,0 @@
-
- {{#if this.fetchCapturedApis.isRunning}}
-
-
-
-
- {{t 'loading'}}...
-
-
-
- {{else if this.hasNoCapturedApi}}
-
-
-
-
-
- {{t 'capturedApiEmptyTitle'}}
-
-
-
- {{t 'capturedApiEmptyDesc' htmlSafe=true}}
-
-
-
- {{else}}
-
-
-
- {{t 'capturedApiTitle'}}
-
-
- {{#if this.totalCapturedApiCount}}
-
- {{t 'selected'}}
- ({{this.selectedCount}}/{{this.totalCapturedApiCount}})
-
- {{/if}}
-
-
-
- {{#each pgc.currentPageResults as |ca|}}
-
- {{/each}}
-
-
-
-
- {{/if}}
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.scss b/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.scss
deleted file mode 100644
index 4b2ffae709..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.bordered-box {
- padding: 1.25em;
- border: 1px solid
- var(--file-details-scan-actions-api-scan-captured-apis-border-color);
- box-sizing: border-box;
-}
-
-.loading-container {
- padding: 1.5em;
- height: 150px;
- border-radius: var(
- --file-details-scan-actions-api-scan-captured-apis-border-radius
- );
- border: 1px solid
- var(--file-details-scan-actions-api-scan-captured-apis-border-color);
- box-sizing: border-box;
-}
diff --git a/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.ts b/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.ts
deleted file mode 100644
index 8f9d79a5f9..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/captured-apis/index.ts
+++ /dev/null
@@ -1,139 +0,0 @@
-import Component from '@glimmer/component';
-import { inject as service } from '@ember/service';
-import { tracked } from '@glimmer/tracking';
-import { task } from 'ember-concurrency';
-import FileModel from 'irene/models/file';
-import IntlService from 'ember-intl/services/intl';
-import Store from '@ember-data/store';
-import CapturedApiModel from 'irene/models/capturedapi';
-import ENV from 'irene/config/environment';
-
-// eslint-disable-next-line ember/use-ember-data-rfc-395-imports
-import { DS } from 'ember-data';
-import { PaginationProviderActionsArgs } from 'irene/components/ak-pagination-provider';
-import { action } from '@ember/object';
-
-export interface FileDetailsScanActionsOldApiScanCapturedApisSignature {
- Args: {
- file: FileModel;
- };
-}
-
-type CapturedApiQueryResponse =
- DS.AdapterPopulatedRecordArray
& {
- meta: { count: number };
- };
-
-export default class FileDetailsScanActionsOldApiScanCapturedApisComponent extends Component {
- @service declare intl: IntlService;
- @service declare ajax: any;
- @service declare store: Store;
- @service('notifications') declare notify: NotificationService;
-
- @tracked selectedCount = 0;
- @tracked capturedApiResponse: CapturedApiQueryResponse | null = null;
- @tracked limit = 5;
- @tracked offset = 0;
-
- constructor(
- owner: unknown,
- args: FileDetailsScanActionsOldApiScanCapturedApisSignature['Args']
- ) {
- super(owner, args);
-
- this.setSelectedCount.perform();
- this.fetchCapturedApis.perform(this.limit, this.offset);
- }
-
- get capturedApiList() {
- return this.capturedApiResponse?.toArray() || [];
- }
-
- get totalCapturedApiCount() {
- return this.capturedApiResponse?.meta?.count || 0;
- }
-
- get hasNoCapturedApi() {
- return this.totalCapturedApiCount === 0;
- }
-
- @action
- handlePrevNextAction({ limit, offset }: PaginationProviderActionsArgs) {
- this.limit = limit;
- this.offset = offset;
-
- this.fetchCapturedApis.perform(limit, offset);
- }
-
- @action
- handleItemPerPageChange({ limit }: PaginationProviderActionsArgs) {
- this.offset = 0;
-
- this.fetchCapturedApis.perform(limit, this.offset);
- }
-
- getSelectedApis = task(async () => {
- const url = [
- ENV.endpoints['files'],
- this.args.file.id,
- 'capturedapis',
- ].join('/');
-
- const data = { fileId: this.args.file.id, is_active: true };
-
- return await this.ajax.request(url, { namespace: ENV.namespace_v2, data });
- });
-
- setSelectedCount = task(async () => {
- try {
- const selectedApis = await this.getSelectedApis.perform();
-
- this.selectedCount = selectedApis.count;
- } catch (error) {
- const err = error as AdapterError;
- this.notify.error(err.toString());
- }
- });
-
- toggleApi = task(async (capturedApi: CapturedApiModel) => {
- try {
- capturedApi.set('isActive', !capturedApi.isActive);
-
- await capturedApi.save();
-
- this.notify.success(this.intl.t('capturedApiSaveSuccessMsg'));
-
- this.setSelectedCount.perform();
- } catch (err) {
- const error = err as AdapterError;
- let errMsg = this.intl.t('tPleaseTryAgain');
-
- if (error.errors && error.errors.length) {
- errMsg = error.errors[0]?.detail || errMsg;
- } else if (error.message) {
- errMsg = error.message;
- }
-
- this.notify.error(errMsg);
- }
- });
-
- fetchCapturedApis = task(async (limit: number, offset: number) => {
- try {
- this.capturedApiResponse = (await this.store.query('capturedapi', {
- limit,
- offset,
- fileId: this.args.file.id,
- })) as CapturedApiQueryResponse;
- } catch (error) {
- const err = error as AdapterError;
- this.notify.error(err.toString());
- }
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ApiScan::CapturedApis': typeof FileDetailsScanActionsOldApiScanCapturedApisComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.hbs b/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.hbs
deleted file mode 100644
index 7b5e5ee028..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.hbs
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
- {{request-to-url @capturedApi.request}}
-
- {{#if this.handleToggleApi.isRunning}}
-
- {{/if}}
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.scss b/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.scss
deleted file mode 100644
index ec7b5e5d52..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.api-endpoint-container {
- margin-top: 0.4em;
-
- .api-endpoint {
- word-break: break-all;
- white-space: normal;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.ts b/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.ts
deleted file mode 100644
index 69535547de..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/captured-apis/overview/index.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import Component from '@glimmer/component';
-import { task } from 'ember-concurrency';
-import CapturedApiModel from 'irene/models/capturedapi';
-
-export interface FileDetailsScanActionsOldApiScanCapturedApiOverviewSignature {
- Args: {
- capturedApi: CapturedApiModel;
- toggleApi: () => Promise;
- };
-}
-
-export default class FileDetailsScanActionsOldApiScanCapturedApiOverviewComponent extends Component {
- handleToggleApi = task(async () => {
- await this.args.toggleApi();
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ApiScan::CapturedApis::Overview': typeof FileDetailsScanActionsOldApiScanCapturedApiOverviewComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/api-scan/index.hbs b/app/components/file-details/scan-actions-old/api-scan/index.hbs
deleted file mode 100644
index 69fd69a92d..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/index.hbs
+++ /dev/null
@@ -1,114 +0,0 @@
-{{#if @file.isRunningApiScan}}
-
- {{t 'scanning'}}
- :
- {{@file.apiScanProgress}}%
-
-{{else if @file.isApiDone}}
-
- <:leftIcon>
-
-
-
- <:default>{{t 'completed'}}
-
-{{else if @file.isApiNotDone}}
-
- <:leftIcon>
- {{#if this.openApiScanModal.isRunning}}
-
- {{else}}
-
- {{/if}}
-
-
- <:default>{{t 'start'}}
-
-{{/if}}
-
-{{#if this.showApiScanModal}}
-
- <:default>
-
- {{#if this.hasDynamicScanDone}}
- {{#if this.capturedApisCount}}
-
-
-
-
- {{t 'modalCard.apiScan.warning' htmlSafe=true}}
-
-
-
-
-
- {{t 'modalCard.apiScan.description'}}
-
-
- {{/if}}
-
-
-
-
-
-
- {{else}}
-
-
-
-
- {{t 'modalCard.apiScan.noDynamicScan'}}
-
-
- {{/if}}
-
-
-
- <:footer>
-
-
-
- {{#if this.capturedApisCount}}
-
- {{t 'modalCard.apiScan.start'}}
-
- {{else}}
-
- {{t 'close'}}
-
- {{/if}}
-
-
-
-{{/if}}
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/api-scan/index.scss b/app/components/file-details/scan-actions-old/api-scan/index.scss
deleted file mode 100644
index 021ee4b3b9..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/index.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-.api-scan-modal-alert {
- padding: 1em;
- background-color: var(
- --file-details-scan-actions-api-scan-alert-background-color
- );
- color: var(--file-details-scan-actions-api-scan-alert-text-color);
- border: 1px solid var(--file-details-scan-actions-api-scan-alert-border-color);
- border-radius: var(--file-details-scan-actions-api-scan-border-radius);
-}
diff --git a/app/components/file-details/scan-actions-old/api-scan/index.ts b/app/components/file-details/scan-actions-old/api-scan/index.ts
deleted file mode 100644
index cd1292d47f..0000000000
--- a/app/components/file-details/scan-actions-old/api-scan/index.ts
+++ /dev/null
@@ -1,131 +0,0 @@
-import Component from '@glimmer/component';
-import { inject as service } from '@ember/service';
-import { action } from '@ember/object';
-import ENV from 'irene/config/environment';
-import triggerAnalytics from 'irene/utils/trigger-analytics';
-import { task } from 'ember-concurrency';
-import IntlService from 'ember-intl/services/intl';
-import { tracked } from '@glimmer/tracking';
-
-import FileModel from 'irene/models/file';
-import RealtimeService from 'irene/services/realtime';
-import TrailService from 'irene/services/trial';
-
-export interface FileDetailsScanActionsOldApiScanSignature {
- Args: {
- file: FileModel;
- };
-}
-
-export default class FileDetailsScanActionsOldApiScanComponent extends Component {
- @service declare intl: IntlService;
- @service declare trial: TrailService;
- @service declare ajax: any;
- @service('notifications') declare notify: NotificationService;
- @service declare realtime: RealtimeService;
-
- @tracked capturedApisCount = 0;
- @tracked showApiScanModal = false;
-
- get tStartingApiScan() {
- return this.intl.t('startingApiScan');
- }
-
- get tPleaseTryAgain() {
- return this.intl.t('pleaseTryAgain');
- }
-
- get hasDynamicScanDone() {
- return this.args.file.isDynamicDone;
- }
-
- /* fetch captured apis count */
- setCapturedApisCount = task(async () => {
- const url = [
- ENV.endpoints['files'],
- this.args.file.id,
- 'capturedapis',
- ].join('/');
-
- const data = { fileId: this.args.file.id };
-
- const apis = await this.ajax.request(url, {
- namespace: ENV.namespace_v2,
- data,
- });
-
- this.realtime.incrementProperty('CapturedApiCounter');
-
- try {
- this.capturedApisCount = apis.count;
- } catch (error) {
- this.notify.error((error as Error).toString());
- }
- });
-
- /* API scan modal actions */
- openApiScanModal = task({ drop: true }, async () => {
- if (this.hasDynamicScanDone) {
- await this.setCapturedApisCount.perform();
- }
-
- triggerAnalytics(
- 'feature',
- ENV.csb['apiScanBtnClick'] as CsbAnalyticsFeatureData
- );
-
- this.showApiScanModal = true;
- });
-
- @action
- closeApiScanModal() {
- this.showApiScanModal = false;
- }
-
- /* init API scan */
- startApiScan = task(async () => {
- const dynamicUrl = [
- ENV.endpoints['files'],
- this.args.file.id,
- ENV.endpoints['capturedApiScanStart'],
- ].join('/');
-
- return await this.ajax.post(dynamicUrl, { namespace: ENV.namespace_v2 });
- });
-
- runApiScan = task(async () => {
- try {
- this.showApiScanModal = false;
-
- await this.startApiScan.perform();
-
- triggerAnalytics(
- 'feature',
- ENV.csb['runAPIScan'] as CsbAnalyticsFeatureData
- );
-
- this.notify.success(this.tStartingApiScan);
- } catch (e) {
- const err = e as AdapterError;
-
- let errMsg = this.tPleaseTryAgain;
-
- if (err.errors && err.errors.length) {
- errMsg = err.errors[0]?.detail || errMsg;
- } else if (err.payload && err.payload.detail) {
- errMsg = err.payload.detail;
- } else if (err.message) {
- errMsg = err.message;
- }
-
- this.notify.error(errMsg);
- }
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ApiScan': typeof FileDetailsScanActionsOldApiScanComponent;
- 'file-details/scan-actions-old/api-scan': typeof FileDetailsScanActionsOldApiScanComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/index.hbs b/app/components/file-details/scan-actions-old/index.hbs
deleted file mode 100644
index 81692b8021..0000000000
--- a/app/components/file-details/scan-actions-old/index.hbs
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
- {{t 'scanTypes'}}
-
-
- {{#unless @file.isActive}}
-
-
-
- {{/unless}}
-
-
-
-
-
-
-
- {{t 'staticScan'}}
-
-
-
-
-
-
-
- {{t 'dynamicScan'}}
-
-
-
-
-
- {{#if this.isAPIScanEnabled}}
-
-
- {{t 'apiScan'}}
-
-
-
-
- {{/if}}
-
- {{#unless this.isManualScanDisabled}}
-
-
- {{t 'manualScan'}}
-
-
-
-
- {{/unless}}
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/index.scss b/app/components/file-details/scan-actions-old/index.scss
deleted file mode 100644
index 4b990614dc..0000000000
--- a/app/components/file-details/scan-actions-old/index.scss
+++ /dev/null
@@ -1,10 +0,0 @@
-.scan-actions-root {
- width: 100%;
- border: 1px solid var(--file-details-scan-actions-old-border-color);
- background-color: var(--file-details-scan-actions-old-background-color);
- box-sizing: border-box;
-
- .scan-actions-header {
- padding: 0.75em 1.5em;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/index.ts b/app/components/file-details/scan-actions-old/index.ts
deleted file mode 100644
index 373791352d..0000000000
--- a/app/components/file-details/scan-actions-old/index.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { inject as service } from '@ember/service';
-import Component from '@glimmer/component';
-
-import FileModel from 'irene/models/file';
-import OrganizationService from 'irene/services/organization';
-
-export interface FileDetailsScanActionsOldSignature {
- Args: {
- file: FileModel;
- };
-}
-
-export default class FileDetailsScanActionsOldComponent extends Component {
- @service declare organization: OrganizationService;
-
- get isManualScanDisabled() {
- return !this.args.file.project.get('isManualScanAvailable');
- }
-
- get isAPIScanEnabled() {
- return this.args.file.project.get('isAPIScanEnabled');
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld': typeof FileDetailsScanActionsOldComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.hbs b/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.hbs
deleted file mode 100644
index 5fca30eb5b..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.hbs
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
- {{t 'modalCard.manual.appEnv'}}
-
-
-
-
- {{t (app-environment aks.value)}}
-
-
-
-
-
-
- {{t 'minOSVersion'}}
-
-
-
-
-
-
-
- {{t 'modalCard.manual.appQuestion1'}}
-
-
-
-
- {{t (app-action aks.value)}}
-
-
-
-
-
-
- {{t 'modalCard.manual.poc'}}
-
-
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.scss b/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.scss
deleted file mode 100644
index 1bada3b3a6..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.basic-info-group {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 1.5em;
- box-sizing: border-box;
-
- .basic-info-label {
- flex: 1;
- }
-
- .basic-info-input-container {
- flex: 1;
- max-width: 200px;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.ts b/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.ts
deleted file mode 100644
index a9c1a132b9..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/basic-info/index.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import Component from '@glimmer/component';
-import FileModel from 'irene/models/file';
-import ENUMS from 'irene/enums';
-import ManualscanModel from 'irene/models/manualscan';
-import { action } from '@ember/object';
-
-export interface FileDetailsScanActionsOldManualScanBasicInfoSignature {
- Args: {
- file: FileModel;
- manualscan: ManualscanModel | null;
- };
-}
-
-export default class FileDetailsScanActionsOldManualScanBasicInfoComponent extends Component {
- get environments() {
- return ENUMS.APP_ENV.CHOICES.slice(0, -1);
- }
-
- get selectedAppEnvironment() {
- return this.environments.find(
- (it) => it.value === this.args.manualscan?.filteredAppEnv
- );
- }
-
- get appActions() {
- return ENUMS.APP_ACTION.CHOICES.slice(0, -1);
- }
-
- get selectedAppAction() {
- return this.appActions.find(
- (it) => it.value === this.args.manualscan?.filteredAppAction
- );
- }
-
- @action
- selectAppEnvironment({ value }: { value: string }) {
- this.args.manualscan?.set('appEnv', value);
- }
-
- @action
- handleAppActionChange({ value }: { value: string }) {
- const appAction = parseInt(value);
-
- this.args.manualscan?.set('appAction', appAction);
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ManualScan::BasicInfo': typeof FileDetailsScanActionsOldManualScanBasicInfoComponent;
- 'file-details/scan-actions-old/manual-scan/basic-info': typeof FileDetailsScanActionsOldManualScanBasicInfoComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/index.hbs b/app/components/file-details/scan-actions-old/manual-scan/index.hbs
deleted file mode 100644
index b9deb24fe1..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/index.hbs
+++ /dev/null
@@ -1,123 +0,0 @@
-
- {{#if @file.isManualRequested}}
-
- <:leftIcon>
-
-
-
- <:default>
- {{this.manualScanStatusText}}
-
-
- {{else}}
-
- <:leftIcon>
-
-
-
- <:default>{{t 'start'}}
-
- {{/if}}
-
- {{#if this.showManualScanModal}}
-
- <:default>
-
-
- {{t 'modalCard.manual.description'}}
-
-
-
- {{#each this.manualScanFormSections as |msf|}}
-
- <:content>
- {{#let (component msf.contentComponent) as |Component|}}
-
- {{/let}}
-
-
- {{/each}}
-
-
-
-
- {{t 'modalCard.manual.additionalComments'}}
-
-
-
-
-
-
-
- <:footer>
-
-
-
-
- {{t 'cancel'}}
-
-
-
- {{t 'modalCard.manual.title'}}
-
-
-
-
- {{/if}}
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/manual-scan/index.ts b/app/components/file-details/scan-actions-old/manual-scan/index.ts
deleted file mode 100644
index 84da02a705..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/index.ts
+++ /dev/null
@@ -1,248 +0,0 @@
-import { action } from '@ember/object';
-import { inject as service } from '@ember/service';
-import Component from '@glimmer/component';
-import { tracked } from '@glimmer/tracking';
-import { task } from 'ember-concurrency';
-import IntlService from 'ember-intl/services/intl';
-import Store from '@ember-data/store';
-import { isEmpty } from '@ember/utils';
-
-import triggerAnalytics from 'irene/utils/trigger-analytics';
-import ENV from 'irene/config/environment';
-import FileModel from 'irene/models/file';
-import OrganizationService from 'irene/services/organization';
-import ManualscanModel from 'irene/models/manualscan';
-import ENUMS from 'irene/enums';
-
-export interface FileDetailsScanActionsOldManualScanSignature {
- Args: {
- file: FileModel;
- };
-}
-
-export default class FileDetailsScanActionsOldManualScanComponent extends Component {
- @service declare intl: IntlService;
- @service declare organization: OrganizationService;
- @service declare ajax: any;
- @service declare store: Store;
- @service('notifications') declare notify: NotificationService;
-
- @tracked showManualScanModal = false;
- @tracked showManualScanRequestAccessModal = false;
- @tracked manualscan: ManualscanModel | null = null;
-
- constructor(
- owner: unknown,
- args: FileDetailsScanActionsOldManualScanSignature['Args']
- ) {
- super(owner, args);
-
- this.fetchManualScan.perform();
- }
-
- get manualScanFormSections() {
- return [
- {
- id: 'basic-info',
- summaryText: this.intl.t('modalCard.manual.basicAppInfo'),
- contentComponent:
- 'file-details/scan-actions/manual-scan/basic-info' as const,
- },
- {
- id: 'login-details',
- summaryText: this.intl.t('modalCard.manual.loginDetails'),
- contentComponent:
- 'file-details/scan-actions/manual-scan/login-details' as const,
- },
- {
- id: 'vpn-details',
- summaryText: this.intl.t('modalCard.manual.vpnDetails'),
- contentComponent:
- 'file-details/scan-actions/manual-scan/vpn-details' as const,
- },
- ];
- }
-
- get manualScanStatusLabels() {
- return {
- [ENUMS.MANUAL.NONE]: this.intl.t('notStarted'),
- [ENUMS.MANUAL.REQUESTED]: this.intl.t('requested'),
- [ENUMS.MANUAL.ASSESSING]: this.intl.t('inProgress'),
- [ENUMS.MANUAL.DONE]: this.intl.t('completed'),
- };
- }
-
- get manualScanStatusText() {
- if (this.args.file.isManualDone) {
- return this.manualScanStatusLabels[ENUMS.MANUAL.DONE];
- } else if (this.args.file.manual == 3 && !this.args.file.isManualDone) {
- return this.manualScanStatusLabels[ENUMS.MANUAL.ASSESSING];
- } else {
- return this.manualScanStatusLabels[this.args.file.manual];
- }
- }
-
- @action
- handleManualScanRequestAccessModalOpen() {
- this.showManualScanRequestAccessModal = true;
- }
-
- @action
- handleManualScanModalOpen() {
- triggerAnalytics(
- 'feature',
- ENV.csb['manualScanBtnClick'] as CsbAnalyticsFeatureData
- );
-
- this.showManualScanModal = true;
- }
-
- @action
- handleManualScanModalClose() {
- this.showManualScanModal = false;
- }
-
- fetchManualScan = task(async () => {
- this.manualscan = await this.store.findRecord(
- 'manualscan',
- this.args.file.id
- );
- });
-
- saveManualScanForm = task(async () => {
- const appName = this.args.file.name;
- const appEnv = this.manualscan?.filteredAppEnv;
- const appAction = this.manualscan?.filteredAppAction;
- const minOsVersion = this.manualscan?.minOsVersion;
-
- const contactName = this.manualscan?.contact.name;
- const contactEmail = this.manualscan?.contact.email;
-
- const contact = {
- name: contactName,
- email: contactEmail,
- };
-
- const tPleaseEnterUserRoles = this.intl.t(
- 'modalCard.manual.pleaseEnterUserRoles'
- );
-
- const loginRequired = this.manualscan?.loginRequired;
- const userRoles = this.manualscan?.userRoles;
-
- if (loginRequired) {
- if (isEmpty(userRoles)) {
- return this.notify.error(tPleaseEnterUserRoles);
- }
- }
-
- if (userRoles) {
- userRoles.forEach((userRole) => {
- delete userRole.id;
- });
- }
-
- const tPleaseEnterVPNDetails = this.intl.t(
- 'modalCard.manual.pleaseEnterVPNDetails'
- );
-
- const vpnRequired = this.manualscan?.vpnRequired;
-
- const vpnAddress = this.manualscan?.vpnDetails?.address;
- const vpnPort = this.manualscan?.vpnDetails?.port;
-
- if (vpnRequired) {
- for (const inputValue of [vpnAddress, vpnPort]) {
- if (isEmpty(inputValue)) {
- return this.notify.error(tPleaseEnterVPNDetails);
- }
- }
- }
-
- const vpnUsername = this.manualscan?.vpnDetails.username;
- const vpnPassword = this.manualscan?.vpnDetails.password;
-
- const vpnDetails = {
- address: vpnAddress,
- port: vpnPort,
- username: vpnUsername,
- password: vpnPassword,
- };
-
- const additionalComments = this.manualscan?.additionalComments;
-
- const data = {
- app_name: appName,
- app_env: appEnv,
- min_os_version: minOsVersion,
- app_action: appAction,
- login_required: loginRequired,
- user_roles: userRoles,
- vpn_required: vpnRequired,
- vpn_details: vpnDetails,
- contact,
- additional_comments: additionalComments,
- };
-
- const tManualRequested = this.intl.t('manualRequested');
-
- const url = [ENV.endpoints['manualscans'], this.args.file.id].join('/');
-
- try {
- await this.ajax.put(url, {
- data: JSON.stringify(data),
- contentType: 'application/json',
- });
-
- triggerAnalytics(
- 'feature',
- ENV.csb['requestManualScan'] as CsbAnalyticsFeatureData
- );
-
- this.notify.info(tManualRequested);
-
- if (!this.isDestroyed) {
- await this.args.file.reload();
- this.handleManualScanModalClose();
- }
- } catch (error) {
- const e = error as AdapterError;
- this.notify.error(e.payload.error);
- }
- });
-
- requestManualScanAccess = task(async () => {
- try {
- const url = [
- ENV.endpoints['organizations'],
- this.organization.selected?.id,
- ENV.endpoints['requestAccess'],
- ].join('/');
-
- await this.ajax.post(url);
- await this.args.file.reload();
-
- this.notify.success(this.intl.t('accessRequested'));
-
- this.showManualScanRequestAccessModal = false;
- } catch (error) {
- const err = error as AdapterError;
- let errMsg = this.intl.t('pleaseTryAgain');
-
- if (err.errors && err.errors.length) {
- errMsg = err.errors[0]?.detail || errMsg;
- } else if (err.message) {
- errMsg = err.message;
- }
-
- this.notify.error(errMsg);
- }
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ManualScan': typeof FileDetailsScanActionsOldManualScanComponent;
- 'file-details/scan-actions-old/manual-scan': typeof FileDetailsScanActionsOldManualScanComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/login-details/index.hbs b/app/components/file-details/scan-actions-old/manual-scan/login-details/index.hbs
deleted file mode 100644
index 8d0ee1b9f0..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/login-details/index.hbs
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- {{t 'modalCard.manual.loginRequired'}}
-
-
-
-
-
- {{#if @manualscan.loginRequired}}
-
-
- {{t 'modalCard.manual.enterLoginDetails' htmlSafe=true}}
-
-
-
-
-
-
-
-
-
-
-
- <:leftIcon>
-
-
-
- <:default>{{t 'modalCard.manual.addUserRole'}}
-
-
- {{#if this.hasUserRole}}
-
-
-
-
-
-
- {{#if r.columnValue.component}}
- {{#let (component r.columnValue.component) as |Component|}}
-
- {{/let}}
- {{else}}
-
- {{value}}
-
- {{/if}}
-
-
-
-
-
- {{/if}}
-
- {{/if}}
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/manual-scan/login-details/index.scss b/app/components/file-details/scan-actions-old/manual-scan/login-details/index.scss
deleted file mode 100644
index 48adac1d89..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/login-details/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.login-details-group {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 1.5em;
- box-sizing: border-box;
-
- .login-details-label {
- flex: 1;
- }
-
- .login-details-input-container {
- flex: 1;
- max-width: 200px;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/login-details/index.ts b/app/components/file-details/scan-actions-old/manual-scan/login-details/index.ts
deleted file mode 100644
index 0e2ef64d56..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/login-details/index.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { action } from '@ember/object';
-import { inject as service } from '@ember/service';
-import { isEmpty } from '@ember/utils';
-import Component from '@glimmer/component';
-import { tracked } from '@glimmer/tracking';
-import IntlService from 'ember-intl/services/intl';
-import FileModel from 'irene/models/file';
-import ManualscanModel, { UserRole } from 'irene/models/manualscan';
-
-export interface FileDetailsScanActionsOldManualScanLoginDetailsSignature {
- Args: {
- file: FileModel;
- manualscan: ManualscanModel | null;
- };
-}
-
-export default class FileDetailsScanActionsOldManualScanLoginDetailsComponent extends Component {
- @service declare intl: IntlService;
- @service('notifications') declare notify: NotificationService;
-
- @tracked role = '';
- @tracked username = '';
- @tracked password = '';
- @tracked showRemoveRoleConfirmBox = false;
- @tracked selectedUserRole: UserRole | null = null;
-
- get loginStatuses() {
- return ['yes', 'no'];
- }
-
- get columns() {
- return [
- { name: this.intl.t('username'), valuePath: 'username' },
- { name: this.intl.t('role'), valuePath: 'role' },
- { name: this.intl.t('password'), valuePath: 'password' },
- {
- name: this.intl.t('action'),
- component:
- 'file-details/scan-actions/manual-scan/login-details/user-role-action' as const,
- textAlign: 'center',
- },
- ];
- }
-
- get allUserRoles() {
- return (
- this.args.manualscan?.userRoles.map((role, i) => {
- role.id = i + 1;
- return role;
- }) || []
- );
- }
-
- get hasUserRole() {
- return this.allUserRoles.length > 0;
- }
-
- @action
- handleDeleteUserRoleConfirmBoxOpen(role: UserRole) {
- this.showRemoveRoleConfirmBox = true;
- this.selectedUserRole = role;
- }
-
- @action
- handleDeleteUserRoleConfirmBoxClose() {
- this.showRemoveRoleConfirmBox = false;
- this.selectedUserRole = null;
- }
-
- @action
- handleDeleteUserRole() {
- this.args.manualscan?.set(
- 'userRoles',
- this.allUserRoles.filter((it) => it.id !== this.selectedUserRole?.id)
- );
-
- this.handleDeleteUserRoleConfirmBoxClose();
- }
-
- @action
- handleLoginStatusChange(status: string) {
- this.args.manualscan?.set('loginRequired', status === 'yes');
- }
-
- @action
- addUserRole() {
- const tRoleAdded = this.intl.t('tRoleAdded');
- const tPleaseEnterAllValues = this.intl.t('tPleaseEnterAllValues');
-
- for (const inputValue of [this.role, this.username, this.password]) {
- if (isEmpty(inputValue)) {
- return this.notify.error(tPleaseEnterAllValues);
- }
- }
-
- const userRoles = this.args.manualscan?.userRoles || [];
-
- const userRole = {
- id: userRoles.length + 1,
- role: this.role,
- username: this.username,
- password: this.password,
- };
-
- userRoles.addObject(userRole);
-
- this.args.manualscan?.set('userRoles', userRoles);
-
- this.notify.success(tRoleAdded);
-
- this.role = '';
- this.username = '';
- this.password = '';
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ManualScan::LoginDetails': typeof FileDetailsScanActionsOldManualScanLoginDetailsComponent;
- 'file-details/scan-actions-old/manual-scan/login-details': typeof FileDetailsScanActionsOldManualScanLoginDetailsComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/login-details/user-role-action/index.hbs b/app/components/file-details/scan-actions-old/manual-scan/login-details/user-role-action/index.hbs
deleted file mode 100644
index 5c4342ef8c..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/login-details/user-role-action/index.hbs
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/manual-scan/login-details/user-role-action/index.ts b/app/components/file-details/scan-actions-old/manual-scan/login-details/user-role-action/index.ts
deleted file mode 100644
index 948b5ac968..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/login-details/user-role-action/index.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import Component from '@glimmer/component';
-
-export interface FileDetailsScanActionsOldManualScanLoginDetailsUserRoleActionSignature {
- Args: {
- onDeleteClick: () => void;
- };
-}
-
-export default class FileDetailsScanActionsOldManualScanLoginDetailsUserRoleActionComponent extends Component {}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'file-details/scan-actions-old/manual-scan/login-details/user-role-action': typeof FileDetailsScanActionsOldManualScanLoginDetailsUserRoleActionComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.hbs b/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.hbs
deleted file mode 100644
index caa4029faf..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.hbs
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
- {{t 'modalCard.manual.vpnRequired'}}
-
-
-
-
-
- {{#if @manualscan.vpnRequired}}
-
-
- {{t 'modalCard.manual.enterVPNDetails'}}
-
-
-
-
-
-
-
-
-
-
-
- {{t 'modalCard.manual.enterCredentails'}}
-
-
-
-
-
-
-
-
- {{/if}}
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.scss b/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.scss
deleted file mode 100644
index d827b7e8fa..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.vpn-details-group {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 1.5em;
- box-sizing: border-box;
-
- .vpn-details-label {
- flex: 1;
- }
-
- .vpn-details-input-container {
- flex: 1;
- max-width: 200px;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.ts b/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.ts
deleted file mode 100644
index 12661fc307..0000000000
--- a/app/components/file-details/scan-actions-old/manual-scan/vpn-details/index.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { action } from '@ember/object';
-import Component from '@glimmer/component';
-import FileModel from 'irene/models/file';
-import ManualscanModel from 'irene/models/manualscan';
-
-export interface FileDetailsScanActionsOldManualScanVpnDetailsSignature {
- Args: {
- file: FileModel;
- manualscan: ManualscanModel | null;
- };
-}
-
-export default class FileDetailsScanActionsOldManualScanVpnDetailsComponent extends Component {
- get vpnStatuses() {
- return ['yes', 'no'];
- }
-
- @action
- handleVpnStatusChange(status: string) {
- this.args.manualscan?.set('vpnRequired', status === 'yes');
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::ManualScan::VpnDetails': typeof FileDetailsScanActionsOldManualScanVpnDetailsComponent;
- 'file-details/scan-actions-old/manual-scan/vpn-details': typeof FileDetailsScanActionsOldManualScanVpnDetailsComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions-old/static-scan/index.hbs b/app/components/file-details/scan-actions-old/static-scan/index.hbs
deleted file mode 100644
index abc2f09d05..0000000000
--- a/app/components/file-details/scan-actions-old/static-scan/index.hbs
+++ /dev/null
@@ -1,48 +0,0 @@
-
- {{#if @file.isStaticCompleted}}
-
-
- <:leftIcon>
-
-
-
- <:default>{{t 'completed'}}
-
-
-
-
-
-
- {{else}}
-
- {{t 'scanning'}}
- :
- {{@file.staticScanProgress}}%
-
- {{/if}}
-
- {{#if @file.isStaticCompleted}}
-
- {{/if}}
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions-old/static-scan/index.ts b/app/components/file-details/scan-actions-old/static-scan/index.ts
deleted file mode 100644
index b2573f59ef..0000000000
--- a/app/components/file-details/scan-actions-old/static-scan/index.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { action } from '@ember/object';
-import { inject as service } from '@ember/service';
-import Component from '@glimmer/component';
-import { tracked } from '@glimmer/tracking';
-import { task } from 'ember-concurrency';
-import IntlService from 'ember-intl/services/intl';
-
-import ENV from 'irene/config/environment';
-import FileModel from 'irene/models/file';
-
-export interface FileDetailsScanActionsOldStaticScanSignature {
- Args: {
- file: FileModel;
- };
-}
-
-export default class FileDetailsScanActionsOldStaticScanComponent extends Component {
- @service declare intl: IntlService;
- @service declare ajax: any;
- @service('notifications') declare notify: NotificationService;
-
- @tracked showRescanModal = false;
-
- get tRescanInitiated() {
- return this.intl.t('rescanInitiated');
- }
-
- @action
- handleRescanModalOpen() {
- this.showRescanModal = true;
- }
-
- handleRescanApp = task(async () => {
- try {
- const data = {
- file_id: this.args.file.id,
- };
-
- await this.ajax.post(ENV.endpoints['rescan'] ?? '', {
- data,
- });
-
- this.notify.info(this.tRescanInitiated);
-
- if (!this.isDestroyed) {
- this.showRescanModal = false;
- }
- } catch (error) {
- this.notify.error((error as AjaxError).payload.detail);
- }
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActionsOld::StaticScan': typeof FileDetailsScanActionsOldStaticScanComponent;
- 'file-details/scan-actions-old/static-scan': typeof FileDetailsScanActionsOldStaticScanComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/api-scan/captured-apis/index.hbs b/app/components/file-details/scan-actions/api-scan/captured-apis/index.hbs
deleted file mode 100644
index 5a3799ca72..0000000000
--- a/app/components/file-details/scan-actions/api-scan/captured-apis/index.hbs
+++ /dev/null
@@ -1,88 +0,0 @@
-
- {{#if this.fetchCapturedApis.isRunning}}
-
-
-
-
- {{t 'loading'}}...
-
-
-
- {{else if this.hasNoCapturedApi}}
-
-
-
-
-
- {{t 'capturedApiEmptyTitle'}}
-
-
-
- {{t 'capturedApiEmptyDesc' htmlSafe=true}}
-
-
-
- {{else}}
-
-
-
- {{t 'capturedApiTitle'}}
-
-
- {{#if this.totalCapturedApiCount}}
-
- {{t 'selected'}}
- ({{this.selectedCount}}/{{this.totalCapturedApiCount}})
-
- {{/if}}
-
-
-
- {{#each pgc.currentPageResults as |ca|}}
-
- {{/each}}
-
-
-
-
- {{/if}}
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions/api-scan/captured-apis/index.scss b/app/components/file-details/scan-actions/api-scan/captured-apis/index.scss
deleted file mode 100644
index 4b2ffae709..0000000000
--- a/app/components/file-details/scan-actions/api-scan/captured-apis/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.bordered-box {
- padding: 1.25em;
- border: 1px solid
- var(--file-details-scan-actions-api-scan-captured-apis-border-color);
- box-sizing: border-box;
-}
-
-.loading-container {
- padding: 1.5em;
- height: 150px;
- border-radius: var(
- --file-details-scan-actions-api-scan-captured-apis-border-radius
- );
- border: 1px solid
- var(--file-details-scan-actions-api-scan-captured-apis-border-color);
- box-sizing: border-box;
-}
diff --git a/app/components/file-details/scan-actions/api-scan/captured-apis/index.ts b/app/components/file-details/scan-actions/api-scan/captured-apis/index.ts
deleted file mode 100644
index e32d4086f6..0000000000
--- a/app/components/file-details/scan-actions/api-scan/captured-apis/index.ts
+++ /dev/null
@@ -1,139 +0,0 @@
-import Component from '@glimmer/component';
-import { inject as service } from '@ember/service';
-import { tracked } from '@glimmer/tracking';
-import { task } from 'ember-concurrency';
-import FileModel from 'irene/models/file';
-import IntlService from 'ember-intl/services/intl';
-import Store from '@ember-data/store';
-import CapturedApiModel from 'irene/models/capturedapi';
-import ENV from 'irene/config/environment';
-
-// eslint-disable-next-line ember/use-ember-data-rfc-395-imports
-import { DS } from 'ember-data';
-import { PaginationProviderActionsArgs } from 'irene/components/ak-pagination-provider';
-import { action } from '@ember/object';
-
-export interface FileDetailsScanActionsApiScanCapturedApisSignature {
- Args: {
- file: FileModel;
- };
-}
-
-type CapturedApiQueryResponse =
- DS.AdapterPopulatedRecordArray & {
- meta: { count: number };
- };
-
-export default class FileDetailsScanActionsApiScanCapturedApisComponent extends Component {
- @service declare intl: IntlService;
- @service declare ajax: any;
- @service declare store: Store;
- @service('notifications') declare notify: NotificationService;
-
- @tracked selectedCount = 0;
- @tracked capturedApiResponse: CapturedApiQueryResponse | null = null;
- @tracked limit = 5;
- @tracked offset = 0;
-
- constructor(
- owner: unknown,
- args: FileDetailsScanActionsApiScanCapturedApisSignature['Args']
- ) {
- super(owner, args);
-
- this.setSelectedCount.perform();
- this.fetchCapturedApis.perform(this.limit, this.offset);
- }
-
- get capturedApiList() {
- return this.capturedApiResponse?.toArray() || [];
- }
-
- get totalCapturedApiCount() {
- return this.capturedApiResponse?.meta?.count || 0;
- }
-
- get hasNoCapturedApi() {
- return this.totalCapturedApiCount === 0;
- }
-
- @action
- handlePrevNextAction({ limit, offset }: PaginationProviderActionsArgs) {
- this.limit = limit;
- this.offset = offset;
-
- this.fetchCapturedApis.perform(limit, offset);
- }
-
- @action
- handleItemPerPageChange({ limit }: PaginationProviderActionsArgs) {
- this.offset = 0;
-
- this.fetchCapturedApis.perform(limit, this.offset);
- }
-
- getSelectedApis = task(async () => {
- const url = [
- ENV.endpoints['files'],
- this.args.file.id,
- 'capturedapis',
- ].join('/');
-
- const data = { fileId: this.args.file.id, is_active: true };
-
- return await this.ajax.request(url, { namespace: ENV.namespace_v2, data });
- });
-
- setSelectedCount = task(async () => {
- try {
- const selectedApis = await this.getSelectedApis.perform();
-
- this.selectedCount = selectedApis.count;
- } catch (error) {
- const err = error as AdapterError;
- this.notify.error(err.toString());
- }
- });
-
- toggleApi = task(async (capturedApi: CapturedApiModel) => {
- try {
- capturedApi.set('isActive', !capturedApi.isActive);
-
- await capturedApi.save();
-
- this.notify.success(this.intl.t('capturedApiSaveSuccessMsg'));
-
- this.setSelectedCount.perform();
- } catch (err) {
- const error = err as AdapterError;
- let errMsg = this.intl.t('tPleaseTryAgain');
-
- if (error.errors && error.errors.length) {
- errMsg = error.errors[0]?.detail || errMsg;
- } else if (error.message) {
- errMsg = error.message;
- }
-
- this.notify.error(errMsg);
- }
- });
-
- fetchCapturedApis = task(async (limit: number, offset: number) => {
- try {
- this.capturedApiResponse = (await this.store.query('capturedapi', {
- limit,
- offset,
- fileId: this.args.file.id,
- })) as CapturedApiQueryResponse;
- } catch (error) {
- const err = error as AdapterError;
- this.notify.error(err.toString());
- }
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActions::ApiScan::CapturedApis': typeof FileDetailsScanActionsApiScanCapturedApisComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.hbs b/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.hbs
deleted file mode 100644
index 7b5e5ee028..0000000000
--- a/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.hbs
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
-
-
-
- {{request-to-url @capturedApi.request}}
-
- {{#if this.handleToggleApi.isRunning}}
-
- {{/if}}
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.scss b/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.scss
deleted file mode 100644
index ec7b5e5d52..0000000000
--- a/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.api-endpoint-container {
- margin-top: 0.4em;
-
- .api-endpoint {
- word-break: break-all;
- white-space: normal;
- }
-}
diff --git a/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.ts b/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.ts
deleted file mode 100644
index 722bc0c60a..0000000000
--- a/app/components/file-details/scan-actions/api-scan/captured-apis/overview/index.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import Component from '@glimmer/component';
-import { task } from 'ember-concurrency';
-import CapturedApiModel from 'irene/models/capturedapi';
-
-export interface FileDetailsScanActionsApiScanCapturedApiOverviewSignature {
- Args: {
- capturedApi: CapturedApiModel;
- toggleApi: () => Promise;
- };
-}
-
-export default class FileDetailsScanActionsApiScanCapturedApiOverviewComponent extends Component {
- handleToggleApi = task(async () => {
- await this.args.toggleApi();
- });
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActions::ApiScan::CapturedApis::Overview': typeof FileDetailsScanActionsApiScanCapturedApiOverviewComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/api-scan/index.hbs b/app/components/file-details/scan-actions/api-scan/index.hbs
index 4e42e0b729..36c543e8be 100644
--- a/app/components/file-details/scan-actions/api-scan/index.hbs
+++ b/app/components/file-details/scan-actions/api-scan/index.hbs
@@ -48,8 +48,11 @@
@color='primary'
@underline='always'
@fontWeight='bold'
+ @route='authenticated.dashboard.file.api-scan'
+ @model={{@file.id}}
class='px-2 py-1'
local-class='view-details-icon'
+ data-test-fileDetailScanActions-apiScanViewDetails
>
<:default>
{{t 'viewDetails'}}
diff --git a/app/components/file-details/scan-actions/dynamic-scan/index.hbs b/app/components/file-details/scan-actions/dynamic-scan/index.hbs
index fe395a8e68..c1cdf82243 100644
--- a/app/components/file-details/scan-actions/dynamic-scan/index.hbs
+++ b/app/components/file-details/scan-actions/dynamic-scan/index.hbs
@@ -8,14 +8,58 @@
{{t 'dast'}}
-
+ {{#if @file.isDynamicStatusError}}
+
+ <:icon>
+
+
+
+
+ {{else if @file.isDynamicStatusInProgress}}
+
+ <:icon>
+
+
+
+
+ {{else if @file.isDynamicDone}}
+
+
+ {{else}}
+
+ {{/if}}
@@ -24,8 +68,11 @@
@color='primary'
@underline='always'
@fontWeight='bold'
+ @route='authenticated.dashboard.file.dynamic-scan.manual'
+ @model={{@file.id}}
class='px-2 py-1'
local-class='view-details-icon'
+ data-test-fileDetailScanActions-dynamicScanViewDetails
>
<:default>
{{t 'viewDetails'}}
diff --git a/app/components/file-details/scan-actions/dynamic-scan/index.ts b/app/components/file-details/scan-actions/dynamic-scan/index.ts
index c7643ad7f5..84de429415 100644
--- a/app/components/file-details/scan-actions/dynamic-scan/index.ts
+++ b/app/components/file-details/scan-actions/dynamic-scan/index.ts
@@ -1,8 +1,9 @@
import Component from '@glimmer/component';
import { inject as service } from '@ember/service';
-import IntlService from 'ember-intl/services/intl';
+import type IntlService from 'ember-intl/services/intl';
-import FileModel from 'irene/models/file';
+import ENUMS from 'irene/enums';
+import type FileModel from 'irene/models/file';
export interface FileDetailsScanActionsDynamicScanSignature {
Args: {
@@ -16,12 +17,36 @@ export default class FileDetailsScanActionsDynamicScanComponent extends Componen
get chipStatusText() {
if (this.args.file.isDynamicStatusNeitherNoneNorReadyNorError) {
return this.args.file.statusText;
+ } else if (this.args.file.isDynamicStatusInProgress) {
+ return this.intl.t('inProgress');
} else if (this.args.file.isDynamicDone) {
return this.intl.t('completed');
} else {
return this.intl.t('notStarted');
}
}
+
+ getColor(status: string | number | undefined, isDark: boolean) {
+ if (this.args.file?.isDynamicStatusInProgress) {
+ return isDark ? 'warn-dark' : 'warn';
+ } else if (status === ENUMS.DYNAMIC_STATUS.COMPLETED) {
+ return 'success';
+ } else if (status === ENUMS.DYNAMIC_STATUS.NONE) {
+ return 'secondary';
+ } else if (status === ENUMS.DYNAMIC_STATUS.RUNNING) {
+ return isDark ? 'info-dark' : 'info';
+ } else {
+ return isDark ? 'warn-dark' : 'warn';
+ }
+ }
+
+ get chipColor() {
+ return this.getColor(this.args.file.dynamicStatus, false);
+ }
+
+ get loaderColor() {
+ return this.getColor(this.args.file.dynamicStatus, true);
+ }
}
declare module '@glint/environment-ember-loose/registry' {
diff --git a/app/components/file-details/scan-actions/index.scss b/app/components/file-details/scan-actions/index.scss
index dfebcf006a..ac6a79f3bd 100644
--- a/app/components/file-details/scan-actions/index.scss
+++ b/app/components/file-details/scan-actions/index.scss
@@ -1,5 +1,7 @@
.scan-status-card {
border: 1px solid var(--file-details-scan-actions-border-color);
background-color: var(--file-details-scan-actions-background-color);
- width: 240px;
+ min-width: 240px;
+ max-width: 360px;
+ flex: 1;
}
diff --git a/app/components/file-details/scan-actions/manual-scan/basic-info/index.hbs b/app/components/file-details/scan-actions/manual-scan/basic-info/index.hbs
deleted file mode 100644
index 5fca30eb5b..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/basic-info/index.hbs
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
- {{t 'modalCard.manual.appEnv'}}
-
-
-
-
- {{t (app-environment aks.value)}}
-
-
-
-
-
-
- {{t 'minOSVersion'}}
-
-
-
-
-
-
-
- {{t 'modalCard.manual.appQuestion1'}}
-
-
-
-
- {{t (app-action aks.value)}}
-
-
-
-
-
-
- {{t 'modalCard.manual.poc'}}
-
-
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions/manual-scan/basic-info/index.scss b/app/components/file-details/scan-actions/manual-scan/basic-info/index.scss
deleted file mode 100644
index 1bada3b3a6..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/basic-info/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.basic-info-group {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 1.5em;
- box-sizing: border-box;
-
- .basic-info-label {
- flex: 1;
- }
-
- .basic-info-input-container {
- flex: 1;
- max-width: 200px;
- }
-}
diff --git a/app/components/file-details/scan-actions/manual-scan/basic-info/index.ts b/app/components/file-details/scan-actions/manual-scan/basic-info/index.ts
deleted file mode 100644
index 4aded05093..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/basic-info/index.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import Component from '@glimmer/component';
-import FileModel from 'irene/models/file';
-import ENUMS from 'irene/enums';
-import ManualscanModel from 'irene/models/manualscan';
-import { action } from '@ember/object';
-
-export interface FileDetailsScanActionsManualScanBasicInfoSignature {
- Args: {
- file: FileModel;
- manualscan: ManualscanModel | null;
- };
-}
-
-export default class FileDetailsScanActionsManualScanBasicInfoComponent extends Component {
- get environments() {
- return ENUMS.APP_ENV.CHOICES.slice(0, -1);
- }
-
- get selectedAppEnvironment() {
- return this.environments.find(
- (it) => it.value === this.args.manualscan?.filteredAppEnv
- );
- }
-
- get appActions() {
- return ENUMS.APP_ACTION.CHOICES.slice(0, -1);
- }
-
- get selectedAppAction() {
- return this.appActions.find(
- (it) => it.value === this.args.manualscan?.filteredAppAction
- );
- }
-
- @action
- selectAppEnvironment({ value }: { value: string }) {
- this.args.manualscan?.set('appEnv', value);
- }
-
- @action
- handleAppActionChange({ value }: { value: string }) {
- const appAction = parseInt(value);
-
- this.args.manualscan?.set('appAction', appAction);
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActions::ManualScan::BasicInfo': typeof FileDetailsScanActionsManualScanBasicInfoComponent;
- 'file-details/scan-actions/manual-scan/basic-info': typeof FileDetailsScanActionsManualScanBasicInfoComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/manual-scan/index.hbs b/app/components/file-details/scan-actions/manual-scan/index.hbs
index bf94a78a97..f60e22d036 100644
--- a/app/components/file-details/scan-actions/manual-scan/index.hbs
+++ b/app/components/file-details/scan-actions/manual-scan/index.hbs
@@ -34,8 +34,11 @@
@color='primary'
@underline='always'
@fontWeight='bold'
+ @route='authenticated.dashboard.file.manual-scan'
+ @model={{@file.id}}
class='px-2 py-1'
local-class='view-details-icon'
+ data-test-fileDetailScanActions-manualScanViewDetails
>
<:default>
{{t 'viewDetails'}}
diff --git a/app/components/file-details/scan-actions/manual-scan/login-details/index.hbs b/app/components/file-details/scan-actions/manual-scan/login-details/index.hbs
deleted file mode 100644
index 8d0ee1b9f0..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/login-details/index.hbs
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
- {{t 'modalCard.manual.loginRequired'}}
-
-
-
-
-
- {{#if @manualscan.loginRequired}}
-
-
- {{t 'modalCard.manual.enterLoginDetails' htmlSafe=true}}
-
-
-
-
-
-
-
-
-
-
-
- <:leftIcon>
-
-
-
- <:default>{{t 'modalCard.manual.addUserRole'}}
-
-
- {{#if this.hasUserRole}}
-
-
-
-
-
-
- {{#if r.columnValue.component}}
- {{#let (component r.columnValue.component) as |Component|}}
-
- {{/let}}
- {{else}}
-
- {{value}}
-
- {{/if}}
-
-
-
-
-
- {{/if}}
-
- {{/if}}
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions/manual-scan/login-details/index.scss b/app/components/file-details/scan-actions/manual-scan/login-details/index.scss
deleted file mode 100644
index 48adac1d89..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/login-details/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.login-details-group {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 1.5em;
- box-sizing: border-box;
-
- .login-details-label {
- flex: 1;
- }
-
- .login-details-input-container {
- flex: 1;
- max-width: 200px;
- }
-}
diff --git a/app/components/file-details/scan-actions/manual-scan/login-details/index.ts b/app/components/file-details/scan-actions/manual-scan/login-details/index.ts
deleted file mode 100644
index 6a2b6029cc..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/login-details/index.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { action } from '@ember/object';
-import { inject as service } from '@ember/service';
-import { isEmpty } from '@ember/utils';
-import Component from '@glimmer/component';
-import { tracked } from '@glimmer/tracking';
-import IntlService from 'ember-intl/services/intl';
-import FileModel from 'irene/models/file';
-import ManualscanModel, { UserRole } from 'irene/models/manualscan';
-
-export interface FileDetailsScanActionsManualScanLoginDetailsSignature {
- Args: {
- file: FileModel;
- manualscan: ManualscanModel | null;
- };
-}
-
-export default class FileDetailsScanActionsManualScanLoginDetailsComponent extends Component {
- @service declare intl: IntlService;
- @service('notifications') declare notify: NotificationService;
-
- @tracked role = '';
- @tracked username = '';
- @tracked password = '';
- @tracked showRemoveRoleConfirmBox = false;
- @tracked selectedUserRole: UserRole | null = null;
-
- get loginStatuses() {
- return ['yes', 'no'];
- }
-
- get columns() {
- return [
- { name: this.intl.t('username'), valuePath: 'username' },
- { name: this.intl.t('role'), valuePath: 'role' },
- { name: this.intl.t('password'), valuePath: 'password' },
- {
- name: this.intl.t('action'),
- component:
- 'file-details/scan-actions/manual-scan/login-details/user-role-action' as const,
- textAlign: 'center',
- },
- ];
- }
-
- get allUserRoles() {
- return (
- this.args.manualscan?.userRoles.map((role, i) => {
- role.id = i + 1;
- return role;
- }) || []
- );
- }
-
- get hasUserRole() {
- return this.allUserRoles.length > 0;
- }
-
- @action
- handleDeleteUserRoleConfirmBoxOpen(role: UserRole) {
- this.showRemoveRoleConfirmBox = true;
- this.selectedUserRole = role;
- }
-
- @action
- handleDeleteUserRoleConfirmBoxClose() {
- this.showRemoveRoleConfirmBox = false;
- this.selectedUserRole = null;
- }
-
- @action
- handleDeleteUserRole() {
- this.args.manualscan?.set(
- 'userRoles',
- this.allUserRoles.filter((it) => it.id !== this.selectedUserRole?.id)
- );
-
- this.handleDeleteUserRoleConfirmBoxClose();
- }
-
- @action
- handleLoginStatusChange(status: string) {
- this.args.manualscan?.set('loginRequired', status === 'yes');
- }
-
- @action
- addUserRole() {
- const tRoleAdded = this.intl.t('tRoleAdded');
- const tPleaseEnterAllValues = this.intl.t('tPleaseEnterAllValues');
-
- for (const inputValue of [this.role, this.username, this.password]) {
- if (isEmpty(inputValue)) {
- return this.notify.error(tPleaseEnterAllValues);
- }
- }
-
- const userRoles = this.args.manualscan?.userRoles || [];
-
- const userRole = {
- id: userRoles.length + 1,
- role: this.role,
- username: this.username,
- password: this.password,
- };
-
- userRoles.addObject(userRole);
-
- this.args.manualscan?.set('userRoles', userRoles);
-
- this.notify.success(tRoleAdded);
-
- this.role = '';
- this.username = '';
- this.password = '';
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActions::ManualScan::LoginDetails': typeof FileDetailsScanActionsManualScanLoginDetailsComponent;
- 'file-details/scan-actions/manual-scan/login-details': typeof FileDetailsScanActionsManualScanLoginDetailsComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/manual-scan/login-details/user-role-action/index.hbs b/app/components/file-details/scan-actions/manual-scan/login-details/user-role-action/index.hbs
deleted file mode 100644
index 5c4342ef8c..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/login-details/user-role-action/index.hbs
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions/manual-scan/login-details/user-role-action/index.ts b/app/components/file-details/scan-actions/manual-scan/login-details/user-role-action/index.ts
deleted file mode 100644
index dee33fd74b..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/login-details/user-role-action/index.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import Component from '@glimmer/component';
-
-export interface FileDetailsScanActionsManualScanLoginDetailsUserRoleActionSignature {
- Args: {
- onDeleteClick: () => void;
- };
-}
-
-export default class FileDetailsScanActionsManualScanLoginDetailsUserRoleActionComponent extends Component {}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'file-details/scan-actions/manual-scan/login-details/user-role-action': typeof FileDetailsScanActionsManualScanLoginDetailsUserRoleActionComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/manual-scan/vpn-details/index.hbs b/app/components/file-details/scan-actions/manual-scan/vpn-details/index.hbs
deleted file mode 100644
index caa4029faf..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/vpn-details/index.hbs
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
- {{t 'modalCard.manual.vpnRequired'}}
-
-
-
-
-
- {{#if @manualscan.vpnRequired}}
-
-
- {{t 'modalCard.manual.enterVPNDetails'}}
-
-
-
-
-
-
-
-
-
-
-
- {{t 'modalCard.manual.enterCredentails'}}
-
-
-
-
-
-
-
-
- {{/if}}
-
\ No newline at end of file
diff --git a/app/components/file-details/scan-actions/manual-scan/vpn-details/index.scss b/app/components/file-details/scan-actions/manual-scan/vpn-details/index.scss
deleted file mode 100644
index d827b7e8fa..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/vpn-details/index.scss
+++ /dev/null
@@ -1,17 +0,0 @@
-.vpn-details-group {
- width: 100%;
- display: flex;
- align-items: center;
- justify-content: space-between;
- gap: 1.5em;
- box-sizing: border-box;
-
- .vpn-details-label {
- flex: 1;
- }
-
- .vpn-details-input-container {
- flex: 1;
- max-width: 200px;
- }
-}
diff --git a/app/components/file-details/scan-actions/manual-scan/vpn-details/index.ts b/app/components/file-details/scan-actions/manual-scan/vpn-details/index.ts
deleted file mode 100644
index f26369c4e8..0000000000
--- a/app/components/file-details/scan-actions/manual-scan/vpn-details/index.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import { action } from '@ember/object';
-import Component from '@glimmer/component';
-import FileModel from 'irene/models/file';
-import ManualscanModel from 'irene/models/manualscan';
-
-export interface FileDetailsScanActionsManualScanVpnDetailsSignature {
- Args: {
- file: FileModel;
- manualscan: ManualscanModel | null;
- };
-}
-
-export default class FileDetailsScanActionsManualScanVpnDetailsComponent extends Component {
- get vpnStatuses() {
- return ['yes', 'no'];
- }
-
- @action
- handleVpnStatusChange(status: string) {
- this.args.manualscan?.set('vpnRequired', status === 'yes');
- }
-}
-
-declare module '@glint/environment-ember-loose/registry' {
- export default interface Registry {
- 'FileDetails::ScanActions::ManualScan::VpnDetails': typeof FileDetailsScanActionsManualScanVpnDetailsComponent;
- 'file-details/scan-actions/manual-scan/vpn-details': typeof FileDetailsScanActionsManualScanVpnDetailsComponent;
- }
-}
diff --git a/app/components/file-details/scan-actions/static-scan/index.hbs b/app/components/file-details/scan-actions/static-scan/index.hbs
index cd76823d37..6cd7695826 100644
--- a/app/components/file-details/scan-actions/static-scan/index.hbs
+++ b/app/components/file-details/scan-actions/static-scan/index.hbs
@@ -40,8 +40,11 @@
@color='primary'
@underline='always'
@fontWeight='bold'
+ @route='authenticated.dashboard.file.static-scan'
+ @model={{@file.id}}
class='px-2 py-1'
local-class='view-details-icon'
+ data-test-fileDetailScanActions-staticScanViewDetails
>
<:default>
{{t 'viewDetails'}}
diff --git a/app/components/file-details/severity-level/index.hbs b/app/components/file-details/severity-level/index.hbs
index 68b04bf99c..59c6ced919 100644
--- a/app/components/file-details/severity-level/index.hbs
+++ b/app/components/file-details/severity-level/index.hbs
@@ -5,13 +5,7 @@
-