Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ but if that is a non-trivial task, we might ask you to create another PR for tha

We want to keep the Pull request list as tidy as possible - we will aim close pull requests
after an **inactivity period of 30 days** (no comments, no further pushes)
which are not labelled as `work in progress` by us.
which are not labeled as `work in progress` by us.

## Security

Expand Down
2 changes: 1 addition & 1 deletion app/components/filters/filter_form_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
# <%= render(Filters::FilterFormComponent.new(builder: f, query: @query)) %>
# <% end %>
#
# Customise the set of advertised filters by passing `allowed_filters:` (used
# Customize the set of advertised filters by passing `allowed_filters:` (used
# by `Filter::FilterComponent` subclasses that restrict or reorder the list).
# To keep the default set but drop a few entries, pass `excluded_filters:` a
# list of filter names (e.g. `%i[project_id]`); they are removed from the
Expand Down
4 changes: 2 additions & 2 deletions app/components/my/time_management/_fullcalendar_frame.sass
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Shared frame for the FullCalendar based my work views.
//
// FullCalendar draws a border on the scrollgrid table and on every cell, so a frame around
// the grid lands next to those and reads as a thicker, differently coloured edge. The
// the grid lands next to those and reads as a thicker, differently colored edge. The
// container owns the frame and the cells on the outer edges give theirs up.

// Goes on the view root, for what renderDayTotal puts in a column footer.
Expand Down Expand Up @@ -31,7 +31,7 @@

// Goes on the view root, above the container.
=fc-frame-grid
// FullCalendar defaults to its own grey, a different colour from the container border.
// FullCalendar defaults to its own grey, a different color from the container border.
--fc-border-color: var(--borderColor-default)

// FullCalendar shades a focused event, and a card keeps focus once its context menu
Expand Down
2 changes: 1 addition & 1 deletion app/components/my/time_management/_time_entry_card.sass
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// views own the height, since that follows from how they size a bar.

// For the event element of a time entry, which each view names for itself. The work
// package type colour arrives as the top border, through __hl_border_top.
// package type color arrives as the top border, through __hl_border_top.
=te-time-entry-event
background: var(--bgColor-default)
border: 0
Expand Down
2 changes: 1 addition & 1 deletion app/components/my/time_management/calendar_component.sass
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
&.fc-daygrid-block-event
+te-entry-card-condensed

// The global FullCalendar styles colour every all-day event through #content-wrapper.
// The global FullCalendar styles color every all-day event through #content-wrapper.
&.fc-daygrid-event
background: var(--bgColor-muted) !important
border-color: var(--allocation-border-color) !important
Expand Down
2 changes: 1 addition & 1 deletion app/components/op_primer/border_box_table_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def row_class_for(_row)
end

# Data attributes for the box element wrapping the whole table, for
# subclasses that need to attach behaviour to it.
# subclasses that need to attach behavior to it.
def container_data
{}
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,9 @@
border-bottom-right-radius: 0

// Drop container: the whole list outlines while a sortable item hovers it,
// signalling the item will land inside this list. A refused container (a
// signaling the item will land inside this list. A refused container (a
// confined item hovering a foreign list) mutes the outline to a danger tone
// instead, signalling the item will not land here.
// instead, signaling the item will not land here.
&[data-drop-container]
outline: var(--borderWidth-thick) solid var(--fgColor-accent)
outline-offset: calc(var(--borderWidth-thick) * -1)
Expand Down Expand Up @@ -278,7 +278,7 @@
bottom: calc(var(--op-border-box-list-drop-gap-height) / -2)

// Empty-state wrapper. With a drop target label, an overlay covers the
// blankslate while a sortable item hovers the list, labelling it as a drop
// blankslate while a sortable item hovers the list, labeling it as a drop
// zone. Hidden via visibility so it is unreachable while inactive; the
// visibility delay keeps the overlay shown until the fade-out finishes.
.op-border-box-list-empty-state
Expand Down
2 changes: 1 addition & 1 deletion app/components/statuses/table_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ def container_id = "statuses-table"
def container_class = "op-statuses-table"

