Skip to content

Commit 17ddc64

Browse files
committed
Add example to welcome.vm
1 parent d134c11 commit 17ddc64

File tree

4 files changed

+52
-2
lines changed

4 files changed

+52
-2
lines changed

src/app/modules/welcome/welcome.vm.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,8 @@ <h3>Validation</h3>
4242

4343
<h3>Dialog</h3>
4444
<button click.delegate="openDialog()" class="btn btn-primary">open dialog</button>
45+
46+
<h3>Generic Dialog</h3>
47+
<button click.delegate="openGenericDialog()" class="btn btn-primary">open generic dialog</button>
4548
</div>
4649
</template>

src/app/modules/welcome/welcome.vm.ts

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
import { autoinject } from 'aurelia-framework';
1+
import { autoinject, PLATFORM } from 'aurelia-framework';
22
import { ValidationControllerFactory, ValidationController, validateTrigger, ValidationRules } from 'aurelia-validation';
33
import { DialogService } from 'aurelia-dialog';
44

55
import { LogManager, Logger} from './../../services/logger.service';
66
import { AppConfigService } from './../../services/app-config.service';
77
import { LanguageService } from './../../services/language.service';
88
import { EditPersonCustomElement } from './../../resources/elements/edit-person/edit-person.element';
9+
import { GenericDialogService } from './../../services/generic-dialog.service';
10+
import { ShowPersonCustomElement } from '../../resources/elements/show-person/show-person.element';
911

1012
@autoinject
1113
export class WelcomeViewModel {
@@ -24,7 +26,8 @@ export class WelcomeViewModel {
2426
private appConfigService: AppConfigService,
2527
private languageService: LanguageService,
2628
private dialogService: DialogService,
27-
validationControllerFactory: ValidationControllerFactory
29+
validationControllerFactory: ValidationControllerFactory,
30+
private genericDialogService: GenericDialogService,
2831
) {
2932
this.logger = LogManager.getLogger('Welcome VM');
3033
this.logger.info('appConfig => name:', this.appConfigService.getName());
@@ -86,6 +89,31 @@ export class WelcomeViewModel {
8689
this.languageService.setLocale(this.languageService.getSupportedLanguages()[0]);
8790
}
8891
}
92+
93+
public openGenericDialog(): void {
94+
const dialog = this.genericDialogService.showDialog<ShowPersonCustomElement>({
95+
title: 'Zeige Person', // Can be a translation string
96+
contentViewModel: PLATFORM.moduleName('resources/elements/show-person/show-person.element'),
97+
contentModel: {
98+
firstName: this.firstName
99+
},
100+
buttons: [
101+
GenericDialogService.createCancelButton<ShowPersonCustomElement>(() => Promise.resolve()),
102+
GenericDialogService.createSaveButton<ShowPersonCustomElement>(ele => {
103+
this.logger.debug('Clicked on save in dialog', ele);
104+
return Promise.resolve();
105+
}, ele => ele.isValid)
106+
]
107+
});
108+
109+
dialog.whenClosed(result => {
110+
if (!result.wasCancelled) {
111+
this.logger.debug('Dialog not canceld', result);
112+
} else {
113+
this.logger.debug('Dialog canceld', result);
114+
}
115+
});
116+
}
89117
}
90118

91119
export class UpperValueConverter {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<template>
2+
<h1>${ firstName }</h1>
3+
</template>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { autoinject } from 'aurelia-framework';
2+
3+
@autoinject
4+
export class ShowPersonCustomElement {
5+
6+
public firstName = '';
7+
8+
public activate(args): void {
9+
this.firstName = args.firstName;
10+
}
11+
12+
public get isValid(): boolean {
13+
// We could check if a form is valid
14+
return true;
15+
}
16+
}

0 commit comments

Comments
 (0)