From 335b588c3a0c48212c122b4fe42f220e18b21800 Mon Sep 17 00:00:00 2001 From: Isaac Grynsztein Date: Wed, 15 Jul 2020 22:58:17 -0400 Subject: [PATCH] Added edit subscription dialog (WIP) --- src/app/app.module.ts | 4 +- .../edit-subscription-dialog.component.html | 60 +++++++++++++++++++ .../edit-subscription-dialog.component.scss | 0 ...edit-subscription-dialog.component.spec.ts | 25 ++++++++ .../edit-subscription-dialog.component.ts | 53 ++++++++++++++++ src/app/posts.services.ts | 4 ++ 6 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.html create mode 100644 src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.scss create mode 100644 src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.spec.ts create mode 100644 src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 0bacb30..ce451d3 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -73,6 +73,7 @@ import { CookiesUploaderDialogComponent } from './dialogs/cookies-uploader-dialo import { LogsViewerComponent } from './components/logs-viewer/logs-viewer.component'; import { ModifyPlaylistComponent } from './dialogs/modify-playlist/modify-playlist.component'; import { ConfirmDialogComponent } from './dialogs/confirm-dialog/confirm-dialog.component'; +import { EditSubscriptionDialogComponent } from './dialogs/edit-subscription-dialog/edit-subscription-dialog.component'; registerLocaleData(es, 'es'); @@ -113,7 +114,8 @@ export function isVisible({ event, element, scrollContainer, offset }: IsVisible CookiesUploaderDialogComponent, LogsViewerComponent, ModifyPlaylistComponent, - ConfirmDialogComponent + ConfirmDialogComponent, + EditSubscriptionDialogComponent ], imports: [ CommonModule, diff --git a/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.html b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.html new file mode 100644 index 0000000..8039805 --- /dev/null +++ b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.html @@ -0,0 +1,60 @@ +

Editing {{sub.name}}

+ + +
+
+
+ Download all uploads +
+
+ Download videos uploaded in the last + + + + + + {{time_unit + (timerange_amount === 1 ? '' : 's')}} + + +
+
+
+ Audio-only mode +
+
+
+
+ Streaming-only mode +
+
+
+ + + + + These are added after the standard args. + + +
+
+ + + + + Documentation. + Path is relative to the config download path. Don't include extension. + + +
+
+
+
+ + + + + +
+ +
+
\ No newline at end of file diff --git a/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.scss b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.spec.ts b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.spec.ts new file mode 100644 index 0000000..abb5a71 --- /dev/null +++ b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditSubscriptionDialogComponent } from './edit-subscription-dialog.component'; + +describe('EditSubscriptionDialogComponent', () => { + let component: EditSubscriptionDialogComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EditSubscriptionDialogComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditSubscriptionDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.ts b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.ts new file mode 100644 index 0000000..791c12f --- /dev/null +++ b/src/app/dialogs/edit-subscription-dialog/edit-subscription-dialog.component.ts @@ -0,0 +1,53 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { PostsService } from 'app/posts.services'; + +@Component({ + selector: 'app-edit-subscription-dialog', + templateUrl: './edit-subscription-dialog.component.html', + styleUrls: ['./edit-subscription-dialog.component.scss'] +}) +export class EditSubscriptionDialogComponent implements OnInit { + + sub = null; + new_sub = null; + + timerange_amount: string; + timerange_unit = 'days'; + + time_units = [ + 'day', + 'week', + 'month', + 'year' + ]; + + constructor(@Inject(MAT_DIALOG_DATA) public data: any, private postsService: PostsService) { + this.sub = this.data.sub; + this.new_sub = JSON.parse(JSON.stringify(this.sub)); + } + + ngOnInit(): void { + } + + saveSubscription() { + this.postsService.updateSubscription(this.sub).subscribe(res => { + this.sub = res['subscription']; + this.new_sub = JSON.parse(JSON.stringify(this.sub)); + }) + } + + getSubscription() { + this.postsService.getSubscription(this.sub.id).subscribe(res => { + this.sub = res['subscription']; + this.new_sub = JSON.parse(JSON.stringify(this.sub)); + }); + } + + timerangeChanged(value, select_changed) { + console.log(value); + console.log(this.timerange_amount); + console.log(this.timerange_unit); + } + +} diff --git a/src/app/posts.services.ts b/src/app/posts.services.ts index b334c1e..2994bad 100644 --- a/src/app/posts.services.ts +++ b/src/app/posts.services.ts @@ -285,6 +285,10 @@ export class PostsService implements CanActivate { audioOnly: audioOnly, customArgs: customArgs, customFileOutput: customFileOutput}, this.httpOptions); } + updateSubscription(subscription) { + return this.http.post(this.path + 'updateSubscription', {subscription: subscription}, this.httpOptions); + } + unsubscribe(sub, deleteMode = false) { return this.http.post(this.path + 'unsubscribe', {sub: sub, deleteMode: deleteMode}, this.httpOptions) }