You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2014/04/02 23:21:03 UTC

[02/39] merging upstream

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/0818271c/portal/test/coverage/instrument/js/usergrid-coverage.min.js
----------------------------------------------------------------------
diff --git a/portal/test/coverage/instrument/js/usergrid-coverage.min.js b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
index e00934e..b59eb7a 100644
--- a/portal/test/coverage/instrument/js/usergrid-coverage.min.js
+++ b/portal/test/coverage/instrument/js/usergrid-coverage.min.js
@@ -1,4 +1,4 @@
-/*! usergrid@2.0.2 2014-03-31 */
+/*! usergrid@2.0.2 2014-04-01 */
 angular.module("appservices").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("activities/activities.html",'<section class="row-fluid">\n'+'  <div class="span12">\n'+'    <div class="page-filters">\n'+'      <h1 class="title" class="pull-left"><i class="pictogram title">&#128241;</i> Activities</h1>\n'+"    </div>\n"+"  </div>\n"+"\n"+"</section>\n"+'<section class="row-fluid">\n'+'  <div class="span12 tab-content">\n'+'    <table class="table table-striped">\n'+"      <tbody>\n"+'      <tr class="table-header">\n'+"        <td>Date</td>\n"+"        <td></td>\n"+"        <td>User</td>\n"+"        <td>Content</td>\n"+"        <td>Verb</td>\n"+"        <td>UUID</td>\n"+"      </tr>\n"+'      <tr class="zebraRows" ng-repeat="activity in activities">\n'+"        <td>{{formatDate(activity.created)}}</td>\n"+'        <td class="gravatar20"> <img ng-src="{{activity.actor.picture}}"/>\n'+"        </td>\n"+"        <td>{{activity.actor.displayName}}</td>\n"+"  
       <td>{{activity.content}}</td>\n"+"        <td>{{activity.verb}}</td>\n"+"        <td>{{activity.uuid}}</td>\n"+"      </tr>\n"+"      </tbody>\n"+"    </table>\n"+"  </div>\n"+"</section>");$templateCache.put("app-overview/app-overview.html",'<div class="app-overview-content" >\n'+'  <section class="row-fluid">\n'+"\n"+'      <page-title title=" Summary" icon="&#128241;"></page-title>\n'+'  <section class="row-fluid">\n'+'      <h2 class="title" id="app-overview-title">{{currentApp}}</h2>\n'+"  </section>\n"+'  <section class="row-fluid">\n'+"\n"+'    <div class="span6">\n'+'      <chart id="appOverview"\n'+'             chartdata="appOverview.chart"\n'+'             type="column"></chart>\n'+"    </div>\n"+"\n"+'    <div class="span6">\n'+'      <table class="table table-striped">\n'+'        <tr class="table-header">\n'+"          <td>Path</td>\n"+"          <td>Title</td>\n"+"        </tr>\n"+'        <tr class="zebraRows" ng-repeat="(k,v) in collections">\n'+"          <td
 >{{v.title}}</td>\n"+"          <td>{{v.count}}</td>\n"+"        </tr>\n"+"      </table>\n"+"    </div>\n"+"\n"+"  </section>\n"+"</div>");$templateCache.put("app-overview/doc-includes/android.html","<h2>1. Integrate the SDK into your project</h2>\n"+"<p>You can integrate Apigee features into your app by including the SDK in your project.&nbsp;&nbsp;You can do one of the following:</p>\n"+"\n"+'<ul class="nav nav-tabs" id="myTab">\n'+'	<li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+'	<li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+"\n"+'<div class="tab-content">\n'+'	<div class="tab-pane active" id="existing_project">\n'+'		<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+"		<p>If you've already got&nbsp;an Android&nbsp;project, you can integrate the&nbsp;Apigee&nbsp;SDK into your project as you normally would:</p>\n"+'		<div id="collapse">\n'+'			<a href="#jar_collapse" class="btn" d
 ata-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>			\n'+"		</div>\n"+'		<div id="jar_collapse" class="collapse">\n'+"			<p>Add <code>apigee-android-&lt;version&gt;.jar</code> to your class path by doing the following:</p>\n"+"	\n"+"			<h3>Android 4.0 (or later) projects</h3>\n"+"			<p>Copy the jar file into the <code>/libs</code> folder in your project.</p>\n"+"			\n"+"			<h3>Android 3.0 (or earlier) projects</h3>\n"+"			<ol>\n"+"				<li>In the&nbsp;Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+"				<li>Click the&nbsp;<strong>File &gt; Properties</strong>&nbsp;menu.</li>\n"+"				<li>In the <strong>Java Build Path</strong> section, click the <strong>Libraries</strong> tab, click <strong>Add External JARs</strong>.</li>\n"+"				<li>Browse to <code>apigee-android-&lt;version&gt;.jar</code>, then click&nbsp;<strong>Open</strong>.</li>\n"+"				<li>Order the <code>apigee-android-&lt;version&gt;.jar</code> at the t
 op of the class path:\n"+"					<ol>\n"+"						<li>In the Eclipse <strong>Package Explorer</strong>, select your application's project folder.</li>\n"+"						<li>Click the&nbsp;<strong>File &gt; Properties</strong> menu.</li>\n"+"						<li>In the properties dialog, in the&nbsp;<strong>Java Build Path</strong> section,&nbsp;click&nbsp;the <strong>Order and Export</strong>&nbsp;tab.</li>\n"+"						<li>\n"+"							<p><strong>IMPORTANT:</strong> Select the checkbox for <code>apigee-android-&lt;version&gt;.jar</code>, then click the <strong>Top</strong>&nbsp;button.</p>\n"+"						</li>\n"+"					</ol>\n"+"				</li>\n"+"			</ol>\n"+'			<div class="warning">\n'+"				<h3>Applications using Ant</h3>\n"+"				<p>If you are using Ant to build your application, you must also copy <code>apigee-android-&lt;version&gt;.jar</code> to the <code>/libs</code> folder in your application.</p>\n"+"			</div>\n"+"		</div>\n"+"	</div>\n"+'	<div class="tab-pane" id="new_project">\n'+'		<a class="jumplink" name=
 "create_a_new_project_based_on_the_SDK"></a>\n'+"		<p>If you don't have a&nbsp;project yet, you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+"		<ul>\n"+"			<li>Locate the project template in the expanded SDK. It should be at the following location:\n"+"				<pre>&lt;sdk_root&gt;/new-project-template</pre>\n"+"			</li>\n"+"		</ul>\n"+"	</div>\n"+"</div>\n"+"<h2>2. Update permissions in AndroidManifest.xml</h2>\n"+"<p>Add the following Internet permissions to your application's <code>AndroidManifest.xml</code> file if they have not already been added. Note that with the exception of INTERNET, enabling all other permissions are optional.</p>\n"+"<pre>\n"+'&lt;uses-permission android:name="android.permission.INTERNET" /&gt;\n'+'&lt;uses-permission android:name="android.permission.READ_PHONE_STATE" /&gt;\n'+'&lt;uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /&gt;\n'+'&lt;uses-permission andro
 id:name="android.permission.ACCESS_FINE_LOCATION" /&gt;\n'+'&lt;uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /&gt;\n'+"</pre>\n"+"<h2>3. Initialize the SDK</h2>\n"+"<p>To initialize the App Services SDK, you must instantiate the <code>ApigeeClient</code> class. There are multiple ways to handle this step, but we recommend that you do the following:</p>\n"+"<ol>\n"+"	<li>Subclass the <code>Application</code> class, and add an instance variable for the <code>ApigeeClient</code> to it, along with getter and setter methods.\n"+"		<pre>\n"+"public class YourApplication extends Application\n"+"{\n"+"        \n"+"        private ApigeeClient apigeeClient;\n"+"        \n"+"        public YourApplication()\n"+"        {\n"+"                this.apigeeClient = null;\n"+"        }\n"+"        \n"+"        public ApigeeClient getApigeeClient()\n"+"        {\n"+"                return this.apigeeClient;\n"+"        }\n"+"        \n"+"        public void setApigeeClien
 t(ApigeeClient apigeeClient)\n"+"        {\n"+"                this.apigeeClient = apigeeClient;\n"+"        }\n"+"}			\n"+"		</pre>\n"+"	</li>\n"+"	<li>Declare the <code>Application</code> subclass in your <code>AndroidManifest.xml</code>. For example:\n"+"		<pre>\n"+"&lt;application&gt;\n"+'    android:allowBackup="true"\n'+'    android:icon="@drawable/ic_launcher"\n'+'    android:label="@string/app_name"\n'+'    android:name=".YourApplication"\n'+"	…\n"+"&lt;/application&gt;			\n"+"		</pre>\n"+"	</li>\n"+"	<li>Instantiate the <code>ApigeeClient</code> class in the <code>onCreate</code> method of your first <code>Activity</code> class:\n"+"		<pre>\n"+"import com.apigee.sdk.ApigeeClient;\n"+"\n"+"@Override\n"+"protected void onCreate(Bundle savedInstanceState) {\n"+"    super.onCreate(savedInstanceState);		\n"+"	\n"+'	String ORGNAME = "{{currentOrg}}";\n'+'	String APPNAME = "{{currentApp}}";\n'+"	\n"+"	ApigeeClient apigeeClient = new ApigeeClient(ORGNAME,APPNAME,this.getBaseConte
 xt());\n"+"\n"+"	// hold onto the ApigeeClient instance in our application object.\n"+"	yourApp = (YourApplication) getApplication;\n"+"	yourApp.setApigeeClient(apigeeClient);			\n"+"}\n"+"		</pre>\n"+"		<p>This will make the instance of <code>ApigeeClient</code> available to your <code>Application</code> class.</p>\n"+"	</li>\n"+"</ol>\n"+"<h2>4. Import additional SDK classes</h2>\n"+"<p>The following classes will enable you to call common SDK methods:</p>\n"+"<pre>\n"+"import com.apigee.sdk.data.client.DataClient; //App Services data methods\n"+"import com.apigee.sdk.apm.android.MonitoringClient; //App Monitoring methods\n"+"import com.apigee.sdk.data.client.callbacks.ApiResponseCallback; //API response handling\n"+"import com.apigee.sdk.data.client.response.ApiResponse; //API response object\n"+"</pre>\n"+"		\n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>MonitoringClient</code> class and begin logg
 ing usage, crash and error metrics for your app.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+"<p>To verify that the SDK has been properly initialized, run your app, then go to 'Monitoring' > 'App Usage' in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+"	<li>\n"+"		<h3><strong>Call additional SDK methods in your code</strong></h3>\n"+"		<p>The <code>DataClient</code> and <code>MonitoringClient</code> classes are also automatically instantiated for you, and accessible with the following accessors:</p>\n"+"		<ul>\n"+"			<li>\n"+"				<pre>DataClient dataClient = apigeeClient.getDataClient();</pre>\n"+"				<p>Use this object to access the data methods of the App Services SDK, inclu
 ding those for push notifications, data store, and geolocation.</p>\n"+"			</li>\n"+"			<li>\n"+"				<pre>MonitoringClient monitoringClient = apigeeClient.getMonitoringClient();</pre>\n"+"				<p>Use this object to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</p>\n"+"			</li>\n"+"		</ul>\n"+"	</li>	\n"+"	<li>	\n"+"		<h3><strong>Add App Services features to your app</strong></h3>\n"+"		<p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+"		<ul>\n"+'			<li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\
 n'+'			<li><strong>App Monitoring</strong>: When you initialize the App Services SDK, a suite of valuable, <a href="http://apigee.com/docs/node/13190">customizable</a> application monitoring features are automatically enabled that deliver the data you need to fine tune performance, analyze issues, and improve user experience.\n'+"				<ul>\n"+'					<li><strong><a href="http://apigee.com/docs/node/13176">App Usage Monitoring</a></strong>: Visit the <a href="https://apigee.com/usergrid">App Services admin portal</a> to view usage data for your app, including data on device models, platforms and OS versions running your app.</li>				\n'+'					<li><strong><a href="http://apigee.com/docs/node/12861">API Performance Monitoring</a></strong>: Network performance is key to a solid user experience. In the <a href="https://apigee.com/usergrid">App Services admin portal</a> you can view key metrics, including response time, number of requests and raw API request logs.</li>	\n'+'					<li><strong>
 <a href="http://apigee.com/docs/node/13177">Error &amp; Crash Monitoring</a></strong>: Get alerted to any errors or crashes, then view them in the <a href="https://apigee.com/usergrid">App Services admin portal</a>, where you can also analyze raw error and crash logs.</li>\n'+"				</ul>		\n"+"			</li>\n"+'			<li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+"		</ul>\n"+"	</li>\n"+"	<li>	
 \n"+"		<h3><strong>Check out the sample apps</strong></h3>\n"+"		<p>The SDK includes samples that illustrate Apigee&nbsp;features. You'll find the samples in the following location in your SDK download:</p>\n"+"		<pre>\n"+"apigee-android-sdk-&lt;version&gt;\n"+"	...\n"+"	/samples\n"+"		</pre>\n"+'		<div id="collapse">\n'+'			<a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+"		</div>\n"+'		<div id="samples_collapse" class="collapse">\n'+"			<p>The samples include the following:</p>\n"+'			<table class="table">\n'+"				<thead>\n"+"					<tr>\n"+'						<th scope="col">Sample</th>\n'+'						<th scope="col">Description</th>\n'+"					</tr>\n"+"				</thead>\n"+"				<tbody>\n"+"					<tr>\n"+"						<td>books</td>\n"+"						<td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>messagee</td>\n"+"						<td>An app
  for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>push</td>\n"+"						<td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+"					</tr>\n"+"				</tbody>\n"+"			</table>\n"+"		</div>\n"+"	</li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/ios.html","<h2>1. Integrate ApigeeiOSSDK.framework</h2>\n"+'<a class="jumplink" name="add_the_sdk_to_an_existing_project"></a>\n'+'<ul class="nav nav-tabs" id="myTab">\n'+'	<li class="active"><a data-toggle="tab" href="#existing_project">Existing project</a></li>\n'+'	<li><a data-toggle="tab" href="#new_project">New project</a></li>\n'+"</ul>\n"+'<div class="tab-content">\n'+'	<div class="tab-pane active" id="existing_project">\n'+"		<p>If you've already got&nbsp;an Xcode iOS project, add it into your project as you normally would.</p>\n"+'		<div id="collapse"><a class="btn" d
 ata-toggle="collapse" href="#framework_collapse">Details</a></div>\n'+'		<div class="collapse" id="framework_collapse">\n'+"			<ol>\n"+"				<li>\n"+"					<p>Locate the SDK framework file so you can add it to your project. For example, you'll find the file at the following path:</p>\n"+"					<pre>\n"+"&lt;sdk_root&gt;/bin/ApigeeiOSSDK.framework</pre>\n"+"				</li>\n"+"				<li>In the <strong>Project Navigator</strong>, click on your project file, and then the <strong>Build Phases</strong> tab. Expand <strong>Link Binary With Libraries</strong>.</li>\n"+"				<li>Link the Apigee iOS SDK into your project.\n"+"					<ul>\n"+"						<li>Drag ApigeeiOSSDK.framework into the Frameworks group created by Xcode.</li>\n"+"					</ul>\n"+"					<p>OR</p>\n"+"					<ol>\n"+"						<li>At the bottom of the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button. Then click&nbsp;<strong>Add Other</strong>.</li>\n"+"						<li>Navigate to the directory that contains ApigeeiOS
 SDK.framework, and choose the ApigeeiOSSDK.framework folder.</li>\n"+"					</ol>\n"+"				</li>\n"+"			</ol>\n"+"		</div>\n"+"	</div>\n"+'	<div class="tab-pane" id="new_project"><a class="jumplink" name="create_a_new_project_based_on_the_SDK"></a>\n'+"		<p>If you're starting with a clean slate (you don't have a&nbsp;project yet), you can begin by using the project template included with the SDK. The template includes support for SDK features.</p>\n"+"		<ol>\n"+"			<li>\n"+"				<p>Locate the project template in the expanded SDK. It should be at the following location:</p>\n"+"				<pre>\n"+"&lt;sdk_root&gt;/new-project-template</pre>\n"+"			</li>\n"+"			<li>In the project template directory, open the project file:&nbsp;Apigee App Services iOS Template.xcodeproj.</li>\n"+"			<li>Get acquainted with the template by looking at its readme file.</li>\n"+"		</ol>\n"+"	</div>\n"+"</div>\n"+"<h2>2. Add required iOS frameworks</h2>\n"+"<p>Ensure that the following iOS frameworks are part of you
 r project. To add them, under the <strong>Link Binary With Libraries</strong> group, click the <strong>+</strong> button, type the name of the framework you want to add, select the framework found by Xcode, then click <strong>Add</strong>.</p>\n"+"<ul>\n"+"	<li>QuartzCore.framework</li>\n"+"	<li>CoreLocation.framework</li>\n"+"	<li>CoreTelephony.framework&nbsp;</li>\n"+"	<li>Security.framework</li>\n"+"	<li>SystemConfiguration.framework</li>\n"+"	<li>UIKit.framework</li>\n"+"</ul>\n"+"<h2>3. Update 'Other Linker Flags'</h2>\n"+"<p>In the <strong>Build Settings</strong> panel, add the following under <strong>Other Linker Flags</strong>:</p>\n"+"<pre>\n"+"-ObjC -all_load</pre>\n"+"<p>Confirm that flags are set for both <strong>DEBUG</strong> and <strong>RELEASE</strong>.</p>\n"+"<h2>4. Initialize the SDK</h2>\n"+'<p>The <em>ApigeeClient</em> class initializes the App Services SDK. To do this you will need your organization name and application name, which are available in the <em>Gett
 ing Started</em> tab of the <a href="https://www.apigee.com/usergrid/">App Service admin portal</a>, under <strong>Mobile SDK Keys</strong>.</p>\n'+"<ol>\n"+"	<li>Import the SDK\n"+"		<p>Add the following to your source code to import the SDK:</p>\n"+"		<pre>\n"+"#import &lt;ApigeeiOSSDK/Apigee.h&gt;</pre>\n"+"	</li>\n"+"	<li>\n"+"		<p>Declare the following properties in <code>AppDelegate.h</code>:</p>\n"+"		<pre>\n"+"@property (strong, nonatomic) ApigeeClient *apigeeClient; \n"+"@property (strong, nonatomic) ApigeeMonitoringClient *monitoringClient;\n"+"@property (strong, nonatomic) ApigeeDataClient *dataClient;	\n"+"		</pre>\n"+"	</li>\n"+"	<li>\n"+"		<p>Instantiate the <code>ApigeeClient</code> class inside the <code>didFinishLaunching</code> method of <code>AppDelegate.m</code>:</p>\n"+"		<pre>\n"+"//Replace 'AppDelegate' with the name of your app delegate class to instantiate it\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"\n"
 +"//Sepcify your App Services organization and application names\n"+'NSString *orgName = @"{{currentOrg}}";\n'+'NSString *appName = @"{{currentApp}}";\n'+"\n"+"//Instantiate ApigeeClient to initialize the SDK\n"+"appDelegate.apigeeClient = [[ApigeeClient alloc]\n"+"                            initWithOrganizationId:orgName\n"+"                            applicationId:appName];\n"+"                            \n"+"//Retrieve instances of ApigeeClient.monitoringClient and ApigeeClient.dataClient\n"+"self.monitoringClient = [appDelegate.apigeeClient monitoringClient]; \n"+"self.dataClient = [appDelegate.apigeeClient dataClient]; \n"+"		</pre>\n"+"	</li>\n"+"</ol>\n"+"\n"+"<h2>5. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate the <code>ApigeeMonitoringClient</code> class and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to
  <strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https://www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>	\n"+"	<li>\n"+"		<h3><strong>Call additional SDK methods in your code</strong></h3>\n"+"		<p>Create an instance of the AppDelegate class, then use <code>appDelegate.dataClient</code> or <code>appDelegate.monitoringClient</code> to call SDK methods:</p>\n"+'		<div id="collapse"><a class="btn" data-toggle="collapse" href="#client_collapse">Details</a></div>\n'+'		<div class="collapse" id="client_collapse">\n'+"			<ul>\n"+"				<li><code>appDelegate.dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifi
 cations, data store, and geolocation.</li>\n"+"				<li><code>appDelegate.monitoringClient</code>: Used to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+"			</ul>\n"+"			<h3>Example</h3>\n"+"			<p>For example, you could create a new entity with the following:</p>\n"+"			<pre>\n"+"AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];\n"+"ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity];\n"+"			</pre>\n"+"		</div>\n"+"\n"+"	</li>\n"+"	<li>\n"+"		<h3><strong>Add App Services features to your app</strong></h3>\n"+"		<p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+"		<ul>\n"+'			<li><strong><a href="http://apigee.com/docs/node/8410">Push notifications<
 /a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Target users or return result sets based on user location to keep your app highly-relevant.</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement user registration, as well as OAuth 2.0-compliant login and authentication.</li>\n'+"		</ul>\n"+"	</li>\n"+"	<li>\n"+"		<h3><strong>Check out the sample apps</strong></h3>\n"+'		<p>The SDK includes samples that illust
 rate Apigee&nbsp;features. To look at them, open the .xcodeproj file for each in Xcode. To get a sample app running, open its project file, then follow the steps described in the section, <a target="_blank" href="http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios">Add the SDK to an existing project</a>.</p>\n'+"		<p>You'll find the samples in the following location in your SDK download:</p>\n"+"		<pre>\n"+"apigee-ios-sdk-&lt;version&gt;\n"+"    ...\n"+"    /samples\n"+"		</pre>\n"+'		<div id="collapse"><a class="btn" data-toggle="collapse" href="#samples_collapse">Details</a></div>\n'+'		<div class="collapse" id="samples_collapse">\n'+"			<p>The samples include the following:</p>\n"+'			<table class="table">\n'+"				<thead>\n"+"					<tr>\n"+'						<th scope="col">Sample</th>\n'+'						<th scope="col">Description</th>\n'+"					</tr>\n"+"				</thead>\n"+"				<tbody>\n"+"					<tr>\n"+"						<td>books</td>\n"+"						<td>An app for storing a list of books that shows Ap
 igee database operations such as reading, creating, and deleting.</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>messagee</td>\n"+"						<td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>push</td>\n"+"						<td>An app that uses the push feature to send notifications to the devices of users who have subscribed for them.</td>\n"+"					</tr>\n"+"				</tbody>\n"+"			</table>\n"+"		</div>\n"+"		<p>&nbsp;</p>\n"+"	</li>\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/javascript.html","<h2>1. Import the SDK into your HTML</h2>\n"+"<p>To enable support for Apigee-related functions in your HTML, you'll need to&nbsp;include <code>apigee.js</code> in your app. To do this, add the following to the <code>head</code> block of your HTML:</p>\n"+"<pre>\n"+'&lt;script type="text/javascript" src="path/to/js/sdk/apigee.js"&gt;&lt;/script&gt;\n'+"</pre>\n"+"<h2>2. Instantiate Apigee.Clien
 t</h2>\n"+"<p>Apigee.Client initializes the App Services SDK, and gives you access to all of the App Services SDK methods.</p>\n"+"<p>You will need to pass a JSON object with the UUID or name for your App Services organization and application when you instantiate it.</p>\n"+"<pre>\n"+"//Apigee account credentials, available in the App Services admin portal \n"+"var client_creds = {\n"+"        orgName:'{{currentOrg}}',\n"+"        appName:'{{currentApp}}'\n"+"    }\n"+"\n"+"//Initializes the SDK. Also instantiates Apigee.MonitoringClient\n"+"var dataClient = new Apigee.Client(client_creds);  \n"+"</pre>\n"+"\n"+"<h2>3. Verify SDK installation</h2>\n"+"\n"+"<p>Once initialized, App Services will also automatically instantiate <code>Apigee.MonitoringClient</code> and begin logging usage, crash and error metrics for your app.</p>\n"+"\n"+"<p>To verify that the SDK has been properly initialized, run your app, then go to <strong>'Monitoring' > 'App Usage'</strong> in the <a href=\"https:
 //www.apigee.com/usergrid\">App Services admin portal</a> to verify that data is being sent.</p>\n"+'<p><img src="img/verify.png" alt="screenshot of data in admin portal"/></p>\n'+'<div class="warning">It may take up to two minutes for data to appear in the admin portal after you run your app.</div>\n'+"\n"+"<h2>Installation complete! Try these next steps</h2>\n"+"<ul>\n"+"	<li>	\n"+"		<h3><strong>Call additional SDK methods in your code</strong></h3>\n"+"		<p>Use <code>dataClient</code> or <code>dataClient.monitor</code> to call SDK methods:</p>\n"+'		<div id="collapse">\n'+'			<a href="#client_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+"		</div>\n"+'		<div id="client_collapse" class="collapse">\n'+"			<ul>\n"+"				<li><code>dataClient</code>: Used to access the data methods of the App Services SDK, including those for push notifications, data store, and geolocation.</li>\n"+"				<li><code>dataClient.monitor</code>: Used
  to access the app configuration and monitoring methods of the App Services SDK, including advanced logging, and A/B testing.</li>\n"+"			</ul>\n"+"		</div>\n"+"	</li>	\n"+"	<li>\n"+"		<h3><strong>Add App Services features to your app</strong></h3>\n"+"		<p>With App Services you can quickly add valuable features to your mobile or web app, including push notifications, a custom data store, geolocation and more. Check out these links to get started with a few of our most popular features:</p>\n"+"		<ul>\n"+'			<li><strong><a href="http://apigee.com/docs/node/8410">Push notifications</a></strong>: Send offers, alerts and other messages directly to user devices to dramatically increase engagement. With App Services you can send 10 million push notification per month for free!</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/410">Geolocation</a></strong>: Keep your app highly-relevant by targeting users or returning result sets based on user location.</li>\n'+'			<li><strong>
 <a href="http://apigee.com/docs/node/10152">Data storage</a></strong>: Store all your application data on our high-availability infrastructure, and never worry about dealing with a database ever again.</li>\n'+'			<li><strong><a href="http://apigee.com/docs/node/376">User management and authentication</a></strong>: Every app needs users. Use App Services to easily implement registration, login and OAuth 2.0-compliant authentication.</li>\n'+"		</ul>\n"+"	</li>\n"+"	<li>\n"+"		<h3><strong>Check out the sample apps</strong></h3>\n"+"		<p>The SDK includes samples that illustrate Apigee&nbsp;features. To look at them, open the .xcodeproj file for each in Xcode. You'll find the samples in the following location in your SDK download:</p>\n"+"		<pre>\n"+"apigee-javascript-sdk-master\n"+"    ...\n"+"    /samples		\n"+"		</pre>\n"+'		<div id="collapse">\n'+'			<a href="#samples_collapse" class="btn" data-toggle="collapse"><i class="icon-white icon-chevron-down"></i> Details</a>\n'+"		</div>\
 n"+'		<div id="samples_collapse" class="collapse">\n'+"			<p>The samples include the following:</p>\n"+'			<table class="table">\n'+"				<thead>\n"+"					<tr>\n"+'						<th scope="col">Sample</th>\n'+'						<th scope="col">Description</th>\n'+"					</tr>\n"+"				</thead>\n"+"				<tbody>\n"+"					<tr>\n"+"						<td>booksSample.html</td>\n"+"						<td>An app for storing a list of books that shows Apigee database operations such as reading, creating, and deleting.</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>messagee</td>\n"+"						<td>An app for sending and receiving messages that shows Apigee database operations (reading, creating).</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>monitoringSample.html</td>\n"+"						<td>Shows basic configuration and initialization of the HTML5 app monitoring functionality. Works in browser, PhoneGap, Appcelerator, and Trigger.io.</td>\n"+"					</tr>\n"+"					<tr>\n"+"						<td>readmeSample.html</td>\n"+"						<td>A simple app for reading data from
  an Apigee database.</td>\n"+"					</tr>\n"+"				</tbody>\n"+"			</table>\n"+"		</div>	\n"+"	</li>				\n"+"</ul>\n");$templateCache.put("app-overview/doc-includes/net.html","");$templateCache.put("app-overview/doc-includes/node.html","");$templateCache.put("app-overview/doc-includes/ruby.html","");$templateCache.put("app-overview/getting-started.html",'<div class="setup-sdk-content" >\n'+"\n"+'  <bsmodal id="regenerateCredentials"\n'+'           title="Confirmation"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="regenerateCredentialsDialog"\n'+'           extrabuttonlabel="Yes"\n'+"           ng-cloak>\n"+"    Are you sure you want to regenerate the credentials?\n"+"  </bsmodal>\n"+"\n"+'    <page-title icon="&#128640;" title="Getting Started"></page-title>\n'+"\n"+'  <section class="row-fluid">\n'+"\n"+"\n"+"\n"+"\n"+'    <div class="span8">\n'+"\n"+'      <h2 class="title">Install the SDK for app {{currentApp}}</h2>\n'+"      <p>Cli
 ck on a platform icon below to view SDK installation instructions for that platform.</p>\n"+'      <ul class="inline unstyled">\n'+'        <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#ios"><i class="sdk-icon-large-ios"></i></a></li>-->\n'+'        <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#android"><i class="sdk-icon-large-android"></i></a></li>-->\n'+'        <!--<li><a target="_blank" href="http://apigee.com/docs/usergrid/content/sdks-and-examples#javascript"><i class="sdk-icon-large-js"></i></a></li>-->\n'+"\n"+"\n"+"        <li ng-click=\"showSDKDetail('ios')\"\n"+'            analytics-on="click"\n'+'            analytics-label="App Services"\n'+'            analytics-category="Getting Started"\n'+'            analytics-event="iOS SDK"><i class="sdk-icon-large-ios"></i></li>\n'+"        <li ng-click=\"showSDKDetail('android')\"\n"+'            analytics-on="click"\n'+'            anal
 ytics-label="App Services"\n'+'            analytics-category="Getting Started"\n'+'            analytics-event="Android SDK"><i class="sdk-icon-large-android"></i></li>\n'+"        <li ng-click=\"showSDKDetail('javascript')\"\n"+'            analytics-on="click"\n'+'            analytics-label="App Services"\n'+'            analytics-category="Getting Started"\n'+'            analytics-event="JS SDK"><i class="sdk-icon-large-js"></i></li>\n'+'        <li><a target="_blank"\n'+"               ng-click=\"showSDKDetail('nocontent')\"\n"+'               href="http://apigee.com/docs/usergrid/content/sdks-and-examples#nodejs"\n'+'               analytics-on="click"\n'+'               analytics-label="App Services"\n'+'               analytics-category="Getting Started"\n'+'               analytics-event="Node SDK"><i class="sdk-icon-large-node"></i></a></li>\n'+'        <li><a target="_blank"\n'+"               ng-click=\"showSDKDetail('nocontent')\"\n"+'               href="http://apige
 e.com/docs/usergrid/content/sdks-and-examples#ruby"\n'+'               analytics-on="click"\n'+'               analytics-label="App Services"\n'+'               analytics-category="Getting Started"\n'+'               analytics-event="Ruby SDK"><i class="sdk-icon-large-ruby"></i></a></li>\n'+'        <li><a target="_blank"\n'+"               ng-click=\"showSDKDetail('nocontent')\"\n"+'               href="http://apigee.com/docs/usergrid/content/sdks-and-examples#c"\n'+'               analytics-on="click"\n'+'               analytics-label="App Services"\n'+'               analytics-category="Getting Started"\n'+'               analytics-event="DotNet SDK"><i class="sdk-icon-large-net"></i></a></li>\n'+"       </ul>\n"+"\n"+'      <section id="intro-container" class="row-fluid intro-container">\n'+"\n"+'        <div class="sdk-intro">\n'+"        </div>\n"+"\n"+'        <div class="sdk-intro-content">\n'+"\n"+'          <a class="btn normal white pull-right" ng-href="{{sdkLink}}" targ
 et="_blank">\n'+"            Download SDK\n"+"          </a>\n"+'          <a class="btn normal white pull-right" ng-href="{{docsLink}}" target="_blank">\n'+"            More Docs\n"+"          </a>\n"+'          <h3 class="title"><i class="pictogram">&#128213;</i>{{contentTitle}}</h3>\n'+"\n"+'          <div ng-include="getIncludeURL()"></div>\n'+"        </div>\n"+"\n"+"      </section>\n"+"    </div>\n"+"\n"+'    <div class="span4 keys-creds">\n'+'      <h2 class="title">Mobile sdk keys</h2>\n'+"      <p>For mobile SDK initialization.</p>\n"+'      <dl class="app-creds">\n'+"        <dt>Org Name</dt>\n"+"        <dd>{{currentOrg}}</dd>\n"+"        <dt>App Name</dt>\n"+"        <dd>{{currentApp}}</dd>\n"+"      </dl>\n"+'      <h2 class="title">Server app credentials</h2>\n'+"      <p>For authenticating from a server side app (i.e. Ruby, .NET, etc.)</p>\n"+'      <dl class="app-creds">\n'+"        <dt>Client ID</dt>\n"+"        <dd>{{clientID}}</dd>\n"+"        <dt>Client Secret</
 dt>\n"+"        <dd>{{clientSecret}}</dd>\n"+"        <dt>\n"+"           &nbsp;\n"+"        </dt>\n"+"        <dd>&nbsp;</dd>\n"+"\n"+"        <dt>\n"+'          <a class="btn filter-selector" ng-click="showModal(\'regenerateCredentials\')">Regenerate</a>\n'+"        </dt>\n"+"        <dd></dd>\n"+"      </dl>\n"+"\n"+"    </div>\n"+"\n"+"  </section>\n"+"</div>");
 $templateCache.put("data/data.html",'<div class="content-page">\n'+"\n"+'  <bsmodal id="newCollection"\n'+'           title="Create new collection"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="newCollectionDialog"\n'+'           extrabuttonlabel="Create"\n'+'           buttonid="collection"\n'+"           ng-cloak>\n"+"    <fieldset>\n"+'      <div class="control-group">\n'+'        <label for="new-collection-name">Collection Name:</label>\n'+'        <div class="controls">\n'+'          <input type="text" ug-validate required ng-pattern="collectionNameRegex" ng-attr-title="{{collectionNameRegexDescription}}" ng-model="$parent.newCollection.name" name="collection" id="new-collection-name" class="input-xlarge"/>\n'+'          <p class="help-block hide"></p>\n'+"        </div>\n"+"      </div>\n"+"    </fieldset>\n"+"  </bsmodal>\n"+"\n"+'  <page-title title=" Collections" icon="&#128254;"></page-title>\n'+"\n"+'  <section class="row-
 fluid">\n'+'    <div class="span3 user-col">\n'+'        <a class="btn btn-primary" id="new-collection-link" ng-click="showModal(\'newCollection\')">New Collection</a>\n'+'        <ul  class="user-list">\n'+"          <li ng-class=\"queryCollection._type === entity.name ? 'selected' : ''\" ng-repeat=\"entity in collectionList\" ng-click=\"loadCollection('/'+entity.name);\">\n"+'            <a id="collection-{{entity.name}}-link" href="javaScript:void(0)">/{{entity.name}} </a>\n'+"          </li>\n"+"        </ul>\n"+"\n"+"  </div>\n"+"\n"+'    <div class="span9 tab-content">\n'+'      <div class="content-page">\n'+'      <form name="dataForm" ng-submit="run();">\n'+"        <fieldset>\n"+'          <div class="control-group">\n'+'            <div class="" data-toggle="buttons-radio">\n'+'              <!--a class="btn" id="button-query-back">&#9664; Back</a-->\n'+"              <!--Added disabled class to change the way button looks but their functionality is as usual -->\n"+'      
         <label class="control-label" style="display:none"><strong>Method</strong> <a id="query-method-help" href="#" class="help-link">get help</a></label>\n'+'              <input type="radio" id="create-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPOST();" ng-checked="verb==\'POST\'"> CREATE &nbsp; &nbsp;\n'+'              <input type="radio" id="read-rb" name="query-action" style="margin-top: -2px;" ng-click="selectGET();" ng-checked="verb==\'GET\'"> READ &nbsp; &nbsp;\n'+'              <input type="radio" id="update-rb" name="query-action" style="margin-top: -2px;" ng-click="selectPUT();" ng-checked="verb==\'PUT\'"> UPDATE &nbsp; &nbsp;\n'+'              <input type="radio" id="delete-rb" name="query-action" style="margin-top: -2px;" ng-click="selectDELETE();" ng-checked="verb==\'DELETE\'"> DELETE\n'+"            </div>\n"+"          </div>\n"+"\n"+'          <div class="control-group">\n'+"            <strong>Path </strong>\n"+'            <div class="contr
 ols">\n'+'              <input ng-model="data.queryPath" type="text" ug-validate id="pathDataQuery" ng-attr-title="{{pathRegexDescription}}" ng-pattern="pathRegex" class="span6" autocomplete="off" placeholder="ex: /users" required/>\n'+"            </div>\n"+"          </div>\n"+'          <div class="control-group">\n'+'            <a id="back-to-collection" class="outside-link" style="display:none">Back to collection</a>\n'+"          </div>\n"+'          <div class="control-group">\n'+"            <strong>Query</strong>\n"+'            <div class="controls">\n'+'              <input ng-model="data.searchString" type="text" class="span6" autocomplete="off" placeholder="ex: select * where name=\'fred\'"/>\n'+'              <div style="display:none">\n'+'                <a class="btn dropdown-toggle " data-toggle="dropdown">\n'+'                  <span id="query-collections-caret" class="caret"></span>\n'+"                </a>\n"+'                <ul id="query-collections-indexes-li
 st" class="dropdown-menu ">\n'+"                </ul>\n"+"              </div>\n"+"            </div>\n"+"          </div>\n"+"\n"+"\n"+"          <div class=\"control-group\" ng-show=\"verb=='GET' || verb=='DELETE'\">\n"+'            <label class="control-label" for="query-limit"><strong>Limit</strong> <a id="query-limit-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+'            <div class="controls">\n'+'              <div class="input-append">\n'+'                <input ng-model="data.queryLimit" type="text" class="span5" id="query-limit" placeholder="ex: 10">\n'+"              </div>\n"+"            </div>\n"+"          </div>\n"+"\n"+'          <div class="control-group" style="display:{{queryBodyDisplay}}">\n'+'            <label class="control-label" for="query-source"><strong>JSON Body</strong> <a id="query-json-help" href="#" ng-show="false" class="help-link">get help</a></label>\n'+'            <div class="controls">\n'+'            <textarea ng-
 model="data.queryBody" id="query-source" class="span6 pull-left" rows="4">\n'+'      { "name":"value" }\n'+"            </textarea>\n"+"              <br>\n"+'            <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+"            </div>\n"+"          </div>\n"+'          <div style="clear: both; height: 10px;"></div>\n'+'          <div class="control-group">\n'+'            <input type="submit" ng-disabled="!dataForm.$valid || loading" class="btn btn-primary" id="button-query"  value="{{loading ? loadingText : \'Run Query\'}}"/>\n'+"          </div>\n"+"        </fieldset>\n"+"       </form>\n"+"        <div ng-include=\"display=='generic' ? 'data/display-generic.html' : ''\"></div>\n"+"        <div ng-include=\"display=='users' ? 'data/display-users.html' : ''\"></div>\n"+"        <div ng-include=\"display=='groups' ? 'data/display-groups.html' : ''\"></div>\n"+"        <div ng-include=\"display=='roles' ? 'data/display-roles.html' : ''\"></div>\n"+"\n"+"
       </div>\n"+"\n"+"      </div>\n"+"    </section>\n"+"\n"+"\n"+"\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/display-generic.html","\n"+"\n"+'<bsmodal id="deleteEntities"\n'+'         title="Are you sure you want to delete the entities(s)?"\n'+'         close="hideModal"\n'+'         closelabel="Cancel"\n'+'         extrabutton="deleteEntitiesDialog"\n'+'         extrabuttonlabel="Delete"\n'+'         buttonid="del-entity"\n'+"         ng-cloak>\n"+"    <fieldset>\n"+'        <div class="control-group">\n'+"        </div>\n"+"    </fieldset>\n"+"</bsmodal>\n"+"\n"+'<span  class="button-strip">\n'+'  <button class="btn btn-primary" ng-disabled="!valueSelected(queryCollection._list) || deleteLoading" ng-click="deleteEntitiesDialog()">{{deleteLoading ? loadingText : \'Delete Entity(s)\'}}</button>\n'+"</span>\n"+'<table class="table table-striped collection-list">\n'+"  <thead>\n"+'  <tr class="table-header">\n'+'    <th><input type="checkbox" ng-show="queryCollection._list.l
 ength > 0" id="selectAllCheckbox" ng-model="queryBoxesSelected" ng-click="selectAllEntities(queryCollection._list,$parent,\'queryBoxesSelected\',true)"></th>\n'+"    <th ng-if=\"hasProperty('name')\">Name</th>\n"+"    <th>UUID</th>\n"+"    <th></th>\n"+"  </tr>\n"+"  </thead>\n"+'  <tbody ng-repeat="entity in queryCollection._list">\n'+'  <tr class="zebraRows" >\n'+"    <td>\n"+"      <input\n"+'        type="checkbox"\n'+'        id="entity-{{entity._data.name}}-cb"\n'+'        ng-value="entity._data.uuid"\n'+'        ng-model="entity.checked"\n'+"        >\n"+"    </td>\n"+"    <td ng-if=\"hasProperty('name')\">{{entity._data.name}}</td>\n"+"    <td>{{entity._data.uuid}}</td>\n"+"    <td><a href=\"javaScript:void(0)\" ng-click=\"entitySelected[$index] = !entitySelected[$index];selectEntity(entity._data.uuid)\">{{entitySelected[$index] ? 'Hide' : 'View'}} Details</a></td>\n"+"  </tr>\n"+'  <tr ng-if="entitySelected[$index]">\n'+'    <td colspan="5">\n'+"\n"+"\n"+'      <h4 style="m
 argin: 0 0 20px 0">Entity Detail</h4>\n'+"\n"+"\n"+'      <ul class="formatted-json">\n'+'        <li ng-repeat="(k,v) in entity._data track by $index">\n'+'          <span class="key">{{k}} :</span>\n'+"          <!--todo - doing manual recursion to get this out the door for launch, please fix-->\n"+'          <span ng-switch on="isDeep(v)">\n'+'            <ul ng-switch-when="true">\n'+'              <li ng-repeat="(k2,v2) in v"><span class="key">{{k2}} :</span>\n'+"\n"+'                <span ng-switch on="isDeep(v2)">\n'+'                  <ul ng-switch-when="true">\n'+'                    <li ng-repeat="(k3,v3) in v2"><span class="key">{{k3}} :</span><span class="value">{{v3}}</span></li>\n'+"                  </ul>\n"+'                  <span ng-switch-when="false">\n'+'                    <span class="value">{{v2}}</span>\n'+"                  </span>\n"+"                </span>\n"+"              </li>\n"+"            </ul>\n"+'            <span ng-switch-when="false">\n'+'   
            <span class="value">{{v}}</span>\n'+"            </span>\n"+"          </span>\n"+"        </li>\n"+"      </ul>\n"+"\n"+'    <div class="control-group">\n'+'      <h4 style="margin: 20px 0 20px 0">Edit Entity</h4>\n'+'      <div class="controls">\n'+'        <textarea ng-model="entity._json" class="span12" rows="12"></textarea>\n'+"        <br>\n"+'        <a class="btn btn-primary toolbar pull-left" ng-click="validateJson();">Validate JSON</a><button type="button" class="btn btn-primary pull-right" id="button-query" ng-click="saveEntity(entity);">Save</button>\n'+"      </div>\n"+"    </div>\n"+"  </td>\n"+"  </tr>\n"+"\n"+'  <tr ng-show="queryCollection._list.length == 0">\n'+'    <td colspan="4">No data found</td>\n'+"  </tr>\n"+"  </tbody>\n"+"</table>\n"+'<div style="padding: 10px 5px 10px 5px">\n'+'  <button class="btn btn-primary toolbar" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+'  <button class="btn btn-primary toolbar"
  ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+"</div>\n"+"\n");$templateCache.put("data/display-groups.html","");$templateCache.put("data/display-roles.html","roles---------------------------------");$templateCache.put("data/display-users.html","\n"+'<table id="query-response-table" class="table">\n'+"  <tbody>\n"+'  <tr class="zebraRows users-row">\n'+'    <td class="checkboxo">\n'+'      <input type="checkbox" onclick="Usergrid.console.selectAllEntities(this);"></td>\n'+'    <td class="gravatar50-td">&nbsp;</td>\n'+'    <td class="user-details bold-header">Username</td>\n'+'    <td class="user-details bold-header">Display Name</td>\n'+'    <td class="user-details bold-header">UUID</td>\n'+'    <td class="view-details">&nbsp;</td>\n'+"  </tr>\n"+'  <tr class="zebraRows users-row">\n'+'    <td class="checkboxo">\n'+'      <input class="listItem" type="checkbox" name="/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf
 44-236d2eee13a7" value="bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+"    </td>\n"+'    <td class="gravatar50-td">\n'+'      <img src="http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e" class="gravatar50">\n'+"    </td>\n"+'    <td class="details">\n'+"      <a onclick=\"Usergrid.console.getCollection('GET', '/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/'+'bf9a95da-d508-11e2-bf44-236d2eee13a7'); $('#data-explorer').show(); return false;\" class=\"view-details\">10</a>\n"+"    </td>\n"+'    <td class="details">      #"&gt;&lt;img src=x onerror=prompt(1);&gt;   </td>\n'+'    <td class="details">     bf9a95da-d508-11e2-bf44-236d2eee13a7   </td>\n'+'    <td class="view-details">\n'+'      <a href="" onclick="$(\'#query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7\').toggle(); $(\'#data-explorer\').show(); return false;" class="view-details">Details</a>\n'+"    </td>\n"+"  </tr>\n"+'  <tr id="query-row-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+'    <t
 d colspan="5">\n'+"      <div>\n"+'        <div style="padding-bottom: 10px;">\n'+'          <button type="button" class="btn btn-small query-button active" id="button-query-show-row-JSON" onclick="Usergrid.console.activateQueryRowJSONButton(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">JSON</button>\n'+'          <button type="button" class="btn btn-small query-button disabled" id="button-query-show-row-content" onclick="Usergrid.console.activateQueryRowContentButton();$(\'#query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7\').show(); $(\'#query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7\').hide(); return false;">Content</button>\n'+"        </div>\n"+'        <div id="query-row-JSON-bf9a95da-d508-11e2-bf44-236d2eee13a7">\n'+"              <pre>{\n"+'  "picture": "http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e",\n'+'  "uuid": "bf9a95da-d508-11e2-bf4
 4-236d2eee13a7",\n'+'  "type": "user",\n'+'  "name": "#"&gt;&lt;img src=x onerror=prompt(1);&gt;",\n'+'  "created": 1371224432557,\n'+'  "modified": 1371851347024,\n'+'  "username": "10",\n'+'  "email": "fdsafdsa@ookfd.com",\n'+'  "activated": "true",\n'+'  "adr": {\n'+'    "addr1": "",\n'+'    "addr2": "",\n'+'    "city": "",\n'+'    "state": "",\n'+'    "zip": "",\n'+'    "country": ""\n'+"  },\n"+'  "metadata": {\n'+'    "path": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7",\n'+'    "sets": {\n'+'      "rolenames": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames",\n'+'      "permissions": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions"\n'+"    },\n"+'    "collections": {\n'+'      "activities": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities",\n'+'      "devices": "/user
 s/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices",\n'+'      "feed": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed",\n'+'      "groups": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups",\n'+'      "roles": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles",\n'+'      "following": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following",\n'+'      "followers": "/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers"\n'+"    }\n"+"  },\n"+'  "title": "#"&gt;&lt;img src=x onerror=prompt(1);&gt;"\n'+"}</pre>\n"+"        </div>\n"+'        <div id="query-row-content-bf9a95da-d508-11e2-bf44-236d2eee13a7" style="display:none">\n'+"          <table>\n"+"            <tbody>\n"+"            <tr>\n"+"           
    <td>picture</td>\n"+'              <td>http://www.gravatar.com/avatar/01b37aa66496988ca780b3f515bc768e</td></tr><tr><td>uuid</td><td>bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>type</td><td>user</td></tr><tr><td>name</td><td>#&amp;quot;&amp;gt;&amp;lt;img src=x onerror=prompt(1);&amp;gt;</td></tr><tr><td>created</td><td>1371224432557</td></tr><tr><td>modified</td><td>1371851347024</td></tr><tr><td>username</td><td>10</td></tr><tr><td>email</td><td>fdsafdsa@ookfd.com</td></tr><tr><td>activated</td><td>true</td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>addr1</td><td></td></tr><tr><td>addr2</td><td></td></tr><tr><td>city</td><td></td></tr><tr><td>state</td><td></td></tr><tr><td>zip</td><td></td></tr><tr><td>country</td><td></td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>path</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7</td></tr><tr><td>
 </td><td style="padding: 0"><table><tbody><tr></tr><tr><td>rolenames</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/rolenames</td></tr><tr><td>permissions</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/permissions</td></tr></tbody></table></td></tr><tr><td></td><td style="padding: 0"><table><tbody><tr></tr><tr><td>activities</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/activities</td></tr><tr><td>devices</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/devices</td></tr><tr><td>feed</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/feed</td></tr><tr><td>groups</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/groups</td></tr><tr><td>roles</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031
 a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/roles</td></tr><tr><td>following</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/following</td></tr><tr><td>followers</td><td>/users/8bb9a3fa-d508-11e2-875d-a59031a365e8/following/bf9a95da-d508-11e2-bf44-236d2eee13a7/followers</td></tr></tbody></table></td></tr></tbody></table></td></tr><tr><td>title</td><td>#&amp;quot;&amp;gt;&amp;lt;img src=x onerror=prompt(1);&amp;gt;</td>\n'+"            </tr>\n"+"            </tbody>\n"+"          </table>\n"+"        </div>\n"+"      </div>\n"+"    </td>\n"+"  </tr>\n"+"  </tbody>\n"+"</table>");$templateCache.put("data/entity.html",'<div class="content-page">\n'+"\n"+"  <h4>Entity Detail</h4>\n"+'  <div class="well">\n'+'    <a href="#!/data" class="outside-link"><< Back to collection</a>\n'+"  </div>\n"+"  <fieldset>\n"+'    <div class="control-group">\n'+"      <strong>Path </strong>\n"+'      <div class="controls">\n'+"        {{entityT
 ype}}/{{entityUUID}}\n"+"      </div>\n"+"    </div>\n"+"\n"+'    <div class="control-group">\n'+'      <label class="control-label" for="query-source"><strong>JSON Body</strong></label>\n'+'      <div class="controls">\n'+'        <textarea ng-model="queryBody" class="span6 pull-left" rows="12">{{queryBody}}</textarea>\n'+"        <br>\n"+'        <a class="btn pull-left" ng-click="validateJson();">Validate JSON</a>\n'+"      </div>\n"+"    </div>\n"+'    <div style="clear: both; height: 10px;"></div>\n'+'    <div class="control-group">\n'+'      <button type="button" class="btn btn-primary" id="button-query" ng-click="saveEntity();">Save</button>\n'+'      <!--button type="button" class="btn btn-primary" id="button-query" ng-click="run();">Delete</button-->\n'+"    </div>\n"+"  </fieldset>\n"+"\n"+"</div>\n"+"\n");$templateCache.put("data/shell.html",'<div class="content-page">\n'+'  <div class="well">\n'+"    <h2>Interactive Shell</h2>\n"+'    <div style="float:right"><a target="
 _blank" href="http://apigee.com/docs/usergrid/content/usergrid-admin-portal" class="notifications-links">Learn more in our docs</a></div>\n'+"  </div>\n"+"\n"+'  <div class="console-section-contents">\n'+'    <div id="shell-input-div">\n'+'      <p>   Type "help" to view a list of the available commands.</p><hr>\n'+"      <span>&nbsp;&gt;&gt; </span>\n"+'      <!--textarea id="shell-input" rows="2" autofocus="autofocus"></textarea-->\n'+"    </div>\n"+'    <pre id="shell-output" class="prettyprint lang-js" style="overflow-x: auto; height: 400px;"><span class="pln">                      </span><p><span class="pln">  </span><span class="typ">Response</span><span class="pun">:</span></p><hr><span class="pln">\n'+"    </span></pre>\n"+"  </div>\n"+"</div>");$templateCache.put("dialogs/modal.html",'    <div class="modal show fade" tabindex="-1" role="dialog" aria-hidden="true">\n'+'        <form ng-submit="extraDelegate(extrabutton)" name="dialogForm" novalidate>\n'+"\n"+'        <div cl
 ass="modal-header">\n'+'            <h1 class="title">{{title}}</h1>\n'+"        </div>\n"+"\n"+'        <div class="modal-body" ng-transclude></div>\n'+'        <div class="modal-footer">\n'+"            {{footertext}}\n"+'            <input type="submit" class="btn" id="dialogButton-{{buttonId}}" ng-if="extrabutton" ng-disabled="!dialogForm.$valid" aria-hidden="true" ng-value="extrabuttonlabel"/>\n'+'            <button class="btn cancel pull-left" data-dismiss="modal" aria-hidden="true"\n'+'                    ng-click="closeDelegate(close)">{{closelabel}}\n'+"            </button>\n"+"        </div>\n"+"        </form>    </div>\n");$templateCache.put("global/appswitcher-template.html",'<li id="globalNav" class="dropdown dropdownContainingSubmenu active">\n'+'  <a class="dropdown-toggle" data-toggle="dropdown">API Platform<b class="caret"></b></a>\n'+'  <ul class="dropdown-menu pull-right">\n'+'    <li id="globalNavSubmenuContainer">\n'+"      <ul>\n"+'        <li data-globalNav
 Detail="globalNavDetailApigeeHome"><a target="_blank" href="http://apigee.com">Apigee Home</a></li>\n'+'        <li data-globalNavDetail="globalNavDetailAppServices" class="active"><a target="_blank" href="https://apigee.com/usergrid/">App Services</a></li>\n'+'        <li data-globalNavDetail="globalNavDetailApiPlatform" ><a target="_blank" href="https://enterprise.apigee.com">API Platform</a></li>\n'+'        <li data-globalNavDetail="globalNavDetailApiConsoles"><a target="_blank" href="http://apigee.com/providers">API Consoles</a></li>\n'+"      </ul>\n"+"    </li>\n"+'    <li id="globalNavDetail">\n'+'      <div id="globalNavDetailApigeeHome">\n'+'        <div class="globalNavDetailApigeeLogo"></div>\n'+'        <div class="globalNavDetailDescription">You need apps and apps need APIs. Apigee is the leading API platform for enterprises and developers.</div>\n'+"      </div>\n"+'      <div id="globalNavDetailAppServices">\n'+'        <div class="globalNavDetailSubtitle">For App De
 velopers</div>\n'+'        <div class="globalNavDetailTitle">App Services</div>\n'+'        <div class="globalNavDetailDescription">Build engaging applications, store data, manage application users, and more.</div>\n'+"      </div>\n"+'      <div id="globalNavDetailApiPlatform">\n'+'        <div class="globalNavDetailSubtitle">For API Developers</div>\n'+'        <div class="globalNavDetailTitle">API Platform</div>\n'+'        <div class="globalNavDetailDescription">Create, configure, manage and analyze your APIs and resources.</div>\n'+"      </div>\n"+'      <div id="globalNavDetailApiConsoles">\n'+'        <div class="globalNavDetailSubtitle">For API Developers</div>\n'+'        <div class="globalNavDetailTitle">API Consoles</div>\n'+'        <div class="globalNavDetailDescription">Explore over 100 APIs with the Apigee API Console, or create and embed your own API Console.</div>\n'+"      </div>\n"+"    </li>\n"+"  </ul>\n"+"</li>");$templateCache.put("global/insecure-banner.html
 ",'<div ng-if="securityWarning" ng-cloak class="demo-holder">\n'+'    <div class="alert alert-demo alert-animate">\n'+'        <div class="alert-text">\n'+'            <i class="pictogram">&#9888;</i>Warning: This application has "sandbox" permissions and is not production ready. <a target="_blank" href="http://apigee.com/docs/app-services/content/securing-your-app">Please go to our security documentation to find out more.</a></span>\n'+"        </div>\n"+"    </div>\n"+"</div>");$templateCache.put("global/page-title.html",'<section class="row-fluid">\n'+'    <div class="span12">\n'+'        <div class="page-filters">\n'+'            <h1 class="title pull-left" id="pageTitle"><i class="pictogram title" style="padding-right: 5px;">{{icon}}</i>{{title}} <a class="super-help" href="http://community.apigee.com/content/apigee-customer-support" target="_blank"  >(need help?)</a></h1>\n'+"        </div>\n"+"    </div>\n"+'    <bsmodal id="need-help"\n'+'             title="Need Help?"\n'+'
              close="hideModal"\n'+'             closelabel="Cancel"\n'+'             extrabutton="sendHelp"\n'+'             extrabuttonlabel="Get Help"\n'+"             ng-cloak>\n"+"        <p>Do you want to contact support? Support will get in touch with you as soon as possible.</p>\n"+"    </bsmodal>\n"+"</section>\n"+"\n");$templateCache.put("groups/groups-activities.html",'<div class="content-page" ng-controller="GroupsActivitiesCtrl">\n'+"\n"+"  <br>\n"+"  <div>\n"+'    <table class="table table-striped">\n'+"      <tbody>\n"+'      <tr class="table-header">\n'+"        <td>Date</td>\n"+"        <td>Content</td>\n"+"        <td>Verb</td>\n"+"        <td>UUID</td>\n"+"      </tr>\n"+'      <tr class="zebraRows" ng-repeat="activity in selectedGroup.activities">\n'+"        <td>{{activity.createdDate}}</td>\n"+"        <td>{{activity.content}}</td>\n"+"        <td>{{activity.verb}}</td>\n"+"        <td>{{activity.uuid}}</td>\n"+"      </tr>\n"+"      </tbody>\n"+"    </table>\n"
 +"  </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-details.html",'<div class="content-page" ng-controller="GroupsDetailsCtrl">\n'+"\n"+"  <div>\n"+'      <form name="updateGroupDetailForm" ng-submit="saveSelectedGroup()" novalidate>\n'+'          <div style="float: left; padding-right: 30px;">\n'+'              <h4 class="ui-dform-legend">Group Information</h4>\n'+'              <label for="group-title" class="ui-dform-label">Group Title</label>\n'+'              <input type="text" id="group-title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required class="ui-dform-text" ng-model="group.title" ug-validate>\n'+"              <br/>\n"+'            <label for="group-path" class="ui-dform-label">Group Path</label>\n'+'            <input type="text" id="group-path" required ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" class="ui-dform-text" ng-model="group.path" ug-validate>\n'+"            <br/>\n"+"    
       </div>\n"+'          <br style="clear:both"/>\n'+"\n"+'          <div style="width:100%;float:left;padding: 20px 0">\n'+'              <input type="submit" value="Save Group" style="margin-right: 15px;" ng-disabled="!updateGroupDetailForm.$valid" class="btn btn-primary" />\n'+"          </div>\n"+"\n"+'          <div class="content-container">\n'+"              <h4>JSON Group Object</h4>\n"+"              <pre>{{json}}</pre>\n"+"          </div>\n"+"      </form>\n"+"  </div>\n"+"\n"+"\n"+"</div>");$templateCache.put("groups/groups-members.html",'<div class="content-page" ng-controller="GroupsMembersCtrl">\n'+"\n"+"\n"+'  <bsmodal id="removeFromGroup"\n'+'           title="Confirmation"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="removeUsersFromGroupDialog"\n'+'           extrabuttonlabel="Delete"\n'+"           ng-cloak>\n"+"    <p>Are you sure you want to remove the users from the seleted group(s)?</p>\n"+"  </bsmodal>\n"+"
 \n"+'  <bsmodal id="addGroupToUser"\n'+'           title="Add user to group"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="addGroupToUserDialog"\n'+'           extrabuttonlabel="Add"\n'+"           ng-cloak>\n"+'    <div class="btn-group">\n'+'      <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+"        <span class=\"filter-label\">{{$parent.user != '' ? $parent.user.username : 'Select a user...'}}</span>\n"+'        <span class="caret"></span>\n'+"      </a>\n"+'      <ul class="dropdown-menu">\n'+'        <li ng-repeat="user in $parent.usersTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.user = user">{{user.username}}</a></li>\n'+"      </ul>\n"+"    </div>\n"+"  </bsmodal>\n"+"\n"+"\n"+'  <div class="button-strip">\n'+'    <button class="btn btn-primary"  ng-click="showModal(\'addGroupToUser\')">Add User to Group</button>\n'+'    <button class="btn btn-primary" ng-disabled="!hasMembers 
 || !valueSelected(groupsCollection.users._list)" ng-click="showModal(\'removeFromGroup\')">Remove User(s) from Group</button>\n'+"  </div>\n"+'  <table class="table table-striped">\n'+'    <tr class="table-header">\n'+'      <td style="width: 30px;"><input type="checkbox" ng-show="hasMembers" id="selectAllCheckbox" ng-model="groupMembersSelected" ng-click="selectAllEntities(groupsCollection.users._list,this,\'groupMembersSelected\')"></td>\n'+'      <td style="width: 50px;"></td>\n'+"      <td>Username</td>\n"+"      <td>Display Name</td>\n"+"    </tr>\n"+'    <tr class="zebraRows" ng-repeat="user in groupsCollection.users._list">\n'+"      <td>\n"+"        <input\n"+'          type="checkbox"\n'+'          ng-model="user.checked"\n'+"          >\n"+"      </td>\n"+'      <td><img style="width:30px;height:30px;" ng-src="{{user._portal_image_icon}}"></td>\n'+"      <td>{{user.get('username')}}</td>\n"+"      <td>{{user.get('name')}}</td>\n"+"    </tr>\n"+"  </table>\n"+'  <div style=
 "padding: 10px 5px 10px 5px">\n'+'    <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+'    <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+"  </div>\n"+"</div>");$templateCache.put("groups/groups-roles.html",'<div class="content-page" ng-controller="GroupsRolesCtrl">\n'+"\n"+'  <bsmodal id="addGroupToRole"\n'+'           title="Add group to role"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="addGroupToRoleDialog"\n'+'           extrabuttonlabel="Add"\n'+"           ng-cloak>\n"+'    <div class="btn-group">\n'+'      <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n'+"        <span class=\"filter-label\">{{$parent.name != '' ? $parent.name : 'Role name...'}}</span>\n"+'        <span class="caret"></span>\n'+"      </a>\n"+'      <ul class="dropdown-menu">\n'+'        <li ng-
 repeat="role in $parent.rolesTypeaheadValues" class="filterItem"><a ng-click="$parent.$parent.name = role.name">{{role.name}}</a></li>\n'+"      </ul>\n"+"    </div>\n"+"  </bsmodal>\n"+"\n"+'  <bsmodal id="leaveRoleFromGroup"\n'+'           title="Confirmation"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="leaveRoleDialog"\n'+'           extrabuttonlabel="Leave"\n'+"           ng-cloak>\n"+"    <p>Are you sure you want to remove the group from the role(s)?</p>\n"+"  </bsmodal>\n"+"\n"+"\n"+'  <div class="button-strip">\n'+'    <button class="btn btn-primary" ng-click="showModal(\'addGroupToRole\')">Add Role to Group</button>\n'+'    <button class="btn btn-primary" ng-disabled="!hasRoles || !valueSelected(groupsCollection.roles._list)" ng-click="showModal(\'leaveRoleFromGroup\')">Remove Role(s) from Group</button>\n'+"  </div>\n"+"  <h4>Roles</h4>\n"+'  <table class="table table-striped">\n'+"    <tbody>\n"+'    <tr class="table-head
 er">\n'+'      <td style="width: 30px;"><input type="checkbox" ng-show="hasRoles" id="groupsSelectAllCheckBox" ng-model="groupRoleSelected" ng-click="selectAllEntities(groupsCollection.roles._list,this,\'groupRoleSelected\')" ></td>\n'+"      <td>Role Name</td>\n"+"      <td>Role title</td>\n"+"    </tr>\n"+'    <tr class="zebraRows" ng-repeat="role in groupsCollection.roles._list">\n'+"      <td>\n"+"        <input\n"+'          type="checkbox"\n'+'          ng-model="role.checked"\n'+"          >\n"+"      </td>\n"+"      <td>{{role._data.name}}</td>\n"+"      <td>{{role._data.title}}</td>\n"+"    </tr>\n"+"    </tbody>\n"+"  </table>\n"+'  <div style="padding: 10px 5px 10px 5px">\n'+'    <button class="btn btn-primary" ng-click="getPreviousRoles()" style="display:{{roles_previous_display}}">< Previous</button>\n'+'    <button class="btn btn-primary" ng-click="getNextRoles()" style="display:{{roles_next_display}};float:right;">Next ></button>\n'+"  </div>\n"+"\n"+"\n"+'  <bsmodal 
 id="deletePermission"\n'+'           title="Confirmation"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="deleteGroupPermissionDialog"\n'+'           extrabuttonlabel="Delete"\n'+"           ng-cloak>\n"+"    <p>Are you sure you want to delete the permission(s)?</p>\n"+"  </bsmodal>\n"+"\n"+"\n"+'  <bsmodal id="addPermission"\n'+'           title="New Permission"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="addGroupPermissionDialog"\n'+'           extrabuttonlabel="Add"\n'+"           ng-cloak>\n"+'    <p>Path: <input ng-model="$parent.permissions.path" placeholder="ex: /mydata" id="groupsrolespermissions" type="text" ng-pattern="pathRegex" ng-attr-title="{{pathRegexDescription}}" required ug-validate  /></p>\n'+'    <div class="control-group">\n'+'      <input type="checkbox" ng-model="$parent.permissions.getPerm"> GET\n'+"    </div>\n"+'    <div class="control-group">\n'+'      <inpu
 t type="checkbox" ng-model="$parent.permissions.postPerm"> POST\n'+"    </div>\n"+'    <div class="control-group">\n'+'      <input type="checkbox" ng-model="$parent.permissions.putPerm"> PUT\n'+"    </div>\n"+'    <div class="control-group">\n'+'      <input type="checkbox" ng-model="$parent.permissions.deletePerm"> DELETE\n'+"    </div>\n"+"  </bsmodal>\n"+"\n"+"\n"+'  <div class="button-strip">\n'+'    <button class="btn btn-primary" ng-click="showModal(\'addPermission\')">Add Permission</button>\n'+'    <button class="btn btn-primary" ng-disabled="!hasPermissions || !valueSelected(selectedGroup.permissions)" ng-click="showModal(\'deletePermission\')">Delete Permission(s)</button>\n'+"  </div>\n"+"  <h4>Permissions</h4>\n"+'  <table class="table table-striped">\n'+"    <tbody>\n"+'    <tr class="table-header">\n'+'      <td style="width: 30px;"><input ng-show="hasPermissions" type="checkbox" id="permissionsSelectAllCheckBox" ng-model="groupPermissionsSelected" ng-click="selectAll
 Entities(selectedGroup.permissions,this,\'groupPermissionsSelected\')"  ></td>\n'+"      <td>Path</td>\n"+"      <td>GET</td>\n"+"      <td>POST</td>\n"+"      <td>PUT</td>\n"+"      <td>DELETE</td>\n"+"    </tr>\n"+'    <tr class="zebraRows" ng-repeat="permission in selectedGroup.permissions">\n'+"      <td>\n"+"        <input\n"+'          type="checkbox"\n'+'          ng-model="permission.checked"\n'+"          >\n"+"      </td>\n"+"      <td>{{permission.path}}</td>\n"+"      <td>{{permission.operations.get}}</td>\n"+"      <td>{{permission.operations.post}}</td>\n"+"      <td>{{permission.operations.put}}</td>\n"+"      <td>{{permission.operations.delete}}</td>\n"+"    </tr>\n"+"    </tbody>\n"+"  </table>\n"+"\n"+"</div>");
 $templateCache.put("groups/groups-tabs.html",'<div class="content-page">\n'+"\n"+'  <section class="row-fluid">\n'+"\n"+'    <div class="span12">\n'+'      <div class="page-filters">\n'+'        <h1 class="title" class="pull-left"><i class="pictogram title">&#128101;</i> Groups</h1>\n'+"      </div>\n"+"    </div>\n"+"\n"+"  </section>\n"+"\n"+'  <div id="user-panel" class="panel-buffer">\n'+'    <ul id="user-panel-tab-bar" class="nav nav-tabs">\n'+'      <li><a href="javaScript:void(0);" ng-click="gotoPage(\'groups\')">Group List</a></li>\n'+'      <li ng-class="detailsSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/details\')">Details</a></li>\n'+'      <li ng-class="membersSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/members\')">Users</a></li>\n'+'      <li ng-class="activitiesSelected"><a href="javaScript:void(0);" ng-click="gotoPage(\'groups/activities\')">Activities</a></li>\n'+'      <li ng-class="rolesSelected"><a href="javaScript:v
 oid(0);" ng-click="gotoPage(\'groups/roles\')">Roles &amp; Permissions</a></li>\n'+"    </ul>\n"+"  </div>\n"+"\n"+'  <div style="float: left; margin-right: 10px;">\n'+'    <div style="float: left;">\n'+"      <div class=\"user-header-title\"><strong>Group Path: </strong>{{selectedGroup.get('path')}}</div>\n"+"      <div class=\"user-header-title\"><strong>Group Title: </strong>{{selectedGroup.get('title')}}</div>\n"+"    </div>\n"+"  </div>\n"+"</div>\n"+"<br>\n"+"<br>\n");$templateCache.put("groups/groups.html",'<div class="content-page">\n'+"\n"+'  <page-title title=" Groups" icon="&#128101;"></page-title>\n'+'  <bsmodal id="newGroup"\n'+'           title="New Group"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="newGroupDialog"\n'+'           extrabuttonlabel="Add"\n'+'           ng-model="dialog"\n'+"           ng-cloak>\n"+"    <fieldset>\n"+'      <div class="control-group">\n'+'        <label for="title">Title</label>\n'+'    
     <div class="controls">\n'+'          <input type="text" id="title" ng-pattern="titleRegex" ng-attr-title="{{titleRegexDescription}}" required ng-model="newGroup.title"class="input-xlarge" ug-validate/>\n'+"        </div>\n"+"      </div>\n"+'      <div class="control-group">\n'+'        <label for="path">Path</label>\n'+'        <div class="controls">\n'+'          <input id="path" type="text" ng-attr-title="{{pathRegexDescription}}" placeholder="ex: /mydata" ng-pattern="pathRegex" required ng-model="newGroup.path" class="input-xlarge" ug-validate/>\n'+"        </div>\n"+"      </div>\n"+"    </fieldset>\n"+"  </bsmodal>\n"+"\n"+'  <bsmodal id="deleteGroup"\n'+'           title="Delete Group"\n'+'           close="hideModal"\n'+'           closelabel="Cancel"\n'+'           extrabutton="deleteGroupsDialog"\n'+'           extrabuttonlabel="Delete"\n'+"           ng-cloak>\n"+"    <p>Are you sure you want to delete the group(s)?</p>\n"+"  </bsmodal>\n"+"\n"+"\n"+'  <section class=
 "row-fluid">\n'+'    <div class="span3 user-col">\n'+"\n"+'      <div class="button-toolbar span12">\n'+'        <a title="Select All" class="btn btn-primary select-all toolbar" ng-show="hasGroups" ng-click="selectAllEntities(groupsCollection._list,this,\'groupBoxesSelected\',true)"> <i class="pictogram">&#8863;</i></a>\n'+'        <button title="Delete" class="btn btn-primary toolbar" ng-disabled="!hasGroups || !valueSelected(groupsCollection._list)" ng-click="showModal(\'deleteGroup\')"><i class="pictogram">&#9749;</i></button>\n'+'        <button title="Add" class="btn btn-primary toolbar" ng-click="showModal(\'newGroup\')"><i class="pictogram">&#59136;</i></button>\n'+"      </div>\n"+'      <ul class="user-list">\n'+'        <li ng-class="selectedGroup._data.uuid === group._data.uuid ? \'selected\' : \'\'" ng-repeat="group in groupsCollection._list" ng-click="selectGroup(group._data.uuid)">\n'+"          <input\n"+'              type="checkbox"\n'+'              ng-value="group
 ._data.uuid"\n'+'              ng-checked="group.checked"\n'+'              ng-model="group.checked"\n'+"              >\n"+"          <a href=\"javaScript:void(0)\" >{{group.get('title')}}</a>\n"+"          <br/>\n"+"          <span ng-if=\"group.get('path')\" class=\"label\">Path:</span>/{{group.get('path')}}\n"+"        </li>\n"+"      </ul>\n"+"\n"+"\n"+'      <div style="padding: 10px 5px 10px 5px">\n'+'        <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_display}}">< Previous</button>\n'+'        <button class="btn btn-primary" ng-click="getNext()" style="display:{{next_display}}; float:right;">Next ></button>\n'+"      </div>\n"+"\n"+"    </div>\n"+"\n"+'    <div class="span9 tab-content" ng-show="selectedGroup.get" >\n'+'      <div class="menu-toolbar">\n'+'        <ul class="inline" >\n'+'          <li class="tab" ng-class="currentGroupsPage.route === \'/groups/details\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click
 ="selectGroupPage(\'/groups/details\')"><i class="pictogram">&#59170;</i>Details</a></li>\n'+'          <li class="tab" ng-class="currentGroupsPage.route === \'/groups/members\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/members\')"><i class="pictogram">&#128101;</i>Users</a></li>\n'+'          <li class="tab" ng-class="currentGroupsPage.route === \'/groups/activities\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/activities\')"><i class="pictogram">&#59194;</i>Activities</a></li>\n'+'          <li class="tab" ng-class="currentGroupsPage.route === \'/groups/roles\' ? \'selected\' : \'\'"><a class="btn btn-primary toolbar" ng-click="selectGroupPage(\'/groups/roles\')"><i class="pictogram">&#127758;</i>Roles &amp; Permissions</a></li>\n'+"        </ul>\n"+"      </div>\n"+'      <span ng-include="currentGroupsPage.template"></span>\n'+"\n"+"  </section>\n"+"</div>\n");$templateCache.put
 ("login/forgot-password.html",'<div class="login-content" ng-controller="ForgotPasswordCtrl">\n'+'	<iframe class="container" ng-src="{{forgotPWiframeURL}}" id="forgot-password-frame" border="0" style="border:0;width:600px;height:620px;">\n'+'	<p>Email Address: <input id="resetPasswordEmail" name="resetPasswordEmail" /></p>\n'+'	<button class="btn btn-primary" ng-click="">Reset Password</button>\n'+"</div>\n");$templateCache.put("login/loading.html","\n"+"\n"+"<h1>Loading...</h1>");$templateCache.put("login/login.html",'<div class="login-content">\r'+"\n"+'  <bsmodal id="sendActivationLink"\r'+"\n"+'           title="Resend Activation Link"\r'+"\n"+'           close="hideModal"\r'+"\n"+'           closelabel="Cancel"\r'+"\n"+'           extrabutton="resendActivationLink"\r'+"\n"+'           extrabuttonlabel="Send Activation"\r'+"\n"+"           ng-cloak>\r"+"\n"+"    <fieldset>\r"+"\n"+'      <p>Email to send to: <input type="email" required ng-model="$parent.activation.id" ng-patter
 n="emailRegex" ng-attr-title="{{emailRegexDescription}}" name="activationId" id="user-activationId" class="input-xlarge"/></p>\r'+"\n"+"    </fieldset>\r"+"\n"+"  </bsmodal>\r"+"\n"+'  <div class="login-holder">\r'+"\n"+'  <form name="loginForm" id="login-form"  ng-submit="login()" class="form-horizontal" novalidate>\r'+"\n"+'    <h1 class="title">Enter your credentials</h1>\r'+"\n"+'    <div class="alert-error" id="loginError" ng-if="loginMessage">{{loginMessage}}</div>\r'+"\n"+'    <div class="control-group">\r'+"\n"+'      <label class="control-label" for="login-username">Email or Username:</label>\r'+"\n"+'      <div class="controls">\r'+"\n"+'        <input type="text" ng-model="login.username"  title="Please add a username or email."  class="" id="login-username" required ng-value="login.username" size="20" ug-validate>\r'+"\n"+"      </div>\r"+"\n"+"    </div>\r"+"\n"+'    <div class="control-group">\r'+"\n"+'      <label class="control-label" for="login-password">Password:</
 label>\r'+"\n"+'      <div class="controls">\r'+"\n"+'        <input type="password" ng-model="login.password"  required id="login-password" class="" ng-value="login.password" size="20" ug-validate>\r'+"\n"+"      </div>\r"+"\n"+"    </div>\r"+"\n"+'    <div class="control-group" ng-show="requiresDeveloperKey">\r'+"\n"+'      <label class="control-label" for="login-developerkey">Developer Key:</label>\r'+"\n"+'      <div class="controls">\r'+"\n"+'        <input type="text" ng-model="login.developerkey" id="login-developerkey" class="" ng-value="login.developerkey" size="20" ug-validate>\r'+"\n"+"      </div>\r"+"\n"+"    </div>\r"+"\n"+'    <div class="form-actions">\r'+"\n"+'      <div class="submit">\r'+"\n"+'        <input type="submit" name="button-login" id="button-login" ng-disabled="!loginForm.$valid || loading" value="{{loading ? loadingText : \'Log In\'}}" class="btn btn-primary pull-right">\r'+"\n"+"      </div>\r"+"\n"+"    </div>\r"+"\n"+"  </form>\r"+"\n"+"  </div>\r"+
 "\n"+'  <div class="extra-actions">\r'+"\n"+'    <div class="submit">\r'+"\n"+'      <a ng-click="gotoSignUp()"   name="button-signUp" id="button-signUp" value="Sign Up"\r'+"\n"+'         class="btn btn-primary pull-left">Register</a>\r'+"\n"+"    </div>\r"+"\n"+'    <div class="submit">\r'+"\n"+'      <a ng-click="gotoForgotPasswordPage()" name="button-forgot-password" id="button-forgot-password"\r'+"\n"+'         value="" class="btn btn-primary pull-left">Forgot Password?</a>\r'+"\n"+"    </div>\r"+"\n"+'    <a ng-click="showModal(\'sendActivationLink\')"  name="button-resend-activation" id="button-resend-activation"\r'+"\n"+'       value="" class="btn btn-primary pull-left">Resend Activation Link</a>\r'+"\n"+"  </div>\r"+"\n"+'  <div id="gtm" style="width: 450px;margin-top: 4em;" />\r'+"\n"+"</div>\r"+"\n");$templateCache.put("login/logout.html",'<div id="logut">Logging out...</div>');$templateCache.put("login/register.html",'<div class="signUp-content">\n'+'  <div class="signUp-
 holder">\n'+'    <form name="signUpform" id="signUp-form" ng-submit="register()" class="form-horizontal" ng-show="!signUpSuccess" novalidate>\n'+'      <h1 class="title">Register</h1>\n'+"\n"+'      <div class="alert" ng-if="loginMessage">{{loginMessage}}</div>\n'+'      <div class="control-group">\n'+'        <label class="control-label" for="register-orgName">Organization:</label>\n'+"\n"+'        <div class="controls">\n'+'          <input type="text" ng-model="registeredUser.orgName" id="register-orgName" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" ug-validate  required class="" size="20">\n'+"        </div>\n"+"      </div>\n"+"\n"+'      <div class="control-group">\n'+'        <label class="control-label" for="register-name">Name:</label>\n'+"\n"+'        <div class="controls">\n'+'          <input type="text" ng-model="registeredUser.name" id="register-name" ng-pattern="nameRegex" ng-attr-title="{{nameRegexDescription}}" ug-validate required class=""
  size="20">\n'+"        </div>\n"+"      </div>\n"+"\n"+'      <div class="control-group">\n'+'        <label class="control-label" for="register-userName">Username:</label>\n'+"\n"+'        <div class="controls">\n'+'          <input type="text" ng-model="registeredUser.userName" id="register-userName" ng-pattern="usernameRegex" ng-attr-title="{{usernameRegexDescription}}" ug-validate required class="" size="20">\n'+"        </div>\n"+"      </div>\n"+"\n"+'      <div class="control-group">\n'+'        <label class="control-label" for="register-email">Email:</label>\n'+"\n"+'        <div class="controls">\n'+'          <input type="email" ng-model="registeredUser.email" id="register-email"  ng-pattern="emailRegex" ng-attr-title="{{emailRegexDescription}}"  required class="" ug-validate size="20">\n'+"        </div>\n"+"      </div>\n"+"\n"+"\n"+'      <div class="control-group">\n'+'        <label class="control-label" for="register-password">Password:</label>\n'+"\n"+'        <div
  class="controls">\n'+'          <input type="password" ng-pattern="passwordRegex" ng-attr-title="{{passwordRegexDescription}}" ug-validate ng-model="registeredUser.password" id="register-password" required class=""\n'+'                 size="20">\n'+"        </div>\n"+"      </div>\n"+'      <div class="control-group">\n'+'        <label class="control-label" for="register-confirmPassword">Re-enter Password:</label>\n'+"\n"+'        <div class="controls">\n'+'          <input type="password" ng-model="registeredUser.confirmPassword" required id="register-confirmPassword" ug-validate class="" size="20">\n'+"        </div>\n"+"      </div>\n"+'      <div class="form-actions">\n'+'        <div class="submit">\n'+'          <input type="submit" name="button-login" ng-disabled="!signUpform.$valid" id="button-login" value="Register"\n'+'                 class="btn btn-primary pull-right">\n'+"        </div>\n"+'        <div class="submit">\n'+'          <a ng-click="cancel()" type="submi
 t" name="button-cancel" id="button-cancel"\n'+'             class="btn btn-primary pull-right">Cancel</a>\n'+"        </div>\n"+"      </div>\n"+"    </form>\n"+'    <div class="console-section well thingy" ng-show="signUpSuccess">\n'+'      <span class="title">We\'re holding a seat for you!</span>\n'+"      <br><br>\n"+"\n"+"      <p>Thanks for signing up for a spot on our private beta. We will send you an email as soon as we're ready for\n"+"        you!</p>\n"+"\n"+"      <p>In the mean time, you can stay up to date with App Services on our <a\n"+'          href="https://groups.google.com/forum/?fromgroups#!forum/usergrid">GoogleGroup</a>.</p>\n'+"\n"+'      <p> <a href="#!/login">Back to login</a></p>\n'+"    </div>\n"+"  </div>\n"+"\n"+"</div>\n");$templateCache.put("menus/appMenu.html",'<ul id="app-menu" class="nav top-nav span12">\n'+'    <li class="span7">\n'+'      <bsmodal id="newApplication"\n'+'               title="Create New Application"\n'+'               close="hideM
 odal"\n'+'               closelabel="Cancel"\n'+'               extrabutton="newApplicationDialog"\n'+'               extrabuttonlabel="Create"\n'+'               buttonid="app"\n'+"               ng-cloak>\n"+'        <div ng-show="!hasApplications" class="modal-instructions" >You have no applications, please create one.</div>\n'+'        <div  ng-show="hasCreateApplicationError" class="alert-error">Application already exists!</div>\n'+'        <p>New application name: <input ng-model="$parent.newApp.name" id="app-name-input" ng-pattern="appNameRegex"  ng-attr-title="{{appNameRegexDescription}}" type="text" required ug-validate /></p>\n'+"      </bsmodal>\n"+'        <div class="btn-group">\n'+'            <a class="btn dropdown-toggle top-selector app-selector" id="current-app-selector" data-toggle="dropdown">\n'+'                <i class="pictogram">&#9881;</i> {{myApp.currentApp}}\n'+'                <span class="caret"></span>\n'+"            </a>\n"+'            <ul class="dro
 pdown-menu app-nav">\n'+'                <li name="app-selector" ng-repeat="app in applications">\n'+'                    <a id="app-{{app.name}}-link-id" ng-click="appChange(app.name)">{{app.name}}</a>\n'+"                </li>\n"+"            </ul>\n"+"        </div>\n"+"    </li>\n"+'    <li class="span5">\n'+'      <a ng-if="activeUI"\n'+'         class="btn btn-create zero-out pull-right"\n'+"         ng-click=\"showModal('newApplication')\"\n"+'         analytics-on="click"\n'+'         analytics-category="App Services"\n'+'         analytics-label="Button"\n'+'         analytics-event="Add New App"\n'+"        >\n"+'        <i class="pictogram">&#8862;</i>\n'+"        Add New App\n"+"      </a>\n"+"    </li>\n"+"</ul>");$templateCache.put("menus/orgMenu.html",'<ul class="nav top-nav org-nav">\n'+"  <li>\n"+'<div class="btn-group ">\n'+'    <a class="btn dropdown-toggle top-selector org-selector" id="current-org-selector" data-toggle="dropdown">\n'+'        <i class="pictogram
 ">&#128193</i> {{currentOrg}}<span class="caret"></span>\n'+"        </a>\n"+'    <ul class="dropdown-menu org-nav">\n'+'          <li name="org-selector" ng-repeat="(k,v) in organizations">\n'+'              <a id="org-{{v.name}}-selector" class="org-overview" ng-click="orgChange(v.name)"> {{v.name}}</a>\n'+"            </li>\n"+"         </ul>\n"+"    </div>\n"+"  </li></ul>");$templateCache.put("org-overview/org-overview.html",'<div class="org-overview-content" ng-show="activeUI">\n'+"\n"+'  <page-title title=" Org Administration" icon="&#128362;"></page-title>\n'+"\n"+'  <section class="row-fluid">\n'+"\n"+'  <div class="span6">\n'+'  	<bsmodal id="introjs"\n'+'             title="Welcome to the API BaaS Admin Portal"\n'+'             close="hideModal"\n'+'             closelabel="Skip"\n'+'             extrabutton="startFirstTimeUser"\n'+'             extrabuttonlabel="Take the tour"\n'+"             ng-cloak>\n"+"      <p>To get started, click 'Take the tour' for a full walkth
 rough of the admin portal, or click 'Skip' to start working right away.</p>\n"+"    </bsmodal>\n"+'		<div id="intro-4-current-org">	\n'+'	    <h2 class="title">Current Organization <a class="help_tooltip" ng-mouseover="help.sendTooltipGA(\'current org\')" ng-show="help.helpTooltipsEnabled" href="#" ng-attr-tooltip="{{tooltip_current_org}}" tooltip-placement="right">(?)</a></h2>\n'+'	    <table class="table table-striped">\n'+"	      <tr>\n"+'	        <td id="org-overview-name">{{currentOrganization.name}}</td>\n'+'	        <td style="text-align: right">{{currentOrganization.uuid}}</td>\n'+"	      </tr>\n"+"	    </table>\n"+"		</div>\n"+"\n"+'    <bsmodal id="newApplication"\n'+'             title="Create New Application"\n'+'             close="hideModal"\n'+'             closelabel="Cancel"\n'+'             extrabutton="newApplicationDialog"\n'+'             extrabuttonlabel="Create"\n'+"             ng-cloak>\n"+'      <p>New application name: <input ng-model="$parent.newApp.name"
   ug-validate required type="text" ng-pattern="appNameRegex" ng-attr-title="{{appNameRegexDescription}}" /></p>\n'+"    </bsmodal>\n"+'		<div id="intro-5-applications">		\n'+'	    <h2 class="title" > Applications <a class="help_tooltip" ng-show="help.helpTooltipsEnabled" ng-mouseover="help.sendTooltipGA(\'applications\')" href="#" ng-attr-tooltip="{{tooltip_applications}}" tooltip-placement="right">(?)</a>\n'+'	      <div class="header-button btn-group pull-right">\n'+"	        <a class=\"btn filter-selector\" style=\"{{applicationsSize === 10 ? 'width:290px':''}}\"  ng-click=\"showModal('newApplication')\">\n"+'	          <span class="filter-label">Add New App</span>\n'+"	        </a>\n"+"	      </div>\n"+"	    </h2>\n"+"		\n"+'	    <table class="table table-striped">\n'+'	      <tr ng-repeat="application in applications">\n'+"	        <td>{{application.name}}</td>\n"+'	        <td style="text-align: right">{{application.uuid}}</td>\n'+"	      </tr>\n"+"	    </table>\n"+"		</div>\n
 "+'    <bsmodal id="regenerateCredentials"\n'+'           

<TRUNCATED>