Settings app update

This commit is contained in:
vakrilov
2015-03-05 17:37:09 +02:00
parent aa1801769c
commit 9056482ddb
6 changed files with 83 additions and 15 deletions

View File

@ -494,6 +494,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="apps\gallery-app\layouts\dock-layout.xml" />
<Content Include="apps\template-settings\app.css" />
<Content Include="apps\tests\app\binding_tests.xml" />
<Content Include="apps\ui-tests-app\pages\i86.xml" />
<Content Include="apps\template-blank\app.css" />
@ -691,9 +692,6 @@
<Content Include="apps\gallery-app\views\text-field.xml" />
<Content Include="apps\gallery-app\views\label.xml" />
<Content Include="apps\gallery-app\views\button.xml" />
<Content Include="apps\template-settings\main-page.css">
<DependentUpon>main-page.xml</DependentUpon>
</Content>
<Content Include="apps\template-settings\main-page.xml">
<SubType>Designer</SubType>
</Content>
@ -1460,7 +1458,7 @@
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
<UserProperties ui_2layouts_2wrap-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2grid-layout_2package_1json__JSONSchema="" ui_2layouts_2dock-layout_2package_1json__JSONSchema="" ui_2layouts_2absolute-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2linear-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2web-view_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2content-view_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2gallery-app_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2absolute-layout-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2editable-text-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2scroll-view_2package_1json__JSONSchema="http://json.schemastore.org/package" />
<UserProperties ui_2scroll-view_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2editable-text-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2absolute-layout-demo_2package_1json__JSONSchema="http://json.schemastore.org/package" apps_2gallery-app_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2content-view_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2web-view_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2linear-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2absolute-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" ui_2layouts_2dock-layout_2package_1json__JSONSchema="" ui_2layouts_2grid-layout_2package_1json__JSONSchema="" ui_2layouts_2wrap-layout_2package_1json__JSONSchema="http://json.schemastore.org/package" />
</VisualStudio>
</ProjectExtensions>
</Project>

View File

@ -1,3 +1,7 @@
import application = require("application");
// Remove this in the AppBuilder templates
application.cssFile = "app/template-settings/app.css"
application.mainModule = "app/main-page";
application.start();

View File

@ -1,6 +1,5 @@
import observable = require("data/observable");
import pages = require("ui/page");
import dialogs = require("ui/dialogs");
import vmModule = require("./view-model");
var viewModel = vmModule.settingsViewModel;
@ -9,12 +8,4 @@ export function pageLoaded(args: observable.EventData) {
// The page has loaded.
var page = <pages.Page>args.object;
page.bindingContext = viewModel;
}
export function promptName(args: observable.EventData) {
dialogs.prompt("Enter your name:", viewModel.name).then((promptResult) => {
if (promptResult.result) {
viewModel.set("name", promptResult.text);
}
});
}
}

View File

@ -6,7 +6,7 @@
<!-- Name -->
<Label cssClass="field" text="Name"/>
<Button cssClass="field-dialog-button" text="{{ name }}" tap="promptName" col="1" colSpan="2"/>
<Button cssClass="field-dialog-button" text="{{ name }}" tap="{{ promptName }}" col="1" colSpan="2"/>
<!-- Height -->
<Label cssClass="field" text="Height" row="1"/>

View File

@ -1,5 +1,6 @@
import observable = require("data/observable");
import localSettings = require("local-settings");
import dialogs = require("ui/dialogs");
var NAME = "settings-name";
var HEIGHT = "settings-height";
@ -50,6 +51,80 @@ export class SettingsViewModel extends observable.Observable {
set soundVolume(value: number) {
localSettings.setNumber(SOUND_VOLUME, value);
}
public promptName(args: observable.EventData) {
dialogs.prompt("Enter your name:", this.name).then((promptResult) => {
if (promptResult.result) {
this.set("name", promptResult.text);
}
});
}
}
export var settingsViewModel = new SettingsViewModel();
// Pure JavaScript code:
//var observable = require("data/observable");
//var localSettings = require("local-settings");
//var NAME = "settings-name";
//var HEIGHT = "settings-height";
//var WEIGHT = "settings-weight";
//var VIBRATE = "settings-vibrate";
//var SOUND = "settings-sound";
//var SOUND_VOLUME = "settings-sound-value";
//var settings = new observable.Observable();
//Object.defineProperty(settings, "name", {
// get: function () { return localSettings.getString(NAME, "John Doe"); },
// set: function (value) { localSettings.setString(NAME, value); },
// enumerable: true,
// configurable: true
//});
//Object.defineProperty(settings, "height", {
// get: function () { return localSettings.getString(HEIGHT, "180"); },
// set: function (value) { localSettings.setString(HEIGHT, value); },
// enumerable: true,
// configurable: true
//});
//Object.defineProperty(settings, "weight", {
// get: function () { return localSettings.getString(WEIGHT, "80"); },
// set: function (value) { localSettings.setString(WEIGHT, value); },
// enumerable: true,
// configurable: true
//});
//Object.defineProperty(settings, "vibrateEnabled", {
// get: function () { return localSettings.getBoolean(VIBRATE, true); },
// set: function (value) { localSettings.setBoolean(VIBRATE, value); },
// enumerable: true,
// configurable: true
//});
//Object.defineProperty(settings, "soundEnabled", {
// get: function () { return localSettings.getBoolean(SOUND, true); },
// set: function (value) { localSettings.setBoolean(SOUND, value); },
// enumerable: true,
// configurable: true
//});
//Object.defineProperty(settings, "soundVolume", {
// get: function () { return localSettings.getNumber(SOUND_VOLUME, 100); },
// set: function (value) { localSettings.setNumber(SOUND_VOLUME, value); },
// enumerable: true,
// configurable: true
//});
//settings.promptName = function (args) {
// dialogs.prompt("Enter your name:", settings.name).then(function (promptResult) {
// if (promptResult.result) {
// settings.set("name", promptResult.text);
// }
// });
//}
//exports.settingsViewModel = settings;