From d10406031483a38f3bbce84b61cfd91bc36e7ddf Mon Sep 17 00:00:00 2001 From: briri Date: Wed, 11 Jan 2023 09:06:36 -0800 Subject: [PATCH 1/5] fix to properly use max per page settings --- app/controllers/api/v1/base_api_controller.rb | 5 +++-- app/controllers/concerns/paginable.rb | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/v1/base_api_controller.rb b/app/controllers/api/v1/base_api_controller.rb index e25a6740a7..c1ddc36547 100644 --- a/app/controllers/api/v1/base_api_controller.rb +++ b/app/controllers/api/v1/base_api_controller.rb @@ -60,9 +60,10 @@ def base_response_content # Retrieve the requested pagination params or use defaults # only allow 100 per page as the max def pagination_params + max_per_page = Rails.configuration.x.application.api_max_page_size @page = params.fetch('page', 1).to_i - @per_page = params.fetch('per_page', 20).to_i - @per_page = 100 if @per_page > 100 + @per_page = params.fetch('per_page', max_per_page).to_i + @per_page = max_per_page if @per_page > max_per_page end # Parse the body of the incoming request diff --git a/app/controllers/concerns/paginable.rb b/app/controllers/concerns/paginable.rb index 71d3eacb01..aed2366725 100644 --- a/app/controllers/concerns/paginable.rb +++ b/app/controllers/concerns/paginable.rb @@ -156,7 +156,7 @@ def refine_query(scope) if @args[:page] != 'ALL' # Can raise error if page is not a number scope = scope.page(@args[:page]) - .per(@args.fetch(:per_page, Rails.configuration.x.application.api_max_page_size)) + .per(@args.fetch(:per_page, Rails.configuration.x.results_per_page)) end scope end From ffbe90ce87738ef438edb37db272392a1be08899 Mon Sep 17 00:00:00 2001 From: briri Date: Wed, 11 Jan 2023 09:48:55 -0800 Subject: [PATCH 2/5] added changelog entry --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b64a2b09ad..e54ff8efda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,11 @@ # Changelog -### Added +### Added - Added CHANGELOG.md and Danger Github Action [#3257](https://github.com/DMPRoadmap/roadmap/issues/3257) ### Fixed +- Fixed discrepencies with default/max per_page values for API and UI pagination + ### Changed From d6ee0ff6b0cf23655b136c489762c9aa4fcfaded Mon Sep 17 00:00:00 2001 From: briri Date: Mon, 23 Jan 2023 07:47:41 -0800 Subject: [PATCH 3/5] updated api v0 to use max_pages config value for api --- app/controllers/api/v0/base_controller.rb | 1 + app/controllers/api/v0/plans_controller.rb | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v0/base_controller.rb b/app/controllers/api/v0/base_controller.rb index fb8309bd39..ca6a1abe7e 100644 --- a/app/controllers/api/v0/base_controller.rb +++ b/app/controllers/api/v0/base_controller.rb @@ -6,6 +6,7 @@ module V0 class BaseController < ApplicationController protect_from_forgery with: :null_session before_action :define_resource, only: %i[destroy show update] + before_action :pagination_params, only: %i[index] respond_to :json # POST /api/{plural_resource_name} diff --git a/app/controllers/api/v0/plans_controller.rb b/app/controllers/api/v0/plans_controller.rb index 374d5401d9..0ea43ba707 100644 --- a/app/controllers/api/v0/plans_controller.rb +++ b/app/controllers/api/v0/plans_controller.rb @@ -98,7 +98,11 @@ def index plan_ids = extract_param_list(params, 'plan') @plans = @plans.where(id: plan_ids) if plan_ids.present? # apply pagination after filtering - @args = { per_page: params[:per_page], page: params[:page] } + max_per_page = Rails.configuration.x.application.api_max_page_size + page = params.fetch('page', 1).to_i + per_page = params.fetch('per_page', max_per_page).to_i + per_page = max_per_page if @per_page > max_per_page + @args = { per_page: per_page, page: page } @plans = refine_query(@plans) respond_with @plans end From 16c2f27492446faa3ab56725e23ed2be79f5527e Mon Sep 17 00:00:00 2001 From: briri Date: Mon, 23 Jan 2023 09:07:17 -0800 Subject: [PATCH 4/5] Updated PDF font selector to use Roboto instead of Helvetica since Google no longer has Helvetica updated changelog --- CHANGELOG.md | 4 +++- app/helpers/exports_helper.rb | 2 +- app/models/settings/template.rb | 2 +- app/views/shared/export/_plan_styling.erb | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b64a2b09ad..da7e21a9ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,11 @@ # Changelog -### Added +### Added - Added CHANGELOG.md and Danger Github Action [#3257](https://github.com/DMPRoadmap/roadmap/issues/3257) ### Fixed +- Updated sans-serif font used in PDF downloads to Roboto since Google API no longer offers Helvetica + ### Changed diff --git a/app/helpers/exports_helper.rb b/app/helpers/exports_helper.rb index a288457477..192ae49914 100644 --- a/app/helpers/exports_helper.rb +++ b/app/helpers/exports_helper.rb @@ -10,7 +10,7 @@ module ExportsHelper }.freeze def font_face - @formatting[:font_face].presence || 'Arial, Helvetica, Sans-Serif' + @formatting[:font_face].presence || 'Roboto, Arial, Sans-Serif' end def font_size diff --git a/app/models/settings/template.rb b/app/models/settings/template.rb index a0ee4c6377..dbffe03c23 100644 --- a/app/models/settings/template.rb +++ b/app/models/settings/template.rb @@ -18,7 +18,7 @@ module Settings class Template < RailsSettings::SettingObject VALID_FONT_FACES = [ '"Times New Roman", Times, Serif', - 'Arial, Helvetica, Sans-Serif' + 'Roboto, Arial, Sans-Serif' ].freeze VALID_FONT_SIZE_RANGE = (8..14).freeze diff --git a/app/views/shared/export/_plan_styling.erb b/app/views/shared/export/_plan_styling.erb index 7ed339fecc..d8c0f3d059 100644 --- a/app/views/shared/export/_plan_styling.erb +++ b/app/views/shared/export/_plan_styling.erb @@ -1,5 +1,5 @@ \ No newline at end of file From b66478039f4a0a2f648540b97b4d5cfa4671e01e Mon Sep 17 00:00:00 2001 From: briri Date: Wed, 25 Jan 2023 08:56:31 -0800 Subject: [PATCH 5/5] removed before action from api v0 base_controller. opted to just include functionality in the plans controller --- app/controllers/api/v0/base_controller.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/controllers/api/v0/base_controller.rb b/app/controllers/api/v0/base_controller.rb index ca6a1abe7e..fb8309bd39 100644 --- a/app/controllers/api/v0/base_controller.rb +++ b/app/controllers/api/v0/base_controller.rb @@ -6,7 +6,6 @@ module V0 class BaseController < ApplicationController protect_from_forgery with: :null_session before_action :define_resource, only: %i[destroy show update] - before_action :pagination_params, only: %i[index] respond_to :json # POST /api/{plural_resource_name}