diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2023-03-26 19:31:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-26 19:31:26 +0800 |
commit | 12fff36d057998fe553decdc81c881d3d0e70274 (patch) | |
tree | 9c2255c96477680a48a26bb88f39f5943d075051 /web_src/js/modules | |
parent | ac64c8297444ade63a2a364c4afb7e6c1de5a75f (diff) | |
download | gitea-12fff36d057998fe553decdc81c881d3d0e70274.tar.gz gitea-12fff36d057998fe553decdc81c881d3d0e70274.zip |
Fine tune more downdrop settings, use SVG for labels, improve Repo Topic Edit form (#23626)
Although it seems that some different purposes are mixed in this PR,
however, they are all related, and can be tested together, so I put them
together to save everyone's time.
Diff: `+79 −84`, everything becomes much better.
### Improve the dropdown settings.
Move all fomantic-init related code into our `fomantic.js`
Fine-tune some dropdown global settings, see the comments.
Also help to fix the first problem in #23625 , cc: @yp05327
The "language" menu has been simplified, and it works with small-height
window better.
### Use SVG instead of `<i class="delete icon">`
It's also done by `$.fn.dropdown.settings.templates.label` , cc:
@silverwind
### Remove incorrect `tabable` CSS class
It doesn't have CSS styles, and it was only in Vue. So it's totally
unnecessary, remove it by the way.
### Improve the Repo Topic Edit form
* Simplify the code
* Add a "Cancel" button
* Align elements
Before:
<details>
![image](https://user-images.githubusercontent.com/2114189/223325782-f09532de-0c38-4742-ba86-ed35cc9a858d.png)
</details>
After:
![image](https://user-images.githubusercontent.com/2114189/226796347-207feb0a-b3cd-4820-8a3e-01930bab1069.png)
Diffstat (limited to 'web_src/js/modules')
-rw-r--r-- | web_src/js/modules/fomantic.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/web_src/js/modules/fomantic.js b/web_src/js/modules/fomantic.js new file mode 100644 index 0000000000..218166249f --- /dev/null +++ b/web_src/js/modules/fomantic.js @@ -0,0 +1,29 @@ +import $ from 'jquery'; +import {initAriaCheckboxPatch} from './aria/checkbox.js'; +import {initAriaDropdownPatch} from './aria/dropdown.js'; +import {svg} from '../svg.js'; + +export function initGiteaFomantic() { + // Silence fomantic's error logging when tabs are used without a target content element + $.fn.tab.settings.silent = true; + // Disable the behavior of fomantic to toggle the checkbox when you press enter on a checkbox element. + $.fn.checkbox.settings.enableEnterKey = false; + + // Prevent Fomantic from guessing the popup direction. + // Otherwise, if the viewport height is small, Fomantic would show the popup upward, + // if the dropdown is at the beginning of the page, then the top part would be clipped by the window view, eg: Issue List "Sort" dropdown + $.fn.dropdown.settings.direction = 'downward'; + // By default, use "exact match" for full text search + $.fn.dropdown.settings.fullTextSearch = 'exact'; + // Do not use "cursor: pointer" for dropdown labels + $.fn.dropdown.settings.className.label += ' gt-cursor-default'; + // Always use Gitea's SVG icons + $.fn.dropdown.settings.templates.label = function(_value, text, preserveHTML, className) { + const escape = $.fn.dropdown.settings.templates.escape; + return escape(text, preserveHTML) + svg('octicon-x', 16, `${className.delete} icon`); + }; + + // Use the patches to improve accessibility, these patches are designed to be as independent as possible, make it easy to modify or remove in the future. + initAriaCheckboxPatch(); + initAriaDropdownPatch(); +} |