Workspace created.
|
@ -0,0 +1,3 @@
|
|||
*/bin
|
||||
*/obj
|
||||
*.user-settings.xml
|
После Ширина: | Высота: | Размер: 3.7 KiB |
После Ширина: | Высота: | Размер: 1.8 KiB |
После Ширина: | Высота: | Размер: 2.4 KiB |
После Ширина: | Высота: | Размер: 6.8 KiB |
После Ширина: | Высота: | Размер: 14 KiB |
После Ширина: | Высота: | Размер: 15 KiB |
После Ширина: | Высота: | Размер: 29 KiB |
После Ширина: | Высота: | Размер: 11 KiB |
После Ширина: | Высота: | Размер: 30 KiB |
После Ширина: | Высота: | Размер: 6.8 KiB |
После Ширина: | Высота: | Размер: 14 KiB |
После Ширина: | Высота: | Размер: 2.6 KiB |
После Ширина: | Высота: | Размер: 5.3 KiB |
После Ширина: | Высота: | Размер: 2.5 KiB |
После Ширина: | Высота: | Размер: 3.1 KiB |
После Ширина: | Высота: | Размер: 2.0 KiB |
После Ширина: | Высота: | Размер: 4.2 KiB |
После Ширина: | Высота: | Размер: 3.1 KiB |
После Ширина: | Высота: | Размер: 6.3 KiB |
После Ширина: | Высота: | Размер: 3.8 KiB |
После Ширина: | Высота: | Размер: 7.6 KiB |
После Ширина: | Высота: | Размер: 4.0 KiB |
После Ширина: | Высота: | Размер: 8.0 KiB |
После Ширина: | Высота: | Размер: 3.0 KiB |
После Ширина: | Высота: | Размер: 6.0 KiB |
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<ProjectGuid>e50ed830-25a9-4993-98e2-feb7a250e80d</ProjectGuid>
|
||||
<ProjectTypeGuids>{070BCB52-5A75-4F8C-A973-144AF0EAFCC9}</ProjectTypeGuids>
|
||||
<AppIdentifier>com.telerik.Eventer</AppIdentifier>
|
||||
<ProjectName>Eventer</ProjectName>
|
||||
<IsRunnable>true</IsRunnable>
|
||||
<FrameworkVersion>3.0.0</FrameworkVersion>
|
||||
<AndroidPermissions>android.permission.CAMERA;android.permission.VIBRATE;android.permission.ACCESS_COARSE_LOCATION;android.permission.ACCESS_FINE_LOCATION;android.permission.ACCESS_LOCATION_EXTRA_COMMANDS;android.permission.READ_PHONE_STATE;android.permission.INTERNET;android.permission.RECEIVE_SMS;android.permission.RECORD_AUDIO;android.permission.MODIFY_AUDIO_SETTINGS;android.permission.READ_CONTACTS;android.permission.WRITE_CONTACTS;android.permission.WRITE_EXTERNAL_STORAGE;android.permission.ACCESS_NETWORK_STATE;android.permission.ACCOUNT_MANAGER;android.permission.GET_ACCOUNTS;android.permission.MANAGE_ACCOUNTS;android.permission.BROADCAST_STICKY</AndroidPermissions>
|
||||
<CorePlugins>org.apache.cordova.AudioHandler;org.apache.cordova.battery-status;org.apache.cordova.camera;org.apache.cordova.console;org.apache.cordova.contacts;org.apache.cordova.device;org.apache.cordova.device-motion;org.apache.cordova.device-orientation;org.apache.cordova.dialogs;org.apache.cordova.file;org.apache.cordova.file-transfer;org.apache.cordova.geolocation;org.apache.cordova.globalization;org.apache.cordova.inappbrowser;org.apache.cordova.media-capture;org.apache.cordova.network-information;org.apache.cordova.splashscreen;org.apache.cordova.vibration</CorePlugins>
|
||||
<DeviceOrientations>Portrait;Landscape</DeviceOrientations>
|
||||
<iOSStatusBarStyle>Default</iOSStatusBarStyle>
|
||||
<AndroidHardwareAcceleration>false</AndroidHardwareAcceleration>
|
||||
</PropertyGroup> <Import Project="$(MSBuildExtensionsPath)\Telerik\ICE\Tools\Mobile\MobileTools.targets" />
|
||||
</Project>
|
|
@ -0,0 +1,44 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title></title>
|
||||
<meta charset="utf-8" />
|
||||
<script src="cordova.js"></script>
|
||||
<script src="kendo/js/jquery.min.js"></script>
|
||||
<script src="kendo/js/kendo.mobile.min.js"></script>
|
||||
<script src="scripts/lib/everlive.all.min.js"></script>
|
||||
<script src="scripts/app/identity-provider.js"></script>
|
||||
<script src="scripts/app/main.js" type="text/javascript"></script>
|
||||
|
||||
<link href="kendo/styles/kendo.mobile.all.min.css" rel="stylesheet" />
|
||||
<link href="styles/main.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body id="friendsApp">
|
||||
<section data-role="layout" data-id="default">
|
||||
<!--View content will render here-->
|
||||
</section>
|
||||
<!--WELCOME VIEW -->
|
||||
<div data-role="view" id="welcome" data-layout="default" class="welcome-scrn form-view" data-model="app.viewModels.login">
|
||||
<h1><b>Everlive</b> sample application</h1>
|
||||
<form id="login-form">
|
||||
<ul data-role="listview" data-style="inset">
|
||||
<li><label for="loginUsername">Username</label> <input type="text" id="loginUsername" required validationMessage="Username is required!" /></li>
|
||||
<li><label for="loginPassword">Password</label> <input type="password" id="loginPassword" required validationMessage="Password is required!" /></li>
|
||||
</ul>
|
||||
</form>
|
||||
<ol class="group-wrp">
|
||||
<li>
|
||||
<span data-role="touch" data-bind="events: { tap: login }" style="display: inline-block">
|
||||
<a data-role="button" class="btn-login btn-big">Login</a>
|
||||
</span>
|
||||
<span data-role="touch" data-bind="events: { tap: loginWithFacebook }" style="display: inline-block">
|
||||
<a data-role="button" class="btn-login-fb btn-big">Login</a>
|
||||
</span>
|
||||
</li>
|
||||
<li class="b-top"><a data-role="button" href="views/signupView.html" class="btn-signup btn-big">Sign up</a> </li>
|
||||
</ol>
|
||||
|
||||
<div data-role="footer"><p>Powered by Icenium Everlive.</p></div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
После Ширина: | Высота: | Размер: 591 B |
|
@ -0,0 +1,54 @@
|
|||
function getParameterByName(name, url) {
|
||||
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
|
||||
var regexS = name + "=([^&#]*)";
|
||||
|
||||
//console.log("Parameter name: " + name);
|
||||
//console.log("Url: " + url);
|
||||
|
||||
var regex = new RegExp(regexS);
|
||||
var results = regex.exec(url);
|
||||
|
||||
//console.log("Result: " + results);
|
||||
|
||||
if (results == null) {
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
return decodeURIComponent(results[1].replace(/\+/g, " "));
|
||||
}
|
||||
}
|
||||
|
||||
var IdentityProvider = function (config) {
|
||||
var that = this;
|
||||
|
||||
this.getAccessToken = function(callback) {
|
||||
|
||||
// Begin Authorization
|
||||
var authorize_url = config.endpoint
|
||||
+ "?response_type=" + config.response_type
|
||||
+ "&client_id=" + config.client_id
|
||||
+ "&redirect_uri=" + config.redirect_uri
|
||||
+ "&display=" + config.display
|
||||
+ "&access_type=" + config.access_type
|
||||
+ "&scope=" + config.scope
|
||||
|
||||
//CALL IN APP BROWSER WITH THE LINK
|
||||
ref = window.open(authorize_url, '_blank', 'location=no');
|
||||
|
||||
ref.addEventListener('loadstart', function(event) {
|
||||
that.locationChanged(event.url, callback);
|
||||
});
|
||||
|
||||
ref.addEventListener('loadstop', function(event) {
|
||||
that.locationChanged(event.url, callback);
|
||||
});
|
||||
}
|
||||
|
||||
this.locationChanged = function(loc, callback) {
|
||||
if (loc.indexOf("access_token=") != -1) {
|
||||
ref.close();
|
||||
var token = getParameterByName("access_token", loc);
|
||||
callback(token);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,351 @@
|
|||
var app = (function () {
|
||||
'use strict';
|
||||
|
||||
// global error handling
|
||||
var showAlert = function(message, title, callback) {
|
||||
navigator.notification.alert(message, callback || function () {
|
||||
}, title, 'OK');
|
||||
};
|
||||
var showError = function(message) {
|
||||
showAlert(message, 'Error occured');
|
||||
};
|
||||
window.addEventListener('error', function (e) {
|
||||
e.preventDefault();
|
||||
var message = e.message + "' from " + e.filename + ":" + e.lineno;
|
||||
showAlert(message, 'Error occured');
|
||||
return true;
|
||||
});
|
||||
|
||||
var onBackKeyDown = function(e) {
|
||||
e.preventDefault();
|
||||
navigator.notification.confirm('Do you really want to exit?', function (confirmed) {
|
||||
var exit = function () {
|
||||
navigator.app.exitApp();
|
||||
};
|
||||
if (confirmed === true || confirmed === 1) {
|
||||
AppHelper.logout().then(exit, exit);
|
||||
}
|
||||
}, 'Exit', 'Ok,Cancel');
|
||||
};
|
||||
var onDeviceReady = function() {
|
||||
//Handle document events
|
||||
document.addEventListener("backbutton", onBackKeyDown, false);
|
||||
};
|
||||
|
||||
document.addEventListener("deviceready", onDeviceReady, false);
|
||||
|
||||
var applicationSettings = {
|
||||
emptyGuid: '00000000-0000-0000-0000-000000000000',
|
||||
apiKey: 'wUQ7tB0s9C6BaH3Y',
|
||||
scheme: 'http'
|
||||
};
|
||||
|
||||
// initialize Everlive SDK
|
||||
var el = new Everlive({
|
||||
apiKey: applicationSettings.apiKey,
|
||||
scheme: applicationSettings.scheme
|
||||
});
|
||||
|
||||
var facebook = new IdentityProvider({
|
||||
name: "Facebook",
|
||||
loginMethodName: "loginWithFacebook",
|
||||
endpoint: "https://www.facebook.com/dialog/oauth",
|
||||
response_type:"token",
|
||||
client_id: "622842524411586",
|
||||
redirect_uri:"https://www.facebook.com/connect/login_success.html",
|
||||
access_type:"online",
|
||||
scope:"email",
|
||||
display: "touch"
|
||||
});
|
||||
|
||||
var AppHelper = {
|
||||
resolveProfilePictureUrl: function (id) {
|
||||
if (id && id !== applicationSettings.emptyGuid) {
|
||||
return el.Files.getDownloadUrl(id);
|
||||
}
|
||||
else {
|
||||
return 'styles/images/avatar.png';
|
||||
}
|
||||
},
|
||||
resolvePictureUrl: function (id) {
|
||||
if (id && id !== applicationSettings.emptyGuid) {
|
||||
return el.Files.getDownloadUrl(id);
|
||||
}
|
||||
else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
formatDate: function (dateString) {
|
||||
var date = new Date(dateString);
|
||||
var year = date.getFullYear().toString();
|
||||
var month = date.getMonth().toString();
|
||||
var day = date.getDate().toString();
|
||||
return day + '.' + month + '.' + year;
|
||||
},
|
||||
logout: function () {
|
||||
return el.Users.logout();
|
||||
}
|
||||
};
|
||||
|
||||
var mobileApp = new kendo.mobile.Application(document.body, { transition: 'slide', layout: 'mobile-tabstrip' });
|
||||
|
||||
var usersModel = (function () {
|
||||
var currentUser = kendo.observable({ data: null });
|
||||
var usersData;
|
||||
var loadUsers = function () {
|
||||
return el.Users.currentUser()
|
||||
.then(function (data) {
|
||||
var currentUserData = data.result;
|
||||
currentUserData.PictureUrl = AppHelper.resolveProfilePictureUrl(currentUserData.Picture);
|
||||
currentUser.set('data', currentUserData);
|
||||
return el.Users.get();
|
||||
})
|
||||
.then(function (data) {
|
||||
usersData = new kendo.data.ObservableArray(data.result);
|
||||
})
|
||||
.then(null,
|
||||
function (err) {
|
||||
showError(err.message);
|
||||
}
|
||||
);
|
||||
};
|
||||
return {
|
||||
load: loadUsers,
|
||||
users: function () {
|
||||
return usersData;
|
||||
},
|
||||
currentUser: currentUser
|
||||
};
|
||||
}());
|
||||
|
||||
// login view model
|
||||
var loginViewModel = (function () {
|
||||
var login = function () {
|
||||
var username = $('#loginUsername').val();
|
||||
var password = $('#loginPassword').val();
|
||||
|
||||
el.Users.login(username, password)
|
||||
.then(function () {
|
||||
return usersModel.load();
|
||||
})
|
||||
.then(function () {
|
||||
mobileApp.navigate('views/activitiesView.html');
|
||||
})
|
||||
.then(null,
|
||||
function (err) {
|
||||
showError(err.message);
|
||||
}
|
||||
);
|
||||
};
|
||||
var loginWithFacebook = function() {
|
||||
mobileApp.showLoading();
|
||||
facebook.getAccessToken(function(token) {
|
||||
el.Users.loginWithFacebook(token)
|
||||
.then(function () {
|
||||
return usersModel.load();
|
||||
})
|
||||
.then(function () {
|
||||
mobileApp.hideLoading();
|
||||
mobileApp.navigate('views/activitiesView.html');
|
||||
})
|
||||
.then(null, function (err) {
|
||||
mobileApp.hideLoading();
|
||||
if (err.code = 214) {
|
||||
showError("The specified identity provider is not enabled in the backend portal.");
|
||||
}
|
||||
else {
|
||||
showError(err.message);
|
||||
}
|
||||
});
|
||||
})
|
||||
}
|
||||
return {
|
||||
login: login,
|
||||
loginWithFacebook: loginWithFacebook
|
||||
};
|
||||
}());
|
||||
|
||||
// signup view model
|
||||
var singupViewModel = (function () {
|
||||
var dataSource;
|
||||
var signup = function () {
|
||||
dataSource.Gender = parseInt(dataSource.Gender);
|
||||
var birthDate = new Date(dataSource.BirthDate);
|
||||
if (birthDate.toJSON() === null)
|
||||
birthDate = new Date();
|
||||
dataSource.BirthDate = birthDate;
|
||||
Everlive.$.Users.register(
|
||||
dataSource.Username,
|
||||
dataSource.Password,
|
||||
dataSource)
|
||||
.then(function () {
|
||||
showAlert("Registration successful");
|
||||
mobileApp.navigate('#welcome');
|
||||
},
|
||||
function (err) {
|
||||
showError(err.message);
|
||||
}
|
||||
);
|
||||
};
|
||||
var show = function () {
|
||||
dataSource = kendo.observable({
|
||||
Username: '',
|
||||
Password: '',
|
||||
DisplayName: '',
|
||||
Email: '',
|
||||
Gender: '1',
|
||||
About: '',
|
||||
Friends: [],
|
||||
BirthDate: new Date()
|
||||
});
|
||||
kendo.bind($('#signup-form'), dataSource, kendo.mobile.ui);
|
||||
};
|
||||
return {
|
||||
show: show,
|
||||
signup: signup
|
||||
};
|
||||
}());
|
||||
|
||||
var activitiesModel = (function () {
|
||||
var activityModel = {
|
||||
id: 'Id',
|
||||
fields: {
|
||||
Text: {
|
||||
field: 'Text',
|
||||
defaultValue: ''
|
||||
},
|
||||
CreatedAt: {
|
||||
field: 'CreatedAt',
|
||||
defaultValue: new Date()
|
||||
},
|
||||
Picture: {
|
||||
fields: 'Picture',
|
||||
defaultValue: ''
|
||||
},
|
||||
UserId: {
|
||||
field: 'UserId',
|
||||
defaultValue: ''
|
||||
},
|
||||
Likes: {
|
||||
field: 'Likes',
|
||||
defaultValue: []
|
||||
}
|
||||
},
|
||||
CreatedAtFormatted: function () {
|
||||
return AppHelper.formatDate(this.get('CreatedAt'));
|
||||
},
|
||||
PictureUrl: function () {
|
||||
return AppHelper.resolvePictureUrl(this.get('Picture'));
|
||||
},
|
||||
User: function () {
|
||||
var userId = this.get('UserId');
|
||||
var user = $.grep(usersModel.users(), function (e) {
|
||||
return e.Id === userId;
|
||||
})[0];
|
||||
return user ? {
|
||||
DisplayName: user.DisplayName,
|
||||
PictureUrl: AppHelper.resolveProfilePictureUrl(user.Picture)
|
||||
} : {
|
||||
DisplayName: 'Anonymous',
|
||||
PictureUrl: AppHelper.resolveProfilePictureUrl()
|
||||
};
|
||||
}
|
||||
};
|
||||
var activitiesDataSource = new kendo.data.DataSource({
|
||||
type: 'everlive',
|
||||
schema: {
|
||||
model: activityModel
|
||||
},
|
||||
transport: {
|
||||
// required by Everlive
|
||||
typeName: 'Activities'
|
||||
},
|
||||
change: function (e) {
|
||||
if (e.items && e.items.length > 0) {
|
||||
$('#no-activities-span').hide();
|
||||
}
|
||||
else {
|
||||
$('#no-activities-span').show();
|
||||
}
|
||||
},
|
||||
sort: { field: 'CreatedAt', dir: 'desc' }
|
||||
});
|
||||
return {
|
||||
activities: activitiesDataSource
|
||||
};
|
||||
}());
|
||||
|
||||
// activities view model
|
||||
var activitiesViewModel = (function () {
|
||||
var activitySelected = function (e) {
|
||||
mobileApp.navigate('views/activityView.html?uid=' + e.data.uid);
|
||||
};
|
||||
var navigateHome = function () {
|
||||
mobileApp.navigate('#welcome');
|
||||
};
|
||||
var logout = function () {
|
||||
AppHelper.logout()
|
||||
.then(navigateHome, function (err) {
|
||||
showError(err.message);
|
||||
navigateHome();
|
||||
});
|
||||
};
|
||||
return {
|
||||
activities: activitiesModel.activities,
|
||||
activitySelected: activitySelected,
|
||||
logout: logout
|
||||
};
|
||||
}());
|
||||
|
||||
// activity details view model
|
||||
var activityViewModel = (function () {
|
||||
return {
|
||||
show: function (e) {
|
||||
var activity = activitiesModel.activities.getByUid(e.view.params.uid);
|
||||
kendo.bind(e.view.element, activity, kendo.mobile.ui);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
// add activity view model
|
||||
var addActivityViewModel = (function () {
|
||||
var $newStatus;
|
||||
var validator;
|
||||
var init = function () {
|
||||
validator = $('#enterStatus').kendoValidator().data("kendoValidator");
|
||||
$newStatus = $('#newStatus');
|
||||
};
|
||||
var show = function () {
|
||||
$newStatus.val('');
|
||||
validator.hideMessages();
|
||||
};
|
||||
var saveActivity = function () {
|
||||
if (validator.validate()) {
|
||||
var activities = activitiesModel.activities;
|
||||
var activity = activities.add();
|
||||
activity.Text = $newStatus.val();
|
||||
activity.UserId = usersModel.currentUser.get('data').Id;
|
||||
activities.one('sync', function () {
|
||||
mobileApp.navigate('#:back');
|
||||
});
|
||||
activities.sync();
|
||||
}
|
||||
};
|
||||
return {
|
||||
init: init,
|
||||
show: show,
|
||||
me: usersModel.currentUser,
|
||||
saveActivity: saveActivity
|
||||
};
|
||||
}());
|
||||
|
||||
return {
|
||||
viewModels: {
|
||||
login: loginViewModel,
|
||||
signup: singupViewModel,
|
||||
activities: activitiesViewModel,
|
||||
activity: activityViewModel,
|
||||
addActivity: addActivityViewModel
|
||||
}
|
||||
};
|
||||
}());
|
После Ширина: | Высота: | Размер: 49 KiB |
После Ширина: | Высота: | Размер: 2.7 KiB |
После Ширина: | Высота: | Размер: 933 B |
После Ширина: | Высота: | Размер: 18 KiB |
|
@ -0,0 +1,629 @@
|
|||
#friendsApp.km-android .km-view
|
||||
{
|
||||
-moz-box-orient:vertical;
|
||||
-webkit-box-orient:vertical;
|
||||
box-orient:vertical;
|
||||
-webkit-flex-direction:column;
|
||||
-ms-flex-direction:column;
|
||||
flex-direction:column;
|
||||
}
|
||||
#friendsApp.km-ios, #friendsApp.km-android, #friendsApp.km-ios .km-list > li
|
||||
{
|
||||
font-weight: normal;
|
||||
}
|
||||
#friendsApp.km-ios .km-listinset, #friendsApp.km-ios .km-listgroupinset .km-list
|
||||
{
|
||||
border: 0;
|
||||
}
|
||||
#friendsApp.km-ios, #friendsApp.km-ios .km-content, #friendsApp.km-android, #friendsApp.km-android .km-content
|
||||
{
|
||||
background-image: url(images/app-bg.jpg);
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
background-color: #4b2113;
|
||||
}
|
||||
#friendsApp.km-ios .form-view .km-listinset, #friendsApp.km-android .form-view .km-listinset
|
||||
{
|
||||
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
#friendsApp.km-android .km-listview-link::after, #friendsApp.km-android .km-listview-label::after
|
||||
{
|
||||
display: block;
|
||||
border-color: rgba(255,255,255,.5);
|
||||
|
||||
}
|
||||
.b-top
|
||||
{
|
||||
background: transparent url(images/border.png) repeat-x 0 0;
|
||||
}
|
||||
.b-bottom
|
||||
{
|
||||
background: transparent url(images/border.png) repeat-x 0 100%;
|
||||
}
|
||||
.b-top, .b-bottom
|
||||
{
|
||||
background-repeat: repeat-x;
|
||||
background-color: transparent;
|
||||
}
|
||||
/* Buttons */
|
||||
#friendsApp.km-android .km-leftitem
|
||||
{
|
||||
left: 0;
|
||||
}
|
||||
#friendsApp.km-android .km-rightitem
|
||||
{
|
||||
right: 0;
|
||||
}
|
||||
#friendsApp.km-ios .km-button, #friendsApp.km-android .km-button
|
||||
{
|
||||
background-color: #ff6c00;
|
||||
}
|
||||
#friendsApp.km-ios .km-button, #friendsApp.km-ios .km-back::before
|
||||
{
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
}
|
||||
#friendsApp.km-ios .km-back, #friendsApp.km-android .km-back
|
||||
{
|
||||
background-color: #a36a57;
|
||||
}
|
||||
#friendsApp.km-ios .km-back
|
||||
{
|
||||
border-top: 0;
|
||||
}
|
||||
#friendsApp.km-ios .km-back::before
|
||||
{
|
||||
left: -0.34em;
|
||||
top: .18em;
|
||||
height: .92em;
|
||||
border-bottom-color: #6e5852;
|
||||
}
|
||||
#friendsApp.km-android .km-button
|
||||
{
|
||||
color: #fff;
|
||||
}
|
||||
#friendsApp.km-android .km-navbar .km-button
|
||||
{
|
||||
height: 1.6em;
|
||||
}
|
||||
.km-button.btn-big
|
||||
{
|
||||
padding: .5em .5em;
|
||||
font-size: 1.2em;
|
||||
font-weight: normal;
|
||||
}
|
||||
.km-button.btn-big
|
||||
{
|
||||
min-width: 7em;
|
||||
}
|
||||
#friendsApp.km-ios .welcome-scrn .btn-signup, #friendsApp.km-android .welcome-scrn .btn-signup
|
||||
{
|
||||
background-color: #272727;
|
||||
}
|
||||
.btn-login::before, .btn-signup::before, .btn-login-fb::before
|
||||
{
|
||||
display: block;
|
||||
content: " ";
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
position: absolute;
|
||||
top: .6em;
|
||||
|
||||
background-image: url(images/sprite.png);
|
||||
background-repeat: no-repeat;
|
||||
background-size: 3em auto;
|
||||
background-color: transparent;
|
||||
background-position: -100px -100px;
|
||||
}
|
||||
.btn-login::before
|
||||
{
|
||||
background-position: 0 -3em;
|
||||
}
|
||||
.btn-login-fb::before
|
||||
{
|
||||
background-position: 0 -13.9em;
|
||||
}
|
||||
.btn-signup::before
|
||||
{
|
||||
background-position: 0 -4.3em;
|
||||
}
|
||||
.btn-login-fb{
|
||||
|
||||
background-color:#165396 !important;
|
||||
}
|
||||
.sngl-btn-wrp
|
||||
{
|
||||
margin: 2em 1em;
|
||||
text-align: center;
|
||||
}
|
||||
/*App Header*/
|
||||
#friendsApp.km-ios .km-navbar
|
||||
{
|
||||
background-image: none;
|
||||
background-color: rgba(0,0,0,0.2);
|
||||
border-bottom: 1px solid #a78675;
|
||||
}
|
||||
#friendsApp.km-ios .km-view-title
|
||||
{
|
||||
font-weight: normal;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
}
|
||||
#friendsApp.km-android .km-view-title
|
||||
{
|
||||
display: block;
|
||||
visibility: visible;
|
||||
margin: 0;
|
||||
padding: .5em 1em;
|
||||
font-size: 1.4rem;
|
||||
font-weight: normal;
|
||||
background-color: #222;
|
||||
border-bottom: 2px solid #fe8a3d;
|
||||
line-height: 1.2;
|
||||
}
|
||||
.km-root #friendsApp.km-android .km-navbar
|
||||
{
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
#friendsApp.km-android .km-navbar .km-icon
|
||||
{
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
}
|
||||
#friendsApp.km-android .km-navbar
|
||||
{
|
||||
background-color: #272727;
|
||||
}
|
||||
#friendsApp.km-android .km-rightitem .km-button
|
||||
{
|
||||
background-color: #e45600;
|
||||
padding-left: 1.2rem;
|
||||
padding-right: 1.2rem;
|
||||
}
|
||||
/* App Footer */
|
||||
.welcome-scrn .km-footer
|
||||
{
|
||||
padding: 1.1em 0;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
}
|
||||
#friendsApp.km-ios .welcome-scrn .km-footer
|
||||
{
|
||||
background-color: rgba(0,0,0,0.2);
|
||||
}
|
||||
#friendsApp.km-android .welcome-scrn .km-footer
|
||||
{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
background-color: #272727;
|
||||
}
|
||||
/* Forms */
|
||||
#friendsApp.km-android .form-view .km-list > li
|
||||
{
|
||||
padding: 0;
|
||||
}
|
||||
.form-view .km-listview label
|
||||
{
|
||||
padding: .5rem 1rem;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 40%;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
#friendsApp.km-ios .form-view .km-listview label
|
||||
{
|
||||
background-color: #F4F4F4;
|
||||
border-right: 1px solid #e0dfdf;
|
||||
font-weight: bold;
|
||||
}
|
||||
#friendsApp.km-android .form-view .km-listview label
|
||||
{
|
||||
background-color: #323232;
|
||||
border-right: 1px solid #404040;
|
||||
}
|
||||
.form-view .km-listview .txtarea-wrp label
|
||||
{
|
||||
height: 7rem;
|
||||
}
|
||||
#friendsApp.km-ios .form-view .km-listview input
|
||||
{
|
||||
}
|
||||
.km-list .txtarea-wrp
|
||||
{
|
||||
height: 7rem;
|
||||
}
|
||||
textarea
|
||||
{
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
|
||||
line-height: normal;
|
||||
font-family: inherit;
|
||||
outline: 0;
|
||||
border: 0;
|
||||
font-size: 1.1rem;
|
||||
padding: .6em;
|
||||
}
|
||||
.share-view textarea
|
||||
{
|
||||
width: 100%;
|
||||
height: 8rem;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.km-list textarea
|
||||
{
|
||||
right: 0;
|
||||
top: 0;
|
||||
height: 6.5rem;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
background: transparent;
|
||||
overflow: auto;
|
||||
}
|
||||
#friendsApp .km-list textarea
|
||||
{
|
||||
margin-right: 0;
|
||||
}
|
||||
.km-list input[type="password"], .km-list input[type="search"], .km-list input[type="number"], .km-list input[type="tel"], .km-list input[type="url"], .km-list input[type="email"], .km-list input[type="text"]:not(.k-input), .km-list input[type="month"], .km-list input[type="color"], .km-list input[type="week"], .km-list input[type="date"], .km-list input[type="time"], .km-list input[type="datetime"], .km-list select:not([multiple]), .km-list .k-dropdown, .km-list textarea
|
||||
{
|
||||
width: 56%;
|
||||
}
|
||||
#friendsApp.km-ios .km-list input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="checkbox"]):not([type="radio"]):not(.k-input):not(.k-button), #friendsApp.km-ios .km-list select:not([multiple]), #friendsApp.km-ios .km-list .k-dropdown-wrap, #friendsApp.km-ios .km-list textarea
|
||||
{
|
||||
color: #666;
|
||||
}
|
||||
#friendsApp.km-android .km-list input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="checkbox"]):not([type="radio"]):not(.k-input):not(.k-button), #friendsApp.km-android .km-list select:not([multiple]), #friendsApp.km-android .km-list .k-dropdown-wrap, #friendsApp.km-android textarea
|
||||
{
|
||||
color: #ccc;
|
||||
background-image: none;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.validation, .k-invalid-msg
|
||||
{
|
||||
display: none;
|
||||
margin: 1rem 0 0;
|
||||
padding: 0 1rem;
|
||||
color: #f00;
|
||||
}
|
||||
.share-form-wrp, .user-status-wrp, .take-avatar-wrp
|
||||
{
|
||||
margin: 1rem;
|
||||
}
|
||||
/* List widget */
|
||||
.no-items-msg
|
||||
{
|
||||
margin: 1.5rem !important;
|
||||
font-size: 1rem;
|
||||
color: #ffc;
|
||||
}
|
||||
.no-items-msg b
|
||||
{
|
||||
font-size: 1.2rem;
|
||||
font-weight: normal;
|
||||
}
|
||||
#friendsApp.km-ios .km-listinset, #friendsApp.km-ios .km-listgroupinset .km-list,
|
||||
#friendsApp.km-ios .km-listinset > li:first-child, #friendsApp.km-ios .km-listgroupinset .km-list > li:first-child,
|
||||
#friendsApp.km-ios .km-listinset > li:last-child, #friendsApp.km-ios .km-listgroupinset .km-list > li:last-child
|
||||
{
|
||||
border-radius: 0;
|
||||
}
|
||||
#friendsApp.km-ios .form-view .km-list > li
|
||||
{
|
||||
padding: 0;
|
||||
background-color: #fff;
|
||||
}
|
||||
#friendsApp.km-ios .form-view .km-list > li
|
||||
{
|
||||
min-height: 2.3em;
|
||||
}
|
||||
#friendsApp.km-android .form-view .km-list
|
||||
{
|
||||
background-color: #222;
|
||||
}
|
||||
#friendsApp.km-android .form-view .km-listinset
|
||||
{
|
||||
margin-top: 1em;
|
||||
}
|
||||
/* Welcome screen */
|
||||
.welcome-scrn h1
|
||||
{
|
||||
position: relative;
|
||||
margin: 4em 2em 1.5em;
|
||||
margin-left: 1em;
|
||||
margin-right:1em;
|
||||
color: #fff;
|
||||
text-align: right;
|
||||
line-height: .9;
|
||||
font-size: 1.5em;
|
||||
font-weight: normal;
|
||||
color: #e6e6e6;
|
||||
}
|
||||
.welcome-scrn h1 b
|
||||
{
|
||||
display: block;
|
||||
font-size: 3em;
|
||||
text-shadow: 1px 2px 3px #000;
|
||||
color: #fff;
|
||||
}
|
||||
.welcome-scrn h1 b::before
|
||||
{
|
||||
display: block;
|
||||
content: " ";
|
||||
width: 1.1em;
|
||||
height: 1em;
|
||||
|
||||
position: absolute;
|
||||
top: -.8em;
|
||||
right: .3em;
|
||||
|
||||
background-image: url(images/sprite.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: 0 0;
|
||||
background-size: cover;
|
||||
background-color: transparent;
|
||||
|
||||
}
|
||||
.welcome-scrn .group-wrp
|
||||
{
|
||||
margin: 1.5em 2em 0;
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
text-align: center;
|
||||
}
|
||||
.welcome-scrn .group-wrp li
|
||||
{
|
||||
margin: 1.5em 0 0;
|
||||
padding: 1.5em 0 0;
|
||||
}
|
||||
.welcome-scrn .group-wrp li:first-child
|
||||
{
|
||||
margin-top: 0;
|
||||
padding-top: 0;
|
||||
}
|
||||
/* Activities */
|
||||
.activities-view .km-list
|
||||
{
|
||||
margin: 1rem;
|
||||
background-color: transparent;
|
||||
}
|
||||
.activities-view .km-list.comments-list
|
||||
{
|
||||
margin-top: 0;
|
||||
}
|
||||
#friendsApp .activities-view .km-list > li
|
||||
{
|
||||
margin-bottom: .2em;
|
||||
padding: 1rem 0;
|
||||
border-bottom: 0;
|
||||
background: transparent url(images/border.png) repeat-x 0 0;
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
}
|
||||
.activities-view .km-list.comments-list > li
|
||||
{
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
.activities-view .km-list > li:first-child
|
||||
{
|
||||
padding-top: 0;
|
||||
background-image: none;
|
||||
}
|
||||
#friendsApp.km-ios .activities-view .km-list > li
|
||||
{
|
||||
border: 0;
|
||||
}
|
||||
#friendsApp.km-android .activities-view .km-list > li
|
||||
{
|
||||
}
|
||||
.activities-view .km-list > li >img, .user-status-wrp img
|
||||
{
|
||||
float: left;
|
||||
}
|
||||
.user-info
|
||||
{
|
||||
padding: 1rem;
|
||||
border-bottom: 1px solid #ccc;
|
||||
line-height: 1.1 !important;
|
||||
background-color: #fff;
|
||||
font-size: 1rem;
|
||||
}
|
||||
.user-status-wrp .user-info, .share-form-wrp .user-info
|
||||
{
|
||||
padding: 0;
|
||||
height: 5rem;
|
||||
}
|
||||
.user-status-wrp .user-info h2, .share-form-wrp .user-info h2
|
||||
{
|
||||
padding-top: 1.7rem;
|
||||
}
|
||||
.user-info h2
|
||||
{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 1.3rem;
|
||||
color: #000;
|
||||
}
|
||||
.user-info h2 a
|
||||
{
|
||||
color: #000 !important;
|
||||
}
|
||||
.user-info img
|
||||
{
|
||||
float: left;
|
||||
margin-right: 1rem;
|
||||
background-color: #ccc;
|
||||
width: 5rem;
|
||||
height: 5rem;
|
||||
}
|
||||
.user-info time
|
||||
{
|
||||
font-size: .8rem;
|
||||
color: #7f7f7f;
|
||||
}
|
||||
.user-share
|
||||
{
|
||||
padding: 1rem;
|
||||
background-color: #fff;
|
||||
clear: both;
|
||||
color: #000 !important;
|
||||
font-size: 1rem;
|
||||
line-height: 1.4;
|
||||
|
||||
-webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.5);
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
.share-view .user-share
|
||||
{
|
||||
margin-bottom: 1rem;
|
||||
padding: 0 0 .5rem;
|
||||
}
|
||||
#friendsApp.km-android .activities-view .user-share-txt
|
||||
{
|
||||
font-size: 1rem;
|
||||
color: #000 !important;
|
||||
}
|
||||
#friendsApp.km-ios .km-detail
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Tablets*/
|
||||
.km-tablet .km-header
|
||||
{
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.km-tablet .km-button.btn-big
|
||||
{
|
||||
min-width: 10em;
|
||||
font-size: 2.5em;
|
||||
}
|
||||
.km-tablet .welcome-scrn .group-wrp
|
||||
{
|
||||
padding-top: 2.5em;
|
||||
padding-bottom: 2.5em;
|
||||
}
|
||||
.km-tablet .form-view .km-listview label
|
||||
{
|
||||
padding: 1rem 1.5rem;
|
||||
font-size: 1.5rem;
|
||||
|
||||
}
|
||||
.km-tablet .km-ios .km-list input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="checkbox"]):not([type="radio"]):not(.k-input):not(.k-button), .km-tablet .km-ios .km-list select:not([multiple]), .km-tablet .km-ios .km-list .k-dropdown-wrap,
|
||||
.km-tablet.km-root input:not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="checkbox"]):not([type="radio"]):not(.k-input):not(.k-button), .km-tablet.km-root select:not([multiple]), .km-tablet.km-root .k-dropdown,
|
||||
.km-tablet textarea
|
||||
{
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.km-tablet .km-listinset
|
||||
{
|
||||
margin: 2em;
|
||||
}
|
||||
.km-tablet .main-menu-view .km-list > li
|
||||
{
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.km-tablet .profile-view h2, .km-tablet .activities-view h3
|
||||
{
|
||||
margin-left: 2rem;
|
||||
margin-right: 2rem;
|
||||
margin-bottom: -1rem;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.km-tablet .km-ios .km-list.profile-about-txt > li, .km-tablet .km-android .km-list.profile-about-txt > li
|
||||
{
|
||||
padding: .5rem 1rem;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
.km-tablet .no-items-msg
|
||||
{
|
||||
margin: 2.5rem !important;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.km-tablet .no-items-msg b
|
||||
{
|
||||
font-size: 2rem;
|
||||
}
|
||||
.km-tablet .user-info h2
|
||||
{
|
||||
font-size: 1.7rem;
|
||||
}
|
||||
.km-tablet .user-info time
|
||||
{
|
||||
font-size: .95rem;
|
||||
}
|
||||
.km-tablet .user-share
|
||||
{
|
||||
padding: 2rem;
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
.km-tablet .share-view textarea
|
||||
{
|
||||
padding: 0;
|
||||
}
|
||||
.km-tablet .social-info a
|
||||
{
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
.km-tablet .activities-view .km-list, .km-tablet .share-form-wrp, .km-tablet .user-status-wrp
|
||||
{
|
||||
margin: 2rem;
|
||||
}
|
||||
/* Android*/
|
||||
.km-tablet .km-android .activities-view .user-share-txt
|
||||
{
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
.km-tablet .km-android .welcome-scrn h1
|
||||
{
|
||||
font-size: 3em;
|
||||
}
|
||||
.km-tablet #friendsApp.km-android .km-navbar .km-button
|
||||
{
|
||||
height: 1.4em;
|
||||
}
|
||||
/* iPad */
|
||||
.km-tablet #friendsApp.km-ios .km-view-title
|
||||
{
|
||||
box-shadow: none;
|
||||
-webkit-box-shadow: none;
|
||||
text-shadow: none;
|
||||
color: #fff;
|
||||
}
|
||||
.km-tablet .km-ios .km-content
|
||||
{
|
||||
background-color: transparent;
|
||||
}
|
||||
.km-tablet .km-ios :not(.km-tabstrip):not(.km-buttongroup) > .km-button
|
||||
{
|
||||
background-color: #ff6c00;
|
||||
}
|
||||
.km-tablet .km-ios :not(.km-tabstrip):not(.km-buttongroup) > .km-button.btn-signup
|
||||
{
|
||||
background-color: #272727;
|
||||
}
|
||||
.km-tablet .km-ios :not(.km-tabstrip):not(.km-buttongroup) > .km-button.km-back
|
||||
{
|
||||
background-color: #A36A57;
|
||||
}
|
||||
.km-tablet .km-ios .welcome-scrn h1
|
||||
{
|
||||
font-size: 3.5em;
|
||||
}
|
||||
.km-tablet .km-ios .profile-avatar-name h1
|
||||
{
|
||||
margin-top: 2rem;
|
||||
font-size: 1.7em;
|
||||
width: auto;
|
||||
}
|
||||
.km-tablet .km-ios .profile-view .km-list.def-list .lbl, .km-tablet .km-ios .profile-view .km-list.def-list .val
|
||||
{
|
||||
font-size: 1.4em;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
<div data-role="view" id="view-all-activities" data-layout="default" class="activities-view" data-model="app.viewModels.activities">
|
||||
<header data-role="header">
|
||||
<div data-role="navbar">
|
||||
Activities
|
||||
<a class="nav-button" data-align="left" data-role="backbutton" data-click="app.viewModels.activities.logout">Log out</a>
|
||||
<a class="nav-button" data-align="right" data-role="button" data-icon="add" href="views/addActivityView.html"></a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<ul id="activities-listview" data-style="inset" data-role="listview" data-template="activityTemplate"
|
||||
data-bind="source: activities"></ul>
|
||||
<p id="no-activities-span" hidden="hidden" class="no-items-msg">
|
||||
<b>You have no posts yet.</b><br /><br />Tap on the plus sign and share what's on your mind.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Activities ListView Template -->
|
||||
<script type="text/x-kendo-template" id="activityTemplate">
|
||||
<div data-role="touch" data-bind="events: { tap: activitySelected }">
|
||||
<div class="user-info">
|
||||
<h2>${User().DisplayName}</h2>
|
||||
<time class="timeSpan">${CreatedAtFormatted()}</time>
|
||||
</div>
|
||||
<div class="user-share">
|
||||
<a class="user-share-txt">${Text}</a>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
|
@ -0,0 +1,20 @@
|
|||
<div data-role="view" id="single-activity" data-layout="default" class="activities-view" data-show="app.viewModels.activity.show">
|
||||
<header data-role="header">
|
||||
<div data-role="navbar">
|
||||
Activity
|
||||
<a class="nav-button" data-align="left" data-role="backbutton">Back</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div id="status-container" class="user-status-wrp" data-role="listview" data-style="inset">
|
||||
<div class="user-info">
|
||||
<img data-bind="attr:{src: User().PictureUrl}" alt="styles/images/avatar.png" />
|
||||
<h2 id="personName" data-bind='text: User().DisplayName'></h2>
|
||||
<time id="activityDate" data-bind="text: CreatedAtFormatted"></time>
|
||||
</div>
|
||||
<img id="picture" data-bind="attr:{src: PictureUrl()}" width="100%"/>
|
||||
<div class="user-share">
|
||||
<span id="activityText" data-bind="text: Text" class="user-share-txt"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,20 @@
|
|||
<div data-role="view" id="share" data-layout="default" data-transition="overlay:down" class="share-view"
|
||||
data-init="app.viewModels.addActivity.init" data-show="app.viewModels.addActivity.show" data-model="app.viewModels.addActivity">
|
||||
<header data-role="header">
|
||||
<div data-role="navbar">
|
||||
Activity
|
||||
<a class="nav-button" data-align="left" data-role="backbutton">Cancel</a>
|
||||
<a class="nav-button" data-align="right" data-role="button" data-bind="click: saveActivity">Post</a>
|
||||
</div>
|
||||
</header>
|
||||
<div id="enterStatus" class="share-form-wrp">
|
||||
<div class="user-info">
|
||||
<img data-bind="attr:{src: me.get('data').PictureUrl}" alt="styles/images/avatar.png" />
|
||||
<h2 data-bind="text: me.get('data').DisplayName">Me</h2>
|
||||
</div>
|
||||
<div class="user-share">
|
||||
<textarea id="newStatus" placeholder="What's on your mind?" required validationMessage="Comment text is required!"></textarea>
|
||||
<div id="newCommentValidation" class="validation">Comment text is required!</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,45 @@
|
|||
<div data-role="view" id="signup" data-layout="default" class="form-view" data-model="app.viewModels.signup" data-show="app.viewModels.signup.show">
|
||||
<header data-role="header">
|
||||
<div data-role="navbar">
|
||||
Sign up
|
||||
<a class="nav-button" data-align="left" data-role="backbutton" href="#welcome">Back</a>
|
||||
</div>
|
||||
</header>
|
||||
<form>
|
||||
<ul id="signup-form" data-role="listview" data-style="inset">
|
||||
<li>
|
||||
<label for="signupName">Name</label>
|
||||
<input type="text" id="signupName" data-bind="value: DisplayName"/>
|
||||
</li>
|
||||
<li>
|
||||
<label for="signupEmail">Email</label>
|
||||
<input type="email" id="signupEmail" data-bind="value: Email"/>
|
||||
</li>
|
||||
<li>
|
||||
<label for="signupUsername">Username</label>
|
||||
<input type="text" id="signupUsername" data-bind="value: Username"/>
|
||||
</li>
|
||||
<li>
|
||||
<label for="signupPassword">Password</label>
|
||||
<input type="password" id="signupPassword" data-bind="value: Password"/>
|
||||
</li>
|
||||
<li>
|
||||
<label for="signupBirthDatePicker">Birth date</label>
|
||||
<input type="date" id="signupBirthDatePicker" data-bind="value: BirthDate"/>
|
||||
</li>
|
||||
<li>
|
||||
<label for="signupGenderPicker">Gender</label>
|
||||
<select id='signupGenderPicker' data-bind="value: Gender">
|
||||
<option value="1">Male</option>
|
||||
<option value="2">Female</option>
|
||||
</select>
|
||||
</li>
|
||||
<li class="txtarea-wrp">
|
||||
<label for="signupInfo">About</label> <textarea id="signupInfo" data-bind="value: About">User account created from the hybrid app.</textarea>
|
||||
</li>
|
||||
</ul>
|
||||
</form>
|
||||
<div class="sngl-btn-wrp">
|
||||
<a class="btn-signup btn-big" data-role="button" data-bind="click: signup">Register</a>
|
||||
</div>
|
||||
</div>
|