def filter_stream(self, req, method, filename, stream, data): if re.match(r'^/(changeset|browser|attachment/ticket/\d+/.?).*', req.path_info): filter = Transformer('//h1') button = self._subscription_button(req.path_info, req.args.get('rev')) stream |= filter.before(button) return stream
def filter_stream(self, req, method, filename, stream, data): if re.match(r'^/(changeset|browser|attachment/ticket/\d+/.?).*', req.path_info): filter = Transformer('//h1') button = self._subscription_button(req.path_info, req.args.get('rev')) stream |= filter.before(button) return stream
def filter_stream(self, req, method, filename, stream, data): if 'TICKET_ADMIN' in req.perm and req.path_info.startswith('/admin/ticket/components'): if data.get('components'): filter = Transformer('//form[@id="addcomponent"]/fieldset/div[@class="buttons"]') stream = stream | filter.before(tag.div("Default CC:", tag.br(), tag.input(type='text', name='defaultcc'), class_='field')) default_ccs = DefaultCC.select(self.env) stream = stream | Transformer('//table[@id="complist"]/thead/tr') \ .append(tag.th('Default CC')) filter = Transformer('//table[@id="complist"]/tbody') default_comp = self.config.get('ticket', 'default_component') for comp in data.get('components'): if comp.name == default_comp: default_tag = tag.input(type='radio', name='default', value=comp.name, checked='checked') else: default_tag = tag.input(type='radio', name='default', value=comp.name) if comp.name in default_ccs: default_cc = default_ccs[comp.name] else: default_cc = '' filter = filter.append(tag.tr(tag.td(tag.input(type='checkbox', name='sel', value=comp.name), class_='sel'), tag.td(tag.a(comp.name, href=req.href.admin('ticket', 'components') + '/' + comp.name), class_='name'), tag.td(comp.owner, class_='owner'), tag.td(default_tag, class_='default'), tag.td(default_cc, class_='defaultcc'))) return stream | filter elif data.get('component'): cc = DefaultCC(self.env, data.get('component').name) filter = Transformer('//form[@id="modcomp"]/fieldset/div[@class="buttons"]') filter = filter.before(tag.div("Default CC:", tag.br(), tag.input(type='text', name='defaultcc', value=cc.cc), class_='field')) \ .before(tag.input(type='hidden', name='old_name', value=cc.name)) return stream | filter return stream
def filter_stream(self, req, method, filename, stream, data): if 'TICKET_ADMIN' in req.perm: if req.path_info == '/admin/ticket/components' or req.path_info == '/admin/ticket/components/': components = data.get('components') # 'components' will be None if component with specified name already exists. if not components: return stream default_ccs = DefaultCC.select(self.env) stream = stream | Transformer('//table[@id="complist"]/thead/tr') \ .append(tag.th('Default CC')) filter = Transformer('//table[@id="complist"]/tbody') default_comp = self.config.get('ticket', 'default_component') for comp in components: if default_comp == comp.name: default_tag = tag.input(type='radio', name='default', value=comp.name, checked='checked') else: default_tag = tag.input(type='radio', name='default', value=comp.name) if comp.name in default_ccs: default_cc = default_ccs[comp.name] else: default_cc = '' filter = filter.append(tag.tr(tag.td(tag.input(type='checkbox', name='sel', value=comp.name), class_='sel'), tag.td(tag.a(comp.name, href=req.href.admin('ticket', 'components') + '/' + comp.name), class_='name'), tag.td(comp.owner, class_='owner'), tag.td(default_tag, class_='default'), tag.td(default_cc, class_='defaultcc'))) return stream | filter elif req.path_info.startswith('/admin/ticket/components/') and data.get('component'): cc = DefaultCC(self.env, data.get('component').name) filter = Transformer('//form[@id="modcomp"]/fieldset/div[@class="buttons"]') filter = filter.before(tag.div("Default CC:", tag.br(), tag.input(type="text", name="defaultcc", value=cc.cc), class_="field")) \ .before(tag.input(type='hidden', name='old_name', value=cc.name)) return stream | filter return stream
def filter_stream(self, req, method, template, stream, data): if not (template == 'browser.html' and data.get('dir')): # Only interested if browsing directories return stream repos = data.get('repos') or self.env.get_repository() rev = req.args.get('rev', None) for entry in data['dir']['entries']: try: if not entry.isdir and entry.name.lower().startswith('readme'): # Render any file starting with 'readme' node = repos.get_node(entry.path, rev) output = self._render_file(req, data['context'], repos, node, rev=rev) if output: if isinstance(output['rendered'], Stream): # strips the <div class="code" /> surrounding tag content = output['rendered'].select('*') else: content = output['rendered'] insert_where = Transformer( "//div[@id='content']/div[@id='help']") insert_what = tag.div( tag.h1(entry.name, tag.a(Markup(' ¶'), class_="anchor", href='#' + entry.name, title='Link to file'), id_=entry.name), tag.div( content, class_="searchable", style= "background:#FBFBFB;border:2px solid #EEE;padding:0 1em;", title=entry.name), class_="readme", style="padding-top:1em;") stream = stream | insert_where.before(insert_what) except Exception, e: # Just log and ignore any kind of error (permissions and more) self.log.debug(to_unicode(e))
def filter_stream(self, req, method, filename, stream, data): if filename == "roadmap.html": sortcrit = self._get_settings(req, "sortcrit", self.criterias[0]) sortdirect = self._get_settings(req, "sortdirect", self.directions[0]) sel = ' selected = "selected"' html_str = "<div>" + _("Sort by: ") html_str += '<select name="sortcrit">' for crit in self.criterias: html_str += '<option value ="%s" %s>%s</option>' % (crit, sel if sortcrit == crit else "", _(crit)) html_str += "</select>" html_str += '<select name="sortdirect">' for dir in self.directions: html_str += '<option value ="%s" %s>%s</option>' % (dir, sel if sortdirect == dir else "", _(dir)) html_str += "</select></div>" html = HTML(html_str) filter = Transformer('//form[@id="prefs"]/div[@class="buttons"]') return stream | filter.before(html) return stream
def filter_stream(self, req, method, filename, stream, data): if 'TICKET_ADMIN' in req.perm and \ req.path_info.startswith('/admin/ticket/components'): if data.get('component'): cc = DefaultCC(self.env, data.get('component').name) filter = Transformer('//form[@id="modcomp"]/fieldset' '/div[@class="field"][2]') filter = filter.after(tag.div("Default CC:", tag.br(), tag.input(type='text', name='defaultcc', value=cc.cc), class_='field')) \ .before(tag.input(type='hidden', name='old_name', value=cc.name)) return stream | filter else: filter = Transformer('//form[@id="addcomponent"]' '/fieldset/div[@class="buttons"]') stream |= filter.before(tag.div("Default CC:", tag.br(), tag.input(type='text', name='defaultcc'), class_='field')) default_ccs = DefaultCC.select(self.env) stream |= Transformer('//table[@id="complist"]/thead/tr') \ .append(tag.th('Default CC')) for i, comp in enumerate(data.get('components')): if comp.name in default_ccs: default_cc = default_ccs[comp.name] else: default_cc = '' filter = Transformer('//table[@id="complist"]' '/tbody/tr[%d]' % (i + 1)) stream |= filter.append(tag.td(default_cc, class_='defaultcc')) return stream return stream
def filter_stream(self, req, method, template, stream, data): if not (template == 'browser.html' and data.get('dir')): # Only interested if browsing directories return stream repos = data.get('repos') or self.env.get_repository() rev = req.args.get('rev', None) for entry in data['dir']['entries']: try: if not entry.isdir and entry.name.lower().startswith('readme'): # Render any file starting with 'readme' node = repos.get_node(entry.path, rev) output = self._render_file(req, data['context'], repos, node, rev=rev) if output: if isinstance(output['rendered'], Stream): # strips the <div class="code" /> surrounding tag content = output['rendered'].select('*') else: content = output['rendered'] insert_where = Transformer( "//div[@id='content']/div[@id='help']") insert_what = tag.div( tag.h1(entry.name, tag.a(Markup(' ¶'), class_="anchor", href='#'+entry.name, title='Link to file'), id_=entry.name ), tag.div( content, class_="searchable", style="background:#FBFBFB;border:2px solid #EEE;padding:0 1em;", title=entry.name), class_="readme", style="padding-top:1em;" ) stream = stream | insert_where.before(insert_what) except Exception, e: # Just log and ignore any kind of error (permissions and more) self.log.debug(to_unicode(e))
def filter_stream(self, req, method, filename, stream, data): if 'TICKET_ADMIN' in req.perm and \ req.path_info.startswith('/admin/ticket/components'): if data.get('component'): cc = DefaultCC(self.env, data.get('component').name) filter = Transformer('//form[@class="mod"]/fieldset' '/div[@class="field"][2]') filter = filter.after(tag.div("Default CC:", tag.br(), tag.input(type='text', name='defaultcc', value=cc.cc), class_='field')) \ .before(tag.input(type='hidden', name='old_name', value=cc.name)) return stream | filter else: filter = Transformer('//form[@id="addcomponent"]' '/fieldset/div[@class="buttons"]') stream |= filter.before( tag.div("Default CC:", tag.br(), tag.input(type='text', name='defaultcc'), class_='field')) default_ccs = DefaultCC.select(self.env) stream |= Transformer('//table[@id="complist"]/thead' '/tr/th[3]') \ .after(tag.th('Default CC')) components = data.get('components') if components: func = self._inject_default_cc_cols( default_ccs, components) stream |= Transformer('//table[@id="complist"]' '/tbody/tr').apply(func) return stream return stream
def filter_stream(self, req, method, filename, stream, data): if filename == 'roadmap.html': sortcrit = _get_settings(req, 'sortcrit', self.criterias[0]) sortdirect = _get_settings(req, 'sortdirect', self.directions[0]) sel = u' selected = "selected"' html_str = u'<div>' + _('Sort by: ') html_str += u'<select name="sortcrit">' for crit in self.criterias: html_str += u'<option value ="%s" %s>%s</option>' % ( crit, sel if sortcrit == crit else '', _(crit)) html_str += u'</select>' html_str += u'<select name="sortdirect">' for dir in self.directions: html_str += u'<option value ="%s" %s>%s</option>' % ( dir, sel if sortdirect == dir else '', _(dir)) html_str += u'</select></div>' html = HTML(html_str) filter = Transformer('//form[@id="prefs"]/div[@class="buttons"]') return stream | filter.before(html) return stream
def filter_stream(self, req, method, filename, stream, data): if filename == "roadmap.html": # Insert the new field for entering user names filter = Transformer('//form[@id="prefs"]/div[@class="buttons"]') return stream | filter.before(self._user_field_input(req)) return stream
def filter_stream(self, req, method, filename, stream, data): field_name = self._get_field_name(req.args) if 'TICKET_ADMIN' in req.perm and field_name and \ req.path_info.startswith('/admin/ticket'): if field_name in self._non_abstract_enums: field_objects = data.get(field_name + 's') else: field_objects = data.get('enums') default_ccs = DefaultCC.select(self.env, field_name) if field_objects: # list of field objects stream = stream | Transformer( '//table[@class="listing"]/thead/tr').append( tag.th('CC')) if field_name == 'component': transformer = Transformer('//table[@id="complist"]/tbody') default_comp = self.config.get( 'ticket', 'default_component') for idx, field_object in enumerate(field_objects): # Milestone object can be a tuple :/ try: field_object_name = field_object.name except AttributeError: field_object_name = field_object[0].name if field_object_name in default_ccs: default_cc = default_ccs[field_object_name] else: default_cc = '' # Annoyingly, we can't just append to the row if the # collection is components, it appears to blat it for # rendering later so you end up with no rows # This may be due to the collection being a generator, # but then again, who knows? if field_name == 'component': if default_comp == field_object_name: default_tag = tag.input( type='radio', name='default', value=field_object_name, checked='checked') else: default_tag = tag.input( type='radio', name='default', value=field_object_name) transformer = transformer.append( tag.tr( tag.td( tag.input(type='checkbox', name='sel', value=field_object_name), class_='sel'), tag.td( tag.a(field_object_name, href=req.href.admin( 'ticket', 'components') + '/' + \ field_object_name), class_='name'), tag.td(field_object.owner, class_='owner'), tag.td(default_tag, class_='default'), tag.td(default_cc, class_='defaultcc') ) ) else: stream = stream | Transformer( '//table[@class="listing"]/tbody/tr[%s]' % (idx+1,) ).append(tag.td(default_cc, class_='defaultcc')) if field_name == 'component': return stream | transformer else: # edit field object if field_name in self._non_abstract_enums: field_object = data.get(field_name) else: field_object = data.get('enum') if field_object: # Milestone object can be a tuple :/ try: field_object_name = field_object.name except AttributeError: field_object_name = field_object[0] if field_object_name in default_ccs: default_cc = default_ccs[field_object_name] else: default_cc = '' transformer = Transformer( '//form[@class="mod"]/fieldset/div[@class="buttons"]') transformer = transformer.before( tag.div(tag.label("Default CC:"), tag.br(), tag.input(type="text", name="defaultcc", value=default_cc), class_="field") ).before(tag.input(type='hidden', name='old_name', value=field_object_name)) return stream | transformer return stream
def filter_stream(self, req, method, filename, stream, data): if filename == "timeline.html": # Insert the new field for entering user names filter = Transformer('//form[@id="prefs"]/fieldset') return stream | filter.before(self._user_field_input(req)) return stream
def filter_stream(self, req, method, filename, stream, data): if filename == 'timeline.html': # Insert the new field for entering user names filter = Transformer('//form[@id="prefs"]/fieldset') return stream | filter.before(tag.br()) | filter.before(tag.label("Filter Components (none for all): ")) | filter.before(tag.br()) | filter.before(self._components_field_input(req)) return stream
def filter_stream(self, req, method, filename, stream, data): if re.match(r'^/(changeset|browser|attachment).*', req.path_info): filter = Transformer('//h1') stream |= filter.before(self._subscription_button(req.path_info)) return stream
def filter_stream(self, req, method, filename, stream, data): if filename == 'roadmap.html': # Insert the new field for entering user names filter = Transformer('//form[@id="prefs"]/div[@class="buttons"]') return stream | filter.before(self._user_field_input(req)) return stream
def filter_stream(self, req, method, filename, stream, data): if filename == 'timeline.html': # Insert the new field for entering user names filter = Transformer('//form[@id="prefs"]/fieldset') return stream | filter.before(self._user_field_input(req)) return stream
def filter_stream(self, req, method, filename, stream, data): if re.match(r'^/(changeset|browser|attachment).*', req.path_info): filter = Transformer('//h1') stream |= filter.before(self._subscription_button(req.path_info)) return stream