summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-03 06:10:30 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-03 06:10:30 +0000
commitd3a97bfbd26fe2876f64fa88d0936dfed2246fa1 (patch)
tree0d5ddf529ad894122d120b09f4f3eed31853fe32 /app
parent036de62f732d946bba13be217f5d86fe65638dc5 (diff)
downloadgitlab-ce-d3a97bfbd26fe2876f64fa88d0936dfed2246fa1.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/filtered_search/dropdown_operator.js2
-rw-r--r--app/assets/javascripts/pages/projects/blob/show/index.js12
-rw-r--r--app/assets/javascripts/repository/components/blob_content_viewer.vue75
-rw-r--r--app/assets/javascripts/repository/pages/blob.vue6
-rw-r--r--app/assets/javascripts/repository/queries/blob_info.query.graphql16
-rw-r--r--app/assets/javascripts/repository/router.js1
-rw-r--r--app/controllers/concerns/boards_actions.rb3
-rw-r--r--app/controllers/concerns/issuable_actions.rb3
-rw-r--r--app/controllers/concerns/issuable_collections_action.rb4
-rw-r--r--app/controllers/dashboard_controller.rb1
-rw-r--r--app/controllers/groups_controller.rb4
-rw-r--r--app/finders/issuable_finder.rb11
-rw-r--r--app/finders/issuables/author_filter.rb2
-rw-r--r--app/finders/issuables/base_filter.rb7
-rw-r--r--app/views/groups/issues.html.haml2
-rw-r--r--app/views/groups/merge_requests.html.haml2
-rw-r--r--app/views/projects/blob/_blob.html.haml2
17 files changed, 78 insertions, 75 deletions
diff --git a/app/assets/javascripts/filtered_search/dropdown_operator.js b/app/assets/javascripts/filtered_search/dropdown_operator.js
index 0da8cd0ad83..f933338514a 100644
--- a/app/assets/javascripts/filtered_search/dropdown_operator.js
+++ b/app/assets/javascripts/filtered_search/dropdown_operator.js
@@ -50,7 +50,7 @@ export default class DropdownOperator extends FilteredSearchDropdown {
];
const dropdownToken = this.tokenKeys.searchByKey(dropdownName.toLowerCase());
- if (gon.features?.notIssuableQueries && !dropdownToken?.hideNotEqual) {
+ if (!dropdownToken?.hideNotEqual) {
dropdownData.push({
tag: 'not-equal',
type: 'string',
diff --git a/app/assets/javascripts/pages/projects/blob/show/index.js b/app/assets/javascripts/pages/projects/blob/show/index.js
index fc2702b8c37..8a8ce70e998 100644
--- a/app/assets/javascripts/pages/projects/blob/show/index.js
+++ b/app/assets/javascripts/pages/projects/blob/show/index.js
@@ -1,25 +1,35 @@
import Vue from 'vue';
+import VueApollo from 'vue-apollo';
import PipelineTourSuccessModal from '~/blob/pipeline_tour_success_modal.vue';
import BlobViewer from '~/blob/viewer/index';
import GpgBadges from '~/gpg_badges';
+import createDefaultClient from '~/lib/graphql';
import initBlob from '~/pages/projects/init_blob';
import initWebIdeLink from '~/pages/projects/shared/web_ide_link';
import commitPipelineStatus from '~/projects/tree/components/commit_pipeline_status_component.vue';
import BlobContentViewer from '~/repository/components/blob_content_viewer.vue';
import '~/sourcegraph/load';
+Vue.use(VueApollo);
+
+const apolloProvider = new VueApollo({
+ defaultClient: createDefaultClient(),
+});
+
const viewBlobEl = document.querySelector('#js-view-blob-app');
if (viewBlobEl) {
- const { blobPath } = viewBlobEl.dataset;
+ const { blobPath, projectPath } = viewBlobEl.dataset;
// eslint-disable-next-line no-new
new Vue({
el: viewBlobEl,
+ apolloProvider,
render(createElement) {
return createElement(BlobContentViewer, {
props: {
path: blobPath,
+ projectPath,
},
});
},
diff --git a/app/assets/javascripts/repository/components/blob_content_viewer.vue b/app/assets/javascripts/repository/components/blob_content_viewer.vue
index 58b42fb7859..cef5ae41106 100644
--- a/app/assets/javascripts/repository/components/blob_content_viewer.vue
+++ b/app/assets/javascripts/repository/components/blob_content_viewer.vue
@@ -6,7 +6,6 @@ import BlobHeader from '~/blob/components/blob_header.vue';
import createFlash from '~/flash';
import { __ } from '~/locale';
import blobInfoQuery from '../queries/blob_info.query.graphql';
-import projectPathQuery from '../queries/project_path.query.graphql';
export default {
components: {
@@ -15,10 +14,7 @@ export default {
GlLoadingIcon,
},
apollo: {
- projectPath: {
- query: projectPathQuery,
- },
- blobInfo: {
+ project: {
query: blobInfoQuery,
variables() {
return {
@@ -41,41 +37,58 @@ export default {
type: String,
required: true,
},
+ projectPath: {
+ type: String,
+ required: true,
+ },
},
data() {
return {
- projectPath: '',
- blobInfo: {
- name: '',
- size: '',
- rawBlob: '',
- type: '',
- fileType: '',
- tooLarge: false,
- path: '',
- editBlobPath: '',
- ideEditPath: '',
- storedExternally: false,
- rawPath: '',
- externalStorageUrl: '',
- replacePath: '',
- deletePath: '',
- canLock: false,
- isLocked: false,
- lockLink: '',
- canModifyBlob: true,
- forkPath: '',
- simpleViewer: '',
- richViewer: '',
+ project: {
+ repository: {
+ blobs: {
+ nodes: [
+ {
+ name: '',
+ size: '',
+ rawTextBlob: '',
+ type: '',
+ fileType: '',
+ tooLarge: false,
+ path: '',
+ editBlobPath: '',
+ ideEditPath: '',
+ storedExternally: false,
+ rawPath: '',
+ externalStorageUrl: '',
+ replacePath: '',
+ deletePath: '',
+ canLock: false,
+ isLocked: false,
+ lockLink: '',
+ canModifyBlob: true,
+ forkPath: '',
+ simpleViewer: {},
+ richViewer: {},
+ },
+ ],
+ },
+ },
},
};
},
computed: {
isLoading() {
- return this.$apollo.queries.blobInfo.loading;
+ return this.$apollo.queries.project.loading;
+ },
+ blobInfo() {
+ const nodes = this.project?.repository?.blobs?.nodes;
+
+ return nodes[0] || {};
},
viewer() {
- const { fileType, tooLarge, type } = this.blobInfo;
+ const viewer = this.blobInfo.richViewer || this.blobInfo.simpleViewer;
+ const { fileType, tooLarge, type } = viewer;
return { fileType, tooLarge, type };
},
@@ -90,7 +103,7 @@ export default {
<blob-header :blob="blobInfo" />
<blob-content
:blob="blobInfo"
- :content="blobInfo.rawBlob"
+ :content="blobInfo.rawTextBlob"
:is-raw-content="true"
:active-viewer="viewer"
:loading="false"
diff --git a/app/assets/javascripts/repository/pages/blob.vue b/app/assets/javascripts/repository/pages/blob.vue
index 27af398be09..2645b294096 100644
--- a/app/assets/javascripts/repository/pages/blob.vue
+++ b/app/assets/javascripts/repository/pages/blob.vue
@@ -13,10 +13,14 @@ export default {
type: String,
required: true,
},
+ projectPath: {
+ type: String,
+ required: true,
+ },
},
};
</script>
<template>
- <blob-content-viewer :path="path" />
+ <blob-content-viewer :path="path" :project-path="projectPath" />
</template>
diff --git a/app/assets/javascripts/repository/queries/blob_info.query.graphql b/app/assets/javascripts/repository/queries/blob_info.query.graphql
index eb4b00d9251..d0c3f8d8d54 100644
--- a/app/assets/javascripts/repository/queries/blob_info.query.graphql
+++ b/app/assets/javascripts/repository/queries/blob_info.query.graphql
@@ -11,15 +11,19 @@ query getBlobInfo($projectPath: ID!, $filePath: String!) {
fileType
path
editBlobPath
- ideEditPath
storedExternally
rawPath
- externalStorageUrl
replacePath
- canModifyBlob
- forkPath
- simpleViewer
- richViewer
+ simpleViewer {
+ fileType
+ tooLarge
+ type
+ }
+ richViewer {
+ fileType
+ tooLarge
+ type
+ }
}
}
}
diff --git a/app/assets/javascripts/repository/router.js b/app/assets/javascripts/repository/router.js
index c7f7451fb55..6637d03a7a4 100644
--- a/app/assets/javascripts/repository/router.js
+++ b/app/assets/javascripts/repository/router.js
@@ -20,6 +20,7 @@ export default function createRouter(base, baseRef) {
component: BlobPage,
props: (route) => ({
path: route.params.path,
+ projectPath: base,
}),
};
diff --git a/app/controllers/concerns/boards_actions.rb b/app/controllers/concerns/boards_actions.rb
index 79e6f027c2f..7bffe1e1141 100644
--- a/app/controllers/concerns/boards_actions.rb
+++ b/app/controllers/concerns/boards_actions.rb
@@ -10,9 +10,6 @@ module BoardsActions
before_action :boards, only: :index
before_action :board, only: :show
before_action :push_licensed_features, only: [:index, :show]
- before_action do
- push_frontend_feature_flag(:not_issuable_queries, parent, default_enabled: true)
- end
end
def index
diff --git a/app/controllers/concerns/issuable_actions.rb b/app/controllers/concerns/issuable_actions.rb
index 57d4203ad43..e465e7c450a 100644
--- a/app/controllers/concerns/issuable_actions.rb
+++ b/app/controllers/concerns/issuable_actions.rb
@@ -8,9 +8,6 @@ module IssuableActions
before_action :authorize_destroy_issuable!, only: :destroy
before_action :check_destroy_confirmation!, only: :destroy
before_action :authorize_admin_issuable!, only: :bulk_update
- before_action do
- push_frontend_feature_flag(:not_issuable_queries, @project, default_enabled: true)
- end
end
def show
diff --git a/app/controllers/concerns/issuable_collections_action.rb b/app/controllers/concerns/issuable_collections_action.rb
index 7ed66027da3..ca2979a5a29 100644
--- a/app/controllers/concerns/issuable_collections_action.rb
+++ b/app/controllers/concerns/issuable_collections_action.rb
@@ -32,10 +32,6 @@ module IssuableCollectionsAction
private
- def set_not_query_feature_flag(object = nil)
- push_frontend_feature_flag(:not_issuable_queries, object, default_enabled: true)
- end
-
def sorting_field
case action_name
when 'issues'
diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb
index 29cb60ad3cc..7c9572568f1 100644
--- a/app/controllers/dashboard_controller.rb
+++ b/app/controllers/dashboard_controller.rb
@@ -11,7 +11,6 @@ class DashboardController < Dashboard::ApplicationController
before_action :projects, only: [:issues, :merge_requests]
before_action :set_show_full_reference, only: [:issues, :merge_requests]
before_action :check_filters_presence!, only: [:issues, :merge_requests]
- before_action :set_not_query_feature_flag
respond_to :html
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb
index 3fef5b9b8c5..ed8c269bebc 100644
--- a/app/controllers/groups_controller.rb
+++ b/app/controllers/groups_controller.rb
@@ -35,10 +35,6 @@ class GroupsController < Groups::ApplicationController
push_frontend_feature_flag(:vue_issuables_list, @group)
end
- before_action do
- set_not_query_feature_flag(@group)
- end
-
before_action :export_rate_limit, only: [:export, :download_export]
helper_method :captcha_required?
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb
index 40a4e2b4f26..1232297db1b 100644
--- a/app/finders/issuable_finder.rb
+++ b/app/finders/issuable_finder.rb
@@ -142,8 +142,6 @@ class IssuableFinder
end
def should_filter_negated_args?
- return false unless not_filters_enabled?
-
# API endpoints send in `nil` values so we test if there are any non-nil
not_params.present? && not_params.values.any?
end
@@ -370,8 +368,7 @@ class IssuableFinder
Issuables::AuthorFilter.new(
items,
params: original_params,
- or_filters_enabled: or_filters_enabled?,
- not_filters_enabled: not_filters_enabled?
+ or_filters_enabled: or_filters_enabled?
).filter
end
@@ -496,12 +493,6 @@ class IssuableFinder
end
end
- def not_filters_enabled?
- strong_memoize(:not_filters_enabled) do
- Feature.enabled?(:not_issuable_queries, feature_flag_scope, default_enabled: :yaml)
- end
- end
-
def feature_flag_scope
params.group || params.project
end
diff --git a/app/finders/issuables/author_filter.rb b/app/finders/issuables/author_filter.rb
index ce68dbafb95..522751a384e 100644
--- a/app/finders/issuables/author_filter.rb
+++ b/app/finders/issuables/author_filter.rb
@@ -27,7 +27,7 @@ module Issuables
end
def by_negated_author(issuables)
- return issuables unless not_filters_enabled? && not_params.present?
+ return issuables unless not_params.present?
if not_params[:author_id].present?
issuables.not_authored(not_params[:author_id])
diff --git a/app/finders/issuables/base_filter.rb b/app/finders/issuables/base_filter.rb
index 641ae2568cc..6d1a3f96062 100644
--- a/app/finders/issuables/base_filter.rb
+++ b/app/finders/issuables/base_filter.rb
@@ -4,11 +4,10 @@ module Issuables
class BaseFilter
attr_reader :issuables, :params
- def initialize(issuables, params:, or_filters_enabled: false, not_filters_enabled: false)
+ def initialize(issuables, params:, or_filters_enabled: false)
@issuables = issuables
@params = params
@or_filters_enabled = or_filters_enabled
- @not_filters_enabled = not_filters_enabled
end
def filter
@@ -28,9 +27,5 @@ module Issuables
def or_filters_enabled?
@or_filters_enabled
end
-
- def not_filters_enabled?
- @not_filters_enabled
- end
end
end
diff --git a/app/views/groups/issues.html.haml b/app/views/groups/issues.html.haml
index ae4b0807fc5..fdd6962eb21 100644
--- a/app/views/groups/issues.html.haml
+++ b/app/views/groups/issues.html.haml
@@ -1,4 +1,4 @@
-- @can_bulk_update = can?(current_user, :admin_issue, @group) && @group.feature_available?(:group_bulk_edit)
+- @can_bulk_update = can?(current_user, :admin_issue, @group) && @group.licensed_feature_available?(:group_bulk_edit)
- page_title _("Issues")
- add_page_specific_style 'page_bundles/issues_list'
diff --git a/app/views/groups/merge_requests.html.haml b/app/views/groups/merge_requests.html.haml
index 15864e18f7c..33f836c2de0 100644
--- a/app/views/groups/merge_requests.html.haml
+++ b/app/views/groups/merge_requests.html.haml
@@ -1,4 +1,4 @@
-- @can_bulk_update = can?(current_user, :admin_merge_request, @group) && @group.feature_available?(:group_bulk_edit)
+- @can_bulk_update = can?(current_user, :admin_merge_request, @group) && @group.licensed_feature_available?(:group_bulk_edit)
- page_title _("Merge requests")
diff --git a/app/views/projects/blob/_blob.html.haml b/app/views/projects/blob/_blob.html.haml
index 84f2d352bc9..e50b964a253 100644
--- a/app/views/projects/blob/_blob.html.haml
+++ b/app/views/projects/blob/_blob.html.haml
@@ -12,7 +12,7 @@
- if @code_navigation_path
#js-code-navigation{ data: { code_navigation_path: @code_navigation_path, blob_path: blob.path, definition_path_prefix: project_blob_path(@project, @ref) } }
- if Feature.enabled?(:refactor_blob_viewer, @project, default_enabled: :yaml)
- #js-view-blob-app{ data: { blob_path: blob.path } }
+ #js-view-blob-app{ data: { blob_path: blob.path, project_path: @project.full_path } }
.gl-spinner-container
= loading_icon(size: 'md')
- else