diff options
Diffstat (limited to 'app')
8 files changed, 64 insertions, 46 deletions
diff --git a/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js b/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js index 65ffd42fa27..734407dec45 100644 --- a/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js +++ b/app/assets/javascripts/diffs/store/getters_versions_dropdowns.js @@ -15,24 +15,19 @@ export const diffCompareDropdownTargetVersions = (state, getters) => { // startVersion only exists if the user has selected a version other // than "base" so if startVersion is null then base must be selected - const defaultMergeRefForDiffs = window.gon?.features?.defaultMergeRefForDiffs || false; const diffHeadParam = getParameterByName('diff_head'); - const diffHead = parseBoolean(diffHeadParam) || (!diffHeadParam && defaultMergeRefForDiffs); - const isBaseSelected = !state.startVersion && !diffHead; + const diffHead = parseBoolean(diffHeadParam) || !diffHeadParam; + const isBaseSelected = !state.startVersion; const isHeadSelected = !state.startVersion && diffHead; let baseVersion = null; - if ( - !defaultMergeRefForDiffs || - (defaultMergeRefForDiffs && !state.mergeRequestDiff.head_version_path) - ) { + if (!state.mergeRequestDiff.head_version_path) { baseVersion = { versionName: state.targetBranchName, version_index: DIFF_COMPARE_BASE_VERSION_INDEX, href: state.mergeRequestDiff.base_version_path, isBase: true, - selected: - isBaseSelected || (defaultMergeRefForDiffs && !state.mergeRequestDiff.head_version_path), + selected: isBaseSelected, }; } diff --git a/app/assets/stylesheets/notify.scss b/app/assets/stylesheets/notify.scss index feb4ea77e58..ca8c358d97f 100644 --- a/app/assets/stylesheets/notify.scss +++ b/app/assets/stylesheets/notify.scss @@ -40,6 +40,11 @@ pre.commit-message { color: $gl-text-color; } +.gl-label-text-scoped { + padding: 0 5px; + color: $gl-text-color; +} + .content { .markdown-code-block pre.code { padding: $gl-padding-8 $input-horizontal-padding; diff --git a/app/controllers/concerns/sessionless_authentication.rb b/app/controllers/concerns/sessionless_authentication.rb index 1f17f9f4e1b..48daacc09c2 100644 --- a/app/controllers/concerns/sessionless_authentication.rb +++ b/app/controllers/concerns/sessionless_authentication.rb @@ -26,6 +26,9 @@ module SessionlessAuthentication # for every request. If you want the token to work as a # sign in token, you can simply remove store: false. sign_in(user, store: false, message: :sessionless_sign_in) + elsif request_authenticator.can_sign_in_bot?(user) + # we suppress callbacks to avoid redirecting the bot + sign_in(user, store: false, message: :sessionless_sign_in, run_callbacks: false) end end diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index f338b77b402..c9a1473284c 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -37,7 +37,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo before_action only: [:show] do push_frontend_feature_flag(:file_identifier_hash) push_frontend_feature_flag(:merge_request_widget_graphql, project, default_enabled: :yaml) - push_frontend_feature_flag(:default_merge_ref_for_diffs, project, default_enabled: :yaml) push_frontend_feature_flag(:core_security_mr_widget_counts, project) push_frontend_feature_flag(:paginated_notes, project, default_enabled: :yaml) push_frontend_feature_flag(:confidential_notes, project, default_enabled: :yaml) @@ -553,12 +552,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo end def endpoint_metadata_url(project, merge_request) - params = request.query_parameters - params[:view] = "inline" - - if Feature.enabled?(:default_merge_ref_for_diffs, project, default_enabled: :yaml) - params = params.merge(diff_head: true) - end + params = request.query_parameters.merge(view: 'inline', diff_head: true) diffs_metadata_project_json_merge_request_path(project, merge_request, 'json', params) end diff --git a/app/helpers/sorting_helper.rb b/app/helpers/sorting_helper.rb index 4db14d5cc4d..675d289ac02 100644 --- a/app/helpers/sorting_helper.rb +++ b/app/helpers/sorting_helper.rb @@ -243,6 +243,51 @@ module SortingHelper sort_options_hash[sort_value] end + def issuable_sort_options(viewing_issues, viewing_merge_requests) + options = [ + { value: sort_value_priority, text: sort_title_priority, href: page_filter_path(sort: sort_value_priority) }, + { value: sort_value_created_date, text: sort_title_created_date, href: page_filter_path(sort: sort_value_created_date) }, + { value: sort_value_recently_updated, text: sort_title_recently_updated, href: page_filter_path(sort: sort_value_recently_updated) }, + { value: sort_value_milestone, text: sort_title_milestone, href: page_filter_path(sort: sort_value_milestone) } + ] + + options.concat([due_date_option]) if viewing_issues + + options.concat([popularity_option, label_priority_option]) + options.concat([merged_option, closed_option]) if viewing_merge_requests + options.concat([relative_position_option]) if viewing_issues + + options.concat([title_option]) + end + + def due_date_option + { value: sort_value_due_date, text: sort_title_due_date, href: page_filter_path(sort: sort_value_due_date) } + end + + def popularity_option + { value: sort_value_popularity, text: sort_title_popularity, href: page_filter_path(sort: sort_value_popularity) } + end + + def label_priority_option + { value: sort_value_label_priority, text: sort_title_label_priority, href: page_filter_path(sort: sort_value_label_priority) } + end + + def merged_option + { value: sort_value_merged_date, text: sort_title_merged_date, href: page_filter_path(sort: sort_value_merged_date) } + end + + def closed_option + { value: sort_value_closed_date, text: sort_title_closed_date, href: page_filter_path(sort: sort_value_closed_date) } + end + + def relative_position_option + { value: sort_value_relative_position, text: sort_title_relative_position, href: page_filter_path(sort: sort_value_relative_position) } + end + + def title_option + { value: sort_value_title, text: sort_title_title, href: page_filter_path(sort: sort_value_title) } + end + def sort_direction_icon(sort_value) case sort_value when sort_value_milestone, sort_value_due_date, sort_value_merged_date, sort_value_closed_date, /_asc\z/ diff --git a/app/services/merge_requests/reload_merge_head_diff_service.rb b/app/services/merge_requests/reload_merge_head_diff_service.rb index f02a9bd3139..4724dd1c068 100644 --- a/app/services/merge_requests/reload_merge_head_diff_service.rb +++ b/app/services/merge_requests/reload_merge_head_diff_service.rb @@ -9,7 +9,6 @@ module MergeRequests end def execute - return error("default_merge_ref_for_diffs feature flag is disabled") unless enabled? return error("Merge request has no merge ref head.") unless merge_request.merge_ref_head.present? error_msg = recreate_merge_head_diff @@ -23,10 +22,6 @@ module MergeRequests attr_reader :merge_request - def enabled? - Feature.enabled?(:default_merge_ref_for_diffs, merge_request.project, default_enabled: :yaml) - end - def recreate_merge_head_diff merge_request.merge_head_diff&.destroy! diff --git a/app/views/projects/merge_requests/show.html.haml b/app/views/projects/merge_requests/show.html.haml index 7fe4fb5ee9a..43bcb75ebbf 100644 --- a/app/views/projects/merge_requests/show.html.haml +++ b/app/views/projects/merge_requests/show.html.haml @@ -76,9 +76,7 @@ = render "projects/merge_requests/tabs/pane", name: "pipelines", id: "pipelines", class: "pipelines" do - if @number_of_pipelines.nonzero? = render 'projects/commit/pipelines_list', disable_initialization: true, endpoint: pipelines_project_merge_request_path(@project, @merge_request) - - params = request.query_parameters - - if Feature.enabled?(:default_merge_ref_for_diffs, @project, default_enabled: :yaml) - - params = params.merge(diff_head: true) + - params = request.query_parameters.merge(diff_head: true) = render "projects/merge_requests/tabs/pane", name: "diffs", id: "js-diffs-app", class: "diffs", data: diffs_tab_pane_data(@project, @merge_request, params) .mr-loading-status diff --git a/app/views/shared/issuable/_sort_dropdown.html.haml b/app/views/shared/issuable/_sort_dropdown.html.haml index f6d7ed6764d..e36c4cd6be0 100644 --- a/app/views/shared/issuable/_sort_dropdown.html.haml +++ b/app/views/shared/issuable/_sort_dropdown.html.haml @@ -1,26 +1,9 @@ -- sort_value = @sort -- sort_title = issuable_sort_option_title(sort_value) - viewing_issues = controller.controller_name == 'issues' || controller.action_name == 'issues' - viewing_merge_requests = controller.controller_name == 'merge_requests' +- items = issuable_sort_options(viewing_issues, viewing_merge_requests) +- selected = issuable_sort_option_overrides[@sort] || @sort -.dropdown.inline.gl-ml-3.issue-sort-dropdown +.gl-ml-3 .btn-group{ role: 'group' } - .btn-group{ role: 'group' } - %button.dropdown-menu-toggle{ type: 'button', data: { toggle: 'dropdown', display: 'static' }, class: 'gl-button btn btn-default' } - = sort_title - = sprite_icon('chevron-down', css_class: "dropdown-menu-toggle-icon gl-top-3") - %ul.dropdown-menu.dropdown-menu-right.dropdown-menu-selectable.dropdown-menu-sort - %li - = sortable_item(sort_title_priority, page_filter_path(sort: sort_value_priority), sort_title) - = sortable_item(sort_title_created_date, page_filter_path(sort: sort_value_created_date), sort_title) - = sortable_item(sort_title_recently_updated, page_filter_path(sort: sort_value_recently_updated), sort_title) - = sortable_item(sort_title_milestone, page_filter_path(sort: sort_value_milestone), sort_title) - = sortable_item(sort_title_due_date, page_filter_path(sort: sort_value_due_date), sort_title) if viewing_issues - = sortable_item(sort_title_popularity, page_filter_path(sort: sort_value_popularity), sort_title) - = sortable_item(sort_title_label_priority, page_filter_path(sort: sort_value_label_priority), sort_title) - = sortable_item(sort_title_merged_date, page_filter_path(sort: sort_value_merged_date), sort_title) if viewing_merge_requests - = sortable_item(sort_title_closed_date, page_filter_path(sort: sort_value_closed_date), sort_title) if viewing_merge_requests - = sortable_item(sort_title_relative_position, page_filter_path(sort: sort_value_relative_position), sort_title) if viewing_issues - = sortable_item(sort_title_title, page_filter_path(sort: sort_value_title), sort_title) - = render_if_exists('shared/ee/issuable/sort_dropdown', viewing_issues: viewing_issues, sort_title: sort_title) - = issuable_sort_direction_button(sort_value) + = gl_redirect_listbox_tag(items, selected, data: { right: true }) + = issuable_sort_direction_button(@sort) |