diff --git a/Gemfile b/Gemfile index 16996184acd846306f2ae441169fe118fbcb155f..5bf41a96e12473e77023a80bdfc5f8100dcaf820 100644 --- a/Gemfile +++ b/Gemfile @@ -253,7 +253,6 @@ gem 'gitlab-active-context', path: 'gems/gitlab-active-context', require: 'activ # Markdown and HTML processing gem 'html-pipeline', '~> 2.14.3', feature_category: :markdown -gem 'deckar01-task_list', '2.3.4', feature_category: :markdown gem 'gitlab-markup', '~> 2.0.0', require: 'github/markup', feature_category: :markdown gem 'commonmarker', '~> 0.23.10', feature_category: :markdown gem 'kramdown', '~> 2.5.0', feature_category: :markdown diff --git a/Gemfile.checksum b/Gemfile.checksum index 3e61bce04dc5f335f3cefe575df37421e8dee9a5..a760be397c0b6ca297fa3f6ca774469816e9d490 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -110,7 +110,6 @@ {"name":"deb_version","version":"1.0.2","platform":"ruby","checksum":"c21f911d7f2fd1d61219caae254fc078e6598e477fdff8a05a18bec6c72ee713"}, {"name":"debug","version":"1.11.0","platform":"ruby","checksum":"1425db64cfa0130c952684e3dc974985be201dd62899bf4bbe3f8b5d6cf1aef2"}, {"name":"debug_inspector","version":"1.1.0","platform":"ruby","checksum":"eaa5a2d0195e1d65fb4164e8e7e466cca2e7eb53bc5e608cf12b8bf02c3a8606"}, -{"name":"deckar01-task_list","version":"2.3.4","platform":"ruby","checksum":"66abdc7e009ea759732bb53867e1ea42de550e2aa03ac30a015cbf42a04c1667"}, {"name":"declarative","version":"0.0.20","platform":"ruby","checksum":"8021dd6cb17ab2b61233c56903d3f5a259c5cf43c80ff332d447d395b17d9ff9"}, {"name":"declarative_policy","version":"2.0.1","platform":"ruby","checksum":"5ac5a67fc87edad6ef89b12ff8916520c8d11cb95e16529c259c93ef0ec3e6e8"}, {"name":"deprecation_toolkit","version":"2.2.4","platform":"ruby","checksum":"b1dad75eaeccd22327ee98f6a0b9d4dcd2e13274ff9069cf6b31d9879dcb2526"}, diff --git a/Gemfile.lock b/Gemfile.lock index 41844da2d6da0e52eba086f4f262c08e9f62f78c..16c28c81d5d844966c81f83610457196f1118aa3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -497,8 +497,6 @@ GEM irb (~> 1.10) reline (>= 0.3.8) debug_inspector (1.1.0) - deckar01-task_list (2.3.4) - html-pipeline (~> 2.0) declarative (0.0.20) declarative_policy (2.0.1) deprecation_toolkit (2.2.4) @@ -2130,7 +2128,6 @@ DEPENDENCIES cvss-suite (~> 3.3.0) database_cleaner-active_record (~> 2.2.0) debug (~> 1.11.0) - deckar01-task_list (= 2.3.4) declarative_policy (~> 2.0.1) deprecation_toolkit (~> 2.2.3) derailed_benchmarks diff --git a/Gemfile.next.checksum b/Gemfile.next.checksum index 3e61bce04dc5f335f3cefe575df37421e8dee9a5..a760be397c0b6ca297fa3f6ca774469816e9d490 100644 --- a/Gemfile.next.checksum +++ b/Gemfile.next.checksum @@ -110,7 +110,6 @@ {"name":"deb_version","version":"1.0.2","platform":"ruby","checksum":"c21f911d7f2fd1d61219caae254fc078e6598e477fdff8a05a18bec6c72ee713"}, {"name":"debug","version":"1.11.0","platform":"ruby","checksum":"1425db64cfa0130c952684e3dc974985be201dd62899bf4bbe3f8b5d6cf1aef2"}, {"name":"debug_inspector","version":"1.1.0","platform":"ruby","checksum":"eaa5a2d0195e1d65fb4164e8e7e466cca2e7eb53bc5e608cf12b8bf02c3a8606"}, -{"name":"deckar01-task_list","version":"2.3.4","platform":"ruby","checksum":"66abdc7e009ea759732bb53867e1ea42de550e2aa03ac30a015cbf42a04c1667"}, {"name":"declarative","version":"0.0.20","platform":"ruby","checksum":"8021dd6cb17ab2b61233c56903d3f5a259c5cf43c80ff332d447d395b17d9ff9"}, {"name":"declarative_policy","version":"2.0.1","platform":"ruby","checksum":"5ac5a67fc87edad6ef89b12ff8916520c8d11cb95e16529c259c93ef0ec3e6e8"}, {"name":"deprecation_toolkit","version":"2.2.4","platform":"ruby","checksum":"b1dad75eaeccd22327ee98f6a0b9d4dcd2e13274ff9069cf6b31d9879dcb2526"}, diff --git a/Gemfile.next.lock b/Gemfile.next.lock index 41844da2d6da0e52eba086f4f262c08e9f62f78c..16c28c81d5d844966c81f83610457196f1118aa3 100644 --- a/Gemfile.next.lock +++ b/Gemfile.next.lock @@ -497,8 +497,6 @@ GEM irb (~> 1.10) reline (>= 0.3.8) debug_inspector (1.1.0) - deckar01-task_list (2.3.4) - html-pipeline (~> 2.0) declarative (0.0.20) declarative_policy (2.0.1) deprecation_toolkit (2.2.4) @@ -2130,7 +2128,6 @@ DEPENDENCIES cvss-suite (~> 3.3.0) database_cleaner-active_record (~> 2.2.0) debug (~> 1.11.0) - deckar01-task_list (= 2.3.4) declarative_policy (~> 2.0.1) deprecation_toolkit (~> 2.2.3) derailed_benchmarks diff --git a/app/models/concerns/taskable.rb b/app/models/concerns/taskable.rb index e34ef0e94a368c86408ff12d83426811d9854b97..3e26663c25de399bcfa91cd5addbf0d3a899f6a4 100644 --- a/app/models/concerns/taskable.rb +++ b/app/models/concerns/taskable.rb @@ -1,18 +1,21 @@ # frozen_string_literal: true -require 'task_list' -require 'task_list/filter' - # Contains functionality for objects that can have task lists in their # descriptions. Task list items can be added with Markdown like "* [x] Fix # bugs". # # Used by MergeRequest and Issue module Taskable + # Model class for task items returned by Taskable.get_tasks, Taskable.get_updated_tasks, and + # #task_list_items on classes included by Taskable. + Item = Struct.new(:complete?, :text, :source) + COMPLETED = 'completed' INCOMPLETE = 'incomplete' COMPLETE_PATTERN = /\[[xX]\]/ INCOMPLETE_PATTERN = /\[[[:space:]]\]/ + + # Used by TaskListToggleService and WorkItems::TaskListReferenceReplacementService. ITEM_PATTERN = %r{ ^ (?:(?:>\s{0,4})*) # optional blockquote characters @@ -24,37 +27,22 @@ module Taskable (\s.+) # followed by whitespace and some text. }x - ITEM_PATTERN_UNTRUSTED = - '^' \ - '(?:(?:>\s{0,4})*)' \ - '(?P(?:\s*(?:[-+*]|(?:\d+[.)])))+)' \ - '\s+' \ - '(?P' \ - "#{COMPLETE_PATTERN.source}|#{INCOMPLETE_PATTERN.source}" \ - ')' \ - '(?P