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-05-18 09:08:14 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-05-18 09:08:14 +0300
commit7e5f8d08817c5672a0fe2f36609897f20d7e120e (patch)
treec09839c3ea64f6ec1035fdc4942c9022ca5a101a /app
parent25861ffdce4061974732c8403992a0532433e012 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/monitoring/components/dashboard.vue5
-rw-r--r--app/assets/javascripts/monitoring/utils.js12
-rw-r--r--app/controllers/snippets_controller.rb16
-rw-r--r--app/services/snippets/create_service.rb12
-rw-r--r--app/views/shared/_ref_dropdown.html.haml4
5 files changed, 30 insertions, 19 deletions
diff --git a/app/assets/javascripts/monitoring/components/dashboard.vue b/app/assets/javascripts/monitoring/components/dashboard.vue
index de73da67fcc..2018c706b11 100644
--- a/app/assets/javascripts/monitoring/components/dashboard.vue
+++ b/app/assets/javascripts/monitoring/components/dashboard.vue
@@ -39,6 +39,7 @@ import {
timeRangeFromUrl,
panelToUrl,
expandedPanelPayloadFromUrl,
+ convertVariablesForURL,
} from '../utils';
import { metricStates } from '../constants';
import { defaultTimeRange, timeRanges } from '~/vue_shared/constants';
@@ -272,7 +273,7 @@ export default {
handler({ group, panel }) {
const dashboardPath = this.currentDashboard || this.selectedDashboard?.path;
updateHistory({
- url: panelToUrl(dashboardPath, group, panel),
+ url: panelToUrl(dashboardPath, convertVariablesForURL(this.promVariables), group, panel),
title: document.title,
});
},
@@ -343,7 +344,7 @@ export default {
},
generatePanelUrl(groupKey, panel) {
const dashboardPath = this.currentDashboard || this.selectedDashboard?.path;
- return panelToUrl(dashboardPath, groupKey, panel);
+ return panelToUrl(dashboardPath, convertVariablesForURL(this.promVariables), groupKey, panel);
},
hideAddMetricModal() {
this.$refs.addMetricModal.hide();
diff --git a/app/assets/javascripts/monitoring/utils.js b/app/assets/javascripts/monitoring/utils.js
index 2e4012855d5..1f028ffbcad 100644
--- a/app/assets/javascripts/monitoring/utils.js
+++ b/app/assets/javascripts/monitoring/utils.js
@@ -17,7 +17,7 @@ import { VARIABLE_PREFIX } from './constants';
* This will be removed once we add support for free text variables
* via the dashboard yaml files in https://gitlab.com/gitlab-org/gitlab/-/issues/215689
*/
-export const dashboardParams = ['dashboard', 'group', 'title', 'y_label'];
+export const dashboardParams = ['dashboard', 'group', 'title', 'y_label', 'embedded'];
/**
* This method is used to validate if the graph data format for a chart component
@@ -262,14 +262,22 @@ export const expandedPanelPayloadFromUrl = (dashboard, search = window.location.
* If no group/panel is set, the dashboard URL is returned.
*
* @param {?String} dashboard - Dashboard path, used as identifier for a dashboard
+ * @param {?Object} promVariables - Custom variables that came from the URL
* @param {?String} group - Group Identifier
* @param {?Object} panel - Panel object from the dashboard
* @param {?String} url - Base URL including current search params
* @returns Dashboard URL which expands a panel (chart)
*/
-export const panelToUrl = (dashboard = null, group, panel, url = window.location.href) => {
+export const panelToUrl = (
+ dashboard = null,
+ promVariables,
+ group,
+ panel,
+ url = window.location.href,
+) => {
const params = {
dashboard,
+ ...promVariables,
};
if (group && panel) {
diff --git a/app/controllers/snippets_controller.rb b/app/controllers/snippets_controller.rb
index e877f3c7a54..425e0458b41 100644
--- a/app/controllers/snippets_controller.rb
+++ b/app/controllers/snippets_controller.rb
@@ -49,23 +49,19 @@ class SnippetsController < ApplicationController
end
def create
- create_params = snippet_params.merge(spammable_params)
+ create_params = snippet_params.merge(files: params.delete(:files))
service_response = Snippets::CreateService.new(nil, current_user, create_params).execute
@snippet = service_response.payload[:snippet]
if service_response.error? && @snippet.errors[:repository].present?
handle_repository_error(:new)
else
- move_temporary_files if @snippet.valid? && params[:files]
-
recaptcha_check_with_fallback { render :new }
end
end
def update
- update_params = snippet_params.merge(spammable_params)
-
- service_response = Snippets::UpdateService.new(nil, current_user, update_params).execute(@snippet)
+ service_response = Snippets::UpdateService.new(nil, current_user, snippet_params).execute(@snippet)
@snippet = service_response.payload[:snippet]
handle_repository_error(:edit)
@@ -150,12 +146,6 @@ class SnippetsController < ApplicationController
end
def snippet_params
- params.require(:personal_snippet).permit(:title, :content, :file_name, :private, :visibility_level, :description)
- end
-
- def move_temporary_files
- params[:files].each do |file|
- FileMover.new(file, from_model: current_user, to_model: @snippet).execute
- end
+ params.require(:personal_snippet).permit(:title, :content, :file_name, :private, :visibility_level, :description).merge(spammable_params)
end
end
diff --git a/app/services/snippets/create_service.rb b/app/services/snippets/create_service.rb
index 2e2fdd5993f..bb58d1bc2bc 100644
--- a/app/services/snippets/create_service.rb
+++ b/app/services/snippets/create_service.rb
@@ -9,6 +9,8 @@ module Snippets
def execute
filter_spam_check_params
+ @files = Array(params.delete(:files).presence)
+
@snippet = if project
project.snippets.build(params)
else
@@ -29,6 +31,8 @@ module Snippets
UserAgentDetailService.new(@snippet, @request).create
Gitlab::UsageDataCounters::SnippetCounter.count(:create)
+ move_temporary_files
+
ServiceResponse.success(payload: { snippet: @snippet } )
else
snippet_error_response(@snippet, 400)
@@ -83,5 +87,13 @@ module Snippets
def snippet_files
[{ file_path: params[:file_name], content: params[:content] }]
end
+
+ def move_temporary_files
+ return unless @snippet.is_a?(PersonalSnippet)
+
+ @files.each do |file|
+ FileMover.new(file, from_model: current_user, to_model: @snippet).execute
+ end
+ end
end
end
diff --git a/app/views/shared/_ref_dropdown.html.haml b/app/views/shared/_ref_dropdown.html.haml
index 8b2a3bee407..ee2b2a17e21 100644
--- a/app/views/shared/_ref_dropdown.html.haml
+++ b/app/views/shared/_ref_dropdown.html.haml
@@ -1,7 +1,7 @@
- dropdown_class = local_assigns.fetch(:dropdown_class, '')
.dropdown-menu.dropdown-menu-selectable.git-revision-dropdown{ class: dropdown_class }
- = dropdown_title "Select Git revision"
- = dropdown_filter "Filter by Git revision"
+ = dropdown_title _('Select Git revision')
+ = dropdown_filter _('Filter by Git revision')
= dropdown_content
= dropdown_loading