Skip to content

Commit

Permalink
refactor(task.dialog): extract from manager
Browse files Browse the repository at this point in the history
  • Loading branch information
ElonH committed Jun 8, 2020
1 parent 1d21fce commit 0b05765
Show file tree
Hide file tree
Showing 5 changed files with 158 additions and 168 deletions.
36 changes: 13 additions & 23 deletions src/app/pages/manager/manager.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { ClipboardService } from './clipboard/clipboard.service';
import { MkdirDialogComponent } from './dialogs/mkdir.dialog';
import { FileModeComponent } from './fileMode/fileMode.component';
import { HomeModeComponent } from './homeMode/homeMode.component';
import { TasksDialogComponent } from './tasks/tasks.dialog';
import { TaskService } from './tasks/tasks.service';

@Component({
Expand Down Expand Up @@ -55,24 +56,11 @@ import { TaskService } from './tasks/tasks.service';
<nb-action
*ngIf="orderCnt !== 0"
style="padding-right: 1.5rem;padding-left: 0.5rem;"
(click)="dialog(tasksDialog)"
(click)="tasksDialog()"
>
<nb-icon icon="email-outline" style="font-size: 1.5rem"> </nb-icon>
<nb-badge [text]="orderCnt" status="info" position="top end"></nb-badge>
</nb-action>
<ng-template #tasksDialog>
<nb-card class="dialog-card">
<nb-card-header>
<nb-action>
<nb-icon icon="email-outline" class="clipboard-icon"></nb-icon>
</nb-action>
Tasks
</nb-card-header>
<nb-card-body>
<app-manager-tasks> </app-manager-tasks>
</nb-card-body>
</nb-card>
</ng-template>
</nb-actions>
</nb-layout-footer>
<!-- <nb-sidebar fixed right>
Expand Down Expand Up @@ -255,6 +243,17 @@ export class ManagerComponent implements OnInit {
this.orderCnt = x[0].order.size + x[0].failure.size;
});
}

