D&D to now now working
This commit is contained in:
@@ -1,64 +0,0 @@
|
||||
class Cards::DropsController < ApplicationController
|
||||
include FilterScoped
|
||||
|
||||
before_action :set_card, :set_drop_target
|
||||
|
||||
def create
|
||||
perform_drop_action
|
||||
render_column_replacement
|
||||
end
|
||||
|
||||
private
|
||||
VALID_DROP_TARGETS = %w[ considering on_deck doing closed ]
|
||||
|
||||
def set_card
|
||||
@card = Current.user.accessible_cards.find(params[:dropped_item_id])
|
||||
end
|
||||
|
||||
def set_drop_target
|
||||
if params[:drop_target].in?(VALID_DROP_TARGETS)
|
||||
@drop_target = params[:drop_target].to_sym
|
||||
else
|
||||
head :bad_request
|
||||
end
|
||||
end
|
||||
|
||||
def perform_drop_action
|
||||
case @drop_target
|
||||
when :considering
|
||||
@card.reconsider
|
||||
when :on_deck
|
||||
@card.move_to_on_deck
|
||||
when :doing
|
||||
@card.engage
|
||||
if params[:stage_id].present?
|
||||
stage = Workflow::Stage.find(params[:stage_id])
|
||||
@card.change_stage_to(stage)
|
||||
end
|
||||
when :closed
|
||||
@card.close
|
||||
end
|
||||
end
|
||||
|
||||
def render_column_replacement
|
||||
columns = Cards::OldColumns.new(user_filtering: @user_filtering, page_size: CardsController::PAGE_SIZE)
|
||||
column = columns.public_send(@drop_target)
|
||||
|
||||
if @drop_target == :doing && params[:stage_id].present?
|
||||
# For stage-specific doing columns, we need to render the specific stage
|
||||
stage = Workflow::Stage.find(params[:stage_id])
|
||||
render \
|
||||
turbo_stream: turbo_stream.replace("doing-cards-#{stage.id}",
|
||||
method: :morph,
|
||||
partial: "cards/index/engagement/doing",
|
||||
locals: { column: column, stage: stage })
|
||||
else
|
||||
# For other columns, use the standard approach
|
||||
render \
|
||||
turbo_stream: turbo_stream.replace("#{@drop_target.to_s.gsub('_', '-')}-cards",
|
||||
method: :morph,
|
||||
partial: "cards/index/engagement/#{@drop_target}",
|
||||
locals: { column: column })
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
class Columns::Cards::Drops::ClosuresController < ApplicationController
|
||||
include CardScoped
|
||||
|
||||
def create
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,6 @@
|
||||
class Columns::Cards::Drops::ColumnsController < ApplicationController
|
||||
include CardScoped
|
||||
|
||||
def create
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,9 @@
|
||||
class Columns::Cards::Drops::NotNowsController < ApplicationController
|
||||
include CardScoped
|
||||
|
||||
def create
|
||||
@card.postpone
|
||||
|
||||
render turbo_stream: turbo_stream.replace("now-now-cards", partial: "collections/show/not_now", locals: { collection: @card.collection })
|
||||
end
|
||||
end
|
||||
@@ -4,7 +4,6 @@ import { nextFrame } from "helpers/timing_helpers"
|
||||
|
||||
export default class extends Controller {
|
||||
static targets = [ "item", "container" ]
|
||||
static values = { url: String }
|
||||
static classes = [ "draggedItem", "hoverContainer" ]
|
||||
|
||||
// Actions
|
||||
@@ -72,14 +71,9 @@ export default class extends Controller {
|
||||
async #submitDropRequest(item, container) {
|
||||
const body = new FormData()
|
||||
const id = item.dataset.id
|
||||
const containerTarget = container.dataset.dropTarget
|
||||
const stageId = container.dataset.stageId
|
||||
const url = container.dataset.dragAndDropUrl.replaceAll("__id__", id)
|
||||
console.debug("Es", container.dataset.dragAndDropUrl, container.dataset.dragAndDropUrl.replaceAll("__id__", id));
|
||||
|
||||
body.append("dropped_item_id", id)
|
||||
body.append("drop_target", containerTarget)
|
||||
if (stageId) {
|
||||
body.append("stage_id", stageId)
|
||||
}
|
||||
return post(this.urlValue, { body, headers: { Accept: "text/vnd.turbo-stream.html" } })
|
||||
return post(url, { body, headers: { Accept: "text/vnd.turbo-stream.html" } })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
controller: "drag-and-drop",
|
||||
drag_and_drop_dragged_item_class: "drag-and-drop__dragged-item",
|
||||
drag_and_drop_hover_container_class: "drag-and-drop__hover-container",
|
||||
drag_and_drop_url_value: cards_drops_path(**@filter.as_params),
|
||||
action: "
|
||||
dragstart->drag-and-drop#dragStart
|
||||
dragover->drag-and-drop#dragOver
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<section id="on-deck-cards" class="cards cards--on-deck is-collapsed" style="--card-color: var(--color-card-complete);"
|
||||
<section id="now-now-cards" class="cards cards--on-deck is-collapsed" style="--card-color: var(--color-card-complete);"
|
||||
data-collapsible-columns-target="column"
|
||||
data-drag-and-drop-target="container"
|
||||
data-drop-target="on_deck">
|
||||
data-drag-and-drop-url="<%= columns_card_drops_not_now_path("__id__") %>"
|
||||
>
|
||||
|
||||
<%= cards_expander "Not Now", collection.cards.postponed.count %>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user