Project

General

Profile

Feature #43259 » 0003-wiki-toolbar-return-focus-after-escape.patch

Florian Walchshofer, 2026-10-30 21:58

View differences:

app/javascript/controllers/wiki_toolbar_controller.js
124 124

  
125 125
  // Menus
126 126

  
127
  closeMenuWithKeyboard() {
128
    const button = this.menuButton
129
    this.closeMenu()
130
    button?.focus()
131
  }
132

  
127 133
  toggleMenu({ currentTarget, params }) {
128 134
    const opened = this.menu?.dataset.name === params.menu
129 135
    this.closeMenu()
......
132 138
    const template = this[`${params.menu}MenuTarget`]
133 139
    this.menu = template.content.firstElementChild.cloneNode(true)
134 140
    this.menu.dataset.name = params.menu
141
    this.menuButton = currentTarget
135 142
    this.element.append(this.menu)
136 143
    this.positionMenu(currentTarget)
137 144

  
lib/redmine/wiki_toolbar.rb
164 164

  
165 165
    def precode_menu
166 166
      tag.ul(class: 'jstMenu', role: 'menu',
167
             data: {action: 'click->wiki-toolbar#closeMenu keydown.esc->wiki-toolbar#closeMenu'}) do
167
             data: {action: 'click->wiki-toolbar#closeMenu keydown.esc->wiki-toolbar#closeMenuWithKeyboard'}) do
168 168
        @view.safe_join(
169 169
          code_languages.map do |lang|
170 170
            tag.li(role: 'none') do
......
179 179
    def table_menu
180 180
      tag.table(class: 'table-generator', role: 'grid',
181 181
                data: {
182
                  action: 'click->wiki-toolbar#closeMenu keydown.esc->wiki-toolbar#closeMenu ' \
182
                  action: 'click->wiki-toolbar#closeMenu keydown.esc->wiki-toolbar#closeMenuWithKeyboard ' \
183 183
                          'mouseover->wiki-toolbar#highlightTable focusin->wiki-toolbar#highlightTable'
184 184
                }) do
185 185
        @view.safe_join(
(7-7/8)