Page MenuHomePhabricator

Special:MultiPageEdit is only correctly rendering the first combobox per row
Closed, ResolvedPublic

Description

I have a template that has multiple entries that should be rendered as comboboxes on the Special:MultiPageEdit page. However, when I click to edit a row, only the first combobox is being rendered in the row. The other fields are being shown as text fields.

I believe this is caused by the fact that ./lib/PF_jsGrid.js is using a CSS id (#jsGridComboBox) instead of a CSS class or a unique id. Line 673 appears to only check for and apply comboxbox.apply() to one element, rather than a set of elements. Line 240 appears to expect only one combobox as well.

Here's a snippet that might help illustrate what I'm seeing, where First property is being turned successfully into a comboxbox, but Second property is not:

<tr class="jsgrid-edit-row">
    <td style="width: 100px;">
        <input type="text">
    </td>
    <td style="width: 100px;">
        <div class="select2-container pfCombobox pf-select2-container" id="s2id_jsGridComboBox" style="min-width: 210px;">
            <a href="javascript:void(0)" onclick="return false;" class="select2-choice" tabindex="-1"> <span class="select2-chosen" id="select2-chosen-3">FOO</span><abbr class="select2-search-choice-close"></abbr> <span class="select2-arrow" role="presentation"><b role="presentation"></b></span></a>
            <label for="s2id_autogen3" class="select2-offscreen"></label>
            <input class="select2-focusser select2-offscreen" type="text" aria-haspopup="true" role="button" aria-labelledby="select2-chosen-3" id="s2id_autogen3">
            <div class="select2-drop select2-display-none pf-select2-dropdown select2-with-searchbox">
                <div class="select2-search">
                    <label for="s2id_autogen3_search" class="select2-offscreen"></label>
                    <input type="text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" class="select2-input" role="combobox" aria-expanded="true" aria-autocomplete="list" aria-owns="select2-results-3" id="s2id_autogen3_search" placeholder=""> </div>
                <ul class="select2-results" role="listbox" id="select2-results-3"> </ul>
            </div>
        </div>
        <input id="jsGridComboBox" class="pfCombobox select2-offscreen" value="FOO" autocompletesettings="First property" size="35" tabindex="-1" title="">
    </td>
    <td style="width: 100px;">
        <input id="jsGridComboBox" class="pfCombobox" value="BAR" autocompletesettings="Second property" size="35">
    </td>

Event Timeline

Rocketnova renamed this task from Special:MultiPageEdit is only rendering 1 combobox per row to Special:MultiPageEdit is only correctly rendering the first combobox per row.Aug 8 2019, 6:46 AM
Yaron_Koren claimed this task.
Yaron_Koren subscribed.

I believe this is no longer an issue, now that the jsGrid library in Page Forms has been replaced by jExcel.