blob: 72f5780304fd39191f2ac2d6788c4d410fcc0f85 [file] [log] [blame]
<!DOCTYPE html>
<meta charset="utf-8" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html"
xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Apigee App Services Admin Portal </title>
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="stylesheet" type="text/css" href="css/usergrid.css"/>
<script src="./config.js" type="text/javascript"></script>
<script src="../config.js" type="text/javascript"></script>
<script src="js/app/usergrid.appSDK.js" type="text/javascript"></script>
<script src="js/app/session.js" type="text/javascript"></script>
<script src="js/app/quickLogin.js" type="text/javascript"></script>
<script src="js/app/params.js" type="text/javascript"></script>
<script src="js/app/sso.js" type="text/javascript"></script>
<script type="text/javascript">
/*
Quick Login: script loads the minimal amount of resources to be able to detect if the user is logged in
and if not, send him directly to the SSO page
*/
Usergrid.apiUrl = Usergrid.overrideUrl;
Usergrid.Params.parseParams();
Usergrid.SSO.setUseSSO(Usergrid.Params.queryParams.use_sso);
Usergrid.QuickLogin.init(Usergrid.Params.queryParams,Usergrid.userSession.loggedIn(),
Usergrid.SSO.usingSSO());
</script>
<script src="js/lib/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="js/lib/underscore-min.js" type="text/javascript"></script>
<script src="js/lib/backbone.js" type="text/javascript"></script>
<script src="js/lib/jquery-ui-1.8.18.min.js" type="text/javascript"></script>
<script src="js/lib/jquery.jsonp-2.3.1.min.js" type="text/javascript"></script>
<script src="js/lib/jquery.dataset.min.js" type="text/javascript"></script>
<script src="js/lib/jquery.tmpl.min.js" type="text/javascript"></script>
<script src="js/lib/jquery.dform-0.1.3.min.js" type="text/javascript"></script>
<script src="js/lib/jquery.ui.timepicker.min.js" type="text/javascript"></script>
<script src="js/lib/jquery.ui.statusbar.min.js" type="text/javascript"></script>
<script src="js/lib/date.min.js" type="text/javascript"></script>
<script src="js/app/helpers.js" type="text/javascript"></script>
<script src="js/app/navigation.js" type="text/javascript"></script>
<script src="js/app/console.js" type="text/javascript"></script>
<script src="js/app/ui/ui.js" type="text/javascript"></script>
</head>
<body>
<div id="alert-error-message-container" class="alert alert-error" style="width:96.5%; z-index: 99; position: fixed; top: 84px;display: none;">
<a href="#" class="close" data-dismiss="alert">&times;</a>
<strong id="alert-error-header"></strong>
<span id="alert-error-message"></span>
</div>
<div id="header">
<div class="column-in">
<div data-dropdown="dropdown" class="main-nav navbar navbar-fixed-top">
<div class="header-menus">
<div id="publicMenu" class="navbar-inner">
<div class="left-header">
<h1 class="apigee"><a href="https://apigee.com" target="_blank"><img src="images/logo-white.png">apigee</a></h1>
<h2 id="ActualPage1">Admin Portal</h2>
</div>
<div class="right-header">
<ul id="loginMenu" class="nav secondary-nav">
<li><a id="login-link" ><i class="icon-user"></i> Login</a></li>
<li><a id="signup-link" > Sign Up</a></li>
<li><a id="forgot-password-link" ><i class="icon-lock"></i> Forgot Password</a></li>
</ul>
</div>
</div>
<div class="navbar-inner privateMenu">
<div class="left-header">
<h1 class="apigee"><a href="https://apigee.com" target="_blank"><img class="logo" src="images/logo-white.png">apigee</a></h1>
<ul class="nav">
<li class="portal-name" ><a class="go-home">App Services</a></li>
<!-- <li><a href="app/index.html" target="_blank"> Try the New App Services</a></li> -->
</ul>
</div>
<div class="right-header">
<ul id="profileMenu" class="nav secondary-nav">
<li ><a href="https://accounts.apigee.com/accounts/dashboard" target="_blank">Dashboard</a></li>
<li class="dropdown">
<a id="account-link1" class="dropdown-toggle" data-toggle="dropdown" ><span id="userEmail">test</span> <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a id="account-link" ><i class="icon-user"></i> Profile</a></li>
<li><a id="logout-link" ><i class="icon-off"></i> Sign Out</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="api-activity" class="alert">Loading...</div>
</div>
</div>
<div class="sub-nav navbar navbar-fixed privateMenu" style="display: none">
<div class="left-header nav pull-left">
<li id="organizations-menu" class="dropdown">
<a id="console-links" class="dropdown-toggle" data-toggle="dropdown">
<i class="icon-folder-close icon-white"></i>
<span>Organizations</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a >loading...</a></li>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">
<i class="icon-cog icon-white"></i>
<span id="nav-app-name">App Name</span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu applications-menu" >
<li><a >loading apps...</a></li>
</ul>
</li>
</div>
<div class="right-header pull-right">
<ul class="nav">
<li><a href="http://community.apigee.com/content/apigee-customer-support" target="_blank"> Support</a></li>
<li><a href="http://apigee.com/docs/app_services" target="_blank"> Docs</a></li>
<li><a href="http://apigee.com/docs/usergrid/codesamples" target="_blank">Examples & SDKs</a></li>
<li><a href="https://groups.google.com/forum/?fromgroups#!forum/usergrid" target="_blank"> Google Group</a></li>
<li><a href="http://apigee.com/about/products/usergrid" target="_blank"> About</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="pages">
<div id="message-page" class="container-fluid">
<div id="message-area" class="alert alert-info curl-data" style="padding: 20px;">
Whoops! We encounterd an error connecting to the API. Press refresh to try loading the Admin Portal again.
<button id="reload-button" class="btn btn-primary" style="float: right; margin: -4px 30px;" onClick="window.location.reload()">Refresh</button>
</div>
</div>
<div id="login-page" class="container-fluid">
<div class="row">
<div id="login-area" class="span6 offset1">
<div id="login-message" class="alert alert-error">
<strong>ERROR</strong>: Your details were incorrect.<br/>
</div>
<div class="console-section">
<div class="well thingy"><span style="margin-left: 30px" class="title">Login</span></div>
<form name="login-form" id="login-form" class="form-horizontal">
<div class="control-group">
<label class="control-label" for="login-email">Email:</label>
<div class="controls">
<input type="text" name="login-email" id="login-email" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="login-password">Password:</label>
<div class="controls">
<input type="password" name="login-password" id="login-password" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<div class="controls">
<input type="checkbox" value="true" id="remember" name="remember"/>
<span>Remember me</span>
</div>
</div>
<div class="form-actions">
<div class="submit">
<input type="submit" name="button-login" id="button-login" value="Log In" class="btn btn-usergrid"/>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div id="post-signup-page" class="container-fluid">
<div class="row">
<div id="login-area" class="span6 offset1">
<div class="console-section well thingy">
<span class="title">We're holding a seat for you!</span>
<br /><br />
<p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we're ready for you!</p>
<p>In the mean time, you can stay up to date with App Services on our <a href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">Google Group</a>.</p>
</div>
</div>
</div>
</div>
<div id="signup-page" class="container-fluid">
<div class="row">
<div id="signup-area" class="span6 offset1">
<div id="signup-message" class="alert alert-error"></div>
<div class="console-section">
<div class="well thingy"><span class="title">Register</span> </div>
<form name="signup-form" id="signup-form" onsubmit="return false;" class="form-horizontal">
<div class="control-group">
<label class="control-label" for="signup-organization-name">Organization Account</label>
<div class="controls">
<input type="text" name="signup-organization-name" id="signup-organization-name" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="signup-username">Username</label>
<div class="controls">
<input type="text" name="signup-username" id="signup-username" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="signup-name">Name </label>
<div class="controls">
<input type="text" name="signup-name" id="signup-name" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="signup-email">Email </label>
<div class="controls">
<input type="text" name="signup-email" id="signup-email" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="signup-password">Password </label>
<div class="controls">
<input type="password" name="signup-password" id="signup-password" class="" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="signup-password-confirm">Confirm </label>
<div class="controls">
<input type="password" name="signup-password-confirm" id="signup-password-confirm" class="" value="" size="20"/>
</div>
</div>
<div class="form-actions">
<div class="submit">
<input type="button" name="button-signup" id="button-signup" value="Sign up" class="btn btn-usergrid"/>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div id="forgot-password-page" class="container">
<iframe class="container"></iframe>
</div>
<div id="console-page" class="">
<div id="main1">
<div id="main2">
<div id="left" style="">
<div class="column-in">
<div id="sidebar-menu" style="padding-top: 10px;">
<ul id="application-panel-buttons" class="nav nav-list">
<li id="application-panel-button-dashboard"><a href="#"><i class="icon-th"></i> <span class="nav-menu-text">Org Overview</span></a></li>
<li id="application-panel-button-dashboard"><a href="#dashboard" id="dashboard-link"><i class="icon-th"></i> <span class="nav-menu-text">App Overview</span></a></li>
<li id="users-link-li"><a href="#users" id="users-link"><i class="icon-user"></i> <span class="nav-menu-text">User Management</span></a></li>
<li><a href="#collections" id="collections-link"><i class="icon-book"></i> <span class="nav-menu-text">Data Explorer</span></a></li>
<li><a style="display:none" href="#notifications" id="notifications-link"><!--i class="push-notifications-icon"></i--><span style="color: red; font-weight: bold; margin-left: -6px;padding-right: 3px;">New!</span>Notifications</a></li>
<li><a href="#activities" id="activities-link"><i class="icon-calendar"></i> <span class="nav-menu-text">Activities</span></a></li>
<li><a href="#analytics" id="analytics-link"><i class="icon-signal"></i> <span class="nav-menu-text">Analytics</span></a></li>
<li><a href="#properties" id="properties-link"><i class="wrench "></i><span class="nav-menu-text">App Settings</span></a></li>
<li><a href="#shell" id="shell-link"><i class="icon-warning-sign"></i> <span class="nav-menu-text">Shell</span></a></li>
</ul>
</div>
</div>
</div>
<div id="left2" style="display: none;">
<div id="left2-content" class="column-in">
<div id="sidebar-menu2" style="padding-top: 10px; display: none;">
<p class="panel-desc">Data related to your application end-users.</p>
<hr style="margin: 0 0 0 10px; width:130px;">
<ul id="app-end-users-buttons" class="nav nav-list">
<li><a href="#users" id="users-sublink"><span class="nav-menu-text">Users</span></a></li>
<li><a href="#groups" id="groups-sublink"><span class="nav-menu-text">Groups</span></a></li>
<li><a href="#roles" id="roles-sublink"> <span class="nav-menu-text">Roles</span></a></li>
</ul>
</div>
<div id="left-collections-menu" style="display: none;">
<p class="panel-desc">Explore your application's data collections.</p>
<hr class="col-divider">
<div id="collections-menu" style="padding: 10px">
<a class="btn" data-toggle="modal" href="#dialog-form-new-collection">Add Collection</a>
</div>
<hr class="col-divider">
<div id="left-collections-content"></div>
</div>
<div id="left-notifications-menu" style="display: none;">
<p class="panel-desc">Configure and send push notifications to your app.</p>
<hr class="col-divider">
<ul id="notification-buttons" class="nav nav-list" style="margin-bottom: 5px;">
<li><a href="#sendNotification" id="sendNotification-sublink"><span class="nav-menu-text">Send Notification</span></a></li>
<li><a href="#messageHistory" id="messageHistory-sublink"><span class="nav-menu-text">Notification History</span></a></li>
<li><a href="#configuration" id="configuration-sublink"> <span class="nav-menu-text">Configuration</span></a></li>
<li><a href="#getStarted" id="getStarted-sublink"> <span class="nav-menu-text">Getting Started</span></a></li>
</ul>
</div>
</div>
</div>
<div id="middle">
<div class="column-in" style="padding-top: 10px;">
<div id="console-panels" class="container-fluid">
<div id="organization-panel" style="display: none">
<div id="console-panel-nav-bar"></div>
<div id="home-messages" class="alert" style="display: none;"></div>
<div class="console-section">
<div class="well thingy"><span class="title"> Current Organization </span></div>
<table id="organizations-table" class="hideable table">
<tbody></tbody>
</table>
</div>
<div class="org-page-sections">
<div class="well thingy"><span class="title" style="float: left;"> Applications </span>
<div class="bar">
<a class="btn button bottom-space" data-toggle="modal" href="#dialog-form-new-application"> New Application</a>
</div>
</div>
<table id="organization-applications-table" class="hideable table">
<tbody></tbody>
</table>
</div>
<div class="org-page-sections">
<div class="well thingy">
<span class="title"> Activities </span>
</div>
<table id="organization-feed-table" class="hideable table">
<tbody></tbody>
</table>
</div>
<div class="org-page-sections">
<div class="well thingy"><span class="title" style="float: left;"> Organization's Administrators </span>
<div class="bar">
<a class="btn button bottom-space" data-toggle="modal" href="#dialog-form-new-admin"> New Administrator</a>
</div>
</div>
<table id="organization-admins-table" class="hideable table">
<tbody></tbody>
</table>
</div>
<div class="org-page-sections">
<div class="well thingy"><span class="title" style="float: left;"> Organization API Credentials </span>
<div class="bar">
<a class="btn button bottom-space" onclick="Usergrid.console.newOrganizationCredentials(); return false;"> Regenerate Credentials</a>
</div>
</div>
<table class="hideable table">
<tbody>
<tr>
<td>
<span class="span2">Client ID</span>
</td>
<td>
<span id="organization-panel-key">...</span>
</td>
</tr>
<tr>
<td>
<span class="span2">Client Secret</span>
</td>
<td>
<span id="organization-panel-secret">...</span>
</td>
</tr>
</tbody>
</table>
</div>
<form id="dialog-form-force-new-application" class="modal hide fade" action="#">
<div class="modal-header">
<h4>No applications for this organization</h4>
</div>
<div class="modal-body">
<p class="validateTips">All organizations require at least one application. Please create one.</p>
<fieldset>
<div class="control-group">
<label for="new-application-name">Name</label>
<div class="controls">
<input type="text" name="name" id="" value="" class="input-xlarge new-application-name"/>
<p class="help-block">Length of name must be between 4 and 80</p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-new-admin" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new administrator</h4>
</div>
<div class="modal-body">
<fieldset>
<div class="control-group">
<label for="new-admin-email">Email</label>
<div class="controls">
<input type="text" name="email" id="new-admin-email" value="" class="input-xlarge"/>
<input type="hidden" name="password" id="new-admin-password" value=""/>
<input type="hidden" name="" id="new-admin-password-confirm" value=""/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<div id="dashboard-panel" style="display: none">
<div class="console-section">
<div class="well thingy">
<span class="title"> Application Dashboard: <span class="app_title"></span> </span>
</div>
<div class="console-section-contents">
<div id="application-panel-table" style="overflow: hidden;">
<div id="application-panel-entity-graph" class="span graph"></div>
<div id="application-panel-text" class="span">...</div>
</div>
<div style="max-width: 680px; overflow: hidden;">
<div>
<div id="application-entities-timeline" class="span graph"></div>
<div id="application-cpu-time" class="span graph"></div>
</div>
<div>
<div id="application-data-uploaded" class="span graph"></div>
<div id="application-data-downloaded" class="span graph"></div>
</div>
</div>
</div>
</div>
</div>
<div id="account-panel" class="container-fluid hide">
<div id="account-update-modal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Account Settings</h4>
</div>
<div class="modal-body">
<p>Account settings updated.</p>
</div>
<div class="modal-footer">
<button class="btn btn-usergrid" data-dismiss="modal">OK</button>
</div>
</div>
<div class="span offset1">
<h2>Account Settings </h2>
<div id="account-panels">
<div class="panel-content">
<div class="console-section">
<div class="well thingy"><span class="title"> Personal Account </span> </div>
<div class="console-section-contents">
<form name="update-account-form" id="update-account-form" class="form-horizontal">
<fieldset>
<div class="control-group">
<label id="update-account-id-label" class="control-label" for="update-account-id">UUID</label>
<div class="controls">
<span id="update-account-id" class="monospace"></span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="update-account-username">Username </label>
<div class="controls">
<input type="text" name="update-account-username" id="update-account-username" class="span4" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="update-account-name">Name </label>
<div class="controls">
<input type="text" name="update-account-name" id="update-account-name" class="span4" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="update-account-email"> Email</label>
<div class="controls">
<input type="text" name="update-account-email" id="update-account-email" class="span4" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="update-account-picture-img">Picture <br />(from <a href="http://gravatar.com">gravatar.com</a>) </label>
<div class="controls">
<img id="update-account-picture-img" src="" class="" width="50" />
</div>
</div>
<span class="help-block">Leave blank any of the following to keep the current password unchanged</span>
<br />
<div class="control-group">
<label class="control-label" for="old-account-password">Old Password</label>
<div class="controls">
<input type="password" name="old-account-password" id="old-account-password" class="span4" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="update-account-password">New Password</label>
<div class="controls">
<input type="password" name="update-account-password" id="update-account-password" class="span4" value="" size="20"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="update-account-password-repeat">Confirm New Password</label>
<div class="controls">
<input type="password" name="update-account-password-repeat" id="update-account-password-repeat" class="span4" value="" size="20"/>
</div>
</div>
</fieldset>
<div class="form-actions">
<input type="button" name="button-update-account" id="button-update-account" value="Update" class="btn btn-usergrid span"/>
</div>
</form>
</div>
</div>
</div>
</div>
<div class="panel-content">
<div class="console-section">
<div class="well thingy"><span class="title"> Organizations </span>
<div class="bar">
<a class="" data-toggle="modal" href="#dialog-form-new-organization"> Add </a>
</div>
</div>
<table class="table" id="organizations">
</table>
</div>
</div>
<form id="dialog-form-new-organization" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new organization</h4>
</div>
<div class="modal-body">
<p class="validateTips">All form fields are required.</p>
<fieldset>
<div class="control-group">
<label for="new-organization-name">Name</label>
<div class="controls">
<input type="text" name="organization" id="new-organization-name" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
</div>
<div id="users-panel" class="panel-buffer">
<ul id="users-panel-tab-bar" class="nav nav-tabs">
<li class="active"><a id="button-users-list">List</a></li>
</ul>
<div id="users-panel-list" class="panel-content">
<div id="users-messages" class="alert" style="display: none;"></div>
<div class="console-section">
<span class="title"> App Users </span>
<div class="well thingy">
<div class="bar">
<input onkeyup="Usergrid.console.searchUsers();" type="text" name="search-user-username" id="search-user-username" class="input-small search" placeholder="Search"/>
<select id="search-user-type" onChange="Usergrid.console.searchUsers();" class="input-medium search">
<option value="username">Username</option>
<option value="name">Full Name</option>
</select>
<a class="btn " data-toggle="modal" id="delete-users-link" > Delete</a>
<a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-new-user"> Create new user</a>
</div>
</div>
<table id="users-table" class="table">
<tbody></tbody>
</table>
<ul id="users-pagination" class="pager">
<li id="users-previous" class="previous"><a >&larr; Previous</a></li>
<li id="users-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
<div id="users-curl-container" class="row-fluid curl-container ">
</div>
</div>
<form id="dialog-form-new-user" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new user</h4>
</div>
<div class="modal-body">
<p class="validateTips">Username is required.</p>
<fieldset>
<div class="control-group">
<label for="new-user-username">Username</label>
<div class="controls">
<input type="text" name="username" id="new-user-username" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
<div class="control-group">
<label for="new-user-fullname">Full name</label>
<div class="controls">
<input type="text" name="name" id="new-user-fullname" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
<div class="control-group">
<label for="new-user-email">Email</label>
<div class="controls">
<input type="text" name="email" id="new-user-email" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
<div class="control-group">
<label for="new-user-password">Password</label>
<div class="controls">
<input type="password" name="password" id="new-user-password" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
<div class="control-group">
<label for="new-user-validate-password">Confirm password</label>
<div class="controls">
<input type="password" name="validate-password" id="new-user-validate-password" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<form id="confirmAction" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4></h4>
</div>
<div class="modal-body">
<p></p>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-danger" value="Yes, continue"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="confirmDialog" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Are you sure?</h4>
</div>
<div class="modal-body">
<p></p>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-danger" value="Yes, delete"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="alertModal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4></h4>
</div>
<div class="modal-body">
<p></p>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-usergrid" value="OK" data-dismiss="modal"/>
</div>
</form>
<form id="queryHelpModal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Making Queries</h4>
</div>
<div class="modal-body">
<p><strong>Making Queries</strong></p>
<p>Use the Query String field to enter SQL-style queries against your collections. For example, to select
all users whose name starts with <strong>fred</strong>:</p>
<pre>select * where name = 'fred*'</pre>
<p>To select all activities where a category is <strong>usermessage</strong> and content contains the word
<strong>hello</strong> in a string:</p>
<pre class="code-para">select * where category = 'usermessage' and content contains 'hello'</pre>
<a class="outside-link" target="_blank" href="http://apigee.com/docs/usergrid/content/queries-and-parameters"><strong>Learn more about Queries and Parameters.</strong></a>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-usergrid" value="close" data-dismiss="modal"/>
</div>
</form>
<form id="queryPathHelpModal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Query Path</h4>
</div>
<div class="modal-body">
<p><strong>Query Path</strong></p>
<p>The query path is typically just the name of the collection you want to access. For example, if you want to work with a <strong>dogs</strong> collection,
then your path will be:
</p>
<pre>/dogs</pre>
<p>You may also have a more complex path, such as the case when you want to make a connection between two entities.
To create a <strong>likes</strong> connection between a user named <strong>Fred</strong> and a dog named <strong>Dino</strong>,
do a <strong>POST</strong> operation to:
</p>
<pre class="code-para">/users/fred/likes/dogs/dino</pre>
<a class="outside-link" target="_blank" href="http://apigee.com/docs/usergrid/content/entity-relationships"><strong>Learn more about Entity Relationships.</strong></a>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-usergrid" value="close" data-dismiss="modal"/>
</div>
</form>
<form id="queryLimitHelpModal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Limit</h4>
</div>
<div class="modal-body">
<p><strong>Limit</strong></p>
<p>The <strong>limit parameter</strong> is used to tell the API how many results you want to have returned from the API call.</p>
<p>The <strong>default</strong> setting is <strong>10</strong>.</p>
<p>The <strong>max</strong> setting is <strong>999</strong>.</p>
<p>This parameter is appended to the end of the query string to be sent to the API. For example, a limit of 100:</p>
<pre>GET /dogs?limit=100</pre>
<a class="outside-link" target="_blank" href="http://apigee.com/docs/usergrid/content/queries-and-parameters"><strong>Learn more about Queries and Parameters.</strong></a>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-usergrid" value="close" data-dismiss="modal"/>
</div>
</form>
<form id="queryJsonHelpModal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>JSON</h4>
</div>
<div class="modal-body">
<p><strong>JSON</strong></p>
<p>The <strong>JSON</strong> is the object notation used to describe your object.</p>
<p>This parameter makes up the body that is sent with POST and PUT requests</p>
<pre>{
"uuid":"00000000-0000-0000-000000000000",
"type":"book",
"title":"Great Expectations"
}</pre>
<a class="outside-link" target="_blank" href="http://apigee.com/docs/usergrid/content/using-api"><strong>Learn more about using the API.</strong></a>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-usergrid" value="close" data-dismiss="modal"/>
</div>
</form>
<form id="queryMethodHelpModal" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Method</h4>
</div>
<div class="modal-body">
<p><strong>Method</strong></p>
<p>The <strong>Method</strong> is used to tell the API what type of operation you want to perform.
These <strong>http methods</strong> map to the standard <strong>CRUD</strong> methods:</p>
<p><strong>POST</strong> is used for <strong>CREATE</strong></p>
<p><strong>GET</strong> is used for <strong>READ</strong></p>
<p><strong>PUT</strong> is used for <strong>UPDATE</strong></p>
<p><strong>DELETE</strong> is used for <strong>DELETE</strong></p>
<p>Using these four methods, you can perform any type of operation against the API. For example, to READ
from a collection called <strong>/dogs</strong>:</p>
<pre>GET /dogs</pre>
<a class="outside-link" target="_blank" href="http://apigee.com/docs/usergrid/content/using-api"><strong>Learn more about using the API.</strong></a>
</div>
<div class="modal-footer">
<input type="reset" class="btn btn-usergrid" value="close" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-new-application" class="modal hide fade" action="#">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new application</h4>
</div>
<div class="modal-body">
<p class="validateTips">All form fields are required.</p>
<fieldset>
<div class="control-group">
<label for="new-application-name">Name</label>
<div class="controls">
<input type="text" name="name" id="" value="" class="input-xlarge new-application-name"/>
<p class="help-block">Length of name must be between 4 and 80</p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<div id="user-panel" class="panel-buffer">
<ul id="user-panel-tab-bar" class="nav nav-tabs">
<li><a id="button-user-list">List</a></li>
<li class="active"><a id="button-user-profile">Profile</a></li>
<li><a id="button-user-memberships">Groups</a></li>
<li><a id="button-user-activities">Activities</a></li>
<li><a id="button-user-graph">Graph</a></li>
<li><a id="button-user-permissions">Roles &amp; Permissions</a></li>
</ul>
<!--
<div id="user-panel-tab-bar">
<a class="tab-button btn" id="button-user-list" >List</a>
<a class="tab-button btn active" id="button-user-profile" >Profile</a>
<a class="tab-button btn" id="button-user-memberships" >Groups</a>
<a class="tab-button btn" id="button-user-activities" >Activities</a>
<a class="tab-button btn" id="button-user-graph" >Graph</a>
<a class="tab-button btn" id="button-user-permissions" >Roles & Permissions</a>
</div>
-->
<div id="user-panel-profile" class="panel-content"></div>
<div id="user-panel-memberships" class="panel-content" style="display: none;"></div>
<div id="user-panel-activities" class="panel-content" style="display: none;"></div>
<div id="user-panel-graph" class="panel-content" style="display: none;"></div>
<div id="user-panel-permissions" class="panel-content" style="display: none;"></div>
<form id="dialog-form-add-user-to-role" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add this user to a Role</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the role you want to add to this user.</p>
<fieldset>
<div class="control-group">
<label for="search-role-name-input">Role</label>
<div class="controls">
<input type="text" name="search-role-name-input" id="search-role-name-input" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-add-group-to-user" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add this user to a Group</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the group you want to add this user to.</p>
<fieldset>
<div class="control-group">
<label for="search-group-name-input">Group</label>
<div class="controls">
<input type="text" name="search-group-name-input" id="search-group-name-input" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-follow-user" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Follow this User</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the user you want to Follow.</p>
<fieldset>
<div class="control-group">
<label for="search-follow-username-input">User</label>
<div class="controls">
<input type="text" name="search-follow-username-input" id="search-follow-username-input"
class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Follow"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<div id="groups-panel" class="panel-buffer">
<ul class="nav nav-tabs">
<li class="active"><a id="button-groups-list">List</a></li>
</ul>
<div id="groups-panel-list" class="panel-content">
<div id="groups-messages" class="alert" style="display: none;"></div>
<div class="console-section">
<span class="title"> App Groups </span>
<div class="well thingy">
<div class="bar">
<input onkeyup="Usergrid.console.searchGroups();" type="text" name="search-user-groupname" id="search-user-groupname" class="input-small search" placeholder="Search"/>
<select id="search-group-type" onChange="Usergrid.console.searchGroups();" class="input-medium search">
<option value="path">Path</option>
<option value="title">Group Name</option>
</select>
<a class="btn" id="delete-groups-link" > Delete</a>
<a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-new-group"> Create new group</a>
</div>
</div>
<table id="groups-table" class="table">
<tbody></tbody>
</table>
<ul id="groups-pagination" class="pager">
<li id="groups-previous" class="previous"><a >&larr; Previous</a></li>
<li id="groups-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
<div id="groups-curl-container" class="row-fluid curl-container ">
</div>
</div>
<form id="dialog-form-new-group" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new group</h4>
</div>
<div class="modal-body">
<p class="validateTips">All form fields are required.</p>
<fieldset>
<div class="control-group">
<label for="new-group-title">Display Name</label>
<div class="controls">
<input type="text" name="title" id="new-group-title" value="" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
<div class="control-group">
<label for="new-group-path">Group Path</label>
<div class="controls">
<input type="text" name="path" id="new-group-path" value="" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<div id="group-panel" class="panel-buffer">
<ul id="group-panel-tab-bar" class="nav nav-tabs">
<li><a id="button-group-list">List</a></li>
<li class="active"><a id="button-group-details">Details</a></li>
<li><a id="button-group-memberships">Members</a></li>
<li><a id="button-group-activities">Activities</a></li>
<li><a id="button-group-permissions">Roles &amp; Permissions</a></li>
</ul>
<!--
<div id="group-panel-tab-bar">
<a class="tab-button btn" id="button-group-list" >List</a>
<a class="tab-button btn active" id="button-group-details" >Details</a>
<a class="tab-button btn" id="button-group-memberships" >Members</a>
<a class="tab-button btn" id="button-group-activities" >Activities</a>
<a class="tab-button btn" id="button-group-permissions" >Roles & Permissions</a>
</div-->
<div id="group-panel-details" class="panel-content"></div>
<div id="group-panel-memberships" class="panel-content" style="display: none;"></div>
<div id="group-panel-activities" class="panel-content" style="display: none;"></div>
<div id="group-panel-permissions" class="panel-content" style="display: none;"></div>
<form id="dialog-form-add-user-to-group" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add a User to this Group</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the user you want to add to this group.</p>
<fieldset>
<div class="control-group">
<label for="search-user-name-input">User</label>
<div class="controls">
<input type="text" name="search-user-name-input" id="search-user-name-input" class="input-xlarge" autocomplete="off"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-add-role-to-group" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add a Role to this Group</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the role you want to add to this group.</p>
<fieldset>
<div class="control-group">
<label for="search-groups-role-name-input">Role</label>
<div class="controls">
<input type="text" name="search-groups-role-name-input" id="search-groups-role-name-input" class="input-xlarge" autocomplete="off"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<div id="roles-panel" class="panel-buffer">
<ul id="roles-panel-tab-bar" class="nav nav-tabs">
<li class="active"><a id="button-roles-list">List</a></li>
</ul>
<div id="roles-panel-list" class="panel-content">
<div id="roles-messages" class="alert" style="display: none;"></div>
<div class="console-section">
<span class="title"> App Roles </span>
<div class="well thingy">
<div class="bar">
<a class="btn" id="delete-roles-link" > Delete</a>
<a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-new-role"> Add Role</a>
</div>
</div>
<table id="roles-table" class="table">
<tbody></tbody>
</table>
<ul id="roles-pagination" class="pager">
<li id="roles-previous" class="previous"><a >&larr; Previous</a></li>
<li id="roles-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
<div id="roles-curl-container" class="row-fluid curl-container ">
</div>
</div>
<div id="roles-panel-search" class="panel-content" style="display: none;">
<div class="console-section">
<div class="well thingy"><span class="title"> Role Settings: <span class="app_title"></span></span></div>
<div class="console-section-contents">
<div id="roles-settings">
<h2>No Permissions.</h2>
</div>
</div>
</div>
</div>
<form id="dialog-form-new-role" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new Role</h4>
</div>
<div class="modal-body">
<p class="validateTips">All form fields are required.</p>
<fieldset>
<div class="control-group">
<label for="new-role-title">Display Name</label>
<div class="controls">
<input type="text" name="title" id="new-role-title" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
<div class="control-group">
<label for="new-role-name">Name</label>
<div class="controls">
<input type="text" name="name" id="new-role-name" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<div id="role-panel" class="panel-buffer">
<ul id="role-panel-tab-bar" class="nav nav-tabs">
<li><a id="button-role-list">List</a></li>
<li class="active"><a id="button-role-settings">Settings</a></li>
<li><a id="button-role-users">Users</a></li>
<li><a id="button-role-groups">Groups</a></li>
</ul>
<!--div id="role-panel-tab-bar">
<a class="tab-button btn" id="button-role-list" >List</a>
<a class="tab-button btn active" id="button-role-settings" >Settings</a>
<a class="tab-button btn" id="button-role-users" >Users</a>
<a class="tab-button btn" id="button-role-groups" >Groups</a>
</div-->
<div id="role-panel-settings" class="panel-content">
<div class="console-section">
<div class="well thingy"> <span id="role-section-title" class="title">Role</span> </div>
<div class="console-section-contents">
<div id="role-permissions-messages" class="alert" style="display: none"></div>
<div id="role-permissions">
<h2>...</h2>
</div>
</div>
</div>
<div id="role-permissions-curl-container" class="curl-container">
</div>
</div>
<div id="role-panel-users" class="panel-content">
<div class="console-section" id="role-users"></div>
<div id="role-users-curl-container" class="curl-container">
</div>
</div>
<div id="role-panel-groups" class="panel-content"></div>
<form id="dialog-form-add-group-to-role" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add a Group to this Role</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the group you want to add to this role.</p>
<fieldset>
<div class="control-group">
<label for="search-roles-group-name-input">Group</label>
<div class="controls">
<input type="text" name="search-roles-group-name-input" id="search-roles-group-name-input" class="input-xlarge" autocomplete="off"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-add-role-to-user" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add a user to this Role</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the user you want to add to this role.</p>
<fieldset>
<div class="control-group">
<label for="search-roles-user-name-input">User</label>
<div class="controls">
<input type="text" name="search-roles-user-name-input" id="search-roles-user-name-input" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
</div>
<div id="activities-panel" style="margin-top: 10px; display: none;">
<div id="activities-panel-list" class="panel-content">
<div class="console-section">
<span class="title"> Activities </span>
<div class="well thingy">
<div class="bar" style="margin-bottom: 25px;">
<input onkeyup="Usergrid.console.searchActivities();" type="text" name="search-activities" id="search-activities" class="input-small search" placeholder="Search"/>
<select id="search-activities-type" onChange="Usergrid.console.searchActivities();" class="input-medium search">
<option value="content">Content</option>
<option value="actor">Actor</option>
</select>
<a class="btn" onclick="Usergrid.console.requestActivities(); return false;">Update Activities</a>
</div>
</div>
<table id="activities-table" class="table">
<tbody></tbody>
</table>
<ul id="activities-pagination" class="pager">
<li id="activities-previous" class="previous"><a >&larr; Previous</a></li>
<li id="activities-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
</div>
</div>
<div id="analytics-panel" style="display: none">
<div class="panel-content">
<div class="console-section">
<div class="well thingy"><span class="title"> Analytics </span></div>
<div class="console-section-contents">
<div id="analytics-time">
<form id="resolutionSelectForm" action="" class="form-horizontal">
<div class="row">
<fieldset class="span">
<div id="analytics-start-time-span" class="control-group">
<label class="control-label" for="start-date">Start:</label>
<div class="controls">
<input type="text" id="start-date" class="fixSpan2"/>
<input type="text" id="start-time" value="12:00 AM" class="fixSpan2"/>
</div>
</div>
<div id="analytics-end-time-span" class="control-group" style="float: left">
<label class="control-label" for="end-date">End:</label>
<div class="controls">
<input type="text" id="end-date" class="fixSpan2"/>
<input type="text" id="end-time" value="12:00 AM" class="fixSpan2"/>
</div>
</div>
<div class="control-group">
<label class="control-label" for="resolutionSelect">Resolution</label>
<div class="controls">
<select name="resolutionSelect" id="resolutionSelect">
<option value="all">All</option>
<option value="minute">Minute</option>
<option value="five_minutes">5 Minutes</option>
<option value="half_hour">30 Minutes</option>
<option value="hour">Hour</option>
<option value="six_hour">6 Hours</option>
<option value="half_day">Half Day</option>
<option value="day" selected="selected">Day</option>
<option value="week">Week</option>
<option value="month">Month</option>
</select>
</div>
</div>
</fieldset>
<fieldset class="span offset1">
<div id="analytics-counter-names"></div>
</fieldset>
</div>
<div class="form-actions">
<button class="btn btn-primary" id="button-analytics-generate" style="margin-left: -80px">Generate</button>
</div>
</form>
</div>
</div>
</div>
<div class="console-section">
<div class="well thingy"><span class="title"> Result Analytics <span class="app_title"></span></span></div>
<div class="console-section-contents">
<div id="analytics-graph"></div>
<div id="analytics-graph-area" style="overflow-x: auto;"></div>
</div>
</div>
</div>
</div>
<div id="properties-panel" style="display: none">
<div class="console-section">
<div class="well thingy"><span class="title"> Application Properties: <span class="app_title"></span></span>
<div class="bar" style="margin-bottom: 25px;">
<a class="btn" onclick="Usergrid.console.newApplicationCredentials(); return false;">Regenerate Credentials</a>
</div>
</div>
<div class="console-section-contents">
<table id="application-panel-key-table" class="table">
<tr>
<td>
<span class="span3">Client ID</span>
</td>
<td>
<span id="application-panel-key">...</span>
</td>
</tr>
<tr>
<td>
<span class="span3">Client Secret</span>
</td>
<td>
<span id="application-panel-secret">...</span>
</td>
</tr>
</table>
</div>
</div>
</div>
<div id="shell-panel" style="display: none">
<div id="shell-content" class="console-section">
<div class="well thingy"> <span class="title"> Interactive Shell </span></div>
<div class="console-section-contents">
<div id="shell-input-div">
<p> Type "help" to view a list of the available commands.</p><hr />
<span>&nbsp;&gt&gt; </span>
<textarea id="shell-input" rows="2" autofocus="autofocus"></textarea>
</div>
<pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;">
<p> Response:</p><hr />
</pre>
</div>
</div>
<a href="#" id="fixme">-</a>
</div>
<div id="notifications-panel" class="panel-buffer">
<div id="notifications-content" class="console-section"></div>
</div>
<div id="sendNotification-panel" class="panel-buffer" style="margin-top: 10px;">
<div class="alert" id="notification-scheduled-status" style="display:none;"></div>
<span class="title"> Compose Push Notification </span>
<div style="padding-top: 10px;">
<form id="query-inputs" class="notifcations-form">
<div class="well" style="padding: 0px; margin-bottom: 0px;">
<span class="title">Notifier and Recipients</span>
</div>
Choose the Notifier (a configured notification service) to connect with for this push notification. Only users
with devices registered with this notifier will receive the push notification. If a group is selected, only the users
in the selected goup, with devices registered with this notifier, will receive the push notification.
<label for="send-notification-notifier">Notifier:</label>
<select id="send-notification-notifier">
<option value="">Choose Notifier</option>
</select>
<div class="control-group">
<input type="radio" name="notification-user-group" id="notification-user-group-all" value="all" checked> All Devices
<input type="radio" name="notification-user-group" id="notification-user-group-devices" value="devices"> Devices
<input type="radio" name="notification-user-group" id="notification-user-group-users" value="users"> Users
<input type="radio" name="notification-user-group" id="notification-user-group-group" value="groups"> Groups
</div>
<div class="control-group">
<div id="notificaitons-devices-select-container" style="display: none">
Enter the device uuids:<br>
<textarea id="devices-list" placeholder="device-UUID-1,device-UUID-2,device-UUID-3,etc..." class="span6 pull-left" rows="5"></textarea>
</div><div id="notificaitons-users-select-container" style="display: none">
Enter the usernames:<br>
<textarea id="user-list" placeholder="username1,username2,username3,etc..." class="span6 pull-left" rows="5"></textarea>
<!--br>
<div class="thingy">
Or, use a form to look them up:<br>
<a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-add-user-to-notification"> Add User</a>
</div-->
</div>
<div id="notificaitons-group-select-container" style="display: none">
Enter the group paths:<br>
<textarea id="group-list" placeholder="group-path-1,group-path-2,group-path-3,etc..." class="span6 pull-left" rows="5"></textarea>
<!--br>
<div class="thingy">
<a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-add-group-to-notification"> Add Group</a>
</div-->
</div>
</div>
<hr>
<div class="well thingy">
<span class="title">Notifier Message</span>
</div>
Edit the "alert" message in the JSON payload.
<div class="controls">
<div>
<textarea id="notification-json" class="span6 pull-left" rows="3">Your text here</textarea>
<br>
<a target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">Learn more about messages in our docs</a>
</div>
</div>
<div style="display: none;">
<a class="btn" id="reset-notifications-payload" >Reset Payload</a>
<a class="btn" id="validate-notifications-json" >Validate JSON</a>
<span id="notifications-json-status" class="alert" style="width: 400px;">Validate your JSON!</span>
</div>
<hr>
<div class="well thingy">
<span class="title">Delivery</span>
</div>
Select whether to schedule this push notification for immediate delivery or at a future date and time.
<div class="control-group">
<input type="radio" name="notification-schedule-time" id="notification-schedule-time-now" value="now" checked> Now
<input type="radio" name="notification-schedule-time" id="notification-schedule-time-later" value="later"> Schedule for later
</div>
<div id="notification-schedule-time-controls" style="display: none;">
<div id="notifications-start-time-span" class="control-group">
<label class="control-label" for="notification-schedule-time-date">Start Date/Time:</label>
<div class="controls">
<input type="text" id="notification-schedule-time-date" class="fixSpan2"/>
<input type="text" id="notification-schedule-time-time" value="12:00 AM" class="fixSpan2"/> (<span id="gmt_display"></span>)
</div>
</div>
</div>
<div style="display:none;">
<hr>
<div class="well thingy">
<span class="title">Push Notification API Preview</span>
</div>
Review the API call and payload that will be sent to the App Services Push Notification Scheduler.
Advanced users can also send this command via <a href="">UGC (Usergrid Command Line)</a>.
<div id="notifications-command" class="well">
POST users/
</div>
</div>
<a class="btn btn-primary" id="schedule-notification">Schedule Notification</a>
</form>
</div>
</div>
<form id="dialog-form-add-user-to-notification" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add a user to this Notification</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the user you want to add to this notification.</p>
<fieldset>
<div class="control-group">
<label for="search-notification-user-name-input">User</label>
<div class="controls">
<input type="text" name="search-notification-user-name-input" id="search-notification-user-name-input" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<form id="dialog-form-add-group-to-notification" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Add a group to this Notification</h4>
</div>
<div class="modal-body">
<p class="validateTips">Search for the group you want to add to this notification.</p>
<fieldset>
<div class="control-group">
<label for="search-notification-group-name-input">Group</label>
<div class="controls">
<input type="text" name="search-notification-group-name-input" id="search-notification-group-name-input" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Add"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<div id="messageHistory-panel" class="panel-buffer">
<div class="well thingy">
<span class="title">Notification History</span>
</div>
<div style="float: left">
<ul class="nav nav-pills">
<li class="active"><a href="#" id="view-notifications-all">All</a></li>
<li><a href="#" id="view-notifications-scheduled">Scheduled</a></li>
<li><a href="#" id="view-notifications-started">Sending</a></li>
<li><a href="#" id="view-notifications-sent">Sent</a></li>
<li><a href="#" id="view-notifications-failed">Failed</a></li>
<li><a href="#" id="view-notifications-canceled">Canceled</a></li>
</ul>
</div>
<!--
<input id="notifications-history-search" type="text" name="path" class="span6" autocomplete="off" placeholder="search"/>
<a class="btn" id="view-notifications-search">Search</a>
-->
<div style="margin-top:35px;">&nbsp;</div>
<div id="notifications-history-display">
No Notifications found.
</div>
<ul id="notifications-history-pagination" class="pager">
<li style="display: none" id="notifications-history-previous" class="previous"><a >&larr; Previous</a></li>
<li style="display: none" id="notifications-history-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
<div id="notificationsReceipt-panel" class="panel-buffer">
<div class="well thingy">
<span class="title">Notification Receipts</span>
<span style="float: right"><a href="#" class="notifications-links" id="return-to-notifications"><- Return to All Notifications</a></span>
</div>
<div style="float: left">
<ul class="nav nav-pills">
<li class="active"><a href="#" id="view-notification-receipt-all">All</a></li>
<li><a href="#" id="view-notification-receipt-received">Received</a></li>
<li><a href="#" id="view-notification-receipt-failed">Failed</a></li>
</ul>
</div>
<!--
<input id="notifications-history-search" type="text" name="path" class="span6" autocomplete="off" placeholder="search"/>
<a class="btn" id="view-notifications-search">Search</a>
-->
<div style="margin-top:35px;">&nbsp;</div>
<div id="notification-receipts-display">
No Notifications found.
</div>
<ul id="notification-receipt-pagination" class="pager">
<li style="display: none" id="notification-receipt-previous" class="previous"><a >&larr; Previous</a></li>
<li style="display: none" id="notification-receipt-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
<div id="configuration-panel" class="panel-buffer" style="padding-top: 10px;">
<div id="cert-upload-message" class="alert alert-info" style="display:none"></div>
<span class="title">Configuration</span>
<div class="well thingy" id="cert-list-buttons" style="display: none;">
<div style="float: left;margin-top:10px;">
<span class="title" style="float: left">Notifiers</span>
</div>
<div style="float: right;">
<a class="btn" style="float: right" id="delete-certs-link">Delete Notifier</a>
</div>
</div>
<div id="notification-cert-list" style="padding-bottom: 10px"></div>
<ul id="user-panel-tab-bar" class="nav nav-tabs">
<li class="active"><a id="button-notifications-apple-create-notifier">Apple</a></li>
<li><a id="button-notifications-android-create-notifier">Android</a></li>
</ul>
<div id="notifications-apple-create-notifier">
<div style="margin-top: 10px;">
<span class="title">Apple Push Notification Service</span>
<br>
A Notifier allows App Services to connect to and deliver a message to a communication provider such as
Apple's APNs. Upload Development and Production Certificates (.p12) to set up a bridge between your app
and APNs for push notifications on iOS devices.
<form id="query-inputs" class="notifcations-form">
For more help: view our
<a href="#" class="notifications-links" onclick="Usergrid.Navigation.router.navigateTo('getStarted'); return false;">getting started page</a>
for more info on how to generate and download an iOS .p12 certificate at the Apple Developer Connection website.
<fieldset>
<div class="control-group">
<label class="control-label" for="new-notifier-name"><strong>Name this notifier </strong></label>
<div class="controls">
<div class="input-append">
<input id="new-notifier-name" type="text" name="path" class="span6" autocomplete="off" placeholder="ex: appledev"/>
</div>
The notifier name is used as the key for push data. Give this a name that describes the certificate being uploaded.
</div>
</div>
<br>
<div class="control-group">
<label class="control-label" for="new-notifier-certificate"><strong>Certificate </strong></label>
<div class="controls">
<div class="input-append">
<input id="new-notifier-certificate" name="new-notifier-certificate" type="file" multiple>
</div>
</div>
</div>
<br>
<div class="control-group">
<label class="control-label" for="new-notification-environment"><strong>Environment </strong></label>
<div class="controls">
<div class="input-append">
<select id="new-notification-environment">
<option value="development">development</option>
<option value="production">production</option>
</select>
</div>
</div>
</div>
<br>
<div class="control-group">
<label class="control-label" for="new-notifier-cert-password"><strong>Certificate Password</strong></label>
<div class="controls">
<div class="input-append">
<input id="new-notifier-cert-password" type="text" name="path" class="span6" autocomplete="off" placeholder="ex: appledev"/>
</div>
Only applicable if your certificate is password protected
</div>
</div>
<a class="btn btn-primary" id="save-certificate-btn">Create Notifier</a>
</fieldset>
</form>
</div>
</div>
<div id="notifications-android-create-notifier" style="display:none;">
<div style="margin-top: 10px;">
<span class="title">Google Cloud Messaging</span>
<br>
A Notifier allows App Services to connect to and deliver a message to a communication provider such as
Google Cloud Messaging (GCM). Copy and paste your API key to create a bridge between your app
and GCM for push notifications on Android devices..
<form id="android-create-notifier-form" class="notifcations-form">
For more help: <a href="">see our <a href="#" class="notifications-links" onclick="Usergrid.Navigation.router.navigateTo('getStarted'); return false;">getting started page</a> page</a>.
<fieldset>
<div class="control-group">
<label class="control-label" for="android-new-notifier-name"><strong>Name this notifier </strong></label>
<div class="controls">
<div class="input-append">
<input id="android-new-notifier-name" type="text" name="path" class="span6" autocomplete="off" placeholder="ex: appledev"/>
</div>
The notifier name is used as the key for push data. Give this a name that describes the API key being uploaded.
</div>
</div>
<div class="control-group">
<label class="control-label" for="android-new-notifier-api-key"><strong>API Key </strong></label>
<div class="controls">
<div class="input-append">
<input id="android-new-notifier-api-key" name="android-new-notifier-api-key" type="text" name="path" class="span6" autocomplete="off"/>
</div>
</div>
</div>
<a class="btn btn-primary" id="save-certificate-btn-android">Create Notifier</a>
</fieldset>
</form>
</div>
</div>
</div>
<div id="getStarted-panel" class="panel-buffer">
<div class="well thingy" style="padding-bottom: 10px;">
<span class="title">Getting Started with Push Notifications</span>
<br>
Before you can send a notification, you must follow these three steps to enable push notifications for your app.
<br>
<a target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">Learn more in our docs</a>
</div>
<ul id="user-panel-tab-bar" class="nav nav-tabs">
<li class="active"><a id="button-notifications-apple-get-started">Apple</a></li>
<li><a id="button-notifications-android-get-started">Android</a></li>
</ul>
<div id="notifications-apple-get-started">
<span class="title">Set up Push Notifications for Apple iOS</span>
<div class="notifications-get-started">
<div class="header">
<img src="images/step_1.png" style="float: left;padding-right: 10px;">
<div style="padding-top: 9px;">
Follow <a target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">the process</a> to generate and download an iOS .p12 certificate at the <a href="https://developer.apple.com/ios/manage/overview/index.action">Apple Developer Connection website</a>.
</div>
</div>
<img style="margin-bottom: -5px;" src="images/APNS_cert_upload.png">
</div>
<div class="notifications-get-started">
<div class="header">
<img src="images/step_2.png" style="float: left;padding-right: 10px;">
<div style="padding-top: 9px;">
Add the certificates to set up your notifiers.
</div>
</div>
<div style="">
<a href="#" onclick="Usergrid.Navigation.router.navigateTo('configuration'); return false;">Upload a certificate and create the connection to APNs.</a>
</div>
<img style="margin-left: 50px; margin-bottom: -5px;" src="images/APNS_certification.png">
</div>
<div class="notifications-get-started">
<div class="header">
<img src="images/step_3.png" style="float: left;padding-right: 10px;">
<div style="padding-top: 9px;">
Compose and schedule a push notification.
</div>
</div>
<div style="">
<a href="#" onclick="Usergrid.Navigation.router.navigateTo('sendNotification'); return false;">Send a push notification.</a>
</div>
<br><br>
<img style="margin-left: 58px; margin-bottom: -5px;" src="images/iphone_message.png">
</div>
</div>
<div id="notifications-android-get-started" style="display: none">
<span class="title">Set up Push Notifications for Google Android</span>
<div class="notifications-get-started">
<div class="header">
<img src="images/step_1.png" style="float: left;padding-right: 10px;">
<div style="padding-top: 9px;">
Retrieve your API key from the <a href="https://code.google.com/apis/console/" target="_blank">Android API Developer website</a>
</div>
</div>
<img style="margin-bottom: -5px;" src="images/google_api_key.png">
</div>
<div class="notifications-get-started">
<div class="header">
<img src="images/step_2.png" style="float: left;padding-right: 10px;">
<div style="padding-top: 9px;">
Add your API key to set up your notifiers.
</div>
</div>
<div style="">
<a href="#" onclick="Usergrid.Navigation.router.navigateTo('configuration'); return false;">Copy and paste your Google API Access key.</a>
</div>
<img style="margin-left: 50px; margin-bottom: -5px;" src="images/APNS_certification.png">
</div>
<div class="notifications-get-started">
<div class="header">
<img src="images/step_3.png" style="float: left;padding-right: 10px;">
<div style="padding-top: 9px;">
Compose and schedule a push notification.
</div>
</div>
<div style="">
<a href="#" onclick="Usergrid.Navigation.router.navigateTo('sendNotification'); return false;">Send a push notification.</a>
</div>
<br><br>
<img style="margin-left: 58px; margin-bottom: -5px;" src="images/android-notification.png">
</div>
</div>
</div>
<div id="collections-panel" class="panel-buffer">
<div id="query-path-area" class="console-section query-path-area">
<form id="dialog-form-new-collection" class="modal hide fade">
<div class="modal-header">
<a class="close" data-dismiss="modal">&times</a>
<h4>Create new collection</h4>
</div>
<div class="modal-body">
<p class="validateTips">All form fields are required.</p>
<fieldset>
<div class="control-group">
<label for="new-collection-name">Name</label>
<div class="controls">
<input type="text" name="name" id="new-collection-name" value="" class="input-xlarge"/>
<p class="help-block hide"></p>
</div>
</div>
</fieldset>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-usergrid" value="Create"/>
<input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>
</div>
</form>
<!--a class="data-explorer-link" style="float: right" onclick="$('#data-explorer').toggle(); return false;">Data Explorer</a -->
<div id="data-explorer" class="">
<div class="well thingy">
<span class="title">Data Explorer</span>
</div>
<div style="padding-right: 20px;">
<form id="query-inputs" class="">
<div class="control-group">
<div class="" data-toggle="buttons-radio">
<!--a class="btn" id="button-query-back">&#9664; Back</a-->
<!--Added disabled class to change the way button looks but their functionality is as usual -->
<label class="control-label"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>
<input type="radio" name="query-action" value="get" style="margin-top: -2px;" id="button-query-get" checked> GET &nbsp; &nbsp;
<input type="radio" name="query-action" value="post" style="margin-top: -2px;" id="button-query-post"> POST &nbsp; &nbsp;
<input type="radio" name="query-action" value="put" style="margin-top: -2px;" id="button-query-put"> PUT &nbsp; &nbsp;
<input type="radio" name="query-action" value="delete" style="margin-top: -2px;" id="button-query-delete"> DELETE
</div>
</div>
<div class="control-group">
<label class="control-label" for="query-path"><strong>Path</strong> <a id="query-path-help" href="#" class="help-link">get help</a></label>
<div class="controls">
<div class="input-append">
<input id="query-path" type="text" name="path" class="span6" autocomplete="off" placeholder="ex: /users"/>
</div>
</div>
</div>
<div class="control-group">
<a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>
</div>
<div class="control-group" id="query-ql-box">
<label class="control-label" for="query-ql"><strong>Query String</strong> <a id="query-help" href="#" class="help-link">get help</a> </label>
<div class="controls">
<div class="input-append">
<input id="query-ql" type="text" name="query" class="span5" placeholder="ex: select * where name='fred'"/>
<div class="btn-group pull-right">
<a class="btn dropdown-toggle " data-toggle="dropdown">
<span id='query-collections-caret' class="caret"></span>
</a>
<ul id="query-collections-indexes-list" class="dropdown-menu ">
</ul>
</div>
</div>
</div>
</div>
<div class="control-group" id="query-limit-box">
<label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" class="help-link">get help</a></label>
<div class="controls">
<div class="input-append">
<input id="query-limit" type="text" name="query-limit" class="span5" placeholder="ex: 10"/>
</div>
</div>
</div>
<div class="control-group" id="query-json-box" style="display:none">
<label class="control-label" for="query-source"><strong>JSON Body</strong> <a id="query-json-help" href="#" class="help-link">get help</a></label>
<div class="controls">
<div class="input-append">
<textarea id="query-source" class="span6 pull-left" rows="4">
{ "name":"value" }
</textarea>
</div>
<a class="btn pull-left" id="button-query-validate" >Validate JSON</a>
<div id="statusbar-placeholder" style="width: 100px; float: right;"></div>
</div>
</div>
<div style="clear: both; height: 10px;"></div>
<div class="control-group">
<button type="button" class="btn btn-primary" id="button-query">Run Query</button>
</div>
</form>
</div>
</div>
<div id="query-response-area" class="console-section" style="display: none;">
<div class="well thingy" id="query-received-header">
<div class="bar" style="height: 40px;">
<div id="data-explorer-status" class="alert" style="float: left; width: 410px;margin-top: -5px;display:none;"></div>
<a class="btn " data-toggle="modal" id="delete-entity-link" > Delete</a>
</div>
</div>
<div class="console-section-contents">
<!--<pre class="query-response-json">{ }</pre>-->
<table id="query-response-table">
</table>
<ul id="query-response-pagination" class="pager">
<li style="display: none" id="query-response-previous" class="previous"><a >&larr; Previous</a></li>
<li style="display: none" id="query-response-next" class="next"><a >Next &rarr;</a></li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="cleaner">&nbsp;</div>
</div>
</div>
</div>
</div>
<!--
<div id="footer">
<div class="column-in">
<div id="copyright" class="pull-right">&copy; 2013 Apigee Corp. All rights reserved.</div>
</div>
</div>
-->
<script src="js/app/ui/collections.entity.js" type="text/javascript"></script>
<script src="js/app/ui/collections.user.js" type="text/javascript"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-4084158-4']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
<link rel="stylesheet" type="text/css" href="css/custom-theme/jquery-ui-1.8.9.custom.css"/>
<link rel="stylesheet" type="text/css" href="css/jquery-ui-timepicker.css"/>
<link rel="stylesheet" type="text/css" href="css/jquery.ui.statusbar.css"/>
<link rel="stylesheet" type="text/css" href="css/prettify.css"/>
<script src="js/lib/MD5.min.js" type="text/javascript"></script>
<script src="https://www.google.com/jsapi?autoload=%7B%22modules%22%3A%5B%7B%22name%22%3A%22visualization%22%2C%22version%22%3A%221.0%22%2C%22packages%22%3A%5B%22corechart%22%5D%7D%5D%7D" type="text/javascript"></script>
<script src="js/lib/bootstrap.min.js" type="text/javascript"></script>
<script src="js/app/pages.js" type="text/javascript"></script>
<script src="js/app/app.js" type="text/javascript"></script>
<script src="js/app/status.js" type="text/javascript"></script>
<script src="js/lib/prettify.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">prettyPrint();</script>
</body>
</html>