Merge pull request #1524 from basecamp/one-filter-at-a-time
One filter at a time
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
import { Controller } from "@hotwired/stimulus"
|
||||
|
||||
export default class extends Controller {
|
||||
connect() {
|
||||
this.element.addEventListener("dialog:show", this.handleDialogShow.bind(this))
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.element.removeEventListener("dialog:show", this.handleDialogShow.bind(this))
|
||||
}
|
||||
|
||||
handleDialogShow(event) {
|
||||
this.#dialogControllers.forEach(dialogController => {
|
||||
if (dialogController !== event.target) {
|
||||
const dialog = dialogController.querySelector("dialog")
|
||||
dialog.removeAttribute("open")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
get #dialogControllers() {
|
||||
return this.element.querySelectorAll('[data-controller~="dialog"]')
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<%= tag.aside \
|
||||
class: class_names("filters margin-block-end", { "filters--expanded": user_filtering.expanded? }),
|
||||
data: {
|
||||
controller: "toggle-enable toggle-class filter-settings",
|
||||
controller: "toggle-enable toggle-class filter-settings dialog-manager",
|
||||
toggle_class_toggle_class: "filters--expanded",
|
||||
filter_settings_filters_set_class: "filters--has-filters-set",
|
||||
filter_settings_no_filtering_url_value: no_filtering_url,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
<%= tag.div class: "quick-filter position-relative",
|
||||
<%= tag.div class: "quick-filter",
|
||||
data: {
|
||||
controller: "dialog multi-selection-combobox",
|
||||
action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
|
||||
<%= tag.div class: "quick-filter position-relative",
|
||||
<%= tag.div class: "quick-filter",
|
||||
data: {
|
||||
controller: "dialog multi-selection-combobox",
|
||||
action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
|
||||
<%= tag.div class: "quick-filter position-relative",
|
||||
<%= tag.div class: "quick-filter",
|
||||
data: {
|
||||
controller: "dialog multi-selection-combobox",
|
||||
action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
|
||||
<%= tag.div class: "quick-filter position-relative",
|
||||
<%= tag.div class: "quick-filter",
|
||||
data: {
|
||||
controller: "dialog multi-selection-combobox",
|
||||
action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
|
||||
<%= tag.div class: class_names("quick-filter position-relative"),
|
||||
<%= tag.div class: class_names("quick-filter"),
|
||||
data: { controller: "dialog combobox",
|
||||
action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside",
|
||||
filter_show: user_filtering.show_indexed_by?,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
|
||||
<%= tag.div class: class_names("quick-filter position-relative"),
|
||||
<%= tag.div class: class_names("quick-filter"),
|
||||
data: {
|
||||
controller: "dialog combobox",
|
||||
action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<% filter = user_filtering.filter %>
|
||||
<%= tag.div class: "quick-filter position-relative",
|
||||
<%= tag.div class: "quick-filter",
|
||||
data: { controller: "dialog", action: "keydown.esc->dialog#close click@document->dialog#closeOnClickOutside", filter_show: filter.public_send("#{name}_window").present? } do %>
|
||||
<button class="btn input input--select flex-inline txt-x-small" data-action="click->dialog#open:stop">
|
||||
<span class="overflow-ellipsis">
|
||||
|
||||
Reference in New Issue
Block a user