diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-06 18:07:26 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-06 18:07:26 +0300 |
commit | 506159637da758f448818b834f8482238a9eb4eb (patch) | |
tree | e114c46da6c1b98451a228b7559f5a6039c5df29 /app | |
parent | 045c0f9554a99c80d0a127540da168e272a9f977 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/ide/components/repo_editor.vue | 15 | ||||
-rw-r--r-- | app/assets/javascripts/ide/index.js | 1 | ||||
-rw-r--r-- | app/assets/javascripts/ide/lib/editor.js | 14 | ||||
-rw-r--r-- | app/assets/javascripts/ide/stores/state.js | 1 | ||||
-rw-r--r-- | app/controllers/profiles/preferences_controller.rb | 3 | ||||
-rw-r--r-- | app/helpers/ide_helper.rb | 3 | ||||
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 1 | ||||
-rw-r--r-- | app/models/user_preference.rb | 1 | ||||
-rw-r--r-- | app/views/profiles/preferences/show.html.haml | 6 |
10 files changed, 36 insertions, 11 deletions
diff --git a/app/assets/javascripts/ide/components/repo_editor.vue b/app/assets/javascripts/ide/components/repo_editor.vue index 08b3e8a34d6..7e2ab96d1de 100644 --- a/app/assets/javascripts/ide/components/repo_editor.vue +++ b/app/assets/javascripts/ide/components/repo_editor.vue @@ -32,7 +32,13 @@ export default { ...mapState('rightPane', { rightPaneIsOpen: 'isOpen', }), - ...mapState(['rightPanelCollapsed', 'viewer', 'panelResizing', 'currentActivityView']), + ...mapState([ + 'rightPanelCollapsed', + 'viewer', + 'panelResizing', + 'currentActivityView', + 'renderWhitespaceInCode', + ]), ...mapGetters([ 'currentMergeRequest', 'getStagedFile', @@ -76,6 +82,11 @@ export default { showEditor() { return !this.shouldHideEditor && this.isEditorViewMode; }, + editorOptions() { + return { + renderWhitespace: this.renderWhitespaceInCode ? 'all' : 'none', + }; + }, }, watch: { file(newVal, oldVal) { @@ -131,7 +142,7 @@ export default { }, mounted() { if (!this.editor) { - this.editor = Editor.create(); + this.editor = Editor.create(this.editorOptions); } this.initEditor(); }, diff --git a/app/assets/javascripts/ide/index.js b/app/assets/javascripts/ide/index.js index cdfebd19fa4..4c4166e11f5 100644 --- a/app/assets/javascripts/ide/index.js +++ b/app/assets/javascripts/ide/index.js @@ -50,6 +50,7 @@ export function initIde(el, options = {}) { }); this.setInitialData({ clientsidePreviewEnabled: parseBoolean(el.dataset.clientsidePreviewEnabled), + renderWhitespaceInCode: parseBoolean(el.dataset.renderWhitespaceInCode), }); }, methods: { diff --git a/app/assets/javascripts/ide/lib/editor.js b/app/assets/javascripts/ide/lib/editor.js index 02038fcb534..d1056ea6b98 100644 --- a/app/assets/javascripts/ide/lib/editor.js +++ b/app/assets/javascripts/ide/lib/editor.js @@ -23,20 +23,24 @@ export const clearDomElement = el => { }; export default class Editor { - static create() { + static create(options = {}) { if (!this.editorInstance) { - this.editorInstance = new Editor(); + this.editorInstance = new Editor(options); } return this.editorInstance; } - constructor() { + constructor(options = {}) { this.currentModel = null; this.instance = null; this.dirtyDiffController = null; this.disposable = new Disposable(); this.modelManager = new ModelManager(); this.decorationsController = new DecorationsController(this); + this.options = { + ...defaultEditorOptions, + ...options, + }; setupMonacoTheme(); @@ -51,7 +55,7 @@ export default class Editor { this.disposable.add( (this.instance = monacoEditor.create(domElement, { - ...defaultEditorOptions, + ...this.options, })), (this.dirtyDiffController = new DirtyDiffController( this.modelManager, @@ -71,7 +75,7 @@ export default class Editor { this.disposable.add( (this.instance = monacoEditor.createDiffEditor(domElement, { - ...defaultEditorOptions, + ...this.options, quickSuggestions: false, occurrencesHighlight: false, renderSideBySide: Editor.renderSideBySide(domElement), diff --git a/app/assets/javascripts/ide/stores/state.js b/app/assets/javascripts/ide/stores/state.js index d400b9831a9..6488389977c 100644 --- a/app/assets/javascripts/ide/stores/state.js +++ b/app/assets/javascripts/ide/stores/state.js @@ -31,4 +31,5 @@ export default () => ({ entry: {}, }, clientsidePreviewEnabled: false, + renderWhitespaceInCode: false, }); diff --git a/app/controllers/profiles/preferences_controller.rb b/app/controllers/profiles/preferences_controller.rb index 214640a5295..2166dd7dad7 100644 --- a/app/controllers/profiles/preferences_controller.rb +++ b/app/controllers/profiles/preferences_controller.rb @@ -48,7 +48,8 @@ class Profiles::PreferencesController < Profiles::ApplicationController :time_display_relative, :time_format_in_24h, :show_whitespace_in_diffs, - :sourcegraph_enabled + :sourcegraph_enabled, + :render_whitespace_in_code ] end end diff --git a/app/helpers/ide_helper.rb b/app/helpers/ide_helper.rb index 8e50bbc6c04..e4d0e605254 100644 --- a/app/helpers/ide_helper.rb +++ b/app/helpers/ide_helper.rb @@ -10,7 +10,8 @@ module IdeHelper "promotion-svg-path": image_path('illustrations/web-ide_promotion.svg'), "ci-help-page-path" => help_page_path('ci/quick_start/README'), "web-ide-help-page-path" => help_page_path('user/project/web_ide/index.html'), - "clientside-preview-enabled": Gitlab::CurrentSettings.current_application_settings.web_ide_clientside_preview_enabled.to_s + "clientside-preview-enabled": Gitlab::CurrentSettings.current_application_settings.web_ide_clientside_preview_enabled.to_s, + "render-whitespace-in-code": current_user.render_whitespace_in_code.to_s } end end diff --git a/app/models/project.rb b/app/models/project.rb index 8b3ccf7ed02..057bcbabbeb 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -331,7 +331,7 @@ class Project < ApplicationRecord delegate :add_guest, :add_reporter, :add_developer, :add_maintainer, :add_role, to: :team delegate :add_master, to: :team # @deprecated delegate :group_runners_enabled, :group_runners_enabled=, :group_runners_enabled?, to: :ci_cd_settings - delegate :root_ancestor, :actual_limits, to: :namespace, allow_nil: true + delegate :root_ancestor, to: :namespace, allow_nil: true delegate :last_pipeline, to: :commit, allow_nil: true delegate :external_dashboard_url, to: :metrics_setting, allow_nil: true, prefix: true delegate :default_git_depth, :default_git_depth=, to: :ci_cd_settings, prefix: :ci diff --git a/app/models/user.rb b/app/models/user.rb index ee42a987939..47c5b3e208a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -246,6 +246,7 @@ class User < ApplicationRecord delegate :show_whitespace_in_diffs, :show_whitespace_in_diffs=, to: :user_preference delegate :sourcegraph_enabled, :sourcegraph_enabled=, to: :user_preference delegate :setup_for_company, :setup_for_company=, to: :user_preference + delegate :render_whitespace_in_code, :render_whitespace_in_code=, to: :user_preference accepts_nested_attributes_for :user_preference, update_only: true diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index a36f56089a0..713b0598029 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -13,6 +13,7 @@ class UserPreference < ApplicationRecord default_value_for :timezone, value: Time.zone.tzinfo.name, allows_nil: false default_value_for :time_display_relative, value: true, allows_nil: false default_value_for :time_format_in_24h, value: false, allows_nil: false + default_value_for :render_whitespace_in_code, value: false, allows_nil: false class << self def notes_filters diff --git a/app/views/profiles/preferences/show.html.haml b/app/views/profiles/preferences/show.html.haml index bf76b7379dd..93acd6f550b 100644 --- a/app/views/profiles/preferences/show.html.haml +++ b/app/views/profiles/preferences/show.html.haml @@ -62,9 +62,13 @@ .form-text.text-muted = s_('Preferences|Choose what content you want to see on a project’s overview page.') .form-group.form-check + = f.check_box :render_whitespace_in_code, class: 'form-check-input' + = f.label :render_whitespace_in_code, class: 'form-check-label' do + = s_('Preferences|Render whitespace characters in the Web IDE') + .form-group.form-check = f.check_box :show_whitespace_in_diffs, class: 'form-check-input' = f.label :show_whitespace_in_diffs, class: 'form-check-label' do - = s_('Preferences|Show whitespace in diffs') + = s_('Preferences|Show whitespace changes in diffs') .col-sm-12 %hr |