mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
292 lines
7.4 KiB
TypeScript
292 lines
7.4 KiB
TypeScript
import * as dialogs from '@nativescript/core/ui/dialogs';
|
|
import * as observable from '@nativescript/core/data/observable';
|
|
|
|
var name = 'Harold Finch';
|
|
|
|
export class SettingsViewModel extends observable.Observable {
|
|
get name(): string {
|
|
return name;
|
|
}
|
|
|
|
set name(value: string) {
|
|
name = value;
|
|
}
|
|
|
|
public actionName(args: observable.EventData) {
|
|
dialogs
|
|
.action({
|
|
message: 'Change the name?',
|
|
cancelButtonText: 'Close',
|
|
actions: ['Yes', 'No'],
|
|
})
|
|
.then((actionResult) => {
|
|
console.log('### Result: ' + actionResult);
|
|
if (actionResult === 'Yes') {
|
|
this.set('name', 'John Reese');
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public alertName(args: observable.EventData) {
|
|
dialogs
|
|
.alert({
|
|
title: 'Name',
|
|
message: 'The name will change.',
|
|
okButtonText: 'OK',
|
|
})
|
|
.then((alertResult) => {
|
|
console.log('### Result: ' + alertResult);
|
|
this.set('name', 'John Reese');
|
|
});
|
|
}
|
|
|
|
public confirmName(args: observable.EventData) {
|
|
dialogs
|
|
.confirm({
|
|
title: 'Name',
|
|
message: 'Do you want to change the name?',
|
|
cancelButtonText: 'No',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'Yes',
|
|
})
|
|
.then((confirmResult) => {
|
|
console.log('### Result: ' + confirmResult);
|
|
if (confirmResult) {
|
|
this.set('name', 'John Reese');
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public loginName(args: observable.EventData) {
|
|
dialogs
|
|
.login({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
userName: 'John',
|
|
password: 'Reese',
|
|
})
|
|
.then((loginResult) => {
|
|
console.log('### Result: ' + loginResult.result + ', UserName: ' + loginResult.userName + ', Password: ' + loginResult.password);
|
|
if (loginResult.result) {
|
|
this.set('name', loginResult.userName + ' ' + loginResult.password);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptText(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
defaultText: 'John Reese',
|
|
inputType: dialogs.inputType.text,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptPass(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
defaultText: 'John Reese',
|
|
inputType: dialogs.inputType.password,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptEmail(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter email:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
defaultText: 'john.reese@nativescript.org',
|
|
inputType: dialogs.inputType.email,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptNumber(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter a number:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
defaultText: '1234',
|
|
inputType: dialogs.inputType.number,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', '1234');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptDecimal(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter a decimal number:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
defaultText: '13.50',
|
|
inputType: dialogs.inputType.decimal,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', '13.50');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptPhone(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter a phone:',
|
|
cancelButtonText: 'Cancel',
|
|
neutralButtonText: 'Ignore',
|
|
okButtonText: 'OK',
|
|
defaultText: '1234',
|
|
inputType: dialogs.inputType.phone,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', '1234');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptCapitalizationNone(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
okButtonText: 'OK',
|
|
inputType: dialogs.inputType.text,
|
|
capitalizationType: dialogs.capitalizationType.none,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptCapitalizationAll(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
okButtonText: 'OK',
|
|
inputType: dialogs.inputType.text,
|
|
capitalizationType: dialogs.capitalizationType.all,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptCapitalizationSentences(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
okButtonText: 'OK',
|
|
inputType: dialogs.inputType.text,
|
|
capitalizationType: dialogs.capitalizationType.sentences,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
|
|
public promptCapitalizationWords(args: observable.EventData) {
|
|
dialogs
|
|
.prompt({
|
|
title: 'Name',
|
|
message: 'Enter name:',
|
|
cancelButtonText: 'Cancel',
|
|
okButtonText: 'OK',
|
|
inputType: dialogs.inputType.text,
|
|
capitalizationType: dialogs.capitalizationType.words,
|
|
})
|
|
.then((promptResult) => {
|
|
console.log('### Result: ' + promptResult.result + ', Text: ' + promptResult.text);
|
|
if (promptResult.result) {
|
|
this.set('name', promptResult.text);
|
|
} else {
|
|
this.set('name', 'Harold Finch');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
export var settingsViewModel = new SettingsViewModel();
|