Preview based on the correct filename on the editor (#3894)

This commit is contained in:
Naoki Takezoe
2025-12-21 13:23:30 +09:00
committed by GitHub
parent c88e5adac2
commit c2ad66438c
2 changed files with 30 additions and 24 deletions

View File

@@ -13,8 +13,8 @@ import gitbucket.core.util.*
import gitbucket.core.view.helpers.*
import org.scalatra.Ok
import org.scalatra.forms.*
import gitbucket.core.service.ActivityService.*
import gitbucket.core.view.helpers
class IndexController
extends IndexControllerBase
@@ -92,6 +92,10 @@ trait IndexControllerBase extends ControllerBase {
}
}
get("/_is_renderable") {
helpers.isRenderable(params("filename"))
}
get("/signin") {
if (context.loginAccount.nonEmpty) {
redirect("/")

View File

@@ -208,29 +208,31 @@ $(function(){
$('#preview').show();
$('#btn-code').removeClass('active');
@if(fileName.map(helpers.isRenderable _).getOrElse(false)) {
// update preview
$('#preview').html('<img src="@helpers.assets("/common/images/indicator.gif")"> Previewing...');
$.post('@helpers.url(repository)/_preview', {
content : editor.getValue(),
enableWikiLink : false,
filename : $('#newFileName').val(),
enableRefsLink : false,
enableLineBreaks : false,
enableTaskList : false
}, function(data){
$('#preview').empty().append(
$('<div class="markdown-body" style="padding-left: 20px; padding-right: 20px;">').html(data));
prettyPrint();
});
} else {
// Show diff
$('#preview').empty()
.append($('<div id="diffText">'))
.append($('<textarea id="newText" style="display: none;">').data('file-name',$("#newFileName").val()).data('val', editor.getValue()))
.append($('<textarea id="oldText" style="display: none;">').data('file-name',$("#oldFileName").val()).data('val', $('#initial').val()));
diffUsingJS('oldText', 'newText', 'diffText', 1);
}
$.get("/_is_renderable?filename=" + encodeURIComponent($('#newFileName').val()), function(data) {
if (data === 'true') {
// update preview
$('#preview').html('<img src="@helpers.assets("/common/images/indicator.gif")"> Previewing...');
$.post('@helpers.url(repository)/_preview', {
content : editor.getValue(),
enableWikiLink : false,
filename : $('#newFileName').val(),
enableRefsLink : false,
enableLineBreaks : false,
enableTaskList : false
}, function(data){
$('#preview').empty().append(
$('<div class="markdown-body" style="padding-left: 20px; padding-right: 20px;">').html(data));
prettyPrint();
});
} else {
// Show diff
$('#preview').empty()
.append($('<div id="diffText">'))
.append($('<textarea id="newText" style="display: none;">').data('file-name',$("#newFileName").val()).data('val', editor.getValue()))
.append($('<textarea id="oldText" style="display: none;">').data('file-name',$("#oldFileName").val()).data('val', $('#initial').val()));
diffUsingJS('oldText', 'newText', 'diffText', 1);
}
});
});
});
</script>