clear web pages 07/47707/2
authorSerenaFeng <feng.xiaowei@zte.com.cn>
Thu, 23 Nov 2017 11:04:17 +0000 (19:04 +0800)
committerSerenaFeng <feng.xiaowei@zte.com.cn>
Thu, 23 Nov 2017 11:08:50 +0000 (19:08 +0800)
1. delete 'My Results' page, it means to be used in dovetail,
   now dovetail has an independent repo
2. rename 'Community Results' to 'Results'
3. delete vendor/products/result-reports ... code,
   they are useless for now, and probably in the future

Change-Id: I6678fdadf5f11842bb1614d7eaa4cf21256385b6
Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
testapi/opnfv_testapi/ui/app.js
testapi/opnfv_testapi/ui/components/results-report/partials/editTestModal.html [deleted file]
testapi/opnfv_testapi/ui/components/results-report/partials/fullTestListModal.html [deleted file]
testapi/opnfv_testapi/ui/components/results-report/partials/reportDetails.html [deleted file]
testapi/opnfv_testapi/ui/components/results-report/resultsReport.html [deleted file]
testapi/opnfv_testapi/ui/components/results-report/resultsReportController.js [deleted file]
testapi/opnfv_testapi/ui/index.html
testapi/opnfv_testapi/ui/shared/header/header.html
testapi/opnfv_testapi/ui/shared/header/headerController.js

index dbb56a6..77fb1fb 100644 (file)
                 templateUrl: 'testapi-ui/components/projects/project/project.html',
                 controller: 'ProjectController as ctrl'
             }).
-            state('communityResults', {
-                url: '/community_results',
+            state('results', {
+                url: '/results',
                 templateUrl: 'testapi-ui/components/results/results.html',
                 controller: 'ResultsController as ctrl'
             }).
-            state('userResults', {
-                url: '/user_results',
-                templateUrl: 'testapi-ui/components/results/results.html',
-                controller: 'ResultsController as ctrl'
-            }).
-            state('resultsDetail', {
-                url: '/results/:testID',
-                templateUrl: 'testapi-ui/components/results-report' +
-                             '/resultsReport.html',
-                controller: 'ResultsReportController as ctrl'
-            }).
             state('profile', {
                 url: '/profile',
                 templateUrl: 'testapi-ui/components/profile/profile.html',
                 url: '/logout',
                 templateUrl: 'testapi-ui/components/logout/logout.html',
                 controller: 'LogoutController as ctrl'
-            }).
-            state('userVendors', {
-                url: '/user_vendors',
-                templateUrl: '/testapi-ui/components/vendors/vendors.html',
-                controller: 'VendorsController as ctrl'
-            }).
-            state('publicVendors', {
-                url: '/public_vendors',
-                templateUrl: '/testapi-ui/components/vendors/vendors.html',
-                controller: 'VendorsController as ctrl'
-            }).
-            state('vendor', {
-                url: '/vendor/:vendorID',
-                templateUrl: '/swagger/testapi-ui/components/vendors/vendor.html',
-                controller: 'VendorController as ctrl'
-            }).
-            state('userProducts', {
-                url: '/user_products',
-                templateUrl: '/testapi-ui/components/products/products.html',
-                controller: 'ProductsController as ctrl'
-            }).
-            state('publicProducts', {
-                url: '/public_products',
-                templateUrl: '/testapi-ui/components/products/products.html',
-                controller: 'ProductsController as ctrl'
-            }).
-            state('cloud', {
-                url: '/cloud/:id',
-                templateUrl: '/testapi-ui/components/products/cloud.html',
-                controller: 'ProductController as ctrl'
-            }).
-            state('distro', {
-                url: '/distro/:id',
-                templateUrl: '/testapi-ui/components/products/distro.html',
-                controller: 'ProductController as ctrl'
             });
     }
 
diff --git a/testapi/opnfv_testapi/ui/components/results-report/partials/editTestModal.html b/testapi/opnfv_testapi/ui/components/results-report/partials/editTestModal.html
deleted file mode 100644 (file)
index 583c9b9..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<div class="modal-content">
-    <div class="modal-header">
-        <button type="button" class="close" aria-hidden="true" ng-click="modal.close()">&times;</button>
-        <h4>Edit Test Run Metadata</h4>
-        <p>Make changes to your test metadata.</p>
-    </div>
-    <div class="modal-body">
-        <div class="form-group">
-            <strong>Publicly Shared:</strong>
-            <select ng-model="modal.metaCopy.shared"
-                    class="form-control">
-                    <option value="true">Yes</option>
-                    <option value="">No</option>
-            </select>
-            <br />
-            <strong>Associated Guideline:</strong>
-            <select ng-model="modal.metaCopy.guideline"
-                    ng-options="o as o.slice(0, -5) for o in modal.versionList"
-                    class="form-control">
-                <option value="">None</option>
-            </select>
-            <br />
-            <strong>Associated Target Program:</strong>
-            <select ng-model="modal.metaCopy.target"
-                    class="form-control">
-                <option value="">None</option>
-                <option value="platform">OpenStack Powered Platform</option>
-                <option value="compute">OpenStack Powered Compute</option>
-                <option value="object">OpenStack Powered Object Storage</option>
-            </select>
-            <hr>
-            <strong>Associated Product:</strong>
-            <select ng-options="product as product.name for product in modal.products | arrayConverter | orderBy: 'name' track by product.id"
-                    ng-model="modal.selectedProduct"
-                    ng-change="modal.getProductVersions()"
-                    class="form-control">
-                <option value="">-- No Product --</option>
-            </select>
-
-            <span ng-if="modal.productVersions.length">
-                <strong>Product Version:</strong>
-                <select ng-options="version as version.version for version in modal.productVersions | orderBy: 'version' track by version.id"
-                        ng-model="modal.selectedVersion"
-                        class="form-control">
-                </select>
-
-            </span>
-
-        </div>
-        <div ng-show="modal.showError" class="alert alert-danger" role="alert">
-            <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
-            <span class="sr-only">Error:</span>
-            {{modal.error}}
-        </div>
-        <div ng-show="modal.showSuccess" class="alert alert-success" role="success">
-            <span class="glyphicon glyphicon-ok" aria-hidden="true"></span>
-            <span class="sr-only">Success:</span>
-            Changes saved successfully.
-        </div>
-    </div>
-    <div class="modal-footer">
-        <button class="btn btn-primary" type="button" ng-click="modal.saveChanges()">Save Changes</button>
-        <button class="btn btn-primary" type="button" ng-click="modal.close()">Close</button>
-    </div>
-</div>
diff --git a/testapi/opnfv_testapi/ui/components/results-report/partials/fullTestListModal.html b/testapi/opnfv_testapi/ui/components/results-report/partials/fullTestListModal.html
deleted file mode 100644 (file)
index 6db198b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<div class="modal-content">
-    <div class="modal-header">
-        <h4>All Passed Tests ({{modal.tests.length}})</h4>
-    </div>
-    <div class="modal-body tests-modal-content">
-         <div class="form-group">
-             <textarea class="form-control" rows="20" id="tests" wrap="off">{{modal.getTestListString()}}</textarea>
-         </div>
-    </div>
-    <div class="modal-footer">
-        <button class="btn btn-primary" type="button" ng-click="modal.close()">Close</button>
-    </div>
-</div>
diff --git a/testapi/opnfv_testapi/ui/components/results-report/partials/reportDetails.html b/testapi/opnfv_testapi/ui/components/results-report/partials/reportDetails.html
deleted file mode 100644 (file)
index 517e569..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--
-HTML for each accordion group that separates the status types on the results
-report page.
--->
-
-<uib-accordion-group is-open="isOpen" is-disabled="ctrl.caps[status].caps.length == 0">
-    <uib-accordion-heading>
-        {{status | capitalize}}
-        <small>
-            (<strong>Total:</strong> {{ctrl.caps[status].caps.length}} capabilities, {{ctrl.caps[status].count}} tests)
-            <span ng-if="ctrl.testStatus !== 'total'">
-                (<strong>{{ctrl.testStatus | capitalize}}:</strong> {{ctrl.getStatusTestCount(status)}} tests)
-            </span>
-        </small>
-        <i class="pull-right glyphicon"
-           ng-class="{'glyphicon-chevron-down': isOpen, 'glyphicon-chevron-right': !isOpen}">
-        </i>
-    </uib-accordion-heading>
-    <ol class="capabilities">
-        <li ng-repeat="capability in ctrl.caps[status].caps | orderBy:'id'"
-            ng-if="ctrl.isCapabilityShown(capability)">
-
-            <a ng-click="showTests = !showTests"
-               title="{{ctrl.guidelineData.capabilities[capability.id].description}}">
-                   {{capability.id}}
-            </a>
-            <span ng-class="{'text-success': ctrl.testStatus === 'passed',
-                             'text-danger': ctrl.testStatus === 'not passed',
-                             'text-warning': ctrl.testStatus === 'flagged'}"
-                  ng-if="ctrl.testStatus !== 'total'">
-                [{{ctrl.getCapabilityTestCount(capability)}}]
-            </span>
-            <span ng-class="{'text-success': (capability.passedTests.length > 0 &&
-                                              capability.notPassedTests.length == 0),
-                             'text-danger': (capability.passedTests.length == 0 &&
-                                             capability.notPassedTests.length > 0),
-                             'text-warning': (capability.passedTests.length > 0 &&
-                                              capability.notPassedTests.length > 0)}"
-                  ng-if="ctrl.testStatus === 'total'">
-                [{{capability.passedTests.length}}/{{capability.passedTests.length +
-                                                     capability.notPassedTests.length}}]
-            </span>
-
-            <ul class="list-unstyled" uib-collapse="!showTests">
-                <!-- Start passed test list -->
-                <li ng-repeat="test in capability.passedTests | orderBy:'toString()'"
-                    ng-if="ctrl.isTestShown(test, capability)">
-
-                    <span class="glyphicon glyphicon-ok text-success"
-                          aria-hidden="true">
-                    </span>
-                    <span ng-class="{'glyphicon glyphicon-flag text-warning':
-                                     ctrl.isTestFlagged(test, ctrl.guidelineData.capabilities[capability.id])}"
-                          title="{{ctrl.getFlaggedReason(test, ctrl.guidelineData.capabilities[capability.id])}}">
-                    </span>
-                    {{test}}
-                    <span ng-if="ctrl.guidelineData.capabilities[capability.id].tests[test].aliases"> &mdash;
-                        <a ng-click="showAliases = !showAliases">[Aliases]</a>
-                        <div class="test-detail-report" ng-if="ctrl.guidelineData.capabilities[capability.id].tests[test].aliases && showAliases">
-                           <ul><li ng-repeat="alias in ctrl.guidelineData.capabilities[capability.id].tests[test].aliases">{{alias}}</li></ul>
-                        </div>
-                    </span>
-                </li>
-                <!-- End passed test list -->
-
-                <!-- Start not passed test list -->
-                <li ng-repeat="test in capability.notPassedTests | orderBy:'toString()'"
-                    ng-if="ctrl.isTestShown(test, capability)">
-
-                    <span class="glyphicon glyphicon-remove text-danger" aria-hidden="true"></span>
-                    <span ng-class="{'glyphicon glyphicon-flag text-warning':
-                                     ctrl.isTestFlagged(test, ctrl.guidelineData.capabilities[capability.id])}"
-                          title="{{ctrl.getFlaggedReason(test, ctrl.guidelineData.capabilities[capability.id])}}">
-                    </span>
-                    {{test}}
-                    <span ng-if="ctrl.guidelineData.capabilities[capability.id].tests[test].aliases"> &mdash;
-                        <a ng-click="showAliases = !showAliases">[Aliases]</a>
-                        <div class="test-detail-report" ng-if="ctrl.guidelineData.capabilities[capability.id].tests[test].aliases && showAliases">
-                           <ul><li ng-repeat="alias in ctrl.guidelineData.capabilities[capability.id].tests[test].aliases">{{alias}}</li></ul>
-                        </div>
-                    </span>
-                </li>
-                <!-- End not passed test list -->
-            </ul>
-        </li>
-    </ol>
-</uib-accordion-group>
diff --git a/testapi/opnfv_testapi/ui/components/results-report/resultsReport.html b/testapi/opnfv_testapi/ui/components/results-report/resultsReport.html
deleted file mode 100644 (file)
index 5527121..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<h3>Test Run Results</h3>
-
-<div ng-show="ctrl.resultsData"  class="container-fluid">
-    <div class="row">
-        <div class="pull-left">
-            <div class="test-report">
-                <strong>Test ID:</strong> {{ctrl.testId}}<br />
-                <div ng-if="ctrl.isResultAdmin()"><strong>Cloud ID:</strong> {{ctrl.resultsData.cpid}}<br /></div>
-                <strong>Upload Date:</strong> {{ctrl.resultsData.created_at}} UTC<br />
-                <strong>Duration:</strong> {{ctrl.resultsData.duration_seconds}} seconds<br />
-                <strong>Total Number of Passed Tests:</strong>
-                <a title="See all passed tests" ng-click="ctrl.openFullTestListModal()">
-                    {{ctrl.resultsData.results.length}}
-                </a>
-            </div>
-            <hr>
-            <div ng-show="ctrl.isResultAdmin()">
-                <strong>Publicly Shared:</strong>
-                <span ng-if="ctrl.resultsData.meta.shared">Yes</span>
-                <span ng-if="!ctrl.resultsData.meta.shared">No</span>
-                <br />
-            </div>
-            <div ng-show="ctrl.resultsData.product_version">
-                <strong>Product:</strong>
-                {{ctrl.resultsData.product_version.product_info.name}}
-                <span ng-if="ctrl.resultsData.product_version.version">
-                    ({{ctrl.resultsData.product_version.version}})
-                </span><br />
-            </div>
-            <div ng-show="ctrl.resultsData.meta.guideline">
-                <strong>Associated Guideline:</strong>
-                {{ctrl.resultsData.meta.guideline.slice(0, -5)}}
-            </div>
-            <div ng-show="ctrl.resultsData.meta.target">
-                <strong>Associated Target Program:</strong>
-                {{ctrl.targetMappings[ctrl.resultsData.meta.target]}}
-            </div>
-            <div ng-show="ctrl.resultsData.verification_status">
-                <strong>Verified:</strong>
-                <span class="yes">YES</span>
-            </div>
-            <hr>
-        </div>
-
-        <div class="pull-right">
-            <div ng-show="ctrl.isResultAdmin() && !ctrl.resultsData.verification_status">
-                <button class="btn btn-info" ng-click="ctrl.openEditTestModal()">Edit</button>
-                <button type="button" class="btn btn-danger" ng-click="ctrl.deleteTestRun()" confirm="Are you sure you want to delete these test run results?">Delete</button>
-            </div>
-            <div ng-show="ctrl.resultsData.user_role === 'foundation'">
-                <hr>
-                <div class="checkbox checkbox-verified">
-                    <label><input type="checkbox"
-                                  ng-model="ctrl.isVerified"
-                                  ng-change="ctrl.updateVerificationStatus()"
-                                  ng-true-value="1"
-                                  ng-false-value="0">
-                                  <strong>Verified</strong>
-                    </label>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-<div ng-show="ctrl.resultsData">
-    <p>See how these results stack up against Interop Working Group capabilities and OpenStack
-        <a target="_blank" href="http://www.openstack.org/brand/interop/">target marketing programs.</a>
-    </p>
-
-    <!-- User Options -->
-    <div class="row">
-        <div class="col-md-3">
-            <strong>Guideline Version:</strong>
-            <!-- Slicing the version file name here gets rid of the '.json' file extension -->
-            <select ng-model="ctrl.version"
-                    ng-change="ctrl.updateGuidelines()"
-                    class="form-control"
-                    ng-options="versionFile.slice(0,-5) for versionFile in ctrl.versionList">
-            </select>
-        </div>
-        <div class="col-md-4">
-            <strong>Target Program:</strong>
-            <select ng-model="ctrl.target" class="form-control" ng-change="ctrl.buildCapabilitiesObject()">
-                <option value="platform">OpenStack Powered Platform</option>
-                <option value="compute">OpenStack Powered Compute</option>
-                <option value="object">OpenStack Powered Object Storage</option>
-            </select>
-        </div>
-    </div>
-    <!-- End User Options -->
-
-    <br />
-    <div ng-if="ctrl.guidelineData">
-        <strong>Guideline Status:</strong>
-        {{ctrl.guidelineData.status | capitalize}}
-    </div>
-
-    <strong>Corresponding OpenStack Releases:</strong>
-    <ul class="list-inline">
-        <li ng-repeat="release in ctrl.guidelineData.releases">
-            {{release | capitalize}}
-        </li>
-    </ul>
-    <hr >
-
-    <div ng-show="ctrl.guidelineData">
-        <strong>Status:</strong>
-        <p>This cloud passes <strong>{{ctrl.requiredPassPercent | number:1}}% </strong>
-           ({{ctrl.caps.required.passedCount}}/{{ctrl.caps.required.count}})
-           of the tests in the <strong>{{ctrl.version.slice(0, -5)}}</strong> <em>required</em> capabilities for the
-           <strong>{{ctrl.targetMappings[target]}}</strong> program. <br />
-           Excluding flagged tests, this cloud passes
-           <strong>{{ctrl.nonFlagRequiredPassPercent | number:1}}%</strong>
-           ({{ctrl.nonFlagPassCount}}/{{ctrl.totalNonFlagCount}})
-           of the <em>required</em> tests.
-        </p>
-
-        <p>Compliance with <strong>{{ctrl.version.slice(0, -5)}}</strong>:
-            <strong>
-                <span ng-if="ctrl.nonFlagPassCount === ctrl.totalNonFlagCount" class="yes">YES</span>
-                <span ng-if="ctrl.nonFlagPassCount !== ctrl.totalNonFlagCount" class="no">NO</span>
-            </strong>
-        </p>
-
-        <hr>
-        <h4>Capability Overview</h4>
-
-        Test Filters:<br />
-        <div class="btn-group button-margin" data-toggle="buttons">
-            <label class="btn btn-default" ng-class="{'active': ctrl.testStatus === 'total'}">
-                <input type="radio" ng-model="ctrl.testStatus" value="total">
-                <span class="text-primary">All</span>
-            </label>
-            <label class="btn btn-default" ng-class="{'active': ctrl.testStatus === 'passed'}">
-                <input type="radio" ng-model="ctrl.testStatus" value="passed">
-                <span class="text-success">Passed</span>
-            </label>
-            <label class="btn btn-default" ng-class="{'active': ctrl.testStatus === 'not passed'}">
-                <input type="radio" ng-model="ctrl.testStatus" value="not passed">
-                <span class="text-danger">Not Passed</span>
-            </label>
-            <label class="btn btn-default" ng-class="{'active': ctrl.testStatus === 'flagged'}">
-                <input type="radio" ng-model="ctrl.testStatus" value="flagged">
-                <span class="text-warning">Flagged</span>
-            </label>
-        </div>
-
-        <uib-accordion close-others=false>
-            <!-- The ng-repeat is used to pass in a local variable to the template. -->
-            <ng-include
-                ng-repeat="status in ['required']"
-                src="ctrl.detailsTemplate"
-                onload="isOpen = true">
-            </ng-include>
-            <br />
-            <ng-include
-                ng-repeat="status in ['advisory']"
-                src="ctrl.detailsTemplate">
-            </ng-include>
-            <br />
-            <ng-include
-                ng-repeat="status in ['deprecated']"
-                src="ctrl.detailsTemplate">
-            </ng-include>
-            <br />
-            <ng-include
-                ng-repeat="status in ['removed']"
-                src="ctrl.detailsTemplate">
-            </ng-include>
-        </uib-accordion>
-    </div>
-</div>
-
-<div class="loading">
-    <div cg-busy="{promise:versionsRequest,message:'Loading versions'}"></div>
-    <div cg-busy="{promise:capsRequest,message:'Loading capabilities'}"></div>
-    <div cg-busy="{promise:resultsRequest,message:'Loading results'}"></div>
-</div>
-
-<div ng-show="ctrl.showError" class="alert alert-danger" role="alert">
-    <span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
-    <span class="sr-only">Error:</span>
-    {{ctrl.error}}
-</div>
diff --git a/testapi/opnfv_testapi/ui/components/results-report/resultsReportController.js b/testapi/opnfv_testapi/ui/components/results-report/resultsReportController.js
deleted file mode 100644 (file)
index 591ad40..0000000
+++ /dev/null
@@ -1,869 +0,0 @@
-/*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-(function () {
-    'use strict';
-
-    angular
-        .module('testapiApp')
-        .controller('ResultsReportController', ResultsReportController);
-
-    ResultsReportController.$inject = [
-        '$http', '$stateParams', '$window',
-        '$uibModal', 'testapiApiUrl', 'raiseAlert'
-    ];
-
-    /**
-     * TestAPI Results Report Controller
-     * This controller is for the '/results/<test run ID>' page where a user can
-     * view details for a specific test run.
-     */
-    function ResultsReportController($http, $stateParams, $window,
-        $uibModal, testapiApiUrl, raiseAlert) {
-
-        var ctrl = this;
-
-        ctrl.getVersionList = getVersionList;
-        ctrl.getResults = getResults;
-        ctrl.isResultAdmin = isResultAdmin;
-        ctrl.isShared = isShared;
-        ctrl.shareTestRun = shareTestRun;
-        ctrl.deleteTestRun = deleteTestRun;
-        ctrl.updateVerificationStatus = updateVerificationStatus;
-        ctrl.updateGuidelines = updateGuidelines;
-        ctrl.getTargetCapabilities = getTargetCapabilities;
-        ctrl.buildCapabilityV1_2 = buildCapabilityV1_2;
-        ctrl.buildCapabilityV1_3 = buildCapabilityV1_3;
-        ctrl.buildCapabilitiesObject = buildCapabilitiesObject;
-        ctrl.isTestFlagged = isTestFlagged;
-        ctrl.getFlaggedReason = getFlaggedReason;
-        ctrl.isCapabilityShown = isCapabilityShown;
-        ctrl.isTestShown = isTestShown;
-        ctrl.getCapabilityTestCount = getCapabilityTestCount;
-        ctrl.getStatusTestCount = getStatusTestCount;
-        ctrl.openFullTestListModal = openFullTestListModal;
-        ctrl.openEditTestModal = openEditTestModal;
-
-        /** The testID extracted from the URL route. */
-        ctrl.testId = $stateParams.testID;
-
-        /** The target OpenStack marketing program to compare against. */
-        ctrl.target = 'platform';
-
-        /** Mappings of Interop WG components to marketing program names. */
-        ctrl.targetMappings = {
-            'platform': 'Openstack Powered Platform',
-            'compute': 'OpenStack Powered Compute',
-            'object': 'OpenStack Powered Object Storage'
-        };
-
-        /** The schema version of the currently selected guideline data. */
-        ctrl.schemaVersion = null;
-
-        /** The selected test status used for test filtering. */
-        ctrl.testStatus = 'total';
-
-        /** The HTML template that all accordian groups will use. */
-        ctrl.detailsTemplate = 'components/results-report/partials/' +
-                               'reportDetails.html';
-
-        /**
-         * Retrieve an array of available guideline files from the TestAPI
-         * API server, sort this array reverse-alphabetically, and store it in
-         * a scoped variable. The scope's selected version is initialized to
-         * the latest (i.e. first) version here as well. After a successful API
-         * call, the function to update the capabilities is called.
-         * Sample API return array: ["2015.03.json", "2015.04.json"]
-         */
-        function getVersionList() {
-            var content_url = testapiApiUrl + '/guidelines';
-            ctrl.versionsRequest =
-                $http.get(content_url).success(function (data) {
-                    ctrl.versionList = data.sort().reverse();
-                    if (!ctrl.version) {
-                        // Default to the first approved guideline which is
-                        // expected to be at index 1.
-                        ctrl.version = ctrl.versionList[1];
-                    }
-                    ctrl.updateGuidelines();
-                }).error(function (error) {
-                    ctrl.showError = true;
-                    ctrl.error = 'Error retrieving version list: ' +
-                        angular.toJson(error);
-                });
-        }
-
-        /**
-         * Retrieve results from the TestAPI API server based on the test
-         * run id in the URL. This function is the first function that will
-         * be called from the controller. Upon successful retrieval of results,
-         * the function that gets the version list will be called.
-         */
-        function getResults() {
-            var content_url = testapiApiUrl + '/results/' + ctrl.testId;
-            ctrl.resultsRequest =
-                $http.get(content_url).success(function (data) {
-                    ctrl.resultsData = data;
-                    ctrl.version = ctrl.resultsData.meta.guideline;
-                    ctrl.isVerified = ctrl.resultsData.verification_status;
-                    if (ctrl.resultsData.meta.target) {
-                        ctrl.target = ctrl.resultsData.meta.target;
-                    }
-                    getVersionList();
-                }).error(function (error) {
-                    ctrl.showError = true;
-                    ctrl.resultsData = null;
-                    ctrl.error = 'Error retrieving results from server: ' +
-                        angular.toJson(error);
-                });
-        }
-
-        /**
-         * This tells you whether the current user has administrative
-         * privileges for the test result.
-         * @returns {Boolean} true if the user has admin privileges.
-         */
-        function isResultAdmin() {
-            return Boolean(ctrl.resultsData &&
-                (ctrl.resultsData.user_role === 'owner' ||
-                 ctrl.resultsData.user_role === 'foundation'));
-        }
-        /**
-         * This tells you whether the current results are shared with the
-         * community or not.
-         * @returns {Boolean} true if the results are shared
-         */
-        function isShared() {
-            return Boolean(ctrl.resultsData &&
-                'shared' in ctrl.resultsData.meta);
-        }
-
-        /**
-         * This will send an API request in order to share or unshare the
-         * current results based on the passed in shareState.
-         * @param {Boolean} shareState - Whether to share or unshare results.
-         */
-        function shareTestRun(shareState) {
-            var content_url = [
-                testapiApiUrl, '/results/', ctrl.testId, '/meta/shared'
-            ].join('');
-            if (shareState) {
-                ctrl.shareRequest =
-                    $http.post(content_url, 'true').success(function () {
-                        ctrl.resultsData.meta.shared = 'true';
-                        raiseAlert('success', '', 'Test run shared!');
-                    }).error(function (error) {
-                        raiseAlert('danger', error.title, error.detail);
-                    });
-            } else {
-                ctrl.shareRequest =
-                    $http.delete(content_url).success(function () {
-                        delete ctrl.resultsData.meta.shared;
-                        raiseAlert('success', '', 'Test run unshared!');
-                    }).error(function (error) {
-                        raiseAlert('danger', error.title, error.detail);
-                    });
-            }
-        }
-
-        /**
-         * This will send a request to the API to delete the current
-         * test results set.
-         */
-        function deleteTestRun() {
-            var content_url = [
-                testapiApiUrl, '/results/', ctrl.testId
-            ].join('');
-            ctrl.deleteRequest =
-                $http.delete(content_url).success(function () {
-                    $window.history.back();
-                }).error(function (error) {
-                    raiseAlert('danger', error.title, error.detail);
-                });
-        }
-
-        /**
-         * This will send a request to the API to delete the current
-         * test results set.
-         */
-        function updateVerificationStatus() {
-            var content_url = [
-                testapiApiUrl, '/results/', ctrl.testId
-            ].join('');
-            var data = {'verification_status': ctrl.isVerified};
-            ctrl.updateRequest =
-                $http.put(content_url, data).success(
-                    function () {
-                        ctrl.resultsData.verification_status = ctrl.isVerified;
-                        raiseAlert('success', '',
-                                   'Verification status changed!');
-                    }).error(function (error) {
-                        ctrl.isVerified = ctrl.resultsData.verification_status;
-                        raiseAlert('danger', error.title, error.detail);
-                    });
-        }
-
-        /**
-         * This will contact the TestAPI API server to retrieve the JSON
-         * content of the guideline file corresponding to the selected
-         * version. A function to construct an object from the capability
-         * data will be called upon successful retrieval.
-         */
-        function updateGuidelines() {
-            ctrl.guidelineData = null;
-            ctrl.showError = false;
-            var content_url = testapiApiUrl + '/guidelines/' +
-                ctrl.version;
-            ctrl.capsRequest =
-                $http.get(content_url).success(function (data) {
-                    ctrl.guidelineData = data;
-                    ctrl.schemaVersion = data.schema;
-                    ctrl.buildCapabilitiesObject();
-                }).error(function (error) {
-                    ctrl.showError = true;
-                    ctrl.guidelineData = null;
-                    ctrl.error = 'Error retrieving guideline date: ' +
-                        angular.toJson(error);
-                });
-        }
-
-        /**
-         * This will get all the capabilities relevant to the target and
-         * their corresponding statuses.
-         * @returns {Object} Object containing each capability and their status
-         */
-        function getTargetCapabilities() {
-            var components = ctrl.guidelineData.components;
-            var targetCaps = {};
-
-            // The 'platform' target is comprised of multiple components, so
-            // we need to get the capabilities belonging to each of its
-            // components.
-            if (ctrl.target === 'platform') {
-                var platform_components =
-                    ctrl.guidelineData.platform.required;
-
-                // This will contain status priority values, where lower
-                // values mean higher priorities.
-                var statusMap = {
-                    required: 1,
-                    advisory: 2,
-                    deprecated: 3,
-                    removed: 4
-                };
-
-                // For each component required for the platform program.
-                angular.forEach(platform_components, function (component) {
-                    // Get each capability list belonging to each status.
-                    angular.forEach(components[component],
-                        function (caps, status) {
-                            // For each capability.
-                            angular.forEach(caps, function(cap) {
-                                // If the capability has already been added.
-                                if (cap in targetCaps) {
-                                    // If the status priority value is less
-                                    // than the saved priority value, update
-                                    // the value.
-                                    if (statusMap[status] <
-                                        statusMap[targetCaps[cap]]) {
-                                        targetCaps[cap] = status;
-                                    }
-                                }
-                                else {
-                                    targetCaps[cap] = status;
-                                }
-                            });
-                        });
-                });
-            }
-            else {
-                angular.forEach(components[ctrl.target],
-                    function (caps, status) {
-                        angular.forEach(caps, function(cap) {
-                            targetCaps[cap] = status;
-                        });
-                    });
-            }
-            return targetCaps;
-        }
-
-        /**
-         * This will build the a capability object for schema version 1.2.
-         * This object will contain the information needed to form a report in
-         * the HTML template.
-         * @param {String} capId capability ID
-         */
-        function buildCapabilityV1_2(capId) {
-            var cap = {
-                'id': capId,
-                'passedTests': [],
-                'notPassedTests': [],
-                'passedFlagged': [],
-                'notPassedFlagged': []
-            };
-            var capDetails = ctrl.guidelineData.capabilities[capId];
-            // Loop through each test belonging to the capability.
-            angular.forEach(capDetails.tests,
-                function (testId) {
-                    // If the test ID is in the results' test list, add
-                    // it to the passedTests array.
-                    if (ctrl.resultsData.results.indexOf(testId) > -1) {
-                        cap.passedTests.push(testId);
-                        if (capDetails.flagged.indexOf(testId) > -1) {
-                            cap.passedFlagged.push(testId);
-                        }
-                    }
-                    else {
-                        cap.notPassedTests.push(testId);
-                        if (capDetails.flagged.indexOf(testId) > -1) {
-                            cap.notPassedFlagged.push(testId);
-                        }
-                    }
-                });
-            return cap;
-        }
-
-        /**
-         * This will build the a capability object for schema version 1.3 and
-         * above. This object will contain the information needed to form a
-         * report in the HTML template.
-         * @param {String} capId capability ID
-         */
-        function buildCapabilityV1_3(capId) {
-            var cap = {
-                'id': capId,
-                'passedTests': [],
-                'notPassedTests': [],
-                'passedFlagged': [],
-                'notPassedFlagged': []
-            };
-
-            // For cases where a capability listed in components is not
-            // in the capabilities object.
-            if (!(capId in ctrl.guidelineData.capabilities)) {
-                return cap;
-            }
-
-            // Loop through each test belonging to the capability.
-            angular.forEach(ctrl.guidelineData.capabilities[capId].tests,
-                function (details, testId) {
-                    var passed = false;
-
-                    // If the test ID is in the results' test list.
-                    if (ctrl.resultsData.results.indexOf(testId) > -1) {
-                        passed = true;
-                    }
-                    else if ('aliases' in details) {
-                        var len = details.aliases.length;
-                        for (var i = 0; i < len; i++) {
-                            var alias = details.aliases[i];
-                            if (ctrl.resultsData.results.indexOf(alias) > -1) {
-                                passed = true;
-                                break;
-                            }
-                        }
-                    }
-
-                    // Add to correct array based on whether the test was
-                    // passed or not.
-                    if (passed) {
-                        cap.passedTests.push(testId);
-                        if ('flagged' in details) {
-                            cap.passedFlagged.push(testId);
-                        }
-                    }
-                    else {
-                        cap.notPassedTests.push(testId);
-                        if ('flagged' in details) {
-                            cap.notPassedFlagged.push(testId);
-                        }
-                    }
-                });
-            return cap;
-        }
-
-        /**
-         * This will check the schema version of the current capabilities file,
-         * and will call the correct method to build an object based on the
-         * capability data retrieved from the TestAPI API server.
-         */
-        function buildCapabilitiesObject() {
-            // This is the object template where 'count' is the number of
-            // total tests that fall under the given status, and 'passedCount'
-            // is the number of tests passed. The 'caps' array will contain
-            // objects with details regarding each capability.
-            ctrl.caps = {
-                'required': {'caps': [], 'count': 0, 'passedCount': 0,
-                        'flagFailCount': 0, 'flagPassCount': 0},
-                'advisory': {'caps': [], 'count': 0, 'passedCount': 0,
-                        'flagFailCount': 0, 'flagPassCount': 0},
-                'deprecated': {'caps': [], 'count': 0, 'passedCount': 0,
-                          'flagFailCount': 0, 'flagPassCount': 0},
-                'removed': {'caps': [], 'count': 0, 'passedCount': 0,
-                       'flagFailCount': 0, 'flagPassCount': 0}
-            };
-
-            switch (ctrl.schemaVersion) {
-                case '1.2':
-                    var capMethod = 'buildCapabilityV1_2';
-                    break;
-                case '1.3':
-                case '1.4':
-                case '1.5':
-                case '1.6':
-                    capMethod = 'buildCapabilityV1_3';
-                    break;
-                default:
-                    ctrl.showError = true;
-                    ctrl.guidelineData = null;
-                    ctrl.error = 'The schema version for the guideline ' +
-                         'file selected (' + ctrl.schemaVersion +
-                         ') is currently not supported.';
-                    return;
-            }
-
-            // Get test details for each relevant capability and store
-            // them in the scope's 'caps' object.
-            var targetCaps = ctrl.getTargetCapabilities();
-            angular.forEach(targetCaps, function(status, capId) {
-                var cap = ctrl[capMethod](capId);
-                ctrl.caps[status].count +=
-                    cap.passedTests.length + cap.notPassedTests.length;
-                ctrl.caps[status].passedCount += cap.passedTests.length;
-                ctrl.caps[status].flagPassCount += cap.passedFlagged.length;
-                ctrl.caps[status].flagFailCount +=
-                    cap.notPassedFlagged.length;
-                ctrl.caps[status].caps.push(cap);
-            });
-
-            ctrl.requiredPassPercent = (ctrl.caps.required.passedCount *
-                100 / ctrl.caps.required.count);
-
-            ctrl.totalRequiredFailCount = ctrl.caps.required.count -
-                ctrl.caps.required.passedCount;
-            ctrl.totalRequiredFlagCount =
-                ctrl.caps.required.flagFailCount +
-                ctrl.caps.required.flagPassCount;
-            ctrl.totalNonFlagCount = ctrl.caps.required.count -
-                ctrl.totalRequiredFlagCount;
-            ctrl.nonFlagPassCount = ctrl.totalNonFlagCount -
-                (ctrl.totalRequiredFailCount -
-                 ctrl.caps.required.flagFailCount);
-
-            ctrl.nonFlagRequiredPassPercent = (ctrl.nonFlagPassCount *
-                100 / ctrl.totalNonFlagCount);
-        }
-
-        /**
-         * This will check if a given test is flagged.
-         * @param {String} test ID of the test to check
-         * @param {Object} capObj capability that test is under
-         * @returns {Boolean} truthy value if test is flagged
-         */
-        function isTestFlagged(test, capObj) {
-            if (!capObj) {
-                return false;
-            }
-            return (((ctrl.schemaVersion === '1.2') &&
-                (capObj.flagged.indexOf(test) > -1)) ||
-                    ((ctrl.schemaVersion >= '1.3') &&
-                (capObj.tests[test].flagged)));
-        }
-
-        /**
-         * This will return the reason a test is flagged. An empty string
-         * will be returned if the passed in test is not flagged.
-         * @param {String} test ID of the test to check
-         * @param {String} capObj capability that test is under
-         * @returns {String} reason
-         */
-        function getFlaggedReason(test, capObj) {
-            if ((ctrl.schemaVersion === '1.2') &&
-                (ctrl.isTestFlagged(test, capObj))) {
-
-                // Return a generic message since schema 1.2 does not
-                // provide flag reasons.
-                return 'Interop Working Group has flagged this test.';
-            }
-            else if ((ctrl.schemaVersion >= '1.3') &&
-                (ctrl.isTestFlagged(test, capObj))) {
-
-                return capObj.tests[test].flagged.reason;
-            }
-            else {
-                return '';
-            }
-        }
-
-        /**
-         * This will check the if a capability should be shown based on the
-         * test filter selected. If a capability does not have any tests
-         * belonging under the given filter, it should not be shown.
-         * @param {Object} capability Built object for capability
-         * @returns {Boolean} true if capability should be shown
-         */
-        function isCapabilityShown(capability) {
-            return ((ctrl.testStatus === 'total') ||
-               (ctrl.testStatus === 'passed' &&
-                capability.passedTests.length > 0) ||
-               (ctrl.testStatus === 'not passed' &&
-                capability.notPassedTests.length > 0) ||
-               (ctrl.testStatus === 'flagged' &&
-                (capability.passedFlagged.length +
-                 capability.notPassedFlagged.length > 0)));
-        }
-
-        /**
-         * This will check the if a test should be shown based on the test
-         * filter selected.
-         * @param {String} test ID of the test
-         * @param {Object} capability Built object for capability
-         * @return {Boolean} true if test should be shown
-         */
-        function isTestShown(test, capability) {
-            return ((ctrl.testStatus === 'total') ||
-                (ctrl.testStatus === 'passed' &&
-                 capability.passedTests.indexOf(test) > -1) ||
-                (ctrl.testStatus === 'not passed' &&
-                 capability.notPassedTests.indexOf(test) > -1) ||
-                (ctrl.testStatus === 'flagged' &&
-                 (capability.passedFlagged.indexOf(test) > -1 ||
-                  capability.notPassedFlagged.indexOf(test) > -1)));
-        }
-
-        /**
-         * This will give the number of tests belonging under the selected
-         * test filter for a given capability.
-         * @param {Object} capability Built object for capability
-         * @returns {Number} number of tests under filter
-         */
-        function getCapabilityTestCount(capability) {
-            if (ctrl.testStatus === 'total') {
-                return capability.passedTests.length +
-                   capability.notPassedTests.length;
-            }
-            else if (ctrl.testStatus === 'passed') {
-                return capability.passedTests.length;
-            }
-            else if (ctrl.testStatus === 'not passed') {
-                return capability.notPassedTests.length;
-            }
-            else if (ctrl.testStatus === 'flagged') {
-                return capability.passedFlagged.length +
-                   capability.notPassedFlagged.length;
-            }
-            else {
-                return 0;
-            }
-        }
-
-        /**
-         * This will give the number of tests belonging under the selected
-         * test filter for a given status.
-         * @param {String} capability status
-         * @returns {Number} number of tests for status under filter
-         */
-        function getStatusTestCount(status) {
-            if (!ctrl.caps) {
-                return -1;
-            }
-            else if (ctrl.testStatus === 'total') {
-                return ctrl.caps[status].count;
-            }
-            else if (ctrl.testStatus === 'passed') {
-                return ctrl.caps[status].passedCount;
-            }
-            else if (ctrl.testStatus === 'not passed') {
-                return ctrl.caps[status].count -
-                  ctrl.caps[status].passedCount;
-            }
-            else if (ctrl.testStatus === 'flagged') {
-                return ctrl.caps[status].flagFailCount +
-                  ctrl.caps[status].flagPassCount;
-            }
-            else {
-                return -1;
-            }
-        }
-
-        /**
-         * This will open the modal that will show the full list of passed
-         * tests for the current results.
-         */
-        function openFullTestListModal() {
-            $uibModal.open({
-                templateUrl: '/components/results-report/partials' +
-                        '/fullTestListModal.html',
-                backdrop: true,
-                windowClass: 'modal',
-                animation: true,
-                controller: 'FullTestListModalController as modal',
-                size: 'lg',
-                resolve: {
-                    tests: function () {
-                        return ctrl.resultsData.results;
-                    }
-                }
-            });
-        }
-
-        /**
-         * This will open the modal that will all a user to edit test run
-         * metadata.
-         */
-        function openEditTestModal() {
-            $uibModal.open({
-                templateUrl: '/components/results-report/partials' +
-                        '/editTestModal.html',
-                backdrop: true,
-                windowClass: 'modal',
-                animation: true,
-                controller: 'EditTestModalController as modal',
-                size: 'lg',
-                resolve: {
-                    resultsData: function () {
-                        return ctrl.resultsData;
-                    }
-                }
-            });
-        }
-
-        getResults();
-    }
-
-    angular
-        .module('testapiApp')
-        .controller('FullTestListModalController', FullTestListModalController);
-
-    FullTestListModalController.$inject = ['$uibModalInstance', 'tests'];
-
-    /**
-     * Full Test List Modal Controller
-     * This controller is for the modal that appears if a user wants to see the
-     * full list of passed tests on a report page.
-     */
-    function FullTestListModalController($uibModalInstance, tests) {
-        var ctrl = this;
-
-        ctrl.tests = tests;
-
-        /**
-         * This function will close/dismiss the modal.
-         */
-        ctrl.close = function () {
-            $uibModalInstance.dismiss('exit');
-        };
-
-        /**
-         * This function will return a string representing the sorted
-         * tests list separated by newlines.
-         */
-        ctrl.getTestListString = function () {
-            return ctrl.tests.sort().join('\n');
-        };
-    }
-
-    angular
-        .module('testapiApp')
-        .controller('EditTestModalController', EditTestModalController);
-
-    EditTestModalController.$inject = [
-        '$uibModalInstance', '$http', '$state', 'raiseAlert',
-        'testapiApiUrl', 'resultsData'
-    ];
-
-    /**
-     * Edit Test Modal Controller
-     * This controller is for the modal that appears if a user wants to edit
-     * test run metadata.
-     */
-    function EditTestModalController($uibModalInstance, $http, $state,
-        raiseAlert, testapiApiUrl, resultsData) {
-
-        var ctrl = this;
-
-        ctrl.getVersionList = getVersionList;
-        ctrl.getUserProducts = getUserProducts;
-        ctrl.associateProductVersion = associateProductVersion;
-        ctrl.getProductVersions = getProductVersions;
-        ctrl.saveChanges = saveChanges;
-
-        ctrl.resultsData = resultsData;
-        ctrl.metaCopy = angular.copy(resultsData.meta);
-        ctrl.prodVersionCopy = angular.copy(resultsData.product_version);
-
-        ctrl.getVersionList();
-        ctrl.getUserProducts();
-
-        /**
-         * Retrieve an array of available capability files from the TestAPI
-         * API server, sort this array reverse-alphabetically, and store it in
-         * a scoped variable.
-         * Sample API return array: ["2015.03.json", "2015.04.json"]
-         */
-        function getVersionList() {
-            if (ctrl.versionList) {
-                return;
-            }
-            var content_url = testapiApiUrl + '/guidelines';
-            ctrl.versionsRequest =
-                $http.get(content_url).success(function (data) {
-                    ctrl.versionList = data.sort().reverse();
-                }).error(function (error) {
-                    raiseAlert('danger', error.title,
-                               'Unable to retrieve version list');
-                });
-        }
-
-        /**
-         * Get products user has management rights to or all products depending
-         * on the passed in parameter value.
-         */
-        function getUserProducts() {
-            var contentUrl = testapiApiUrl + '/products';
-            ctrl.productsRequest =
-                $http.get(contentUrl).success(function (data) {
-                    ctrl.products = {};
-                    angular.forEach(data.products, function(prod) {
-                        if (prod.can_manage) {
-                            ctrl.products[prod.id] = prod;
-                        }
-                    });
-                    if (ctrl.prodVersionCopy) {
-                        ctrl.selectedProduct = ctrl.products[
-                            ctrl.prodVersionCopy.product_info.id
-                        ];
-                    }
-                    ctrl.getProductVersions();
-                }).error(function (error) {
-                    ctrl.products = null;
-                    ctrl.showError = true;
-                    ctrl.error =
-                        'Error retrieving Products listing from server: ' +
-                        angular.toJson(error);
-                });
-        }
-
-        /**
-         * Send a PUT request to the API server to associate a product with
-         * a test result.
-         */
-        function associateProductVersion() {
-            var verId = (ctrl.selectedVersion ?
-                         ctrl.selectedVersion.id : null);
-            var testId = resultsData.id;
-            var url = testapiApiUrl + '/results/' + testId;
-            ctrl.associateRequest = $http.put(url, {'product_version_id':
-                                                    verId})
-                .error(function (error) {
-                    ctrl.showError = true;
-                    ctrl.showSuccess = false;
-                    ctrl.error =
-                        'Error associating product version with test run: ' +
-                        angular.toJson(error);
-                });
-        }
-
-        /**
-         * Get all versions for a product.
-         */
-        function getProductVersions() {
-            if (!ctrl.selectedProduct) {
-                ctrl.productVersions = [];
-                ctrl.selectedVersion = null;
-                return;
-            }
-
-            var url = testapiApiUrl + '/products/' +
-                ctrl.selectedProduct.id + '/versions';
-            ctrl.getVersionsRequest = $http.get(url)
-                .success(function (data) {
-                    ctrl.productVersions = data;
-                    if (ctrl.prodVersionCopy &&
-                        ctrl.prodVersionCopy.product_info.id ==
-                        ctrl.selectedProduct.id) {
-                        ctrl.selectedVersion = ctrl.prodVersionCopy;
-                    }
-                    else {
-                        angular.forEach(data, function(ver) {
-                            if (!ver.version) {
-                                ctrl.selectedVersion = ver;
-                            }
-                        });
-                    }
-                }).error(function (error) {
-                    raiseAlert('danger', error.title, error.detail);
-                });
-        }
-
-        /**
-         * Send a PUT request to the server with the changes.
-         */
-        function saveChanges() {
-            ctrl.showError = false;
-            ctrl.showSuccess = false;
-            var metaBaseUrl = [
-                testapiApiUrl, '/results/', resultsData.id, '/meta/'
-            ].join('');
-            var metaFields = ['target', 'guideline', 'shared'];
-            var meta = ctrl.metaCopy;
-            angular.forEach(metaFields, function(field) {
-                var oldMetaValue = (field in ctrl.resultsData.meta) ?
-                    ctrl.resultsData.meta[field] : '';
-                if (field in meta && oldMetaValue != meta[field]) {
-                    var metaUrl = metaBaseUrl + field;
-                    if (meta[field]) {
-                        ctrl.assocRequest = $http.post(metaUrl, meta[field])
-                            .success(function(data) {
-                                ctrl.resultsData.meta[field] = meta[field];
-                            })
-                            .error(function (error) {
-                                ctrl.showError = true;
-                                ctrl.showSuccess = false;
-                                ctrl.error =
-                                    'Error associating metadata with ' +
-                                    'test run: ' + angular.toJson(error);
-                            });
-                    }
-                    else {
-                        ctrl.unassocRequest = $http.delete(metaUrl)
-                            .success(function (data) {
-                                delete ctrl.resultsData.meta[field];
-                                delete meta[field];
-                            })
-                            .error(function (error) {
-                                ctrl.showError = true;
-                                ctrl.showSuccess = false;
-                                ctrl.error =
-                                    'Error associating metadata with ' +
-                                    'test run: ' + angular.toJson(error);
-                            });
-                    }
-                }
-            });
-            ctrl.associateProductVersion();
-            if (!ctrl.showError) {
-                ctrl.showSuccess = true;
-                $state.reload();
-            }
-        }
-
-        /**
-         * This function will close/dismiss the modal.
-         */
-        ctrl.close = function () {
-            $uibModalInstance.dismiss('exit');
-        };
-    }
-})();
index ac29aca..e15fff6 100644 (file)
         <script src="testapi-ui/shared/alerts/alertModalFactory.js"></script>
         <script src="testapi-ui/shared/alerts/confirmModalFactory.js"></script>
         <script src="testapi-ui/components/pods/podsController.js"></script>
