You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/09/02 16:27:44 UTC

[13/13] usergrid git commit: Moving the Javascript SDK to https://github.com/apache/usergrid-javascript.

Moving the Javascript SDK to https://github.com/apache/usergrid-javascript.


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/fa590f5c
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/fa590f5c
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/fa590f5c

Branch: refs/heads/master
Commit: fa590f5c7ee6a37e7a315d4dc03f06863ad5d357
Parents: c182968
Author: Michael Russo <mr...@apigee.com>
Authored: Fri Sep 2 09:27:08 2016 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Fri Sep 2 09:27:08 2016 -0700

----------------------------------------------------------------------
 sdks/html5-javascript/Gruntfile.js              |  139 -
 sdks/html5-javascript/LICENSE                   |  202 -
 sdks/html5-javascript/README.md                 |  885 +--
 sdks/html5-javascript/changelog.md              |   76 -
 .../examples/all-calls/all-calls.html           |  176 -
 sdks/html5-javascript/examples/all-calls/app.js |  236 -
 sdks/html5-javascript/examples/dogs/app.js      |  194 -
 sdks/html5-javascript/examples/dogs/dogs.html   |   74 -
 sdks/html5-javascript/examples/facebook/app.js  |  129 -
 .../examples/facebook/facebook.html             |   73 -
 .../examples/facebook/guide.html                |   63 -
 .../examples/persistence/test.html              |   54 -
 .../examples/persistence/test.js                |  130 -
 .../resources/css/bootstrap-combined.min.css    |   18 -
 .../examples/resources/css/styles.css           |   91 -
 .../examples/resources/images/apigee.png        |  Bin 6010 -> 0 bytes
 .../examples/resources/js/json2.js              |  486 --
 sdks/html5-javascript/examples/test/test.html   |   54 -
 sdks/html5-javascript/examples/test/test.js     |  978 ----
 .../extensions/usergrid.validation.js           |  267 -
 sdks/html5-javascript/index.html                |   70 -
 sdks/html5-javascript/lib/Module.js             |   49 -
 sdks/html5-javascript/lib/Usergrid.js           |  323 --
 sdks/html5-javascript/lib/modules/Asset.js      |  248 -
 sdks/html5-javascript/lib/modules/Client.js     |  883 ---
 sdks/html5-javascript/lib/modules/Collection.js |  483 --
 sdks/html5-javascript/lib/modules/Counter.js    |  196 -
 sdks/html5-javascript/lib/modules/Entity.js     |  767 ---
 sdks/html5-javascript/lib/modules/Error.js      |  155 -
 sdks/html5-javascript/lib/modules/Folder.js     |  190 -
 sdks/html5-javascript/lib/modules/Group.js      |  231 -
 sdks/html5-javascript/lib/modules/util/Ajax.js  |   99 -
 sdks/html5-javascript/lib/modules/util/Event.js |   33 -
 .../html5-javascript/lib/modules/util/Logger.js |   89 -
 .../lib/modules/util/Promise.js                 |  101 -
 sdks/html5-javascript/package.json              |   22 -
 sdks/html5-javascript/tests/mocha/index.html    |   60 -
 sdks/html5-javascript/tests/mocha/test.js       | 1078 ----
 .../tests/qunit/apigee_test.html                |   31 -
 sdks/html5-javascript/tests/qunit/tests.js      |   20 -
 .../resources/css/bootstrap-combined.min.css    |   18 -
 .../tests/resources/css/mocha.css               |  270 -
 .../tests/resources/css/styles.css              |   91 -
 .../tests/resources/images/apigee.png           |  Bin 6010 -> 0 bytes
 .../tests/resources/js/blanket_mocha.min.js     |    1 -
 .../tests/resources/js/json2.js                 |  486 --
 .../tests/resources/js/mocha.js                 | 5341 ------------------
 sdks/html5-javascript/tests/test.html           |   54 -
 sdks/html5-javascript/tests/test.js             |  927 ---
 sdks/html5-javascript/usergrid.js               | 3286 -----------
 sdks/html5-javascript/usergrid.min.js           |   20 -
 51 files changed, 3 insertions(+), 19944 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/Gruntfile.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/Gruntfile.js b/sdks/html5-javascript/Gruntfile.js
