diff options
author | silverwind <me@silverwind.io> | 2021-05-19 05:16:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-18 23:16:02 -0400 |
commit | 370cfde35e5b54902cf335581f15fa1d43529b43 (patch) | |
tree | 75447fd2cc57481fb69c59934f02695768699cc7 /web_src | |
parent | 0e56e9c9d91c24a19c0bcbb521f671b230e6ba2a (diff) | |
download | gitea-370cfde35e5b54902cf335581f15fa1d43529b43.tar.gz gitea-370cfde35e5b54902cf335581f15fa1d43529b43.zip |
Fix and restyle menu on code line (#15913)
* Fix and restyle menu on code line
* fix multiline and more tweaks
* move to separate files
* remove has-context-menu class
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'web_src')
-rw-r--r-- | web_src/js/code/linebutton.js | 11 | ||||
-rw-r--r-- | web_src/js/index.js | 58 | ||||
-rw-r--r-- | web_src/js/svg.js | 2 | ||||
-rw-r--r-- | web_src/less/_base.less | 29 | ||||
-rw-r--r-- | web_src/less/_repository.less | 7 | ||||
-rw-r--r-- | web_src/less/code/linebutton.less | 24 | ||||
-rw-r--r-- | web_src/less/index.less | 1 | ||||
-rw-r--r-- | web_src/less/themes/theme-arc-green.less | 6 |
8 files changed, 57 insertions, 81 deletions
diff --git a/web_src/js/code/linebutton.js b/web_src/js/code/linebutton.js new file mode 100644 index 0000000000..c177ca6658 --- /dev/null +++ b/web_src/js/code/linebutton.js @@ -0,0 +1,11 @@ +import {svg} from '../svg.js'; + +export function showLineButton() { + if ($('.code-line-menu').length === 0) return; + $('.code-line-button').remove(); + $('.code-view td.lines-code.active').closest('tr').find('td:eq(0)').first().prepend( + $(`<button class="code-line-button">${svg('octicon-kebab-horizontal')}</button>`) + ); + $('.code-line-menu').appendTo($('.code-view')); + $('.code-line-button').popup({popup: $('.code-line-menu'), on: 'click'}); +} diff --git a/web_src/js/index.js b/web_src/js/index.js index d7fa9c8b9b..6cb47cf104 100644 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -22,6 +22,7 @@ import {initMarkupAnchors} from './markup/anchors.js'; import {initNotificationsTable, initNotificationCount} from './features/notification.js'; import {initStopwatch} from './features/stopwatch.js'; import {renderMarkupContent} from './markup/content.js'; +import {showLineButton} from './code/linebutton.js'; import {stripTags, mqBinarySearch} from './utils.js'; import {svg, svgs} from './svg.js'; @@ -2213,49 +2214,6 @@ function searchRepositories() { }); } -function showCodeViewMenu() { - if ($('.code-view-menu-list').length === 0) { - return; - } - - // Get clicked tr - const $code_tr = $('.code-view td.lines-code.active').parent(); - - // Reset code line marker - $('.code-view-menu-list').appendTo($('.code-view')); - $('.code-line-marker').remove(); - - // Generate new one - const icon_wrap = $('<div>', { - class: 'code-line-marker' - }).prependTo($code_tr.find('td:eq(0)').get(0)).hide(); - - const a_wrap = $('<a>', { - class: 'code-line-link' - }).appendTo(icon_wrap); - - $('<i>', { - class: 'dropdown icon', - style: 'margin: 0px;' - }).appendTo(a_wrap); - - icon_wrap.css({ - left: '-7px', - display: 'block', - }); - - $('.code-view-menu-list').css({ - 'min-width': '220px', - }); - - // Popup the menu - $('.code-line-link').popup({ - popup: $('.code-view-menu-list'), - on: 'click', - lastResort: 'bottom left', - }); -} - function initCodeView() { if ($('.code-view .lines-num').length > 0) { $(document).on('click', '.lines-num span', function (e) { @@ -2268,9 +2226,7 @@ function initCodeView() { } selectRange($list, $list.filter(`[rel=${$select.attr('id')}]`), (e.shiftKey ? $list.filter('.active').eq(0) : null)); deSelect(); - - // show code view menu marker - showCodeViewMenu(); + showLineButton(); }); $(window).on('hashchange', () => { @@ -2285,10 +2241,7 @@ function initCodeView() { if (m) { $first = $list.filter(`[rel=${m[1]}]`); selectRange($list, $first, $list.filter(`[rel=${m[2]}]`)); - - // show code view menu marker - showCodeViewMenu(); - + showLineButton(); $('html, body').scrollTop($first.offset().top - 200); return; } @@ -2296,10 +2249,7 @@ function initCodeView() { if (m) { $first = $list.filter(`[rel=L${m[2]}]`); selectRange($list, $first); - - // show code view menu marker - showCodeViewMenu(); - + showLineButton(); $('html, body').scrollTop($first.offset().top - 200); } }).trigger('hashchange'); diff --git a/web_src/js/svg.js b/web_src/js/svg.js index b7d8c75350..0960256e21 100644 --- a/web_src/js/svg.js +++ b/web_src/js/svg.js @@ -4,6 +4,7 @@ import octiconGitMerge from '../../public/img/svg/octicon-git-merge.svg'; import octiconGitPullRequest from '../../public/img/svg/octicon-git-pull-request.svg'; import octiconIssueClosed from '../../public/img/svg/octicon-issue-closed.svg'; import octiconIssueOpened from '../../public/img/svg/octicon-issue-opened.svg'; +import octiconKebabHorizontal from '../../public/img/svg/octicon-kebab-horizontal.svg'; import octiconLink from '../../public/img/svg/octicon-link.svg'; import octiconLock from '../../public/img/svg/octicon-lock.svg'; import octiconMilestone from '../../public/img/svg/octicon-milestone.svg'; @@ -20,6 +21,7 @@ export const svgs = { 'octicon-git-pull-request': octiconGitPullRequest, 'octicon-issue-closed': octiconIssueClosed, 'octicon-issue-opened': octiconIssueOpened, + 'octicon-kebab-horizontal': octiconKebabHorizontal, 'octicon-link': octiconLink, 'octicon-lock': octiconLock, 'octicon-milestone': octiconMilestone, diff --git a/web_src/less/_base.less b/web_src/less/_base.less index 224586b079..7848810940 100644 --- a/web_src/less/_base.less +++ b/web_src/less/_base.less @@ -560,6 +560,19 @@ a.ui.card:hover, border-color: var(--color-secondary); } +.ui.link.list .item, +.ui.link.list a.item, +.ui.link.list .item a:not(.ui) { + color: var(--color-text); +} + +.ui.link.list.list a.item:hover, +.ui.link.list.list .item a:not(.ui):hover, +.ui.link.list.list a.item:active, +.ui.link.list.list .item a:not(.ui):active { + color: var(--color-text-dark); +} + .dont-break-out { overflow-wrap: break-word; word-wrap: break-word; @@ -1565,20 +1578,8 @@ a.ui.label:hover { border-bottom: 1px solid var(--color-secondary); } } -.code-view { - overflow: auto; - overflow-x: auto; - overflow-y: hidden; - - &.has-context-menu { - overflow: visible; - overflow-x: visible; - overflow-y: visible; - } - - table { - width: 100%; - } +.code-view table { + width: 100%; } .octicon-tiny { diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less index ef241661dd..b90e287b44 100644 --- a/web_src/less/_repository.less +++ b/web_src/less/_repository.less @@ -3139,10 +3139,3 @@ td.blob-excerpt { transform: scale(105%); box-shadow: 0 .5rem 1rem var(--color-shadow) !important; } - -.code-line-marker { - width: 13px; - height: 20px; - background-color: rgb(34 36 38 / 15%); - position: absolute; -} diff --git a/web_src/less/code/linebutton.less b/web_src/less/code/linebutton.less new file mode 100644 index 0000000000..a2956ffc1f --- /dev/null +++ b/web_src/less/code/linebutton.less @@ -0,0 +1,24 @@ +.code-view .lines-num:hover { + color: var(--color-text-dark) !important; +} + +.code-line-menu { + width: auto !important; +} + +.code-line-button { + background-color: var(--color-menu); + color: var(--color-text-light); + border: 1px solid var(--color-secondary); + border-radius: var(--border-radius); + padding: 1px 10px; + position: absolute; + font-family: var(--fonts-regular); + left: 0; + transform: translateX(-70%); + cursor: pointer; + + &:hover { + color: var(--color-primary); + } +} diff --git a/web_src/less/index.less b/web_src/less/index.less index f52953f2a4..d96fe3df82 100644 --- a/web_src/less/index.less +++ b/web_src/less/index.less @@ -11,6 +11,7 @@ @import "./features/projects.less"; @import "./markup/content.less"; @import "./markup/mermaid.less"; +@import "./code/linebutton.less"; @import "./chroma/base.less"; @import "./chroma/light.less"; diff --git a/web_src/less/themes/theme-arc-green.less b/web_src/less/themes/theme-arc-green.less index c493a255c7..e638f3b461 100644 --- a/web_src/less/themes/theme-arc-green.less +++ b/web_src/less/themes/theme-arc-green.less @@ -153,12 +153,6 @@ background: #353945; } -.ui.link.list .item, -.ui.link.list a.item, -.ui.link.list .item a:not(.ui) { - color: #dbdbdb; -} - .ui.red.label, .ui.red.labels .label { background-color: #7d3434 !important; |