diff --git a/static/css/core-ui.css b/static/css/core-ui.css index 2bce477fd..bc016a843 100644 --- a/static/css/core-ui.css +++ b/static/css/core-ui.css @@ -75,7 +75,7 @@ } .co-nav-title .co-nav-title-content { - max-height: 50px; + height: 28px; overflow: hidden; text-overflow: ellipsis; font-size: 22px; @@ -329,6 +329,21 @@ padding: 10px; } +@media (max-width: 767px) { + .co-panel > .co-panel-body { + padding: 0px; + padding-top: 10px; + padding-bottom: 10px; + } + + .co-panel > .panel-body { + padding: 0px; + padding-top: 10px; + padding-bottom: 10px; + } +} + + .co-panel .co-panel-button-bar { margin-top: 10px; padding-top: 10px; @@ -982,6 +997,12 @@ padding-left: 28px; } +@media (max-width: 767px) { + .co-table tr.indented-row td:first-child { + padding-left: 0px; + } +} + .co-table .mobile-row { border-bottom: 2px solid #eee; padding-bottom: 10px; diff --git a/static/css/directives/repo-view/repo-panel-settings.css b/static/css/directives/repo-view/repo-panel-settings.css index 78e2c6b62..ff626b9ba 100644 --- a/static/css/directives/repo-view/repo-panel-settings.css +++ b/static/css/directives/repo-view/repo-panel-settings.css @@ -23,3 +23,17 @@ .repo-panel-settings-element .panel-section .btn .fa { margin-right: 6px; } + +.repo-panel-settings-element .delete-btn { + float: right; + margin-top: -7px !important; +} + +@media (max-width: 767px) { + .repo-panel-settings-element .delete-btn { + float: none; + margin-top: 0px !important; + margin-bottom: 20px; + display: block; + } +} \ No newline at end of file diff --git a/static/css/directives/repo-view/repo-panel-tags.css b/static/css/directives/repo-view/repo-panel-tags.css index c515b9190..2d23e76a6 100644 --- a/static/css/directives/repo-view/repo-panel-tags.css +++ b/static/css/directives/repo-view/repo-panel-tags.css @@ -83,4 +83,33 @@ .repo-panel-tags-element .tag-image-history-item .fa-circle-o { margin-right: 2px; +} + + +@media (max-width: 767px) { + .repo-panel-tags-element .tag-span i { + display: none; + } + + .repo-panel-tags-element .co-filter-box { + display: block; + float: none; + margin-top: 10px; + margin-bottom: 20px; + } + + .repo-panel-tags-element .co-filter-box input { + width: 100%; + } + + .repo-panel-tags-element .co-checked-actions .btn i { + font-size: 16px; + width: 18px; + text-align: center; + display: inline-block; + } + + .repo-panel-tags-element .co-checked-actions .btn .text { + display: none; + } } \ No newline at end of file diff --git a/static/css/directives/ui/logs-view.css b/static/css/directives/ui/logs-view.css index a561ecef7..198bad42f 100644 --- a/static/css/directives/ui/logs-view.css +++ b/static/css/directives/ui/logs-view.css @@ -25,7 +25,7 @@ } .logs-view-element .manager-header { - padding-bottom: 72px; + padding-bottom: 82px; } } diff --git a/static/css/directives/ui/repo-tag-history.css b/static/css/directives/ui/repo-tag-history.css index a0a2c2df7..e883b5c22 100644 --- a/static/css/directives/ui/repo-tag-history.css +++ b/static/css/directives/ui/repo-tag-history.css @@ -18,6 +18,26 @@ height: 40px; } +.repo-tag-history-element .co-filter-box { + float: right; +} + + +@media (max-width: 767px) { + .repo-tag-history-element .history-list { + margin: 10px; + } + + .repo-tag-history-element .history-entry .history-text { + height: 60px; + } + + .repo-tag-history-element .co-filter-box { + float: none; + display: block; + } +} + .repo-tag-history-element .history-entry.filtered-mismatch { margin-top: 10px; } diff --git a/static/css/directives/ui/repository-permissions-table.css b/static/css/directives/ui/repository-permissions-table.css index 437e6d57e..a77655ae1 100644 --- a/static/css/directives/ui/repository-permissions-table.css +++ b/static/css/directives/ui/repository-permissions-table.css @@ -12,4 +12,10 @@ left: -2px; font-size: 16px; color: #E8BB03; +} + +.repository-permissions-table .mobile-add-row { + margin-top: 6px; + padding-top: 10px; + border-top: 2px solid #eee; } \ No newline at end of file diff --git a/static/css/directives/ui/role-group.css b/static/css/directives/ui/role-group.css new file mode 100644 index 000000000..d1ed50bc6 --- /dev/null +++ b/static/css/directives/ui/role-group.css @@ -0,0 +1,52 @@ +.role-group .btn { + width: 90px; + position: relative; + text-align: left; +} + +.role-group .btn .caret { + position: absolute; + top: 15px; + right: 7px; +} + +.role-group .role-help-text { + font-size: 12px; + color: #ccc; + margin-top: 4px; + margin-bottom: 2px; +} + +.role-group .btn { + border-left: 4px solid #ccc; +} + +.role-group .btn.success { + border-left-color: #5cb85c; +} + +.role-group .btn.primary { + border-left-color: #337ab7; +} + +.role-group li a { + vertical-align: middle; +} + +.role-group li a:before { + content: ""; + border-radius: 50%; + width: 10px; + height: 10px; + background: #ccc; + display: inline-block; + margin-right: 6px; +} + +.role-group li.success a:before { + background-color: #5cb85c; +} + +.role-group li.primary a:before { + background-color: #337ab7; +} \ No newline at end of file diff --git a/static/css/pages/repo-view.css b/static/css/pages/repo-view.css index dd0c3d298..899fbb475 100644 --- a/static/css/pages/repo-view.css +++ b/static/css/pages/repo-view.css @@ -47,4 +47,4 @@ .repository-view .tag-span { white-space: nowrap; -} \ No newline at end of file +} diff --git a/static/css/pages/super-user.css b/static/css/pages/super-user.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/static/directives/image-info-sidebar.html b/static/directives/image-info-sidebar.html index 06eb56b37..ed89bb0ec 100644 --- a/static/directives/image-info-sidebar.html +++ b/static/directives/image-info-sidebar.html @@ -10,7 +10,7 @@
- + {{ imageData.id }} diff --git a/static/directives/prototype-manager.html b/static/directives/prototype-manager.html index 92efa920a..f763148e9 100644 --- a/static/directives/prototype-manager.html +++ b/static/directives/prototype-manager.html @@ -58,7 +58,9 @@ - + @@ -111,7 +113,8 @@ Permission: - + diff --git a/static/directives/repo-tag-history.html b/static/directives/repo-tag-history.html index 16d8e5e7c..aa9e49f26 100644 --- a/static/directives/repo-tag-history.html +++ b/static/directives/repo-tag-history.html @@ -1,7 +1,7 @@
- + diff --git a/static/directives/repo-view/repo-panel-builds.html b/static/directives/repo-view/repo-panel-builds.html index cd3949024..3d882cb79 100644 --- a/static/directives/repo-view/repo-panel-builds.html +++ b/static/directives/repo-view/repo-panel-builds.html @@ -41,18 +41,20 @@ style="min-width: 85px;"> Build ID - Triggered By Date Started - Tags - + @@ -60,11 +62,11 @@ {{ build.id.substr(0, 8) }} - +
{{ build.started | amCalendar }} - + {{ tag }} @@ -113,7 +115,7 @@
- +
diff --git a/static/directives/repo-view/repo-panel-settings.html b/static/directives/repo-view/repo-panel-settings.html index ce64d7e66..e73d10fa6 100644 --- a/static/directives/repo-view/repo-panel-settings.html +++ b/static/directives/repo-view/repo-panel-settings.html @@ -50,8 +50,7 @@
- @@ -61,7 +60,7 @@
-
- - - - - - + - diff --git a/static/directives/role-group.html b/static/directives/role-group.html index 8cf0f6ba2..469d819d1 100644 --- a/static/directives/role-group.html +++ b/static/directives/role-group.html @@ -1,6 +1,16 @@
- +
diff --git a/static/directives/teams-manager.html b/static/directives/teams-manager.html index bc86df5f6..7af99e024 100644 --- a/static/directives/teams-manager.html +++ b/static/directives/teams-manager.html @@ -51,7 +51,8 @@
- + diff --git a/static/js/core-ui.js b/static/js/core-ui.js index 91d0cd809..1f09b087c 100644 --- a/static/js/core-ui.js +++ b/static/js/core-ui.js @@ -754,7 +754,10 @@ angular.module("core-ui", []) displayer.removeAttr('ng-repeat'); } - displayer.append(headers[idx].clone(true).addClass('mobile-col-header')); + if (idx < headers.length) { + displayer.append(headers[idx].clone(true).addClass('mobile-col-header')); + } + displayer.append(cloneWithAttr(td, 'div', true).addClass('mobile-col-value')); div.append(displayer); }); diff --git a/static/js/directives/ui/prototype-manager.js b/static/js/directives/ui/prototype-manager.js index 13f03fd00..70b6afec8 100644 --- a/static/js/directives/ui/prototype-manager.js +++ b/static/js/directives/ui/prototype-manager.js @@ -18,12 +18,6 @@ angular.module('quay').directive('prototypeManager', function () { $scope.clearCounter = 0; $scope.newForWholeOrg = true; - $scope.roles = [ - { 'id': 'read', 'title': 'Read', 'kind': 'success' }, - { 'id': 'write', 'title': 'Write', 'kind': 'success' }, - { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } - ]; - $scope.setRole = function(role, prototype) { var params = { 'orgname': $scope.organization.name, diff --git a/static/js/directives/ui/repository-permissions-table.js b/static/js/directives/ui/repository-permissions-table.js index dd7b3417e..00f00eb51 100644 --- a/static/js/directives/ui/repository-permissions-table.js +++ b/static/js/directives/ui/repository-permissions-table.js @@ -28,13 +28,6 @@ angular.module('quay').directive('repositoryPermissionsTable', function () { 'repository': '=repository' }, controller: function($scope, $element, ApiService, Restangular, UtilService) { - // TODO(jschorr): move this to a service. - $scope.roles = [ - { 'id': 'read', 'title': 'Read', 'kind': 'success' }, - { 'id': 'write', 'title': 'Write', 'kind': 'success' }, - { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } - ]; - $scope.permissionResources = {'team': {}, 'user': {}}; $scope.permissionCache = {}; $scope.permissions = {}; diff --git a/static/js/directives/ui/repository-tokens-table.js b/static/js/directives/ui/repository-tokens-table.js index 1828c4a05..70aef7314 100644 --- a/static/js/directives/ui/repository-tokens-table.js +++ b/static/js/directives/ui/repository-tokens-table.js @@ -14,12 +14,6 @@ angular.module('quay').directive('repositoryTokensTable', function () { 'hasTokens': '=hasTokens' }, controller: function($scope, $element, ApiService, Restangular, UtilService) { - $scope.roles = [ - { 'id': 'read', 'title': 'Read', 'kind': 'success' }, - { 'id': 'write', 'title': 'Write', 'kind': 'success' }, - { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } - ]; - $scope.hasTokens = false; var loadTokens = function() { diff --git a/static/js/directives/ui/robots-manager.js b/static/js/directives/ui/robots-manager.js index 122931005..82fea6572 100644 --- a/static/js/directives/ui/robots-manager.js +++ b/static/js/directives/ui/robots-manager.js @@ -15,13 +15,6 @@ angular.module('quay').directive('robotsManager', function () { controller: function($scope, $element, ApiService, $routeParams, CreateService, Config) { $scope.ROBOT_PATTERN = ROBOT_PATTERN; - // TODO(jschorr): move this to a service. - $scope.roles = [ - { 'id': 'read', 'title': 'Read', 'kind': 'success' }, - { 'id': 'write', 'title': 'Write', 'kind': 'success' }, - { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } - ]; - $scope.robots = null; $scope.loading = false; $scope.shownRobot = null; diff --git a/static/js/directives/ui/role-group.js b/static/js/directives/ui/role-group.js index 66fd0629c..a3b1589c4 100644 --- a/static/js/directives/ui/role-group.js +++ b/static/js/directives/ui/role-group.js @@ -10,12 +10,14 @@ angular.module('quay').directive('roleGroup', function () { transclude: false, restrict: 'C', scope: { - 'roles': '=roles', + 'roles': '@roles', 'currentRole': '=currentRole', 'readOnly': '=readOnly', 'roleChanged': '&roleChanged' }, - controller: function($scope, $element) { + controller: function($scope, $element, RolesService) { + $scope.fullRoles = RolesService[$scope.roles]; + $scope.setRole = function(role) { if ($scope.currentRole == role) { return; } if ($scope.roleChanged) { @@ -24,6 +26,14 @@ angular.module('quay').directive('roleGroup', function () { $scope.currentRole = role; } }; + + $scope.getRoleInfo = function(role) { + var found = null; + $scope.fullRoles.forEach(function(r) { + if (r.id == role) { found = r; } + }); + return found; + }; } }; return directiveDefinitionObject; diff --git a/static/js/pages/org-view.js b/static/js/pages/org-view.js index 3e825d783..afd841f22 100644 --- a/static/js/pages/org-view.js +++ b/static/js/pages/org-view.js @@ -97,12 +97,6 @@ $scope.TEAM_PATTERN = TEAM_PATTERN; $rootScope.title = 'Loading...'; - $scope.teamRoles = [ - { 'id': 'member', 'title': 'Member', 'kind': 'default' }, - { 'id': 'creator', 'title': 'Creator', 'kind': 'success' }, - { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } - ]; - $scope.setRole = function(role, teamname) { var previousRole = $scope.organization.teams[teamname].role; $scope.organization.teams[teamname].role = role; diff --git a/static/js/pages/repo-admin.js b/static/js/pages/repo-admin.js index f8a0f3f45..22270bf95 100644 --- a/static/js/pages/repo-admin.js +++ b/static/js/pages/repo-admin.js @@ -110,12 +110,6 @@ }, ApiService.errorDisplay('Cannot change permission')); }; - $scope.roles = [ - { 'id': 'read', 'title': 'Read', 'kind': 'success' }, - { 'id': 'write', 'title': 'Write', 'kind': 'success' }, - { 'id': 'admin', 'title': 'Admin', 'kind': 'primary' } - ]; - $scope.setRole = function(role, entityName, kind) { var permission = $scope.permissions[kind][entityName]; var currentRole = permission.role; diff --git a/static/js/services/roles-service.js b/static/js/services/roles-service.js new file mode 100644 index 000000000..bf83e0f77 --- /dev/null +++ b/static/js/services/roles-service.js @@ -0,0 +1,20 @@ +/** + * Service which defines the various role groups. + */ +angular.module('quay').factory('RolesService', [function() { + var roleService = {}; + + roleService.repoRoles = [ + { 'id': 'read', 'title': 'Read', 'kind': 'success', 'description': 'Can view and pull from the repository' }, + { 'id': 'write', 'title': 'Write', 'kind': 'success', 'description': 'Can view, pull and push to the repository' }, + { 'id': 'admin', 'title': 'Admin', 'kind': 'primary', 'description': 'Full admin access, pull and push on the repository' } + ]; + + roleService.teamRoles = [ + { 'id': 'member', 'title': 'Member', 'kind': 'default', 'description': 'Inherits all permissions of the team' }, + { 'id': 'creator', 'title': 'Creator', 'kind': 'success', 'description': 'Member and can create new repositories' }, + { 'id': 'admin', 'title': 'Admin', 'kind': 'primary', 'description': 'Full admin access to the organization' } + ]; + + return roleService; +}]); diff --git a/static/partials/old-org-view.html b/static/partials/old-org-view.html index c5aae8994..292f3133f 100644 --- a/static/partials/old-org-view.html +++ b/static/partials/old-org-view.html @@ -37,7 +37,8 @@
- +
diff --git a/static/partials/repo-admin.html b/static/partials/repo-admin.html index eade67c50..a58bc275e 100644 --- a/static/partials/repo-admin.html +++ b/static/partials/repo-admin.html @@ -111,7 +111,9 @@
Trigger Name Dockerfile Location Tag {{ tag.name }} + {{ tag.size | bytes }} + +
-
- + @@ -127,7 +129,8 @@
- +