diff options
Diffstat (limited to 'app/assets')
10 files changed, 109 insertions, 43 deletions
diff --git a/app/assets/javascripts/ide/components/jobs/detail.vue b/app/assets/javascripts/ide/components/jobs/detail.vue index 504391ffdc7..975d54c7a4e 100644 --- a/app/assets/javascripts/ide/components/jobs/detail.vue +++ b/app/assets/javascripts/ide/components/jobs/detail.vue @@ -79,7 +79,7 @@ export default { <icon name="chevron-left" /> {{ __('View jobs') }} </button> </header> - <div class="top-bar d-flex border-left-0"> + <div class="top-bar d-flex border-left-0 mr-3"> <job-description :job="detailJob" /> <div class="controllers ml-auto"> <a @@ -97,7 +97,7 @@ export default { <scroll-button :disabled="isScrolledToBottom" direction="down" @click="scrollDown" /> </div> </div> - <pre ref="buildTrace" class="build-trace mb-0 h-100" @scroll="scrollBuildLog"> + <pre ref="buildTrace" class="build-trace mb-0 h-100 mr-3" @scroll="scrollBuildLog"> <code v-show="!detailJob.isLoading" class="bash" diff --git a/app/assets/javascripts/registry/explorer/index.js b/app/assets/javascripts/registry/explorer/index.js index 9269aa074f8..2bba3ee4ff9 100644 --- a/app/assets/javascripts/registry/explorer/index.js +++ b/app/assets/javascripts/registry/explorer/index.js @@ -19,7 +19,7 @@ export default () => { const { endpoint } = el.dataset; const store = createStore(); - const router = createRouter(endpoint, store); + const router = createRouter(endpoint); store.dispatch('setInitialState', el.dataset); const attachMainComponent = () => diff --git a/app/assets/javascripts/registry/explorer/pages/details.vue b/app/assets/javascripts/registry/explorer/pages/details.vue index 1d4dcd9a7a2..df29ee44419 100644 --- a/app/assets/javascripts/registry/explorer/pages/details.vue +++ b/app/assets/javascripts/registry/explorer/pages/details.vue @@ -157,6 +157,9 @@ export default { return config; }, }, + mounted() { + this.requestTagsList({ params: this.$route.params.id }); + }, methods: { ...mapActions(['requestTagsList', 'requestDeleteTag', 'requestDeleteTags']), setModalDescription(itemIndex = -1) { diff --git a/app/assets/javascripts/registry/explorer/pages/list.vue b/app/assets/javascripts/registry/explorer/pages/list.vue index 8923c305b2d..e932544feb8 100644 --- a/app/assets/javascripts/registry/explorer/pages/list.vue +++ b/app/assets/javascripts/registry/explorer/pages/list.vue @@ -103,8 +103,16 @@ export default { : DELETE_IMAGE_ERROR_MESSAGE; }, }, + mounted() { + this.loadImageList(this.$route.name); + }, methods: { ...mapActions(['requestImagesList', 'requestDeleteImage']), + loadImageList(fromName) { + if (!fromName || !this.images?.length) { + this.requestImagesList(); + } + }, deleteImage(item) { this.track('click_button'); this.itemToDelete = item; diff --git a/app/assets/javascripts/registry/explorer/router.js b/app/assets/javascripts/registry/explorer/router.js index 28df3177df4..478eaca1a68 100644 --- a/app/assets/javascripts/registry/explorer/router.js +++ b/app/assets/javascripts/registry/explorer/router.js @@ -7,7 +7,7 @@ import { decodeAndParse } from './utils'; Vue.use(VueRouter); -export default function createRouter(base, store) { +export default function createRouter(base) { const router = new VueRouter({ base, mode: 'history', @@ -20,12 +20,6 @@ export default function createRouter(base, store) { nameGenerator: () => s__('ContainerRegistry|Container Registry'), root: true, }, - beforeEnter: (to, from, next) => { - if (!from.name || !store.state.images?.length) { - store.dispatch('requestImagesList'); - } - next(); - }, }, { name: 'details', @@ -34,10 +28,6 @@ export default function createRouter(base, store) { meta: { nameGenerator: route => decodeAndParse(route.params.id).name, }, - beforeEnter: (to, from, next) => { - store.dispatch('requestTagsList', { params: to.params.id }); - next(); - }, }, ], }); diff --git a/app/assets/javascripts/registry/explorer/stores/index.js b/app/assets/javascripts/registry/explorer/stores/index.js index b3ff2e6e002..153032e37d3 100644 --- a/app/assets/javascripts/registry/explorer/stores/index.js +++ b/app/assets/javascripts/registry/explorer/stores/index.js @@ -15,4 +15,5 @@ export const createStore = () => mutations, }); +// Deprecated and to be removed export default createStore(); diff --git a/app/assets/javascripts/snippets/components/snippet_header.vue b/app/assets/javascripts/snippets/components/snippet_header.vue index 615983ed3cf..46ab04c9b19 100644 --- a/app/assets/javascripts/snippets/components/snippet_header.vue +++ b/app/assets/javascripts/snippets/components/snippet_header.vue @@ -10,6 +10,7 @@ import { GlDropdown, GlDropdownItem, GlButton, + GlTooltipDirective, } from '@gitlab/ui'; import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue'; @@ -30,6 +31,9 @@ export default { TimeAgoTooltip, GlButton, }, + directives: { + GlTooltip: GlTooltipDirective, + }, apollo: { canCreateSnippet: { query() { @@ -67,6 +71,10 @@ export default { condition: this.snippet.userPermissions.updateSnippet, text: __('Edit'), href: this.editLink, + disabled: this.snippet.blob.binary, + title: this.snippet.blob.binary + ? __('Snippets with non-text files can only be edited via Git.') + : undefined, }, { condition: this.snippet.userPermissions.adminSnippet, @@ -186,18 +194,24 @@ export default { <div class="detail-page-header-actions"> <div class="d-none d-sm-flex"> <template v-for="(action, index) in personalSnippetActions"> - <gl-button + <div v-if="action.condition" :key="index" - :disabled="action.disabled" - :variant="action.variant" - :category="action.category" - :class="action.cssClass" - :href="action.href" - @click="action.click ? action.click() : undefined" + v-gl-tooltip + :title="action.title" + class="d-inline-block" > - {{ action.text }} - </gl-button> + <gl-button + :disabled="action.disabled" + :variant="action.variant" + :category="action.category" + :class="action.cssClass" + :href="action.href" + @click="action.click ? action.click() : undefined" + > + {{ action.text }} + </gl-button> + </div> </template> </div> <div class="d-block d-sm-none dropdown"> @@ -205,6 +219,8 @@ export default { <gl-dropdown-item v-for="(action, index) in personalSnippetActions" :key="index" + :disabled="action.disabled" + :title="action.title" :href="action.href" @click="action.click ? action.click() : undefined" >{{ action.text }}</gl-dropdown-item diff --git a/app/assets/stylesheets/page_bundles/_ide_mixins.scss b/app/assets/stylesheets/page_bundles/_ide_mixins.scss index 9465dd5bed6..48b8a7230b1 100644 --- a/app/assets/stylesheets/page_bundles/_ide_mixins.scss +++ b/app/assets/stylesheets/page_bundles/_ide_mixins.scss @@ -9,7 +9,6 @@ top: 0; font-size: 12px; border-top-right-radius: $border-radius-default; - margin-left: -$gl-padding; .controllers { @include build-controllers(15px, center, false, 0, inline, 0); diff --git a/app/assets/stylesheets/page_bundles/ide.scss b/app/assets/stylesheets/page_bundles/ide.scss index c5869880af9..d0660422f7e 100644 --- a/app/assets/stylesheets/page_bundles/ide.scss +++ b/app/assets/stylesheets/page_bundles/ide.scss @@ -890,11 +890,15 @@ $ide-commit-header-height: 48px; .multi-file-commit-panel-inner { width: 350px; - padding: $grid-size $gl-padding; + padding: $grid-size 0; background-color: $white; border-left: 1px solid $white-dark; } + .ide-right-sidebar-jobs-detail { + padding-bottom: 0; + } + .ide-right-sidebar-clientside { padding: 0; } @@ -915,15 +919,12 @@ $ide-commit-header-height: 48px; margin: 0; } } - - .build-trace { - margin-left: -$gl-padding; - } } .ide-pipeline-list { flex: 1; overflow: auto; + padding: 0 $gl-padding; } .ide-pipeline-header { @@ -966,6 +967,7 @@ $ide-commit-header-height: 48px; .ide-job-header { min-height: 60px; + padding: 0 $gl-padding; } .ide-nav-form { diff --git a/app/assets/stylesheets/page_bundles/themes/_dark.scss b/app/assets/stylesheets/page_bundles/themes/_dark.scss index 66b4b745532..634f18ee1bd 100644 --- a/app/assets/stylesheets/page_bundles/themes/_dark.scss +++ b/app/assets/stylesheets/page_bundles/themes/_dark.scss @@ -33,7 +33,7 @@ $diff-insert: rgba(155, 185, 85, 0.2); $diff-remove: rgba(255, 0, 0, 0.2); - a { + a:not(.btn) { color: $link-color; } @@ -57,27 +57,46 @@ textarea, .md-area.is-focused, .ide-entry-dropdown-toggle, - .nav-links:not(.quick-links) li:not(.md-header-toolbar) a:hover, .dropdown-menu li button, .ide-merge-request-project-path, .dropdown-menu-selectable li a.is-active, .dropdown-menu-inner-title, - .dropdown-menu-inner-content { + .dropdown-menu-inner-content, + .nav-links:not(.quick-links) li:not(.md-header-toolbar) a, + .nav-links:not(.quick-links) li:not(.md-header-toolbar) a:hover, + .nav-links:not(.quick-links) li:not(.md-header-toolbar) a.active .badge.badge-pill, + .nav-links:not(.quick-links) li:not(.md-header-toolbar) a:hover .badge.badge-pill, + .badge.badge-pill, + .ide-navigator-button, + .bs-callout, + .ide-navigator-btn, + .ide-pipeline .top-bar, + .ide-pipeline .top-bar .controllers .controllers-buttons { color: $text-color; } + .drag-handle:hover, + .card-header .badge.badge-pill { + background-color: $dropdown-hover-background; + } + .modal-body { color: $gl-text-color; } .dropdown-menu-toggle svg, .dropdown-menu-toggle svg:hover, - .ide-tree-header svg, + .ide-tree-header:not(.ide-pipeline-header) svg, .file-row .file-row-icon svg, - .file-row:hover .file-row-icon svg { + .file-row:hover .file-row-icon svg, + .controllers-buttons svg { fill: $text-color; } + .ide-pipeline svg { + --svg-status-bg: transparent; + } + .multi-file-tab-close:hover { background-color: $input-border; } @@ -118,7 +137,12 @@ .ide-commit-editor-header, .ide-file-templates, .ide-entry-dropdown-toggle, - .ide-staged-action-btn { + .ide-staged-action-btn, + .badge.badge-pill, + .card-header, + .bs-callout, + .ide-pipeline .top-bar, + .ide-terminal .top-bar { background-color: $background; } @@ -126,6 +150,18 @@ background-color: inherit; } + .bs-callout { + border-color: $dropdown-background; + + code { + background-color: $dropdown-background; + } + } + + .nav-links:not(.quick-links) li:not(.md-header-toolbar) a:hover { + border-color: $dropdown-hover-background; + } + .ide-sidebar-link:hover, .multi-file-tabs li { background-color: $background-hover; @@ -144,7 +180,10 @@ .ide-sidebar-link.active::after, .ide-right-sidebar .multi-file-commit-panel-inner, .common-note-form .md-area, - .ide-commit-message-field { + .ide-commit-message-field, + .card, + .multi-file-commit-panel-success-message, + .ide-preview-header { background-color: $highlight-background; } @@ -163,7 +202,12 @@ .multi-file-tabs li, .ide-status-bar, .ide-commit-editor-header, - .ide-file-templates { + .ide-file-templates, + .card, + .card-header, + .ide-job-item:not(:last-child), + .ide-terminal .top-bar, + .ide-pipeline .top-bar { border-color: $border-color; } @@ -179,7 +223,9 @@ .multi-file-commit-form > form, .multi-file-commit-form hr, .ide-commit-list-container.is-first, - .multi-file-commit-form .nav-links:not(.quick-links) { + .multi-file-commit-form .nav-links:not(.quick-links), + .ide-pipeline-list .nav-links:not(.quick-links), + .ide-preview-header { border-color: $background; } @@ -201,7 +247,8 @@ } } - .nav-links li.active a { + .nav-links li.active a, + .nav-links li a.active { border-color: $highlight-accent; color: $text-color; } @@ -223,7 +270,7 @@ input[type='search'], .filtered-search-box { border-color: $input-border; - background-color: $input-background; + background: $input-background !important; } input[type='text'], @@ -252,16 +299,16 @@ background: $gray-800; } - .btn:not(.btn-link):hover { + .btn:not(.btn-link):not([disabled]):hover { border-width: 2px; padding: 5px 9px; } - .btn.btn-sm:hover { + .btn:not([disabled]).btn-sm:hover { padding: 3px 9px; } - .btn.btn-block:hover { + .btn:not([disabled]).btn-block:hover { padding: 5px 0; } |