aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/modules
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2023-03-26 19:31:26 +0800
committerGitHub <noreply@github.com>2023-03-26 19:31:26 +0800
commit12fff36d057998fe553decdc81c881d3d0e70274 (patch)
tree9c2255c96477680a48a26bb88f39f5943d075051 /web_src/js/modules
parentac64c8297444ade63a2a364c4afb7e6c1de5a75f (diff)
downloadgitea-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.js29
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();
+}