Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-06 18:07:26 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-06 18:07:26 +0300
commit506159637da758f448818b834f8482238a9eb4eb (patch)
treee114c46da6c1b98451a228b7559f5a6039c5df29 /app
parent045c0f9554a99c80d0a127540da168e272a9f977 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/ide/components/repo_editor.vue15
-rw-r--r--app/assets/javascripts/ide/index.js1
-rw-r--r--app/assets/javascripts/ide/lib/editor.js14
-rw-r--r--app/assets/javascripts/ide/stores/state.js1
-rw-r--r--app/controllers/profiles/preferences_controller.rb3
-rw-r--r--app/helpers/ide_helper.rb3
-rw-r--r--app/models/project.rb2
-rw-r--r--app/models/user.rb1
-rw-r--r--app/models/user_preference.rb1
-rw-r--r--app/views/profiles/preferences/show.html.haml6
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