Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/controllers/boards_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def show_columns
end

def board_params
params.expect(board: [ :name, :all_access, :auto_postpone_period_in_days, :public_description ])
params.expect(board: [ :name, :all_access, :auto_postpone_period_in_days, :public_description, :triage_column_name, :postponed_column_name, :closed_column_name ])
end

def grantees
Expand Down
2 changes: 2 additions & 0 deletions app/models/board.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ class Board < ApplicationRecord

has_rich_text :public_description

validates :triage_column_name, :postponed_column_name, :closed_column_name, presence: true

has_many :tags, -> { distinct }, through: :cards
has_many :events
has_many :webhooks, dependent: :destroy
Expand Down
1 change: 1 addition & 0 deletions app/views/boards/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
boards_form_self_removal_prompt_message_value: "Are you sure you want to remove yourself from this board? You won’t be able to get back in unless someone invites you.",
action: "turbo:submit-start->boards-form#submitWithWarning" } do |form| %>
<%= render "boards/edit/name", form: form, board: @board %>
<%= render "boards/edit/column_names", form: form, board: @board %>
<%= render "boards/edit/users", board: @board, selected_users: @selected_users, unselected_users: @unselected_users, form: form %>

<button type="submit" id="log_in" class="btn btn--link center txt-normal" data-bridge--form-target="submit" <%= "disabled" unless Current.user.can_administer_board?(@board) %>>
Expand Down
2 changes: 1 addition & 1 deletion app/views/boards/edit/_auto_close.html.erb
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<%= turbo_frame_tag board, :entropy do %>
<div class="margin-block-end">
<h2 class="divider txt-large">Auto close</h2>
<p class="margin-none-block-start">Fizzy doesn’t let stale cards stick around forever. Cards automatically move to “Not now” if no one updates, comments, or moves a card for…</p>
<p class="margin-none-block-start">Fizzy doesn’t let stale cards stick around forever. Cards automatically move to <%= board.postponed_column_name %> if no one updates, comments, or moves a card for…</p>
<%= render "entropy/auto_close", model: board, url: board_entropy_path(board), disabled: !Current.user.can_administer_board?(board) %>
</div>
<% end %>
27 changes: 27 additions & 0 deletions app/views/boards/edit/_column_names.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<div class="margin-block-end">
<h2 class="divider txt-large">Column names</h2>
<p class="margin-none-block-start">Customize the names of the built-in columns on this board.</p>

<div class="flex flex-column gap margin-block-start">
<label>
<div class="txt-small translucent margin-block-end-half">Inbox</div>
<%= form.text_field :triage_column_name, class: "input full-width", required: true,
placeholder: "Maybe?",
readonly: !Current.user.can_administer_board?(board) %>
</label>

<label>
<div class="txt-small translucent margin-block-end-half">Postponed</div>
<%= form.text_field :postponed_column_name, class: "input full-width", required: true,
placeholder: "Not Now",
readonly: !Current.user.can_administer_board?(board) %>
</label>

