예제 #1
0
    def filter_stream(self, req, method, filename, stream, data):

        if req.path_info.startswith('/wiki/'):
            if data and data.has_key('page') and hasattr(
                    data['page'], 'resource'):
                title = data['title']
                filter = Transformer('//div[@id="pagepath"]')
                filter = filter.empty()
                filter = filter.append(
                    tag.a('wiki:',
                          href=req.href.wiki(),
                          class_='pathentry first'))

                resource = data['page'].resource
                relation_system = ResourceRelationSystem(self.env)
                tree = relation_system.get_cached_tree(req)
                add_stylesheet(req, 'wikimenu/css/superfish.css')
                add_script(req, 'wikimenu/js/jquery.bgiframe.min.js')
                add_script(req, 'wikimenu/js/superfish.js')
                add_script(req, 'wikimenu/js/popup.js')
                resources = []
                for res in relation_system.get_ancestors(resource, tree=tree):
                    resources.append(res)
                for res in reversed(resources):
                    label = get_resource_description(self.env, res)
                    if res.realm == 'wiki':
                        if res.id and WikiSystem(self.env).has_page(res.id):

                            menu = tag.ul()

                            for res_child in relation_system.get_children(res):
                                child_label = get_resource_description(
                                    self.env, res_child)
                                if res_child.realm == 'wiki':
                                    if res_child.id and WikiSystem(
                                            self.env).has_page(res_child.id):
                                        anc = tag.a(
                                            child_label,
                                            href=req.href.wiki(child_label))
                                        menu.append(tag.li(anc))

                            filter = filter.append(
                                tag.ul(tag.li(
                                    tag.a(label, href=req.href.wiki(label)),
                                    menu),
                                       class_='wiki_menu'))
                            if title != label:
                                filter = filter.append(
                                    tag.span(' / ', class_='pathentry sep'))
                remove_tran = '//a[@title="View ' + title + '"]'
                return stream | filter
        return stream
예제 #2
0
    def filter_stream(self, req, method, filename, stream, data):
        # Allow setting version for milestone
        if filename == 'milestone_edit.html':
            xformer = Transformer('//fieldset[1]')
            return stream | xformer.before(self._version_edit(data))

        # Display version for milestone
        elif filename == 'milestone_view.html':
            milestone = data.get('milestone').name
            xformer = Transformer('//div[@id="content" and '
                                  '      @class="milestone"]'
                                  '/div/p[@class="date"]')
            return stream | xformer.append(
                self._version_display(req, milestone))
        elif filename == 'roadmap.html':
            return self._milestone_versions(stream, req)
        elif filename == 'admin_milestones.html':
            if req.args['path_info']:
                xformer = Transformer('//fieldset/div[1]')
                return stream | xformer.after(self._version_edit(data))
            else:
                xformer = Transformer('//form[@id="addmilestone"]'
                                      '/fieldset/div[1]')
                return stream | xformer.after(self._version_edit(data))
        return stream
예제 #3
0
    def filter_stream(self, req, method, filename, stream, data):
        if filename == 'browser.html' \
                and req.perm.has_permission('REPOSITORY_MODIFY'):
            self.log.debug('Extending TracBrowser')

            if self.include_jqueryui:
                add_stylesheet(
                    req, 'trac_browser_svn_ops/css/smoothness/jquery-ui.css')
                add_script(req, 'trac_browser_svn_ops/js/jquery-ui.js')

            add_stylesheet(req,
                           'trac_browser_svn_ops/css/trac_browser_ops.css')
            add_script(req, 'trac_browser_svn_ops/js/trac_browser_ops.js')

            # Insert browser operations elements when directory/file shown
            if data['dir']:
                data['max_upload_size'] = self.max_upload_size
                data['rename_only'] = self.rename_only

                # Insert upload dialog and move/delete dialog into div#main
                bsops_stream = Chrome(self.env).render_template(
                    req, 'trac_browser_ops.html', data, fragment=True)
                bsops_transf = Transformer('//div[@id="main"]')
                stream |= bsops_transf.append(
                    bsops_stream.select('//div[@class="bsop_dialog"]'))

                # Insert button bar after file/directory table
                bsops_stream = Chrome(self.env).render_template(
                    req, 'trac_browser_ops.html', data, fragment=True)
                bsops_transf = Transformer('//table[@id="dirlist"]')
                stream |= bsops_transf.after(
                    bsops_stream.select('//div[@id="bsop_buttons"]'))

        return stream
