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/10 22:22:34 UTC

[29/63] [abbrv] new bower build

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/f3b55942/portal/dist/usergrid-portal/bower_components/apigee.max.ui/dist/js/max.min.js
----------------------------------------------------------------------
diff --git a/portal/dist/usergrid-portal/bower_components/apigee.max.ui/dist/js/max.min.js b/portal/dist/usergrid-portal/bower_components/apigee.max.ui/dist/js/max.min.js
deleted file mode 100644
index 484dbfc..0000000
--- a/portal/dist/usergrid-portal/bower_components/apigee.max.ui/dist/js/max.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! apigee-max-ui@1.0.1 2014-03-24 */
- AppServices = AppServices || {};!function(exports,global){global["true"]=exports,AppServices=AppServices||{},function(exports,global){function createGradient(color1,color2){var perShapeGradient={x1:0,y1:0,x2:0,y2:1};return{linearGradient:perShapeGradient,stops:[[0,color1],[1,color2]]}}function compareSummaryData(oldData,newData,currentCompare){for(var key in newData){var newVal,color,label,oldVal,percent;try{oldVal=oldData[key].hasOwnProperty("value")?oldData[key].value:oldData[key]}catch(e){}newVal=newData[key].hasOwnProperty("value")?newData[key].value:newData[key],newData.hasOwnProperty(key)&&("NOW"===currentCompare?(color="black",label=newVal):(percent=0===newVal?0:Math.round(oldVal/newVal*100)-100,0>percent?(color="red",label=percent+"%"):percent>0?(color="green",label="+"+percent+"%"):(color="black",label=0))),newData[key]={color:color,value:newVal,oldValue:oldVal,label:label}}return newData.currentCompare=currentCompare,newData}global["true"]=exports,angular.module("appservi
 ces.max").run(["$templateCache",function($templateCache){"use strict";$templateCache.put("performance/ab-config.html",'<div>\n\n    <page-title icon="&#59146;" title="A/B Testing Configs"></page-title>\n\n    <div class="row-fluid" >\n\n        <div class="span12">\n          <form class="form-horizontal configs">\n          <div class="control-group">\n            <slidecheckbox label="Enable A/B Testing" data="configData.abtestingOverrideEnabled"></slidecheckbox>\n          </div>\n\n          <div class="control-group">\n            <label class="control-label" for="inputApplyTo">Apply to </label>\n            <div class="controls">\n              <input type="text" id="inputApplyTo" class="input-mini" ng-model="configData.abtestingPercentage"> % of Devices\n            </div>\n          </div>\n          \n          \n          <h2 class="title">Monitoring Configs</h2>\n\n\n            <div class="control-group">\n              <slidecheckbox label="Enable Log Capturing" data="c
 onfigData.abtestingAppConfig.enableLogMonitoring"></slidecheckbox>\n            </div>\n            <div class="control-group">\n              <label class="control-label">Log Capture Levels</label>\n              <div class="controls">\n                <select ng-model="abLogLevel" ng-options="l.label for l in logLevels" ng-change="updateLogLevel(abLogLevel,\'abtestingAppConfig\')"></select>\n              </div>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Enable Network Monitoring" data="configData.abtestingAppConfig.networkMonitoringEnabled"></slidecheckbox>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Enable Device Data Capture" data="configData.abtestingAppConfig.sessionDataCaptureEnabled"></slidecheckbox>\n            </div>\n            <div class="control-group">\n\n              <slidecheckbox label="Read Location" data="configData.abtestingAppConfig.locationCaptureEna
 bled"></slidecheckbox>\n\n              <slidecheckbox label="Read IMEI" data="configData.abtestingAppConfig.imeicaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read Device Model" data="configData.abtestingAppConfig.deviceModelCaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read Network Carrier" data="configData.abtestingAppConfig.networkCarrierCaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read Apigee Device ID" data="configData.abtestingAppConfig.deviceIdCaptureEnabled"></slidecheckbox>\n\n            </div>\n            <div class="control-group">\n              <label class="control-label" for="inputUploadInt">Data Upload Interval (in Seconds)</label>\n              <div class="controls">\n                <input type="text" id="inputUploadInt" ng-model="configData.abtestingAppConfig.agentUploadIntervalInSeconds">\n              </div>\n            </div>\n            <div class="control-group">\n           
    <label class="control-label" for="inputSampRate">Sampling Rate (in Percentage)</label>\n              <div class="controls">\n                <input type="text" id="inputSampRate" ng-model="configData.abtestingAppConfig.samplingRate">\n              </div>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Upload When Roaming" data="configData.abtestingAppConfig.enableUploadWhenRoaming"></slidecheckbox>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Upload When Not on WIFI" data="configData.abtestingAppConfig.enableUploadWhenMobile"></slidecheckbox>\n            </div>\n\n            <h2 class="title">Application Specific Configs</h2>\n              <div class="row-fluid"  >\n                  <div class="span3" style="margin-right: 12px;">Tag</div>\n                  <div class="span3" style="margin-right: 15px;">Key</div>\n                  <div class="span3">Value</div>\n         
      </div>\n            <div class="form-inline" ng-repeat="config in abConfigParameters">\n              <input name="category" type="text" class="input-large" ng-model="config.tag" required>\n              <input name="key" type="text" class="input-large" ng-model="config.paramKey"  required> =\n              <input name="value" type="text" class="input-large" ng-model="config.paramValue" required>\n              <span class="hide">{{config.index = ($index + 1)}}</span>\n              <button class="btn" ng-click="addRemoveConfig(config,\'abConfigParameters\')" ng-show="abConfigParameters.length != ($index + 1)">-</button>\n              <button class="btn" ng-click="addRemoveConfig(config,\'abConfigParameters\')" ng-show="abConfigParameters.length == ($index + 1)">+</button>\n            </div>\n            <hr/>\n            <button type="submit" class="btn btn-primary " ng-click="saveData(\'abConfigParameters\')">Save Changes</button>\n          </form>\n\n        </div>\n\n\n
       </div>\n\n\n\n\n\n</div>\n\n\n'),$templateCache.put("performance/api-perf.html",'<demo-data></demo-data>\n<page-title icon="&#128200;" title="API Performance"></page-title>\n\n<div class="page-filters">\n  <span ng-include="\'performance/includes/time-filters.html\'"></span>\n</div>\n\n<div ng-init="apiPerfSetup()">\n  <section class="row-fluid">\n\n  </section>\n  <!-- errors and crashes total row -->\n  <section class="row-fluid api-perf-charts">\n\n    <div class="span6">\n\n      <h2 class="title chart">Avg Response Time</h2>\n\n      <div ng-include="\'performance/includes/no-data.html\'" ng-if="!chartDataPresent"></div>\n\n      <div class="main-chart-holder" ng-if="chartDataPresent">\n      <chart id="requestTime" class="anim-chart" ng-if="selectedChartCriteria.chartCriteriaId === 1"\n             chartdata="perfCharts.requestTimes"\n             type="line"\n             xAxisLabel="return Highcharts.dateFormat(\'%a, %H:%M\', this.value);"\n             xAxisStep="3"><
 /chart>\n\n      <chart id="requestTimeBar" class="anim-chart" ng-if="selectedChartCriteria.chartCriteriaId > 1"\n             chartdata="perfCharts.requestTimes"\n             type="column" class="bar"></chart>\n       </div>\n    </div>\n\n    <div class="span6">\n\n      <h2 class="title chart">Total Requests</h2>\n\n      <div ng-include="\'performance/includes/no-data.html\'" ng-if="!chartDataPresent"></div>\n\n      <div class="main-chart-holder" ng-if="chartDataPresent">\n      <chart id="requests" class="anim-chart" ng-if="selectedChartCriteria.chartCriteriaId === 1"\n             chartdata="perfCharts.requests"\n             type="line"\n             xAxisLabel="return Highcharts.dateFormat(\'%a, %H:%M\', this.value);"\n             xAxisStep="3"></chart>\n\n      <chart id="requestsBar" class="anim-chart" ng-if="selectedChartCriteria.chartCriteriaId > 1"\n             chartdata="perfCharts.requests"\n             type="column" class="bar"></chart>\n      </div>\n    </div>
 \n\n\n\n\n\n\n  </section>\n\n  <section class="row-fluid">\n\n    <div class="span12 perf-summary-data">\n\n      <div class="span3">\n        <infobox datasrc="perfCharts.summary.avgLatency"\n                 currentcompare="perfCharts.summary.currentCompare"\n                 title="Avg Response Time"\n                 class="response-time"></infobox>\n      </div>\n\n      <div class="span3">\n        <infobox datasrc="perfCharts.summary.maxLatency"\n                 currentcompare="perfCharts.summary.currentCompare"\n                 title="Max Response Time"\n                 class="request-time"></infobox>\n      </div>\n\n      <div class="span3">\n        <infobox datasrc="perfCharts.summary.totalRequests"\n                 currentcompare="perfCharts.summary.currentCompare"\n                 title="Network Requests"\n                 class="requests"></infobox>\n      </div>\n\n      <div class="span3">\n        <infobox datasrc="perfCharts.summary.totalErrors"\n           
       currentcompare="perfCharts.summary.currentCompare"\n                 title="Network Errors"\n                 class="errors"></infobox>\n      </div>\n\n\n    </div>\n\n  </section>\n\n  <balloon direction="south" ng-if="!chartDataPresent && logDataPresent">\n    Scroll down to see log data sent by your SDK.\n  </balloon>\n\n  <section class="row-fluid">\n    <div class="span12 pareto-charts">\n\n      <div class="row-fluid log-search" ng-controller="RawLogCtrl">\n\n        <div class="span12">\n          <h2 class="title">Network API Search</h2>\n          <form>\n            <div class="input-append span8">\n            <input type="text" placeholder="e.g. apigee.com..." ng-model="rawLogSearch.url"\n                   class=" input-xxlarge" ng-change="loadMoreLogs()">\n            <button type="button" class="btn" ng-click="rawLogSearchShowAdv=!rawLogSearchShowAdv">Advanced</button>\n            </div>\n            <div class="span4 text-right" ng-if="rawLogs.length === 100 
 || rawLogSearch.pageNumber > 0">\n              {{rawLogSearch.pageNumber === 0 ? 1 : rawLogSearch.pageNumber * 100}} - {{rawLogSearch.pageNumber === 0 ? (1 * rawLogs.length) : (rawLogSearch.pageNumber + 1) * rawLogs.length}}\n              <a class="btn btn-primary toolbar" ng-disabled="rawLogSearch.pageNumber === 0" ng-click="rawLogSearch.pageNumber > 0 ? prevPage() : \'\'"><i class="pictogram">&#59229;</i></a>\n              <a class="btn btn-primary toolbar" ng-disabled="rawLogs.length !== 100" ng-click="rawLogs.length === 100 ? nextPage() : \'\'"><i class="pictogram">&#59230;</i></a>\n            </div>\n          </form>\n          <form class="form-inline adv-rawlog-form" ng-show="rawLogSearchShowAdv">\n            <br style="clear:both"/>\n            <div class="input-prepend">\n              <span class="add-on">Status Code:</span>\n              <input class="input-small" type="text"  ng-model="rawLogSearch.httpStatusCode" ng-change="loadMoreLogs()">\n            </div>\n
             <div class="input-prepend">\n              <span class="add-on">Resp. Time > </span>\n              <input class="input-small" type="text"  ng-model="rawLogSearch.latency" ng-change="loadMoreLogs()">\n            </div>\n            <div class="input-prepend">\n              <span class="add-on">Network Type</span>\n              <input class="input-small" type="text"  ng-model="rawLogSearch.networkType" ng-change="loadMoreLogs()">\n            </div>\n            <div class="input-prepend">\n              <span class="add-on">Carrier</span>\n              <input class="input-small" type="text"  ng-model="rawLogSearch.networkCarrier" ng-change="loadMoreLogs()">\n            </div>\n            <div class="input-prepend">\n              <span class="add-on">Platform</span>\n              <input class="input-small" type="text"  ng-model="rawLogSearch.devicePlatform" ng-change="loadMoreLogs()">\n            </div>\n            <button type="submit" class="btn" ng-click="raw
 LogSearch.httpStatusCode=\'\';rawLogSearch.latency=\'\';rawLogSearch.networkType=\'\';rawLogSearch.networkCarrier=\'\';rawLogSearch.devicePlatform=\'\';loadMoreLogs()">Clear All Advanced</button>\n          </form>\n          <table class="table table-striped table-bordered raw-log-table">\n            <thead>\n            <tr>\n              <th>Time</th>\n              <th>Message</th>\n            </tr>\n            </thead>\n            <tbody>\n            <tr ng-repeat="log in rawLogs | orderBy:\'timeStamp\':true | rawLogFilter:rawLogSearch:[\'url\']:[\'latency\']">\n              <td class="log-time-holder">\n                <div>\n                  <span class="{{rawLogs.rawDataType === \'logRawData\' ? \'log-time1\' : \'log-time2\'}}">{{log.timeStamp | date:\'M-dd-yyyy HH:mm:ss\'}}</span>\n                  </div>\n              </td>\n              <td>\n                <span>{{log.url}}</span>\n                <div class="row-meta">\n                  <span class="label">
 Status Code:</span>\n                  <span class="value">{{log.httpStatusCode}}</span>\n                  <span class="label">Response Time:</span>\n                  <span class="value">{{log.latency}}</span>\n                  <span class="label">Network Type:</span>\n                  <span class="value">{{log.networkType}}</span>\n                  <span class="label">Carrier:</span>\n                  <span class="value">{{log.networkCarrier}}</span>\n                  <span class="label">Platform:</span>\n                  <span class="value">{{log.devicePlatform}}</span>\n                </div>\n              </td>\n            </tr>\n            </tbody>\n          </table>\n          <div class="row-fluid">\n            <div class="input-append span8">\n\n\n            </div>\n            <div class="span4 text-right" ng-if="rawLogs.length === 100 || rawLogSearch.pageNumber > 0">\n              {{rawLogSearch.pageNumber === 0 ? 1 : rawLogSearch.pageNumber * 100}} - {{rawL
 ogSearch.pageNumber === 0 ? (1 * rawLogs.length) : (rawLogSearch.pageNumber + 1) * rawLogs.length}}\n              <a class="btn btn-primary toolbar" ng-disabled="rawLogSearch.pageNumber === 0" ng-click="rawLogSearch.pageNumber > 0 ? prevPage() : \'\'"><i class="pictogram">&#59229;</i></a>\n              <a class="btn btn-primary toolbar" ng-disabled="rawLogs.length !== 100" ng-click="rawLogs.length === 100 ? nextPage() : \'\'"><i class="pictogram">&#59230;</i></a>\n            </div>\n          </div>\n        </div>\n\n      </div>\n\n    </div>\n  </section>\n\n</div>\n\n\n'),$templateCache.put("performance/app-overview.html",'<demo-data></demo-data>\n\n<div ng:include="\'performance/includes/time-filters.html\'"></div>\n\n<div ng-controller="PerformanceCtrl" ng-init="appOverviewSetup()">\n<!-- crash errors row -->\n<section class="row-fluid errors-crashes">\n    <div class="span6">\n\n        <ul class="span2 info-details unstyled">\n            <li class="title">Top 5 Crash Cau
 ses</li>\n            <li class="secondary">15 Total</li>\n            <li class="tertiary">38 users affected</li>\n        </ul>\n\n        <div class="span10 top-5-crash info-box">\n            <div class="info-container">\n                <table class="table">\n                    <thead>\n                    <tr>\n                        <th class="graph-row">Cause</th>\n                        <th class="count">Total</th>\n                    </tr>\n                    </thead>\n                    <tbody>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                  
   </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    </tbody>\n                </table>\n            </div>\n        </div>\n\n    </div>\n\n    <div class="span6">\n\n        <ul class="span2 info-details unstyled">\n            <li class="title">Top 5 Errors</li>\n            <li class=
 "secondary">120 Total</li>\n            <li class="tertiary">200 users affected</li>\n        </ul>\n\n        <div class="span10 top-5-crash info-box">\n            <div class="info-container">\n                <table class="table">\n                    <thead>\n                    <tr>\n                        <th class="graph-row">Cause</th>\n                        <th class="count">Total</th>\n                    </tr>\n                    </thead>\n                    <tbody>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <
 tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="graph-row">\n                            <div class="bar">message</div>\n                        </td>\n                        <td class="count">134</td>\n                    </tr>\n                    </tbody>\n                </table>\n            </div>\n        </div>\n\n    </div>\n</section>\n\n<!-- api row -->\n<section class="row-fluid api-issues">\n    <div class="span6">\n\n        <ul class="span2 info-details unstyled">\n            <li class="title">S
 low APIs</li>\n            <li class="secondary">Above 2000ms</li>\n        </ul>\n\n        <div class="span10 slow-apis info-box">\n            <div class="info-container">\n                <table class="table">\n                    <thead>\n                    <tr>\n                        <th class="normal-row">URL</th>\n                        <th class="count">Response Time</th>\n                    </tr>\n                    </thead>\n                    <tbody>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>
 \n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    </tbody>\n                </table>\n            </div>\n        </div>\n\n    </div>\n\n    <div class="span6">\n\n        <ul class="span2 info-details unstyled">\n            <li class="title">API Errors</li>\n            <li class="secondary">Abnormal Status Codes</li>\n        </ul>\n\n        <div class="span10 api-errors info-box">\n            <div class="info-container">\n                <table class="table">\n                    <thead>\n                    <tr>\n                        <th class="normal-row">URL</th>\n                        <th class="count">Status Code</th>\n                    </tr>\n                    </thead>\n                  
   <tbody>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    <tr>\n                        <td class="normal-row">message</td>\n                        <td class="count">134</td>\n                    </tr>\n                    </tbody>\n                </table>\n            </div>\n        </div>\n\n    </div>\n</section>\n\n\n<!-- app usage row -->\n<section c
 lass="row-fluid api-issues">\n    <div class="span6">\n\n        <ul class="span2 info-details unstyled">\n            <li class="title">App Usage</li>\n            <li class="secondary">By Version</li>\n        </ul>\n\n        <div class="span10 app-usage-content">\n            <chart id="appVersions" value=\'{{appOverviewCharts.appVersions}}\' type="pie"\n                   style="max-width: 50%;height:250px"></chart>\n            <table class="table">\n                <thead>\n                <tr>\n                    <th>App Version</th>\n                </tr>\n                </thead>\n                <tbody>\n                <tr>\n                    <td class="graph-row">\n                        <div class="bar"></div>\n                        1.0.0\n                    </td>\n                    <td class="count">12%</td>\n                </tr>\n                <tr>\n                    <td class="graph-row">\n                        <div class="bar"></div>\n              
           1.1.1\n                    </td>\n                    <td class="count">22%</td>\n                </tr>\n                <tr>\n                    <td class="graph-row">\n                        <div class="bar"></div>\n                        1.2.0\n                    </td>\n                    <td class="count">63%</td>\n                </tr>\n                </tbody>\n            </table>\n        </div>\n\n    </div>\n\n    <div class="span6">\n\n        <ul class="span2 info-details unstyled">\n            <li class="title">App Usage</li>\n            <li class="secondary">By Platform</li>\n        </ul>\n\n        <div class="span10 app-usage-content">\n            <chart id="platformVersions" value=\'{{appOverviewCharts.platformVersions}}\' type="pie"\n                   style="max-width: 50%;height:250px"></chart>\n            <table class="table">\n                <thead>\n                <tr>\n                    <th>Platform</th>\n                </tr>\n       
          </thead>\n                <tbody>\n                <tr>\n                    <td class="graph-row">\n                        <div class="bar"></div>\n                        Firefox OS\n                    </td>\n                    <td class="count">12%</td>\n                </tr>\n                <tr>\n                    <td class="graph-row">\n                        <div class="bar"></div>\n                        Android\n                    </td>\n                    <td class="count">22%</td>\n                </tr>\n                <tr>\n                    <td class="graph-row">\n                        <div class="bar"></div>\n                        iOS\n                    </td>\n                    <td class="count">63%</td>\n                </tr>\n                </tbody>\n            </table>\n        </div>\n\n    </div>\n</section>\n\n<!-- trouble makers row -->\n<section class="row-fluid trouble-makers">\n    <div class="span12">\n\n        <ul class="span
 2 info-details fixed unstyled">\n            <li class="title">Trouble Makers</li>\n            <li class="secondary">Problematic Devices, Networks, and OSs</li>\n        </ul>\n\n        <div class="span10">\n            <div class="row-fluid">\n                <div class="span12">\n\n                    <section class="span4">\n                        <h5>Problematic Devices</h5>\n                        <table class="table">\n                            <tbody>\n                            <tr>\n                                <td class="tablet-icon">HTC One</td>\n                                <td class="phone-icon">Nexus One</td>\n                            </tr>\n                            <tr>\n                                <td class="phone-icon">HTC Evo</td>\n                                <td class="tablet-icon">Galaxy Tab</td>\n                            </tr>\n                            </tbody>\n                        </table>\n\n                    </section>\n
 \n                    <section class="span4">\n                        <h5>Slowest Carriers</h5>\n                        <ol class="asc-light slow-carriers grow">\n                            <li>Verizon</li>\n                            <li>Sprint</li>\n                            <li>TMobile</li>\n                            <li>AT&amp;T</li>\n                        </ol>\n                    </section>\n\n                    <section class="span4">\n                        <h5>Problematic OS Versions</h5>\n                        <ol class="asc-light prob-os">\n                            <li>Android 2.3</li>\n                            <li>Android 2.3</li>\n                            <li>Android 2.3</li>\n                            <li>Android 2.3</li>\n                        </ol>\n                    </section>\n                </div>\n            </div>\n        </div>\n\n    </div>\n</section>\n\n<!-- sessions sparklines row -->\n<section class="row-fluid trouble-maker
 s">\n    <div class="span12">\n\n        <ul class="span2 info-details fixed unstyled">\n            <li class="title">Sessions</li>\n            <li class="secondary">Over Past Hour</li>\n        </ul>\n\n        <div class="span10">\n            <span class="span12 sessions-bar"></span>\n        </div>\n\n    </div>\n</section>\n\n</div>\n\n\n'),$templateCache.put("performance/app-usage.html",'<demo-data></demo-data>\n<page-title icon="&#128202;" title="App Usage"></page-title>\n\n<div class="page-filters">\n  <span ng-include="\'performance/includes/time-filters.html\'"></span>\n</div>\n\n\n\n<div ng-init="appUsageSetup()">\n\n\n  <!-- errors and crashes total row -->\n  <section class="row-fluid api-perf-charts">\n\n    <div class="span12">\n      <h2 class="title chart">Active Sessions Count {{selectedChartCriteria.chartName}}</h2>\n      <!--step: <input ng-model="apptest.step" width="5" style="width: 20px" />-->\n\n      <div ng-include="\'performance/includes/no-data.html\'"
  ng-if="chartDataWaiting || !chartDataPresent"></div>\n\n      <div class="main-chart-holder" ng-if="chartDataPresent">\n      <chart id="sessionTotals" class="anim-chart" ng-if="selectedChartCriteria.chartName === \'Overview\'"\n             chartdata="appUsageCharts.totals"\n             type="line"\n             xAxisLabel="return Highcharts.dateFormat(\'%a, %H:%M\', this.value);"\n             xAxisStep="3"></chart>\n\n      <chart id="sessionTotalsBar" class="anim-chart" ng-if="selectedChartCriteria.chartName !== \'Overview\'"\n             chartdata="appUsageCharts.totals"\n             type="column"></chart>\n      </div>\n      <div class="row-fluid app-summary-data">\n        <div class="span4">\n          <infobox datasrc="appUsageCharts.summary.totalSessions"\n                   currentcompare="appUsageCharts.summary.currentCompare"\n                   title="Total Sessions"\n                   class="usage"></infobox>\n        </div>\n\n        <div class="span4">\n     
      <infobox datasrc="appUsageCharts.summary.maxConcurrentSessions"\n                   currentcompare="appUsageCharts.summary.currentCompare"\n                   title="Max Concurrent Sessions"\n                   class="usage"></infobox>\n        </div>\n\n        <div class="span4">\n          <infobox datasrc="appUsageCharts.summary.totalUniqueUsers"\n                   currentcompare="appUsageCharts.summary.currentCompare"\n                   title="Total Unique Users"\n                   class="usage"></infobox>\n        </div>\n      </div>\n\n    </div>\n\n\n  </section>\n\n  <section class="row-fluid api-issues" ng-if="selectedChartCriteria.chartName === \'Overview\'">\n    <div class="span6">\n\n      <ul class="span12 info-details unstyled">\n        <li class="title pie-label">App Version</li>\n      </ul>\n      <div class="span12 app-usage-content">\n        <chart id="appVersion" class="anim-chart"\n               chartdata="appUsageCharts.appVersion.chart"\n        
        type="pie" style="max-width:60%;margin:0 0 0 -5%;height:300px"\n               titleicon="&#128202;"\n               titleiconclass="apichart"\n               titlecolor="rgba(27,112,160,0.4)"\n               titleimagetop="-6%"\n               titleimageleft="-5%"></chart>\n        <table class="table">\n          <thead>\n          <tr>\n            <th>App Version</th>\n          </tr>\n          </thead>\n          <tbody>\n          <tr ng-repeat="app in appUsageCharts.appVersion.data.chartData">\n            <td class="graph-row" >\n              <div class="bar"></div>\n              {{app.attribute}}\n            </td>\n            <td class="count">{{app.percentage | number:0}}%</td>\n          </tr>\n          </tbody>\n        </table>\n      </div>\n\n    </div>\n\n    <div class="span6">\n\n      <ul class="span12 info-details unstyled">\n        <li class="title pie-label">Device Platform</li>\n      </ul>\n\n      <div class="span12 app-usage-content">\n       
  <chart id="devicePlatform" class="anim-chart"\n               chartdata="appUsageCharts.devicePlatform.chart"\n               type="pie" style="max-width:60%;margin:0 0 0 -5%;height:300px"\n               titleicon="&#128202;"\n               titleiconclass="apichart"\n               titlecolor="rgba(27,112,160,0.4)"\n               titleimagetop="-6%"\n               titleimageleft="-5%"></chart>\n        <table class="table">\n          <thead>\n          <tr>\n            <th>Platform</th>\n          </tr>\n          </thead>\n          <tbody>\n\n          <tr ng-repeat="app in appUsageCharts.devicePlatform.data.chartData">\n            <td class="graph-row" >\n              <div class="bar"></div>\n              {{app.attribute}}\n            </td>\n            <td class="count">{{app.percentage | number:0}}%</td>\n          </tr>\n          </tbody>\n        </table>\n      </div>\n\n    </div>\n  </section>\n\n\n  <section class="row-fluid" ng-if="selectedChartCriteria.chart
 Name === \'Overview\'">\n    <div class="span6 pareto-charts">\n          <h2 class="title">Sessions by Device Model</h2>\n\n          <chart id="sessionsByModel" class="anim-chart"\n                 chartdata="appUsageCharts.sessionsByModel"\n                 type="column"\n                 height="300"></chart>\n    </div>\n\n    <div class="span6 pareto-charts">\n      <h2 class="title">Sessions by OS Versions</h2>\n\n      <chart id="sessionsByModel" class="anim-chart"\n             chartdata="appUsageCharts.sessionsByPlatform"\n             type="column"\n             height="300"></chart>\n    </div>\n  </section>\n\n\n\n\n\n</div>\n\n\n'),$templateCache.put("performance/beta-config.html",'<div>\n    <page-title icon="&#59190;" title="Beta Testing Configs"></page-title>\n\n\n      <div class="row-fluid" >\n\n        <div class="span12">\n\n          <form class="form-horizontal configs">\n            <div class="control-group">\n              <slidecheckbox label="Enable Devic
 e Level Override" data="configData.deviceLevelOverrideEnabled"></slidecheckbox>\n            </div>\n\n            <div class="control-group">\n              <label class="control-label">Matching Apigee Device Ids (one Id per line):</label>\n              <div class="controls">\n                  <textarea ng-model="deviceIdFilters" ng-blur="updateFilter(deviceIdFilters,\'deviceIdFilters\',\'DEVICE_ID\')"></textarea>\n              </div>\n            </div>\n\n            <div class="control-group">\n              <label class="control-label">Matching Telephone Numbers (Android Only):</label>\n              <div class="controls">\n                  <textarea ng-model="deviceNumberFilters" ng-blur="updateFilter(deviceNumberFilters,\'deviceNumberFilters\',\'DEVICE_NUMBER\')"></textarea>\n              </div>\n            </div>\n\n            <h2 class="title">Monitoring Configs</h2>\n\n            <div class="control-group">\n              <slidecheckbox label="Enable Log Capturing"
  data="configData.deviceLevelAppConfig.enableLogMonitoring"></slidecheckbox>\n            </div>\n            <div class="control-group">\n              <label class="control-label">Log Capture Levels</label>\n              <div class="controls">\n                <select ng-model="betaLogLevel" ng-options="l.label for l in logLevels" ng-change="updateLogLevel(betaLogLevel,\'deviceLevelAppConfig\')"></select>\n              </div>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Enable Network Monitoring" data="configData.deviceLevelAppConfig.networkMonitoringEnabled"></slidecheckbox>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Enable Device Data Capture" data="configData.deviceLevelAppConfig.deviceIdCaptureEnabled"></slidecheckbox>\n            </div>\n            <div class="control-group">\n\n              <slidecheckbox label="Read Location" data="configData.deviceLevelAppConfig
 .locationCaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read IMEI" data="configData.deviceLevelAppConfig.imeicaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read Device Model" data="configData.deviceLevelAppConfig.deviceModelCaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read Network Carrier" data="configData.deviceLevelAppConfig.networkCarrierCaptureEnabled"></slidecheckbox>\n\n              <slidecheckbox label="Read Apigee Device ID" data="configData.deviceLevelAppConfig.deviceIdCaptureEnabled"></slidecheckbox>\n\n            </div>\n            <div class="control-group">\n              <label class="control-label" for="inputUploadInt">Data Upload Interval (in Seconds)</label>\n              <div class="controls">\n                <input type="text" id="inputUploadInt" ng-model="configData.deviceLevelAppConfig.agentUploadIntervalInSeconds">\n              </div>\n            </div>\n            <div class=
 "control-group">\n              <label class="control-label" for="inputSampRate">Sampling Rate (in Percentage)</label>\n              <div class="controls">\n                <input type="text" id="inputSampRate" ng-model="configData.deviceLevelAppConfig.samplingRate">\n              </div>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Upload When Roaming" data="configData.deviceLevelAppConfig.enableUploadWhenRoaming"></slidecheckbox>\n            </div>\n            <div class="control-group">\n              <slidecheckbox label="Upload When Not on WIFI" data="configData.deviceLevelAppConfig.enableUploadWhenMobile"></slidecheckbox>\n            </div>\n\n            <h2 class="title">Application Specific Configs</h2>\n              <div class="row-fluid"  >\n                  <div class="span3" style="margin-right: 12px;">Tag</div>\n                  <div class="span3" style="margin-right: 15px;">Key</div>\n                  <div c
 lass="span3">Value</div>\n              </div>\n            <div class="form-inline" ng-repeat="config in deviceLevelConfigParameters">\n              <input name="category" type="text" class="input-large" ng-model="config.tag" required>\n              <input name="key" type="text" class="input-large" ng-model="config.paramKey"  required> =\n              <input name="value" type="text" class="input-large" ng-model="config.paramValue" required>\n              <span class="hide">{{config.index = ($index + 1)}}</span>\n              <button class="btn" ng-click="addRemoveConfig(config,\'deviceLevelConfigParameters\')" ng-show="deviceLevelConfigParameters.length != ($index + 1)">-</button>\n              <button class="btn" ng-click="addRemoveConfig(config,\'deviceLevelConfigParameters\')" ng-show="deviceLevelConfigParameters.length == ($index + 1)">+</button>\n            </div>\n            <hr/>\n            <button type="submit" class="btn btn-primary " ng-click="saveData(\'deviceL
 evelConfigParameters\')">Save Changes</button>\n\n          </form>\n\n        </div>\n\n\n      </div>\n\n    </div>\n\n\n\n</div>\n\n\n'),$templateCache.put("performance/checkbox-template.html",'<div>\n<label class="control-label">{{label}}</label>\n<div class="controls">\n  <div class="toggle-form">\n    <input type="checkbox" class="check" ng-model="data"><b class="b switch"></b>\n    <b class="b track"></b></div>\n</div>\n</div>'),$templateCache.put("performance/configure.html",'<div>\n\n<section class="row-fluid">\n\n  <div class="span12">\n\n    <h2 class="chart-title">{{configData.appName}}</h2>\n\n    <div class="row-fluid" >\n\n      <div class="span6">\n\n        <form class="form-horizontal">\n          <div class="control-group">\n            <label class="control-label" for="inputAppId">App ID</label>\n            <div class="controls">\n              <input type="text" id="inputAppId" ng-model="configData.instaOpsApplicationId">\n            </div>\n          </div>\n
           <div class="control-group">\n            <div class="controls">\n              <label class="checkbox">\n                <input type="checkbox" ng-model="configData.monitoringDisabled"> monitoringDisabled\n              </label>\n              <button type="submit" class="btn">Sign in</button>\n            </div>\n          </div>\n        </form>\n\n      </div>\n\n\n    </div>\n\n  </div>\n\n</section>\n\n</div>\n\n\n'),$templateCache.put("performance/custom-events.html",'<h1 class="title"><i class="pictogram title">&#9716;</i> Custom Events</h1>\n\n<div ng:include="\'performance/includes/time-filters.html\'"></div>'),$templateCache.put("performance/default-config.html",'<div>\n    <page-title icon="&#128214;" title="Default Configs"></page-title>\n\n\n    <div class="row-fluid" >\n      <div class="span12">\n        <h2 class="title">Monitoring Configs</h2>\n        <form class="form-horizontal configs">\n          <div class="control-group">\n            <slidecheckbox
  label="Enable Log Capturing" data="configData.defaultAppConfig.enableLogMonitoring"></slidecheckbox>\n          </div>\n          <div class="control-group">\n            <label class="control-label">Log Capture Levels</label>\n            <div class="controls">\n              <select ng-model="appConfigLogLevel" ng-options="l.label for l in logLevels" ng-change="updateLogLevel(appConfigLogLevel,\'defaultAppConfig\')"></select>\n            </div>\n          </div>\n          <div class="control-group">\n            <slidecheckbox label="Enable Network Monitoring" data="configData.defaultAppConfig.networkMonitoringEnabled"></slidecheckbox>\n          </div>\n          <div class="control-group">\n            <slidecheckbox label="Enable Device Data Capture" data="configData.defaultAppConfig.sessionDataCaptureEnabled"></slidecheckbox>\n          </div>\n          <div class="control-group">\n\n            <slidecheckbox label="Read Location" data="configData.defaultAppConfig.locatio
 nCaptureEnabled"></slidecheckbox>\n\n            <slidecheckbox label="Read IMEI" data="configData.defaultAppConfig.imeicaptureEnabled"></slidecheckbox>\n\n            <slidecheckbox label="Read Device Model" data="configData.defaultAppConfig.deviceModelCaptureEnabled"></slidecheckbox>\n\n            <slidecheckbox label="Read Network Carrier" data="configData.defaultAppConfig.networkCarrierCaptureEnabled"></slidecheckbox>\n\n            <slidecheckbox label="Read Apigee Device ID" data="configData.defaultAppConfig.deviceIdCaptureEnabled"></slidecheckbox>\n\n          </div>\n          <div class="control-group">\n            <label class="control-label" for="inputUploadInt">Data Upload Interval (in Seconds)</label>\n            <div class="controls">\n              <input type="text" id="inputUploadInt" ng-model="configData.defaultAppConfig.agentUploadIntervalInSeconds">\n            </div>\n          </div>\n          <div class="control-group">\n            <label class="control-
 label" for="inputSampRate">Sampling Rate (in Percentage)</label>\n            <div class="controls">\n              <input type="text" id="inputSampRate" ng-model="configData.defaultAppConfig.samplingRate">\n            </div>\n          </div>\n          <div class="control-group">\n            <slidecheckbox label="Upload When Roaming" data="configData.defaultAppConfig.enableUploadWhenRoaming"></slidecheckbox>\n          </div>\n          <div class="control-group">\n            <slidecheckbox label=" Upload When Not on WIFI" data="configData.defaultAppConfig.enableUploadWhenMobile"></slidecheckbox>\n          </div>\n\n            <h2 class="title">Application Specific Configs</h2>\n\n            <div class="row-fluid"  >\n               <div class="span3" style="margin-right: 12px;">Tag</div>\n                <div class="span3" style="margin-right: 15px;">Key</div>\n                <div class="span3">Value</div>\n            </div>\n            <div class="form-inline " ng-repea
 t="config in defaultAppConfigParameters">\n                    <input name="category" type="text" class="input-large" ng-model="config.tag" required>\n                    <input name="key" type="text" class="input-large" ng-model="config.paramKey" required> =\n                    <input name="value" type="text" class="input-large" ng-model="config.paramValue" required>\n                    <span class="hide">{{config.index = ($index + 1)}}</span>\n                    <button class="btn" ng-click="addRemoveConfig(config,\'defaultAppConfigParameters\')"\n                            ng-show="defaultAppConfigParameters.length != ($index + 1)">-\n                    </button>\n                    <button class="btn" ng-click="addRemoveConfig(config,\'defaultAppConfigParameters\')"\n                            ng-show="defaultAppConfigParameters.length == ($index + 1)">+\n                    </button>\n            </div>\n          <hr/>\n          <button type="submit" class="btn btn-pri
 mary " ng-click="saveData(\'defaultAppConfigParameters\')">Save Changes</button>\n        </form>\n\n      </div>\n\n\n    </div>\n\n  </div>\n\n\n\n</div>\n\n\n'),$templateCache.put("performance/demo-data.html",'<div id="demo-data-ctrl" ng-if="dataVals.showDemoBar" ng-cloak class="demo-holder">\n  <div class="alert alert-demo alert-animate">\n    <div class="toggle">\n      <input type="checkbox" class="check" ng-model="dataVals.demoData">\n      <b class="b switch"></b>\n      <b class="b track"></b>\n    </div>\n\n    <div class="demo-text">\n'+"      <i class=\"pictogram\">{{dataVals.demoData ? '&#128165;' : '&#59141;'}}</i>You are currently viewing <span class=\"bold\">{{dataVals.demoData ? 'demo data' : 'live data for your ' + currentApp + ' app'}}</span>.\n    </div>\n\n    <div class=\"demo-holder-content\">DEMO MODE {{dataVals.demoData ? 'ON' : 'OFF'}}</div>\n  </div>\n</div>"),$templateCache.put("performance/errors-crashes.html",'<demo-data></demo-data>\n<div ng-init="erro
 rsCrashesSetup()">\n<page-title icon="&#9889;" title="Errors &amp; Crashes"></page-title>\n\n<div class="page-filters">\n  <span ng-include="\'performance/includes/time-filters.html\'"></span>\n</div>\n\n\n\n<!-- errors and crashes total row -->\n<div id="popupHolder"></div>\n<div id="pointPopupTemp">\n<div id="pointPopup" class="hide" style="position:absolute" ng-mousedown="popup.startMoving(event);" ng-mouseup="popup.stopMoving();">\n  <h3><i class="pictogram sub">&#9889;</i><span></span></h3><a class="pull-right" ng-click="hidePopup($event)">Close</a>\n  <div class="content">\n\n  </div>\n  <div class="footer">\n    <a ng-click="scrollTo(\'logs\')">View all logs</a>\n  </div>\n</div>\n</div>\n\n<section class="row-fluid">\n\n\n\n</section>\n<section class="row-fluid">\n\n<div ng-class="ecDetailedView.value == 1 ? \'span8\' : \'span12\'">\n\n  <h2 class="title with-icons">{{selectedChartCriteria.chartName}} <div class="pull-right">\n    <a ng-if="selectedChartCriteria.chartName ==
 = \'Overview\'" ng-click="convertChartType(\'convertLineChart\')"><i class="pictogram">&#128200;</i>line</a>\n    <a ng-if="selectedChartCriteria.chartName === \'Overview\'" ng-click="convertChartType(\'convertAreaChart\')"><i class="pictogram">&#128318;</i>area</a></div></h2>\n\n  <div ng-include="\'performance/includes/no-data.html\'" ng-if="!chartDataPresent"></div>\n\n  <div class="main-chart-holder" ng-if="chartDataPresent">\n\n  <chart id="ecTotals" class="anim-chart"\n         chartdata="ecCharts.totals"\n         type="column"></chart>\n  </div>\n  <!--errors and crashes only (combined view)-->\n  <div class="row-fluid summary-data errors-crashes" ng-show="ecDetailedView.value === 1">\n\n    <div class="span6">\n      <infobox datasrc="ecCharts.summary.totalAppErrors"\n               currentcompare="ecCharts.summary.currentCompare"\n               title="Total App Errors"\n               class="errors"></infobox>\n    </div>\n\n    <div class="span6">\n      <infobox datasrc
 ="ecCharts.summary.totalCrashes"\n               currentcompare="ecCharts.summary.currentCompare"\n               title="Total Crashes"\n               class="crashes"></infobox>\n    </div>\n\n  </div>\n\n  <!--errors only-->\n  <div class="row-fluid summary-data errors" ng-if="ecDetailedView.value === 2">\n\n    <div class="span4">\n      <infobox datasrc="ecCharts.summary.totalCriticalErrors"\n               currentcompare="ecCharts.summary.currentCompare"\n               title="Total Critical"\n               class="critical"></infobox>\n    </div>\n\n    <div class="span4">\n      <infobox datasrc="ecCharts.summary.totalErrors"\n               currentcompare="ecCharts.summary.currentCompare"\n               title="Total Errors"\n               class="errors"></infobox>\n    </div>\n\n    <div class="span4">\n      <infobox datasrc="ecCharts.summary.totalWarnings"\n               currentcompare="ecCharts.summary.currentCompare"\n               title="Total Warnings"\n           
     class="warnings"></infobox>\n    </div>\n  </div>\n\n  <!--crashes only-->\n  <div class="row-fluid summary-data crashes" ng-if="ecDetailedView.value === 3">\n\n\n\n    <div class="span12">\n      <infobox datasrc="ecCharts.summary.totalCrashes"\n               currentcompare="ecCharts.summary.currentCompare"\n               title="Total Crashes"\n               class="crashes"></infobox>\n    </div>\n\n\n  </div>\n\n</div>\n\n<div class="span4 crash-summary" ng-if="ecDetailedView.value === 1">\n  <h2 class="title">Crash Summary (Top 5)</h2>\n\n  <div class="row-fluid" style="text-align:center">\n\n\n      <ul class="crashes-pie span12 info-details unstyled">\n        <li class="small">App Version</li>\n\n\n      <li style="width:250px;margin:10px auto 0 auto;">\n        <chart id="appVersion"\n               class="anim-chart"\n               chartdata="ecCharts.appVersion.chart"\n               type="pie" style="height:260px"\n               titleicon="&#9889;"\n              
  titleiconclass="chart"\n               titlecolor="rgba(255,3,3,0.5)"\n               titleimagetop="-6%"\n               titleimageleft="-2%"></chart>\n      </li>\n\n      </ul>\n\n      <ul class="crashes-pie span12 info-details unstyled">\n        <li class="small">Platforms</li>\n\n\n      <li style="width:250px;margin:10px auto 0 auto;">\n        <chart id="appVersion"\n               class="anim-chart"\n               chartdata="ecCharts.devicePlatform.chart"\n               type="pie" style="height:260px"\n               titleicon="&#9889;"\n               titleiconclass="chart"\n               titlecolor="rgba(255,3,3,0.5)"\n               titleimagetop="-6%"\n               titleimageleft="-2%"></chart>\n      </li>\n      </ul>\n\n  </div>\n</div>\n\n</section>\n<section class="row-fluid" ng-if="ecDetailedView.value === 1">\n  <div class="span12 pareto-charts">\n\n    <div ng-class="row-fluid">\n\n      <div id="deviceModelCrashes1" ng-if="rawLogs.rawDataType === \'logRa
 wData\'" class="span6">\n        <h2 class="title">Crashes by Device Models</h2>\n\n        <chart id="deviceModels1"\n               class="anim-chart"\n               chartdata="ecCharts.deviceModels"\n               type="column"\n                height="300"></chart>\n\n      </div>\n\n\n      <div ng-if="rawLogs.rawDataType === \'logRawData\'" class="span6">\n        <h2 class="title">Crashes by OS Versions</h2>\n\n        <chart id="platformVersions"\n               class="anim-chart"\n               chartdata="ecCharts.platformVersions"\n               type="column"\n               height="300"></chart>\n      </div>\n\n    </div>\n\n  </div>\n</section>\n\n<balloon direction="south" ng-if="!chartDataPresent && logDataPresent">\n  Scroll down to see log data sent by your SDK.\n</balloon>\n\n<section class="row-fluid">\n  <div class="span12">\n\n    <!--http://blogs.lessthandot.com/index.php/WebDev/UIDevelopment/AJAX/angularjs-and-ng-grid-->\n    <a name="logs"></a>\n    <div 
 class="row-fluid log-search" ng-controller="RawLogCtrl">\n      <div class="span12">\n        <h2 ng-show="rawLogs.rawDataType === \'logRawData\'" class="title">Raw Log Search</h2>\n\n        <h2 ng-hide="rawLogs.rawDataType === \'logRawData\'" class="title">Crash Log Search</h2>\n\n        <form ng-switch="rawLogs.rawDataType">\n\n          <div class="input-append span8">\n\n            <input ng-show="rawLogs.rawDataType === \'logRawData\'" type="text" placeholder="log search..."\n                   ng-model="rawLogSearch.logMessage" class="input-xxlarge" ng-change="loadMoreLogs()">\n            <input ng-hide="rawLogs.rawDataType === \'logRawData\'" type="text" placeholder="crash log search..."\n                   ng-model="rawLogSearch.crashSummary" class="input-xxlarge" ng-change="loadMoreLogs()">\n            <button type="button" class="btn" ng-click="rawLogSearchShowAdv=!rawLogSearchShowAdv">{{rawLogSearchShowAdv ? \'Hide\' : \'Show\'}} Advanced</button>\n\n          </div>
 \n          <div class="span4 text-right" ng-if="rawLogs.rawData.length === 100 || rawLogSearch.pageNumber > 0">\n            {{rawLogSearch.pageNumber === 0 ? 1 : rawLogSearch.pageNumber * 100}} - {{rawLogSearch.pageNumber === 0 ? (1 * rawLogs.rawData.length) : (rawLogSearch.pageNumber + 1) * rawLogs.rawData.length}}\n            <a class="btn btn-primary toolbar" ng-disabled="rawLogSearch.pageNumber === 0" ng-click="rawLogSearch.pageNumber > 0 ? prevPage() : \'\'"><i class="pictogram">&#59229;</i></a>\n            <a class="btn btn-primary toolbar" ng-disabled="rawLogs.rawData.length !== 100" ng-click="rawLogs.rawData.length === 100 ? nextPage() : \'\'"><i class="pictogram">&#59230;</i></a>\n          </div>\n        </form>\n        <form class="form-inline adv-rawlog-form" ng-show="rawLogSearchShowAdv">\n          <br style="clear:both"/>\n          <div class="input-prepend">\n            <span class="add-on">Tag</span>\n            <input class="input-small" type="text" ng-mod
 el="rawLogSearch.tag"\n                   ng-attr-placeholder="{{rawLogs.rawData[0].tag}}..." ng-change="loadMoreLogs()">\n          </div>\n          <div class="input-prepend" ng-show="rawLogs.rawDataType === \'logRawData\'">\n            <span class="add-on">Log Level</span>\n            <input class="input-mini" type="text" ng-model="rawLogSearch.logLevel"\n                   ng-attr-placeholder="{{rawLogs.rawData[0].logLevel}}..." ng-change="loadMoreLogs()">\n          </div>\n          <div class="input-prepend">\n            <span class="add-on">Device Model</span>\n            <input class="input-small" type="text" ng-model="rawLogSearch.deviceModel"\n                   ng-attr-placeholder="{{rawLogs.rawData[0].deviceModel}}..." ng-change="loadMoreLogs()">\n          </div>\n          <div class="input-prepend">\n            <span class="add-on">Platform</span>\n            <input class="input-small" type="text" ng-model="rawLogSearch.devicePlatform"\n                   ng-a
 ttr-placeholder="{{rawLogs.rawData[0].devicePlatform}}..." ng-change="loadMoreLogs()">\n          </div>\n          <div class="input-prepend">\n            <span class="add-on">OS Version</span>\n            <input class="input-small" type="text" ng-model="rawLogSearch.deviceOperatingSystem"\n                   ng-attr-placeholder="{{rawLogs.rawData[0].deviceOperatingSystem}}..." ng-change="loadMoreLogs()">\n          </div>\n          <div class="input-prepend">\n            <span class="add-on">Device ID</span>\n            <input class="input-small" type="text" ng-model="rawLogSearch.deviceId"\n                   ng-attr-placeholder="{{rawLogs.rawData[0].deviceId}}..." ng-change="loadMoreLogs()">\n          </div>\n          <button type="submit" class="btn"\n                  ng-click="rawLogSearch.tag=\'\';rawLogSearch.deviceModel=\'\';rawLogSearch.devicePlatform=\'\';rawLogSearch.deviceOperatingSystem=\'\';rawLogSearch.deviceId=\'\';loadMoreLogs()">\n            Clear All Adv
 anced\n          </button>\n        </form>\n        <table class="table table-striped table-bordered raw-log-table">\n          <thead>\n          <tr>\n            <th class="log-time-header"><div class="raw-data-text">Time</div></th>\n            <th class="message-header"><div class="raw-data-text">Message</div>\n\n\n            </th>\n          </tr>\n          </thead>\n          <tbody>\n          <tr  ng-repeat="log in rawLogs.rawData | orderBy:\'timeStamp\':true  | rawLogFilter:rawLogSearch:[\'logMessage\',\'crashSummary\']">\n            <td class="log-time-holder">\n              <div>\n              <span ng-class="rawLogs.rawDataType === \'logRawData\' ? \'log-time1\' : \'log-time2\'">{{log.timeStamp | date:\'M-dd-yyyy HH:mm:ss\'}}</span>\n            <span ng-if="rawLogs.rawDataType === \'logRawData\'" class="log-level {{log.logLevel}}">\n                {{log.logLevel === \'D\' ? \'Debug\' : \'\'}}\n                {{log.logLevel === \'A\' ? \'Assert\' : \'\'}}\n     
            {{log.logLevel === \'I\' ? \'Info\' : \'\'}}\n                {{log.logLevel === \'W\' ? \'Warn\' : \'\'}}\n                {{log.logLevel === \'E\' ? \'Error\' : \'\'}}\n\n              </span>\n              </div>\n            </td>\n            <td >\n              <span ng-if="rawLogs.rawDataType === \'logRawData\'">{{log.logMessage}}</span>\n              <span ng-if="rawLogs.rawDataType !== \'logRawData\'">{{log.crashSummary ? log.crashSummary : \'No crash summary available\'}}</span>\n\n              <div class="row-meta">\n                <span ng-show="rawLogs.rawDataType === \'logRawData\'">\n                  <span class="label">Tag:</span>\n                  <span class="value">{{log.tag}}</span>\n                  <span class="label">Network Type:</span>\n                  <span class="value">{{log.networkType}}</span>\n                  <span class="label">Carrier:</span>\n                  <span class="value">{{log.networkCarrier}}</span>\n                
 </span>\n                <span class="label">Device ID:</span>\n                <span class="value">{{log.deviceId}}</span>\n                <span class="label">Platform:</span>\n                <span class="value">{{log.devicePlatform}}</span>\n                <span class="label">OS:</span>\n                <span class="value">{{log.deviceOperatingSystem}}</span>\n                <span class="label">Device Model:</span>\n                <span class="value">{{log.deviceModel}}</span>\n                <span class="value" ng-hide="rawLogs.rawDataType === \'logRawData\'"><a ng-href="{{log.crashLogUrl}}">Download Crash Log</a></span>\n              </div>\n            </td>\n          </tr>\n          </tbody>\n        </table>\n        <div class="row-fluid">\n          <div class="input-append span8">\n\n\n          </div>\n          <div class="span4 text-right" ng-if="rawLogs.rawData.length === 100 || rawLogSearch.pageNumber > 0">\n            {{rawLogSearch.pageNumber === 0 ? 1 : r
 awLogSearch.pageNumber * 100}} - {{rawLogSearch.pageNumber === 0 ? (1 * rawLogs.rawData.length) : (rawLogSearch.pageNumber + 1) * rawLogs.rawData.length}}\n            <a class="btn btn-primary toolbar" ng-disabled="rawLogSearch.pageNumber === 0" ng-click="rawLogSearch.pageNumber > 0 ? prevPage() : \'\'"><i class="pictogram">&#59229;</i></a>\n            <a class="btn btn-primary toolbar" ng-disabled="rawLogs.rawData.length !== 100" ng-click="rawLogs.rawData.length === 100 ? nextPage() : \'\'"><i class="pictogram">&#59230;</i></a>\n          </div>\n        </div>\n      </div>\n\n    </div>\n  </div>\n</section>\n\n</div>\n\n\n'),$templateCache.put("performance/errors-crashes/crashes.html",""),$templateCache.put("performance/errors-crashes/errors.html",""),$templateCache.put("performance/event-config.html",'<div>\n\n  <section class="row-fluid">\n\n    <div class="span12">\n\n      <h1 class="title"><i class="pictogram title">&#8646;</i> Event Configs</h1>\n\n      <div class="row-
 fluid" >\n\n        <div class="span12">\n          <h2 class="title"></h2>\n          <form class="form-horizontal">\n\n          </form>\n\n        </div>\n\n\n      </div>\n\n    </div>\n\n  </section>\n\n</div>\n\n\n'),$templateCache.put("performance/includes/info-box.html",'<ul class="info-details unstyled">\n  <li class="title small">{{title}}</li>\n  <li class="top-5-crash info-box">\n    <div class="summary-container {{datasrc.color}}">\n      {{datasrc.label}}\n      <div class="compare-data" ng-show="currentcompare != \'NOW\'">\n'+"        <span ng-class=\"currentcompare\">({{currentcompare == 'YESTERDAY' && 'Yesterday' || 'Last Week'}}) {{datasrc.value}}</span>\n      </div>\n    </div>\n  </li>\n</ul>"),$templateCache.put("performance/includes/no-data.html",'<div class="main-chart-holder no-data">\n  <bsmodal id="needHelp"\n           title="Need Help?"\n           close="hideModal"\n           closelabel="Cancel"\n           extrabutton="needHelpDialog"\n           extr
 abuttonlabel="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  <div class="no-data-msg" >\n    <div class="waiting" ng-if="chartDataWaiting">\n      <div class="bars" id="bar1"></div>\n      <div class="bars" id="bar2"></div>\n      <div class="bars" id="bar3"></div>\n    </div>\n    <div ng-if="!chartDataPresent && !chartDataWaiting && !logDataPresent">\n    <div class="content">\n      No data detected for this time range.\n    </div>\n    <button ng-click="showModal(\'needHelp\')" ng-if="performance.showHelpButton" class="btn glow">I have installed the SDK and need help!</button>\n    <div class="content" style="margin: 10px 0 10px 0" ng-if="performance.showHelpButton">\n      or\n    </div>\n    <button ng-click="toggleDemoData()" onclick="this.disabled=true" class="btn btn-primary action">View demo data</button>\n    </div>\n  </div>\n</div>'),$templateCache.put("performance/incl
 udes/time-filters.html",'<!-- filtering -->\n\n\n  <!-- custom errors-crashes filtering -->\n  <div class="btn-group" ng-if="ecHideChartFilters === true">\n    <a class="btn dropdown-toggle filter-selector action" data-toggle="dropdown">\n      <span class="filter-ec">{{ecDetailedView.label}}</span>\n      <span class="caret"></span>\n    </a>\n    <ul class="dropdown-menu">\n      <li ng-repeat="detailedView in ecDetailedViewList" class="filterItem"><a ng-click="changeEcDetailedView(detailedView)">{{detailedView.label}}</a></li>\n    </ul>\n  </div>\n  <!--common/global monitoring filters-->\n  <div class="btn-group" ng-if="ecHideChartFilters !== true || ecDetailChartFilters === true">\n\n    <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n      <span class="filter-label">{{selectedChartCriteria.chartName}}</span>\n      <span class="caret"></span>\n    </a>\n    <ul class="dropdown-menu" chart-filter="chartCriteria">\n    </ul>\n  </div>\n  <div class="btn-
 group">\n    <a class="btn dropdown-toggle filter-selector" data-toggle="dropdown">\n      <span class="filter-label">{{selectedtimefilter.label}}</span>\n      <span class="caret"></span>\n    </a>\n    <ul class="dropdown-menu" time-filter="timeFilters">\n    </ul>\n  </div>\n  <div class="btn-group compare" ng-class="(currentCompare === \'LAST_WEEK\') ? \'selected\' : \'\'">\n    <a class="btn filter-selector" ng-click="compare(\'LAST_WEEK\',false)">\n      <span class="filter-label"><i class="pictogram">&#57347;</i>Compare Last Week</span>\n    </a>\n  </div>\n  <div class="btn-group compare" ng-class="(currentCompare === \'YESTERDAY\') ? \'selected\' : \'\'">\n    <a class="btn filter-selector" ng-click="compare(\'YESTERDAY\',false)">\n      <span class="filter-label"><i class="pictogram">&#57347;</i>Compare Yesterday</span>\n    </a>\n  </div>\n  <div class="pull-right auto-update-container">\n    <a class="auto-updates" ng-show="showAutoRefresh && !hideAutoupdate" ng-click="t
 oggleAutoUpdate()"><i ng-if="autoUpdate !== null" class="pictogram title" style="width:13px">&#9632;</i><i ng-if="autoUpdate === null" class="pictogram title" style="width:13px">&#9654;</i> Turn auto updates <span ng-if="autoUpdate !== null">off ({{autoUpdateTimer}})</span><span ng-if="autoUpdate === null">on</span></a>\n  </div>\n'),$templateCache.put("push/push-config.html",'<div class="content-page">\n    <page-title icon="&#9874;" title="Configuration"></page-title>\n\n\n  <bsmodal id="deleteNotifier"\n           title="Delete Notifier"\n           close="hideModal"\n           closelabel="Cancel"\n           extrabutton="deleteNotifiersDialog"\n           extrabuttonlabel="Delete"\n           ng-cloak>\n    <p>Are you sure you want to delete the notifier(s)?</p>\n  </bsmodal>\n\n  <a style="float: right" target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">Learn more in our docs</a>\n  <tabs>\n    <pane heading="Apple">\n
       <div style="margin-top: 10px;"> <!-- ng-controller="PushConfigCtrl"-->\n        <div class="user-header-title">Apple Push Notification Service</div>\n        <br>\n        A Notifier allows App Services to connect to and deliver a message to a communication provider such as\n        Apple\'s APNs. Upload Development and Production Certificates (.p12) to set up a bridge between your app\n        and APNs for push notifications on iOS devices.\n\n          For more help: view our\n          <a href="#!/push/getStarted" class="notifications-links">getting started page</a>\n          for more info on how to generate and download an iOS .p12 certificate at the Apple Developer Connection website.\n          <br>\n          <br>\n        <form name="iosNotifierForm" id="iosNotifierForm"  ng-submit="createAppleNotifier()" class="form-horizontal" novalidate>\n\n          <fieldset>\n            <div class="control-group">\n              <label  for="ios-notifier-name"><strong>Name this
  notifier </strong></label>\n              <div class="">\n                <input type="text" id="ios-notifier-name" required ug-validate ng-model="notifier.appleNotifierName" class="" class="span6">\n                <br>\n                The notifier name is used as the key for push data.  Give this a name that describes the certificate being uploaded.\n              </div>\n            <br>\n              <label  for="ios-cert"><strong>Certificate </strong></label>\n              <div class="">\n                <input type="file" data-file="param.file"  id="ios-cert" />\n              </div>\n            <br>\n              <strong>Environment </strong>\n              <div class="">\n                <select ng-model="notifier.appleEnvironment" required ug-validate id="ios-env">\n                  <option value="development">development</option>\n                  <option value="production">production</option>\n                </select>\n              </div>\n            <br>\n    
           <strong>Certificate Password</strong>\n              <div class="">\n                <input ng-model="notifier.appleCertPassword" type="text"  title="Please enter a password." class="span6" autocomplete="off" placeholder="ex: appledev"/>\n                <br>\n                Only applicable if your certificate is password protected\n              </div>\n            </div>\n\n            <input type="submit" ng-disabled="!iosNotifierForm.$valid" class="btn btn-primary" value="Create Notifier"/>\n          </fieldset>\n        </form>\n\n      </div>\n\n    </pane>\n    <pane heading="Android">\n\n      <div style="margin-top: 10px;">\n        <span class="title">Google Cloud Messaging</span>\n        <br>\n        A Notifier allows App Services to connect to and deliver a message to a communication provider such as\n        Google Cloud Messaging (GCM). Copy and paste your API key to create a bridge between your app\n        and GCM for push notifications on Android devic
 es..\n        <br><br>\n\n        For more help: see our <a href="#!/getting-started/setup" class="notifications-links">getting started page</a> page.\n\n        <form id="droidNotifierForm" name="droidNotifierForm" ng-submit="createAndroidNotifier()" class="form-horizontal" novalidate>\n          <fieldset>\n            <div class="control-group">\n              <strong>Name this notifier </strong>\n              <div  >\n                <input ng-model="notifier.androidNotifierName" id="droid-notifier-name" required ug-validate type="text" class="span6" autocomplete="off" placeholder="ex: androidDev"/>\n                <br>\n                The notifier name is used as the key for push data.  Give this a name that describes the API key being uploaded.\n              </div>\n            </div>\n\n            <div class="control-group">\n              <strong>API Key </strong>\n              <div  >\n                <input ng-model="notifier.androidNotifierAPIKey" id="droid-key-valu
 e" required type="text" class="span6" autocomplete="off" ug-validate/>\n              </div>\n            </div>\n            <input type="submit" href="" class="btn btn-primary" ng-disabled="!droidNotifierForm.$valid"  value="Create Notifier"/>\n          </fieldset>\n          </form>\n      </div>\n\n    </pane>\n    <pane heading="Notifiers">\n\n        <bsmodal id="deleteNotifiers"\n                 title="Are you sure you want to delete the notifiers(s)?"\n                 close="hideModal"\n                 closelabel="Cancel"\n                 extrabutton="deleteNotifiersDialog"\n                 extrabuttonlabel="Delete"\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(notifiersCollection._list)" ng-click="deleteNotifiersDialog()">Delete Notifier(s)</but
 ton>\n      </span>\n      <table class="table table-striped collection-list">\n        <tbody>\n        <tr class="zebraRows notifications-row">\n          <td style="width: 30px;"><input type="checkbox"  ng-click="selectAllEntities(notifiersCollection._list,this,\'queryBoxesSelected\',true)"></td>\n          <td class="notifications-details bold-header">Provider</td>\n          <td class="notifications-details bold-header">Notifier</td>\n        </tr>\n\n        <tr class="zebraRows notifications-row" ng-repeat="notifier in notifiersCollection._list">\n          <td>\n            <input\n              type="checkbox"\n              ng-value="notifier.uuid"\n\n              ng-model="notifier.checked"\n              >\n          </td>\n          <td class="details">{{notifier.get(\'provider\')}}</td>\n          <td class="details">{{notifier.get(\'name\')}}</td>\n        </tr>\n      </table>\n    </pane>\n\n\n  </tabs>\n\n</div>'),$templateCache.put("push/push-get-started.html",'\
 n<div class="content-page">\n    <page-title icon="&#59176;" title="Getting Started"></page-title>\n\n\n\n  <div>\n    <tabs>\n      <pane heading="Apple">\n        <span class="title">Set up Push Notifications for Apple iOS</span>\n        <div class="notifications-get-started">\n          <div class="header">\n            <img src="img/push/step_1.png" style="float: left;padding-right: 10px;">\n            <div style="padding-top: 9px;">\n              Follow <a target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">the process</a> to generate and download an iOS .p12 certificate at the <a href="https://developer.apple.com/ios/manage/overview/index.action">Apple Developer Connection website</a>.\n            </div>\n          </div>\n          <img style="margin-bottom: -5px;" src="img/push/APNS_cert_upload.png">\n        </div>\n\n        <div class="notifications-get-started">\n          <div class="header">\n            <im
 g src="img/push/step_2.png" style="float: left;padding-right: 10px;">\n            <div style="padding-top: 9px;">\n              Add the certificates to set up your notifiers.\n            </div>\n          </div>\n          <div style="">\n            <a href="#!/push/configuration">Upload a certificate and create the connection to APNs.</a>\n          </div>\n          <img style="margin-left: 50px; margin-bottom: -5px;" src="img/push/APNS_certification.png">\n        </div>\n\n        <div class="notifications-get-started">\n          <div class="header">\n            <img src="img/push/step_3.png" style="float: left;padding-right: 10px;">\n            <div style="padding-top: 9px;">\n              Compose and schedule a push notification.\n            </div>\n          </div>\n          <div style="">\n            <a href="#!/push/sendNotification">Send a push notification.</a>\n          </div>\n          <br><br>\n          <img style="margin-left: 58px; margin-bottom: -5px;"
  src="img/push/iphone_message.png">\n        </div>\n      </pane>\n      <pane heading="Android">\n        <span class="title">Set up Push Notifications for Google Android</span>\n        <div class="notifications-get-started">\n          <div class="header">\n            <img src="img/push/step_1.png" style="float: left;padding-right: 10px;">\n            <div style="padding-top: 9px;">\n              Retrieve your API key from the <a href="https://code.google.com/apis/console/" target="_blank">Android API Developer website</a>\n            </div>\n          </div>\n          <img style="margin-bottom: -5px;" src="img/push/google_api_key.png">\n        </div>\n\n        <div class="notifications-get-started">\n          <div class="header">\n            <img src="img/push/step_2.png" style="float: left;padding-right: 10px;">\n            <div style="padding-top: 9px;">\n              Add your API key to set up your notifiers.\n            </div>\n          </div>\n          <div s
 tyle="">\n            <a href="#!/push/configuration">Copy and paste your Google API Access key.</a>\n          </div>\n          <img style="margin-left: 50px; margin-bottom: -5px;" src="img/push/APNS_certification.png">\n        </div>\n\n        <div class="notifications-get-started">\n          <div class="header">\n            <img src="img/push/step_3.png" style="float: left;padding-right: 10px;">\n            <div style="padding-top: 9px;">\n              Compose and schedule a push notification.\n            </div>\n          </div>\n          <div style="">\n            <a href="#!/push/sendNotification">Send a push notification.</a>\n          </div>\n          <br><br>\n          <img style="margin-left: 58px; margin-bottom: -5px;" src="img/push/android-notification.png">\n        </div>\n\n      </pane>\n    </tabs>\n  </div>\n</div>\n'),$templateCache.put("push/push-history.html",'<div class="content-page" style="min-height: 500px;">\n    <page-title icon="&#9991;" titl
 e="Message History"></page-title>\n\n\n\n  <section class="row-fluid">\n    <div class="span12">\n        <a style="float: right" target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">Learn more in our docs</a>\n\n        <div class="pull-left" style="margin-top: 10px;">\n          <ul class="nav nav-pills">\n            <li ng-class="selectedHistory.name === option.name ? \'active\' : \'\'" ng-repeat="option in historyList"><a ng-click="showHistory(option)">{{option.name}}</a></li>\n          </ul>\n        </div>\n     </div>\n    </section>\n  <section class="row-fluid">\n    <div class="span12">\n      <div ng-if="notificationCollection._list.length === 0">\n        No messages found\n      </div>\n\n      <div ng-repeat="notification in notificationCollection._list">\n        <div style="border: 1px solid #aaa;">\n            <div class="notifications-header">\n              <div style="float: left">\n                <stro
 ng>Send Date:</strong>\n                {{getNotificationStartedDate(notification._data) | date:\'EEEE, MMMM d, y h:mm:ss a\'}}\n                <div style="margin-top: 10px;">\n                  <img ng-src="{{getStateImage(notification)}}" style="vertical-align:middle;margin-top: -3px;"> {{getStateMessage(notification)}}\n                </div>\n              </div>\n              <div style="float: right; text-align: right;">\n                &nbsp; <a href="" class="notifications-links" ng-click="viewReceipts(notification._data.uuid)">view details</a>\n                <br>Total Sent: {{notification._data.statistics.sent ? notification._data.statistics.sent : 0}} Total Errors: {{notification._data.statistics.errors ? notification._data.statistics.errors : 0}}\n                <br>\n                <b>UUID</b>:\n                <a href="" ng-click="viewReceipts(\'{{notification._data.uuid}}\')">{{notification._data.uuid}}</a>\n              </div>\n            </div>\n            
 <div style="padding: 10px;">\n             <div> payload: {{notification._data.payloads}} </div>\n             <div ng-if="notification._data.errorMessage"> error message: {{notification._data.errorMessage}} </div>\n            </div>\n          </div>\n          <br>\n        </div>\n\n        <div style="height:20px">&nbsp;</div>\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>\n   </section>\n</div>\n'),$templateCache.put("push/push-receipts.html",'<div class="content-page" style="min-height: 500px;">\n  <span style="float: left">\n    <a href="#!/push/history" class="notifications-links" id="return-to-notifications"><- Return to All Notifications</a></span>\n  <br>\n\n  <div style="clear: both;">&nbsp
 ;</div>\n  <table class="table">\n    <tbody>\n    <tr class="zebraRows notifications-row">\n      <td class="notifications-details bold-header">Created</td>\n      <td class="notifications-details bold-header">Payload</td>\n      <td class="notifications-details bold-header">Sent</td>\n      <td class="notifications-details bold-header">Error</td>\n    </tr>\n\n    <tr class="zebraRows notifications-row" ng-repeat="receipt in receiptsCollection._list">\n      <td class="details">{{receipt.get(\'created\')}}</td>\n      <td class="details">{{receipt.get(\'payload\')}}</td>\n      <td class="details">{{receipt.get(\'sent\')}}</td>\n      <td class="view-details">{{receipt.get(\'errorCode\') + (receipt.get(\'errorCode\') ? \':\' : \'\')}} {{receipt.get(\'errorMessage\')}}</td>\n    </tr>\n  </table>\n  <br>\n\n\n\n  <div style="height:20px">&nbsp;</div>\n  <div style="padding: 10px 5px 10px 5px">\n    <button class="btn btn-primary" ng-click="getPrevious()" style="display:{{previous_d
 isplay}}">< 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\n\n<!--div id="notificationsReceipt-panel" class="panel-buffer">\n  <div class="well thingy">\n    <span class="title">Notification Receipts</span>\n    <span style="float: right"><a href="#" class="notifications-links" id="return-to-notifications"><- Return to All Notifications</a></span>\n  </div>\n  <div style="float: left">\n    <ul class="nav nav-pills">\n      <li class="active"><a href="#" id="view-notification-receipt-all">All</a></li>\n      <li><a href="#" id="view-notification-receipt-received">Received</a></li>\n      <li><a href="#" id="view-notification-receipt-failed">Failed</a></li>\n    </ul>\n  </div>\n  <div style="margin-top:35px;">&nbsp;</div>\n  <div id="notification-receipts-display">\n    <br><br>No Notifications found.\n  </div>\n\n  <ul id="notification-receipt-pagination" class="pager
 ">\n    <li style="display: none" id="notification-receipt-previous" class="previous"><a >&larr; Previous</a></li>\n    <li style="display: none" id="notification-receipt-next" class="next"><a >Next &rarr;</a></li>\n  </ul>\n\n</div-->'),$templateCache.put("push/push-send-notification.html",'<div class="content-page">\n\n\n    <page-title icon="&#128319;" title="Send Notification"></page-title>\n\n\n  <a style="float: right" target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">Learn more in our docs</a>\n\n  <form id="query-inputs" class="notifcations-form" ng-submit="scheduleNotification()" novalidate name="send">\n    <h4>Notifier and Recipients</h4>\n    Choose the Notifier (a configured notification service) to connect with for this push notification. Only users\n    with devices registered with this notifier will receive the push notification. If a group is selected, only the users\n    in the selected goup, with devices 
 registered with this notifier, will receive the push notification.\n\n    <br/><br/>\n    <label for="send-notification-notifier">Notifier:</label>\n    <select name="notifierName" ng-required="true" id="send-notification-notifier" ng-model="send.selectedNotifier" ng-options="n._data.name for n in notifiersCollection">\n      <option value="">Choose Notifier</option>\n    </select>\n    <span ng-show="send.notifierName.$dirty && send.notifierName.$error.required">\n      You must choose a notifier\n    </span>\n\n    <div class="control-group">\n      <input type="radio" name="notification-user-group" id="notification-user-group-all"  ng-required="true"  ng-model="send.controlGroup" value="all" checked> All Devices\n      <input type="radio" name="notification-user-group" id="notification-user-group-devices" ng-required="true"  ng-model="send.controlGroup" value="devices"> Devices\n      <input type="radio" name="notification-user-group" id="notification-user-group-users" ng-require
 d="true"  ng-model="send.controlGroup" value="users"> Users\n      <input type="radio" name="notification-user-group" id="notification-user-group-group" ng-required="true"  ng-model="send.controlGroup" value="groups"> Groups\n    </div>\n\n    <div class="control-group">\n      <div id="notificaitons-devices-select-container" ng-show="send.controlGroup === \'devices\'">\n        Enter the device uuids:<br>\n        <textarea id="devices-list" placeholder="device-UUID-1,device-UUID-2,device-UUID-3,etc..."   ng-model="send.devices" ng-list class="span6 pull-left" rows="5" ng-required="send.controlGroup === \'devices\'"></textarea>\n      </div>\n\n      <div id="notificaitons-users-select-container" ng-show="send.controlGroup === \'users\'">\n      Enter the usernames:<br>\n      <textarea id="user-list" placeholder="username1,username2,username3,etc..."   ng-model="send.users" ng-list class="span6 pull-left" rows="5" ng-required="send.controlGroup === \'users\'"></textarea>\n      <!
 --br>\n      <div class="thingy">\n      Or, use a form to look them up:<br>\n      <a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-add-user-to-notification"> Add User</a>\n      </div-->\n    </div>\n      <div id="notificaitons-group-select-container" ng-show="send.controlGroup === \'groups\'">\n        Enter the group paths:<br>\n        <textarea id="group-list" placeholder="group-path-1,group-path-2,group-path-3,etc..."   ng-model="send.groups" ng-list class="span6 pull-left" rows="5" ng-required="send.controlGroup === \'groups\'"></textarea>\n        <!--br>\n        <div class="thingy">\n        <a style="margin-right: 15px;" class="btn btn-primary" data-toggle="modal" href="#dialog-form-add-group-to-notification"> Add Group</a>\n        </div-->\n      </div>\n    </div>\n\n    <hr>\n    <h4>Notifier Message</h4>\n    Edit the "alert" message in the JSON payload.\n    <div class="controls">\n      <div>\n        <textarea id="not
 ification-json" class="span6 pull-left" rows="3" ng-model="send.notifierMessage" required ug-validate>Your text here</textarea>\n        <br>\n        <a target="_blank" href="http://apigee.com/docs/usergrid/content/push-notifications" class="notifications-links">Learn more about messages in our docs</a>\n      </div>\n    </div>\n    <div style="display: none;">\n      <a class="btn" id="reset-notifications-payload" >Reset Payload</a>\n      <a class="btn" id="validate-notifications-json" >Validate JSON</a>\n      <span id="notifications-json-status" class="alert" style="width: 400px;">Validate your JSON!</span>\n    </div>\n    <hr>\n    <h4>Delivery</h4>\n    Select whether to schedule this push notification for immediate delivery or at a future date and time.\n\n    <div class="control-group">\n      <input type="radio" name="notification-schedule-time" id="notification-schedule-time-now"  ng-required="true" ng-model="send.deliveryPeriod" value="now" checked> Now\n      <input t
 ype="radio" name="notification-schedule-time" id="notification-schedule-time-later"  ng-required="true" ng-model="send.deliveryPeriod" value="later"> Schedule for later\n    </div>\n    <div id="notification-schedule-time-controls" ng-show="send.deliveryPeriod === \'later\'">\n      <div id="notifications-start-time-span" class="control-group">\n        <label class="control-label" for="notification-schedule-time-date">Start Date/Time:</label>\n        <div class="controls">\n          <input type="text" id="notification-schedule-time-date" name="schedule-date" class="input-small"/>\n          <input type="text" id="notification-schedule-time-time" name="schedule-time" value="12:00 AM" class="input-small"/> (<span id="gmt_display"></span>)\n        </div>\n      </div>\n    </div>\n    <br/>\n    <p ng-show="send.$invalid">Please complete all required information before submitting.</p>\n    <input type="submit" ng-disabled="!send.$valid" name="submit" class="btn btn-primary" />\n  <
 /form>\n</div>\n\n\n<form id="dialog-form-add-user-to-notification" class="modal hide fade">\n  <div class="modal-header">\n    <a class="close" data-dismiss="modal">&times</a>\n    <h4>Add a user to this Notification</h4>\n  </div>\n  <div class="modal-body">\n    <p class="validateTips">Search for the user you want to add to this notification.</p>\n    <fieldset>\n      <div class="control-group">\n        <label for="search-notification-user-name-input">User</label>\n        <div class="controls">\n          <input type="text" name="search-notification-user-name-input" id="search-notification-user-name-input" class="input-xlarge"/>\n          <p class="help-block hide"></p>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n  <div class="modal-footer">\n    <input type="submit" class="btn btn-usergrid" value="Add"/>\n    <input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>\n  </div>\n</form>\n\n<form id="dialog-form-add-group-to-notification" class="modal 
 hide fade">\n  <div class="modal-header">\n    <a class="close" data-dismiss="modal">&times</a>\n    <h4>Add a group to this Notification</h4>\n  </div>\n  <div class="modal-body">\n    <p class="validateTips">Search for the group you want to add to this notification.</p>\n    <fieldset>\n      <div class="control-group">\n        <label for="search-notification-group-name-input">Group</label>\n        <div class="controls">\n          <input type="text" name="search-notification-group-name-input" id="search-notification-group-name-input" class="input-xlarge"/>\n          <p class="help-block hide"></p>\n        </div>\n      </div>\n    </fieldset>\n  </div>\n  <div class="modal-footer">\n    <input type="submit" class="btn btn-usergrid" value="Add"/>\n    <input type="reset" class="btn" value="Cancel" data-dismiss="modal"/>\n  </div>\n</form>')
-}]),AppServices.MAX=AppServices.MAX||angular.module("appservices.max",[]),AppServices.MAX.directive("slidecheckbox",["$rootScope",function(){return{restrict:"ECA",scope:{data:"=data"},templateUrl:"performance/checkbox-template.html",replace:!0,transclude:!0,link:function(scope,lElement,attrs){scope.label=attrs.label}}}]),AppServices.MAX=AppServices.MAX||angular.module("appservices.max",[]),AppServices.MAX.controller("ConfigureCtrl",["data","$scope","$rootScope","$log",function(data,$scope,$rootScope,$log){function configPageSetup(){$scope.deviceNumberFilters="",$scope.deviceIdFilters="",$scope.defaultAppConfigParameters=[{tag:"",paramKey:"",paramValue:""}],$scope.deviceLevelConfigParameters=[{tag:"",paramKey:"",paramValue:""}],$scope.abConfigParameters=[{tag:"",paramKey:"",paramValue:""}],$scope.$on("app-initialized",function(){data.resource({appname:$rootScope.currentApp,orgname:$rootScope.currentOrg,username:"apm",endpoint:"apigeeMobileConfig"},!1).get({callback:"JSON_CALLBACK",ac
 cess_token:getAccessToken()},function(cdata){$scope.configData=cdata,cdata.deviceNumberFilters&&cdata.deviceNumberFilters.length>0&&angular.forEach(cdata.deviceNumberFilters,function(value){$scope.deviceNumberFilters+=value.filterValue+"\n"}),cdata.deviceIdFilters&&cdata.deviceIdFilters.length>0&&angular.forEach(cdata.deviceIdFilters,function(value){$scope.deviceIdFilters+=value.filterValue+"\n"}),angular.forEach($scope.logLevels,function(value,key){cdata.defaultAppConfig.logLevelToMonitor===value.value&&($scope.appConfigLogLevel=$scope.logLevels[key])}),cdata.defaultAppConfig.customConfigParameters.length>0&&($scope.defaultAppConfigParameters=cdata.defaultAppConfig.customConfigParameters),angular.forEach($scope.logLevels,function(value,key){cdata.deviceLevelAppConfig.logLevelToMonitor===value.value&&($scope.betaLogLevel=$scope.logLevels[key])}),cdata.deviceLevelAppConfig.customConfigParameters.length>0&&($scope.deviceLevelConfigParameters=cdata.deviceLevelAppConfig.customConfigPara
 meters),angular.forEach($scope.logLevels,function(value,key){cdata.abtestingAppConfig.logLevelToMonitor===value.value&&($scope.abLogLevel=$scope.logLevels[key])}),cdata.abtestingAppConfig.customConfigParameters.length>0&&($scope.abConfigParameters=cdata.abtestingAppConfig.customConfigParameters)},

<TRUNCATED>