Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

updated to latest version of SDK, and added session storage

  • Loading branch information...
commit 4c8f379e6931535d47e2dd74ed27518b681a511a 1 parent 7c50db9
@rodsimpson rodsimpson authored
View
4 index.html
@@ -9,6 +9,7 @@
<script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
<script src="js/app.js" type="text/javascript"></script>
<script src="js/usergrid.appSDK.js" type="text/javascript"></script>
+ <script src="js/usergrid.session.js" type="text/javascript"></script>
<script type="text/javascript">
try {
// first, set the org and app path.
@@ -18,6 +19,7 @@
$('#login-section-error')
.html('There was an error initializing: ' + JSON.stringify(e));
}
+ Usergrid.ApiClient.getOrganizationName();
</script>
</head>
<body>
@@ -30,7 +32,7 @@
<h3>Messagee is a sample messaging app, like Twitter</h3>
<p>
<h4>Log in using your Messagee account.</h4>
- Don&apos;t have an account? use our test account (username: testuser / password: testuser), or create a new one!
+ Don&apos;t have an account? use our test account (username: myuser / password: mypass), or create a new one!
</p>
<span id="login-section-error"></span>
<form name="form-login" id="form-login">
View
43 js/app.js
@@ -49,11 +49,6 @@ $(document).ready(function () {
$('#btn-create-new-account').bind('click', createNewUser);
$('#btn-update-account').bind('click', updateUser);
- $('#btn-close').bind('click', function() {
- //turn the reload timer on
- feedReloadTimer = window.setInterval( timerRefreshView, 30000 );
- });
-
$('#btn-previous').bind('click', function() {
if (fullFeedView) {
fullActivityFeed.getPreviousPage();
@@ -76,12 +71,16 @@ $(document).ready(function () {
$('#btn-show-create-message').bind('click', function() {;
$("#content").val('');
$("#content").focus();
- //turn the reload timer off so we don't get interrupted during the update
- window.clearInterval( feedReloadTimer );
});
$('#post-message').bind('click', postMessage);
+ //log the user in if they already have a session
+ if (Usergrid.ApiClient.isLoggedInAppUser()) {
+ appUser = Usergrid.ApiClient.getLoggedInUser();
+ showFullFeed();
+ }
+
/**
* function to log in the app user. The API returns a token,
* which is stored in Usergrid.ApiClient and used for all future
@@ -139,9 +138,6 @@ $(document).ready(function () {
* @return none
*/
function pageUpdateAccount(){
- //turn the reload timer off so we don't get interrupted during the update
- window.clearInterval( feedReloadTimer );
-
$("#update-name").val(appUser.get('name'));
$("#update-email").val(appUser.get('email'));
$("#update-username").val(appUser.get('username'));
@@ -227,7 +223,7 @@ $(document).ready(function () {
var username = $("#update-username").val();
var oldpassword = '';
var newpassword = '';
- if (username != "testuser") {
+ if (username != "myuser") {
var oldpassword = $("#update-oldpassword").val();
var newpassword = $("#update-newpassword").val();
}
@@ -509,7 +505,6 @@ $(document).ready(function () {
message.set(actor);
message.save(
function () {
- feedReloadTimer = window.setInterval( timerRefreshView, 30000 );
if (fullFeedView) {
//reset the feed object so when we view it again, we will get the latest feed
fullActivityFeed.clearQuery();
@@ -561,30 +556,6 @@ $(document).ready(function () {
//MD5 function - used for parsing emails for Gravatar images
var MD5=function(s){function L(k,d){return(k<<d)|(k>>>(32-d))}function K(G,k){var I,d,F,H,x;F=(G&2147483648);H=(k&2147483648);I=(G&1073741824);d=(k&1073741824);x=(G&1073741823)+(k&1073741823);if(I&d){return(x^2147483648^F^H)}if(I|d){if(x&1073741824){return(x^3221225472^F^H)}else{return(x^1073741824^F^H)}}else{return(x^F^H)}}function r(d,F,k){return(d&F)|((~d)&k)}function q(d,F,k){return(d&k)|(F&(~k))}function p(d,F,k){return(d^F^k)}function n(d,F,k){return(F^(d|(~k)))}function u(G,F,aa,Z,k,H,I){G=K(G,K(K(r(F,aa,Z),k),I));return K(L(G,H),F)}function f(G,F,aa,Z,k,H,I){G=K(G,K(K(q(F,aa,Z),k),I));return K(L(G,H),F)}function D(G,F,aa,Z,k,H,I){G=K(G,K(K(p(F,aa,Z),k),I));return K(L(G,H),F)}function t(G,F,aa,Z,k,H,I){G=K(G,K(K(n(F,aa,Z),k),I));return K(L(G,H),F)}function e(G){var Z;var F=G.length;var x=F+8;var k=(x-(x%64))/64;var I=(k+1)*16;var aa=Array(I-1);var d=0;var H=0;while(H<F){Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=(aa[Z]|(G.charCodeAt(H)<<d));H++}Z=(H-(H%4))/4;d=(H%4)*8;aa[Z]=aa[Z]|(128<<d);aa[I-2]=F<<3;aa[I-1]=F>>>29;return aa}function B(x){var k="",F="",G,d;for(d=0;d<=3;d++){G=(x>>>(d*8))&255;F="0"+G.toString(16);k=k+F.substr(F.length-2,2)}return k}function J(k){k=k.replace(/rn/g,"n");var d="";for(var F=0;F<k.length;F++){var x=k.charCodeAt(F);if(x<128){d+=String.fromCharCode(x)}else{if((x>127)&&(x<2048)){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128)}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128)}}}return d}var C=Array();var P,h,E,v,g,Y,X,W,V;var S=7,Q=12,N=17,M=22;var A=5,z=9,y=14,w=20;var o=4,m=11,l=16,j=23;var U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;P<C.length;P+=16){h=Y;E=X;v=W;g=V;Y=u(Y,X,W,V,C[P+0],S,3614090360);V=u(V,Y,X,W,C[P+1],Q,3905402710);W=u(W,V,Y,X,C[P+2],N,606105819);X=u(X,W,V,Y,C[P+3],M,3250441966);Y=u(Y,X,W,V,C[P+4],S,4118548399);V=u(V,Y,X,W,C[P+5],Q,1200080426);W=u(W,V,Y,X,C[P+6],N,2821735955);X=u(X,W,V,Y,C[P+7],M,4249261313);Y=u(Y,X,W,V,C[P+8],S,1770035416);V=u(V,Y,X,W,C[P+9],Q,2336552879);W=u(W,V,Y,X,C[P+10],N,4294925233);X=u(X,W,V,Y,C[P+11],M,2304563134);Y=u(Y,X,W,V,C[P+12],S,1804603682);V=u(V,Y,X,W,C[P+13],Q,4254626195);W=u(W,V,Y,X,C[P+14],N,2792965006);X=u(X,W,V,Y,C[P+15],M,1236535329);Y=f(Y,X,W,V,C[P+1],A,4129170786);V=f(V,Y,X,W,C[P+6],z,3225465664);W=f(W,V,Y,X,C[P+11],y,643717713);X=f(X,W,V,Y,C[P+0],w,3921069994);Y=f(Y,X,W,V,C[P+5],A,3593408605);V=f(V,Y,X,W,C[P+10],z,38016083);W=f(W,V,Y,X,C[P+15],y,3634488961);X=f(X,W,V,Y,C[P+4],w,3889429448);Y=f(Y,X,W,V,C[P+9],A,568446438);V=f(V,Y,X,W,C[P+14],z,3275163606);W=f(W,V,Y,X,C[P+3],y,4107603335);X=f(X,W,V,Y,C[P+8],w,1163531501);Y=f(Y,X,W,V,C[P+13],A,2850285829);V=f(V,Y,X,W,C[P+2],z,4243563512);W=f(W,V,Y,X,C[P+7],y,1735328473);X=f(X,W,V,Y,C[P+12],w,2368359562);Y=D(Y,X,W,V,C[P+5],o,4294588738);V=D(V,Y,X,W,C[P+8],m,2272392833);W=D(W,V,Y,X,C[P+11],l,1839030562);X=D(X,W,V,Y,C[P+14],j,4259657740);Y=D(Y,X,W,V,C[P+1],o,2763975236);V=D(V,Y,X,W,C[P+4],m,1272893353);W=D(W,V,Y,X,C[P+7],l,4139469664);X=D(X,W,V,Y,C[P+10],j,3200236656);Y=D(Y,X,W,V,C[P+13],o,681279174);V=D(V,Y,X,W,C[P+0],m,3936430074);W=D(W,V,Y,X,C[P+3],l,3572445317);X=D(X,W,V,Y,C[P+6],j,76029189);Y=D(Y,X,W,V,C[P+9],o,3654602809);V=D(V,Y,X,W,C[P+12],m,3873151461);W=D(W,V,Y,X,C[P+15],l,530742520);X=D(X,W,V,Y,C[P+2],j,3299628645);Y=t(Y,X,W,V,C[P+0],U,4096336452);V=t(V,Y,X,W,C[P+7],T,1126891415);W=t(W,V,Y,X,C[P+14],R,2878612391);X=t(X,W,V,Y,C[P+5],O,4237533241);Y=t(Y,X,W,V,C[P+12],U,1700485571);V=t(V,Y,X,W,C[P+3],T,2399980690);W=t(W,V,Y,X,C[P+10],R,4293915773);X=t(X,W,V,Y,C[P+1],O,2240044497);Y=t(Y,X,W,V,C[P+8],U,1873313359);V=t(V,Y,X,W,C[P+15],T,4264355552);W=t(W,V,Y,X,C[P+6],R,2734768916);X=t(X,W,V,Y,C[P+13],O,1309151649);Y=t(Y,X,W,V,C[P+4],U,4149444226);V=t(V,Y,X,W,C[P+11],T,3174756917);W=t(W,V,Y,X,C[P+2],R,718787259);X=t(X,W,V,Y,C[P+9],O,3951481745);Y=K(Y,h);X=K(X,E);W=K(W,v);V=K(V,g)}var i=B(Y)+B(X)+B(W)+B(V);return i.toLowerCase()};
- /**
- * A simple method to cause the feed to refresh every 30 seconds
- * if you were to want to stop it, use this:
- * window.clearInterval( feedReloadTimer );
- *
- * @method feedReloadTimer
- * @return none
- */
- var feedReloadTimer = window.setInterval( timerRefreshView, 30000 );
-
- function timerRefreshView(){
- /* if (Usergrid.ApiClient.isLoggedInAppUser()) {
- if (fullFeedView) {
- showFullFeed();
- } else {
- showMyFeed();
- }
- } else {
- window.location = "#page-login";
- return;
- } */
- return;
- }
-
});
//abudda abudda abudda that's all folks!
View
51 js/usergrid.appSDK.js
@@ -25,7 +25,7 @@ window.console.log = window.console.log || function() {};
//Usergrid namespace encapsulates this SDK
window.Usergrid = window.Usergrid || {};
Usergrid = Usergrid || {};
-Usergrid.SDK_VERSION = '0.9.6';
+Usergrid.SDK_VERSION = '0.9.7';
/**
* Usergrid.Query is a class for holding all query information and paging state
@@ -1160,8 +1160,8 @@ Usergrid.ApiClient = (function () {
*
*/
function init(orgName, appName){
- _orgName = orgName;
- _appName = appName;
+ this.setOrganizationName(orgName);
+ this.setApplicationName(appName);
}
/*
@@ -1215,29 +1215,6 @@ Usergrid.ApiClient = (function () {
}
/*
- * A public method to get the organization UUID to be used by the client
- *
- * @method getOrganizationUUID
- * @public
- * @return {string} the organization UUID
- */
- function getOrganizationUUID() {
- return _orgUUID;
- }
-
- /*
- * A public method to set the organization UUID to be used by the client
- *
- * @method setOrganizationUUID
- * @public
- * @param orgUUID - the organization UUID
- * @return none
- */
- function setOrganizationUUID(orgUUID) {
- _orgUUID = orgUUID;
- }
-
- /*
* A public method to get the application name to be used by the client
*
* @method getApplicationName
@@ -1393,7 +1370,7 @@ Usergrid.ApiClient = (function () {
* @return none
*/
function logoutAppUser() {
- this._loggedInUser = null;
+ this.setLoggedInUser(null);
this.setToken(null);
}
@@ -1631,6 +1608,8 @@ Usergrid.ApiClient = (function () {
//store the curl command back in the object
Query.setCurl(curl);
+ var ie = (navigator.appName == 'Microsoft Internet Explorer') ? true:false;
+
//so far so good, so run the query
var xD = window.XDomainRequest ? true : false;
var xM = window.XMLHttpRequest ? true : false;
@@ -1646,9 +1625,13 @@ Usergrid.ApiClient = (function () {
path = '?access_token='+Usergrid.ApiClient.getToken();
}
}
+ if (ie) {
+
+
+ }
xhr.open(method, path, true);
}
- else if (xM)
+ else
{
xhr = new XMLHttpRequest();
xhr.open(method, path, true);
@@ -1656,16 +1639,6 @@ Usergrid.ApiClient = (function () {
xhr.setRequestHeader("Authorization", "Bearer " + Usergrid.ApiClient.getToken());
xhr.withCredentials = true;
}
- } else {
- xhr = new ActiveXObject("MSXML2.XMLHTTP.3.0");
- if (Usergrid.ApiClient.getToken()) {
- if (path.indexOf("?")) {
- path += '&access_token='+Usergrid.ApiClient.getToken();
- } else {
- path = '?access_token='+Usergrid.ApiClient.getToken();
- }
- }
- xhr.open(method, path, true);
}
//add content type = json if there is a json payload
@@ -1741,8 +1714,6 @@ Usergrid.ApiClient = (function () {
runManagementQuery:runManagementQuery,
getOrganizationName:getOrganizationName,
setOrganizationName:setOrganizationName,
- getOrganizationUUID:getOrganizationUUID,
- setOrganizationUUID:setOrganizationUUID,
getApplicationName:getApplicationName,
setApplicationName:setApplicationName,
getToken:getToken,
View
95 js/usergrid.session.js
@@ -0,0 +1,95 @@
+/**
+ * App SDK is a collection of classes designed to make working with
+ * the Appigee App Services API as easy as possible.
+ * Learn more at http://apigee.com/docs
+ *
+ * Copyright 2012 Apigee Corporation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+window.Usergrid = window.Usergrid || {};
+Usergrid = Usergrid || {};
+(function() {
+
+ if (!Storage.prototype.setObject) {
+ Storage.prototype.setObject = function(key, value) {
+ this.setItem(key, JSON.stringify(value));
+ };
+ }
+ if (!Storage.prototype.getObject) {
+ Storage.prototype.getObject = function(key) {
+ try {
+ return this.getItem(key) && JSON.parse(this.getItem(key));
+ } catch(err) {
+ }
+ return null;
+ };
+ }
+ /**
+ * Standardized methods for maintaining user and authentication state in the Application
+ * @class UserSession
+ * @author Rod Simpson (rod@apigee.com)
+ */
+ Usergrid.ApiClient.getOrganizationName = function() {
+ return localStorage.getItem('organizationName');
+ }
+ Usergrid.ApiClient.setOrganizationName = function(organizationName) {
+ localStorage.setItem('organizationName', organizationName);
+ }
+
+ Usergrid.ApiClient.getApplicationName = function() {
+ return localStorage.getItem('applicationName');
+ }
+ Usergrid.ApiClient.setApplicationName = function(applicationName) {
+ localStorage.setItem('applicationName', applicationName);
+ }
+
+ Usergrid.ApiClient.getToken = function() {
+ return localStorage.getItem('token');
+ }
+ Usergrid.ApiClient.setToken = function(token) {
+ localStorage.setItem('token', token);
+ }
+
+ Usergrid.ApiClient.getLoggedInUser = function() {
+ var data = JSON.parse(localStorage.getItem('user'));
+ var user = new Usergrid.Entity('user');
+ user.set(data);
+ return user;
+ }
+ Usergrid.ApiClient.setLoggedInUser = function(user) {
+ var data = null;
+ if (user) {
+ //get all the data from the object
+ data = user.get();
+ }
+ //and store it
+ localStorage.setItem('user', JSON.stringify(data));
+ }
+ Usergrid.ApiClient.getLoggedInUser2 = function() {
+ return localStorage.getObject('user');
+ }
+ Usergrid.ApiClient.setLoggedInUser2 = function(user) {
+ localStorage.setObject('user', user);
+ }
+
+
+
+ Usergrid.ApiClient.clearAll= function () {
+ localStorage.removeItem('userUUID');
+ localStorage.removeItem('userEmail');
+ localStorage.removeItem('accessToken');
+ }
+
+})(Usergrid);
Please sign in to comment.
Something went wrong with that request. Please try again.