diff --git a/app/helpers/accesses_helper.rb b/app/helpers/accesses_helper.rb index 1ace03574..e26b24346 100644 --- a/app/helpers/accesses_helper.rb +++ b/app/helpers/accesses_helper.rb @@ -48,7 +48,8 @@ module AccessesHelper params: { show_watchers: show_watchers, involvement: next_involvement(access.involvement), icon_only: icon_only }, aria: { labelledby: dom_id(board, :involvement_label) }, title: (label_text if icon_only), - class: class_names("btn", { "btn--reversed": access.watching? && icon_only })) do + class: class_names("btn", { "btn--reversed": access.watching? && icon_only }), + data: { bridge__overflow_menu_target: "item" }) do icon_tag("notification-bell-#{icon_only ? 'reverse-' : nil}#{access.involvement.dasherize}") + tag.span(label_text, class: class_names("txt-nowrap txt-uppercase", "for-screen-reader": icon_only), id: dom_id(board, :involvement_label)) end diff --git a/app/javascript/controllers/bridge/buttons_controller.js b/app/javascript/controllers/bridge/buttons_controller.js index ecad31564..ac3861fba 100644 --- a/app/javascript/controllers/bridge/buttons_controller.js +++ b/app/javascript/controllers/bridge/buttons_controller.js @@ -5,26 +5,16 @@ export default class extends BridgeComponent { static component = "buttons" static targets = [ "button" ] - connect() { - super.connect() - - if (this.hasButtonTarget) { - this.notifyBridgeOfConnect() - } - } - - disconnect() { - super.disconnect() - - if (this.hasButtonTarget) { - this.notifyBridgeOfDisconnect() - } + buttonTargetConnected(element) { + this.notifyBridgeOfConnect() } notifyBridgeOfConnect() { - const buttons = this.buttonTargets.map((target, index) => { - const element = new BridgeElement(target) - return { ...element.getButton(), index } + const buttons = this.buttonTargets + .filter(target => !target.closest("[data-bridge-disabled]")) + .map((target, index) => { + const element = new BridgeElement(target) + return { ...element.getButton(), index } }) this.send("connect", { buttons }, message => { @@ -32,10 +22,6 @@ export default class extends BridgeComponent { }) } - notifyBridgeOfDisconnect() { - this.send("disconnect") - } - clickButton(message) { const selectedIndex = message.data.selectedIndex this.buttonTargets[selectedIndex].click() diff --git a/app/javascript/controllers/bridge/overflow_menu_controller.js b/app/javascript/controllers/bridge/overflow_menu_controller.js index d0edc912f..669469329 100644 --- a/app/javascript/controllers/bridge/overflow_menu_controller.js +++ b/app/javascript/controllers/bridge/overflow_menu_controller.js @@ -5,37 +5,23 @@ export default class extends BridgeComponent { static component = "overflow-menu" static targets = [ "item" ] - connect() { - super.connect() - - if (this.hasItemTarget) { - this.notifyBridgeOfConnect() - } - } - - disconnect() { - super.disconnect() - - if (this.hasItemTarget) { - this.notifyBridgeOfDisconnect() - } + itemTargetConnected() { + this.notifyBridgeOfConnect() } notifyBridgeOfConnect() { - const items = this.itemTargets.map((target, index) => { - const element = new BridgeElement(target) - return { title: element.title, index } - }) + const items = this.itemTargets + .filter(target => !target.closest("[data-bridge-disabled]")) + .map((target, index) => { + const element = new BridgeElement(target) + return { title: element.title, index } + }) this.send("connect", { items }, message => { this.clickItem(message) }) } - notifyBridgeOfDisconnect() { - this.send("disconnect") - } - clickItem(message) { const selectedIndex = message.data.selectedIndex this.itemTargets[selectedIndex].click() diff --git a/app/views/boards/show/_stream.html.erb b/app/views/boards/show/_stream.html.erb index 7773fb292..b43309100 100644 --- a/app/views/boards/show/_stream.html.erb +++ b/app/views/boards/show/_stream.html.erb @@ -7,7 +7,9 @@ <%= render "boards/show/expander", title: "Maybe?", count: board.cards.awaiting_triage.count, column_id: "maybe" %> <%= render "boards/show/menu/maximize", column_path: board_columns_stream_path(board) %> - <%= render "columns/show/add_card_button", board: board %> +