diff --git a/apps/TelerikNEXT/app-view-model.ts b/apps/TelerikNEXT/app-view-model.ts index 327abc963..f20cc5dc8 100644 --- a/apps/TelerikNEXT/app-view-model.ts +++ b/apps/TelerikNEXT/app-view-model.ts @@ -1,10 +1,14 @@ import observable = require("data/observable"); +import button = require("ui/button"); export class AppViewModel extends observable.Observable { + public selectedViewIndex: number; + constructor() { super(); this.selectedIndex = 0; + this.selectedViewIndex = 1; } private _sessions: Array; @@ -12,10 +16,6 @@ export class AppViewModel extends observable.Observable { return this._sessions; } - get favorites(): Array { - return this.sessions.filter(i=> { return i.favorite }); - } - get speakers(): Array { return speakers; } @@ -56,8 +56,28 @@ export class AppViewModel extends observable.Observable { && s.title.toLocaleLowerCase().indexOf(this.search.toLocaleLowerCase()) >= 0; }); + if (this.selectedViewIndex === 0) { + this._sessions = this._sessions.filter(i=> { return i.favorite }); + } + this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "sessions", value: this._sessions }); } + + public selectView(args: observable.EventData) { + var btn = args.object; + + if (btn.text === "My agenda") { + this.selectedViewIndex = 0; + this.filter(); + } else if (btn.text === "All sessions") { + this.selectedViewIndex = 1; + this.filter(); + } else if (btn.text === "About") { + this.selectedViewIndex = 2; + } + + this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "selectedViewIndex", value: this.selectedViewIndex }); + } } export class SessionModel extends observable.Observable implements Session { diff --git a/apps/TelerikNEXT/main-page.xml b/apps/TelerikNEXT/main-page.xml index 9f4d81f41..ffb3ef9b2 100644 --- a/apps/TelerikNEXT/main-page.xml +++ b/apps/TelerikNEXT/main-page.xml @@ -23,68 +23,76 @@ - + - - - - - - - - + - - + + + + + + + + - + + - - - + - + + + - + - + - + - - - + + + + + + + + + + +