diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss index 202e903de..2d8805553 100644 --- a/app/assets/stylesheets/application.scss +++ b/app/assets/stylesheets/application.scss @@ -27,6 +27,7 @@ @import "layout/**/*"; @import "machine_learning/**/*"; @import "management/**/*"; +@import "milestones/**/*"; @import "moderation/**/*"; @import "polls/**/*"; @import "proposals/**/*"; diff --git a/app/assets/stylesheets/milestones.scss b/app/assets/stylesheets/milestones.scss index 8d16aa395..4907a0d90 100644 --- a/app/assets/stylesheets/milestones.scss +++ b/app/assets/stylesheets/milestones.scss @@ -1,40 +1,3 @@ -$progress-bar-background: #fef0e2; -$progress-bar-color: #fea230; - -.tab-milestones { - - .progress-bars { - margin-bottom: $line-height * 2; - margin-top: $line-height; - - h5 { - font-size: rem-calc(24); - } - - .progress { - background: $progress-bar-background; - border-radius: rem-calc(6); - position: relative; - } - - .progress-meter { - background: $progress-bar-color; - border-radius: rem-calc(6); - } - - .progress-meter-text { - color: color-pick-contrast($progress-bar-background); - right: 12px; - text-align: right; - transform: translate(0%, -50%); - } - - .milestone-progress .row { - margin-bottom: calc($line-height / 2); - } - } -} - .tab-milestones .timeline li { margin: 0 auto; position: relative; diff --git a/app/assets/stylesheets/milestones/progress_bars.scss b/app/assets/stylesheets/milestones/progress_bars.scss new file mode 100644 index 000000000..c6f1d8b65 --- /dev/null +++ b/app/assets/stylesheets/milestones/progress_bars.scss @@ -0,0 +1,36 @@ +$progress-bar-background: #fef0e2; +$progress-bar-color: #fea230; + +.tab-milestones { + + .progress-bars { + margin-bottom: $line-height * 2; + margin-top: $line-height; + + h5 { + font-size: rem-calc(24); + } + + .progress { + background: $progress-bar-background; + border-radius: rem-calc(6); + position: relative; + } + + .progress-meter { + background: $progress-bar-color; + border-radius: rem-calc(6); + } + + .progress-meter-text { + color: color-pick-contrast($progress-bar-background); + right: 12px; + text-align: right; + transform: translate(0%, -50%); + } + + .milestone-progress .row { + margin-bottom: calc($line-height / 2); + } + } +} diff --git a/app/components/milestones/progress_bars_component.html.erb b/app/components/milestones/progress_bars_component.html.erb new file mode 100644 index 000000000..4349a991e --- /dev/null +++ b/app/components/milestones/progress_bars_component.html.erb @@ -0,0 +1,22 @@ + diff --git a/app/components/milestones/progress_bars_component.rb b/app/components/milestones/progress_bars_component.rb new file mode 100644 index 000000000..345619fa6 --- /dev/null +++ b/app/components/milestones/progress_bars_component.rb @@ -0,0 +1,37 @@ +class Milestones::ProgressBarsComponent < ApplicationComponent + attr_reader :milestoneable + + def initialize(milestoneable) + @milestoneable = milestoneable + end + + def render? + primary_progress_bar + end + + private + + def primary_progress_bar + milestoneable.primary_progress_bar + end + + def secondary_progress_bars + milestoneable.secondary_progress_bars + end + + def progress_tag_for(progress_bar, label:) + text = number_to_percentage(progress_bar.percentage, precision: 0) + + tag.div class: "progress", + role: "progressbar", + "aria-label": label, + "aria-valuenow": progress_bar.percentage, + "aria-valuetext": "#{progress_bar.percentage}%", + "aria-valuemax": ProgressBar::RANGE.max, + "aria-valuemin": "0", + tabindex: "0" do + tag.span(class: "progress-meter", style: "width: #{progress_bar.percentage}%;") + + tag.p(text, class: "progress-meter-text") + end + end +end diff --git a/app/helpers/milestones_helper.rb b/app/helpers/milestones_helper.rb deleted file mode 100644 index 7a1b4339a..000000000 --- a/app/helpers/milestones_helper.rb +++ /dev/null @@ -1,16 +0,0 @@ -module MilestonesHelper - def progress_tag_for(progress_bar) - text = number_to_percentage(progress_bar.percentage, precision: 0) - - tag.div class: "progress", - role: "progressbar", - "aria-valuenow": progress_bar.percentage, - "aria-valuetext": "#{progress_bar.percentage}%", - "aria-valuemax": ProgressBar::RANGE.max, - "aria-valuemin": "0", - tabindex: "0" do - tag.span(class: "progress-meter", style: "width: #{progress_bar.percentage}%;") + - tag.p(text, class: "progress-meter-text") - end - end -end diff --git a/app/views/budgets/ballot/_progress_bar.html.erb b/app/views/budgets/ballot/_progress_bar.html.erb index 1351d6e0f..1e54e35ca 100644 --- a/app/views/budgets/ballot/_progress_bar.html.erb +++ b/app/views/budgets/ballot/_progress_bar.html.erb @@ -2,7 +2,7 @@ <%= sanitize(ballot.amount_progress(heading)) %>
-