From 04120cc4e3aea33e17120c36deadf5f499fc6adb Mon Sep 17 00:00:00 2001 From: Kostas Sklias <> Date: Wed, 20 Dec 2023 18:03:28 +0200 Subject: [PATCH 1/2] Adds liquid display support for issue titles --- app/controllers/activities_controller.rb | 1 + app/controllers/evidence_controller.rb | 1 + app/controllers/issues/evidence_controller.rb | 1 + .../nested_node_resource_controller.rb | 1 + app/controllers/projects_controller.rb | 7 ++++--- app/controllers/search_controller.rb | 15 +++++++++------ app/helpers/application_helper.rb | 6 +++++- app/views/evidence/activities/_evidence.html.erb | 2 +- app/views/evidence/edit.html.erb | 2 +- app/views/evidence/show.html.erb | 2 +- app/views/issues/_breadcrumbs.html.erb | 2 +- app/views/issues/_issue.html.erb | 4 ++-- app/views/issues/_table.html.erb | 3 ++- app/views/issues/activities/_issue.html.erb | 2 +- app/views/issues/evidence/_table.html.erb | 2 +- app/views/issues/evidence/new.html.erb | 6 +++--- app/views/issues/import.html.erb | 2 +- app/views/issues/merge/new.html.erb | 2 +- app/views/issues/show.html.erb | 4 ++-- app/views/projects/issues/_summary.html.erb | 4 ++-- app/views/qa/issues/_breadcrumbs.html.erb | 2 +- app/views/qa/issues/show.html.erb | 2 +- app/views/search/results/_evidence.html.erb | 2 +- 23 files changed, 44 insertions(+), 31 deletions(-) diff --git a/app/controllers/activities_controller.rb b/app/controllers/activities_controller.rb index 5bc0f17af..0ff83097a 100644 --- a/app/controllers/activities_controller.rb +++ b/app/controllers/activities_controller.rb @@ -2,6 +2,7 @@ # users. class ActivitiesController < AuthenticatedController + include LiquidEnabledResource include ProjectScoped def index diff --git a/app/controllers/evidence_controller.rb b/app/controllers/evidence_controller.rb index e66247f42..ccdf11198 100644 --- a/app/controllers/evidence_controller.rb +++ b/app/controllers/evidence_controller.rb @@ -6,6 +6,7 @@ class EvidenceController < NestedNodeResourceController include MultipleDestroy include NodesSidebar include NotificationsReader + include ProjectScoped before_action :set_or_initialize_evidence, except: [ :index, :create_multiple ] before_action :initialize_nodes_sidebar, only: [ :edit, :new, :show ] diff --git a/app/controllers/issues/evidence_controller.rb b/app/controllers/issues/evidence_controller.rb index 23dc7b5e5..52fdd13a9 100644 --- a/app/controllers/issues/evidence_controller.rb +++ b/app/controllers/issues/evidence_controller.rb @@ -2,6 +2,7 @@ class Issues::EvidenceController < AuthenticatedController include ActivityTracking include ContentFromTemplate include DynamicFieldNamesCacher + include LiquidEnabledResource include MultipleDestroy include ProjectScoped diff --git a/app/controllers/nested_node_resource_controller.rb b/app/controllers/nested_node_resource_controller.rb index fe0e02ad4..f2f84075f 100644 --- a/app/controllers/nested_node_resource_controller.rb +++ b/app/controllers/nested_node_resource_controller.rb @@ -2,6 +2,7 @@ class NestedNodeResourceController < AuthenticatedController include ActivityTracking include ContentFromTemplate + include LiquidEnabledResource include ProjectScoped before_action :find_or_initialize_node diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 3838dd02b..e6ed8b494 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -1,4 +1,5 @@ class ProjectsController < AuthenticatedController + include LiquidEnabledResource include NotificationsReader before_action :set_project @@ -16,12 +17,12 @@ def show @authors = [current_user] @boards = current_project.methodology_library.boards @issues = current_project.issues.includes(:tags).sort - @methodologies = current_project.methodology_library.notes.map{|n| Methodology.new(filename: n.id, content: n.text)} + @methodologies = current_project.methodology_library.notes.map { |n| Methodology.new(filename: n.id, content: n.text) } @nodes = current_project.nodes.in_tree @tags = current_project.tags @count_by_tag = { unassigned: 0 } - @issues_by_tag = Hash.new{|h,k| h[k] = [] } + @issues_by_tag = Hash.new { |h, k| h[k] = [] } @tag_names = @tags.map do |tag| @count_by_tag[tag.name] = 0 @@ -41,7 +42,7 @@ def show end respond_to do |format| - format.html { render layout: 'tylium' if !request.xhr?} + format.html { render layout: 'tylium' if !request.xhr? } format.json { render json: @boards } end end diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 26719081e..3dd97f74c 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -1,4 +1,5 @@ class SearchController < AuthenticatedController + include LiquidEnabledResource include ProjectScoped include SearchHelper @@ -15,11 +16,13 @@ def index private def set_scope - @scope = if params[:scope].blank? || - !%{all evidence issues nodes notes}.include?(params[:scope]) - :all - else - params[:scope].to_sym - end + @scope = + if params[:scope].blank? || + !%{all cards content_blocks evidence issues nodes notes}.\ + include?(params[:scope]) + :all + else + params[:scope].to_sym + end end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d0d4e237c..346384a32 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,5 +1,5 @@ module ApplicationHelper # :nodoc: - def markup(text, options={}) + def markup(text, options = {}) return unless text.present? context = {} @@ -27,6 +27,10 @@ def markup(text, options={}) result[:output].to_s.html_safe end + def liquid_text(text) + strip_tags(markup(text, liquid: true)) + end + def render_view_hooks(partial, locals: {}, feature: :addon) Dradis::Plugins::with_feature(feature).sort_by(&:plugin_description).each do |plugin| begin diff --git a/app/views/evidence/activities/_evidence.html.erb b/app/views/evidence/activities/_evidence.html.erb index 8664f124e..a010d5f42 100644 --- a/app/views/evidence/activities/_evidence.html.erb +++ b/app/views/evidence/activities/_evidence.html.erb @@ -3,7 +3,7 @@ <% node = evidence.node %> <%= presenter.verb %> <%= link_to 'a piece of evidence', [current_project, node, evidence] %> for - <%= link_to issue.title || "Issue #{issue.id}", [current_project, evidence.issue] %> at <%= link_to node.label, [current_project, node] %>. + <%= link_to liquid_text(issue.title) || "Issue #{issue.id}", [current_project, evidence.issue] %> at <%= link_to node.label, [current_project, node] %>. <% else %> <% if activity.action == 'destroy' %> deleted a piece of evidence. diff --git a/app/views/evidence/edit.html.erb b/app/views/evidence/edit.html.erb index 6c8737695..e84864776 100644 --- a/app/views/evidence/edit.html.erb +++ b/app/views/evidence/edit.html.erb @@ -1,4 +1,4 @@ -<% content_for :title, "Edit evidence for #{@node.label} / #{@evidence.issue.title}" %> +<% content_for :title, "Edit evidence for #{@node.label} / #{liquid_text(@evidence.issue.title)}" %> <% content_for :breadcrumbs do %>