diff --git a/app/assets/stylesheets/cards.css b/app/assets/stylesheets/cards.css index 7342da211..c87d7d1b8 100644 --- a/app/assets/stylesheets/cards.css +++ b/app/assets/stylesheets/cards.css @@ -106,7 +106,11 @@ position: relative; z-index: 0; - .btn { + &:has(dialog[open]) { + z-index: 1; + } + + .btn:not(.popup__item, .btn--plain) { --btn-background: var(--bubble-color); --btn-color: var(--color-ink-reversed); } @@ -355,6 +359,10 @@ } } +.card__move-button { + --btn-background: color-mix(in srgb, var(--bubble-color) 40%, var(--color-ink)); +} + .card__stages { flex: 1 1 25%; } diff --git a/app/controllers/bubbles/stagings_controller.rb b/app/controllers/bubbles/stagings_controller.rb index 3c955a56c..591bcb790 100644 --- a/app/controllers/bubbles/stagings_controller.rb +++ b/app/controllers/bubbles/stagings_controller.rb @@ -2,7 +2,11 @@ class Bubbles::StagingsController < ApplicationController include BubbleScoped, BucketScoped def create - @bubble.toggle_stage Current.account.stages.find(params[:stage_id]) + if params[:stage_id].present? + @bubble.toggle_stage Current.account.stages.find(params[:stage_id]) + else + @bubble.update!(stage: nil) + end redirect_to @bubble end end diff --git a/app/views/bubbles/_card.html.erb b/app/views/bubbles/_card.html.erb index 69b378125..943553ed2 100644 --- a/app/views/bubbles/_card.html.erb +++ b/app/views/bubbles/_card.html.erb @@ -31,6 +31,13 @@ <%= turbo_frame_tag dom_id(bubble, :stage_picker), src: new_bucket_bubble_stage_picker_path(bubble.bucket, bubble) unless (previewing_card? && bubble.popped?) %> + + <% if bubble.stage.nil? %> + <%= button_to bucket_bubble_stagings_path(bubble.bucket, bubble, stage_id: bubble.bucket&.workflow&.stages&.first), method: :post, class: "card__move-button card__hide-on-index btn btn--reversed" do %> + Move to Doing + <%= icon_tag "arrow-right" %> + <% end %> + <% end %>