Fix package diff table for upgrade view template, per Buefy
This commit is contained in:
parent
63807e71fd
commit
558e127caa
4 changed files with 83 additions and 12 deletions
|
@ -240,24 +240,57 @@ class UpgradeView(MasterView):
|
|||
return filename
|
||||
|
||||
def render_package_diff(self, upgrade, fieldname):
|
||||
use_buefy = self.get_use_buefy()
|
||||
try:
|
||||
before = self.parse_requirements(upgrade, 'before')
|
||||
after = self.parse_requirements(upgrade, 'after')
|
||||
|
||||
kwargs = {}
|
||||
if use_buefy:
|
||||
kwargs['extra_row_attrs'] = self.get_extra_diff_row_attrs
|
||||
diff = self.make_diff(before, after,
|
||||
columns=["package", "old version", "new version"],
|
||||
render_field=self.render_diff_field,
|
||||
render_value=self.render_diff_value,
|
||||
)
|
||||
showing = HTML.tag('div',
|
||||
"showing: "
|
||||
+ tags.link_to("all", '#', class_='all')
|
||||
+ " / "
|
||||
+ tags.link_to("diffs only", '#', class_='diffs'),
|
||||
class_='showing')
|
||||
return showing + diff.render_html()
|
||||
**kwargs)
|
||||
|
||||
kwargs = {}
|
||||
if use_buefy:
|
||||
kwargs['@click'] = "showingPackages = 'all'"
|
||||
kwargs[':style'] = "{'font-weight': showingPackages == 'all' ? 'bold' : null}"
|
||||
else:
|
||||
kwargs['class_'] = 'all'
|
||||
all_link = tags.link_to("all", '#', **kwargs)
|
||||
|
||||
kwargs = {}
|
||||
if use_buefy:
|
||||
kwargs['@click'] = "showingPackages = 'diffs'"
|
||||
kwargs[':style'] = "{'font-weight': showingPackages == 'diffs' ? 'bold' : null}"
|
||||
else:
|
||||
kwargs['class_'] = 'diffs'
|
||||
diffs_link = tags.link_to("diffs only", '#', **kwargs)
|
||||
|
||||
kwargs = {}
|
||||
if not use_buefy:
|
||||
kwargs['class_'] = 'showing'
|
||||
showing = HTML.tag('div', c=["showing: "
|
||||
+ all_link
|
||||
+ " / "
|
||||
+ diffs_link],
|
||||
**kwargs)
|
||||
|
||||
return HTML.tag('div', c=[showing + diff.render_html()])
|
||||
|
||||
except:
|
||||
log.debug("failed to render package diff for upgrade: {}".format(upgrade), exc_info=True)
|
||||
return "(not available for this upgrade)"
|
||||
return HTML.tag('div', c="(not available for this upgrade)")
|
||||
|
||||
def get_extra_diff_row_attrs(self, field, attrs):
|
||||
# note, this is only needed/used with Buefy
|
||||
extra = {}
|
||||
if attrs.get('class') != 'diff':
|
||||
extra['v-show'] = "showingPackages == 'all'"
|
||||
return extra
|
||||
|
||||
def changelog_link(self, project, url):
|
||||
return tags.link_to(project, url, target='_blank')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue