From bae3f19af223022c933fd622d3c8adf2bf6167db Mon Sep 17 00:00:00 2001 From: Baptiste Lemoine Date: Thu, 16 Jan 2020 14:37:11 +0100 Subject: [PATCH] :zap: calls in administration page to delete things --- src/app/app.module.ts | 8 +- src/app/pages/admin/admin.component.html | 315 ++++++++++-------- src/app/pages/admin/admin.component.ts | 2 +- src/app/pages/home/home.component.html | 1 + src/app/services/config.service.ts | 134 ++++++-- .../directives/resettable-input.directive.ts | 3 + .../erasable-input.component.html | 3 + .../erasable-input.component.scss | 0 .../erasable-input.component.spec.ts | 25 ++ .../erasable-input.component.ts | 31 ++ 10 files changed, 352 insertions(+), 170 deletions(-) create mode 100644 src/app/ui/erasable-input/erasable-input.component.html create mode 100644 src/app/ui/erasable-input/erasable-input.component.scss create mode 100644 src/app/ui/erasable-input/erasable-input.component.spec.ts create mode 100644 src/app/ui/erasable-input/erasable-input.component.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 73f0465b..d80bc976 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -44,12 +44,14 @@ import {BrowserAnimationsModule} from "@angular/platform-browser/animations"; import {ConfigService} from "./services/config.service"; import {PollService} from "./services/poll.service"; import {ToastModule} from 'primeng/toast'; -import {MessageModule, MessageService} from "primeng"; +import {ConfirmationService, MessageModule, MessageService} from "primeng"; import {PollDisplayComponent} from './pages/poll-display/poll-display.component'; import {VotingComponent} from './pages/voting/voting.component'; import {VotingCommentComponent} from './pages/voting/voting-comment/voting-comment.component'; import {ResettableInputDirective} from './ui/directives/resettable-input.directive'; import {ClipboardModule} from "ngx-clipboard"; +import {ErasableInputComponent} from './ui/erasable-input/erasable-input.component'; +import {ConfirmDialogModule} from 'primeng/confirmdialog'; export class MyMissingTranslationHandler implements MissingTranslationHandler { handle(params: MissingTranslationHandlerParams) { @@ -92,9 +94,11 @@ export function HttpLoaderFactory(http: HttpClient) { VotingComponent, VotingCommentComponent, ResettableInputDirective, + ErasableInputComponent, ], imports: [ + ConfirmDialogModule, ClipboardModule, CommonModule, BrowserModule, @@ -119,7 +123,7 @@ export function HttpLoaderFactory(http: HttpClient) { FormsModule, RouterModule.forRoot(Routes) ], - providers: [TranslateService, ConfigService, PollService, MessageService], + providers: [TranslateService, ConfigService, PollService, MessageService, ConfirmationService], bootstrap: [AppComponent] }) export class AppModule { diff --git a/src/app/pages/admin/admin.component.html b/src/app/pages/admin/admin.component.html index 781e4cf8..bc9b9168 100644 --- a/src/app/pages/admin/admin.component.html +++ b/src/app/pages/admin/admin.component.html @@ -1,164 +1,193 @@
-

Nom du sondage

+

Nom du sondage

- -

{{"admin.info_section_title"|translate}}

+ +

{{"admin.info_section_title"|translate}}

- - + + - - + + - - + + - -

{{"admin.settings_section_title"|translate}}

-

{{"visibility.title"|translate}}

+ +

{{"admin.settings_section_title"|translate}}

+

{{"visibility.title"|translate}}

-
- - - -
+
+ + + +
-

{{"visibility.votes"|translate}}

-
- - -
-
- - - - -
+

{{"visibility.votes"|translate}}

+
+ + +
+
+ + + + +
- - + + -

{{"admin.comments_deletion_title"|translate}}

- - +

{{"admin.comments_deletion_title"|translate}}

+ -

{{"admin.archiving_title"|translate}}

-
- - -
+ -

{{"admin.deletion"|translate}}

- - +

{{"admin.archiving_title"|translate}}

+
+ + +
- -

{{"admin.link"|translate}}

-

{{"admin.link_admin"|translate}}

+

{{"visibility.access"|translate}}

+
+ + + +
- - - +

{{"admin.deletion"|translate}}

+ + -

{{"admin.polled_people"|translate}}

- - - + +

{{"admin.link"|translate}}

+

{{"admin.link_admin"|translate}}

-

{{"admin.email_links"|translate}}

- - - + + + -
- {{"admin.deletion"|translate}} - {{"admin.deletion_desc"|translate}} - {{"admin.deletion_btn"|translate}} -
+

{{"admin.polled_people"|translate}}

+ + + - +
+

+ + {{"admin.deletion"|translate}} +

+ {{"admin.deletion_desc"|translate}} + + + + +
+ +
+ diff --git a/src/app/pages/admin/admin.component.ts b/src/app/pages/admin/admin.component.ts index 316fac84..cf0bc3fa 100644 --- a/src/app/pages/admin/admin.component.ts +++ b/src/app/pages/admin/admin.component.ts @@ -8,7 +8,7 @@ import {ConfigService} from '../../services/config.service'; }) export class AdminComponent implements OnInit { - constructor() { } + constructor(private config : ConfigService) { } ngOnInit() { } diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html index 8f66401c..9a0de354 100644 --- a/src/app/pages/home/home.component.html +++ b/src/app/pages/home/home.component.html @@ -86,6 +86,7 @@ required="required" type="email" /> + diff --git a/src/app/ui/erasable-input/erasable-input.component.scss b/src/app/ui/erasable-input/erasable-input.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/ui/erasable-input/erasable-input.component.spec.ts b/src/app/ui/erasable-input/erasable-input.component.spec.ts new file mode 100644 index 00000000..3a1b0626 --- /dev/null +++ b/src/app/ui/erasable-input/erasable-input.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ErasableInputComponent } from './erasable-input.component'; + +describe('ErasableInputComponent', () => { + let component: ErasableInputComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ErasableInputComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ErasableInputComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/ui/erasable-input/erasable-input.component.ts b/src/app/ui/erasable-input/erasable-input.component.ts new file mode 100644 index 00000000..8a07326c --- /dev/null +++ b/src/app/ui/erasable-input/erasable-input.component.ts @@ -0,0 +1,31 @@ +import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core'; + +@Component({ + selector: 'framadate-erasable-input', + templateUrl: './erasable-input.component.html', + styleUrls: ['./erasable-input.component.scss'] +}) +export class ErasableInputComponent implements OnInit { + + @Output() inputModelChange = new EventEmitter(); + + @Input() get inputModel() { + return this.inputModel; + } + + set inputModel(val) { + // this.inputModel = val; + } + + constructor() { + } + + ngOnInit() { + } + + eraseInput() { + this.inputModel = ''; + this.inputModelChange.emit(this.inputModel); + } + +}