if pkg.get('meta'):
if not pkg['name'] in children:
- meta_nodes.append(make_linked_meta_node(pkg['name'], pkg['summary']))
+ meta_nodes.append(make_linked_meta_node(pkg['name'], pkg['summary'], meta_info['category']))
else:
meta_nodes.append(make_node(pkg, meta_info.get('category')))
# Added 'zz' to non meta-package because they are to be listed last
return n
def make_meta_node(pkgname, viewtext):
return dict(text=viewtext, metaname=pkgname, nodes=[])
- def make_linked_meta_node(pkgname, viewtext):
- return dict(text='<i>'+viewtext+'</i>', metaname=pkgname, nodes=[])
+ def make_linked_meta_node(pkgname, viewtext, cat):
+ return dict(text=' <i>'+viewtext+'</i>', metaname=pkgname, nodes=[], category=cat, tooltip="This is a link of a building block.")
def is_blank_ui_meta_node(pkgname):
return (pkgname[-8:-2] == '__UI__')
def handle_ui_meta_node(tag, node):
elif tag == 'HT' or tag == 'ht':
# Keep the summary (TODO: verify the usage of HTML tags.)
node['text'] = node['text'] # Do we need conversion?
+ elif tag == 'HF' or tag == 'hf':
+ node['text'] = '<p style="height:0px; margin-bottom:-10px"></p>'
+ elif tag == 'QT' or tag == 'qt':
+ node['text'] = '<p style="height:0px; margin-bottom:-16px"></p>'
else:
node['text'] = ''
return node
# e.g., Convert http://a.com/a/ to https://a.com/a/blahblah.ks
# Works for file-indexing html
if ksURL[-3:].lower() != ".ks":
+ m = None
error = 0
if ksURL[-1:] != "/":
ksURL += "/"
m = re.search('>([^<]*\\.ks)\\s*<', r.text)
else:
error = 1
- if error == 0 and not m.group(1):
+ if error == 0 and not m:
m = re.search('"([^"]*\\.ks)\\s*"', r.text)
- if not m.group(1):
+ if not m:
m = re.search("'([^']*\\.ks)\\s*'", r.text)
- if not m.group(1):
+ if not m:
error = 1
if error == 1:
node['icon'] = 'glyphicon glyphicon-remove-sign'
node['tooltip'] = 'Cannot find image base from' + ksURL
return node
- ksURL += m.group(1)
+ ksURL += m.group(0)
node['tooltip'] = 'Image base from '+ksURL
+ node['icon'] = 'glyphicon glyphicon-list-alt'
node['ks'] = ksURL
elif desc[0:10] == '__EXPAND__':
# Omit the first line with __EXPAND__ from showing.
pkg_info['description'] = desc[len(desc.splitlines(True)[0]):]
- node['state'] = { 'expanded': True }
+ option = desc.splitlines()[0][10:].strip(': \t')
+ if len(option) == 0:
+ node['expandcondition'] = 'all'
+ else:
+ node['expandcondition'] = option
return node
# view_data for tree view on web-ui
view_ref[root[0]] = root_node
if root[0] in category_dict:
root_node['category'] = category_dict[root[0]]
+ else:
+ # Backup routine for GBS, which does not seem to publish suggest info correctly.
+ # TODO: This routine has hardcoded category names, which should be improved.
+ m = re.search('(?<=root-)[a-zA-Z]*', root[0])
+ if m:
+ cat = m.group(0)
+ if cat == 'domain':
+ cat = 'domains'
+ if cat == 'feature':
+ cat = 'epicfeatures'
+ root_node['category'] = cat
+ logger.info("Fallback for "+cat+" for "+root[0])
if is_blank_ui_meta_node(root[0]):
name = root[0]
sub1_node = handle_ui_meta_node(name[-2:], root_node)