+        <script src="testapi-ui/components/projects/projectsController.js"></script>
+        <script src="testapi-ui/components/projects/project/projectController.js"></script>
         <script src="testapi-ui/components/results/resultsController.js"></script>
-        <script src="testapi-ui/components/results-report/resultsReportController.js"></script>
         <script src="testapi-ui/components/profile/profileController.js"></script>
         <script src="testapi-ui/components/auth-failure/authFailureController.js"></script>
         <script src="testapi-ui/components/logout/logoutController.js"></script>
-        <script src="testapi-ui/components/projects/projectsController.js"></script>
-        <script src="testapi-ui/components/projects/project/projectController.js"></script>
 
         <!-- Filters -->
         <script src="testapi-ui/shared/filters.js"></script>
index 4b3f8dd..d0501a2 100644 (file)
@@ -18,33 +18,10 @@ TestAPI
             <li ng-class="{ active: header.isActive('/')}"><a ui-sref="home">Home</a></li>
             <li ng-class="{ active: header.isActive('/about')}"><a ui-sref="about">About</a></li>
             <li ng-class="{ active: header.isActive('/pods')}"><a ui-sref="pods">Pods</a></li>
-            <li ng-class="{ active: header.isActive('/community_results')}"><a ui-sref="communityResults">Community Results</a></li>
             <li ng-class="{ active: header.isActive('/projects')}"><a ui-sref="projects">Projects</a></li>
