Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | 3x 18x 18x 13x 1x 13x 13x 13x | <script> import { GlLoadingIcon } from '@gitlab/ui'; import BlobHeaderEdit from '~/blob/components/blob_edit_header.vue'; import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; import { getBaseURL, joinPaths } from '~/lib/utils/url_utility'; import { sprintf } from '~/locale'; import { SNIPPET_BLOB_CONTENT_FETCH_ERROR } from '~/snippets/constants'; import SourceEditor from '~/vue_shared/components/source_editor.vue'; export default { components: { BlobHeaderEdit, GlLoadingIcon, SourceEditor, }, inheritAttrs: false, props: { blob: { type: Object, required: true, }, canDelete: { type: Boolean, required: false, default: true, }, showDelete: { type: Boolean, required: false, default: true, }, }, computed: { inputId() { return `${this.blob.id}_file_path`; }, }, mounted() { if (!this.blob.isLoaded) { this.fetchBlobContent(); } }, methods: { onDelete() { this.$emit('delete'); }, notifyAboutUpdates(args = {}) { this.$emit('blob-updated', args); }, fetchBlobContent() { const baseUrl = getBaseURL(); const url = joinPaths(baseUrl, this.blob.rawPath); axios .get(url, { // This prevents axios from automatically JSON.parse response transformResponse: [(f) => f], headers: { 'Cache-Control': 'no-cache' }, }) .then((res) => { this.notifyAboutUpdates({ content: res.data }); }) .catch((e) => this.alertAPIFailure(e)); }, alertAPIFailure(err) { createAlert({ message: sprintf(SNIPPET_BLOB_CONTENT_FETCH_ERROR, { err }) }); }, }, }; </script> <template> <div class="file-holder snippet" data-testid="file-holder-container"> <blob-header-edit :id="inputId" :value="blob.path" data-testid="file-name-field" :can-delete="canDelete" :show-delete="showDelete" @input="notifyAboutUpdates({ path: $event })" @delete="onDelete" /> <gl-loading-icon v-if="!blob.isLoaded" :label="__('Loading snippet')" size="lg" class="loading-animation prepend-top-20 gl-mb-6" /> <source-editor v-else :value="blob.content" :file-global-id="blob.id" :file-name="blob.path" @input="notifyAboutUpdates({ content: $event })" /> </div> </template> |