# Positions are global while a filtered list shows a non-contiguous subset, so a
# drop would resolve against neighbours the list does not display.
# drop would resolve against neighbors the list does not display.
def reorderable?
query.filters.empty?
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ See COPYRIGHT and LICENSE files for more details.
<% end %>
<% if variant == :undeletable %>
<%= render(Primer::Alpha::Banner.new(mb: 2, scheme: :warning, icon: :alert)) do %>
<%# helpers.t, not I18n.t: only the Rails helper honours the _html suffix %>
<%# helpers.t, not I18n.t: only the Rails helper honors the _html suffix %>
<%= helpers.t(
"work_packages.bulk_delete_dialog.#{undeletable_warning_key}",
count: undeletable_count,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ def readonly?
# behaves totally different than all other browsers and destroys the behavior of the datepicker
# Given a date field with no value: When Safari opens its native datepicker, the first thing it does is to
# set the date to Today. And not only in the datepicker but directly in the field.
# This behaviour has however consequences:
# This behavior has however consequences:
# * The "reset" button in the datepicker does not clear the input (as the other browsers do it) but it resets
# it to the original value it had when you opened it. So if the value was empty, it sets it back to empty.
# If the value was set before, you cannot clear it, but only set it back to that value.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ $body-height: 460px
align-items: flex-start !important
row-gap: 1rem

// re-implement the scrolling behaviour. Due to the turbo-frame element in between the default Dialog body scrolling does not work
// re-implement the scrolling behavior. Due to the turbo-frame element in between the default Dialog body scrolling does not work
.wp-datepicker-dialog--content
display: flex
flex-direction: column
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ See COPYRIGHT and LICENSE files for more details.
<% end %>
<% if variant == :undeletable %>
<%= render(Primer::Alpha::Banner.new(mb: 2, scheme: :warning, icon: :alert)) do %>
<%# helpers.t, not I18n.t: only the Rails helper honours the _html suffix %>
<%# helpers.t, not I18n.t: only the Rails helper honors the _html suffix %>
<%= helpers.t(
"work_packages.delete_dialog.#{undeletable_warning_key}",
count: undeletable_count,
Expand Down
2 changes: 1 addition & 1 deletion app/components/work_packages/status_badge_component.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def before_render

# A read-only status forbids every attribute write except the status itself
# ({WorkPackages::BaseContract#readonly_attributes_unchanged}), which is not
# something the badge's colour and name convey on their own. The lock says so,
# something the badge's color and name convey on their own. The lock says so,
# matching the leading visual {WorkPackages::StatusButtonComponent} already
# gives read-only options in the status dropdown.
#
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

module Admin
module Settings
# Shared behaviour for the dedicated per-type custom field admin pages
# Shared behavior for the dedicated per-type custom field admin pages
class CustomFieldsBaseController < ::Admin::SettingsController
include ::CustomFields::SharedActions
include ::CustomFields::AttributeHelpTextActions
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ def default_template(action_name = self.action_name)
return view_paths.find_template(default_template_name(action_name), "api")
rescue ::ActionView::MissingTemplate
# the api template was not found
# fallback to the default behaviour
# fallback to the default behavior
end
end
super
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/work_packages/auto_completes_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ def wp_hashes_with_string(work_packages)
# `displayId` collapses to the numeric id in classic mode and to the
# semantic identifier in semantic mode. The CKEditor mention plugin
# reads it to insert `#PROJ-7` (or `#1234`) into the markdown source.
# Stringified for parity with APIv3 (`WorkPackageRepresenter` serialises
# Stringified for parity with APIv3 (`WorkPackageRepresenter` serializes
# `displayId` as a string).
work_package.attributes.merge(
"to_s" => work_package.to_s,
Expand Down
2 changes: 1 addition & 1 deletion app/forms/projects/life_cycle/form.rb
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ def field_type
# behaves totally different than all other browsers and destroys the behavior of the datepicker
# Given a date field with no value: When Safari opens its native datepicker, the first thing it does is to
# set the date to Today. And not only in the datepicker but directly in the field.
# This behaviour has however consequences:
# This behavior has however consequences:
# * The "reset" button in the datepicker does not clear the input (as the other browsers do it) but it resets
# it to the original value it had when you opened it. So if the value was empty, it sets it back to empty.
# If the value was set before, you cannot clear it, but only set it back to that value.
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/work_packages_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ def work_package_versions_label
end

# Presented value for the version(s) attribute, read from target_versions.
# Legacy behaviour surfaces the single associated version; with the feature on
# Legacy behavior surfaces the single associated version; with the feature on
# it lists all target versions, ordered by name for a stable rendering.
def work_package_versions_value(work_package)
if Setting::WorkPackageMultipleVersions.active?
Expand Down
4 changes: 2 additions & 2 deletions app/models/attachment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def content_disposition(include_filename: true)
end

# Returns the Content-Type to use when serving this file inline in a browser.
# Text files are normalised to text/plain (prevents script execution) with an
# Text files are normalized to text/plain (prevents script execution) with an
# explicit charset. Non-inlineable files get application/octet-stream so the
# browser is forced to download them.
def served_content_type
Expand All @@ -136,7 +136,7 @@ def served_content_type
# Returns the content type to use when serving the file to a browser.
# For text files, ensures a charset is always present so browsers don't
# fall back to ISO-8859-1. Preserves the real MIME subtype (e.g. text/x-ruby)
# unlike served_content_type which normalises to text/plain for security.
# unlike served_content_type which normalizes to text/plain for security.
def serving_content_type
return content_type unless is_text?

Expand Down
2 changes: 1 addition & 1 deletion app/models/capabilities/scopes/default.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module Default
extend ActiveSupport::Concern

class_methods do
# Currently, this does not reflect the behaviour present in the backend that every permission in at least one project
# Currently, this does not reflect the behavior present in the backend that every permission in at least one project
# leads to having that permission in the global context as well. Hopefully, this is not necessary to be added.
def default
capabilities_sql = <<~SQL.squish
Expand Down
2 changes: 1 addition & 1 deletion app/models/custom_field/sectionable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
# See COPYRIGHT and LICENSE files for more details.
#++

# Shared behaviour for custom fields that belong to a CustomFieldSection and
# Shared behavior for custom fields that belong to a CustomFieldSection and
# maintain their position within that section via attribute_order.
# Include in UserCustomField and ProjectCustomField.
module CustomField::Sectionable
Expand Down
4 changes: 2 additions & 2 deletions app/models/exports/pdf/common/attachments.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

module Exports::PDF::Common::Attachments
# Deliberately not MiniMagick::Image#resize: that shells out to `mogrify`, which
# since ImageMagick 7.1.2-32 writes to a randomised temp name (`<file>-<hex>~`).
# since ImageMagick 7.1.2-32 writes to a randomized temp name (`<file>-<hex>~`).
# ImageMagick derives the coder from that name's extension, so the module policy in
# config/imagemagick/policy.xml denies it.
# https://github.com/ImageMagick/ImageMagick/issues/8995
Expand Down Expand Up @@ -128,7 +128,7 @@ def extract_first_webp_frame(filename) # rubocop:disable Metrics/AbcSize, Metric
# followed by the frame image data as a VP8 / VP8L / VP8X chunk.
# Wrap it in a minimal RIFF/WEBP container to create a single-frame WebP.
frame_chunk = data[pos + 8 + 16, chunk_size - 16]
# Reject frames whose payload isn't a recognised WebP bitstream type
# Reject frames whose payload isn't a recognized WebP bitstream type
next unless webp_type.map(&:b).include?(frame_chunk[0, 4])

riff_size = 4 + frame_chunk.bytesize # "WEBP" + frame data
Expand Down
2 changes: 1 addition & 1 deletion app/models/group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ def self.scim_attributes_map
# For now raises exception in case of group as a member arrival.
raise Scimitar::InvalidSyntaxError.new("Unsupported type #{type.inspect}")
else
raise Scimitar::InvalidSyntaxError.new("Unrecognised type #{type.inspect}")
raise Scimitar::InvalidSyntaxError.new("Unrecognized type #{type.inspect}")
end
}
}
Expand Down
2 changes: 1 addition & 1 deletion app/models/project_custom_field_section.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def self.with_available_fields_for(project)
# position and the fields within each section ordered by attribute_order.
# Sections that end up with no ordered field are dropped.
# Returns [[section, [ordered_cfs]], ...]. Two SQL queries: the given relation
# is materialised once, then the relevant sections are loaded.
# is materialized once, then the relevant sections are loaded.
def self.grouped_in_order(custom_fields)
cfs_by_section_id = custom_fields.group_by(&:custom_field_section_id)

Expand Down
6 changes: 3 additions & 3 deletions app/models/projects/custom_fields.rb
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ def available_custom_fields_for_variant(variant_id)
# Note:
#
# The UI allows the enabled attributes only via the project_custom_field_project_mappings.
# The API still provides the old behaviour where all the custom fields are available regardless
# of the enabled mapping. Once the api behaviour is aligned to the UI behaviour, this method
# can be removed in favour of the available_custom_fields.
# The API still provides the old behavior where all the custom fields are available regardless
# of the enabled mapping. Once the api behavior is aligned to the UI behavior, this method
# can be removed in favor of the available_custom_fields.
# As a future improvement a flag `via_api=true` can be set on the project when the
# modification happens via the api, then set the available_custom_fields accordingly. This allows
# the extension to be completely removed from the acts_as_customizable plugin.
Expand Down
2 changes: 1 addition & 1 deletion app/models/projects/identifier.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ module Projects::Identifier
# slug column to its previous value when validation fails. With slug_column: :identifier,
# this would reset a manually-set identifier back to nil on new records. Since the
# identifier is managed by our own callbacks and user input (not FriendlyId's slug generator),
# we disable this behaviour entirely.
# we disable this behavior entirely.
# Must be inside `included` to override FriendlyId::Slugged in the MRO.
def unset_slug_if_invalid; end
end
Expand Down
4 changes: 2 additions & 2 deletions app/models/queries/named_references/filters/member_exists.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ module Queries::NamedReferences::Filters::MemberExists
private

def member_exists(condition, binds, extra_joins: nil)
honouring_negation(member_exists_sql(condition, extra_joins:), binds)
honoring_negation(member_exists_sql(condition, extra_joins:), binds)
end

def member_exists_sql(condition, extra_joins: nil)
Expand All @@ -46,7 +46,7 @@ def member_exists_sql(condition, extra_joins: nil)
SQL
end

def honouring_negation(sql, binds)
def honoring_negation(sql, binds)
[negated? ? "NOT (#{sql})" : "(#{sql})", binds]
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def where
used_in = member_exists_sql("applications.project_id IN (:project_ids)",
extra_joins: "JOIN project_types applications ON applications.variant_id = members.id")

honouring_negation(conditions(used_in).join(" OR "), { project_ids: integer_values })
honoring_negation(conditions(used_in).join(" OR "), { project_ids: integer_values })
end

private
Expand Down
2 changes: 1 addition & 1 deletion app/models/repository.rb
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ def latest_changeset
end

# Returns the latest changesets for +path+
# Default behaviour is to search in cached changesets
# Default behavior is to search in cached changesets
def latest_changesets(path, _rev, limit = 10)
if path.blank?
changesets.includes(:user)
Expand Down
2 changes: 1 addition & 1 deletion app/models/user_custom_field_section.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class UserCustomFieldSection < CustomFieldSection
# Returns [[section, [ordered_cfs]], ...] for the given user's filled, visible
# custom fields. Pass visible_on_user_card: true to restrict to hover-card fields.
# Two SQL queries: one for sections, one for the relevant CFs (both use filled_cf_ids
# as a subquery so no values are materialised into Ruby memory).
# as a subquery so no values are materialized into Ruby memory).
def self.with_filled_fields_for(user, visible_on_user_card: nil) # rubocop:disable Metrics/AbcSize
cf_scope = UserCustomField.visible(User.current)
cf_scope = cf_scope.where(visible_on_user_card: true) if visible_on_user_card
Expand Down
2 changes: 1 addition & 1 deletion app/models/work_package/semantic_identifier.rb
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ def restore_identifier_after_failed_move
# Override ActiveRecord's default `to_param` so Rails URL helpers
# (work_package_path, polymorphic_path, form_for, etc.) automatically
# produce semantic-id URLs in semantic mode. In classic mode display_id
# returns the integer primary key, so this is behaviourally identical
# returns the integer primary key, so this is behaviorally identical
# to the inherited `id&.to_s`.
#
# API v3 deliberately bypasses this by passing `id:` kwargs explicitly
Expand Down
2 changes: 1 addition & 1 deletion app/models/work_packages/journal_timeline.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
# .group(:tick)
# .sum(:story_points) # => { Time(UTC) => Float }
#
# Entries are read-only and carry no work package behaviour; see Entry.
# Entries are read-only and carry no work package behavior; see Entry.
#
# A single tick is the frozen-snapshot case and needs no separate code path.
#
Expand Down
2 changes: 1 addition & 1 deletion app/models/workflows/matrix_context.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ def initialize(workflow:, variant: nil, scope_project: nil, tab: nil, role_ids:
@displayed_status_ids = status_ids_from(displayed_status_ids)
end

# Normalised, so that rendering, the status query and persistence cannot disagree
# Normalized, so that rendering, the status query and persistence cannot disagree
# about which tab is being edited. The raw value is absent whenever the matrix is
# opened without one.
def tab
Expand Down
2 changes: 1 addition & 1 deletion app/seeders/development_data/forums.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ forums:
Let's agree on **scope** and dates for 17.0:

- Feature freeze at the end of the month
- Two weeks of stabilisation
- Two weeks of stabilization
- Release on the first Tuesday after that

Anything blocking?
Expand Down
2 changes: 1 addition & 1 deletion app/seeders/development_data/user_custom_fields_seeder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

module DevelopmentData
# Seeds a handful of user attributes that fit the demo project's mix of
# conference organisation and software delivery work. The values are assigned
# conference organization and software delivery work. The values are assigned
# to the users created by the DepartmentSeeder.
class UserCustomFieldsSeeder < Seeder
JOB_TITLES = [
Expand Down
2 changes: 1 addition & 1 deletion app/services/base_services/set_attributes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def prepare_model(model)

def custom_field_ids_to_validate(params)
# Leave custom_field_ids_to_validate empty when the model is not persisted,
# allowing the default behaviour to set the id's to be validated in the
# allowing the default behavior to set the id's to be validated in the
# model.custom_values_to_validate method.
model.persisted? ? custom_field_ids_from(params) : []
end
Expand Down
2 changes: 1 addition & 1 deletion app/services/grids/copy_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ module Grids
# Base class for any grid-based model's copy service.
class CopyService < ::BaseServices::Copy
##
# DependentServices can be specialised through a class in the
# DependentServices can be specialized through a class in the
# concrete model's namespace, e.g. Boards::Copy::WidgetsDependentService.
def self.copy_dependencies
[
Expand Down
Loading
Loading