diff --git a/app/components/open_project/common/submenu_component.html.erb b/app/components/open_project/common/submenu_component.html.erb
index 5a82089c8cb..f671b80a712 100644
--- a/app/components/open_project/common/submenu_component.html.erb
+++ b/app/components/open_project/common/submenu_component.html.erb
@@ -84,7 +84,7 @@
<%= render Primer::Beta::Octicon.new(icon: "op-enterprise-addons", "aria-label": I18n.t(:label_enterprise_edition), classes: "upsell-colored", ml: 2) %>
<% end %>
- <% if child_item.favored %>
+ <% if child_item.favorited %>
<%= render Primer::Beta::Octicon.new(icon: "star-fill", "aria-label": I18n.t(:label_favorite), classes: %w[op-submenu--item-mark op-primer--star-icon], ml: 2) %>
<% end %>
diff --git a/app/components/projects/index_page_header_component.html.erb b/app/components/projects/index_page_header_component.html.erb
index a9fff8eebaa..4bcee7d9c0a 100644
--- a/app/components/projects/index_page_header_component.html.erb
+++ b/app/components/projects/index_page_header_component.html.erb
@@ -45,8 +45,8 @@
)
end
- if can_toggle_favor?
- if currently_favored?
+ if can_toggle_favorite?
+ if currently_favorited?
header.with_action_icon_button(
icon: "star-fill",
mobile_icon: "star-fill",
diff --git a/app/components/projects/index_page_header_component.rb b/app/components/projects/index_page_header_component.rb
index 43474279bc1..e793a12fc46 100644
--- a/app/components/projects/index_page_header_component.rb
+++ b/app/components/projects/index_page_header_component.rb
@@ -106,9 +106,9 @@ class Projects::IndexPageHeaderComponent < ApplicationComponent
query.persisted?
end
- def can_toggle_favor? = query.persisted?
+ def can_toggle_favorite? = query.persisted?
- def currently_favored? = query.favored_by?(current_user)
+ def currently_favorited? = query.favorited_by?(current_user)
def breadcrumb_items
[
diff --git a/app/components/projects/projects_filters_component.rb b/app/components/projects/projects_filters_component.rb
index e9e7993e15c..35b284cd572 100644
--- a/app/components/projects/projects_filters_component.rb
+++ b/app/components/projects/projects_filters_component.rb
@@ -48,7 +48,7 @@ class Projects::ProjectsFiltersComponent < Filter::FilterComponent
Queries::Filters::Shared::CustomFields::Base,
Queries::Projects::Filters::ActiveFilter,
Queries::Projects::Filters::CreatedAtFilter,
- Queries::Projects::Filters::FavoredFilter,
+ Queries::Projects::Filters::FavoritedFilter,
Queries::Projects::Filters::IdFilter,
Queries::Projects::Filters::LatestActivityAtFilter,
Queries::Projects::Filters::ProjectPhaseAnyFilter,
diff --git a/app/components/projects/row_component.rb b/app/components/projects/row_component.rb
index 89b88b3587d..4fe26d5335c 100644
--- a/app/components/projects/row_component.rb
+++ b/app/components/projects/row_component.rb
@@ -30,7 +30,7 @@
module Projects
class RowComponent < ::RowComponent
delegate :identifier, to: :project
- delegate :favored_project_ids,
+ delegate :favorited_project_ids,
:project_phase_by_definition,
to: :table
@@ -47,25 +47,25 @@ module Projects
""
end
- def favored
+ def favorited
render(Primer::Beta::IconButton.new(
- icon: currently_favored? ? "star-fill" : "star",
+ icon: currently_favorited? ? "star-fill" : "star",
scheme: :invisible,
- mobile_icon: currently_favored? ? "star-fill" : "star",
+ mobile_icon: currently_favorited? ? "star-fill" : "star",
size: :medium,
tag: :a,
tooltip_direction: :e,
href: helpers.build_favorite_path(project, format: :html),
- data: { "turbo-method": currently_favored? ? :delete : :post },
- classes: currently_favored? ? "op-primer--star-icon " : "op-project-row-component--favorite",
- label: currently_favored? ? I18n.t(:button_unfavorite) : I18n.t(:button_favorite),
- aria: { label: currently_favored? ? I18n.t(:button_unfavorite) : I18n.t(:button_favorite) },
+ data: { "turbo-method": currently_favorited? ? :delete : :post },
+ classes: currently_favorited? ? "op-primer--star-icon " : "op-project-row-component--favorite",
+ label: currently_favorited? ? I18n.t(:button_unfavorite) : I18n.t(:button_favorite),
+ aria: { label: currently_favorited? ? I18n.t(:button_unfavorite) : I18n.t(:button_favorite) },
test_selector: "project-list-favorite-button"
))
end
- def currently_favored?
- @currently_favored ||= favored_project_ids.include?(project.id)
+ def currently_favorited?
+ @currently_favorited ||= favorited_project_ids.include?(project.id)
end
def column_value(column)
@@ -215,10 +215,10 @@ module Projects
def additional_css_class(column)
if column.attribute == :name
- "project--hierarchy #{project.archived? ? 'archived' : ''}"
+ "project--hierarchy #{'archived' if project.archived?}"
elsif %i[status_explanation description].include?(column.attribute)
"project-long-text-container"
- elsif column.attribute == :favored
+ elsif column.attribute == :favorited
"-w-abs-45"
elsif custom_field_column?(column)
cf = column.custom_field
@@ -267,7 +267,7 @@ module Projects
end
def more_menu_favorite_item
- return if currently_favored?
+ return if currently_favorited?
{
scheme: :default,
@@ -280,7 +280,7 @@ module Projects
end
def more_menu_unfavorite_item
- return unless currently_favored?
+ return unless currently_favorited?
{
scheme: :default,
diff --git a/app/components/projects/table_component.rb b/app/components/projects/table_component.rb
index f0ef1202dff..d6a115fc5e3 100644
--- a/app/components/projects/table_component.rb
+++ b/app/components/projects/table_component.rb
@@ -191,8 +191,8 @@ module Projects
end
end
- def favored_project_ids
- @favored_project_ids ||= Favorite.where(user: current_user, favored_type: "Project").pluck(:favored_id)
+ def favorited_project_ids
+ @favorited_project_ids ||= Favorite.where(user: current_user, favorited_type: "Project").pluck(:favorited_id)
end
def project_phase_by_definition(definition, project)
diff --git a/app/controllers/favorites_controller.rb b/app/controllers/favorites_controller.rb
index f1acf4f3e2d..a448606ff97 100644
--- a/app/controllers/favorites_controller.rb
+++ b/app/controllers/favorites_controller.rb
@@ -29,33 +29,33 @@
#++
class FavoritesController < ApplicationController
- before_action :find_favored_by_object
+ before_action :find_favorited_by_object
before_action :require_login
no_authorization_required! :favorite, :unfavorite
def favorite
- if @favored.visible?(User.current)
- set_favored(User.current, true)
+ if @favorited.visible?(User.current)
+ set_favorited(User.current, true)
else
render_403
end
end
def unfavorite
- set_favored(User.current, false)
+ set_favorited(User.current, false)
end
private
- def find_favored_by_object
+ def find_favorited_by_object
model_name = params[:object_type]
- klass = ::OpenProject::Acts::Favorable::Registry.instance(model_name)
- @favored = klass&.find(params[:object_id])
- render_404 unless @favored
+ klass = ::OpenProject::Acts::Favoritable::Registry.instance(model_name)
+ @favorited = klass&.find(params[:object_id])
+ render_404 unless @favorited
end
- def set_favored(user, favored)
- @favored.set_favored(user, favored:)
+ def set_favorited(user, favorited)
+ @favorited.set_favorited(user, favorited:)
respond_to do |format|
format.html { redirect_back(fallback_location: home_url, status: 303) }
diff --git a/app/controllers/homescreen_controller.rb b/app/controllers/homescreen_controller.rb
index ed7f9a66a9c..aaa7e6090f5 100644
--- a/app/controllers/homescreen_controller.rb
+++ b/app/controllers/homescreen_controller.rb
@@ -37,7 +37,7 @@ class HomescreenController < ApplicationController
def index
@newest_projects = Project.visible.newest.take(3)
- @favorite_projects = Project.visible.active.favored_by(User.current)
+ @favorite_projects = Project.visible.active.favorited_by(User.current)
@newest_users = User.active.newest.take(3)
@news = News.latest(count: 3)
@announcement = Announcement.active_and_current
diff --git a/app/helpers/sort_helper.rb b/app/helpers/sort_helper.rb
index eded417bd26..3fd55d4e29a 100644
--- a/app/helpers/sort_helper.rb
+++ b/app/helpers/sort_helper.rb
@@ -347,7 +347,7 @@ module SortHelper
data = options.delete(:data) || {}
options[:title] = sort_header_title(column, caption, options) if with_title
- options[:icon_only_header] = column == :favored
+ options[:icon_only_header] = column == :favorited
within_sort_header_tag_hierarchy(options, sort_class(column)) do
yield(column, caption, default_order, allowed_params:, param:, lang:, title: options[:title],
@@ -401,7 +401,7 @@ module SortHelper
content_args = html_options.merge(rel: :nofollow, param: nil)
render Primer::Alpha::ActionMenu.new(menu_id: "menu-#{attribute}") do |menu|
- action_button(menu, column, caption, favorite: column == :favored)
+ action_button(menu, column, caption, favorite: column == :favorited)
# Some columns are not sortable or do not offer a suitable filter. Omit those actions for them.
sort_actions(menu, attribute, default_order, content_args:, allowed_params:, **html_options) if sortable
diff --git a/app/menus/projects/menu.rb b/app/menus/projects/menu.rb
index f2c4a7c5ae2..da98c81728e 100644
--- a/app/menus/projects/menu.rb
+++ b/app/menus/projects/menu.rb
@@ -68,8 +68,8 @@ module Projects
end
end
- def favored?(query_params)
- query_params[:query_id].in?(favored_ids)
+ def favorited?(query_params)
+ query_params[:query_id].in?(favorited_ids)
end
def query_path(query_params)
@@ -82,7 +82,7 @@ module Projects
static_filters [
ProjectQueries::Static::ACTIVE,
current_user.logged? ? ProjectQueries::Static::MY : nil,
- current_user.logged? ? ProjectQueries::Static::FAVORED : nil,
+ current_user.logged? ? ProjectQueries::Static::FAVORITED : nil,
current_user.admin? ? ProjectQueries::Static::ARCHIVED : nil
].compact
end
@@ -116,12 +116,12 @@ module Projects
def persisted_filters
@persisted_filters ||= ::ProjectQuery
.visible(current_user)
- .with_favored_by_user(current_user)
- .order(favored: :desc, name: :asc)
+ .with_favorited_by_user(current_user)
+ .order(favorited: :desc, name: :asc)
end
- def favored_ids
- @favored_ids ||= persisted_filters.select(&:favored).to_set(&:id)
+ def favorited_ids
+ @favorited_ids ||= persisted_filters.select(&:favorited).to_set(&:id)
end
def modification_params?
diff --git a/app/menus/submenu.rb b/app/menus/submenu.rb
index bd070dbefbf..80e2859d3be 100644
--- a/app/menus/submenu.rb
+++ b/app/menus/submenu.rb
@@ -29,6 +29,7 @@
# ++
class Submenu
include Rails.application.routes.url_helpers
+
attr_reader :view_type, :project, :params
def initialize(view_type:, params:, project: nil)
@@ -117,7 +118,7 @@ class Submenu
icon: icon_map.fetch(icon_key, icon_key),
count:,
selected:,
- favored: favored?(query_params),
+ favorited: favorited?(query_params),
show_enterprise_icon:)
end
@@ -129,14 +130,14 @@ class Submenu
end
end
- if query_params.empty? && (%i[filters query_props query_id name].any? { |k| params.key? k })
+ if query_params.empty? && %i[filters query_props query_id name].any? { |k| params.key? k }
return false
end
true
end
- def favored?(_query_params)
+ def favorited?(_query_params)
false
end
diff --git a/app/models/application_record.rb b/app/models/application_record.rb
index b32fff78d3d..cbd61c00513 100644
--- a/app/models/application_record.rb
+++ b/app/models/application_record.rb
@@ -30,7 +30,7 @@
class ApplicationRecord < ActiveRecord::Base
include ::OpenProject::Acts::Watchable
- include ::OpenProject::Acts::Favorable
+ include ::OpenProject::Acts::Favoritable
self.abstract_class = true
diff --git a/app/models/favorite.rb b/app/models/favorite.rb
index 2acfda0e245..cdfadef06f4 100644
--- a/app/models/favorite.rb
+++ b/app/models/favorite.rb
@@ -30,8 +30,8 @@
class Favorite < ApplicationRecord
belongs_to :user
- belongs_to :favored, polymorphic: true
+ belongs_to :favorited, polymorphic: true
validates :user, presence: true
- validates :favored, presence: true
+ validates :favorited, presence: true
end
diff --git a/app/models/project.rb b/app/models/project.rb
index e033cba919e..1d7733dc638 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -108,7 +108,7 @@ class Project < ApplicationRecord
store_attribute :settings, :deactivate_work_package_attachments, :boolean
store_attribute :settings, :enabled_internal_comments, :boolean
- acts_as_favorable
+ acts_as_favoritable
acts_as_customizable validate_on: :saving_custom_fields
# extended in Projects::CustomFields in order to support sections
diff --git a/app/models/project_queries/static.rb b/app/models/project_queries/static.rb
index 6c2d9e6d136..be3097f4d8a 100644
--- a/app/models/project_queries/static.rb
+++ b/app/models/project_queries/static.rb
@@ -31,7 +31,7 @@
class ProjectQueries::Static
ACTIVE = "active"
MY = "my"
- FAVORED = "favored"
+ FAVORITED = "favorited"
ARCHIVED = "archived"
ON_TRACK = "on_track"
OFF_TRACK = "off_track"
@@ -46,8 +46,8 @@ class ProjectQueries::Static
static_query_active
when MY
static_query_my
- when FAVORED
- static_query_favored
+ when FAVORITED
+ static_query_favorited
when ARCHIVED
static_query_archived
when ON_TRACK
@@ -73,9 +73,9 @@ class ProjectQueries::Static
end
end
- def static_query_favored
- list_with(:"projects.lists.favored") do |query|
- query.where("favored", "=", OpenProject::Database::DB_VALUE_TRUE)
+ def static_query_favorited
+ list_with(:"projects.lists.favorited") do |query|
+ query.where("favorited", "=", OpenProject::Database::DB_VALUE_TRUE)
end
end
diff --git a/app/models/project_query.rb b/app/models/project_query.rb
index 72c1dac815a..1b667eec810 100644
--- a/app/models/project_query.rb
+++ b/app/models/project_query.rb
@@ -36,7 +36,7 @@ class ProjectQuery < ApplicationRecord
belongs_to :user
- acts_as_favorable
+ acts_as_favoritable
serialize :filters, coder: Queries::Serialization::Filters.new(self)
serialize :orders, coder: Queries::Serialization::Orders.new(self)
diff --git a/app/models/projects/exports/formatters/favored.rb b/app/models/projects/exports/formatters/favorited.rb
similarity index 86%
rename from app/models/projects/exports/formatters/favored.rb
rename to app/models/projects/exports/formatters/favorited.rb
index 12909e98891..cd90af0737b 100644
--- a/app/models/projects/exports/formatters/favored.rb
+++ b/app/models/projects/exports/formatters/favorited.rb
@@ -29,15 +29,15 @@
#++
module Projects::Exports
module Formatters
- class Favored < ::Exports::Formatters::Default
+ class Favorited < ::Exports::Formatters::Default
def self.apply?(attribute, export_format)
- export_format == :pdf && attribute.to_sym == :favored
+ export_format == :pdf && attribute.to_sym == :favorited
end
##
- # Takes a project and returns yes/no depending on the favored attribute
+ # Takes a project and returns yes/no depending on the favorited attribute
def format(project, **)
- project.favored_by?(User.current) ? I18n.t(:general_text_Yes) : I18n.t(:general_text_No)
+ project.favorited_by?(User.current) ? I18n.t(:general_text_Yes) : I18n.t(:general_text_No)
end
end
end
diff --git a/app/models/projects/exports/pdf_export/report.rb b/app/models/projects/exports/pdf_export/report.rb
index 00b3366ab51..bb57847abc3 100644
--- a/app/models/projects/exports/pdf_export/report.rb
+++ b/app/models/projects/exports/pdf_export/report.rb
@@ -170,7 +170,7 @@ module Projects::Exports::PDFExport
end
def can_view_attribute?(_project, attribute)
- attribute && %i[name favored].exclude?(attribute)
+ attribute && %i[name favorited].exclude?(attribute)
end
def user_can_view_project_phases?(project)
diff --git a/app/models/queries/projects.rb b/app/models/queries/projects.rb
index d5f185fb634..93ba0f9cffd 100644
--- a/app/models/queries/projects.rb
+++ b/app/models/queries/projects.rb
@@ -36,7 +36,7 @@ module Queries::Projects
filter Filters::AvailableProjectAttributesFilter
filter Filters::CreatedAtFilter
filter Filters::CustomFieldFilter
- filter Filters::FavoredFilter
+ filter Filters::FavoritedFilter
filter Filters::IdFilter
filter Filters::LatestActivityAtFilter
filter Filters::ProjectPhaseAnyFilter
@@ -67,7 +67,7 @@ module Queries::Projects
select Selects::CreatedAt
select Selects::CustomField
select Selects::Default
- select Selects::Favored
+ select Selects::Favorited
select Selects::LatestActivityAt
select Selects::ProjectPhase
select Selects::RequiredDiskSpace
diff --git a/app/models/queries/projects/filters/favored_filter.rb b/app/models/queries/projects/filters/favorited_filter.rb
similarity index 84%
rename from app/models/queries/projects/filters/favored_filter.rb
rename to app/models/queries/projects/filters/favorited_filter.rb
index 7aa23218431..11039427f73 100644
--- a/app/models/queries/projects/filters/favored_filter.rb
+++ b/app/models/queries/projects/filters/favorited_filter.rb
@@ -28,11 +28,11 @@
# See COPYRIGHT and LICENSE files for more details.
#++
-class Queries::Projects::Filters::FavoredFilter < Queries::Projects::Filters::Base
+class Queries::Projects::Filters::FavoritedFilter < Queries::Projects::Filters::Base
include Queries::Filters::Shared::BooleanFilter
def self.key
- :favored
+ :favorited
end
def human_name
@@ -46,9 +46,9 @@ class Queries::Projects::Filters::FavoredFilter < Queries::Projects::Filters::Ba
def apply_to(_query_scope)
if (values.first == OpenProject::Database::DB_VALUE_TRUE && operator_strategy == Queries::Operators::BooleanEquals) ||
(values.first == OpenProject::Database::DB_VALUE_FALSE && operator_strategy == Queries::Operators::BooleanNotEquals)
- super.where(id: favored_project_ids)
+ super.where(id: favorited_project_ids)
else
- super.where.not(id: favored_project_ids)
+ super.where.not(id: favorited_project_ids)
end
end
@@ -57,9 +57,9 @@ class Queries::Projects::Filters::FavoredFilter < Queries::Projects::Filters::Ba
nil
end
- def favored_project_ids
+ def favorited_project_ids
Favorite
- .where(favored_type: "Project", user_id: User.current.id)
- .select(:favored_id)
+ .where(favorited_type: "Project", user_id: User.current.id)
+ .select(:favorited_id)
end
end
diff --git a/app/models/queries/projects/selects/favored.rb b/app/models/queries/projects/selects/favorited.rb
similarity index 94%
rename from app/models/queries/projects/selects/favored.rb
rename to app/models/queries/projects/selects/favorited.rb
index 35a2ae1f9a0..a68c585e8b3 100644
--- a/app/models/queries/projects/selects/favored.rb
+++ b/app/models/queries/projects/selects/favorited.rb
@@ -28,9 +28,9 @@
# See COPYRIGHT and LICENSE files for more details.
# ++
-class Queries::Projects::Selects::Favored < Queries::Selects::Base
+class Queries::Projects::Selects::Favorited < Queries::Selects::Base
def self.key
- :favored
+ :favorited
end
def self.available?
diff --git a/app/services/project_queries/set_attributes_service.rb b/app/services/project_queries/set_attributes_service.rb
index dcc31c97adb..0fb8890141a 100644
--- a/app/services/project_queries/set_attributes_service.rb
+++ b/app/services/project_queries/set_attributes_service.rb
@@ -94,6 +94,6 @@ class ProjectQueries::SetAttributesService < BaseServices::SetAttributes
end
def default_columns
- (["favored", "name"] + Setting.enabled_projects_columns).uniq
+ (["favorited", "name"] + Setting.enabled_projects_columns).uniq
end
end
diff --git a/app/views/homescreen/blocks/_projects.html.erb b/app/views/homescreen/blocks/_projects.html.erb
index 52f0e92b869..580e817021d 100644
--- a/app/views/homescreen/blocks/_projects.html.erb
+++ b/app/views/homescreen/blocks/_projects.html.erb
@@ -2,7 +2,7 @@
<% if @favorite_projects.any? %>
-
<%= t("projects.lists.favored") %>
+
<%= t("projects.lists.favorited") %>
-
-
- {{ displayMode === 'favored' ? text.no_favorite_results : text.no_results }}
+ {{ displayMode === 'favorited' ? text.no_favorite_results : text.no_results }}
diff --git a/frontend/src/app/shared/components/header-project-select/header-project-select.component.ts b/frontend/src/app/shared/components/header-project-select/header-project-select.component.ts
index 8bb34e216e2..82fc6766f0f 100644
--- a/frontend/src/app/shared/components/header-project-select/header-project-select.component.ts
+++ b/frontend/src/app/shared/components/header-project-select/header-project-select.component.ts
@@ -110,7 +110,7 @@ export class OpHeaderProjectSelectComponent extends UntilDestroyedMixin implemen
.apiV3Service
.projects
.signalled(
- ApiV3Filter('favored', '=', true),
+ ApiV3Filter('favorited', '=', true),
[
'elements/id',
],
@@ -125,7 +125,7 @@ export class OpHeaderProjectSelectComponent extends UntilDestroyedMixin implemen
public text = {
all: this.I18n.t('js.label_all_uppercase'),
- favored: this.I18n.t('js.label_favorites'),
+ favorited: this.I18n.t('js.label_favorites'),
no_favorites: this.I18n.t('js.favorite_projects.no_results'),
no_favorites_subtext: this.I18n.t('js.favorite_projects.no_results_subtext'),
project: {
@@ -140,11 +140,11 @@ export class OpHeaderProjectSelectComponent extends UntilDestroyedMixin implemen
no_favorite_results: this.I18n.t('js.include_projects.no_favorite_results'),
};
- public displayMode:'all'|'favored';
+ public displayMode:'all'|'favorited';
public displayModeOptions = [
{ value: 'all', title: this.text.all },
- { value: 'favored', title: this.text.favored },
+ { value: 'favorited', title: this.text.favorited },
];
/* This seems like a way too convoluted loading check, but there's a good reason we need it.
@@ -197,7 +197,7 @@ export class OpHeaderProjectSelectComponent extends UntilDestroyedMixin implemen
}
ngOnInit():void {
- const stored = window.OpenProject.guardedLocalStorage(this.displayModeLocalStorageKey) as 'all'|'favored'|undefined;
+ const stored = window.OpenProject.guardedLocalStorage(this.displayModeLocalStorageKey) as 'all'|'favorited'|undefined;
this.displayMode = stored || 'all';
}
@@ -211,7 +211,7 @@ export class OpHeaderProjectSelectComponent extends UntilDestroyedMixin implemen
});
}
- displayModeChange(mode:'all'|'favored'):void {
+ displayModeChange(mode:'all'|'favorited'):void {
this.displayMode = mode;
window.OpenProject.guardedLocalStorage(this.displayModeLocalStorageKey, mode);
diff --git a/frontend/src/app/shared/components/header-project-select/list/header-project-select-list.component.html b/frontend/src/app/shared/components/header-project-select/list/header-project-select-list.component.html
index 17ea499a23b..a8fbfc6c522 100644
--- a/frontend/src/app/shared/components/header-project-select/list/header-project-select-list.component.html
+++ b/frontend/src/app/shared/components/header-project-select/list/header-project-select-list.component.html
@@ -26,7 +26,7 @@
[textContent]="project.name">