mirror of
https://github.com/go-gitea/gitea.git
synced 2024-12-22 21:23:45 +08:00
a928739456
Follow #32460 Now the code could be much clearer than before and easier to maintain. A lot of legacy code is removed. Manually tested. This PR is large enough, that fine tunes could be deferred to the future if there is no bug found or design problem. Screenshots: <details> ![image](https://github.com/user-attachments/assets/35f4ab7b-1bc0-4bad-a73c-a4569328303c) </details>
32 lines
1.1 KiB
Markdown
32 lines
1.1 KiB
Markdown
A sidebar combo (dropdown+list) is like this:
|
|
|
|
```html
|
|
<div class="issue-sidebar-combo" data-selection-mode="..." data-update-url="...">
|
|
<input class="combo-value" name="..." type="hidden" value="...">
|
|
<div class="ui dropdown">
|
|
<div class="menu">
|
|
<div class="item clear-selection">clear</div>
|
|
<div class="item" data-value="..." data-scope="...">
|
|
<span class="item-check-mark">...</span>
|
|
...
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="ui list">
|
|
<span class="item empty-list">no item</span>
|
|
<span class="item">...</span>
|
|
</div>
|
|
</div>
|
|
```
|
|
|
|
When the selected items change, the `combo-value` input will be updated.
|
|
If there is `data-update-url`, it also calls backend to attach/detach the changed items.
|
|
|
|
Also, the changed items will be syncronized to the `ui list` items.
|
|
|
|
The items with the same data-scope only allow one selected at a time.
|
|
|
|
The dropdown selection could work in 2 modes:
|
|
* single: only one item could be selected, it updates immediately when the item is selected.
|
|
* multiple: multiple items could be selected, it defers the update until the dropdown is hidden.
|