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 %>