Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-23 21:09:25 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-23 21:09:25 +0300
commit967812838c7e7742729a4c7aeb9859f98a509622 (patch)
tree22db2e6642be51cb12535db7863331457e5523c3 /app
parent074d013e1eb3f6e0c27f96a3be8b9361254c8a98 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/diffs/components/diff_file.vue6
-rw-r--r--app/assets/javascripts/diffs/components/diff_file_header.vue8
-rw-r--r--app/assets/javascripts/diffs/components/tree_list.vue4
-rw-r--r--app/assets/javascripts/diffs/store/modules/diff_state.js1
-rw-r--r--app/assets/javascripts/diffs/store/mutations.js3
-rw-r--r--app/assets/javascripts/vue_shared/components/file_row.vue47
-rw-r--r--app/assets/stylesheets/pages/diff.scss5
-rw-r--r--app/models/project_services/teamcity_service.rb8
-rw-r--r--app/services/projects/lfs_pointers/lfs_list_service.rb4
-rw-r--r--app/workers/authorized_keys_worker.rb10
-rw-r--r--app/workers/gitlab_shell_worker.rb2
11 files changed, 64 insertions, 34 deletions
diff --git a/app/assets/javascripts/diffs/components/diff_file.vue b/app/assets/javascripts/diffs/components/diff_file.vue
index 8babc05f1ce..e09bf1f8005 100644
--- a/app/assets/javascripts/diffs/components/diff_file.vue
+++ b/app/assets/javascripts/diffs/components/diff_file.vue
@@ -58,6 +58,9 @@ export default {
hasDiff() {
return hasDiff(this.file);
},
+ isActive() {
+ return this.currentDiffFileId === this.file.file_hash;
+ },
isFileTooLarge() {
return this.file.viewer.error === diffViewerErrors.too_large;
},
@@ -143,7 +146,7 @@ export default {
<div
:id="file.file_hash"
:class="{
- 'is-active': currentDiffFileId === file.file_hash,
+ 'is-active': isActive,
}"
class="diff-file file-holder"
>
@@ -153,6 +156,7 @@ export default {
:collapsible="true"
:expanded="!isCollapsed"
:add-merge-request-buttons="true"
+ :is-active="isActive"
class="js-file-title file-title"
@toggleFile="handleToggle"
@showForkMessage="showForkMessage"
diff --git a/app/assets/javascripts/diffs/components/diff_file_header.vue b/app/assets/javascripts/diffs/components/diff_file_header.vue
index d4270960f57..bad82c84601 100644
--- a/app/assets/javascripts/diffs/components/diff_file_header.vue
+++ b/app/assets/javascripts/diffs/components/diff_file_header.vue
@@ -55,6 +55,11 @@ export default {
type: Boolean,
required: true,
},
+ isActive: {
+ type: Boolean,
+ required: false,
+ default: false,
+ },
},
computed: {
...mapGetters('diffs', ['diffHasExpandedDiscussions', 'diffHasDiscussions']),
@@ -158,6 +163,9 @@ export default {
<div
ref="header"
class="js-file-title file-title file-title-flex-parent"
+ :class="{
+ 'is-active': isActive,
+ }"
@click.self="handleToggleFile"
>
<div class="file-header-content">
diff --git a/app/assets/javascripts/diffs/components/tree_list.vue b/app/assets/javascripts/diffs/components/tree_list.vue
index eca9091f92f..fcf87807e75 100644
--- a/app/assets/javascripts/diffs/components/tree_list.vue
+++ b/app/assets/javascripts/diffs/components/tree_list.vue
@@ -26,7 +26,7 @@ export default {
};
},
computed: {
- ...mapState('diffs', ['tree', 'renderTreeList']),
+ ...mapState('diffs', ['tree', 'renderTreeList', 'currentDiffFileId', 'viewedDiffFileIds']),
...mapGetters('diffs', ['allBlobs']),
filteredTreeList() {
const search = this.search.toLowerCase().trim();
@@ -96,6 +96,8 @@ export default {
:level="0"
:hide-file-stats="hideFileStats"
:file-row-component="$options.DiffFileRow"
+ :active-file="currentDiffFileId"
+ :viewed-files="viewedDiffFileIds"
@toggleTreeOpen="toggleTreeOpen"
@clickFile="scrollToFile"
/>
diff --git a/app/assets/javascripts/diffs/store/modules/diff_state.js b/app/assets/javascripts/diffs/store/modules/diff_state.js
index 81f1506260c..f1bd9d8981d 100644
--- a/app/assets/javascripts/diffs/store/modules/diff_state.js
+++ b/app/assets/javascripts/diffs/store/modules/diff_state.js
@@ -26,6 +26,7 @@ export default () => ({
showTreeList: true,
currentDiffFileId: '',
projectPath: '',
+ viewedDiffFileIds: [],
commentForms: [],
highlightedRow: null,
renderTreeList: true,
diff --git a/app/assets/javascripts/diffs/store/mutations.js b/app/assets/javascripts/diffs/store/mutations.js
index bb4c80b5759..6438dad4f7f 100644
--- a/app/assets/javascripts/diffs/store/mutations.js
+++ b/app/assets/javascripts/diffs/store/mutations.js
@@ -284,6 +284,9 @@ export default {
},
[types.UPDATE_CURRENT_DIFF_FILE_ID](state, fileId) {
state.currentDiffFileId = fileId;
+ if (!state.viewedDiffFileIds.includes(fileId)) {
+ state.viewedDiffFileIds = [fileId, ...state.viewedDiffFileIds];
+ }
},
[types.OPEN_DIFF_FILE_COMMENT_FORM](state, formData) {
state.commentForms.push({
diff --git a/app/assets/javascripts/vue_shared/components/file_row.vue b/app/assets/javascripts/vue_shared/components/file_row.vue
index 4d60cf5b1cc..5a953b351f9 100644
--- a/app/assets/javascripts/vue_shared/components/file_row.vue
+++ b/app/assets/javascripts/vue_shared/components/file_row.vue
@@ -18,6 +18,16 @@ export default {
type: Number,
required: true,
},
+ activeFile: {
+ type: String,
+ required: false,
+ default: '',
+ },
+ viewedFiles: {
+ type: Array,
+ required: false,
+ default: () => [],
+ },
},
computed: {
isTree() {
@@ -34,8 +44,8 @@ export default {
fileClass() {
return {
'file-open': this.isBlob && this.file.opened,
- 'is-active': this.isBlob && this.file.active,
- folder: this.isTree,
+ 'is-active': this.isBlob && (this.file.active || this.activeFile === this.file.fileHash),
+ 'is-viewed': this.isBlob && this.viewedFiles.includes(this.file.fileHash),
'is-open': this.file.opened,
};
},
@@ -107,15 +117,23 @@ export default {
v-else
:class="fileClass"
:title="file.name"
- class="file-row"
+ class="file-row text-left px-1 py-2 ml-n2 d-flex align-items-center"
role="button"
@click="clickFile"
@mouseleave="$emit('mouseleave', $event)"
>
- <div class="file-row-name-container">
- <span ref="textOutput" :style="levelIndentation" class="file-row-name str-truncated">
+ <div class="file-row-name-container w-100 d-flex align-items-center">
+ <span
+ ref="textOutput"
+ :style="levelIndentation"
+ class="file-row-name str-truncated d-inline-block"
+ :class="[
+ { 'folder font-weight-normal': isTree },
+ fileClass['is-viewed'] ? 'font-weight-normal' : 'font-weight-bold',
+ ]"
+ >
<file-icon
- class="file-row-icon"
+ class="file-row-icon align-middle mr-1"
:class="{ 'text-secondary': file.type === 'tree' }"
:file-name="file.name"
:loading="file.loading"
@@ -132,14 +150,8 @@ export default {
<style>
.file-row {
- display: flex;
- align-items: center;
height: 32px;
- padding: 4px 8px;
- margin-left: -8px;
- margin-right: -8px;
border-radius: 3px;
- text-align: left;
cursor: pointer;
}
@@ -157,24 +169,15 @@ export default {
}
.file-row-name-container {
- display: flex;
- width: 100%;
- align-items: center;
overflow: visible;
}
.file-row-name {
- display: inline-block;
flex: 1;
max-width: inherit;
- height: 19px;
+ height: 20px;
line-height: 16px;
text-overflow: ellipsis;
white-space: nowrap;
}
-
-.file-row-name .file-row-icon {
- margin-right: 2px;
- vertical-align: middle;
-}
</style>
diff --git a/app/assets/stylesheets/pages/diff.scss b/app/assets/stylesheets/pages/diff.scss
index 0c043e4f3fb..991ee841398 100644
--- a/app/assets/stylesheets/pages/diff.scss
+++ b/app/assets/stylesheets/pages/diff.scss
@@ -69,6 +69,11 @@
}
}
+ .file-title.is-active,
+ .file-title-flex-parent.is-active {
+ background-color: $gray-200;
+ }
+
@media (min-width: map-get($grid-breakpoints, md)) {
&.conflict .file-title,
&.conflict .file-title-flex-parent {
diff --git a/app/models/project_services/teamcity_service.rb b/app/models/project_services/teamcity_service.rb
index 68c07fa37f2..209b691ef98 100644
--- a/app/models/project_services/teamcity_service.rb
+++ b/app/models/project_services/teamcity_service.rb
@@ -86,7 +86,11 @@ class TeamcityService < CiService
def calculate_reactive_cache(sha, ref)
response = get_path("httpAuth/app/rest/builds/branch:unspecified:any,revision:#{sha}")
- { build_page: read_build_page(response), commit_status: read_commit_status(response) }
+ if response
+ { build_page: read_build_page(response), commit_status: read_commit_status(response) }
+ else
+ { build_page: teamcity_url, commit_status: :error }
+ end
end
def execute(data)
@@ -149,7 +153,7 @@ class TeamcityService < CiService
end
def get_path(path)
- Gitlab::HTTP.get(build_url(path), verify: false, basic_auth: basic_auth)
+ Gitlab::HTTP.try_get(build_url(path), verify: false, basic_auth: basic_auth, extra_log_info: { project_id: project_id })
end
def post_to_build_queue(data, branch)
diff --git a/app/services/projects/lfs_pointers/lfs_list_service.rb b/app/services/projects/lfs_pointers/lfs_list_service.rb
index a07fa93a279..59c86c08120 100644
--- a/app/services/projects/lfs_pointers/lfs_list_service.rb
+++ b/app/services/projects/lfs_pointers/lfs_list_service.rb
@@ -4,14 +4,12 @@
module Projects
module LfsPointers
class LfsListService < BaseService
- REV = 'HEAD'
-
# Retrieve all lfs blob pointers and returns a hash
# with the structure { lfs_file_oid => lfs_file_size }
def execute
return {} unless project&.lfs_enabled?
- Gitlab::Git::LfsChanges.new(project.repository, REV)
+ Gitlab::Git::LfsChanges.new(project.repository)
.all_pointers
.map! { |blob| [blob.lfs_oid, blob.lfs_size] }
.to_h
diff --git a/app/workers/authorized_keys_worker.rb b/app/workers/authorized_keys_worker.rb
index b2333033e56..eabfd89ba60 100644
--- a/app/workers/authorized_keys_worker.rb
+++ b/app/workers/authorized_keys_worker.rb
@@ -3,7 +3,7 @@
class AuthorizedKeysWorker
include ApplicationWorker
- PERMITTED_ACTIONS = [:add_key, :remove_key].freeze
+ PERMITTED_ACTIONS = %w[add_key remove_key].freeze
feature_category :source_code_management
urgency :high
@@ -13,11 +13,13 @@ class AuthorizedKeysWorker
def perform(action, *args)
return unless Gitlab::CurrentSettings.authorized_keys_enabled?
- case action
- when :add_key
+ case action.to_s
+ when 'add_key'
authorized_keys.add_key(*args)
- when :remove_key
+ when 'remove_key'
authorized_keys.remove_key(*args)
+ else
+ raise "Unknown action: #{action.inspect}"
end
end
diff --git a/app/workers/gitlab_shell_worker.rb b/app/workers/gitlab_shell_worker.rb
index 0db794793d4..b104d3c681e 100644
--- a/app/workers/gitlab_shell_worker.rb
+++ b/app/workers/gitlab_shell_worker.rb
@@ -13,7 +13,7 @@ class GitlabShellWorker # rubocop:disable Scalability/IdempotentWorker
# enqueued in the previous release, so handle them here.
#
# See https://gitlab.com/gitlab-org/gitlab/-/issues/25095 for more details
- if AuthorizedKeysWorker::PERMITTED_ACTIONS.include?(action)
+ if AuthorizedKeysWorker::PERMITTED_ACTIONS.include?(action.to_s)
AuthorizedKeysWorker.new.perform(action, *arg)
return