mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #217 from NativeScript/feature/telerik-next-development
Feature/telerik next development
This commit is contained in:
@@ -77,6 +77,8 @@
|
||||
</TypeScriptCompile>
|
||||
<TypeScriptCompile Include="apps\TelerikNEXT\app-view-model.ts" />
|
||||
<TypeScriptCompile Include="apps\TelerikNEXT\app.ts" />
|
||||
<TypeScriptCompile Include="apps\TelerikNEXT\everlive-upload.ts" />
|
||||
<TypeScriptCompile Include="apps\TelerikNEXT\session-page.ts" />
|
||||
<TypeScriptCompile Include="apps\TelerikNEXT\main-page.ts" />
|
||||
<TypeScriptCompile Include="apps\template-blank\app.ts" />
|
||||
<TypeScriptCompile Include="apps\template-blank\main-page.ts">
|
||||
@@ -541,6 +543,8 @@
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="apps\gallery-app\layouts\dock-layout.xml" />
|
||||
<Content Include="apps\TelerikNEXT\lib\everlive.js" />
|
||||
<Content Include="apps\TelerikNEXT\session-page.xml" />
|
||||
<Content Include="apps\template-master-detail\details-view.xml" />
|
||||
<Content Include="apps\template-master-detail\main-page.minWH600.xml" />
|
||||
<Content Include="apps\TelerikNEXT\images\background.jpg" />
|
||||
@@ -664,7 +668,7 @@
|
||||
</TypeScriptCompile>
|
||||
<Content Include="apps\TelerikNEXT\images\addfav.png" />
|
||||
<Content Include="apps\TelerikNEXT\images\fav.png" />
|
||||
<Content Include="apps\TelerikNEXT\main-page.css" />
|
||||
<Content Include="apps\TelerikNEXT\app.css" />
|
||||
<Content Include="apps\TelerikNEXT\main-page.xml" />
|
||||
<Content Include="apps\template-blank\package.json" />
|
||||
<TypeScriptCompile Include="apps\tests\camera-tests.ts" />
|
||||
@@ -1508,7 +1512,7 @@
|
||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||
</WebProjectProperties>
|
||||
</FlavorProperties>
|
||||
<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" />
|
||||
<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" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
@@ -1,14 +1,103 @@
|
||||
import observable = require("data/observable");
|
||||
import dialogs = require("ui/dialogs");
|
||||
import localSettings = require("local-settings");
|
||||
import button = require("ui/button");
|
||||
var everlive = require("./lib/everlive");
|
||||
|
||||
interface ConferenceDay {
|
||||
date: Date;
|
||||
title: string;
|
||||
}
|
||||
|
||||
interface Speaker {
|
||||
//Id: string;
|
||||
name: string;
|
||||
title: string;
|
||||
company: string;
|
||||
picture: string;
|
||||
}
|
||||
|
||||
interface Session {
|
||||
Id: string;
|
||||
title: string;
|
||||
start: Date;
|
||||
end: Date;
|
||||
room: string;
|
||||
speakers: Array<Speaker>;
|
||||
}
|
||||
|
||||
var conferenceDays: Array<ConferenceDay> = [
|
||||
{ title: "WORKSHOPS", date: new Date(2015, 5, 3) },
|
||||
{ title: "CONFERENCE DAY 1", date: new Date(2015, 5, 4) },
|
||||
{ title: "CONFERENCE DAY 2", date: new Date(2015, 5, 5) }
|
||||
];
|
||||
var sessions: Array<SessionModel> = new Array<SessionModel>();
|
||||
|
||||
var FAVOURITES = "FAVOURITES";
|
||||
var favourites: Array<string>;
|
||||
try {
|
||||
favourites = <Array<string>>JSON.parse(localSettings.getString(FAVOURITES, "[]"));
|
||||
}
|
||||
catch (error) {
|
||||
console.log("Error while retrieveing favourites: " + error);
|
||||
favourites = new Array<string>();
|
||||
updateFavourites()
|
||||
}
|
||||
|
||||
function addToFavourites(session: SessionModel) {
|
||||
if (favourites.indexOf(session.Id) < 0) {
|
||||
favourites.push(session.Id);
|
||||
updateFavourites();
|
||||
}
|
||||
}
|
||||
|
||||
function removeFromFavourites(session: SessionModel) {
|
||||
var index = favourites.indexOf(session.Id);
|
||||
if (index >= 0) {
|
||||
favourites.splice(index, 1);
|
||||
updateFavourites();
|
||||
}
|
||||
}
|
||||
|
||||
function updateFavourites() {
|
||||
var newValue = JSON.stringify(favourites);
|
||||
localSettings.setString(FAVOURITES, newValue);
|
||||
}
|
||||
|
||||
var el = new everlive("mzacGkKPFlZUfbMq");
|
||||
var expandExp = {
|
||||
"speakers": true
|
||||
};
|
||||
el.data('NextSessions').expand(expandExp).get().then(
|
||||
function (data) {
|
||||
//console.log("Sessions are[" + data.result[1].Data + "]")
|
||||
var sessionsFromEvelive: Array<Session> = <Array<Session>> data.result;
|
||||
|
||||
for (var i = 0; i < sessionsFromEvelive.length; i++) {
|
||||
var newSession = new SessionModel(sessionsFromEvelive[i]);
|
||||
if (favourites.indexOf(newSession.Id) >= 0) {
|
||||
newSession.favorite = true;
|
||||
}
|
||||
sessions.push(newSession);
|
||||
}
|
||||
|
||||
appModel.onDataLoaded();
|
||||
|
||||
}, function (error) {
|
||||
dialogs.alert("Could not load sessions. Error: " + error);
|
||||
}
|
||||
);
|
||||
|
||||
export class AppViewModel extends observable.Observable {
|
||||
public selectedViewIndex: number;
|
||||
private _selectedIndex;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.selectedIndex = 0;
|
||||
this.selectedViewIndex = 1;
|
||||
this.set("isLoading", true);
|
||||
}
|
||||
|
||||
private _sessions: Array<SessionModel>;
|
||||
@@ -16,8 +105,8 @@ export class AppViewModel extends observable.Observable {
|
||||
return this._sessions;
|
||||
}
|
||||
|
||||
get speakers(): Array<Speakers> {
|
||||
return speakers;
|
||||
get favorites(): Array<SessionModel> {
|
||||
return this.sessions.filter(i=> { return i.favorite });
|
||||
}
|
||||
|
||||
private _search = "";
|
||||
@@ -33,7 +122,6 @@ export class AppViewModel extends observable.Observable {
|
||||
}
|
||||
}
|
||||
|
||||
private _selectedIndex;
|
||||
get selectedIndex(): number {
|
||||
return this._selectedIndex;
|
||||
}
|
||||
@@ -42,6 +130,8 @@ export class AppViewModel extends observable.Observable {
|
||||
this._selectedIndex = value;
|
||||
this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "selectedIndex", value: value });
|
||||
|
||||
this.set("dayHeader", conferenceDays[value].title);
|
||||
|
||||
if (this.search !== "") {
|
||||
this.search = "";
|
||||
} else {
|
||||
@@ -52,7 +142,7 @@ export class AppViewModel extends observable.Observable {
|
||||
|
||||
private filter() {
|
||||
this._sessions = sessions.filter(s=> {
|
||||
return s.start.getDay() === dates[this.selectedIndex].getDay()
|
||||
return s.start.getDate() === conferenceDays[this.selectedIndex].date.getDate()
|
||||
&& s.title.toLocaleLowerCase().indexOf(this.search.toLocaleLowerCase()) >= 0;
|
||||
});
|
||||
|
||||
@@ -63,6 +153,11 @@ export class AppViewModel extends observable.Observable {
|
||||
this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "sessions", value: this._sessions });
|
||||
}
|
||||
|
||||
public onDataLoaded() {
|
||||
this.set("isLoading", false);
|
||||
this.filter();
|
||||
}
|
||||
|
||||
public selectView(args: observable.EventData) {
|
||||
var btn = <button.Button>args.object;
|
||||
|
||||
@@ -80,24 +175,33 @@ export class AppViewModel extends observable.Observable {
|
||||
}
|
||||
}
|
||||
|
||||
export var appModel = new AppViewModel();
|
||||
|
||||
export class SessionModel extends observable.Observable implements Session {
|
||||
constructor(source?: Session) {
|
||||
super();
|
||||
|
||||
if (source) {
|
||||
this._id = source.Id;
|
||||
this._title = source.title;
|
||||
this._room = source.room;
|
||||
this._start = source.start;
|
||||
this._end = source.end;
|
||||
this._speakers = source.speakers;
|
||||
}
|
||||
}
|
||||
|
||||
private _id: string;
|
||||
private _speakers: Array<Speaker>;
|
||||
private _title: string;
|
||||
private _start: Date;
|
||||
private _end: Date;
|
||||
private _room: string;
|
||||
private _favorite: boolean;
|
||||
|
||||
get Id(): string {
|
||||
return this._id;
|
||||
}
|
||||
|
||||
get title(): string {
|
||||
return this._title;
|
||||
}
|
||||
@@ -114,12 +218,18 @@ export class SessionModel extends observable.Observable implements Session {
|
||||
return this._end;
|
||||
}
|
||||
|
||||
get speakers(): Array<Speaker> {
|
||||
return this._speakers;
|
||||
}
|
||||
|
||||
get range(): string {
|
||||
var startMinutes = this.start.getMinutes() + "";
|
||||
var endMinutes = this.end.getMinutes() + "";
|
||||
var startAM = this.start.getHours() < 12 ? "am" : "pm";
|
||||
var endAM = this.end.getHours() < 12 ? "am" : "pm";
|
||||
|
||||
return this.start.getHours() + ':' + (startMinutes.length === 1 ? '0' + startMinutes : startMinutes) +
|
||||
' - ' + this.end.getHours() + ':' + (endMinutes.length === 1 ? '0' + endMinutes : endMinutes);
|
||||
return this.start.getHours() + ':' + (startMinutes.length === 1 ? '0' + startMinutes : startMinutes) + startAM +
|
||||
' - ' + this.end.getHours() + ':' + (endMinutes.length === 1 ? '0' + endMinutes : endMinutes) + endAM;
|
||||
}
|
||||
|
||||
get canBeFavorited(): boolean {
|
||||
@@ -135,414 +245,14 @@ export class SessionModel extends observable.Observable implements Session {
|
||||
this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "favorite", value: this._favorite });
|
||||
}
|
||||
}
|
||||
|
||||
public toggleFavorite() {
|
||||
this.favorite = !this.favorite;
|
||||
if (this.favorite) {
|
||||
addToFavourites(this);
|
||||
}
|
||||
else {
|
||||
removeFromFavourites(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var sessions: Array<SessionModel> = [
|
||||
new SessionModel({
|
||||
title: "Registration",
|
||||
start: new Date(2015, 5, 3, 8, 30),
|
||||
end: new Date(2015, 5, 3, 9, 30),
|
||||
room: ""
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "NativeScript Deep Dive",
|
||||
start: new Date(2015, 5, 3, 9, 30),
|
||||
end: new Date(2015, 5, 3, 12, 30),
|
||||
room: "Workshop Room 1"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "Smart Design for Smartphones",
|
||||
start: new Date(2015, 5, 3, 9, 30),
|
||||
end: new Date(2015, 5, 3, 12, 30),
|
||||
room: "Workshop Room 2"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "Modern .NET Apps!",
|
||||
start: new Date(2015, 5, 3, 9, 30),
|
||||
end: new Date(2015, 5, 3, 12, 30),
|
||||
room: "Workshop Room 3"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "Telerik Sitefinity as a Data Integration Platform",
|
||||
start: new Date(2015, 5, 3, 9, 30),
|
||||
end: new Date(2015, 5, 3, 12, 30),
|
||||
room: "Workshop Room 4"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "Lunch",
|
||||
start: new Date(2015, 5, 3, 9, 30),
|
||||
end: new Date(2015, 5, 3, 12, 30),
|
||||
room: ""
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "NativeScript Deep Dive",
|
||||
start: new Date(2015, 5, 3, 1, 30),
|
||||
end: new Date(2015, 5, 3, 4, 30),
|
||||
room: "Workshop Room 1"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "Smart Design for Smartphones",
|
||||
start: new Date(2015, 5, 3, 1, 30),
|
||||
end: new Date(2015, 5, 3, 4, 30),
|
||||
room: "Workshop Room 2"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "Responsive Apps with Telerik DevCraft",
|
||||
start: new Date(2015, 5, 3, 1, 30),
|
||||
end: new Date(2015, 5, 3, 4, 30),
|
||||
room: "Workshop Room 3"
|
||||
}),
|
||||
new SessionModel({
|
||||
title: "ASP .NET MVC Development in Telerik Sitefinity",
|
||||
start: new Date(2015, 5, 3, 1, 30),
|
||||
end: new Date(2015, 5, 3, 4, 30),
|
||||
room: "Workshop Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Registration",
|
||||
start: new Date(2015, 5, 4, 7, 30),
|
||||
end: new Date(2015, 5, 4, 9, 0),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "Telerik Keynote",
|
||||
start: new Date(2015, 5, 4, 9, 0),
|
||||
end: new Date(2015, 5, 4, 10, 30),
|
||||
room: "General Session"
|
||||
}), new SessionModel({
|
||||
title: "A Lap Around NativeScript",
|
||||
start: new Date(2015, 5, 4, 10, 45),
|
||||
end: new Date(2015, 5, 4, 11, 30),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Kendo UI Building Blocks",
|
||||
start: new Date(2015, 5, 4, 10, 45),
|
||||
end: new Date(2015, 5, 4, 11, 30),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "CRUD with ASP.NET MVC, Web API, EF and Kendo UI",
|
||||
start: new Date(2015, 5, 4, 10, 45),
|
||||
end: new Date(2015, 5, 4, 11, 30),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Best Practices for Understanding and Implementing Website Project Requirements",
|
||||
start: new Date(2015, 5, 4, 10, 45),
|
||||
end: new Date(2015, 5, 4, 11, 30),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Getting Started with ScreenBuilder",
|
||||
start: new Date(2015, 5, 4, 11, 45),
|
||||
end: new Date(2015, 5, 4, 12, 30),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Getting Started with AngularJS",
|
||||
start: new Date(2015, 5, 4, 11, 45),
|
||||
end: new Date(2015, 5, 4, 12, 30),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Zero to Hipster with the M.I.K.E. Stack",
|
||||
start: new Date(2015, 5, 4, 11, 45),
|
||||
end: new Date(2015, 5, 4, 12, 30),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Content Meets Commerce, Email and Analytics to Build the New Data-Driven Marketing Machine",
|
||||
start: new Date(2015, 5, 4, 11, 45),
|
||||
end: new Date(2015, 5, 4, 12, 30),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Lunch",
|
||||
start: new Date(2015, 5, 4, 12, 30),
|
||||
end: new Date(2015, 5, 4, 1, 30),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "Hybrid vs Native vs Web: Which is Right for Me?",
|
||||
start: new Date(2015, 5, 4, 1, 30),
|
||||
end: new Date(2015, 5, 4, 2, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "AngularJS Directives For Kendo UI",
|
||||
start: new Date(2015, 5, 4, 1, 30),
|
||||
end: new Date(2015, 5, 4, 2, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Using Kendo UI in SharePoint/Office 365",
|
||||
start: new Date(2015, 5, 4, 1, 30),
|
||||
end: new Date(2015, 5, 4, 2, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Develop the Next Generation of Content-Driven Mobile Apps",
|
||||
start: new Date(2015, 5, 4, 1, 30),
|
||||
end: new Date(2015, 5, 4, 2, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "PM Break",
|
||||
start: new Date(2015, 5, 4, 2, 15),
|
||||
end: new Date(2015, 5, 4, 2, 30),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "AppBuilder in 45 Minutes",
|
||||
start: new Date(2015, 5, 4, 2, 30),
|
||||
end: new Date(2015, 5, 4, 3, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Mastering JavaScript",
|
||||
start: new Date(2015, 5, 4, 2, 30),
|
||||
end: new Date(2015, 5, 4, 3, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Building Mobile Apps with Visual Studio",
|
||||
start: new Date(2015, 5, 4, 2, 30),
|
||||
end: new Date(2015, 5, 4, 3, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Building a CRM Portal in 60 Minutes",
|
||||
start: new Date(2015, 5, 4, 2, 30),
|
||||
end: new Date(2015, 5, 4, 3, 15),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "NativeScript Extensibility",
|
||||
start: new Date(2015, 5, 4, 3, 30),
|
||||
end: new Date(2015, 5, 4, 4, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "There's a Cordova Plugin for that!",
|
||||
start: new Date(2015, 5, 4, 3, 30),
|
||||
end: new Date(2015, 5, 4, 4, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "AngularJS and Kendo UI",
|
||||
start: new Date(2015, 5, 4, 3, 30),
|
||||
end: new Date(2015, 5, 4, 4, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Continuous Delivery and Telerik Sitefinity",
|
||||
start: new Date(2015, 5, 4, 3, 30),
|
||||
end: new Date(2015, 5, 4, 4, 15),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Telerik Leadership Panel - Q&A",
|
||||
start: new Date(2015, 5, 4, 4, 30),
|
||||
end: new Date(2015, 5, 4, 5, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Accelerate your Agile Adoption",
|
||||
start: new Date(2015, 5, 4, 4, 30),
|
||||
end: new Date(2015, 5, 4, 5, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "No Kidding, Real World Tester/Developer Collaboration",
|
||||
start: new Date(2015, 5, 4, 4, 30),
|
||||
end: new Date(2015, 5, 4, 5, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Sitefinity",
|
||||
start: new Date(2015, 5, 4, 4, 30),
|
||||
end: new Date(2015, 5, 4, 5, 15),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Attendee Appreciation Party",
|
||||
start: new Date(2015, 5, 4, 7, 0),
|
||||
end: new Date(2015, 5, 4, 10, 30),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "Registration",
|
||||
start: new Date(2015, 5, 5, 8, 0),
|
||||
end: new Date(2015, 5, 5, 9, 0),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "Sitefinity Keynote",
|
||||
start: new Date(2015, 5, 5, 9, 0),
|
||||
end: new Date(2015, 5, 5, 10, 30),
|
||||
room: "General Session"
|
||||
}), new SessionModel({
|
||||
title: "Introduction to Mobile Testing and Device Cloud",
|
||||
start: new Date(2015, 5, 5, 10, 45),
|
||||
end: new Date(2015, 5, 5, 11, 30),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Data is Beautiful with Kendo UI DataViz",
|
||||
start: new Date(2015, 5, 5, 10, 45),
|
||||
end: new Date(2015, 5, 5, 11, 30),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Mastering How to Visualize Data in ASP.NET MVC",
|
||||
start: new Date(2015, 5, 5, 10, 45),
|
||||
end: new Date(2015, 5, 5, 11, 30),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Using Sitefinity to Power Web 3.0 Experiences",
|
||||
start: new Date(2015, 5, 5, 10, 45),
|
||||
end: new Date(2015, 5, 5, 11, 30),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Building Offline-Ready Mobile Apps",
|
||||
start: new Date(2015, 5, 5, 11, 45),
|
||||
end: new Date(2015, 5, 5, 12, 30),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Kendo UI Mobile: What It Can And Can't Do For You",
|
||||
start: new Date(2015, 5, 5, 11, 45),
|
||||
end: new Date(2015, 5, 5, 12, 30),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "ASP.NET with Telerik UI!",
|
||||
start: new Date(2015, 5, 5, 11, 45),
|
||||
end: new Date(2015, 5, 5, 12, 30),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Cross-Channel Data Integration with Digital Experience Cloud",
|
||||
start: new Date(2015, 5, 5, 11, 45),
|
||||
end: new Date(2015, 5, 5, 12, 30),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Lunch",
|
||||
start: new Date(2015, 5, 5, 12, 30),
|
||||
end: new Date(2015, 5, 5, 1, 30),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "Performance Tuning Your Mobile Web Apps",
|
||||
start: new Date(2015, 5, 5, 1, 30),
|
||||
end: new Date(2015, 5, 5, 2, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Improving Applications with Telerik Analytics",
|
||||
start: new Date(2015, 5, 5, 1, 30),
|
||||
end: new Date(2015, 5, 5, 2, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Reporting vs Dashboards vs UI Data Apps",
|
||||
start: new Date(2015, 5, 5, 1, 30),
|
||||
end: new Date(2015, 5, 5, 2, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Modern MVC and Front-End Development with Telerik Sitefinity",
|
||||
start: new Date(2015, 5, 5, 1, 30),
|
||||
end: new Date(2015, 5, 5, 2, 15),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "PM Break",
|
||||
start: new Date(2015, 5, 5, 2, 15),
|
||||
end: new Date(2015, 5, 5, 2, 30),
|
||||
room: ""
|
||||
}), new SessionModel({
|
||||
title: "Telerik Native Mobile UI for iOS and Android",
|
||||
start: new Date(2015, 5, 5, 2, 30),
|
||||
end: new Date(2015, 5, 5, 3, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "IoT and the Telerik Platform",
|
||||
start: new Date(2015, 5, 5, 2, 30),
|
||||
end: new Date(2015, 5, 5, 3, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Debugging with Fiddler",
|
||||
start: new Date(2015, 5, 5, 2, 30),
|
||||
end: new Date(2015, 5, 5, 3, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Anticipating & Planning of Peak Online Traffic for Professional Football's Biggest Games",
|
||||
start: new Date(2015, 5, 5, 2, 30),
|
||||
end: new Date(2015, 5, 5, 3, 15),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Building a Mobile App API using MongoDB and Node.js",
|
||||
start: new Date(2015, 5, 5, 3, 30),
|
||||
end: new Date(2015, 5, 5, 4, 15),
|
||||
room: "Conference Room 1"
|
||||
}), new SessionModel({
|
||||
title: "Advanced Kendo UI",
|
||||
start: new Date(2015, 5, 5, 3, 30),
|
||||
end: new Date(2015, 5, 5, 4, 15),
|
||||
room: "Conference Room 2"
|
||||
}), new SessionModel({
|
||||
title: "Building Touch Apps with UI for WPF",
|
||||
start: new Date(2015, 5, 5, 3, 30),
|
||||
end: new Date(2015, 5, 5, 4, 15),
|
||||
room: "Conference Room 3"
|
||||
}), new SessionModel({
|
||||
title: "Making the Most Out of Sitefinity Personalization",
|
||||
start: new Date(2015, 5, 5, 3, 30),
|
||||
end: new Date(2015, 5, 5, 4, 15),
|
||||
room: "Conference Room 4"
|
||||
}), new SessionModel({
|
||||
title: "Closing Keynote",
|
||||
start: new Date(2015, 5, 5, 4, 30),
|
||||
end: new Date(2015, 5, 5, 5, 15),
|
||||
room: "General Session"
|
||||
})];
|
||||
|
||||
var dates: Array<Date> = [new Date(2015, 5, 3), new Date(2015, 5, 4), new Date(2015, 5, 5)];
|
||||
|
||||
interface Session {
|
||||
title: string;
|
||||
start: Date;
|
||||
end: Date;
|
||||
room: string;
|
||||
}
|
||||
|
||||
interface Speakers {
|
||||
name: string;
|
||||
title: string;
|
||||
company: string;
|
||||
picture: string;
|
||||
}
|
||||
|
||||
var speakers: Array<Speakers> = [
|
||||
{
|
||||
name: "Todd Anglin",
|
||||
title: "Vice President of Product Strategy",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/todd.png"
|
||||
},
|
||||
{
|
||||
name: "Aaron Mahimainathan",
|
||||
title: "Senior Vice President, Platform & Tools",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/aaron.png"
|
||||
},
|
||||
{
|
||||
name: "Burke Holland",
|
||||
title: "Director of Developer Relations",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/burke.png"
|
||||
},
|
||||
{
|
||||
name: "Brian Rinaldi",
|
||||
title: "Developer Content Manager",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/brian.png"
|
||||
},
|
||||
{
|
||||
name: "TJ VanToll",
|
||||
title: "Senior Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/tj.png"
|
||||
},
|
||||
{
|
||||
name: "Jen Looper",
|
||||
title: "Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/jen.png"
|
||||
},
|
||||
{
|
||||
name: "Brandon Satrom",
|
||||
title: "Director of Product Management",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/brandon.png"
|
||||
},
|
||||
{
|
||||
name: "Michael Crump",
|
||||
title: "Senior Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/michael.png"
|
||||
},
|
||||
{
|
||||
name: "Sam Basu",
|
||||
title: "Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/sam.png"
|
||||
},
|
||||
{
|
||||
name: "Svetla Yankova",
|
||||
title: "Product Marketing Manager",
|
||||
company: "Telerik",
|
||||
picture: "~/app/images/svetla.png"
|
||||
}];
|
||||
53
apps/TelerikNEXT/app.css
Normal file
53
apps/TelerikNEXT/app.css
Normal file
@@ -0,0 +1,53 @@
|
||||
Page{
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
Label, Button, Image {
|
||||
margin: 0 5;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
font-size: 18;
|
||||
color: #fac950;
|
||||
}
|
||||
|
||||
.favourite-image{
|
||||
width: 32;
|
||||
height: 32;
|
||||
vertical-align: center;
|
||||
margin: 20;
|
||||
}
|
||||
|
||||
.info {
|
||||
color: #555555;
|
||||
}
|
||||
|
||||
.info-bigger {
|
||||
color: #555555;
|
||||
font-size: 18;
|
||||
}
|
||||
|
||||
.info-orange {
|
||||
font-size: 16;
|
||||
color: #A17201;
|
||||
}
|
||||
|
||||
.break-row {
|
||||
padding: 5;
|
||||
background-color: #FFFBF0;
|
||||
}
|
||||
|
||||
.list-view-row {
|
||||
padding: 5;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
color: #A17201;
|
||||
margin: 5 5 0 5;
|
||||
}
|
||||
|
||||
.horizontal-line {
|
||||
height: 1;
|
||||
background-color: #FAC950;
|
||||
margin: 5 5 0 5;
|
||||
}
|
||||
@@ -3,5 +3,8 @@
|
||||
// Set the start module for the application
|
||||
application.mainModule = "app/main-page";
|
||||
|
||||
// TODO: This is only neede because of the deply script.
|
||||
application.cssFile = "app/TelerikNEXT/app.css";
|
||||
|
||||
// Start the application
|
||||
application.start();
|
||||
|
||||
413
apps/TelerikNEXT/everlive-upload.ts
Normal file
413
apps/TelerikNEXT/everlive-upload.ts
Normal file
@@ -0,0 +1,413 @@
|
||||
var everlive = require("./lib/everlive");
|
||||
var el = new everlive("mzacGkKPFlZUfbMq");
|
||||
var i = 0;
|
||||
|
||||
// UPLOAD Sessions
|
||||
var sessionsStatic = [
|
||||
{
|
||||
title: "Registration",
|
||||
start: new Date(2015, 4, 3, 8, 30),
|
||||
end: new Date(2015, 4, 3, 9, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "NativeScript Deep Dive",
|
||||
start: new Date(2015, 4, 3, 9, 30),
|
||||
end: new Date(2015, 4, 3, 12, 30),
|
||||
room: "Workshop Room 1"
|
||||
}, {
|
||||
title: "Smart Design for Smartphones",
|
||||
start: new Date(2015, 4, 3, 9, 30),
|
||||
end: new Date(2015, 4, 3, 12, 30),
|
||||
room: "Workshop Room 2"
|
||||
}
|
||||
, {
|
||||
title: "Modern .NET Apps!",
|
||||
start: new Date(2015, 4, 3, 9, 30),
|
||||
end: new Date(2015, 4, 3, 12, 30),
|
||||
room: "Workshop Room 3"
|
||||
}, {
|
||||
title: "Telerik Sitefinity as a Data Integration Platform",
|
||||
start: new Date(2015, 4, 3, 9, 30),
|
||||
end: new Date(2015, 4, 3, 12, 30),
|
||||
room: "Workshop Room 4"
|
||||
}, {
|
||||
title: "Lunch",
|
||||
start: new Date(2015, 4, 3, 9, 30),
|
||||
end: new Date(2015, 4, 3, 12, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "NativeScript Deep Dive",
|
||||
start: new Date(2015, 4, 3, 13, 30),
|
||||
end: new Date(2015, 4, 3, 16, 30),
|
||||
room: "Workshop Room 1"
|
||||
}, {
|
||||
title: "Smart Design for Smartphones",
|
||||
start: new Date(2015, 4, 3, 13, 30),
|
||||
end: new Date(2015, 4, 3, 16, 30),
|
||||
room: "Workshop Room 2"
|
||||
}, {
|
||||
title: "Responsive Apps with Telerik DevCraft",
|
||||
start: new Date(2015, 4, 3, 13, 30),
|
||||
end: new Date(2015, 4, 3, 16, 30),
|
||||
room: "Workshop Room 3"
|
||||
}, {
|
||||
title: "ASP .NET MVC Development in Telerik Sitefinity",
|
||||
start: new Date(2015, 4, 3, 13, 30),
|
||||
end: new Date(2015, 4, 3, 16, 30),
|
||||
room: "Workshop Room 4"
|
||||
}, {
|
||||
title: "Registration",
|
||||
start: new Date(2015, 4, 4, 7, 30),
|
||||
end: new Date(2015, 4, 4, 9, 0),
|
||||
room: ""
|
||||
}, {
|
||||
title: "Telerik Keynote",
|
||||
start: new Date(2015, 4, 4, 9, 0),
|
||||
end: new Date(2015, 4, 4, 10, 30),
|
||||
room: "General Session"
|
||||
}, {
|
||||
title: "A Lap Around NativeScript",
|
||||
start: new Date(2015, 4, 4, 10, 45),
|
||||
end: new Date(2015, 4, 4, 11, 30),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Kendo UI Building Blocks",
|
||||
start: new Date(2015, 4, 4, 10, 45),
|
||||
end: new Date(2015, 4, 4, 11, 30),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "CRUD with ASP.NET MVC, Web API, EF and Kendo UI",
|
||||
start: new Date(2015, 4, 4, 10, 45),
|
||||
end: new Date(2015, 4, 4, 11, 30),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Best Practices for Understanding and Implementing Website Project Requirements",
|
||||
start: new Date(2015, 4, 4, 10, 45),
|
||||
end: new Date(2015, 4, 4, 11, 30),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Getting Started with ScreenBuilder",
|
||||
start: new Date(2015, 4, 4, 11, 45),
|
||||
end: new Date(2015, 4, 4, 12, 30),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Getting Started with AngularJS",
|
||||
start: new Date(2015, 4, 4, 11, 45),
|
||||
end: new Date(2015, 4, 4, 12, 30),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Zero to Hipster with the M.I.K.E. Stack",
|
||||
start: new Date(2015, 4, 4, 11, 45),
|
||||
end: new Date(2015, 4, 4, 12, 30),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Content Meets Commerce, Email and Analytics to Build the New Data-Driven Marketing Machine",
|
||||
start: new Date(2015, 4, 4, 11, 45),
|
||||
end: new Date(2015, 4, 4, 12, 30),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Lunch",
|
||||
start: new Date(2015, 4, 4, 12, 30),
|
||||
end: new Date(2015, 4, 4, 13, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "Hybrid vs Native vs Web: Which is Right for Me?",
|
||||
start: new Date(2015, 4, 4, 13, 30),
|
||||
end: new Date(2015, 4, 4, 14, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "AngularJS Directives For Kendo UI",
|
||||
start: new Date(2015, 4, 4, 13, 30),
|
||||
end: new Date(2015, 4, 4, 14, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Using Kendo UI in SharePoint/Office 365",
|
||||
start: new Date(2015, 4, 4, 13, 30),
|
||||
end: new Date(2015, 4, 4, 14, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Develop the Next Generation of Content-Driven Mobile Apps",
|
||||
start: new Date(2015, 4, 4, 13, 30),
|
||||
end: new Date(2015, 4, 4, 14, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "PM Break",
|
||||
start: new Date(2015, 4, 4, 14, 15),
|
||||
end: new Date(2015, 4, 4, 14, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "AppBuilder in 45 Minutes",
|
||||
start: new Date(2015, 4, 4, 14, 30),
|
||||
end: new Date(2015, 4, 16, 15, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Mastering JavaScript",
|
||||
start: new Date(2015, 4, 4, 14, 30),
|
||||
end: new Date(2015, 4, 16, 15, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Building Mobile Apps with Visual Studio",
|
||||
start: new Date(2015, 4, 4, 14, 30),
|
||||
end: new Date(2015, 4, 16, 15, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Building a CRM Portal in 60 Minutes",
|
||||
start: new Date(2015, 4, 4, 14, 30),
|
||||
end: new Date(2015, 4, 16, 15, 15),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "NativeScript Extensibility",
|
||||
start: new Date(2015, 4, 4, 15, 30),
|
||||
end: new Date(2015, 4, 4, 16, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "There's a Cordova Plugin for that!",
|
||||
start: new Date(2015, 4, 4, 15, 30),
|
||||
end: new Date(2015, 4, 4, 16, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "AngularJS and Kendo UI",
|
||||
start: new Date(2015, 4, 4, 15, 30),
|
||||
end: new Date(2015, 4, 4, 16, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Continuous Delivery and Telerik Sitefinity",
|
||||
start: new Date(2015, 4, 4, 15, 30),
|
||||
end: new Date(2015, 4, 4, 16, 15),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Telerik Leadership Panel - Q&A",
|
||||
start: new Date(2015, 4, 4, 16, 30),
|
||||
end: new Date(2015, 4, 4, 17, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Accelerate your Agile Adoption",
|
||||
start: new Date(2015, 4, 4, 16, 30),
|
||||
end: new Date(2015, 4, 4, 17, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "No Kidding, Real World Tester/Developer Collaboration",
|
||||
start: new Date(2015, 4, 4, 16, 30),
|
||||
end: new Date(2015, 4, 4, 17, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Sitefinity",
|
||||
start: new Date(2015, 4, 4, 16, 30),
|
||||
end: new Date(2015, 4, 4, 17, 15),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Attendee Appreciation Party",
|
||||
start: new Date(2015, 4, 4, 19, 0),
|
||||
end: new Date(2015, 4, 4, 22, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "Registration",
|
||||
start: new Date(2015, 4, 5, 8, 0),
|
||||
end: new Date(2015, 4, 5, 9, 0),
|
||||
room: ""
|
||||
}, {
|
||||
title: "Sitefinity Keynote",
|
||||
start: new Date(2015, 4, 5, 9, 0),
|
||||
end: new Date(2015, 4, 5, 10, 30),
|
||||
room: "General Session"
|
||||
}, {
|
||||
title: "Introduction to Mobile Testing and Device Cloud",
|
||||
start: new Date(2015, 4, 5, 10, 45),
|
||||
end: new Date(2015, 4, 5, 11, 30),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Data is Beautiful with Kendo UI DataViz",
|
||||
start: new Date(2015, 4, 5, 10, 45),
|
||||
end: new Date(2015, 4, 5, 11, 30),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Mastering How to Visualize Data in ASP.NET MVC",
|
||||
start: new Date(2015, 4, 5, 10, 45),
|
||||
end: new Date(2015, 4, 5, 11, 30),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Using Sitefinity to Power Web 3.0 Experiences",
|
||||
start: new Date(2015, 4, 5, 10, 45),
|
||||
end: new Date(2015, 4, 5, 11, 30),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Building Offline-Ready Mobile Apps",
|
||||
start: new Date(2015, 4, 5, 11, 45),
|
||||
end: new Date(2015, 4, 5, 12, 30),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Kendo UI Mobile: What It Can And Can't Do For You",
|
||||
start: new Date(2015, 4, 5, 11, 45),
|
||||
end: new Date(2015, 4, 5, 12, 30),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "ASP.NET with Telerik UI!",
|
||||
start: new Date(2015, 4, 5, 11, 45),
|
||||
end: new Date(2015, 4, 5, 12, 30),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Cross-Channel Data Integration with Digital Experience Cloud",
|
||||
start: new Date(2015, 4, 5, 11, 45),
|
||||
end: new Date(2015, 4, 5, 12, 30),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Lunch",
|
||||
start: new Date(2015, 4, 5, 12, 30),
|
||||
end: new Date(2015, 4, 5, 13, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "Performance Tuning Your Mobile Web Apps",
|
||||
start: new Date(2015, 4, 5, 13, 30),
|
||||
end: new Date(2015, 4, 5, 14, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Improving Applications with Telerik Analytics",
|
||||
start: new Date(2015, 4, 5, 13, 30),
|
||||
end: new Date(2015, 4, 5, 14, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Reporting vs Dashboards vs UI Data Apps",
|
||||
start: new Date(2015, 4, 5, 13, 30),
|
||||
end: new Date(2015, 4, 5, 14, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Modern MVC and Front-End Development with Telerik Sitefinity",
|
||||
start: new Date(2015, 4, 5, 13, 30),
|
||||
end: new Date(2015, 4, 5, 14, 15),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "PM Break",
|
||||
start: new Date(2015, 4, 5, 14, 15),
|
||||
end: new Date(2015, 4, 5, 14, 30),
|
||||
room: ""
|
||||
}, {
|
||||
title: "Telerik Native Mobile UI for iOS and Android",
|
||||
start: new Date(2015, 4, 5, 14, 30),
|
||||
end: new Date(2015, 4, 17, 15, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "IoT and the Telerik Platform",
|
||||
start: new Date(2015, 4, 5, 14, 30),
|
||||
end: new Date(2015, 4, 17, 15, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Debugging with Fiddler",
|
||||
start: new Date(2015, 4, 5, 14, 30),
|
||||
end: new Date(2015, 4, 17, 15, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Anticipating & Planning of Peak Online Traffic for Professional Football's Biggest Games",
|
||||
start: new Date(2015, 4, 5, 14, 30),
|
||||
end: new Date(2015, 4, 17, 15, 15),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Building a Mobile App API using MongoDB and Node.js",
|
||||
start: new Date(2015, 4, 5, 15, 30),
|
||||
end: new Date(2015, 4, 5, 16, 15),
|
||||
room: "Conference Room 1"
|
||||
}, {
|
||||
title: "Advanced Kendo UI",
|
||||
start: new Date(2015, 4, 5, 15, 30),
|
||||
end: new Date(2015, 4, 5, 16, 15),
|
||||
room: "Conference Room 2"
|
||||
}, {
|
||||
title: "Building Touch Apps with UI for WPF",
|
||||
start: new Date(2015, 4, 5, 15, 30),
|
||||
end: new Date(2015, 4, 5, 16, 15),
|
||||
room: "Conference Room 3"
|
||||
}, {
|
||||
title: "Making the Most Out of Sitefinity Personalization",
|
||||
start: new Date(2015, 4, 5, 15, 30),
|
||||
end: new Date(2015, 4, 5, 16, 15),
|
||||
room: "Conference Room 4"
|
||||
}, {
|
||||
title: "Closing Keynote",
|
||||
start: new Date(2015, 4, 5, 16, 30),
|
||||
end: new Date(2015, 4, 5, 17, 15),
|
||||
room: "General Session"
|
||||
}];
|
||||
|
||||
var dataSessions = el.data('NextSessions');
|
||||
for (i = 0; i < sessionsStatic.length; i++) {
|
||||
dataSessions.create(sessionsStatic[i],
|
||||
function (data) {
|
||||
console.log("session added: " + JSON.stringify(data));
|
||||
},
|
||||
function (error) {
|
||||
console.log("error: " + error);
|
||||
});
|
||||
}
|
||||
|
||||
// UPLOAD SPEAKERS
|
||||
var speakersStatic = [
|
||||
{
|
||||
name: "Todd Anglin",
|
||||
title: "Vice President of Product Strategy",
|
||||
company: "Telerik",
|
||||
picture: "todd.png"
|
||||
},
|
||||
{
|
||||
name: "Aaron Mahimainathan",
|
||||
title: "Senior Vice President, Platform & Tools",
|
||||
company: "Telerik",
|
||||
picture: "aaron.png"
|
||||
},
|
||||
{
|
||||
name: "Burke Holland",
|
||||
title: "Director of Developer Relations",
|
||||
company: "Telerik",
|
||||
picture: "burke.png"
|
||||
},
|
||||
{
|
||||
name: "Brian Rinaldi",
|
||||
title: "Developer Content Manager",
|
||||
company: "Telerik",
|
||||
picture: "brian.png"
|
||||
},
|
||||
{
|
||||
name: "TJ VanToll",
|
||||
title: "Senior Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "tj.png"
|
||||
},
|
||||
{
|
||||
name: "Jen Looper",
|
||||
title: "Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "jen.png"
|
||||
},
|
||||
{
|
||||
name: "Brandon Satrom",
|
||||
title: "Director of Product Management",
|
||||
company: "Telerik",
|
||||
picture: "brandon.png"
|
||||
},
|
||||
{
|
||||
name: "Michael Crump",
|
||||
title: "Senior Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "michael.png"
|
||||
},
|
||||
{
|
||||
name: "Sam Basu",
|
||||
title: "Developer Advocate",
|
||||
company: "Telerik",
|
||||
picture: "sam.png"
|
||||
},
|
||||
{
|
||||
name: "Svetla Yankova",
|
||||
title: "Product Marketing Manager",
|
||||
company: "Telerik",
|
||||
picture: "svetla.png"
|
||||
}];
|
||||
|
||||
var data = el.data('NextSpeakers');
|
||||
for (i = 0; i < speakersStatic.length; i++) {
|
||||
data.create(speakersStatic[i],
|
||||
function (data) {
|
||||
console.log("speaker added: " + JSON.stringify(data));
|
||||
},
|
||||
function (error) {
|
||||
console.log("error: " + error);
|
||||
});
|
||||
}
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 170 KiB After Width: | Height: | Size: 55 KiB |
@@ -1,23 +0,0 @@
|
||||
Label, Button, Image {
|
||||
margin: 5;
|
||||
}
|
||||
|
||||
.speakerPicture {
|
||||
width: 100;
|
||||
height: 100;
|
||||
}
|
||||
|
||||
.speakerTitle, .speakerCompany {
|
||||
font-size: 18;
|
||||
color: #07ab9e;
|
||||
}
|
||||
|
||||
.speakerName {
|
||||
font-size: 22;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 22;
|
||||
color: black;
|
||||
}
|
||||
@@ -1,16 +1,24 @@
|
||||
import observable = require("data/observable");
|
||||
import pages = require("ui/page");
|
||||
import gestures = require("ui/gestures");
|
||||
import listView = require("ui/list-view");
|
||||
import frame = require("ui/frame");
|
||||
import appViewModel = require("./app-view-model");
|
||||
|
||||
export function pageLoaded(args: observable.EventData) {
|
||||
var page = <pages.Page>args.object;
|
||||
|
||||
page.bindingContext = new appViewModel.AppViewModel();
|
||||
page.bindingContext = appViewModel.appModel;
|
||||
}
|
||||
|
||||
export function selectSession(args: listView.ItemEventData) {
|
||||
frame.topmost().navigate({
|
||||
moduleName: "app/session-page",
|
||||
context: args.view.bindingContext
|
||||
});
|
||||
}
|
||||
|
||||
export function toggleFavorite(args: gestures.GestureEventData) {
|
||||
var item = <appViewModel.SessionModel>args.view.bindingContext;
|
||||
|
||||
item.favorite = !item.favorite;
|
||||
item.toggleFavorite();
|
||||
}
|
||||
@@ -38,11 +38,11 @@
|
||||
</SegmentedBar.items>
|
||||
</SegmentedBar>
|
||||
|
||||
<Label style="horizontal-align: center;margin: 15;">
|
||||
<Label cssClass="page-title" horizontalAlignment="center" margin="15">
|
||||
<Label.formattedText>
|
||||
<FormattedString fontSize="18" foregroundColor="#fac950">
|
||||
<FormattedString>
|
||||
<FormattedString.spans>
|
||||
<Span text="WORKSHOPS" fontAttributes="Bold" />
|
||||
<Span text="{{ dayHeader }}" fontAttributes="Bold" />
|
||||
</FormattedString.spans>
|
||||
</FormattedString>
|
||||
</Label.formattedText>
|
||||
@@ -51,38 +51,29 @@
|
||||
|
||||
<SearchBar text="{{ search }}" hint="Search" style="background-color: #fac950; color: #fac950;" textFieldBackgroundColor="white" row="1" />
|
||||
|
||||
<ListView items="{{ sessions }}" row="2" separatorColor="#fac950">
|
||||
<ListView items="{{ sessions }}" row="2" separatorColor="#fac950" itemTap="selectSession">
|
||||
<ListView.itemTemplate>
|
||||
<GridLayout columns="auto, *" backgroundColor="{{ canBeFavorited ? 'white' : '#fffbf0' }}">
|
||||
<GridLayout columns="auto, *" cssClass="{{ canBeFavorited ? 'list-view-row' : 'break-row' }}">
|
||||
|
||||
<Image src="{{ favorite ? '~/app/images/fav.png' : '~/app/images/addfav.png' }}" visibility="{{ canBeFavorited ? 'visible' : 'collapsed' }}"
|
||||
tap="toggleFavorite" width="32" height="32" vertical-align="center" margin="20" />
|
||||
<Image src="{{ favorite ? '~/app/images/fav.png' : '~/app/images/addfav.png' }}"
|
||||
visibility="{{ canBeFavorited ? 'visible' : 'collapsed' }}"
|
||||
tap="toggleFavorite" cssClass="favourite-image" />
|
||||
|
||||
<StackLayout col="1">
|
||||
|
||||
<Label>
|
||||
<Label cssClass="info-orange">
|
||||
<Label.formattedText>
|
||||
<FormattedString fontSize="18" foregroundColor="#a17201">
|
||||
<FormattedString>
|
||||
<FormattedString.spans>
|
||||
<Span text="Time:" />
|
||||
<Span text="{{ range }}" fontAttributes="Bold" />
|
||||
</FormattedString.spans>
|
||||
</FormattedString>
|
||||
</Label.formattedText>
|
||||
</Label>
|
||||
|
||||
<Label text="{{ title }}" textWrap="true" cssClass="title" />
|
||||
<Label text="{{ title }}" textWrap="true" cssClass="info-bigger"/>
|
||||
|
||||
<Label visibility="{{ room ? 'visible' : 'collapsed' }}">
|
||||
<Label.formattedText>
|
||||
<FormattedString fontSize="12" foregroundColor="#a17201">
|
||||
<FormattedString.spans>
|
||||
<Span text="Room: " />
|
||||
<Span text="{{ room }}" fontAttributes="Bold" />
|
||||
</FormattedString.spans>
|
||||
</FormattedString>
|
||||
</Label.formattedText>
|
||||
</Label>
|
||||
<Label visibility="{{ room ? 'visible' : 'collapsed' }}" text="{{ room }}" cssClass="info-orange" />
|
||||
|
||||
</StackLayout>
|
||||
|
||||
@@ -90,6 +81,8 @@
|
||||
</ListView.itemTemplate>
|
||||
</ListView>
|
||||
|
||||
<ActivityIndicator busy="{{ isLoading }}" row="2" horizontalAlignment="center" verticalAlignment="center" />
|
||||
|
||||
</GridLayout>
|
||||
|
||||
<Border style="background-color: #053140;" visibility="{{ selectedViewIndex === 2 ? 'visible' : 'collapsed' }}">
|
||||
|
||||
15
apps/TelerikNEXT/session-page.ts
Normal file
15
apps/TelerikNEXT/session-page.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import observable = require("data/observable");
|
||||
import pages = require("ui/page");
|
||||
import gestures = require("ui/gestures");
|
||||
import appViewModel = require("./app-view-model");
|
||||
|
||||
export function pageNavigatedTo(args: observable.EventData) {
|
||||
var page = <pages.Page>args.object;
|
||||
|
||||
page.bindingContext = page.navigationContext;
|
||||
}
|
||||
|
||||
export function toggleFavorite(args: gestures.GestureEventData) {
|
||||
var item = <appViewModel.SessionModel>args.view.bindingContext;
|
||||
item.toggleFavorite();
|
||||
}
|
||||
83
apps/TelerikNEXT/session-page.xml
Normal file
83
apps/TelerikNEXT/session-page.xml
Normal file
@@ -0,0 +1,83 @@
|
||||
<Page xmlns="http://www.nativescript.org/tns.xsd"
|
||||
xmlns:tsb="app/TelerikNEXT/TelerikUI/side-bar"
|
||||
navigatedTo="pageNavigatedTo">
|
||||
|
||||
<GridLayout rows="auto, *">
|
||||
<!-- HEADER -->
|
||||
<GridLayout columns="70, *" style="background-image: url('~/app/images/background.jpg')">
|
||||
<StackLayout col="1" margin="15 5">
|
||||
<Label text="{{ title }}" textWrap="true" cssClass="page-title"/>
|
||||
<Label cssClass="info-orange">
|
||||
<Label.formattedText>
|
||||
<FormattedString>
|
||||
<FormattedString.spans>
|
||||
<Span text="{{ range}}" fontAttributes="Bold" />
|
||||
<Span text=", " fontAttributes="Bold" />
|
||||
<Span text="{{ room }}" fontAttributes="Bold" />
|
||||
</FormattedString.spans>
|
||||
</FormattedString>
|
||||
</Label.formattedText>
|
||||
</Label>
|
||||
</StackLayout>
|
||||
<Image tap="toggleFavorite" cssClass="favourite-image"
|
||||
src="{{ favorite ? '~/app/images/fav.png' : '~/app/images/addfav.png' }}"
|
||||
visibility="{{ canBeFavorited ? 'visible' : 'collapsed' }}" />
|
||||
</GridLayout>
|
||||
|
||||
<!-- Scrollable content -->
|
||||
<ScrollView row="1">
|
||||
<GridLayout rows="auto, auto, auto, auto, auto, auto, auto, auto, auto, auto, auto" columns="70, *" >
|
||||
<!-- Description -->
|
||||
<Label cssClass="info" textWrap="true" col="1" margin="10 5 5 5"
|
||||
text="TODO: Put description here." />
|
||||
|
||||
<!-- Line -->
|
||||
<StackLayout cssClass="horizontal-line" row="1" col="1"/>
|
||||
|
||||
<!-- Speakers -->
|
||||
<Label text="Speakers" cssClass="section-header" row="2" col="1" />
|
||||
<ListView items="{{ speakers }}" row="3" colSpan="2" height="{{ speakers.length * 72 }}" selectedBackgroundColor="#fac950" separatorColor="#FFFFFF">
|
||||
<ListView.itemTemplate>
|
||||
<GridLayout columns="65, *" cssClass="list-view-row">
|
||||
<Image src="{{ '~/app/images/' + picture }}" verticalAlignment="top"/>
|
||||
|
||||
<StackLayout col="1">
|
||||
<Label cssClass="info">
|
||||
<Label.formattedText>
|
||||
<FormattedString>
|
||||
<FormattedString.spans>
|
||||
<Span text="{{ name }}" fontAttributes="Bold" />
|
||||
</FormattedString.spans>
|
||||
</FormattedString>
|
||||
</Label.formattedText>
|
||||
</Label>
|
||||
<Label cssClass="info">
|
||||
<Label.formattedText>
|
||||
<FormattedString>
|
||||
<FormattedString.spans>
|
||||
<Span text="{{ title }}" fontAttributes="Italic" />
|
||||
</FormattedString.spans>
|
||||
</FormattedString>
|
||||
</Label.formattedText>
|
||||
</Label>
|
||||
<Label text="{{ company }}" cssClass="info"/>
|
||||
</StackLayout>
|
||||
|
||||
</GridLayout>
|
||||
</ListView.itemTemplate>
|
||||
</ListView>
|
||||
|
||||
<!-- Line -->
|
||||
<StackLayout cssClass="horizontal-line" row="4" col="1"/>
|
||||
|
||||
<!-- More -->
|
||||
<Label text="More" cssClass="section-header" row="5" col="1"/>
|
||||
|
||||
<Label text="LEAVE FEEDBACK" row="6" col="1"/>
|
||||
|
||||
<Label text="WATCH VIDEOS" row="7" col="1"/>
|
||||
|
||||
</GridLayout>
|
||||
</ScrollView>
|
||||
</GridLayout>
|
||||
</Page>
|
||||
Reference in New Issue
Block a user