-            <!--
-            <li ng-class="{ active: header.isCatalogActive('public')}" class="dropdown" uib-dropdown>
-                <a role="button" class="dropdown-toggle" uib-dropdown-toggle>
-                    Catalog <strong class="caret"></strong>
-                </a>
-                <ul class="dropdown-menu">
-                    <li><a ui-sref="publicVendors">Vendors</a></li>
-                    <li><a ui-sref="publicProducts">Products</a></li>
-                </ul>
-            </li>
-            -->
+              <li ng-class="{ active: header.isActive('/results')}"><a ui-sref="results">Results</a></li>
           </ul>
           <ul class="nav navbar-nav navbar-right">
-            <li ng-class="{ active: header.isActive('/user_results')}" ng-if="auth.isAuthenticated"><a ui-sref="userResults">My Results</a></li>
-            <!--
-            <li ng-if="auth.isAuthenticated" ng-class="{ active: header.isCatalogActive('user')}" class="dropdown" uib-dropdown>
-                <a role="button" class="dropdown-toggle" uib-dropdown-toggle>
-                    My Catalog <strong class="caret"></strong>
-                </a>
-                <ul class="dropdown-menu">
-                    <li><a ui-sref="userVendors">My Vendors</a></li>
-                    <li><a ui-sref="userProducts">My Products</a></li>
-                </ul>
-            </li>
-            -->
             <li ng-class="{ active: header.isActive('/profile')}" ng-if="auth.isAuthenticated"><a ui-sref="profile">Profile</a></li>
             <li ng-if="auth.isAuthenticated"><a href="" ng-click="auth.doSignOut()">Sign Out</a></li>
             <li ng-if="!auth.isAuthenticated"><a href="" ng-click="auth.doSignIn()">Sign In / Sign Up</a></li>
index 0a14a41..c998255 100644 (file)
@@ -30,7 +30,6 @@
         var ctrl = this;
 
         ctrl.isActive = isActive;
-        ctrl.isCatalogActive = isCatalogActive;
 
         /** Whether the Navbar is collapsed for small displays. */
         ctrl.navbarCollapsed = true;
             }
             return false;
         }
-
-        /** This determines the active state for the catalog dropdown. Type
-         * parameter should be passed in to specify if the catalog is the
-         * public or user one.
-         */
-        function isCatalogActive(type) {
-            return ctrl.isActive('/' + type + '_vendors')
-                   || ctrl.isActive('/' + type + '_products');
-        }
     }
 })();