예제 #4
0
파일: wiki.py 프로젝트: nyuhuhuu/trachacks
 def filter_stream(self, req, method, filename, stream, data):
     
     if req.path_info.startswith('/wiki/'):
         if data and data.has_key('page') and hasattr(data['page'], 'resource'):
             title = data['title']
             filter = Transformer('//div[@id="pagepath"]')
             filter = filter.empty()
             filter = filter.append( tag.a( 'wiki:', href = req.href.wiki(), class_ = 'pathentry first' ) )
            
             resource = data['page'].resource
             relation_system = ResourceRelationSystem(self.env)
             tree = relation_system.get_cached_tree(req)    
             add_stylesheet(req, 'wikimenu/css/superfish.css')
             add_script(req, 'wikimenu/js/jquery.bgiframe.min.js')
             add_script(req, 'wikimenu/js/superfish.js')
             add_script(req, 'wikimenu/js/popup.js')
             resources = []
             for res in relation_system.get_ancestors(resource, tree=tree):
                 resources.append(res)
             for res in reversed( resources ):
                 label = get_resource_description(self.env, res)
                 if res.realm=='wiki':
                     if res.id and WikiSystem(self.env).has_page(res.id):
                         
                         menu = tag.ul( )
                                                     
                         for res_child in relation_system.get_children(res):
                             child_label = get_resource_description(self.env, res_child)
                             if res_child.realm=='wiki':
                                 if res_child.id and WikiSystem(self.env).has_page(res_child.id):
                                     anc = tag.a(child_label, href = req.href.wiki(child_label))
                                     menu.append(tag.li( anc ))
                                     
                         
                         filter = filter.append( tag.ul( tag.li( 
                             tag.a(label, href=req.href.wiki(label) ),
                                 menu ), class_= 'wiki_menu' ) )
                         if title != label:
                             filter = filter.append( tag.span( ' / ', 
                                     class_ = 'pathentry sep' ) )
             remove_tran = '//a[@title="View ' + title + '"]'
             return stream | filter
     return stream
예제 #5
0
    def filter_stream(self, req, method, filename, stream, data):

        if filename in ('milestone_view.html', ):

            buffer = StreamBuffer()
            t = Transformer('//div[@class="milestone"]/h1/text()[2]')
            t = t.copy(buffer).end()
            t = t.select('//div[@class="milestone"]/div[@class="info"]/dl')
            t = t.append(GenerateMetrixLink(buffer, req.href))
            stream |= t

        return stream
예제 #6
0
    def filter_stream(self, req, method, filename, stream, data):

        if filename in ('milestone_view.html', ):

            buffer = StreamBuffer()
            t = Transformer('//div[@class="milestone"]/h1/text()[2]')
            t = t.copy(buffer).end()
            t = t.select('//div[@class="milestone"]/div[@class="info"]/dl')
            t = t.append(GenerateMetrixLink(buffer, req.href))
            stream |= t

        return stream
예제 #7
0
 def filter_stream(self, req, method, filename, stream, data):
     if filename == "ticket.html" and req.get_header("X-Moz") != "prefetch":
         chrome = Chrome(self.env)
         # append the ticket fields to the end of the standard trac ticket box
         filter = Transformer('//div[@id="ticket"]')
         stream = stream | filter.append(chrome.render_template(req, 'fieldgroups_ticket_box.html', data, fragment=True))
         # insert the ticket field groups after the standard trac 'Change Properties' field group
         filter = Transformer('//fieldset[@id="properties"]')
         stream = stream | filter.after(chrome.render_template(req, 'fieldgroups_properties.html', data, fragment=True))
         #filter = Transformer('//fieldset[@id="action"]')
         #stream = stream | filter.before(chrome.render_template(req, 'fieldgroups_properties.html', data, fragment=True))
     return stream
