| <!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-stripped.css"/> |
| <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.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> |
| |
| <style type="text/css"> |
| |
| |
| </style> |
| |
| </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">×</a> |
| <strong id="alert-error-header"></strong> |
| <span id="alert-error-message"></span> |
| </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="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">×</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">×</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">×</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 >← Previous</a></li> |
| <li id="users-next" class="next"><a >Next →</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">×</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">×</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">×</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">×</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">×</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">×</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">×</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="queryMethodHelpModal" class="modal hide fade"> |
| <div class="modal-header"> |
| <a class="close" data-dismiss="modal">×</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">×</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 & 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">×</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">×</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">×</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 >← Previous</a></li> |
| <li id="groups-next" class="next"><a >Next →</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">×</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 & 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">×</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">×</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 >← Previous</a></li> |
| <li id="roles-next" class="next"><a >Next →</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">×</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">×</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">×</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 >← Previous</a></li> |
| <li id="activities-next" class="next"><a >Next →</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> >> </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 Users |
| <input type="radio" name="notification-user-group" id="notification-user-group-users" value="users"> User(s) |
| <input type="radio" name="notification-user-group" id="notification-user-group-group" value="groups"> Groups |
| </div> |
| |
| <div class="control-group"> |
| <div id="notificaitons-users-select-container" style="display: none"> |
| Enter the users manually:<br> |
| <textarea id="user-list" placeholder="user1,user2,user3,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"> |
| <textarea id="group-list" placeholder="group1,group2,group3,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 href="" class="notifications-links">ADD LINK!!!! 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"/> |
| </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">×</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">×</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">Started</a></li> |
| <li><a href="#" id="view-notifications-sent">Sent</a></li> |
| <li><a href="#" id="view-notifications-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;"> </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 >← Previous</a></li> |
| <li style="display: none" id="notifications-history-next" class="next"><a >Next →</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;"> </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 >← Previous</a></li> |
| <li style="display: none" id="notification-receipt-next" class="next"><a >Next →</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"> |
| Before you get started: 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 retrieve .p12 certificates from 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> |
| |
| <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> |
| |
| <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> |
| |
| <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"> |
| Before you get started: <a href="">see our getting started 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 href="" class="notifications-links">ADD LINK!! 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 notifications-get-started-top"> |
| <div class="header"> |
| <img src="images/step_1.png" style="float: left;padding-right: 10px;"> |
| <div style="padding-top: 9px;"> |
| Retrieve your APNs .p12 certificate(s) from the <a href="https://developer.apple.com/ios/manage/overview/index.action">Apple Developer Connection website</a> |
| </div> |
| </div> |
| <img style="margin-bottom: -9px;" 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-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 notifications-get-started-top"> |
| <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-bottom: -5px;" src="images/iphone_message.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">×</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">◀ 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 |
| <input type="radio" name="query-action" value="post" style="margin-top: -2px;" id="button-query-post"> POST |
| <input type="radio" name="query-action" value="put" style="margin-top: -2px;" id="button-query-put"> PUT |
| <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 >← Previous</a></li> |
| <li style="display: none" id="query-response-next" class="next"><a >Next →</a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| </div> |
| </div> |
| <div class="cleaner"> </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <!-- |
| <div id="footer"> |
| <div class="column-in"> |
| <div id="copyright" class="pull-right">© 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> |
| <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> |