tasksDialog() {
this.modal
.open(TasksDialogComponent, overlayConfigFactory({ isBlocking: false }, VEXModalContext))
.result.then(
confirm => {
if (confirm === true) this.pasteTrigger.next(['del']);
},
() => {}
);
}
ngOnInit(): void {
this.resp.getResponsiveSize.subscribe(data => {
this.isMobile = data === 'xs' || data === 'sm' || data === 'md';
Expand All @@ -265,13 +264,4 @@ export class ManagerComponent implements OnInit {
this.pasteDeploy();
this.tasksDeploy();
}

dialog(dialog: TemplateRef<any>) {
// new DialogPresetBuilder<DialogPreset>(this.modal)
// .className('default')
// .contentClassName('vex-content rng-card-dialog')
// .content(dialog)
// .open();
this.modal.open(dialog, overlayConfigFactory({ isBlocking: false }, VEXModalContext));
}
}
4 changes: 2 additions & 2 deletions src/app/pages/manager/manager.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { HomeModeComponent } from './homeMode/homeMode.component';
import { RemoteComponent } from './homeMode/remote.component';
import { ManagerRoutingModule } from './manager-routing.module';
import { ManagerComponent } from './manager.component';
import { TasksComponent } from './tasks/tasks.component';
import { TasksDialogComponent } from './tasks/tasks.dialog';

@NgModule({
declarations: [
Expand All @@ -39,7 +39,7 @@ import { TasksComponent } from './tasks/tasks.component';
ListViewComponent,
ClipboardDialogComponent,
ClipboardRemotesTableComponent,
TasksComponent,
TasksDialogComponent,
MkdirDialogComponent,
],
imports: [
Expand Down
27 changes: 0 additions & 27 deletions src/app/pages/manager/tasks/tasks.component.spec.ts

This file was deleted.

116 changes: 0 additions & 116 deletions src/app/pages/manager/tasks/tasks.component.ts

This file was deleted.

143 changes: 143 additions & 0 deletions src/app/pages/manager/tasks/tasks.dialog.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
import { Component, OnInit } from '@angular/core';
import { Columns, Config } from 'ngx-easy-table';
import { DialogRef, ModalComponent } from 'ngx-modialog-7';
// tslint:disable-next-line: no-submodule-imports
import { DialogPreset } from 'ngx-modialog-7/plugins/vex/ngx-modialog-7-plugins-vex';
import { ClipboardItem, IManipulate } from '../../../@dataflow/extra';
import { TaskService } from './tasks.service';

@Component({
selector: 'app-manager-tasks-dialog',
template: `
<nb-card class="dialog-card">
<nb-card-header>
<nb-action>
<nb-icon icon="email-outline" class="clipboard-icon"></nb-icon>
</nb-action>
Tasks
</nb-card-header>
<nb-card-body>
<nb-accordion multi>
<!-- <nb-accordion-item *ngIf="orderSize !== 0"> -->
<nb-accordion-item>
<nb-accordion-item-header>
Order
</nb-accordion-item-header>
<nb-accordion-item-body>
<ngx-table
#orderTable
[configuration]="conf"
[data]="orderData"
id="order"
[columns]="columns"
>
<ng-template let-row let-rowIdx="index">
<td><nb-icon [icon]="manipulate2Icon(row.oper)"></nb-icon></td>
<td>{{ row.srcRemote }}</td>
<td>{{ row.srcItem.Path }}</td>
<td>{{ row.dst.remote }}</td>
<td>{{ row.dst.path }}</td>
</ng-template>
</ngx-table>
</nb-accordion-item-body>
</nb-accordion-item>
<nb-accordion-item *ngIf="failSize !== 0">
<nb-accordion-item-header>
Failure
<button nbButton ghost status="warning" class="right" (click)="retryFailure()">
Retry
</button>
<button nbButton ghost status="danger" class="rightest" (click)="removeFailure()">
Remove
</button>
</nb-accordion-item-header>
<nb-accordion-item-body>
<ngx-table
#failTasksTable
[configuration]="conf"
[data]="failData"
id="fail"
[columns]="columns"
>
<ng-template let-row let-rowIdx="index">
<td><nb-icon [icon]="manipulate2Icon(row.oper)"></nb-icon></td>
<td>{{ row.srcRemote }}</td>
<td>{{ row.srcItem.Path }}</td>
<td>{{ row.dst.remote }}</td>
<td>{{ row.dst.path }}</td>
</ng-template>
</ngx-table>
</nb-accordion-item-body>
</nb-accordion-item>
</nb-accordion>
</nb-card-body>
</nb-card>
`,
styles: [
`
nb-card-footer,
nb-card-header {
display: flex;
}
.dialog-card {
margin: calc(-1em - 3px);
}
.clipboard-icon {
font-size: 1.5rem;
margin-right: 0.5rem;
}
.right {
margin-left: auto;
}
.rightest {
margin-right: auto;
}
`,
],
})
export class TasksDialogComponent implements OnInit, ModalComponent<DialogPreset> {
constructor(private service: TaskService, public dialog: DialogRef<DialogPreset>) {
this.context = dialog.context;
}
public context: DialogPreset;
public conf: Config;
public columns: Columns[] = [
{ key: 'oper', title: '', width: '3%' },
{ key: 'srcRemote', title: 'Source Remote', width: '10%' },
{ key: 'srcItem.Path', title: 'Source Path', width: '35%' },
{ key: 'dst.remote', title: 'Destination Remote', width: '10%' },
{ key: 'dst.path', title: 'Destination Path', width: '35%' },
];

orderSize = 0;
orderData: ClipboardItem[] = [];

failSize = 0;
failData: ClipboardItem[] = [];

ngOnInit() {
this.service.detail$.getOutput().subscribe(x => {
if (x[1].length !== 0) return;
const order = x[0].order;
const fail = x[0].failure;
this.orderSize = order.size;
this.failSize = fail.size;
this.orderData = order.values;
this.failData = fail.values;
});
}

public manipulate2Icon(o: IManipulate): string {
if (o === 'del') return 'trash-2';
return o;
}

retryFailure() {
this.service.retryFailureTasks();
}

removeFailure() {
this.service.removeFailureTasks();
}
}

0 comments on commit 0b05765

Please sign in to comment.