You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gitea/templates/repo
wxiaoguang 9be90a5875
Use a general approach to show tooltip, fix temporary tooltip bug (#23574)
## TLDR

* Improve performance: lazy creating the tippy instances.
* Transparently support all "tooltip" elements, no need to call
`initTooltip` again and again.
* Fix a temporary tooltip re-entrance bug, which causes showing temp
content forever.
* Upgrade vue3-calendar-heatmap to 2.0.2 with lazy tippy init
(initHeatmap time decreases from 100ms to 50ms)

## Details

### The performance

Creating a lot of tippy tooltip instances is expensive. This PR doesn't
create all tippy tooltip instances, instead, it only adds "mouseover"
event listener to necessary elements, and then switches to the tippy
tooltip

### The general approach for all tooltips

Before, dynamically generated tooltips need to be called with
`initTooltip`.

After, use MutationObserver to:

* Attach the event listeners to newly created tooltip elements, work for
Vue (easier than before)
* Catch changed attributes and update the tooltip content (better than
before)

It does help a lot, eg:

1a4efa0ee9/web_src/js/components/PullRequestMergeForm.vue (L33-L36)

### Temporary tooltip re-entrance bug

To reproduce, on try.gitea.io, click the "copy clone url" quickly, then
the tooltip will be "Copied!" forever.

After this PR, with the help of `attachTippyTooltip`, the tooltip
content could be reset to the default correctly.

### Other changes

* `data-tooltip-content` is preferred from now on, the old
`data-content` may cause conflicts with other modules.
* `data-placement` was only used for tooltip, so it's renamed to
`data-tooltip-placement`, and removed from `createTippy`.
2 years ago
..
actions Add workflow error notification in ui (#23404) 2 years ago
branch Make branches list page operations remember current page (#23420) 2 years ago
cite Convert `<div class="button">` to `<button class="button">` (#23337) 2 years ago
diff `Publish Review` buttons should indicate why they are disabled (#23598) 2 years ago
editor Replace a few fontawesome icons with svg (#23602) 2 years ago
find Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
graph Add context cache as a request level cache (#22294) 2 years ago
issue Use a general approach to show tooltip, fix temporary tooltip bug (#23574) 2 years ago
migrate Convert `<div class="button">` to `<button class="button">` (#23337) 2 years ago
projects Improve `<SvgIcon>` to make it output `svg` node and optimize performance (#23570) 2 years ago
pulls Fix long name ui issues and label ui issue (#23541) 2 years ago
release Convert `<div class="button">` to `<button class="button">` (#23337) 2 years ago
settings Allow both fullname and username search when `DEFAULT_SHOW_FULL_NAME` is true (#23463) 2 years ago
wiki Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
activity.tmpl Add context when rendering labels or emojis (#23281) 2 years ago
blame.tmpl Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
branch_dropdown.tmpl Refactor branch/tag selector to Vue SFC (#23421) 2 years ago
clone_buttons.tmpl Move helpers to be prefixed with `gt-` (#22879) 2 years ago
clone_script.tmpl Make clone URL use current page's host (#22808) 2 years ago
commit_page.tmpl Use octicon-verified for gpg signatures (#23529) 2 years ago
commit_status.tmpl Fix missing commit status in PR which from forked repo (#23351) 2 years ago
commit_statuses.tmpl Fix hidden commit status on multiple checks (#22889) 2 years ago
commits.tmpl Move helpers to be prefixed with `gt-` (#22879) 2 years ago
commits_list.tmpl Add context when rendering labels or emojis (#23281) 2 years ago
commits_list_small.tmpl Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
commits_table.tmpl Move helpers to be prefixed with `gt-` (#22879) 2 years ago
create.tmpl Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
create_helper.tmpl Add templates to customize text when creating and migrating repositories 2 years ago
empty.tmpl Add main landmark to templates and adjust titles (#22670) 2 years ago
file_info.tmpl Move helpers to be prefixed with `gt-` (#22879) 2 years ago
forks.tmpl Add context cache as a request level cache (#22294) 2 years ago
graph.tmpl Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
header.tmpl Move helpers to be prefixed with `gt-` (#22879) 2 years ago
home.tmpl Fix and move "Use this template" button (#23398) 2 years ago
icon.tmpl Move helpers to be prefixed with `gt-` (#22879) 2 years ago
packages.tmpl Add main landmark to templates and adjust titles (#22670) 2 years ago
search.tmpl Fix 'View File' button in code search (#23478) 2 years ago
search_name.tmpl Allow both fullname and username search when `DEFAULT_SHOW_FULL_NAME` is true (#23463) 2 years ago
shabox_badge.tmpl Fix shabox regression (#22924) 2 years ago
sub_menu.tmpl Use a general approach to show tooltip, fix temporary tooltip bug (#23574) 2 years ago
unicode_escape_prompt.tmpl Convert `<div class="button">` to `<button class="button">` (#23337) 2 years ago
upload.tmpl Refactor `i18n` to `locale` (#20153) 3 years ago
user_cards.tmpl Add context cache as a request level cache (#22294) 2 years ago
view_file.tmpl Refactor hiding-methods, remove jQuery show/hide, remove `.hide` class, remove inline style=display:none (#22950) 2 years ago
view_list.tmpl Add wrapper to author to avoid long name ui problem (#23030) 2 years ago
watchers.tmpl Add main landmark to templates and adjust titles (#22670) 2 years ago