[Reproducible-commits] [diffoscope] 01/01: Make table loading links fail gracefully
Joachim Breitner
nomeata at moszumanska.debian.org
Wed Dec 2 17:15:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
nomeata pushed a commit to branch html-dir
in repository diffoscope.
commit 5d2057cdd8421c19afd9c7795679132bdd838735
Author: Joachim Breitner <mail at joachim-breitner.de>
Date: Wed Dec 2 18:14:33 2015 +0100
Make table loading links fail gracefully
by wrapping them in a proper header (requires threading through css_url
:-() and by using jQuery’s load function, which is capable of extracting
a fragment (here: "table") from the loaded file.
---
diffoscope/presenters/html.py | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/diffoscope/presenters/html.py b/diffoscope/presenters/html.py
index d6c0d39..00a1129 100644
--- a/diffoscope/presenters/html.py
+++ b/diffoscope/presenters/html.py
@@ -60,8 +60,8 @@ DIFFOFF = "\x02"
HEADER = """<!DOCTYPE html>
<html>
<head>
- <meta charset="utf-8">
- <meta name="generator" content="diffoscope">
+ <meta charset="utf-8" />
+ <meta name="generator" content="diffoscope" />
<link rel="icon" type="image/png" href="data:image/png;base64,%(favicon)s" />
<title>%(title)s</title>
<style>
@@ -166,10 +166,10 @@ $(function() {
var filename = $(this).attr('href');
var div = $(this).parent();
div.text('... loading ...');
- $.get(filename, function (data) {
- console.log('data');
- div.replaceWith(data);
- }, 'html');
+ div.load(filename + " table", function() {
+ // http://stackoverflow.com/a/8452751/946226
+ $(this).children(':first').unwrap();
+ });
return false;
});
});
@@ -489,13 +489,15 @@ def output_unified_diff_table(print_func, unified_diff):
finally:
print_func(u"</table>", force=True)
-def output_unified_diff(print_func, directory, unified_diff):
+def output_unified_diff(print_func, css_url, directory, unified_diff):
if directory and len(unified_diff) > Config.general.separate_file_diff_size:
# open a new file for this table
filename="%s.html" % hashlib.md5(unified_diff.encode('utf-8')).hexdigest()
logger.debug('separate html output for diff of size %d', len(unified_diff))
with file_printer(directory, filename) as new_print_func:
+ output_header(css_url, new_print_func)
output_unified_diff_table(new_print_func, unified_diff)
+ output_footer(new_print_func)
print_func("<div class='ondemand'>\n")
print_func("... <a href='%s'>load diff</a> ...\n" % escape(filename))
@@ -504,7 +506,7 @@ def output_unified_diff(print_func, directory, unified_diff):
else:
output_unified_diff_table(print_func, unified_diff)
-def output_difference(difference, print_func, directory, parents):
+def output_difference(difference, print_func, css_url, directory, parents):
logger.debug('html output for %s', difference.source1)
sources = parents + [difference.source1]
print_func(u"<div class='difference'>")
@@ -526,9 +528,9 @@ def output_difference(difference, print_func, directory, parents):
% u'<br />'.join(map(escape, difference.comments)))
print_func(u"</div>")
if difference.unified_diff:
- output_unified_diff(print_func, directory, difference.unified_diff)
+ output_unified_diff(print_func, css_url, directory, difference.unified_diff)
for detail in difference.details:
- output_difference(detail, print_func, directory, sources)
+ output_difference(detail, print_func, css_url, directory, sources)
except PrintLimitReached:
logger.debug('print limit reached')
raise
@@ -546,6 +548,10 @@ def output_header(css_url, print_func):
'css_link': css_link,
})
+def output_footer(print_func):
+ print_func(FOOTER % {'version': VERSION}, force=True)
+
+
def output_html(difference, css_url=None, print_func=None):
"""
Default presenter, all in one HTML file
@@ -555,12 +561,12 @@ def output_html(difference, css_url=None, print_func=None):
print_func = create_limited_print_func(print_func, Config.general.max_report_size)
try:
output_header(css_url, print_func)
- output_difference(difference, print_func, None, [])
+ output_difference(difference, print_func, css_url, None, [])
except PrintLimitReached:
logger.debug('print limit reached')
print_func(u"<div class='error'>Max output size reached.</div>",
force=True)
- print_func(FOOTER % {'version': VERSION}, force=True)
+ output_footer(print_func)
@contextmanager
def file_printer(directory, filename):
@@ -591,10 +597,10 @@ def output_html_directory(directory, difference, css_url=None, jquery_url=None):
print_func = create_limited_print_func(print_func, Config.general.max_report_size)
try:
output_header(css_url, print_func)
- output_difference(difference, print_func, directory, [])
+ output_difference(difference, print_func, css_url, directory, [])
except PrintLimitReached:
logger.debug('print limit reached')
print_func(u"<div class='error'>Max output size reached.</div>",
force=True)
print_func(SCRIPTS % {'jquery_url': escape(jquery_url)}, force=True)
- print_func(FOOTER % {'version': VERSION}, force=True)
+ output_footer(print_func)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git
More information about the Reproducible-commits
mailing list