예제 #8
0
    def filter_stream(self, req, method, filename, stream, data):
        # Allow setting version for milestone
        if filename == 'milestone_edit.html':
            filter = Transformer('//fieldset[1]')
            return stream | filter.before(self._version_edit(data))

        # Display version for milestone
        elif filename == 'milestone_view.html':
            milestone = data.get('milestone').name
            filter = Transformer('//div[@class="info"]/p[@class="date"]')
            return stream | filter.append(self._version_display(req, milestone))
        elif filename == 'roadmap.html':
            return self._milestone_versions(stream, req)

        return stream
예제 #9
0
    def filter_stream(self, req, method, filename, stream, data):
        # Allow setting version for milestone
        if filename == 'milestone_edit.html':
            filter = Transformer('//fieldset[1]')
            return stream | filter.before(self._version_edit(data))

        # Display version for milestone
        elif filename == 'milestone_view.html':
            milestone = data.get('milestone').name
            filter = Transformer('//div[@class="info"]/p[@class="date"]')
            return stream | filter.append(self._version_display(
                req, milestone))
        elif filename == 'roadmap.html':
            return self._milestone_versions(stream, req)

        return stream
예제 #10
0
 def filter_stream(self, req, method, filename, stream, data):
     if filename == "ticket.html" and req.get_header("X-Moz") != "prefetch":
         chrome = Chrome(self.env)
         # append the ticket fields to the end of the standard trac ticket box
         filter = Transformer('//div[@id="ticket"]')
         stream = stream | filter.append(
             chrome.render_template(
                 req, 'fieldgroups_ticket_box.html', data, fragment=True))
         # insert the ticket field groups after the standard trac 'Change Properties' field group
         filter = Transformer('//fieldset[@id="properties"]')
         stream = stream | filter.after(
             chrome.render_template(
                 req, 'fieldgroups_properties.html', data, fragment=True))
         #filter = Transformer('//fieldset[@id="action"]')
         #stream = stream | filter.before(chrome.render_template(req, 'fieldgroups_properties.html', data, fragment=True))
     return stream
예제 #11
0
파일: web_ui.py 프로젝트: lkraav/trachacks
 def filter_stream(self, req, method, filename, stream, data):
     if filename == 'browser.html' \
             and req.perm.has_permission('REPOSITORY_MODIFY'):
         self.log.debug('Extending TracBrowser')
         
         if self.include_jqueryui:
             add_stylesheet(req, 
                     'trac_browser_svn_ops/css/smoothness/jquery-ui.css')
             add_script(req, 'trac_browser_svn_ops/js/jquery-ui.js') 
         
         add_stylesheet(req, 
                        'trac_browser_svn_ops/css/trac_browser_ops.css')
         add_script(req, 'trac_browser_svn_ops/js/trac_browser_ops.js')
         
         # Insert browser operations elements when directory/file shown
         if data['dir']:
             data['max_upload_size'] = self.max_upload_size
             data['rename_only'] = self.rename_only
             
             # Insert upload dialog and move/delete dialog into div#main
             bsops_stream = Chrome(self.env).render_template(req,
                     'trac_browser_ops.html', data, fragment=True)
             bsops_transf = Transformer('//div[@id="main"]')
             stream |=  bsops_transf.append(
                     bsops_stream.select('//div[@class="bsop_dialog"]')
                     )
             
             # Insert button bar after file/directory table
             bsops_stream = Chrome(self.env).render_template(req,
                     'trac_browser_ops.html', data, fragment=True)
             bsops_transf = Transformer('//table[@id="dirlist"]')
             stream |=  bsops_transf.after(
                     bsops_stream.select('//div[@id="bsop_buttons"]')
                     )
             
     return stream