diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2022-04-26 11:14:01 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-26 11:14:01 +0800 |
commit | fef26c159c7f426d7f6331b31e6d4119e47a9188 (patch) | |
tree | f281167866f9f0fce16ee97317a501a6a1d2f20b | |
parent | 741c55b4eacafa2e3e55ccd634cd3511920dfc98 (diff) | |
download | gitea-fef26c159c7f426d7f6331b31e6d4119e47a9188.tar.gz gitea-fef26c159c7f426d7f6331b31e6d4119e47a9188.zip |
Fix two UI bugs: JS error in imagediff.js, 500 error in diff/compare.tmpl
Co-authored-by: 6543 <6543@obermui.de>
-rw-r--r-- | templates/repo/diff/compare.tmpl | 2 | ||||
-rw-r--r-- | web_src/js/features/imagediff.js | 15 |
2 files changed, 12 insertions, 5 deletions
diff --git a/templates/repo/diff/compare.tmpl b/templates/repo/diff/compare.tmpl index 4517f0029c..743eaa2efa 100644 --- a/templates/repo/diff/compare.tmpl +++ b/templates/repo/diff/compare.tmpl @@ -191,7 +191,7 @@ <div class="twelve wide column issue-title"> {{.i18n.Tr "repo.pulls.has_pull_request" (Escape $.RepoLink) (Escape $.RepoRelPath) .PullRequest.Index | Safe}} <h1> - <span id="issue-title">{{RenderIssueTitle .PullRequest.Issue.Title $.RepoLink $.Repository.ComposeMetas}}</span> + <span id="issue-title">{{RenderIssueTitle $.Context .PullRequest.Issue.Title $.RepoLink $.Repository.ComposeMetas}}</span> <span class="index">#{{.PullRequest.Issue.Index}}</span> </h1> </div> diff --git a/web_src/js/features/imagediff.js b/web_src/js/features/imagediff.js index 6fd2ba6c36..1745331768 100644 --- a/web_src/js/features/imagediff.js +++ b/web_src/js/features/imagediff.js @@ -4,10 +4,12 @@ function getDefaultSvgBoundsIfUndefined(svgXml, src) { const DefaultSize = 300; const MaxSize = 99999; - const svg = svgXml.rootElement; - - const width = svg.width.baseVal; - const height = svg.height.baseVal; + const svg = svgXml.documentElement; + const width = svg?.width?.baseVal; + const height = svg?.height?.baseVal; + if (width === undefined || height === undefined) { + return null; // in case some svg is invalid or doesn't have the width/height + } if (width.unitType === SVGLength.SVG_LENGTHTYPE_PERCENTAGE || height.unitType === SVGLength.SVG_LENGTHTYPE_PERCENTAGE) { const img = new Image(); img.src = src; @@ -29,6 +31,7 @@ function getDefaultSvgBoundsIfUndefined(svgXml, src) { height: DefaultSize }; } + return null; } export default function initImageDiff() { @@ -88,6 +91,10 @@ export default function initImageDiff() { info.$image.on('load', () => { info.loaded = true; setReadyIfLoaded(); + }).on('error', () => { + info.loaded = true; + setReadyIfLoaded(); + info.$boundsInfo.text('(image error)'); }); info.$image.attr('src', info.path); |