-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
Add comment highlight when target from url #9047
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 3 commits
73e3c0b
558d9e3
7f30f04
468c6a1
7a6148f
0ca937a
301a87d
c95dd50
72d830d
a48e045
1329df2
690d1d7
3fa6466
f44022f
4799253
c354b1b
e373dae
b18df46
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -582,6 +582,25 @@ function initInstall() { | |
}); | ||
} | ||
|
||
function initIssueComments() { | ||
if ($('.repository.view.issue .comments').length === 0) return; | ||
|
||
$(document).click((event) => { | ||
const $target = $(event.target); | ||
|
||
if ($target.closest('.comment').length === 0) { | ||
if (window.location.hash.length > 0) { | ||
const i = window.location.toString().indexOf('#'); | ||
|
||
if (i >= 0) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of nesting There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I removed some checks. I think they are unnecessary because if there is an element with :target selected they should be. Am i wrong? |
||
window.history.pushState({}, '', window.location.toString().substr(0, i)); | ||
window.location.reload(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Instead of reload could you just modify CSS class? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There is no css class. Its by :target selector https://github.com/go-gitea/gitea/pull/9047/files#diff-12e7da6d8d2bc69c6b71119d1c9e6a96R844-R846 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ha ha, I guess There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @techknowlogick and it does not refresh page if not highlighted. Still i should change this behavior? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, please get rid of the reload. If you want to scroll to the anchor, use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Something like this: document.documentElement.addEventListener('click', (e) => {
if (!window.location.hash) return;
const target == document.querySelector(':target');
if (!target || e.target.contains(target) || !target.classList.contains('comment')) return;
const scrollY = document.documentElement.scrollTop;
window.history.replaceState(null, null, ' ');
document.documentElement.scrollTop = scrollY;
}); This preserves scroll location on hash reset and does not push useless history entries. Edit: refined it a bit. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @guillep2k i tried it first then changed because it reset scroll position to 0. But works well if we set scrollposition again? @jolheiser history.pushState(.. change url but does not affect anything :/ There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @silverwind ooh i saw late your comment. What i did lastly is acceptable for your? or i can change as you suggested There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Would prefer if you can try my version. It may need a bit more refining, but doing it without jQuery would be quite nice. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I fnished. It is working. If you suggest raw js, i can change code |
||
} | ||
} | ||
} | ||
}); | ||
} | ||
|
||
function initRepository() { | ||
if ($('.repository').length === 0) { | ||
return; | ||
|
@@ -729,6 +748,9 @@ function initRepository() { | |
return false; | ||
}); | ||
|
||
// Issue Comments | ||
initIssueComments(); | ||
|
||
// Edit issue or comment content | ||
$('.edit-content').click(function () { | ||
const $segment = $(this).parent().parent().parent() | ||
|
Uh oh!
There was an error while loading. Please reload this page.