diff --git a/app/helpers/columns_helper.rb b/app/helpers/columns_helper.rb index 56699d584..c6f3fc850 100644 --- a/app/helpers/columns_helper.rb +++ b/app/helpers/columns_helper.rb @@ -9,9 +9,37 @@ module ColumnsHelper data: { turbo_frame: "_top" } end + def column_tag(id:, name:, drop_url:, collapsed: true, selected: nil, data: {}, **properties, &block) + classes = token_list("cards", properties.delete(:class), "is-collapsed": collapsed) + + data = { + drag_and_drop_target: "container", + navigable_list_target: "item", + column_name: name, + drag_and_drop_url: drop_url + }.merge(data) + + data[:action] = token_list( + "turbo:before-morph-attribute->collapsible-columns#preventToggle", + "focus->navigable-list#select", + data.delete(:action) + ) + + tag.section(id: id, class: classes, tabindex: "0", "aria-selected": selected, data: data, **properties) do + tag.div(class: "cards__transition-container", data: { + controller: "navigable-list", + navigable_list_support_horizontal_navigation_value: "false", + navigable_list_prevent_handled_keys_value: "true", + navigable_list_auto_select_value: "false", + navigable_list_actionable_items_value: "true", + action: "keydown->navigable-list#navigate" + }, &block) + end + end + def column_frame_tag(id, src: nil, data: {}, **options, &block) data = data.reverse_merge \ - "drag-and-drop-refresh": true, + drag_and_drop_refresh: true, controller: "frame", action: "turbo:before-frame-render->frame#morphRender turbo:before-morph-element->frame#morphReload" options[:refresh] = :morph if src.present? diff --git a/app/views/boards/show/_closed.html.erb b/app/views/boards/show/_closed.html.erb index 5572b5258..0d4c772f4 100644 --- a/app/views/boards/show/_closed.html.erb +++ b/app/views/boards/show/_closed.html.erb @@ -1,18 +1,12 @@ - +<%= column_tag id: "closed-cards", name: "Done", drop_url: columns_card_drops_closure_path("__id__"), class: "cards--on-deck", style: "--card-color: var(--color-card-complete);", + data: { + drag_and_strum_target: "container", + collapsible_columns_target: "column", + action: "focus->collapsible-columns#focusOnColumn" + } do %> +
+ <%= render "boards/show/expander", title: "Done", count: board.cards.closed.count, column_id: "closed-cards" %> + <%= render "boards/show/menu/maximize", column_path: board_columns_closed_path(board) %> +
+ <%= column_frame_tag :closed_column, src: board_columns_closed_path(board) %> +<% end %> diff --git a/app/views/boards/show/_column.html.erb b/app/views/boards/show/_column.html.erb index 11ea6bcc0..35beb5338 100644 --- a/app/views/boards/show/_column.html.erb +++ b/app/views/boards/show/_column.html.erb @@ -1,25 +1,18 @@ - + <%= link_to board_column_path(column.board, column), class: "cards__maximize-button btn btn--circle txt-x-small borderless", data: { turbo_frame: "_top" } do %> + <%= icon_tag "grid", class: "translucent" %> + Maximize column + <% end %> + + <%= column_frame_tag dom_id(column, :cards), src: board_column_path(column.board, column) %> +<% end %> diff --git a/app/views/boards/show/_not_now.html.erb b/app/views/boards/show/_not_now.html.erb index b18c777a0..66cd99519 100644 --- a/app/views/boards/show/_not_now.html.erb +++ b/app/views/boards/show/_not_now.html.erb @@ -1,18 +1,12 @@ - +<%= column_tag id: "not-now", name: "Not Now", drop_url: columns_card_drops_not_now_path("__id__"), class: "cards--on-deck", style: "--card-color: var(--color-card-complete);", + data: { + collapsible_columns_target: "column", + drag_and_strum_target: "container", + action: "focus->collapsible-columns#focusOnColumn" + } do %> +
+ <%= render "boards/show/expander", title: "Not Now", count: board.cards.postponed.count, column_id: "not-now" %> + <%= render "boards/show/menu/maximize", column_path: board_columns_not_now_path(board) %> +
+ <%= column_frame_tag :not_now_column, src: board_columns_not_now_path(board) %> +<% end %> diff --git a/app/views/boards/show/_stream.html.erb b/app/views/boards/show/_stream.html.erb index a151bcbdf..7158a29e3 100644 --- a/app/views/boards/show/_stream.html.erb +++ b/app/views/boards/show/_stream.html.erb @@ -1,26 +1,17 @@ -
" - aria-selected="true"> -
-
-
-

Maybe?

-
- <%= link_to board_columns_stream_path(board), class: "cards__maximize-button btn btn--circle txt-x-small borderless", data: { turbo_frame: "_top" } do %> - <%= icon_tag "grid", class: "translucent" %> - Expand column - <% end %> -
- <%= render "columns/show/add_card_button", board: board %> - <% if page.used? %> - <%= with_automatic_pagination "the-stream", @page do %> - <%= render "boards/columns/list", cards: page.records, draggable: true %> - <% end %> +<%= column_tag id: "the-stream", name: "Maybe?", drop_url: columns_card_drops_stream_path("__id__"), collapsed: false, selected: "true", class: "cards--considering" do %> +
+
+

Maybe?

+
+ <%= link_to board_columns_stream_path(board), class: "cards__maximize-button btn btn--circle txt-x-small borderless", data: { turbo_frame: "_top" } do %> + <%= icon_tag "grid", class: "translucent" %> + Expand column <% end %> -
-
+ + <%= render "columns/show/add_card_button", board: board %> + <% if page.used? %> + <%= with_automatic_pagination "the-stream", @page do %> + <%= render "boards/columns/list", cards: page.records, draggable: true %> + <% end %> + <% end %> +<% end %>