Commit b56c4067 authored by David O'Regan's avatar David O'Regan Committed by Dylan Griffith

Remove blob edit wrapper

Remove blob edit wrapper
Vue component from
the repo folder as
technical debt reduction
parent adf0163f
......@@ -377,10 +377,6 @@ span.idiff {
color: $gl-text-color;
}
.file-actions .ide-edit-button {
z-index: 2;
}
@include media-breakpoint-down(md) {
.file-actions {
margin-top: $gl-padding-8;
......
......@@ -65,40 +65,13 @@ module BlobHelper
return unless blob = readable_blob(options, path, project, ref)
common_classes = "btn gl-button btn-confirm js-edit-blob gl-ml-3 #{options[:extra_class]}"
data = { track_action: 'click_edit', track_label: 'edit' }
if Feature.enabled?(:web_ide_primary_edit, project.group)
common_classes += " btn-inverted"
data[:track_property] = 'secondary'
end
edit_button_tag(blob,
common_classes,
_('Edit'),
edit_blob_path(project, ref, path, options),
project,
ref,
data)
end
def ide_edit_button(project = @project, ref = @ref, path = @path, blob:)
return unless blob
common_classes = 'btn gl-button btn-confirm ide-edit-button gl-ml-3'
data = { track_action: 'click_edit_ide', track_label: 'web_ide' }
unless Feature.enabled?(:web_ide_primary_edit, project.group)
common_classes += " btn-inverted"
data[:track_property] = 'secondary'
end
edit_button_tag(blob,
common_classes,
_('Web IDE'),
ide_edit_path(project, ref, path),
project,
ref,
data)
ref)
end
def modify_file_button(project = @project, ref = @ref, path = @path, blob:, label:, action:, btn_class:, modal_type:)
......@@ -363,16 +336,16 @@ module BlobHelper
content_tag(:span, button, class: 'has-tooltip', title: _('You can only edit files when you are on a branch'), data: { container: 'body' })
end
def edit_link_tag(link_text, edit_path, common_classes, data)
link_to link_text, edit_path, class: "#{common_classes}", data: data
def edit_link_tag(link_text, edit_path, common_classes)
link_to link_text, edit_path, class: "#{common_classes}"
end
def edit_button_tag(blob, common_classes, text, edit_path, project, ref, data)
def edit_button_tag(blob, common_classes, text, edit_path, project, ref)
if !on_top_of_branch?(project, ref)
edit_disabled_button_tag(text, common_classes)
# This condition only applies to users who are logged in
elsif !current_user || (current_user && can_modify_blob?(blob, project, ref))
edit_link_tag(text, edit_path, common_classes, data)
edit_link_tag(text, edit_path, common_classes)
elsif can?(current_user, :fork_project, project) && can?(current_user, :create_merge_request_in, project)
edit_fork_button_tag(common_classes, project, text, edit_blob_fork_params(edit_path))
end
......
---
name: web_ide_primary_edit
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/35957
rollout_issue_url:
milestone: '13.3'
type: development
group: group::editor
default_enabled: false
......@@ -54,42 +54,6 @@ RSpec.describe BlobHelper do
expect(Capybara.string(link_with_mr).find_link('Edit')[:href]).to eq("/#{project.full_path}/-/edit/master/README.md?mr_id=10")
end
context 'when edit is the primary button' do
before do
stub_feature_flags(web_ide_primary_edit: false)
end
it 'is rendered as primary' do
expect(link).not_to match(/btn-inverted/)
end
it 'passes on primary tracking attributes' do
parsed_link = Capybara.string(link).find_link('Edit')
expect(parsed_link[:'data-track-action']).to eq("click_edit")
expect(parsed_link[:'data-track-label']).to eq("edit")
expect(parsed_link[:'data-track-property']).to eq(nil)
end
end
context 'when Web IDE is the primary button' do
before do
stub_feature_flags(web_ide_primary_edit: true)
end
it 'is rendered as inverted' do
expect(link).to match(/btn-inverted/)
end
it 'passes on secondary tracking attributes' do
parsed_link = Capybara.string(link).find_link('Edit')
expect(parsed_link[:'data-track-action']).to eq("click_edit")
expect(parsed_link[:'data-track-label']).to eq("edit")
expect(parsed_link[:'data-track-property']).to eq("secondary")
end
end
end
describe "#relative_raw_path" do
......@@ -324,63 +288,6 @@ RSpec.describe BlobHelper do
end
end
describe `#ide_edit_button` do
let_it_be(:namespace) { create(:namespace, name: 'gitlab') }
let_it_be(:project) { create(:project, :repository, namespace: namespace) }
let_it_be(:current_user) { create(:user) }
let(:can_push_code) { true }
let(:blob) { project.repository.blob_at('refs/heads/master', 'README.md') }
subject(:link) { helper.ide_edit_button(project, 'master', 'README.md', blob: blob) }
before do
allow(helper).to receive(:current_user).and_return(current_user)
allow(helper).to receive(:can?).with(current_user, :push_code, project).and_return(can_push_code)
allow(helper).to receive(:can_collaborate_with_project?).and_return(true)
end
it 'returns a link with a Web IDE route' do
expect(Capybara.string(link).find_link('Web IDE')[:href]).to eq("/-/ide/project/#{project.full_path}/edit/master/-/README.md")
end
context 'when edit is the primary button' do
before do
stub_feature_flags(web_ide_primary_edit: false)
end
it 'is rendered as inverted' do
expect(link).to match(/btn-inverted/)
end
it 'passes on secondary tracking attributes' do
parsed_link = Capybara.string(link).find_link('Web IDE')
expect(parsed_link[:'data-track-action']).to eq("click_edit_ide")
expect(parsed_link[:'data-track-label']).to eq("web_ide")
expect(parsed_link[:'data-track-property']).to eq("secondary")
end
end
context 'when Web IDE is the primary button' do
before do
stub_feature_flags(web_ide_primary_edit: true)
end
it 'is rendered as primary' do
expect(link).not_to match(/btn-inverted/)
end
it 'passes on primary tracking attributes' do
parsed_link = Capybara.string(link).find_link('Web IDE')
expect(parsed_link[:'data-track-action']).to eq("click_edit_ide")
expect(parsed_link[:'data-track-label']).to eq("web_ide")
expect(parsed_link[:'data-track-property']).to eq(nil)
end
end
end
describe '#ide_edit_path' do
let(:project) { create(:project) }
let(:current_user) { create(:user) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment