Merge pull request #1853 from iminoso/skeleton-experiment

Add skeleton experiment for new repo page
This commit is contained in:
Ian Minoso 2016-09-20 18:25:50 -04:00 committed by GitHub
commit 502fa23d31
5 changed files with 127 additions and 85 deletions

View file

@ -204,6 +204,9 @@ quayApp.config(['$routeProvider', '$locationProvider', 'pages', function($routeP
// Enterprise marketing page
.route('/enterprise', 'enterprise')
// Public Repo Experiments
.route('/__exp/publicRepo', 'public-repo-exp')
// Default: Redirect to the landing page
.otherwise({redirectTo: '/'});
}]);

View file

@ -0,0 +1,19 @@
(function() {
/**
* Experiment enable new public repo
*/
angular.module('quayPages').config(['pages', function(pages) {
pages.create('public-repo-exp', 'public-repo-exp.html', ExpCtrl, {
'newLayout': true
});
}]);
function ExpCtrl($scope, CookieService) {
$scope.isEnabled = CookieService.get('quay.public-repo-exp') == 'true';
$scope.setEnabled = function(value) {
$scope.isEnabled = value;
CookieService.putPermanent('quay.public-repo-exp', value.toString());
};
}
}());

View file

@ -7,10 +7,10 @@
'newLayout': true,
'title': '{{ namespace }}/{{ name }}',
'description': 'Repository {{ namespace }}/{{ name }}'
})
});
}]);
function RepoViewCtrl($scope, $routeParams, $location, $timeout, ApiService, UserService, AngularPollChannel, ImageLoaderService) {
function RepoViewCtrl($scope, $routeParams, $location, $timeout, ApiService, UserService, AngularPollChannel, ImageLoaderService, CookieService) {
$scope.namespace = $routeParams.namespace;
$scope.name = $routeParams.name;
@ -60,6 +60,10 @@
$scope.repositoryResource = ApiService.getRepoAsResource(params).get(function(repo) {
$scope.repository = repo;
$scope.viewScope.repository = repo;
$scope.publicRepoExperiment = CookieService.get('quay.public-repo-exp') == 'true';
// Flag for new repo page experiment
$scope.newRepoExperiment = $scope.repository.is_public && $scope.user.username != $scope.repository.namespace && $scope.publicRepoExperiment;
// Load the remainder of the data async, so we don't block the initial view from
// showing.

View file

@ -0,0 +1,10 @@
<div class="page-content">
<div class="cor-title">
<span class="cor-title-link"></span>
<span class="cor-title-content">Experiment: New Public Repo Page Layout</span>
</div>
<div class="co-main-content-panel">
<button class="btn btn-success" ng-if="!isEnabled" ng-click="setEnabled(true)">Enable Experiment</button>
<button class="btn btn-failure" ng-if="isEnabled" ng-click="setEnabled(false)">Disable Experiment</button>
</div>
</div>

View file

@ -2,6 +2,11 @@
resource="repositoryResource"
error-message="'Repository not found'">
<div class="page-content">
<!-- New Public Repo Page experiment -->
<div ng-if="newRepoExperiment">
</div>
<!-- Old Repo Page -->
<div ng-if="!newRepoExperiment">
<div class="cor-title">
<span class="cor-title-link">
<a class="back-link" href="/repository">
@ -101,3 +106,4 @@
</div>
</div>
</div>
</div>