Commit 70f7d244 authored by Luke Bennett's avatar Luke Bennett Committed by Fatih Acet

Review changes

Updated tests
parent 61afa65d
...@@ -65,45 +65,17 @@ ...@@ -65,45 +65,17 @@
}; };
EditBlob.prototype.initSoftWrap = function() { EditBlob.prototype.initSoftWrap = function() {
this.isExplicitySelected = false this.isSoftWrapped = false;
this.$filePathInput = $('#file_path, #file_name');
this.$toggleButton = $('.soft-wrap-toggle'); this.$toggleButton = $('.soft-wrap-toggle');
this.$toggleText = $('span', this.$toggleButton); this.$toggleButton.on('click', this.toggleSoftWrap.bind(this));
this.$noWrapIcon = $('.no-wrap-icon', this.$toggleButton);
this.$softWrapIcon = $('.soft-wrap-icon', this.$toggleButton);
this.checkFilePathIsCode();
this.$filePathInput.on('keyup', _.debounce(this.checkFilePathIsCode.bind(this), 300));
this.$toggleButton.on('click', this.clickSoftWrapButton.bind(this));
}; };
EditBlob.prototype.toggleSoftWrap = function(forceToggle) { EditBlob.prototype.toggleSoftWrap = function(e) {
if (_.isBoolean(forceToggle)) {
this.isSoftWrapped = forceToggle;
} else {
this.isSoftWrapped = !this.isSoftWrapped; this.isSoftWrapped = !this.isSoftWrapped;
} this.$toggleButton.toggleClass('soft-wrap-active', this.isSoftWrapped);
if(this.isSoftWrapped) {
this.$toggleText.text('No wrap');
this.$noWrapIcon.removeClass('hidden');
this.$softWrapIcon.addClass('hidden');
} else {
this.$toggleText.text('Soft wrap');
this.$softWrapIcon.removeClass('hidden');
this.$noWrapIcon.addClass('hidden');
}
this.editor.getSession().setUseWrapMode(this.isSoftWrapped); this.editor.getSession().setUseWrapMode(this.isSoftWrapped);
}; };
EditBlob.prototype.checkFilePathIsCode = function() {
var isNotCode = /^(.*?\.(txt|md)|[^.]*?)$/i.test(this.$filePathInput.val());
if (!this.isExplicitySelected) this.toggleSoftWrap(isNotCode);
};
EditBlob.prototype.clickSoftWrapButton = function() {
if (!this.isExplicitySelected) this.isExplicitySelected = true;
this.toggleSoftWrap();
};
return EditBlob; return EditBlob;
})(); })();
......
...@@ -68,6 +68,24 @@ ...@@ -68,6 +68,24 @@
font-family: $regular_font; font-family: $regular_font;
} }
.soft-wrap-toggle {
margin: 0 $btn-side-margin;
.soft-wrap {
display: block;
}
.no-wrap {
display: none;
}
&.soft-wrap-active {
.soft-wrap {
display: none;
}
.no-wrap {
display: block;
}
}
}
.gitignore-selector, .license-selector, .gitlab-ci-yml-selector { .gitignore-selector, .license-selector, .gitlab-ci-yml-selector {
.dropdown { .dropdown {
line-height: 21px; line-height: 21px;
......
...@@ -31,10 +31,9 @@ module AppearancesHelper ...@@ -31,10 +31,9 @@ module AppearancesHelper
end end
end end
def custom_icon(icon_name, opts = {}) def custom_icon(icon_name, size: 16)
opts[:size] = 16 unless opts[:size]
# We can't simply do the below, because there are some .erb SVGs. # We can't simply do the below, because there are some .erb SVGs.
# File.read(Rails.root.join("app/views/shared/icons/_#{icon_name}.svg")).html_safe # File.read(Rails.root.join("app/views/shared/icons/_#{icon_name}.svg")).html_safe
render "shared/icons/#{icon_name}.svg", opts render "shared/icons/#{icon_name}.svg", size: size
end end
end end
...@@ -22,9 +22,12 @@ ...@@ -22,9 +22,12 @@
.gitlab-ci-yml-selector.js-gitlab-ci-yml-selector-wrap.hidden .gitlab-ci-yml-selector.js-gitlab-ci-yml-selector-wrap.hidden
= dropdown_tag("Choose a GitLab CI Yaml template", options: { toggle_class: 'js-gitlab-ci-yml-selector', title: "Choose a template", filter: true, placeholder: "Filter", data: { data: gitlab_ci_ymls } } ) = dropdown_tag("Choose a GitLab CI Yaml template", options: { toggle_class: 'js-gitlab-ci-yml-selector', title: "Choose a template", filter: true, placeholder: "Filter", data: { data: gitlab_ci_ymls } } )
= button_tag class: 'soft-wrap-toggle btn', type: 'button' do = button_tag class: 'soft-wrap-toggle btn', type: 'button' do
= custom_icon('icon_soft_wrap', klass: 'soft-wrap-icon') %span.no-wrap
= custom_icon('icon_no_wrap', klass: 'no-wrap-icon hidden') = custom_icon('icon_no_wrap')
%span Soft wrap No wrap
%span.soft-wrap
= custom_icon('icon_soft_wrap')
Soft wrap
.encoding-selector .encoding-selector
= select_tag :encoding, options_for_select([ "base64", "text" ], "text"), class: 'select2' = select_tag :encoding, options_for_select([ "base64", "text" ], "text"), class: 'select2'
......
<svg class="<%= klass %>" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="m6 11h-4.509c-.263 0-.491.226-.491.505v.991c0 .291.22.505.491.505h4.509v.679c0 .301.194.413.454.236l2.355-1.607c.251-.171.259-.442 0-.619l-2.355-1.607c-.251-.171-.454-.07-.454.236v.681m-5-7.495c0-.279.22-.505.498-.505h13c.275 0 .498.214.498.505v.991c0 .279-.22.505-.498.505h-13c-.275 0-.498-.214-.498-.505v-.991m10 8c0-.279.215-.505.49-.505h3.02c.271 0 .49.214.49.505v.991c0 .279-.215.505-.49.505h-3.02c-.271 0-.49-.214-.49-.505v-.991m-10-4c0-.279.22-.505.498-.505h13c.275 0 .498.214.498.505v.991c0 .279-.22.505-.498.505h-13c-.275 0-.498-.214-.498-.505v-.991"/> <path fill-rule="evenodd" d="m6 11h-4.509c-.263 0-.491.226-.491.505v.991c0 .291.22.505.491.505h4.509v.679c0 .301.194.413.454.236l2.355-1.607c.251-.171.259-.442 0-.619l-2.355-1.607c-.251-.171-.454-.07-.454.236v.681m-5-7.495c0-.279.22-.505.498-.505h13c.275 0 .498.214.498.505v.991c0 .279-.22.505-.498.505h-13c-.275 0-.498-.214-.498-.505v-.991m10 8c0-.279.215-.505.49-.505h3.02c.271 0 .49.214.49.505v.991c0 .279-.215.505-.49.505h-3.02c-.271 0-.49-.214-.49-.505v-.991m-10-4c0-.279.22-.505.498-.505h13c.275 0 .498.214.498.505v.991c0 .279-.22.505-.498.505h-13c-.275 0-.498-.214-.498-.505v-.991"/>
</svg> </svg>
<svg class="<%= klass %>" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path fill-rule="evenodd" d="m12 11h-2v-.681c0-.307-.203-.407-.454-.236l-2.355 1.607c-.259.177-.251.448 0 .619l2.355 1.607c.259.177.454.065.454-.236v-.679h2c0 0 0 0 0 0 1.657 0 3-1.343 3-3 0-.828-.336-1.578-.879-2.121-.543-.543-1.293-.879-2.121-.879-.001 0-.002 0-.002 0h-10.497c-.271 0-.5.226-.5.505v.991c0 .291.224.505.5.505h10.497c.001 0 .002 0 .002 0 .552 0 1 .448 1 1 0 .276-.112.526-.293.707-.181.181-.431.293-.707.293m-11-7.495c0-.279.22-.505.498-.505h13c.275 0 .498.214.498.505v.991c0 .279-.22.505-.498.505h-13c-.275 0-.498-.214-.498-.505v-.991m0 8c0-.279.215-.505.49-.505h3.02c.271 0 .49.214.49.505v.991c0 .279-.215.505-.49.505h-3.02c-.271 0-.49-.214-.49-.505v-.991"/> <path fill-rule="evenodd" d="m12 11h-2v-.681c0-.307-.203-.407-.454-.236l-2.355 1.607c-.259.177-.251.448 0 .619l2.355 1.607c.259.177.454.065.454-.236v-.679h2c0 0 0 0 0 0 1.657 0 3-1.343 3-3 0-.828-.336-1.578-.879-2.121-.543-.543-1.293-.879-2.121-.879-.001 0-.002 0-.002 0h-10.497c-.271 0-.5.226-.5.505v.991c0 .291.224.505.5.505h10.497c.001 0 .002 0 .002 0 .552 0 1 .448 1 1 0 .276-.112.526-.293.707-.181.181-.431.293-.707.293m-11-7.495c0-.279.22-.505.498-.505h13c.275 0 .498.214.498.505v.991c0 .279-.22.505-.498.505h-13c-.275 0-.498-.214-.498-.505v-.991m0 8c0-.279.215-.505.49-.505h3.02c.271 0 .49.214.49.505v.991c0 .279-.215.505-.49.505h-3.02c-.271 0-.49-.214-.49-.505v-.991"/>
</svg> </svg>
...@@ -23,42 +23,16 @@ feature 'User uses soft wrap whilst editing file', feature: true, js: true do ...@@ -23,42 +23,16 @@ feature 'User uses soft wrap whilst editing file', feature: true, js: true do
let(:toggle_button) { find('.soft-wrap-toggle') } let(:toggle_button) { find('.soft-wrap-toggle') }
scenario 'user clicks the "No wrap" button and then "Soft wrap" button' do scenario 'user clicks the "Soft wrap" button and then "No wrap" button' do
wrapped_content_width = get_content_width wrapped_content_width = get_content_width
toggle_button.click
expect(toggle_button).to have_content 'Soft wrap'
unwrapped_content_width = get_content_width
expect(unwrapped_content_width).to be > wrapped_content_width
toggle_button.click toggle_button.click
expect(toggle_button).to have_content 'No wrap' expect(toggle_button).to have_content 'No wrap'
expect(get_content_width).to be < unwrapped_content_width
end
scenario 'user adds a ".js" extension and then changes to a ".md" extension' do
wrapped_content_width = get_content_width
fill_in 'file_name', with: 'test_file-name.js'
expect(toggle_button).to have_content 'Soft wrap'
unwrapped_content_width = get_content_width unwrapped_content_width = get_content_width
expect(unwrapped_content_width).to be > wrapped_content_width expect(unwrapped_content_width).to be < wrapped_content_width
fill_in 'file_name', with: 'test_file-name.md'
expect(toggle_button).to have_content 'No wrap'
expect(get_content_width).to be < unwrapped_content_width
end
scenario 'user clicks "No wrap" and then changes to a ".md" extension' do
wrapped_content_width = get_content_width
toggle_button.click toggle_button.click
expect(toggle_button).to have_content 'Soft wrap' expect(toggle_button).to have_content 'Soft wrap'
unwrapped_content_width = get_content_width expect(get_content_width).to be > unwrapped_content_width
expect(unwrapped_content_width).to be > wrapped_content_width
fill_in 'file_name', with: 'test_file-name.md'
expect(toggle_button).to have_content 'Soft wrap'
expect(unwrapped_content_width).to be == get_content_width
end end
def get_content_width def get_content_width
......
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