From 1447f6a74e0889480884e508e0e4dec0f44b0053 Mon Sep 17 00:00:00 2001 From: Shan Jin Date: Wed, 4 Dec 2013 16:58:31 +0800 Subject: [PATCH] interface to create a dist dir for snap-diff 1. update html template to insert json data to html. 2. add css and more static file to git tree. 3. add a function in repo.py to provide a interface. Fixes: #1510 Change-Id: Idca060db88616e338f69667364fdb5a39137f422 --- MANIFEST.in | 2 +- snapdiff/__init__.py | 28 +++ snapdiff/static/css/html-reset.css | 324 +++++++++++++++++++++++++ snapdiff/static/css/layout-liquid.css | 84 +++++++ snapdiff/static/css/shCore.css | 226 +++++++++++++++++ snapdiff/static/css/shThemeDefault.css | 117 +++++++++ snapdiff/static/css/style.css | 311 ++++++++++++++++++++++++ snapdiff/static/css/tizen.css | 209 ++++++++++++++++ snapdiff/static/img/tizen-logo.png | Bin 0 -> 7445 bytes snapdiff/templates/diff.html | 82 ++++++- 10 files changed, 1372 insertions(+), 11 deletions(-) create mode 100644 snapdiff/static/css/html-reset.css create mode 100644 snapdiff/static/css/layout-liquid.css create mode 100644 snapdiff/static/css/shCore.css create mode 100644 snapdiff/static/css/shThemeDefault.css create mode 100644 snapdiff/static/css/style.css create mode 100644 snapdiff/static/css/tizen.css create mode 100644 snapdiff/static/img/tizen-logo.png diff --git a/MANIFEST.in b/MANIFEST.in index 410a988..99b20ae 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,2 @@ include snapdiff/templates/*.html - +include snapdiff/static/*/* diff --git a/snapdiff/__init__.py b/snapdiff/__init__.py index 4f8d6b6..2b0b8e9 100644 --- a/snapdiff/__init__.py +++ b/snapdiff/__init__.py @@ -130,3 +130,31 @@ def diff_to_HTML(old_url, new_url, style='repo'): } return output_html('diff.html', **context) + +def diff_to_dist(old_url, new_url, dist_path): + """create a dist-dir of diffs, contains html and css""" + import os + static_dir = os.path.join( + os.path.dirname(os.path.abspath(__file__)), 'static') + output_html = diff_to_HTML(old_url, new_url) + + if not os.path.exists(dist_path): + os.makedirs(dist_path) + import shutil + + for root, dirs, files in os.walk(static_dir): + for filename in files: + if filename.endswith('.css'): + if not os.path.exists(os.path.join(dist_path, 'css')): + os.makedirs(os.path.join(dist_path, 'css')) + shutil.copy(os.path.join(root, filename), + os.path.join(dist_path, 'css', filename)) + elif filename.endswith('.png'): + if not os.path.exists(os.path.join(dist_path, 'img')): + os.makedirs(os.path.join(dist_path, 'img')) + shutil.copy(os.path.join(root, filename), + os.path.join(dist_path, 'img', filename)) + + with open(os.path.join(dist_path, 'diff.html'), 'w') as fp: + fp.write(output_html) + return dist_path diff --git a/snapdiff/static/css/html-reset.css b/snapdiff/static/css/html-reset.css new file mode 100644 index 0000000..98dd8dc --- /dev/null +++ b/snapdiff/static/css/html-reset.css @@ -0,0 +1,324 @@ +/* $Id: meego.css,v 1.18.2.1 2010/04/05 12:45:00 mshaver Exp $ */ + +/** + * @file + * MeeGo Static HTML Reset Styling + * + * Style the base markup found in static HTML pages for MeeGo. Styles are derived from the "meego" + * theme found at meego.com. + */ + + +/* + * Fonts + * + * Our font size and line height declarations are based on the following ALA + * article: + * http://www.alistapart.com/articles/howtosizetextincss + * + * All modern browsrs use a 16px default font size. Specifying the font-size + * and line-height in ems (relative to the 16px default font) allows the user + * to resize the font in the browser and produces the most consistent results + * across different browsers. + */ +body { + font-size: 100%; /* Fixes exaggerated text resizing in IE6 and IE7 */ + color: #333333; + background-color: #FFFFFF; +} + +#skip-to-nav, +#page { + /* + * To use a 12px font size on the page, delete the 14px declarations. + * to use a 14px font size on the page, delete the 12px declarations. + */ + + /* Use a 14px base font size with a 18px line height */ + font-size: 0.875em; /* 16px x .875 = 14px */ + line-height: 1.286em; /* 14px x 1.286 = 18px */ + +} + +body, +caption, +th, +td, +input, +textarea, +select, +option, +legend, +fieldset { + /* The following font family declarations are based on the Microsoft core web + * fonts which are common fonts available on most computer systems. The DejaVu + * fonts are commonly available on Linux systems where the MS fonts are less + * common. Tahoma and Helvetica are also widely available. + * + * A user's web browser will look at the comma-separated list and will + * attempt to use each font in turn until it finds one that is available + * on the user's computer. The final "generic" font (sans-serif or serif) + * hints at what type of font to use if the web browser doesn't find any + * of the fonts in the list. + + font-family: "Times New Roman", Times, Georgia, "DejaVu Serif", serif; + font-family: Times, "Times New Roman", Georgia, "DejaVu Serif", serif; + font-family: Georgia, "Times New Roman", "DejaVu Serif", serif; + + font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif; + font-family: Tahoma, Verdana, "DejaVu Sans", sans-serif; + font-family: Helvetica, Arial, "Nimbus Sans L", sans-serif; + font-family: Arial, Helvetica, "Nimbus Sans L", sans-serif; + + font-family: "Courier New", "DejaVu Sans Mono", monospace; + + */ + + font-family: Verdana, Tahoma, "DejaVu Sans", sans-serif; +} + +pre, +code { + font-size: 1.1em; /* Monospace fonts can be hard to read */ + font-family: "Courier New", "DejaVu Sans Mono", monospace; +} + +/* + * Headings + */ +h1 { + font-size: 2em; + line-height: 1.3em; + margin-top: 0; + margin-bottom: 0.5em; /* 0.5em is equavalent to 1em in the page's base font. + Remember, a margin specified in ems is relative to + the element's font-size, not to the pages' base + font size. So, for example, if we want a 1em margin + (relative to the base font), we have to divide that + length by the element's font-size: + 1em / 2em = 0.5em */ +} + +h2 { + font-size: 1.5em; + line-height: 1.3em; + margin-top: 0.667em; /* Equivalent to 1em in the page's base font: 1 / 1.5 = 0.667em */ + margin-bottom: 0.667em; +} + +h3 { + font-size: 1.3em; + line-height: 1.3em; + margin-top: 0.769em; /* Equivalent to 1em in the page's base font: 1 / 1.3 = 0.769 */ + margin-bottom: 0.769em; +} + +h4, +h5, +h6 { + font-size: 1.1em; + line-height: 1.3em; + margin-top: 0.909em; /* Equivalent to 1em in the page's base font: 1 / 1.1 = 0.909 */ + margin-bottom: 0.909em; +} + +/* + * Block-level elements + */ +p, +ul, +ol, +dl, +pre, +table, +fieldset { + margin: 1em 0; +} + +blockquote { + margin: 1em 2em; +} + +#content .node h2, +#content .node h3, +#content .node h4, +#content .node h5 { + margin-bottom: 0; + margin-top: 1em; +} + +#content .node h2 + p, +#content .node h3 + p, +#content .node h4 + p, +#content .node h5 + p { + margin-top: 0; +} + +/* + * Lists + * + * We need to standardize the list item indentation. + */ +ul, +ol { + margin-left: 2em; + padding-left: 2em; /* LTR */ +} + +.block ul, +.item-list ul /* Drupal overrides */ { + margin: 0; + padding: 0; /* LTR */ +} + +ul ul, ul ol, +ol ol, ol ul, +.block ul ul, .block ul ol, +.block ol ol, .block ol ul, +.item-list ul ul, .item-list ul ol, +.item-list ol ol, .item-list ol ul { + margin: 0; +} + +li { + margin: 0; + padding: 0; +} + +.item-list ul li /* Drupal override */ { + padding: 0; + list-style: inherit; +} + +ul { list-style-type: disc; } +ul ul { list-style-type: circle; } +ul ul ul { list-style-type: square; } +ul ul ul ul { list-style-type: circle; } +ol { list-style-type: decimal; } +ol ol { list-style-type: lower-alpha; } +ol ol ol { list-style-type: decimal; } + +ul.menu li, +li.expanded, +li.collapsed, +li.leaf /* Drupal override */ { + margin: 0; + padding: 0; + list-style-image: none; + list-style-type: none; + list-style: none; +} + +dt { + margin: 0; + padding: 0; + font-weight: bold; +} + +dd { + margin: 0 0 2em; + padding: 0; +} + +/* + * Links + * + * The order of link states are based on Eric Meyer's article: + * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states + */ +a:link { + border-bottom: 1px dotted #333333; + color: #333333; + text-decoration: none; +} + +a:visited { + border-bottom: 1px dotted #333333; + color: #333333; + text-decoration: none; +} + +a:hover, +a:focus, +a:active { + border-bottom: 1px dotted #E3038D; + color: #E3038D; + text-decoration: none; +} + +a:active { +} + +/* + * Tables + * + * Drupal provides table styling which is only useful for its admin section + * forms, so we override this default CSS. (We set it back in forms.css.) + */ +table { + border-collapse: collapse; + width: 100%; /* Prevent cramped-looking tables */ +} + +th, +thead th, +tbody th { + text-align: left; /* LTR */ + padding: 0; + border-bottom: 2px solid #ccc; +} + +tbody { + border-top: none; +} + +table th, +table td { + padding: 8px; +} + +/* + * Abbreviations + */ +abbr { + border-bottom: 1px dotted #666; + cursor: help; + white-space: nowrap; +} + +abbr.created /* Date-based "abbreviations" show computer-friendly timestamps which are not human-friendly. */ { + border: none; + cursor: auto; + white-space: normal; +} + +/* + * Images + */ +img, +a img, +a.imagecache { + border: 0; +} + + +/* + * Horizontal rules + */ +hr { + height: 1px; + border: 1px solid #666; +} + +/* + * Forms + */ +form { + margin: 0; + padding: 0; +} + +fieldset { + margin: 1em 0; + padding: 0.5em; +} diff --git a/snapdiff/static/css/layout-liquid.css b/snapdiff/static/css/layout-liquid.css new file mode 100644 index 0000000..9aba94f --- /dev/null +++ b/snapdiff/static/css/layout-liquid.css @@ -0,0 +1,84 @@ +/* $Id: meego.css,v 1.18.2.1 2010/04/05 12:45:00 mshaver Exp $ */ + +/** + * @file + * MeeGo Staic Layout Styling (DIV Positioning) + * + * Define CSS classes to create a table-free, 3-column, 2-column, or single + * column layout depending on whether blocks are enabled in the left or right + * columns. + * + * This layout is based on the Zen Columns layout method. + * http://drupal.org/node/201428 + * + * Only CSS that affects the layout (positioning) of major elements should be + * listed here. Such as: + * display, position, float, clear, width, height, min-width, min-height + * margin, border, padding, overflow + */ + + +/* + * Body + */ +#page-wrapper { + min-width: 960px; /* Don't allow the browser to make the site unreadable. */ +} + +/* + * Main (container for everything else) + */ +#main-wrapper { + position: relative; +} + +/* + * Content + */ +#content { + float: left; /* LTR */ + width: 100%; + margin-left: 0; /* LTR */ + margin-right: -100%; /* LTR */ /* Negative value of #content's width + left margin. */ + padding: 0; /* DO NOT CHANGE. Add padding or margin to #content .section. */ +} + +/* + * Navigation + */ +#navigation { + width: 100%; + margin-left: 0; /* LTR */ + margin-right: -100%; /* LTR */ /* Negative value of #navigation's width + left margin. */ + padding: 0; /* DO NOT CHANGE. Add padding or margin to #navigation .section. */ +/* The navigation can have any arbritrary height. We picked one +that is the line-height plus 1em: 1.3 + 1 = 2.3 +Set this to the same value as the margin-top below. */ +} + +#navigation ul /* Primary and secondary links */ { + margin: 0; + padding: 0; + text-align: left; /* LTR */ +} + +#navigation li /* A simple method to get navigation links to appear in one line. */ { + float: left; /* LTR */ + padding: 0 10px 0 0; /* LTR */ +} + +/* + * Prevent overflowing content + */ +#header, +#content, +#navigation, +#footer, +.region-page-closure { + overflow: visible; + word-wrap: break-word; /* A very nice CSS3 property */ +} + +#navigation { + overflow: hidden; /* May need to be removed if using a dynamic drop-down menu */ +} diff --git a/snapdiff/static/css/shCore.css b/snapdiff/static/css/shCore.css new file mode 100644 index 0000000..4f0021e --- /dev/null +++ b/snapdiff/static/css/shCore.css @@ -0,0 +1,226 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter a, +.syntaxhighlighter div, +.syntaxhighlighter code, +.syntaxhighlighter table, +.syntaxhighlighter table td, +.syntaxhighlighter table tr, +.syntaxhighlighter table tbody, +.syntaxhighlighter table thead, +.syntaxhighlighter table caption, +.syntaxhighlighter textarea { + -moz-border-radius: 0 0 0 0 !important; + -webkit-border-radius: 0 0 0 0 !important; + background: none !important; + border: 0 !important; + bottom: auto !important; + float: none !important; + height: auto !important; + left: auto !important; + line-height: 1.1em !important; + margin: 0 !important; + outline: 0 !important; + overflow: visible !important; + padding: 0 !important; + position: static !important; + right: auto !important; + text-align: left !important; + top: auto !important; + vertical-align: baseline !important; + width: auto !important; + box-sizing: content-box !important; + font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important; + font-weight: normal !important; + font-style: normal !important; + font-size: 1em !important; + min-height: inherit !important; + min-height: auto !important; +} + +.syntaxhighlighter { + width: 100% !important; + margin: 1em 0 1em 0 !important; + position: relative !important; + overflow: auto !important; + font-size: 1em !important; +} +.syntaxhighlighter.source { + overflow: hidden !important; +} +.syntaxhighlighter .bold { + font-weight: bold !important; +} +.syntaxhighlighter .italic { + font-style: italic !important; +} +.syntaxhighlighter .line { + white-space: pre !important; +} +.syntaxhighlighter table { + width: 100% !important; +} +.syntaxhighlighter table caption { + text-align: left !important; + padding: .5em 0 0.5em 1em !important; +} +.syntaxhighlighter table td.code { + width: 100% !important; +} +.syntaxhighlighter table td.code .container { + position: relative !important; +} +.syntaxhighlighter table td.code .container textarea { + box-sizing: border-box !important; + position: absolute !important; + left: 0 !important; + top: 0 !important; + width: 100% !important; + height: 100% !important; + border: none !important; + background: white !important; + padding-left: 1em !important; + overflow: hidden !important; + white-space: pre !important; +} +.syntaxhighlighter table td.gutter .line { + text-align: right !important; + padding: 0 0.5em 0 1em !important; +} +.syntaxhighlighter table td.code .line { + padding: 0 1em !important; +} +.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line { + padding-left: 0em !important; +} +.syntaxhighlighter.show { + display: block !important; +} +.syntaxhighlighter.collapsed table { + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar { + padding: 0.1em 0.8em 0em 0.8em !important; + font-size: 1em !important; + position: static !important; + width: auto !important; + height: auto !important; +} +.syntaxhighlighter.collapsed .toolbar span { + display: inline !important; + margin-right: 1em !important; +} +.syntaxhighlighter.collapsed .toolbar span a { + padding: 0 !important; + display: none !important; +} +.syntaxhighlighter.collapsed .toolbar span a.expandSource { + display: inline !important; +} +.syntaxhighlighter .toolbar { + position: absolute !important; + right: 1px !important; + top: 1px !important; + width: 11px !important; + height: 11px !important; + font-size: 10px !important; + z-index: 10 !important; +} +.syntaxhighlighter .toolbar span.title { + display: inline !important; +} +.syntaxhighlighter .toolbar a { + display: block !important; + text-align: center !important; + text-decoration: none !important; + padding-top: 1px !important; +} +.syntaxhighlighter .toolbar a.expandSource { + display: none !important; +} +.syntaxhighlighter.ie { + font-size: .9em !important; + padding: 1px 0 1px 0 !important; +} +.syntaxhighlighter.ie .toolbar { + line-height: 8px !important; +} +.syntaxhighlighter.ie .toolbar a { + padding-top: 0px !important; +} +.syntaxhighlighter.printing .line.alt1 .content, +.syntaxhighlighter.printing .line.alt2 .content, +.syntaxhighlighter.printing .line.highlighted .number, +.syntaxhighlighter.printing .line.highlighted.alt1 .content, +.syntaxhighlighter.printing .line.highlighted.alt2 .content { + background: none !important; +} +.syntaxhighlighter.printing .line .number { + color: #bbbbbb !important; +} +.syntaxhighlighter.printing .line .content { + color: black !important; +} +.syntaxhighlighter.printing .toolbar { + display: none !important; +} +.syntaxhighlighter.printing a { + text-decoration: none !important; +} +.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a { + color: black !important; +} +.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a { + color: #008200 !important; +} +.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a { + color: blue !important; +} +.syntaxhighlighter.printing .keyword { + color: #006699 !important; + font-weight: bold !important; +} +.syntaxhighlighter.printing .preprocessor { + color: gray !important; +} +.syntaxhighlighter.printing .variable { + color: #aa7700 !important; +} +.syntaxhighlighter.printing .value { + color: #009900 !important; +} +.syntaxhighlighter.printing .functions { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .constants { + color: #0066cc !important; +} +.syntaxhighlighter.printing .script { + font-weight: bold !important; +} +.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a { + color: gray !important; +} +.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a { + color: red !important; +} +.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a { + color: black !important; +} diff --git a/snapdiff/static/css/shThemeDefault.css b/snapdiff/static/css/shThemeDefault.css new file mode 100644 index 0000000..8a870e4 --- /dev/null +++ b/snapdiff/static/css/shThemeDefault.css @@ -0,0 +1,117 @@ +/** + * SyntaxHighlighter + * http://alexgorbatchev.com/SyntaxHighlighter + * + * SyntaxHighlighter is donationware. If you are using it, please donate. + * http://alexgorbatchev.com/SyntaxHighlighter/donate.html + * + * @version + * 3.0.83 (July 02 2010) + * + * @copyright + * Copyright (C) 2004-2010 Alex Gorbatchev. + * + * @license + * Dual licensed under the MIT and GPL licenses. + */ +.syntaxhighlighter { + background-color: white !important; +} +.syntaxhighlighter .line.alt1 { + background-color: white !important; +} +.syntaxhighlighter .line.alt2 { + background-color: white !important; +} +.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 { + background-color: #e0e0e0 !important; +} +.syntaxhighlighter .line.highlighted.number { + color: black !important; +} +.syntaxhighlighter table caption { + color: black !important; +} +.syntaxhighlighter .gutter { + color: #afafaf !important; +} +.syntaxhighlighter .gutter .line { + border-right: 3px solid #6ce26c !important; +} +.syntaxhighlighter .gutter .line.highlighted { + background-color: #6ce26c !important; + color: white !important; +} +.syntaxhighlighter.printing .line .content { + border: none !important; +} +.syntaxhighlighter.collapsed { + overflow: visible !important; +} +.syntaxhighlighter.collapsed .toolbar { + color: blue !important; + background: white !important; + border: 1px solid #6ce26c !important; +} +.syntaxhighlighter.collapsed .toolbar a { + color: blue !important; +} +.syntaxhighlighter.collapsed .toolbar a:hover { + color: red !important; +} +.syntaxhighlighter .toolbar { + color: white !important; + background: #6ce26c !important; + border: none !important; +} +.syntaxhighlighter .toolbar a { + color: white !important; +} +.syntaxhighlighter .toolbar a:hover { + color: black !important; +} +.syntaxhighlighter .plain, .syntaxhighlighter .plain a { + color: black !important; +} +.syntaxhighlighter .comments, .syntaxhighlighter .comments a { + color: #008200 !important; +} +.syntaxhighlighter .string, .syntaxhighlighter .string a { + color: blue !important; +} +.syntaxhighlighter .keyword { + color: #006699 !important; +} +.syntaxhighlighter .preprocessor { + color: gray !important; +} +.syntaxhighlighter .variable { + color: #aa7700 !important; +} +.syntaxhighlighter .value { + color: #009900 !important; +} +.syntaxhighlighter .functions { + color: #ff1493 !important; +} +.syntaxhighlighter .constants { + color: #0066cc !important; +} +.syntaxhighlighter .script { + font-weight: bold !important; + color: #006699 !important; + background-color: none !important; +} +.syntaxhighlighter .color1, .syntaxhighlighter .color1 a { + color: gray !important; +} +.syntaxhighlighter .color2, .syntaxhighlighter .color2 a { + color: #ff1493 !important; +} +.syntaxhighlighter .color3, .syntaxhighlighter .color3 a { + color: red !important; +} + +.syntaxhighlighter .keyword { + font-weight: bold !important; +} diff --git a/snapdiff/static/css/style.css b/snapdiff/static/css/style.css new file mode 100644 index 0000000..33b8ee4 --- /dev/null +++ b/snapdiff/static/css/style.css @@ -0,0 +1,311 @@ +body { + background-color:#FFFFFF; + color:#333333; + font-size:100%; +} +#skip-to-nav, #page { + font-size:0.875em; + line-height:1.286em; +} +body, caption, th, td, input, textarea, select, option, legend, fieldset { + font-family:Verdana, Tahoma, 'DejaVu Sans', sans-serif; +} +pre, code { + font-family:'Courier New', 'DejaVu Sans Mono', monospace; + font-size:1.1em; +} + +h1 { + font-size:2em; + line-height:1.3em; + margin-bottom:0.5em; + margin-top:0; +} +h2 { + font-size:1.5em; + line-height:1.3em; + margin-bottom:0.667em; + margin-top:0.667em; +} +h3 { + font-size:1.3em; + line-height:1.3em; + margin-bottom:0.769em; + margin-top:0.769em; +} +h4, h5, h6 { + font-size:1.1em; + line-height:1.3em; + margin-bottom:0.909em; + margin-top:0.909em; +} +span { + color:#E3038D; +} + +p, ul, ol, dl, pre, table, fieldset { + margin-bottom:1em; + margin-left:0; + margin-right:0; + margin-top:1em; +} +blockquote { + margin-bottom:1em; + margin-left:2em; + margin-right:2em; + margin-top:1em; +} + + +table{ + border: 0px solid black; + border-spacing: 0px; +} + +table thead tr{ + font-family: Arial, monospace; + font-size: 14px; +} + +table thead tr th{ + border-bottom: 2px solid black; + border-top: 1px solid black; + margin: 0px; + padding: 2px; + background-color: #cccccc; + vertical-align: text-top; + hori-align: text-left; +} + +table tr { + font-family: arial, monospace; + color: black; + font-size:12px; + background-color: white; +} + +tr:nth-child(even) { + background-color: #ccc; +} + +table tr td, th{ + border-bottom: 1px solid black; + padding: 5px; + vertical-align: text-top; +} + +a:link{ + font-family:arial, monospace; + text-decoration: none; + color: teal; +} + +a:hover{ + text-decoration: underline; +} + +a:visited{ + color:black; + text-decoration: none; +} +ul, ol { + margin-left:2em; + padding-left:2em; +} +.block ul, .item-list ul { + margin-bottom:0; + margin-left:0; + margin-right:0; + margin-top:0; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +ul ul, ul ol, ol ol, ol ul, .block ul ul, .block ul ol, .block ol ol, .block ol ul, .item-list ul ul, .item-list ul ol, .item-list ol ol, .item-list ol ul { + margin-bottom:0; + margin-left:0; + margin-right:0; + margin-top:0; +} +li { + margin-bottom:0; + margin-left:0; + margin-right:0; + margin-top:0; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +.item-list ul li { + list-style:inherit; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +ul { + list-style-type:disc; +} +ul ul { + list-style-type:circle; +} +ul ul ul { + list-style-type:square; +} +ul ul ul ul { + list-style-type:circle; +} +ol { + list-style-type:decimal; +} +ol ol { + list-style-type:lower-alpha; +} +ol ol ol { + list-style-type:decimal; +} +ul.menu li, li.expanded, li.collapsed, li.leaf { + list-style-image:initial; + list-style-position:initial; + list-style-type:none; + margin-bottom:0; + margin-left:0; + margin-right:0; + margin-top:0; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +dt { + font-weight:bold; + margin-bottom:0; + margin-left:0; + margin-right:0; + margin-top:0; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +dd { + margin-bottom:2em; + margin-left:0; + margin-right:0; + margin-top:0; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +a:link { + border-bottom-color:#333333; + border-bottom-style:dotted; + border-bottom-width:1px; + color:#333333; + text-decoration:none; +} +a:visited { + border-bottom-color:#333333; + border-bottom-style:dotted; + border-bottom-width:1px; + color:#333333; + text-decoration:none; +} +a:hover, a:focus, a:active { + border-bottom-color:#E3038D; + border-bottom-style:dotted; + border-bottom-width:1px; + color:#E3038D; + text-decoration:none; +} +a:active { +} +table { + border-collapse:collapse; + width:100%; +} +th, thead th, tbody th { + border-bottom-color:#CCCCCC; + border-bottom-style:solid; + border-bottom-width:2px; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; + text-align:left; +} +tbody { + border-top-color:initial; + border-top-style:none; + border-top-width:initial; +} +table th, table td { + padding-bottom:8px; + padding-left:8px; + padding-right:8px; + padding-top:8px; +} +abbr { + border-bottom-color:#666666; + border-bottom-style:dotted; + border-bottom-width:1px; + cursor:help; + white-space:nowrap; +} +abbr.created { + border-bottom-style:none; + border-color:initial; + border-left-style:none; + border-right-style:none; + border-top-style:none; + border-width:initial; + cursor:auto; + white-space:normal; +} +img, a img, a.imagecache { + border-bottom-width:0; + border-color:initial; + border-left-width:0; + border-right-width:0; + border-style:initial; + border-top-width:0; +} +hr { + border-bottom-color:#666666; + border-bottom-style:solid; + border-bottom-width:1px; + border-left-color:#666666; + border-left-style:solid; + border-left-width:1px; + border-right-color:#666666; + border-right-style:solid; + border-right-width:1px; + border-top-color:#666666; + border-top-style:solid; + border-top-width:1px; + height:1px; +} +form { + margin-bottom:0; + margin-left:0; + margin-right:0; + margin-top:0; + padding-bottom:0; + padding-left:0; + padding-right:0; + padding-top:0; +} +fieldset { + margin-bottom:1em; + margin-left:0; + margin-right:0; + margin-top:1em; + padding-bottom:0.5em; + padding-left:0.5em; + padding-right:0.5em; + padding-top:0.5em; +} + diff --git a/snapdiff/static/css/tizen.css b/snapdiff/static/css/tizen.css new file mode 100644 index 0000000..ac4c7ee --- /dev/null +++ b/snapdiff/static/css/tizen.css @@ -0,0 +1,209 @@ +/** + * @file + * Tizen Static Page Styling (inherit from meego.css) + * Style the markup found in static HTML pages for Tizen. + */ + +/* + * Body + */ +body { + margin: 2em; + padding: 0; +} + +/* + * Header + */ +#logo /* Wrapping link for logo */ { + margin: 0 0 10px; + padding: 0; +} + +#logo a { + border: none; +} + +#logo{ + width:200px; + height:50px; + background-position:10px 4px; + background: transparent; +} + +div#header { + background: -moz-linear-gradient(left center , #292929 0%, #7B7B7B 50%, #AAAAAA 100%) repeat scroll 0 0 transparent; + border-bottom: 1px solid #7B7B7B; + border-top: 2px solid #292929; + box-shadow: 0 1px 6px 0 gray; + background-attachment: scroll; + background-clip: border-box; + background-color: black; + background-origin: padding-box; + box-sizing: border-box; + color: #596874; +} + +a.img { + background: transparent; +} +/* + * Content + */ +h1.title, /* The title of the page */ +h2.title, /* Block title or the title of a piece of content when it is given in a list of content */ +h3.title /* Comment title */ { + margin: 0; +} + +ul.links /* List of links */ { + margin: 1em 0; + padding: 0; +} + +ul.links.inline { + margin: 0; + display: inline; +} + +ul.links li { + display: inline; + list-style-type: none; + padding: 0 0.7em 0 .5em; + margin: 0; +} + +/* + * Navigation bar + */ +#navigation { + border-top: 4px solid #333333; +} + +/* + * Primary menu links + */ +#navigation .section { + border-bottom: 1px solid #333333; + height: 42px; +} + +#main-menu { + background-color: #EAEAEA; + height: 41px; + line-height: 40px; + white-space:nowrap; +} + +#main-menu li { + padding: 0; + font-size: 1.1em; +} + +#main-menu a { + color: #333333; + padding: 0 10px; + text-decoration: none; + border: none; + height: 41px; + display: block; +} + +#main-menu a:hover, +#main-menu li.active-trail a { + color: #fff; + background: #333333 none repeat scroll 0 0; + border: none; + font-weight: normal; +} + +/* + * Footer + */ +#footer { + background-color: #DDDDDD; + margin-top: 20px; + font-size: .9em; +} + +#footer .section { + padding-top: 10px; + -moz-box-shadow: inset 0 1px 1px 0 gray; + -webkit-box-shadow: inset 0 1px 1px 0 gray; +} + +#footer-message /* Wrapper for the footer message from Drupal's "Site information" + and for any blocks placed in the footer region */ { + color: #666; + padding: 0 0 10px 10px; + margin-top: 10px; +} + +#footer .block { + float: left; + width: 186px; + margin-right: 5px; +} + +/* Sponsor: Linux Foundation */ +.sponsor { + float: right; + text-align: right; + margin-right: 20px; +} + +.sponsor a:link, +.sponsor a:visited, +.sponsor a:hover, +.sponsor a:focus, +.sponsor a:active { + border: none; +} + +#footer .block ul.menu { + margin: 0; + padding: 0 0 0 10px; +} + +#footer .block ul.menu li { + border-bottom: none; + padding: .1em 0; +} + +/* + * Markup free clearing (See: http://www.positioniseverything.net/easyclearing.html ) + */ +.clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +/** + * Hide elements from all users. + * + * Used for elements which should not be immediately displayed to any user. An + * example would be a collapsible fieldset that will be expanded with a click + * from a user. The effect of this class can be toggled with the jQuery show() + * and hide() functions. + */ +.element-hidden { + display: none; +} + +/** + * Hide elements visually, but keep them available for screen-readers. + * + * Used for information required for screen-reader users to understand and use + * the site where visual display is undesirable. Information provided in this + * manner should be kept concise, to avoid unnecessary burden on the user. Must + * not be used for focusable elements (such as links and form elements) as this + * causes issues for keyboard only or voice recognition users. + */ +.element-invisible { + height: 0; + overflow: hidden; + position: absolute; +} diff --git a/snapdiff/static/img/tizen-logo.png b/snapdiff/static/img/tizen-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e2325b4250d553e4bd1cbe233bbe2676bda9718a GIT binary patch literal 7445 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 TamONN00000NkvXXu0mjf?15oP literal 0 HcmV?d00001 diff --git a/snapdiff/templates/diff.html b/snapdiff/templates/diff.html index 664bc0e..968ae95 100644 --- a/snapdiff/templates/diff.html +++ b/snapdiff/templates/diff.html @@ -2,23 +2,20 @@ - - - - - - - - + + + + + + -
@@ -38,6 +35,71 @@
  • Modified packages: {{ diff['modified']|count }}
  • Packages with Rebuilds: {{ diff['rebuilded']|count }}
  • +

    Added Packages

    + {% if diff['added'] %} + + + + + {% for item in diff['added'] %} + + + + + + {% endfor %} +
    PackageVersionVCS
    {{ item['newpkg']['name'] }}{{ item['newpkg']['version']['ver'] }}-{{item['newpkg']['version']['rel']}}{{ item['newpkg']['vcs'] }}
    + {% endif %} +

    Removed Packages

    + {% if diff['removed'] %} + + + + + {% for item in diff['removed'] %} + + + + + + {% endfor %} +
    PackageVersionVCS
    {{ item['oldpkg']['name'] }}{{ item['oldpkg']['version']['ver'] }}-{{item['oldpkg']['version']['rel']}}{{ item['oldpkg']['vcs'] }}
    + {% endif %} +

    Modified Packages

    + {% if diff['modified'] %} + + + + + {% for item in diff['modified'] %} + + + + + + {% endfor %} +
    PackageVersionVCS
    {{ item['oldpkg']['name'] }}{{ item['oldpkg']['version']['ver'] }}-{{item['oldpkg']['version']['rel']}}~{{ item['newpkg']['version']['ver'] }}-{{item['newpkg']['version']['rel']}} +
      +
    • {{ item['oldpkg']['vcs'] }}
    • +
    • {{ item['newpkg']['vcs'] }}
    • +
    +
    + {% endif %} +

    Packages with Rebuilds

    + {% if diff['rebuilded'] %} + + + + + {% for item in diff['rebuilded'] %} + + + + + + {% endfor %} +
    PackageVersionVCS
    {{ item['oldpkg']['name'] }}{{ item['oldpkg']['version']['ver'] }}-{{item['oldpkg']['version']['rel']}}~{{ item['newpkg']['version']['ver'] }}-{{item['newpkg']['version']['rel']}}{{ item['oldpkg']['vcs'] }}
    + {% endif %} -- 2.34.1