def toolbar(self): """ """ return HTML.div( button(icon('info-sign', inverted=True), class_='btn-info %s-cdOpener' % self.eid), HTML.a( icon('download-alt'), HTML.span(class_="caret"), **{ 'class_': "btn dropdown-toggle", 'data-toggle': "dropdown", 'href': "#", 'id': "dt-dl-opener", }), HTML.ul( #HTML.li(HTML.a('csv', href="#")), *[ HTML.li( HTML. a(fmt, href="#", onclick= "document.location.href = CLLD.DataTable.current_url" "('%s', '%s'); return false;" % (self.eid, fmt), id='dt-dl-%s' % fmt)) for fmt in [ a.extension for n, a in self.req.registry.getAdapters( [self.model()], IIndex) ] if fmt != 'html' ], **dict(class_="dropdown-menu")), class_='btn-group right')
def toolbar(self): """ """ return HTML.div( button( icon('info-sign', inverted=True), class_='btn-info %s-cdOpener' % self.eid), HTML.a( icon('download-alt'), HTML.span(class_="caret"), **{ 'class_': "btn dropdown-toggle", 'data-toggle': "dropdown", 'href': "#", 'id': "dt-dl-opener", } ), HTML.ul( #HTML.li(HTML.a('csv', href="#")), *[HTML.li(HTML.a( fmt, href="#", onclick="document.location.href = CLLD.DataTable.current_url" "('%s', '%s'); return false;" % (self.eid, fmt), id='dt-dl-%s' % fmt)) for fmt in [a.extension for n, a in self.req.registry.getAdapters([self.model()], IIndex)] if fmt != 'html'], **dict(class_="dropdown-menu")), class_='btn-group right')
def comment_button(req, feature, language, class_=''): return HTML.form( button(icon('comment'), type='submit', class_=class_, title='comment'), class_='inline', method='POST', action=req.route_url('datapoint', fid=feature.id, lid=language.id), )
def format_ca_icon(req, ref, type_): trigger = getattr(ref, 'ca_' + type_ + '_trigger') if not trigger: return '' return icon( 'warning-sign', title='computerized assignment of %ss from "%s"' % (type_, trigger))
def languoid_link(req, languoid, active=True, classification=False): link_attrs = {} content = [link(req, languoid, **link_attrs) if active else languoid.name] if classification: if languoid.fc or languoid.sc: content.append( icon("icon-info-sign", title="classification comment available")) return HTML.span(*content, **dict(class_="level-" + languoid.level.value))
def languoid_link(req, languoid, active=True, classification=False): content = [link(req, languoid) if active else languoid.name] if classification: if languoid.fc or languoid.sc: content.append( icon("icon-info-sign", title="classification comment available")) return HTML.span(*content, **dict(class_="level-" + languoid.level.value))
def comment_button(req, valueset, class_=''): return HTML.form(button(icon('comment'), type='submit', class_=class_, title='comment'), class_='inline', method='POST', action=req.resource_url(valueset))
def format(self, item): icon_ = MIMETYPE_TO_ICON.get(self.maintype) if icon_: item = self.get_obj(item) for f in item._files: mtype = maintype(f) if mtype == self.maintype: return icon(icon_) return ''
def format_file(f, with_mime_type=True): icon_ = { 'image': 'camera', 'video': 'facetime-video', }.get(f.mime_type.split('/')[0], 'file') if with_mime_type: label = f.mime_type + '; ' else: label = '' label = ' [%s%s]' % (label, misc.format_size(f.jsondata['size'])) return HTML.span(icon(icon_, inverted=True), label, class_='badge')
def format(self, item): obj = self.get_obj(item) if not obj or getattr(obj, 'latitude', None) is None: return '' return HTML.a( icon('icon-globe'), title='show %s on map' % getattr(obj, 'name', ''), href="#" + self.map_id, onclick=JS_CLLD.mapShowInfoWindow(self.map_id, obj.id), class_='btn', )
def infobutton(desc, content_type='text', placement='right'): if not desc: return '' if content_type == 'text': desc = text2html(escape(desc, quote=True), mode='p') return button( icon('info-sign', inverted=True), **{ 'data-toggle': 'popover', 'data-placement': placement, 'data-content': desc, 'class': ['btn-info', 'btn-mini', 'fieldinfo']})
def infobutton(desc, content_type='text', placement='right'): if not desc: return '' if content_type == 'text': desc = text2html(escape(desc, quote=True), mode='p') return button( icon('info-sign', inverted=True), **{ 'data-toggle': 'popover', 'data-placement': placement, 'data-content': desc, 'class': ['btn-info', 'btn-mini', 'fieldinfo'] })
def languoid_link(req, languoid, active=True, classification=False): link_attrs = {} if languoid.status and languoid.status.value: link_attrs['class'] = 'Language ' + languoid.status.value if languoid.status and languoid.status != LanguoidStatus.established: link_attrs['title'] = '%s - %s' % (languoid.name, languoid.status.description) content = [link(req, languoid, **link_attrs) if active else languoid.name] if classification: if languoid.fc or languoid.sc: content.append( icon("icon-info-sign", title="classification comment available")) return HTML.span(*content, **dict(class_="level-" + languoid.level.value))
def file_link(file): url = file.jsondata.get('url', 'http://hdl.handle.net/' + file.id.replace('__', '/')) suffix = pathlib.Path(url.split('/')[-1]).suffix content = [ HTML.a( icon('file'), '{} ({})'.format( suffix[1:].upper() if suffix else 'PDF', format_size(file.jsondata['size'])), href=url, )] license = file.jsondata['license'] if license: content.append(' licensed under ') content.append(external_link( license['url'], label=license['id'].upper(), title=license['name'])) return HTML.span(*content)
def link(obj, label=None, with_mime_type=True, badge=False): label = label or 'View file' mtype = mimetype(obj) icon_ = MIMETYPE_TO_ICON.get( mtype, MIMETYPE_TO_ICON.get(maintype(obj, mimetype_=mtype), 'download-alt')) md = '' if obj.jsondata.get('size'): md = format_size(obj.jsondata['size']) if with_mime_type: if md: md += ', ' md += mtype if md: label += ' (%s)' % md return HTML.a( HTML.span( icon(icon_, inverted=badge), ' ' + label, class_='badge' if badge else 'cdstar_link'), href=bitstream_url(obj))
def test_icon(self): from clld.web.util.helpers import icon self.assertIn('white', icon('download', inverted=True))
def format(self, item): item = self.get_obj(item) if item.count_videos: return HTML.span( '%s' % item.count_videos, icon('film', inverted=True), class_='badge') return ''
def format(self, item): item = self.get_obj(item) if item.count_images: return HTML.span( '%s' % item.count_images, icon('camera', inverted=True), class_='badge') return ''
def format(self, item): if item.pk in self.dt.language_sources: return icon('tag') return ''
def format(self, item): return button( icon('globe'), href="#map", onclick='TSAMMALEX.highlightEcoregion(CLLD.Maps.map.marker_map.' + item.id + ')')
def format(self, item): if item.audio: return icon('volume-up')
def format(self, item): return HTML.a( icon('eye-open'), href=util.cdstar_url(item), title='view', class_="btn")
def test_icon(env): from clld.web.util.helpers import icon assert 'white' in icon('download', inverted=True)
def format(self, item): if item._files: return HTML.span('%s' % len(item._files), icon('file', inverted=True), class_='badge') return ''
def github_link(ctx): return button(icon('pencil'), title="see on GitHub", href=ctx.github_url, class_='btn-mini')
def format(self, item): return icon('ok')
def github_link(ctx): return button( icon('pencil'), title="see on GitHub", href=ctx.github_url, class_='btn-mini')