deleted file mode 100644
index a2b7b6f..0000000
--- a/sdks/html5-javascript/Gruntfile.js
+++ /dev/null
@@ -1,139 +0,0 @@
-module.exports = function(grunt) {
-	var files = [
-        "lib/modules/util/Event.js",
-        "lib/modules/util/Logger.js",
-        "lib/modules/util/Promise.js",
-        "lib/modules/util/Ajax.js",
-        "lib/Usergrid.js",
-		"lib/modules/Client.js",
-		"lib/modules/Entity.js",
-		"lib/modules/Collection.js",
-		"lib/modules/Group.js",
-		"lib/modules/Counter.js",
-		"lib/modules/Folder.js",
-		"lib/modules/Asset.js",
-		"lib/modules/Error.js"
-	];
-	var tests = ["tests/mocha/index.html", "tests/mocha/test_*.html"];
-	// Project configuration.
-	grunt.initConfig({
-        //pkg: grunt.file.readJSON('package.json'),
-        "meta": {
-            "package": grunt.file.readJSON("package.json")
-        },
-        "clean": ["usergrid.js", "usergrid.min.js"],
-        "uglify": {
-            "unminified": {
-                "options": {
-                    "banner": "/*! \n\
- *Licensed to the Apache Software Foundation (ASF) under one\n\
- *or more contributor license agreements.  See the NOTICE file\n\
- *distributed with this work for additional information\n\
- *regarding copyright ownership.  The ASF licenses this file\n\
- *to you under the Apache License, Version 2.0 (the\n\
- *\"License\"); you may not use this file except in compliance\n\
- *with the License.  You may obtain a copy of the License at\n\
- *\n\
- *  http://www.apache.org/licenses/LICENSE-2.0\n\
- * \n\
- *Unless required by applicable law or agreed to in writing,\n\
- *software distributed under the License is distributed on an\n\
- *\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\
- *KIND, either express or implied.  See the License for the\n\
- *specific language governing permissions and limitations\n\
- *under the License.\n\
- * \n\
- * \n\
- * <%= meta.package.name %>@<%= meta.package.version %> <%= grunt.template.today('yyyy-mm-dd') %> \n\
- */\n",
-                    "mangle": false,
-                    "compress": false,
-                    "beautify": true,
-                    "preserveComments": function(node, comment){
-                        //console.log((node.parent_scope!==undefined&&comment.value.indexOf('*Licensed to the Apache Software Foundation')===-1)?"has parent":comment.value);
-                        return comment.type==='comment2'&&comment.value.indexOf('*Licensed to the Apache Software Foundation')===-1;
-                    }
-                },
-                "files": {
-                    "usergrid.js": files
-                }
-            },
-            "minified": {
-                "options": {
-                    "banner": "/*! \n\
- *Licensed to the Apache Software Foundation (ASF) under one\n\
- *or more contributor license agreements.  See the NOTICE file\n\
- *distributed with this work for additional information\n\
- *regarding copyright ownership.  The ASF licenses this file\n\
- *to you under the Apache License, Version 2.0 (the\n\
- *\"License\"); you may not use this file except in compliance\n\
- *with the License.  You may obtain a copy of the License at\n\
- *\n\
- *  http://www.apache.org/licenses/LICENSE-2.0\n\
- * \n\
- *Unless required by applicable law or agreed to in writing,\n\
- *software distributed under the License is distributed on an\n\
- *\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n\
- *KIND, either express or implied.  See the License for the\n\
- *specific language governing permissions and limitations\n\
- *under the License.\n\
- * \n\
- * \n\
- * <%= meta.package.name %>@<%= meta.package.version %> <%= grunt.template.today('yyyy-mm-dd') %> \n\
- */\n",
-                    "mangle": false,
-                    "compress": true,
-                    "beautify": false,
-                    "preserveComments": "some"
-                },
-                "files": {
-                    "usergrid.min.js": files
-                }
-            }
-        },
-        "connect": {
-            "server": {
-                "options": {
-                    "port": 3000,
-                    "base": "."
-                }
-            },
-            "test": {
-                "options": {
-                    "port": 8000,
-                    "base": "."
-                }
-            }
-        },
-        "watch": {
-            "files": [files, 'Gruntfile.js'],
-            "tasks": ["default"]
-        },
-        "blanket_mocha": {
-            //"all": tests,
-            urls: [ 'http://localhost:8000/tests/mocha/index.html' ],
-            "options": {
-                "dest": "report/coverage.html",
-                "reporter": "Spec",
-                "threshold": 70
-            }
-        }
-    });
-	grunt.loadNpmTasks("grunt-contrib-clean");
-	grunt.loadNpmTasks("grunt-contrib-uglify");
-	grunt.loadNpmTasks("grunt-contrib-watch");
-	grunt.loadNpmTasks("grunt-contrib-connect");
-	grunt.loadNpmTasks("grunt-blanket-mocha");
-	grunt.registerTask("default", [
-		"clean",
-		"uglify"
-	]);
-	grunt.registerTask("dev", [
-		"connect:server",
-		"watch"
-	]);
-	grunt.registerTask("test", [
-		"connect:test",
-		"blanket_mocha"
-	]);
-};

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/LICENSE
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/LICENSE b/sdks/html5-javascript/LICENSE
deleted file mode 100644
index e06d208..0000000
--- a/sdks/html5-javascript/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} {name of copyright owner}
-
-   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.
-

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/README.md
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/README.md b/sdks/html5-javascript/README.md
index 787cffc..8fa4099 100755
--- a/sdks/html5-javascript/README.md
+++ b/sdks/html5-javascript/README.md
@@ -1,883 +1,4 @@
-# HTML5-JavaScript SDK
-
-##Quickstart
-Detailed instructions follow but if you just want a quick example of how to get started with this SDK, here\u2019s a minimal HTML5 file that shows you how to include & initialize the SDK, as well as how to read & write data from Usergrid with it.
-
-```html
-<!DOCTYPE html>
-<html>
-	<head>
-		<!-- Don't forget to include the SDK -->
-		<script src="/path/to/usergrid.js"></script>
-		<!-- You can find the file in the Usergrid github repo
-			 https://github.com/usergrid/usergrid/blob/master/sdks/html5-javascript/usergrid.js -->
-
-		<script type="text/javascript">
-
-		
-			// Initializing the SDK
-			var client = new Usergrid.Client({
-				orgName:'yourorgname', // Your Usergrid organization name (or apigee.com username for App Services)
-				appName:'sandbox' // Your Usergrid app name
-			});
-
-			// Make a new "book" collection and read data
-			var options = {
-				type:'books',
-				qs:{ql:'order by created DESC'}
-			}
-
-			var books;
-
-			client.createCollection(options, function (err, collection) {
-				books = collection;
-				if (err) {
-					alert("Couldn't get the list of books.");
-				} else {
-					while(books.hasNextEntity()) {
-						var book = books.getNextEntity();
-						alert(book.get("title")); // Output the title of the book
-					}
-				}
-			});
-
-			// Uncomment the next 4 lines if you want to write data
-
-			// book = { "title": "the old man and the sea" };
-			// books.addEntity(book, function (error, response) {
-			// 	if (error) { alert("Couldn't add the book.");
-			// 	} else { alert("The book was added."); } });
-		</script>
-	</head>
-	<body></body>
-</html>
-```
-
-##Version
-
-Current Version: **0.11.0**
-
-See change log:
-
-<https://github.com/usergrid/usergrid/blob/master/sdks/html5-javascript/changelog.md>
-
-##Comments / questions
-For help using this SDK, reach out on the Usergrid google group:
-
-https://groups.google.com/forum/?hl=en#!forum/usergrid
-
-Or just open github issues. 
-
-
-
-##Overview
-This open source SDK simplifies writing JavaScript / HTML5 applications that connect to Usergrid. The repo is located here:
-
-<https://github.com/usergrid/usergrid/tree/master/sdks/html5-javascript>
-
-You can download this package here:
-
-* Download as a zip file: <https://github.com/usergrid/usergrid/archive/master.zip>
-* Download as a tar.gz file: <https://github.com/usergrid/usergrid/archive/master.tar.gz>
-
-The Javascript SDK is in the sdks/html5-javascript folder.
-
-To find out more about Usergrid, see:
-
-<http://usergrid.apache.org>
-
-To view the Usergrid documentation, see:
-
-<http://usergrid.apache.org/docs/>
-
-
-##Node.js
-Want to use Node.js? No problem - use the Usergrid Node Module:
-
-<https://npmjs.org/package/usergrid>
-
-or on github:
-
-<https://github.com/usergrid/usergrid/tree/master/sdks/nodejs>
-
-The syntax for this Javascript SDK and the Usergrid Node module are almost exactly the same so you can easily transition between them.
-
-
-##About the samples
-This SDK comes with a variety of samples that you can use to learn how to connect your project to App Services (Usergrid).
-
-**Note:** All the sample code in this file is pulled directly from the "test" example, so you can rest-assured that it will work! You can find it here:
-
-<https://github.com/usergrid/usergrid/blob/master/sdks/html5-javascript/examples/test/test.html>
-
-
-##Installing
-Once you have downloaded the SDK, add the usergrid.js file to your project. This file is located in the root of the SDK. Include it in the top of your HTML file (in between the head tags):
-
-	<script src="path/to/usergrid.js" type="text/javascript"></script>
-
-##Getting started
-You are now ready to create a new `Client` object, which is the main entry point in the SDK:
-
-	var client = new Usergrid.Client({
-		orgName:'yourorgname',
-		appName:'sandbox',
-		logging: true, // Optional - turn on logging, off by default
-		buildCurl: true // Optional - turn on curl commands, off by default
-	});
-
-The last two items are optional. The `logging` option will enable console.log output from the client, and will output various bits of information (calls that are being made, errors that happen).  The `buildCurl` option will cause cURL equivalent commands of all calls to the API to be displayed in the console.log output (see more about this below).
-
-**Note:** You can find your organization name and application in the [Admin Portal](http://apigee.com/usergrid).
-
-You are now ready to use the `Client` object to make calls against the API.
-
-##Asynchronous vs. synchronous calls (a quick discussion)
-This SDK works by making RESTful API calls from your application to the App Services (Usergrid) API. This SDK currently only supports asynchronous calls. 
-
-If an API call is _synchronous_, it means that code execution will block (or wait) for the API call to return before continuing. This SDK does not yet support synchronous calls.
-
-_Asynchronous_ calls, which are supported by this SDK, do not block (or wait) for the API call to return from the server. Execution continues on in your program, and when the call returns from the server, a "callback" function is executed. For example, in the following code, the function `dogCreateCallback` will be called when the `createEntity` call returns from the server.  Meanwhile, execution will continue.
-
-	function dogCreateCallback(err, dog) {
-		alert('I will probably be called second');
-		if (err) {
-			// Error - Dog not created
-		} else {
-			// Success - Dog was created
-		}
-	}
-	
-	client.createEntity({type:'dogs'}, dogCreateCallback);
-	
-	alert('I will probably be called first');
-
-The result of this is that we cannot guarantee the order of the two alert statements.  Most likely, the alert right after the `createEntity` function will be called first because the API call will take a second or so to complete.
-
-The important point is that program execution will continue asynchronously, the callback function will be called once program execution completes.
-
-##Entities and collections
-Usergrid stores its data as _entities_ in _collections_.  Entities are essentially JSON objects and collections are just like folders for storing these objects. You can learn more about entities and collections in the App Services docs:
-
-<http://apigee.com/docs/usergrid/content/data-model>
-
-
-##Entities
-You can easily create new entities, or access existing ones. Here is a simple example that shows how to create a new entity of type "dogs":
-
-	var options = {
-		type:'dogs',
-		name:'einstein'
-	}
-
-	client.createEntity(options, function (err, dog) {
-		if (err) {
-			//Error - Dog not created
-		} else {
-			//Success - Dog was created
-		}
-	});
-
-**Note:** All calls to the API will be executed asynchronously, so it is important that you use a callback.
-
-Once your object is created, you can update properties on it by using the `set` method, then save it back to the database using the `save` method:
-
-	// Once the dog is created, you can set single properties (key, value)
-	dog.set('breed','mutt');
-
-	// The set function can also take a JSON object
-	var data = {
-		master:'Doc',
-		state:'hungry'
-	}
-
-	// Set is additive, so previously set properties are not overwritten unless a property with the same name exists in the data object
-	dog.set(data);
-
-	// And save back to the database
-	dog.save(function(err){
-		if (err){
-			// Error - dog not saved
-		} else {
-			// Success - dog was saved
-		}
-	});
-
-**Note:** Using the `set` function will set the properties locally. Make sure you call the `save` method on the entity to save them back to the database!
-
-You can also refresh the object from the database if needed (in case the data has been updated by a different client or device) by using the `fetch` method.  Use the `get` method to retrieve properties from the object:
-
-	// Call fetch to refresh the data from the server
-	dog.fetch(function(err){
-		if (err){
-			// Error - dog not refreshed from database
-		} else {
-			// Dog has been refreshed from the database
-			// Will only work if the UUID for the entity is in the dog object
-
-			// Get single properties from the object using the get method
-			var master = dog.get('master');
-			var name = dog.get('name');
-
-			// Or, get all the data as a JSON object:
-			var data = dog.get();
-
-			// Based on statements above, the data object should look like this:
-			/*
-			{
-				type:'dogs',
-				name:'einstein',
-				master:'Doc',
-				state:'hungry',
-				breed:'mutt'
-			}
-			*/
-
-		}
-	});
-
-Use the `destroy` method to remove the entity from the database:
-
-	// The destroy method will delete the entity from the database
-	dog.destroy(function(err){
-		if (err){
-			// Error - dog not removed from database
-		} else {
-			// Success - dog was removed from database
-			dog = null;
-			// No real dogs were harmed!
-		}
-	});
-
-##The collection object
-The collection object models collections in the database. Once you start programming your app, you will likely find that this is a useful method of interacting with the database.  Creating a collection will automatically populate the object with entities from the collection.
-
-The following example shows how to create a collection object, then how to use those entities once they have been populated from the server:
-
-	// Options object needs to have the type (which is the collection type)
-	// \u201dqs\u201d is for \u201cquery string\u201d. \u201cql\u201d is for \u201cquery language\u201d
-	var options = {
-		type:'dogs',
-		qs:{ql:'order by index'}
-	}
-
-	client.createCollection(options, function (err, dogs) {
-		if (err) {
-			// Error - could not make collection
-		} else {
-			// Success - new collection created
-
-			// We got the dogs, now display the entities
-			while(dogs.hasNextEntity()) {
-				// Get a reference to the dog
-				dog = dogs.getNextEntity();
-				// Do something with the entity
-				var name = dog.get('name');
-			}
-
-		}
-	});
-
-You can also add a new entity of the same type to the collection:
-
-	// Create a new dog and add it to the collection
-	var options = {
-		name:'extra-dog',
-		fur:'shedding'
-	}
-	// Just pass the options to the addEntity method
-	// to the collection and it is saved automatically
-	dogs.addEntity(options, function(err, dog, data) {
-		if (err) {
-			// Error - extra dog not saved or added to collection
-		} else {
-			// Success - extra dog saved and added to collection
-		}
-	});
-
-##Collection iteration and paging
-At any given time, the collection object will have one page of data loaded. To get the next page of data from the server and iterate across the entities, use the following pattern:
-
-	if (dogs.hasNextPage()) {
-		// There is a next page, so get it from the server
-		dogs.getNextPage(function(err){
-			if (err) {
-				// Error - could not get next page of dogs
-			} else {
-				// Success - got next page of dogs, so do something with it
-				while(dogs.hasNextEntity()) {
-					// Get a reference to the dog
-					dog = dogs.getNextEntity();
-					// Do something with the entity
-					var name = dog.get('name');
-				}
-			}
-		});
-	}
-
-You can use the same pattern with the `hasPreviousPage` and `getPreviousPage` methods to get a previous page of data.
-
-By default, the database will return 10 entities per page.  Use the `qs` (query string) property (more about this below) to set a different limit (up to 999):
-
-	var options = {
-		type:'dogs',
-		qs:{limit:50} // Set a limit of 50 entities per page
-	}
-
-	client.createCollection(options, function (err, dogs) {
-		if (err) {
-			// Error - could not get all dogs
-		} else {
-			// Success - got at most 50 dogs
-
-			// We got 50 dogs, now display the entities
-			while(dogs.hasNextEntity()) {
-				// Get a reference to the dog
-				var dog = dogs.getNextEntity();
-				// Do something with the entity
-				var name = dog.get('name');
-			}
-
-			// Wait! What if we want to display them again??
-			// Simple! Just reset the entity pointer:
-			dogs.resetEntityPointer();
-			while(dogs.hasNextEntity()) {
-				// Get a reference to the dog
-				var dog = dogs.getNextEntity();
-				// Do something with the entity
-				var name = dog.get('name');
-			}
-
-		}
-	});
-
-Several convenience methods exist to make working with pages of data easier:
-
-* `resetPaging` - Calls made after this will get the first page of data (the cursor, which points to the current page of data, is deleted)
-* `getFirstEntity` - Gets the first entity of a page
-* `getLastEntity` - Gets the last entity of a page
-* `resetEntityPointer` - Sets the internal pointer back to the first element of the page
-* `getEntityByUUID` - Returns the entity if it is in the current page
-
-###Custom Queries
-A custom query allows you to tell the API that you want your results filtered or altered in some way.
-
-Use the `qs` property in the options object - "qs" stands for "query string".  By adding a JSON object of key/value pairs to the `qs` property of the options object, you signal that you want those values used for the key/value pairs in the query string that is sent to the server.
-
-For example, to specify that the query results should be ordered by creation date, add the `qs` parameter to the options object:
-
-	var options = {
-		type:'dogs',
-		qs:{ql:'order by created DESC'}
-	};
-
-The `qs` object above will be converted into a query language call that looks like this:
-
-	/dogs?ql=order by created DESC
-
-If you also wanted to get more entities in the result set than the default 10, say 100, you can specify a query similar to the following (the limit can be a maximum of 999):
-
-	dogs.qs = {ql:'order by created DESC',limit:'100'};
-
-The `qs` object above will be converted into a call that looks like this:
-
-	/dogs?ql=order by created DESC&limit=100
-
-**Note**: There are many cases where expanding the result set is useful. But be careful -- the more results you get back in a single call, the longer it will take to transmit the data back to your app.
-
-If you need to change the query on an existing object, simply access the `qs` property directly:
-
-	dogs.qs = {ql:'order by created DESC'};
-
-Then make your fetch call:
-
-	dogs.fetch(...)
-
-Another common requirement is to limit the results to a specific query.  For example, to get all brown dogs, use the following syntax:
-
-	dogs.qs = {ql:"select * where color='brown'"};
-
-You can also limit the results returned such that only the fields you specify are returned:
-
-	dogs.qs = {'ql':"select name, age where color='brown'"};
-
-**Note:** In the two preceding examples that we put single quotes around 'brown', so it will be searched as a string.
-
-You can find more information on custom queries here:
-
-<http://usergrid.apache.org/docs/query-language/>
-##Counters
-Counters can be used by an application to create custom statistics, such as how many times an a file has been downloaded or how many instances of an application are in use.
-
-###Create the counter instance
-
-**Note:** The count is not altered upon instantiation
-
-	var counter = new Usergrid.Counter({
-			client: client,
-			data: {
-				category: 'usage',
-				//a timestamp of '0' defaults to the current time
-				timestamp: 0,
-				counters: {
-					running_instances: 0,
-					total_instances: 0
-				}
-			}
-		}, function(err, data) {
-			if (err) { 
-			   // Error - there was a problem creating the counter
-			} else { 
-				// Success - the counter was created properly
-			}
-		});
-
-###Updating counters
-
-When an application starts, we want to increment the 'running_instances' and 'total_instances' counters.
-
-	// add 1 running instance
-	counter.increment({
-			name: 'running_instances',
-			value: 1
-		}, function(err, data) {
-			// ...
-		});
-
-	// add 1 total instance
-	counter.increment({
-			name: 'total_instances',
-			value: 1
-		}, function(err, data) {
-			// ...
-		});
-
-When the application exits, we want to decrement 'running_instances'
-
-	// subtract 1 total instance
-	counter.decrement({
-			name: 'total_instances',
-			value: 1
-		}, function(err, data) {
-			// ...
-		});
-
-Once you have completed your testing, you can reset these values to 0.
-
-	counter.reset({
-			name: 'total_instances'
-		}, function(err, data) {
-			// ...
-		});
-
-##Assets
-
-Assets can be attached to any entity as binary data. This can be used by your application to store images and other file types. There is a limit of one asset per entity.
-
-####Attaching an asset
-
-An asset can be attached to any entity using Enity.attachAsset(file, callback). You can also call attachAsset() on the same entity to change the asset attached to it.
-
-	//Create a new entity to attach an asset to - you can also use an existing entity
-	var properties = {
-	    type:'user',
-	    username:'someUser', 
-	};
-
-	dataClient.createEntity(properties, function(err, response, entity) {
-		if (!err) {
-			//The entity was created, so call attachAsset() on it.
-			entity.attachAsset(file, function(err, response){
-				if (!err){
-					//Success - the asset was attached
-				} else {
-					//Error
-				}
-			});
-		}
-	});
-
-##Retrieving Assets
-
-To retrieve the data, call Entity.downloadAsset(callback). A blob is returned
-in the success callback.
-
-	entity.downloadAsset(function(err, file){
-		if (err) { 
-			// Error - there was a problem retrieving the data
-		} else { 
-			// Success - the asset was downloaded			
-
-			// Create an image tag to hold our downloaded image data
-			var img = document.createElement("img");
-			
-			// Create a FileReader to feed the image
-			// into our newly-created element
-			var reader = new FileReader();
-			reader.onload = (function(aImg) { 
-					return function(e) {
-						aImg.src = e.target.result;
-					}; 
-				})(img);
-			reader.readAsDataURL(file);
-			
-			// Append the img element to our page
-			document.body.appendChild(img);
-		} 
-	})
-
-
-
-##Modeling users with the entity object
-Use the entity object to model users.  Simply specify a type of "users".
-
-**Note:** Remember that user entities use "username", not "name", as the distinct key.
-Here is an example:
-
-	// Type is 'users', set additional parameters as needed.
-	var options = {
-		type:'users',
-		username:'marty',
-		password:'mysecurepassword',
-		name:'Marty McFly',
-		city:'Hill Valley'
-	}
-
-	client.createEntity(options, function (err, marty) {
-		if (err){
-			//Error - user not created
-		} else {
-			//Success - user created
-			var name = marty.get('name');
-		}
-	});
-
-If the user is modified, just call save on the user again:
-
-	// Add properties cumulatively.
-	marty.set('state', 'California');
-	marty.set('girlfriend','Jennifer');
-
-	marty.save(function(err){
-		if (err){
-			// Error - user not updated
-		} else {
-			// Success - user updated
-		}
-	});
-
-To refresh the user's information in the database:
-
-	marty.fetch(function(err){
-		if (err){
-			// Error - not refreshed
-		} else {
-			// Success - user refreshed
-
-			// Do something with the entity
-			var girlfriend = marty.get('girlfriend');
-		}
-	});
-
-###To sign up a new user
-When a new user wants to sign up in your app, simply create a form to catch their information, then use the `client.signup` method:
-
-	// Method signature: client.signup(username, password, email, name, callback)
-	client.signup('marty', 'mysecurepassword', 'marty@timetravel.com', 'Marty McFly',
-		function (err, marty) {
-			if (err){
-				error('User not created');
-				runner(step, marty);
-			} else {
-				success('User created');
-				runner(step, marty);
-			}
-		}
-	);
-
-
-###To log a user in
-Logging a user in means sending the user's username and password to the server, and getting back an access (OAuth) token. You can then use this token to make calls to the API on the user's behalf. The following example shows how to log a user in and log them out:
-
-	username = 'marty';
-	password = 'mysecurepassword';
-	client.login(username, password, function (err) {
-		if (err) {
-			// Error - could not log user in
-		} else {
-			// Success - user has been logged in
-
-			// The login call will return an OAuth token, which is saved
-			// in the client. Any calls made now will use the token.
-			// Once a user has logged in, their user object is stored
-			// in the client and you can access it this way:
-			var token = client.token;
-
-			// Then make calls against the API.  For example, you can
-			// get the logged in user entity this way:
-			client.getLoggedInUser(function(err, data, user) {
-				if(err) {
-					// Error - could not get logged in user
-				} else {
-					// Success - got logged in user
-
-					// You can then get info from the user entity object:
-					var username = user.get('username');
-				}
-			});
-		}
-	});
-
-If you need to change a user's password, set the `oldpassword` and `newpassword` fields, then call save:
-
-	marty.set('oldpassword', 'mysecurepassword');
-	marty.set('newpassword', 'mynewsecurepassword');
-	marty.save(function(err){
-		if (err){
-			// Error - user password not updated
-		} else {
-			// Success - user password updated
-		}
-	});
-
-To log a user out, call the `logout` function:
-
-	client.logout();
-
-	// verify the logout worked
-	if (client.isLoggedIn()) {
-		// Error - logout failed
-	} else {
-		// Success - user has been logged out
-	}
-
-###Making connections
-Connections are a way to connect two entities with a word, typically a verb.  This is called an _entity relationship_.  For example, if you have a user entity with username of marty, and a dog entity with a name of einstein, then using our RESTful API, you could make a call like this:
-
-	POST users/marty/likes/dogs/einstein
-
-This creates a one-way connection between marty and einstein, where marty "likes" einstein.
-
-Complete documentation on the entity relationships API can be found here:
-
-<http://usergrid.apache.org/docs/relationships/>
-
-For example, say we have a new dog named einstein:
-
-	var options = {
-		type:'dogs',
-		name:'einstein',
-		breed:'mutt'
-	}
-
-	client.createEntity(options, function (err, dog) {
-		if (err) {
-			// Error - new dog not created
-		} else {
-			// Success - new dog created
-		}
-	});
-
-Then, we can create a "likes" connection between our user, Marty, and the dog named einstein:
-
-	marty.connect('likes', dog, function (err, data) {
-		if (err) {
-			// Error - connection not created
-		} else {
-			// Success - the connection call succeeded
-			// Now let\u2019s do a getConnections call to verify that it worked
-			marty.getConnections('likes', function (err, data) {
-				if (err) {
-					// Error - could not get connections
-				} else {
-					// Success - got all the connections
-					// Verify that connection exists
-					if (marty.likes.einstein) {
-						// Success - connection exists
-					} else {
-						// Error - connection does not exist
-					}
-				}
-			});
-		}
-	});
-
-We could have just as easily used any other word as the connection (e.g. "owns", "feeds", "cares-for", etc.).
-
-Now, if you want to remove the connection, do the following:
-
-	marty.disconnect('likes', dog, function (err, data) {
-		if (err) {
-			// Error - connection not deleted
-		} else {
-			// Success - the connection has been deleted
-			marty.getConnections('likes', function (err, data) {
-				if (err) {
-					// Error - error getting connections
-				} else {
-					// Success! - now verify that the connection exists
-					if (marty.likes.einstein) {
-						// Error - connection still exists
-					} else {
-						// Success - connection deleted
-					}
-				}
-			});
-		}
-	});
-
-If you no longer need the object, call the `destroy` method and the object will be deleted from database:
-
-	marty.destroy(function(err){
-		if (err){
-			// Error - user not deleted from database
-		} else {
-			// Success - user deleted from database
-			marty = null; // Blow away the local object
-		}
-	});
-
-##Making generic calls
-If you find that you need to make calls to the API that fall outside of the scope of the entity and collection objects, you can use the following format to make any REST calls against the API:
-
-	client.request(options, callback);
-
-This format allows you to make almost any call against the Usergrid API. For example, to get a list of users:
-
-	var options = {
-		method:'GET',
-		endpoint:'users'
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			// Error - GET failed
-		} else {
-			// Data will contain raw results from API call
-			// Success - GET worked
-		}
-	});
-
-Or, to create a new user:
-
-	var options = {
-		method:'POST',
-		endpoint:'users',
-		body:{ username:'fred', password:'secret' }
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			// Error - POST failed
-		} else {
-			// Data will contain raw results from API call
-			// Success - POST worked
-		}
-	});
-
-Or, to update a user:
-
-	var options = {
-		method:'PUT',
-		endpoint:'users/fred',
-		body:{ newkey:'newvalue' }
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			// Error - PUT failed
-		} else {
-			// Data will contain raw results from API call
-			// Success - PUT worked
-		}
-	});
-
-Or, to delete a user:
-
-	var options = {
-		method:'DELETE',
-		endpoint:'users/fred'
-	};
-	client.request(options, function (err, data) {
-		if (err) {
-			// Error - DELETE failed
-		} else {
-			// Data will contain raw results from API call
-			// Success - DELETE worked
-		}
-	});
-
-The `options` object for the `client.request` function includes the following:
-
-* `method` - HTTP method (`GET`, `POST`, `PUT`, or `DELETE`), defaults to `GET`
-* `qs` - object containing querystring values to be appended to the URI
-* `body` - object containing entity body for POST and PUT requests
-* `endpoint` - API endpoint, for example "users/fred"
-* `mQuery` - boolean, set to `true` if running management query, defaults to `false`
-* `buildCurl` - boolean, set to `true` if you want to see equivalent curl commands in console.log, defaults to `false`
-
-You can make any call to the API using the format above.  However, in practice using the higher level entity and collection objects will make life easier as they take care of much of the heavy lifting.
-
-
-###Validation
-An extension for validation is provided for you to use in your apps.  The file is located here:
-
-	/extensions/usergrid.session.js
-
-Include this file at the top of your HTML file - AFTER the SDK file:
-
-	<script src="path/to/usergrid.js" type="text/javascript"></script>
-	<script src="path/to/extensions/usergrid.validation.js" type="text/javascript"></script>
-
-A variety of functions are provided for verifying many common types such as usernames, passwords, and so on.  Feel free to copy and modify these functions for use in your own projects.
-
-
-###cURL
-[cURL](http://curl.haxx.se/) is an excellent way to make calls directly against the API. As mentioned in the **Getting started** section of this guide, one of the parameters you can add to the new client `options` object is **buildCurl**:
-
-	var client = new Usergrid.Client({
-		orgName:'yourorgname',
-		appName:'sandbox',
-		logging: true, // Optional - turn on logging, off by default
-		buildCurl: true // Optional - turn on curl commands, off by default
-	});
-
-If you set this parameter to `true`, the SDK will build equivalent `curl` commands and send them to the console.log window. To learn how to see the console log, see this page:
-
-<http://apigee.com/docs/usergrid/content/displaying-app-services-api-calls-curl-commands>
-
-More information on cURL can be found here:
-
-<http://curl.haxx.se/>
-
-## Contributing
-We welcome your enhancements!
-
-Like [Usergrid](https://github.com/apigee/usergrid-node-module), the Usergrid Javascript SDK is open source and licensed under the Apache License, Version 2.0.
-
-1. Fork it.
-2. Create your feature branch (`git checkout -b my-new-feature`).
-3. Commit your changes (`git commit -am 'Added some feature'`).
-4. Push your changes to the upstream branch (`git push origin my-new-feature`).
-5. Create new Pull Request (make sure you describe what you did and why your mod is needed).
-
-###Contributing to usergrid.js
-usergrid.js and usergrid.min.js are built from modular components using Grunt. If you want to contribute updates to these files, please commit your changes to the modules in /lib/modules. Do not contribute directly to usergrid.js or your changes could get overwritten in a future build.
-
-##More information
-For more information on Usergrid, visit <http://usergrid.apache.org/>.
-For more information on Apigee App Services, visit <http://developers.apigee.com>.
-
-## Copyright
-Copyright 2014 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.
-
+# Usergrid Javascript SDK
 
+The Javascript SDK code has been moved into its own repository and can be found 
+at https://github.com/apache/usergrid-javascript.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/changelog.md
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/changelog.md b/sdks/html5-javascript/changelog.md
deleted file mode 100644
index 692a1a4..0000000
--- a/sdks/html5-javascript/changelog.md
+++ /dev/null
@@ -1,76 +0,0 @@
-##Change log
-###0.11.0
-- Removed 'getOnExist' flag from createEntity and createGroup. Handling of duplicate entity errors is now the responsibility of the client.
-- Usergrid.Group.prototype.fetch returns self instead of group list
-- Usergrid.Client.prototype.createGroup updated to new callback format
-- Usergrid.Client.prototype.createEntity updated to new callback format
-- Usergrid.Client.prototype.getEntity updated to new callback format
-- Usergrid.Collection instantiation no longer fetches the collection automatically, this no longer takes a callback
-- Usergrid.Entity.prototype.save no longer handles password changes
-- Usergrid.Entity.prototype.changePassword added to handle password requests
-- Usergrid.Counter no longer needs a callback
-- Usergrid.Asset.prototype.download sets appropriate mime type for content
-- Usergrid.Asset.prototype.upload implemented retry interval to mitigate errors when an asset has not fully propagated
- 
- 
-###0.10.8
-- Added support for Events and Counters
-- Added support for Folders and Assets
-- Improved asynchronous call support
-- Improved callback handling
-- Numerous bug fixes
-
-###0.10.7
-- Bug fixes
-- most calls now return the raw data as the last parameter (called data)
-- added some management functions for authentication
-- added some methods to pull related data and append to an entity
-- helper method to remove an entity from a collection without hitting the database (you would use the .destroy method if you do want to hit the db)
-
-###0.10.4
-
-- Added new functions for creating, getting, and deleting connections
-- Added test cases for said functions
-- Added logout call to client create to clear out any remnant token from a past session
-- Fixed change password error
-- Added getEntity method to get existing entity from server
-
-###0.10.3
-
-- Added set / get token methods to accomodate session storage
-- Added createUserActivity method to make creating activities for logged in user easier
-
-###0.10.2
-
-- Removed local caching of user object in client
-
-###0.10.1
-
-- Complete refactor of the SDK to bring congruity with the App services Node module
-
-- Client object is now main entry point - all objects are created from the client, and all calls are run from the client
-
-- Removed Curl extension - now just use boolean in options object when creating client
-
-- Added full test coverage for all sample code in the readme file
-
-- Renamed SDK file to usergrid.js
-
-
-###0.9.10
-
-- Refactored directory structure.  SDK file now at root, extensions in their own directory, examples in their own directory.
-
-- Moved cURL command generator into a separate file (extensions/usergrid.curl.js).  Include this file after the the SDK if you want cURL command generation.
-
-- Moved Validation functionality into a separate file (extensions/usergrid.validation.js). Include this file after the the SDK if you want to use this functionality.
-
-- Moved Session file into a separate file (extensions/usergrid.session.js). Include this file after the the SDK if you want to use this functionality.
-
-- Removed deprecated get function from Collection object.
-
-- Added timeout callback.
-
-- Added beginnings of a qUnit test suite - only a few functions tested so far, but we will add to the suite as we progress.
-
-- Removed minified files.  We hope to host these files on a CDN soon.

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/examples/all-calls/all-calls.html
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/examples/all-calls/all-calls.html b/sdks/html5-javascript/examples/all-calls/all-calls.html
deleted file mode 100755
index f4861dc..0000000
--- a/sdks/html5-javascript/examples/all-calls/all-calls.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
--->
-<!DOCTYPE html>
-<html>
-   <head>
-      <title>All Calls Apigee App Services (Usergrid) Example</title>
-      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-      <link rel="stylesheet" href="../resources/css/bootstrap-combined.min.css" />
-      <link rel="stylesheet" href="../resources/css/styles.css" />
-      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
-      <script src="../../usergrid.js" type="text/javascript"></script>
-      <script src="app.js" type="text/javascript"></script>
-   </head>
-   <body>
-      <div class="header">
-         <img src="../resources/images/apigee.png"> App Services (Usergrid) Javascript SDK Example
-      </div>
-      <div class="breadcrumb">
-        <a href="../../index.html">&lt;&lt; examples</a>
-      </div>
-      <div class="info">
-        This sample application is a quick example to show how to make App Services (Usergrid) calls - GET, POST, PUT, DELETE - with our Javascript SDK.
-        Also included is a login example. For more information on App Services, see our <a href="http://apigee.com/docs/app_services">docs</a>.
-      </div>
-      <div id="main" class="main">
-         <h3>Select method to test:</h3>
-         <ul class="nav nav-tabs">
-          <li id="get-nav" class="active" ><a id="show-get" href="javascript:void(0);">GET</a></li>
-          <li id="post-nav"><a id="show-post" href="javascript:void(0);">POST</a></li>
-          <li id="put-nav"><a id="show-put" href="javascript:void(0);">PUT</a></li>
-          <li id="delete-nav"><a id="show-delete" href="javascript:void(0);">DELETE</a></li>
-          <li id="login-nav"><a id="show-login" href="javascript:void(0);">LOG IN</a></li>
-        </ul>
-
-        <div id="get-page" class="form-block">
-           <div class="section-header">Method: <b>GET</b></div>
-           <div class="well">
-              <div id="name-control" class="control-group">
-                 <div class="controls">
-                    <label class="control-label" for="get-path">Path</label>
-                    <input type="text" name="get-path" id="get-path" class="span4" style="float: left;" value="users/fred"/>
-                    <span class="span4 left" style="width: 10px; float: left;">&nbsp;</span>
-                    <button class="btn btn-primary" id="run-get" style="width: 90px;">Run Query</button>
-                    <span style="clear: both;">&nbsp;</span>
-                 </div>
-              </div>
-           </div>
-           <p class="note">
-              To run a <b>GET</b> query against the API, enter the path you want to query, then push the "Run Query" button. By default, the value is "users/fred", which will translate to a call
-              to: https://api.usergrid.com/your-org/your-app/users/fred, and will retrieve the record for fred.
-              <br/><br/>
-              <b>Note:</b> If you get an error here, it probably means "fred" doesn't exist. Choose "POST" to create a new "fred".
-           </p>
-           <div class="section-header"><b>GET</b> API Response</div>
-
-        </div>
-
-        <div id="post-page" class="form-block">
-           <div class="section-header">Method: <b>POST</b></div>
-           <div class="well">
-              <div id="post-name-control" class="control-group">
-                 <div class="controls">
-                    <label class="control-label" for="post-path">Path</label>
-                    <input type="text" name="post-path" id="post-path" class="span4" value="users" />
-
-                    <label class="control-label" for="post-data" style="padding-top: 10px;">Json Request Body</label>
-                    <input type="text" name="post-data" id="post-data" class="span4" style="float: left" value='{"username":"fred", "password":"barney"}' />
-                    <span style="width: 10px; float: left;">&nbsp;</span>
-                    <button class="btn btn-primary" id="run-post" style="width: 90px;">Run Query</button>
-                    <span style="clear: both;">&nbsp;</span>
-                 </div>
-              </div>
-           </div>
-           <p class="note">
-              To run a <b>POST</b> query against the API, enter the path you want to call and the JSON you want to send to the server, then push the "Run Query" button. By default, the path
-              of users, and the JSON request body of, "{"username":"fred"}" will create a new user called "fred".
-              <br/><br/>
-              <b>Note:</b> If you get an error here, it probably means "fred" already exists. Choose "DELETE", run the DELETE query to delete the "fred" entity, then try the POST query again
-           </p>
-           <div class="section-header"><b>POST</b> API Response</div>
-        </div>
-
-        <div id="put-page" class="form-block">
-           <div class="section-header">Method: <b>PUT</b></div>
-           <div class="well">
-              <div id="put-name-control" class="control-group">
-                 <div class="controls">
-                    <label class="control-label" for="put-path">Path</label>
-                    <input type="text" name="put-path" id="put-path" class="span4" value="users/fred" />
-
-                    <label class="control-label" for="put-data" style="padding-top: 10px;">Json Request Body</label>
-                    <input type="text" name="put-data" id="put-data" class="span4" style="float: left" value='{"othervalue":"12345"}' />
-                    <span style="width: 10px; float: left;">&nbsp;</span>
-                    <button class="btn btn-primary" id="run-put" style="width: 90px;">Run Query</button>
-                    <span style="clear: both;">&nbsp;</span>
-                 </div>
-              </div>
-           </div>
-           <p class="note">
-              To run a <b>PUT</b> query against the API, enter the path you want to update and the JSON you want to send to the server, then push the "Run Query" button. By default, the
-              path of users/fred, and the JSON Request Body of "{"othervalue":"12345"}" will update the "fred" entity with the JSON Request Body.
-              <br/><br/>
-              <b>Note:</b> If you get an error here, it probably means "fred" doesn't exist. Choose "POST" to create a new "fred".
-           </p>
-           <div class="section-header"><b>PUT</b> API Response</div>
-        </div>
-
-        <div id="delete-page" class="form-block">
-           <div class="section-header">Method: <b>DELETE</b></div>
-           <div class="well">
-              <div id="delete-name-control" class="control-group">
-                 <div class="controls">
-                    <label class="control-label" for="delete-path">Path</label>
-                    <input type="text" name="delete-path" id="delete-path" class="span4" style="float: left;" value="users/fred"/>
-                    <span class="span4 left" style="width: 10px; float: left;">&nbsp;</span>
-                    <button class="btn btn-primary" id="run-delete" style="width: 90px;">Run Query</button>
-                    <span style="clear: both;">&nbsp;</span>
-                 </div>
-              </div>
-           </div>
-           <p class="note">
-              To run a <b>DELETE</b> query against the API, enter the path you want to update and the JSON you want to send to the server, then push the "Run Query" button. By default, the
-              path of users/fred, and the JSON Request Body of "{"othervalue":"12345"}" will update the "fred" entity with the JSON Request Body.
-              <br/><br/>
-              <b>Note:</b> If you get an error here, it probably means "fred" doesn't exist. Choose "POST" to create a new "fred".
-           </p>
-           <div class="section-header"><b>DELETE</b> API Response</div>
-        </div>
-
-        <div id="login-page" class="form-block">
-           <div class="section-header">Method: <b>Log In</b></div>
-           <div class="well">
-              <div id="login-name-control" class="control-group">
-                 <div class="controls">
-                    <label class="control-label" for="username">Username</label>
-                    <input type="text" name="username" id="username" class="span4" value="fred"/>
-
-                    <label class="control-label" for="password" style="padding-top: 10px;">Password</label>
-                    <!-- note: normally the password field would be of type password so the input is hidden.  For this demo
-                         we have left it in the clear so that it is easier to use.  Please use type password for production apps! -->
-                    <input type="text" name="password" id="password" class="span4" style="float: left" value="barney"/>
-                    <span style="width: 10px; float: left;">&nbsp;</span>
-                    <button class="btn btn-primary" id="run-login" style="width: 90px;">Run Query</button>
-                    <span style="clear: both;">&nbsp;</span>
-                 </div>
-              </div>
-           </div>
-           <p class="note">
-              To test a <b>login</b> against the API, enter the username and password, then push the "Run Query" button. By default, the username is set to "fred" and the password is set to
-              "barney", as created in the default "POST" method.
-              <br/><br/>
-              <b>Note:</b> If you get an error here, it probably means either the user doesn't exist, or hasn't had the password set properly. Choose "POST" to create a new "fred".
-           </p>
-           <div class="section-header"><b>Log In</b> API Response</div>
-        </div>
-
-        <div class="well" id="response">
-          // Press 'Run Query' to send the API call.
-       </div>
-      </div>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/examples/all-calls/app.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/examples/all-calls/app.js b/sdks/html5-javascript/examples/all-calls/app.js
deleted file mode 100755
index 6bf804e..0000000
--- a/sdks/html5-javascript/examples/all-calls/app.js
+++ /dev/null
@@ -1,236 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements.  See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You 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.
-//
-
-/*
-*  All Calls is a sample app  that is powered by Usergrid
-*  This app shows how to make the 4 REST calls (GET, POST,
-*  PUT, DELETE) against the usergrid API.
-*
-*  Learn more at http://Usergrid.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.
-*/
-
-/**
-*  @file app.js
-*  @author Rod Simpson (rod@apigee.com)
-*
-*  This file contains the main program logic for All Calls App.
-*/
-$(document).ready(function () {
-  //first set the org / app path (must be orgname / appname or org id / app id - can't mix names and uuids!!)
-
-  var client = new Usergrid.Client({
-    orgName:'yourorgname',
-    appName:'yourappname',
-    logging: true, //optional - turn on logging, off by default
-    buildCurl: true //optional - turn on curl commands, off by default
-  });
-
-  function hideAllSections(){
-    $('#get-page').hide();
-    $('#get-nav').removeClass('active');
-    $('#post-page').hide();
-    $('#post-nav').removeClass('active');
-    $('#put-page').hide();
-    $('#put-nav').removeClass('active');
-    $('#delete-page').hide();
-    $('#delete-nav').removeClass('active');
-    $('#login-page').hide();
-    $('#login-nav').removeClass('active');
-    $('#response').html("// Press 'Run Query' to send the API call.");
-  }
-  //bind the show buttons
-  $('#show-get').bind('click', function() {
-    hideAllSections();
-    $('#get-nav').addClass('active');
-    $('#get-page').show();
-  });
-
-  $('#show-post').bind('click', function() {
-    hideAllSections();
-    $('#post-nav').addClass('active');
-    $('#post-page').show();
-  });
-
-  $('#show-put').bind('click', function() {
-    hideAllSections();
-    $('#put-nav').addClass('active');
-    $('#put-page').show();
-  });
-
-  $('#show-delete').bind('click', function() {
-    hideAllSections();
-    $('#delete-nav').addClass('active');
-    $('#delete-page').show();
-  });
-
-  $('#show-login').bind('click', function() {
-    hideAllSections();
-    $('#login-nav').addClass('active');
-    $('#login-page').show();
-  });
-
-  $('#run-get').bind('click', function() {
-    _get();
-  });
-
-  $('#run-post').bind('click', function() {
-    _post();
-  });
-
-  $('#run-put').bind('click', function() {
-    _put();
-  });
-
-  $('#run-delete').bind('click', function() {
-    _delete();
-  });
-
-  $('#run-login').bind('click', function() {
-    _login();
-  });
-
-  //start with the get page showing by default
-  $('#get-page').show();
-
-  //bind the create new dog button
-  $('#main-menu').bind('click', function() {
-    $('#get-page').hide();
-    $('#post-page').hide();
-    $('#put-page').hide();
-    $('#delete-page').hide();
-    $('#login-page').hide();
-    $('#main').show();
-    $("#response").html('');
-  });
-
-  function _get() {
-    var endpoint = $("#get-path").val();
-
-    var options = {
-      method:'GET',
-      endpoint:endpoint
-    };
-    client.request(options, function (err, data) {
-      //data will contain raw results from API call
-      if (err) {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>ERROR: '+output+'</pre>');
-      } else {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>'+output+'</pre>');
-      }
-    });
-  }
-
-  function _post() {
-    var endpoint = $("#post-path").val();
-    var data = $("#post-data").val();
-    data = JSON.parse(data);
-
-    var options = {
-      method:'POST',
-      endpoint:endpoint,
-      body:data
-    };
-    client.request(options, function (err, data) {
-      //data will contain raw results from API call
-      if (err) {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>ERROR: '+output+'</pre>');
-      } else {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>'+output+'</pre>');
-      }
-    });
-  }
-
-  function _put() {
-    var endpoint = $("#put-path").val();
-    var data = $("#put-data").val();
-    data = JSON.parse(data);
-
-    var options = {
-      method:'PUT',
-      endpoint:endpoint,
-      body:data
-    };
-    client.request(options, function (err, data) {
-      //data will contain raw results from API call
-      if (err) {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>ERROR: '+output+'</pre>');
-      } else {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>'+output+'</pre>');
-      }
-    });
-  }
-
-  function _delete() {
-    var endpoint = $("#delete-path").val();
-
-    var options = {
-      method:'DELETE',
-      endpoint:endpoint
-    };
-    client.request(options, function (err, data) {
-      //data will contain raw results from API call
-      if (err) {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>ERROR: '+output+'</pre>');
-      } else {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>'+output+'</pre>');
-      }
-    });
-  }
-
-  function _login() {
-    var username = $("#username").val();
-    var password = $("#password").val();
-
-    client.login(username, password, function (err, data) {
-      //at this point, the user has been logged in succesfully and the OAuth token for the user has been stored
-      //however, in this example, we don't want to use that token for the rest of the API calls, so we will now
-      //reset it.  In your app, you will most likely not want to do this, as you are effectively logging the user
-      //out.  Our calls work because we are going against the Sandbox app, which has no restrictions on permissions.
-      client.token = null; //delete the user's token by setting it to null
-      if (err) {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>ERROR: '+output+'</pre>');
-      } else {
-        var output = JSON.stringify(data, null, 2);
-        $("#response").html('<pre>'+output+'</pre>');
-      }
-    });
-  }
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/examples/dogs/app.js
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/examples/dogs/app.js b/sdks/html5-javascript/examples/dogs/app.js
deleted file mode 100755
index 930c175..0000000
--- a/sdks/html5-javascript/examples/dogs/app.js
+++ /dev/null
@@ -1,194 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one or more
-// contributor license agreements.  See the NOTICE file distributed with
-// this work for additional information regarding copyright ownership.
-// The ASF licenses this file to You 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.
-//
-
-/**
-*  dogs is a sample app  that is powered by Usergrid
-*  This app shows how to use the Usergrid SDK to connect
-*  to Usergrid, how to add entities, and how to page through
-*  a result set of entities
-*
-*  Learn more at http://Usergrid.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.
-*/
-
-/**
-*  @file app.js
-*  @author Rod Simpson (rod@apigee.com)
-*
-*  This file contains the main program logic for Dogs.
-*/
-$(document).ready(function () {
-   //first set the org / app path (must be orgname / appname or org id / app id - can't mix names and uuids!!)
-   var client = new Usergrid.Client({
-    orgName:'yourorgname',
-    appName:'dogs',
-    logging: true, //optional - turn on logging, off by default
-    buildCurl: true //optional - turn on curl commands, off by default
-  });
-
-  //make a new "dogs" Collection
-  var options = {
-    type:'dogs',
-    qs:{ql:'order by created DESC'}
-  }
-
-  var dogs;
-
-  client.createCollection(options, function (err, response, collection) {
-    if (err) {
-      $('#mydoglist').html('could not load dogs');
-    } else {
-      dogs=collection;
-      //bind the next button to the proper method in the collection object
-      $('#next-button').bind('click', function() {
-        $('#message').html('');
-        dogs.getNextPage(function(err, data){
-          if (err) {
-            alert('could not get next page of dogs');
-          } else {
-            drawDogs();
-          }
-        });
-      });
-
-      //bind the previous button to the proper method in the collection object
-      $('#previous-button').bind('click', function() {
-        $('#message').html('');
-        dogs.getPreviousPage(function(err, data){
-          if (err) {
-            alert('could not get previous page of dogs');
-          } else {
-            drawDogs();
-          }
-        });
-      });
-
-      //bind the new button to show the "create new dog" form
-      $('#new-dog-button').bind('click', function() {
-         $('#dogs-list').hide();
-         $('#new-dog').show();
-      });
-
-      //bind the create new dog button
-      $('#create-dog').bind('click', function() {
-        newdog();
-      });
-
-      //bind the create new dog button
-      $('#cancel-create-dog').bind('click', function() {
-        $('#new-dog').hide();
-        $('#dogs-list').show();
-        drawDogs();
-      });
-
-      function drawDogs() {
-        dogs.fetch(function(err, data) {
-          if(err) {
-            alert('there was an error getting the dogs');
-          } else {
-            //first empty out all the current dogs in the list
-            $('#mydoglist').empty();
-            //then hide the next / previous buttons
-            $('#next-button').hide();
-            $('#previous-button').hide();
-            //iterate through all the items in this "page" of data
-            //make sure we reset the pointer so we start at the beginning
-            dogs.resetEntityPointer();
-            while(dogs.hasNextEntity()) {
-               //get a reference to the dog
-               var dog = dogs.getNextEntity();
-               //display the dog in the list
-               $('#mydoglist').append('<li>'+ dog.get('name') + '</li>');
-            }
-            //if there is more data, display a "next" button
-            if (dogs.hasNextPage()) {
-               //show the button
-               $('#next-button').show();
-            }
-            //if there are previous pages, show a "previous" button
-            if (dogs.hasPreviousPage()) {
-               //show the button
-               $('#previous-button').show();
-            }
-          }
-        });
-      }
-
-      function newdog() {
-        $('#create-dog').addClass("disabled");
-        //get the values from the form
-        var name = $("#name").val();
-
-        //make turn off all hints and errors
-        $("#name-help").hide();
-        $("#name-control").removeClass('error');
-
-        //make sure the input was valid
-        if (Usergrid.validation.validateName(name, function (){
-          $("#name").focus();
-          $("#name-help").show();
-          $("#name-control").addClass('error');
-          $("#name-help").html(Usergrid.validation.getNameAllowedChars());
-          $('#create-dog').removeClass("disabled");})
-        ) {
-
-          //all is well, so make the new dog
-          //create a new dog and add it to the collection
-          var options = {
-            name:name
-          }
-          //just pass the options to the addEntity method
-          //to the collection and it is saved automatically
-          dogs.addEntity(options, function(err, dog, data) {
-            if (err) {
-              //let the user know there was a problem
-              alert('Oops! There was an error creating the dog.');
-              //enable the button so the form will be ready for next time
-              $('#create-dog').removeClass("disabled");
-            } else {
-              $('#message').html('New dog created!');
-              //the save worked, so hide the new dog form
-              $('#new-dog').hide();
-              //then show the dogs list
-              $('#dogs-list').show();
-              //then call the function to get the list again
-              drawDogs();
-              //finally enable the button so the form will be ready for next time
-              $('#create-dog').removeClass("disabled");
-            }
-          });
-        }
-      }
-      drawDogs();
-
-    }
-  });
-
-});

http://git-wip-us.apache.org/repos/asf/usergrid/blob/fa590f5c/sdks/html5-javascript/examples/dogs/dogs.html
----------------------------------------------------------------------
diff --git a/sdks/html5-javascript/examples/dogs/dogs.html b/sdks/html5-javascript/examples/dogs/dogs.html
deleted file mode 100755
index 8f92830..0000000
--- a/sdks/html5-javascript/examples/dogs/dogs.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You 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.
--->
-
-<!DOCTYPE html>
-<html>
-   <head>
-      <title>Dogs Example App for Apigee App Services (Usergrid)</title>
-      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-      <link rel="stylesheet" href="../resources/css/bootstrap-combined.min.css" />
-      <link rel="stylesheet" href="../resources/css/styles.css" />
-      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
-      <script src="../../usergrid.js" type="text/javascript"></script>
-      <script src="../../extensions/usergrid.validation.js" type="text/javascript"></script>
-      <script src="app.js" type="text/javascript"></script>
-   </head>
-   <body>
-      <div class="header">
-         <img src="../resources/images/apigee.png"> App Services (Usergrid) Javascript SDK
-      </div>
-      <div class="breadcrumb">
-        <a href="../../index.html">&lt;&lt; examples</a>
-      </div>
-      <div id="dogs-list" style="width: 600px; min-height: 450px; margin: auto; display: block; background-color: #fff; padding: 30px;">
-         <h2>Dogs</h2>
-         <div style="padding: 10px;">
-            Dogs is a simple application that shows how to create entities and collecitons, how to iterate through results, and how to
-            display larger result sets in a paged format.
-         </div>
-         <div style="height: 30px;">
-           <div style="float: left; padding-left: 10px; font-weight: 600;" id="message"> </div>
-           <button id="new-dog-button" style="float:right; width: 90px;" class="btn btn-primary" >New Dog</button>
-         </div>
-         <div style="height:300px;">
-            <ul id="mydoglist"><li>No dogs yet!</li></ul>
-         </div>
-         <button id="previous-button" style="float:left; display: none; width: 90px;" class="btn btn-primary" >Previous</button>
-         <button id="next-button" style="float:right; display: none; width: 90px;" class="btn btn-primary" >Next</button>
-         <div style="height: 30px;">&nbsp;</div>
-      </div>
-
-      <div id="new-dog" style="width: 600px; min-height: 450px; margin: auto; display: block; background-color: #fff; padding: 30px; display: none;">
-         <h2>Dogs</h2>
-         <div style="padding: 10px;">
-            Use this form to create a new dog.
-         </div>
-         <form name="new-dog-form" id="new-dog-form">
-            <div id="name-control" class="control-group">
-               <label class="control-label" for="name">Dog Name</label>
-               <div class="controls">
-                  <input type="text" name="name" id="name" class="span4" />
-                  <span id="name-help" class="help-inline" style="display: none">Please correct the error</span>
-               </div>
-            </div>
-         </form>
-         <button class="btn btn-primary" id="create-dog" style="width: 90px;">Create dog</button>
-         <button class="btn btn-primary" id="cancel-create-dog" style="width: 90px;">Cancel</button>
-      </div>
-
-    </body>
-</html>