diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-04-19 12:08:55 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-04-19 12:08:55 +0300 |
commit | 541758119cb1a4e029a2d0fb0551f52f6cf9a511 (patch) | |
tree | e4c12b348f5cc115d96ed38a1b71a9e47e593ed0 /app | |
parent | 6733a7a15ceefcf4802e44f96d66a9ddd7881635 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r-- | app/assets/javascripts/pager.js | 19 | ||||
-rw-r--r-- | app/helpers/projects_helper.rb | 8 | ||||
-rw-r--r-- | app/models/clusters/agent_token.rb | 2 | ||||
-rw-r--r-- | app/models/concerns/issuable.rb | 15 | ||||
-rw-r--r-- | app/models/deploy_token.rb | 3 | ||||
-rw-r--r-- | app/models/environment.rb | 13 | ||||
-rw-r--r-- | app/models/issue.rb | 12 | ||||
-rw-r--r-- | app/models/key.rb | 2 | ||||
-rw-r--r-- | app/models/member.rb | 16 | ||||
-rw-r--r-- | app/models/merge_request.rb | 10 | ||||
-rw-r--r-- | app/models/milestone.rb | 8 | ||||
-rw-r--r-- | app/models/namespace.rb | 2 | ||||
-rw-r--r-- | app/models/packages/package.rb | 4 | ||||
-rw-r--r-- | app/models/project.rb | 5 | ||||
-rw-r--r-- | app/models/todo.rb | 6 | ||||
-rw-r--r-- | app/models/user.rb | 8 | ||||
-rw-r--r-- | app/services/resource_access_tokens/create_service.rb | 1 | ||||
-rw-r--r-- | app/views/admin/application_settings/_localization.html.haml | 12 | ||||
-rw-r--r-- | app/views/projects/pages/_pages_settings.html.haml | 19 | ||||
-rw-r--r-- | app/views/shared/issuable/_sidebar.html.haml | 2 |
20 files changed, 88 insertions, 79 deletions
diff --git a/app/assets/javascripts/pager.js b/app/assets/javascripts/pager.js index aa2f539b6e2..e15766a7839 100644 --- a/app/assets/javascripts/pager.js +++ b/app/assets/javascripts/pager.js @@ -22,7 +22,10 @@ export default { this.prepareData = prepareData; this.successCallback = successCallback; this.errorCallback = errorCallback; - this.loading = $(`${container} .loading`).first(); + this.$container = $(container); + this.$loading = this.$container.length + ? this.$container.find('.loading').first() + : $('.loading').first(); if (preload) { this.offset = 0; this.getOld(); @@ -31,7 +34,7 @@ export default { }, getOld() { - this.loading.show(); + this.$loading.show(); const url = $('.content_list').data('href') || removeParams(['limit', 'offset']); axios @@ -49,11 +52,11 @@ export default { if (!this.disable && !this.isScrollable()) { this.getOld(); } else { - this.loading.hide(); + this.$loading.hide(); } }) .catch((err) => this.errorCallback(err)) - .finally(() => this.loading.hide()); + .finally(() => this.$loading.hide()); }, append(count, html) { @@ -83,8 +86,12 @@ export default { fireOnce: true, ceaseFire: () => this.disable === true, callback: () => { - if (!this.loading.is(':visible')) { - this.loading.show(); + if (this.$container.length && !this.$container.is(':visible')) { + return; + } + + if (!this.$loading.is(':visible')) { + this.$loading.show(); this.getOld(); } }, diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index a8528cfbcff..21c7a54670c 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -650,14 +650,6 @@ module ProjectsHelper "You must enable HTTPS for all your domains first" end - def pages_https_only_label_class - if pages_https_only_disabled? - "list-label disabled" - else - "list-label" - end - end - def filter_starrer_path(options = {}) options = params.slice(:sort).merge(options).permit! "#{request.path}?#{options.to_param}" diff --git a/app/models/clusters/agent_token.rb b/app/models/clusters/agent_token.rb index 691d628524f..1607d0b6d19 100644 --- a/app/models/clusters/agent_token.rb +++ b/app/models/clusters/agent_token.rb @@ -18,7 +18,7 @@ module Clusters validates :description, length: { maximum: 1024 } validates :name, presence: true, length: { maximum: 255 } - scope :order_last_used_at_desc, -> { order(::Gitlab::Database.nulls_last_order('last_used_at', 'DESC')) } + scope :order_last_used_at_desc, -> { order(arel_table[:last_used_at].desc.nulls_last) } scope :with_status, -> (status) { where(status: status) } enum status: { diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb index f4763fdf14b..dbd760a9c45 100644 --- a/app/models/concerns/issuable.rb +++ b/app/models/concerns/issuable.rb @@ -318,12 +318,16 @@ module Issuable # 2. We can't ORDER BY a column that isn't in the GROUP BY and doesn't # have an aggregate function applied, so we do a useless MIN() instead. # - milestones_due_date = 'MIN(milestones.due_date)' + milestones_due_date = Milestone.arel_table[:due_date].minimum + milestones_due_date_with_direction = direction == 'ASC' ? milestones_due_date.asc : milestones_due_date.desc + + highest_priority_arel = Arel.sql('highest_priority') + highest_priority_arel_with_direction = direction == 'ASC' ? highest_priority_arel.asc : highest_priority_arel.desc order_milestone_due_asc .order_labels_priority(excluded_labels: excluded_labels, extra_select_columns: [milestones_due_date]) - .reorder(Gitlab::Database.nulls_last_order(milestones_due_date, direction), - Gitlab::Database.nulls_last_order('highest_priority', direction)) + .reorder(milestones_due_date_with_direction.nulls_last, + highest_priority_arel_with_direction.nulls_last) end def order_labels_priority(direction = 'ASC', excluded_labels: [], extra_select_columns: [], with_cte: false) @@ -341,12 +345,15 @@ module Issuable extra_select_columns.unshift("highest_priorities.label_priority as highest_priority") + highest_priority_arel = Arel.sql('highest_priority') + highest_priority_arel_with_direction = direction == 'ASC' ? highest_priority_arel.asc : highest_priority_arel.desc + select(issuable_columns) .select(extra_select_columns) .from("#{table_name}") .joins("JOIN LATERAL(#{highest_priority}) as highest_priorities ON TRUE") .group(group_columns) - .reorder(Gitlab::Database.nulls_last_order('highest_priority', direction)) + .reorder(highest_priority_arel_with_direction.nulls_last) end def with_label(title, sort = nil) diff --git a/app/models/deploy_token.rb b/app/models/deploy_token.rb index 362a86aebd0..360a9ffbc53 100644 --- a/app/models/deploy_token.rb +++ b/app/models/deploy_token.rb @@ -14,6 +14,9 @@ class DeployToken < ApplicationRecord default_value_for(:expires_at) { Forever.date } + # Do NOT use this `user` for the authentication/authorization of the deploy tokens. + # It's for the auditing purpose on Credential Inventory, only. + # See https://gitlab.com/gitlab-org/gitlab/-/issues/353467#note_859774246 for more information. belongs_to :user, foreign_key: :creator_id, optional: true has_many :project_deploy_tokens, inverse_of: :deploy_token diff --git a/app/models/environment.rb b/app/models/environment.rb index 4c4ba22fae1..9e663b2ee74 100644 --- a/app/models/environment.rb +++ b/app/models/environment.rb @@ -66,10 +66,10 @@ class Environment < ApplicationRecord scope :stopped, -> { with_state(:stopped) } scope :order_by_last_deployed_at, -> do - order(Gitlab::Database.nulls_first_order("(#{max_deployment_id_sql})", 'ASC')) + order(Arel::Nodes::Grouping.new(max_deployment_id_query).asc.nulls_first) end scope :order_by_last_deployed_at_desc, -> do - order(Gitlab::Database.nulls_last_order("(#{max_deployment_id_sql})", 'DESC')) + order(Arel::Nodes::Grouping.new(max_deployment_id_query).desc.nulls_last) end scope :order_by_name, -> { order('environments.name ASC') } @@ -151,10 +151,11 @@ class Environment < ApplicationRecord find_by(id: id, slug: slug) end - def self.max_deployment_id_sql - Deployment.select(Deployment.arel_table[:id].maximum) - .where(Deployment.arel_table[:environment_id].eq(arel_table[:id])) - .to_sql + def self.max_deployment_id_query + Arel.sql( + Deployment.select(Deployment.arel_table[:id].maximum) + .where(Deployment.arel_table[:environment_id].eq(arel_table[:id])).to_sql + ) end def self.pluck_names diff --git a/app/models/issue.rb b/app/models/issue.rb index 7bb388ed4dc..c2b8b457049 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -118,15 +118,15 @@ class Issue < ApplicationRecord scope :not_authored_by, ->(user) { where.not(author_id: user) } - scope :order_due_date_asc, -> { reorder(::Gitlab::Database.nulls_last_order('due_date', 'ASC')) } - scope :order_due_date_desc, -> { reorder(::Gitlab::Database.nulls_last_order('due_date', 'DESC')) } + scope :order_due_date_asc, -> { reorder(arel_table[:due_date].asc.nulls_last) } + scope :order_due_date_desc, -> { reorder(arel_table[:due_date].desc.nulls_last) } scope :order_closest_future_date, -> { reorder(Arel.sql('CASE WHEN issues.due_date >= CURRENT_DATE THEN 0 ELSE 1 END ASC, ABS(CURRENT_DATE - issues.due_date) ASC')) } scope :order_closed_date_desc, -> { reorder(closed_at: :desc) } scope :order_created_at_desc, -> { reorder(created_at: :desc) } scope :order_severity_asc, -> { includes(:issuable_severity).order('issuable_severities.severity ASC NULLS FIRST') } scope :order_severity_desc, -> { includes(:issuable_severity).order('issuable_severities.severity DESC NULLS LAST') } - scope :order_escalation_status_asc, -> { includes(:incident_management_issuable_escalation_status).order(::Gitlab::Database.nulls_last_order('incident_management_issuable_escalation_status.status')) } - scope :order_escalation_status_desc, -> { includes(:incident_management_issuable_escalation_status).order(::Gitlab::Database.nulls_last_order('incident_management_issuable_escalation_status.status', 'DESC')) } + scope :order_escalation_status_asc, -> { includes(:incident_management_issuable_escalation_status).order(IncidentManagement::IssuableEscalationStatus.arel_table[:status].asc.nulls_last).references(:incident_management_issuable_escalation_status) } + scope :order_escalation_status_desc, -> { includes(:incident_management_issuable_escalation_status).order(IncidentManagement::IssuableEscalationStatus.arel_table[:status].desc.nulls_last).references(:incident_management_issuable_escalation_status) } scope :preload_associated_models, -> { preload(:assignees, :labels, project: :namespace) } scope :with_web_entity_associations, -> { preload(:author, project: [:project_feature, :route, namespace: :route]) } @@ -344,8 +344,8 @@ class Issue < ApplicationRecord Gitlab::Pagination::Keyset::ColumnOrderDefinition.new( attribute_name: 'relative_position', column_expression: arel_table[:relative_position], - order_expression: Gitlab::Database.nulls_last_order('issues.relative_position', 'ASC'), - reversed_order_expression: Gitlab::Database.nulls_last_order('issues.relative_position', 'DESC'), + order_expression: Issue.arel_table[:relative_position].asc.nulls_last, + reversed_order_expression: Issue.arel_table[:relative_position].desc.nulls_last, order_direction: :asc, nullable: :nulls_last, distinct: false diff --git a/app/models/key.rb b/app/models/key.rb index ee51e082e3a..42ea0f29171 100644 --- a/app/models/key.rb +++ b/app/models/key.rb @@ -49,7 +49,7 @@ class Key < ApplicationRecord scope :preload_users, -> { preload(:user) } scope :for_user, -> (user) { where(user: user) } - scope :order_last_used_at_desc, -> { reorder(::Gitlab::Database.nulls_last_order('last_used_at', 'DESC')) } + scope :order_last_used_at_desc, -> { reorder(arel_table[:last_used_at].desc.nulls_last) } # Date is set specifically in this scope to improve query time. scope :expired_today_and_not_notified, -> { where(["date(expires_at AT TIME ZONE 'UTC') = CURRENT_DATE AND expiry_notification_delivered_at IS NULL"]) } diff --git a/app/models/member.rb b/app/models/member.rb index 77e3a758605..18ad2785d6e 100644 --- a/app/models/member.rb +++ b/app/models/member.rb @@ -178,14 +178,14 @@ class Member < ApplicationRecord unscoped.from(distinct_members, :members) end - scope :order_name_asc, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.name', 'ASC')) } - scope :order_name_desc, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.name', 'DESC')) } - scope :order_recent_sign_in, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.last_sign_in_at', 'DESC')) } - scope :order_oldest_sign_in, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.last_sign_in_at', 'ASC')) } - scope :order_recent_last_activity, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.last_activity_on', 'DESC')) } - scope :order_oldest_last_activity, -> { left_join_users.reorder(Gitlab::Database.nulls_first_order('users.last_activity_on', 'ASC')) } - scope :order_recent_created_user, -> { left_join_users.reorder(Gitlab::Database.nulls_last_order('users.created_at', 'DESC')) } - scope :order_oldest_created_user, -> { left_join_users.reorder(Gitlab::Database.nulls_first_order('users.created_at', 'ASC')) } + scope :order_name_asc, -> { left_join_users.reorder(User.arel_table[:name].asc.nulls_last) } + scope :order_name_desc, -> { left_join_users.reorder(User.arel_table[:name].desc.nulls_last) } + scope :order_recent_sign_in, -> { left_join_users.reorder(User.arel_table[:last_sign_in_at].desc.nulls_last) } + scope :order_oldest_sign_in, -> { left_join_users.reorder(User.arel_table[:last_sign_in_at].asc.nulls_last) } + scope :order_recent_last_activity, -> { left_join_users.reorder(User.arel_table[:last_activity_on].desc.nulls_last) } + scope :order_oldest_last_activity, -> { left_join_users.reorder(User.arel_table[:last_activity_on].asc.nulls_first) } + scope :order_recent_created_user, -> { left_join_users.reorder(User.arel_table[:created_at].desc.nulls_last) } + scope :order_oldest_created_user, -> { left_join_users.reorder(User.arel_table[:created_at].asc.nulls_first) } scope :on_project_and_ancestors, ->(project) { where(source: [project] + project.ancestors) } diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 512fa294128..4c6ed399bf9 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -329,15 +329,15 @@ class MergeRequest < ApplicationRecord end scope :by_target_branch, ->(branch_name) { where(target_branch: branch_name) } scope :order_by_metric, ->(metric, direction) do - reverse_direction = { 'ASC' => 'DESC', 'DESC' => 'ASC' } - reversed_direction = reverse_direction[direction] || raise("Unknown sort direction was given: #{direction}") + column_expression = MergeRequest::Metrics.arel_table[metric] + column_expression_with_direction = direction == 'ASC' ? column_expression.asc : column_expression.desc order = Gitlab::Pagination::Keyset::Order.build([ Gitlab::Pagination::Keyset::ColumnOrderDefinition.new( attribute_name: "merge_request_metrics_#{metric}", - column_expression: MergeRequest::Metrics.arel_table[metric], - order_expression: Gitlab::Database.nulls_last_order("merge_request_metrics.#{metric}", direction), - reversed_order_expression: Gitlab::Database.nulls_first_order("merge_request_metrics.#{metric}", reversed_direction), + column_expression: column_expression, + order_expression: column_expression_with_direction.nulls_last, + reversed_order_expression: column_expression_with_direction.reverse.nulls_first, order_direction: direction, nullable: :nulls_last, distinct: false, diff --git a/app/models/milestone.rb b/app/models/milestone.rb index 86da29dd27a..ff4fadb0f13 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -31,7 +31,7 @@ class Milestone < ApplicationRecord end scope :order_by_name_asc, -> { order(Arel::Nodes::Ascending.new(arel_table[:title].lower)) } - scope :reorder_by_due_date_asc, -> { reorder(Gitlab::Database.nulls_last_order('due_date', 'ASC')) } + scope :reorder_by_due_date_asc, -> { reorder(arel_table[:due_date].asc.nulls_last) } scope :with_api_entity_associations, -> { preload(project: [:project_feature, :route, namespace: :route]) } scope :order_by_dates_and_title, -> { order(due_date: :asc, start_date: :asc, title: :asc) } @@ -116,15 +116,15 @@ class Milestone < ApplicationRecord when 'due_date_asc' reorder_by_due_date_asc when 'due_date_desc' - reorder(Gitlab::Database.nulls_last_order('due_date', 'DESC')) + reorder(arel_table[:due_date].desc.nulls_last) when 'name_asc' reorder(Arel::Nodes::Ascending.new(arel_table[:title].lower)) when 'name_desc' reorder(Arel::Nodes::Descending.new(arel_table[:title].lower)) when 'start_date_asc' - reorder(Gitlab::Database.nulls_last_order('start_date', 'ASC')) + reorder(arel_table[:start_date].asc.nulls_last) when 'start_date_desc' - reorder(Gitlab::Database.nulls_last_order('start_date', 'DESC')) + reorder(arel_table[:start_date].desc.nulls_last) else order_by(method) end diff --git a/app/models/namespace.rb b/app/models/namespace.rb index 5dcf240b6c3..3b75b6d163a 100644 --- a/app/models/namespace.rb +++ b/app/models/namespace.rb @@ -132,7 +132,7 @@ class Namespace < ApplicationRecord scope :user_namespaces, -> { where(type: Namespaces::UserNamespace.sti_name) } scope :without_project_namespaces, -> { where(Namespace.arel_table[:type].not_eq(Namespaces::ProjectNamespace.sti_name)) } - scope :sort_by_type, -> { order(Gitlab::Database.nulls_first_order(:type)) } + scope :sort_by_type, -> { order(arel_table[:type].asc.nulls_first) } scope :include_route, -> { includes(:route) } scope :by_parent, -> (parent) { where(parent_id: parent) } scope :filter_by_path, -> (query) { where('lower(path) = :query', query: query.downcase) } diff --git a/app/models/packages/package.rb b/app/models/packages/package.rb index c76473c9438..7744e578df5 100644 --- a/app/models/packages/package.rb +++ b/app/models/packages/package.rb @@ -228,8 +228,8 @@ class Packages::Package < ApplicationRecord def self.keyset_pagination_order(join_class:, column_name:, direction: :asc) join_table = join_class.table_name - asc_order_expression = Gitlab::Database.nulls_last_order("#{join_table}.#{column_name}", :asc) - desc_order_expression = Gitlab::Database.nulls_first_order("#{join_table}.#{column_name}", :desc) + asc_order_expression = join_class.arel_table[column_name].asc.nulls_last + desc_order_expression = join_class.arel_table[column_name].desc.nulls_first order_direction = direction == :asc ? asc_order_expression : desc_order_expression reverse_order_direction = direction == :asc ? desc_order_expression : asc_order_expression arel_order_classes = ::Gitlab::Pagination::Keyset::ColumnOrderDefinition::AREL_ORDER_CLASSES.invert diff --git a/app/models/project.rb b/app/models/project.rb index 6e5c694cb9c..f7182d1645c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -2876,6 +2876,11 @@ class Project < ApplicationRecord Projects::RecordTargetPlatformsWorker.perform_async(id) end + def inactive? + (statistics || build_statistics).storage_size > ::Gitlab::CurrentSettings.inactive_projects_min_size_mb.megabytes && + last_activity_at < ::Gitlab::CurrentSettings.inactive_projects_send_warning_email_after_months.months.ago + end + private # overridden in EE diff --git a/app/models/todo.rb b/app/models/todo.rb index eb5d9965955..45ab770a0f6 100644 --- a/app/models/todo.rb +++ b/app/models/todo.rb @@ -148,10 +148,10 @@ class Todo < ApplicationRecord target_type_column: "todos.target_type", target_column: "todos.target_id", project_column: "todos.project_id" - ).to_sql + ).arel.as('highest_priority') - select("#{table_name}.*, (#{highest_priority}) AS highest_priority") - .order(Gitlab::Database.nulls_last_order('highest_priority', 'ASC')) + select(arel_table[Arel.star], highest_priority) + .order(Arel.sql('highest_priority').asc.nulls_last) .order('todos.created_at') end diff --git a/app/models/user.rb b/app/models/user.rb index d97ada1ecec..26d47de4f00 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -470,10 +470,10 @@ class User < ApplicationRecord .where('keys.user_id = users.id') .expiring_soon_and_not_notified) end - scope :order_recent_sign_in, -> { reorder(Gitlab::Database.nulls_last_order('current_sign_in_at', 'DESC')) } - scope :order_oldest_sign_in, -> { reorder(Gitlab::Database.nulls_last_order('current_sign_in_at', 'ASC')) } - scope :order_recent_last_activity, -> { reorder(Gitlab::Database.nulls_last_order('last_activity_on', 'DESC')) } - scope :order_oldest_last_activity, -> { reorder(Gitlab::Database.nulls_first_order('last_activity_on', 'ASC')) } + scope :order_recent_sign_in, -> { reorder(arel_table[:current_sign_in_at].desc.nulls_last) } + scope :order_oldest_sign_in, -> { reorder(arel_table[:current_sign_in_at].asc.nulls_last) } + scope :order_recent_last_activity, -> { reorder(arel_table[:last_activity_on].desc.nulls_last) } + scope :order_oldest_last_activity, -> { reorder(arel_table[:last_activity_on].asc.nulls_first) } scope :by_id_and_login, ->(id, login) { where(id: id).where('username = LOWER(:login) OR email = LOWER(:login)', login: login) } scope :dormant, -> { with_state(:active).human_or_service_user.where('last_activity_on <= ?', MINIMUM_INACTIVE_DAYS.day.ago.to_date) } scope :with_no_activity, -> { with_state(:active).human_or_service_user.where(last_activity_on: nil) } diff --git a/app/services/resource_access_tokens/create_service.rb b/app/services/resource_access_tokens/create_service.rb index 28ea1ac8296..f7ffe288d57 100644 --- a/app/services/resource_access_tokens/create_service.rb +++ b/app/services/resource_access_tokens/create_service.rb @@ -75,7 +75,6 @@ module ResourceAccessTokens end def generate_email - # Default emaildomain need to be reworked. See gitlab-org/gitlab#260305 email_pattern = "#{resource_type}#{resource.id}_bot%s@noreply.#{Gitlab.config.gitlab.host}" uniquify.string(-> (n) { Kernel.sprintf(email_pattern, n) }) do |s| diff --git a/app/views/admin/application_settings/_localization.html.haml b/app/views/admin/application_settings/_localization.html.haml index d0bb6a78ed6..a6ed48ef4fe 100644 --- a/app/views/admin/application_settings/_localization.html.haml +++ b/app/views/admin/application_settings/_localization.html.haml @@ -1,4 +1,4 @@ -= form_for @application_setting, url: preferences_admin_application_settings_path(anchor: 'js-localization-settings'), html: { class: 'fieldset-form' } do |f| += gitlab_ui_form_for @application_setting, url: preferences_admin_application_settings_path(anchor: 'js-localization-settings'), html: { class: 'fieldset-form' } do |f| = form_errors(@application_setting) %fieldset @@ -11,13 +11,9 @@ .form-group = f.label :time_tracking, _('Time tracking'), class: 'label-bold' - .form-check - = f.check_box :time_tracking_limit_to_hours, class: 'form-check-input' - = f.label :time_tracking_limit_to_hours, class: 'form-check-label' do - = _('Limit display of time tracking units to hours.') - .form-text.text-muted - = _('Display time tracking in issues in total hours only.') - = link_to _('What is time tracking?'), help_page_path('user/project/time_tracking.md'), target: '_blank', rel: 'noopener noreferrer' + - time_tracking_help_link = help_page_path('user/project/time_tracking.md') + - time_tracking_help_link_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: time_tracking_help_link } + = f.gitlab_ui_checkbox_component :time_tracking_limit_to_hours, _('Limit display of time tracking units to hours.'), help_text: _('Display time tracking in issues in total hours only. %{link_start}What is time tracking?%{link_end}').html_safe % { link_start: time_tracking_help_link_start, link_end: '</a>'.html_safe } = f.submit _('Save changes'), class: "gl-button btn btn-confirm" diff --git a/app/views/projects/pages/_pages_settings.html.haml b/app/views/projects/pages/_pages_settings.html.haml index 15fb5755b61..0010564081e 100644 --- a/app/views/projects/pages/_pages_settings.html.haml +++ b/app/views/projects/pages/_pages_settings.html.haml @@ -2,21 +2,20 @@ - can_enforce_https_only=Gitlab.config.pages.external_http || Gitlab.config.pages.external_https - return unless can_edit_max_page_size || can_enforce_https_only -= form_for @project, url: project_pages_path(@project), html: { class: 'inline', title: pages_https_only_title } do |f| += gitlab_ui_form_for @project, url: project_pages_path(@project), html: { class: 'inline', title: pages_https_only_title } do |f| - if can_edit_max_page_size = render_if_exists 'shared/pages/max_pages_size_input', form: f - if can_enforce_https_only .form-group - .form-check - = f.check_box :pages_https_only, class: 'form-check-input', disabled: pages_https_only_disabled? - = f.label :pages_https_only, class: pages_https_only_label_class do - %strong - = s_('GitLabPages|Force HTTPS (requires valid certificates)') - - docs_link_start = "<a href='#{help_page_path('user/project/pages/custom_domains_ssl_tls_certification/index', anchor: 'force-https-for-gitlab-pages-websites')}' target='_blank' rel='noopener noreferrer'>".html_safe - - link_end = '</a>'.html_safe - %p - = s_("GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}").html_safe % { docs_link_start: docs_link_start, link_end: link_end } + = f.gitlab_ui_checkbox_component :pages_https_only, + s_('GitLabPages|Force HTTPS (requires valid certificates)'), + checkbox_options: { disabled: pages_https_only_disabled? }, + label_options: { class: 'label-bold' } + - docs_link_start = "<a href='#{help_page_path('user/project/pages/custom_domains_ssl_tls_certification/index', anchor: 'force-https-for-gitlab-pages-websites')}' target='_blank' rel='noopener noreferrer'>".html_safe + - link_end = '</a>'.html_safe + %p.gl-pl-6 + = s_("GitLabPages|When enabled, all attempts to visit your website through HTTP are automatically redirected to HTTPS using a response with status code 301. Requires a valid certificate for all domains. %{docs_link_start}Learn more.%{link_end}").html_safe % { docs_link_start: docs_link_start, link_end: link_end } .gl-mt-3 = f.submit s_('GitLabPages|Save changes'), class: 'btn btn-confirm gl-button' diff --git a/app/views/shared/issuable/_sidebar.html.haml b/app/views/shared/issuable/_sidebar.html.haml index 37d31515307..b99294f504c 100644 --- a/app/views/shared/issuable/_sidebar.html.haml +++ b/app/views/shared/issuable/_sidebar.html.haml @@ -97,7 +97,7 @@ - if issuable_sidebar.dig(:current_user, :can_move) .block.js-sidebar-move-issue-block .sidebar-collapsed-icon{ data: { toggle: 'tooltip', placement: 'left', container: 'body', boundary: 'viewport' }, title: _('Move issue') } - = custom_icon('icon_arrow_right') + = sprite_icon('long-arrow') .dropdown.sidebar-move-issue-dropdown.hide-collapsed %button.gl-button.btn.btn-default.btn-block.js-sidebar-dropdown-toggle.js-move-issue{ type: 'button', data: { toggle: 'dropdown', display: 'static', track_label: "right_sidebar", track_property: "move_issue", track_action: "click_button", track_value: "" } } |