<label>
<div class="txt-small translucent margin-block-end-half">Closed</div>
<%= form.text_field :closed_column_name, class: "input full-width", required: true,
placeholder: "Done",
readonly: !Current.user.can_administer_board?(board) %>
</label>
</div>
</div>
4 changes: 2 additions & 2 deletions app/views/boards/show/_closed.html.erb
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<%= column_tag id: "closed-cards", name: "Done", drop_url: columns_card_drops_closure_path("__id__"), class: "cards--closed", style: "--card-color: var(--color-card-complete);",
<%= column_tag id: "closed-cards", name: board.closed_column_name, drop_url: columns_card_drops_closure_path("__id__"), class: "cards--closed", style: "--card-color: var(--color-card-complete);",
data: {
card_hotkeys_disabled: true,
drag_and_strum_target: "container",
collapsible_columns_target: "column",
action: "focus->collapsible-columns#focusOnColumn"
} do %>
<header class="cards__header">
<%= render "boards/show/expander", title: "Done", count: board.cards.closed.count, column_id: "closed-cards" %>
<%= render "boards/show/expander", title: board.closed_column_name, count: board.cards.closed.count, column_id: "closed-cards" %>
<%= render "boards/show/menu/maximize", column_path: board_columns_closed_path(board) %>
</header>
<%= column_frame_tag :closed_column, src: board_columns_closed_path(board) %>
Expand Down
4 changes: 2 additions & 2 deletions app/views/boards/show/_not_now.html.erb
Original file line number Diff line number Diff line change
@@ -1,12 +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);",
<%= column_tag id: "not-now", name: board.postponed_column_name, drop_url: columns_card_drops_not_now_path("__id__"), class: "cards--on-deck", style: "--card-color: var(--color-card-complete);",
data: {
card_hotkeys_disabled: true,
collapsible_columns_target: "column",
drag_and_strum_target: "container",
action: "focus->collapsible-columns#focusOnColumn"
} do %>
<header class="cards__header">
<%= render "boards/show/expander", title: "Not Now", count: board.cards.postponed.count, column_id: "not-now" %>
<%= render "boards/show/expander", title: board.postponed_column_name, count: board.cards.postponed.count, column_id: "not-now" %>
<%= render "boards/show/menu/maximize", column_path: board_columns_not_now_path(board) %>
</header>
<%= column_frame_tag :not_now_column, src: board_columns_not_now_path(board) %>
Expand Down
4 changes: 2 additions & 2 deletions app/views/boards/show/_stream.html.erb
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<%= column_tag id: "maybe", name: "Maybe?", drop_url: columns_card_drops_stream_path("__id__"), collapsed: false, selected: "true", class: "cards--maybe", data: {
<%= column_tag id: "maybe", name: board.triage_column_name, drop_url: columns_card_drops_stream_path("__id__"), collapsed: false, selected: "true", class: "cards--maybe", data: {
drag_and_strum_target: "container",
collapsible_columns_target: "column maybeColumn",
action: "focus->collapsible-columns#focusOnColumn"
} do %>
<header class="cards__header">
<%= render "boards/show/expander", title: "Maybe?", count: board.cards.awaiting_triage.count, column_id: "maybe" %>
<%= render "boards/show/expander", title: board.triage_column_name, count: board.cards.awaiting_triage.count, column_id: "maybe" %>
<%= render "boards/show/menu/maximize", column_path: board_columns_stream_path(board) %>
</header>
<div data-bridge-disabled="true">
Expand Down
6 changes: 3 additions & 3 deletions app/views/cards/columns/edit.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<div class="card__stages" role="radiogroup" data-controller="scroll-to">
<legend class="for-screen-reader">Choose a column for this card</legend>

<%= button_to "Not now", card_not_now_path(@card),
<%= button_to @card.board.postponed_column_name, card_not_now_path(@card),
class: [ "card__column-name btn", { "card__column-name--current": @card.postponed? } ],
style: "--column-color: var(--color-card-complete)",
disabled: @card.postponed?,
Expand All @@ -11,7 +11,7 @@
data: { scroll_to_target: @card.postponed? ? "target" : nil },
form_class: "flex gap-half" %>

<%= button_to "Maybe?", card_triage_path(@card), method: :delete,
<%= button_to @card.board.triage_column_name, card_triage_path(@card), method: :delete,
class: [ "card__column-name card__column-name--stream btn", { "card__column-name--current": @card.awaiting_triage? } ],
style: "--column-color: var(--color-card-default)",
disabled: @card.awaiting_triage?,
Expand All @@ -33,7 +33,7 @@
data: { scroll_to_target: @card.closed? ? "target" : nil },
form_class: "flex gap-half" do %>
<%= icon_tag "check", class: "icon--mobile-only" %>
Done
<%= @card.board.closed_column_name %>
<% end %>
</div>
<% end %>
10 changes: 6 additions & 4 deletions app/views/cards/display/common/_stamp.html.erb
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
<% if card.postponed? %>
<% postponed_column_name = card.board.postponed_column_name %>
<%= tag.div class: token_list("card__closed", "card__closed--system": card.postponed_by&.system?), data: {
controller: "bridge--stamp",
bridge__stamp_scope_selector_value: ".card-perma",
bridge_title: "Not Now",
bridge_title: postponed_column_name,
bridge_description: card.postponed_at.strftime("%b %d, %Y")
} do %>
<span class="card__closed-title" data-text="Not Now">Not Now</span>
<span class="card__closed-title" data-text="<%= postponed_column_name %>"><%= postponed_column_name %></span>
<strong class="card__closed-date"><%= card.postponed_at.strftime("%b %d, %Y") %></strong>
<span class="card__closed-by-line">by <span class="card__closed-by"><%= card.postponed_by&.familiar_name %></span></span>
<% end %>
<% end %>

<% if card.closed? %>
<% closed_column_name = card.board.closed_column_name %>
<%= tag.div class: "card__closed", data: {
controller: "bridge--stamp",
bridge__stamp_scope_selector_value: ".card-perma",
bridge_title: "Done",
bridge_title: closed_column_name,
bridge_description: card.closed_at.strftime("%b %d, %Y")
} do %>
<span class="card__closed-title" data-text="Done">Done</span>
<span class="card__closed-title" data-text="<%= closed_column_name %>"><%= closed_column_name %></span>
<strong class="card__closed-date"><%= card.closed_at.strftime("%b %d, %Y") %></strong>
<span class="card__closed-by-line">by <span class="card__closed-by"><%= card.closed_by.familiar_name %></span></span>
<% end %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/public/boards/show/_closed.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<div class="cards__transition-container">
<header class="cards__header">
<%= render "boards/show/expander", title: "Done", count: board.cards.closed.published.count, column_id: "closed-cards" %>
<%= render "boards/show/expander", title: board.closed_column_name, count: board.cards.closed.published.count, column_id: "closed-cards" %>

<%= link_to public_board_columns_closed_url(board.publication.key), class: "cards__maximize-button btn btn--circle txt-x-small borderless", data: { turbo_frame: "_top" } do %>
<%= icon_tag "grid", class: "translucent" %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/public/boards/show/_not_now.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<div class="cards__transition-container">
<header class="cards__header">
<%= render "boards/show/expander", title: "Not Now", count: board.cards.postponed.count, column_id: "not-now" %>
<%= render "boards/show/expander", title: board.postponed_column_name, count: board.cards.postponed.count, column_id: "not-now" %>

<%= link_to public_board_columns_not_now_url(board.publication.key), class: "cards__maximize-button btn btn--circle txt-x-small borderless", data: { turbo_frame: "_top" } do %>
<%= icon_tag "grid", class: "translucent" %>
Expand Down
6 changes: 3 additions & 3 deletions app/views/public/boards/show/_stream.html.erb
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<section id="maybe"
class="cards cards--maybe is-expanded"
data-column-name="Maybe?"
data-column-name="<%= board.triage_column_name %>"
data-collapsible-columns-target="column maybeColumn"
data-action="turbo:before-morph-attribute->collapsible-columns#preventToggle">
<div class="cards__transition-container">
<header class="cards__header">
<div hidden class="cards__expander">
<h2 class="cards__expander-title" data-collapsible-columns-target="title">Maybe?</h2>
<h2 class="cards__expander-title" data-collapsible-columns-target="title"><%= board.triage_column_name %></h2>
</div>

<%# render "boards/show/expander", title: "Maybe?", count: column.cards.active.count, column_id: dom_id(column) %>
<%= render "boards/show/expander", title: "Maybe?", count: 2, column_id: "maybe" %>
<%= render "boards/show/expander", title: board.triage_column_name, count: 2, column_id: "maybe" %>

<%= link_to public_board_columns_stream_url(board.publication.key), class: "cards__maximize-button btn btn--circle txt-x-small borderless", data: { turbo_frame: "_top" } do %>
<%= icon_tag "grid", class: "translucent" %>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
class AddCustomColumnNamesToBoards < ActiveRecord::Migration[8.2]
def change
add_column :boards, :triage_column_name, :string, null: false, default: "Maybe?"
add_column :boards, :postponed_column_name, :string, null: false, default: "Not Now"
add_column :boards, :closed_column_name, :string, null: false, default: "Done"
end
end
5 changes: 4 additions & 1 deletion db/schema.rb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.