def get_values(self, path, kwargs, response): listing = [ d for d in self.transport.list_dir('.') if not d.startswith('.') ] listing.sort(key=lambda x: x.lower()) dirs = [] parity = 0 for d in listing: try: b = branch.Branch.open_from_transport(self.transport.clone(d)) if b.get_config().get_user_option('http_serve') == 'False': continue except: try: if not stat.S_ISDIR(self.transport.stat(d).st_mode): continue except errors.NoSuchFile: continue b = None dirs.append(DirEntry(d, parity, b)) parity = 1 - parity # Create breadcrumb trail directory_breadcrumbs = util.directory_breadcrumbs( self._name, False, 'directory') return { 'dirs': dirs, 'name': self._name, 'directory_breadcrumbs': directory_breadcrumbs, }
def add_template_values(self, values): super(InventoryUI, self).add_template_values(values) # Directory Breadcrumbs directory_breadcrumbs = util.directory_breadcrumbs( self._branch.friendly_name, self._branch.is_root, 'files') path = values['path'] revid = values['revid'] # no navbar for revisions navigation = util.Container() if is_null_rev(revid): branch_breadcrumbs = [] else: # Create breadcrumb trail for the path within the branch branch = self._history._branch rev_tree = branch.repository.revision_tree(revid) branch_breadcrumbs = util.branch_breadcrumbs( path, rev_tree, 'files') values.update({ 'fileview_active': True, 'directory_breadcrumbs': directory_breadcrumbs, 'branch_breadcrumbs': branch_breadcrumbs, 'navigation': navigation, })
def get_values(self, path, kwargs, response): exc_type, exc_object, exc_tb = self.exc_info description = StringIO() traceback.print_exception(exc_type, exc_object, None, file=description) directory_breadcrumbs = util.directory_breadcrumbs( self._branch.friendly_name, self._branch.is_root, 'changes') return { 'branch': self._branch, 'error_title': ('An unexpected error occurred while' 'processing the request:'), 'error_description': description.getvalue(), 'directory_breadcrumbs': directory_breadcrumbs, }
def add_template_values(self, values): super(RevisionUI, self).add_template_values(values) remember = self._history.fix_revid(self.kwargs.get('remember', None)) query = self.kwargs.get('q', None) filter_file_id = self.kwargs.get('filter_file_id', None) start_revid = self.kwargs['start_revid'] navigation = util.Container( revid_list=self.revid_list, revid=values['revid'], start_revid=start_revid, filter_file_id=filter_file_id, pagesize=1, scan_url='/revision', branch=self._branch, feed=True, history=self._history) if query is not None: navigation.query = query util.fill_in_navigation(navigation) path = self.path if path in ('', '/'): path = None file_changes = values['file_changes'] link_data = {} path_to_id = {} if path: items = [x for x in file_changes.text_changes if x.filename == path] if len(items) > 0: item = items[0] try: context_lines = int(self.kwargs['context']) except (KeyError, ValueError): context_lines = None diff_chunks = diff_chunks_for_file( self._history._branch.repository, item.file_id, item.old_revision, item.new_revision, context_lines=context_lines) else: diff_chunks = None else: diff_chunks = None for i, item in enumerate(file_changes.text_changes): item.index = i link_data['diff-' + str(i)] = '%s/%s/%s' % ( dq(item.new_revision), dq(item.old_revision), dq(item.file_id)) path_to_id[item.filename] = 'diff-' + str(i) # Directory Breadcrumbs directory_breadcrumbs = ( util.directory_breadcrumbs( self._branch.friendly_name, self._branch.is_root, 'changes')) can_export = self._branch.export_tarballs values.update({ 'history': self._history, 'link_data': simplejson.dumps(link_data), 'json_specific_path': simplejson.dumps(path), 'path_to_id': simplejson.dumps(path_to_id), 'directory_breadcrumbs': directory_breadcrumbs, 'navigation': navigation, 'remember': remember, 'compare_revid': self.compare_revid, 'filter_file_id': filter_file_id, 'diff_chunks': diff_chunks, 'query': query, 'can_export': can_export, 'specific_path': path, 'start_revid': start_revid, })
def get_values(self, path, kwargs, headers): history = self._history revid = self.get_revid() filter_file_id = kwargs.get('filter_file_id', None) query = kwargs.get('q', None) start_revid = history.fix_revid(kwargs.get('start_revid', None)) orig_start_revid = start_revid pagesize = 20 #int(config.get('pagesize', '20')) search_failed = False if filter_file_id is None and path is not None: filter_file_id = history.get_file_id(revid, path) try: revid, start_revid, revid_list = history.get_view( revid, start_revid, filter_file_id, query, extra_rev_count=pagesize + 1) util.set_context(kwargs) if (query is not None) and (len(revid_list) == 0): search_failed = True if len(revid_list) == 0: scan_list = revid_list else: if revid in revid_list: # XXX is this always true? i = revid_list.index(revid) else: i = None scan_list = revid_list[i:] change_list = scan_list[:pagesize] changes = list(history.get_changes(change_list)) data = {} for i, c in enumerate(changes): c.index = i data[str(i)] = urllib.quote(urllib.quote(c.revid, safe='')) except: self.log.exception('Exception fetching changes') raise HTTPServerError('Could not fetch changes') navigation = util.Container(pagesize=pagesize, revid=revid, start_revid=start_revid, revid_list=revid_list, filter_file_id=filter_file_id, scan_url='/changes', branch=self._branch, feed=True, history=history) if query is not None: navigation.query = query util.fill_in_navigation(navigation) # Directory Breadcrumbs directory_breadcrumbs = (util.directory_breadcrumbs( self._branch.friendly_name, self._branch.is_root, 'changes')) show_tag_col = False for change in changes: if change.tags is not None: show_tag_col = True break return { 'branch': self._branch, 'changes': changes, 'show_tag_col': show_tag_col, 'data': simplejson.dumps(data), 'util': util, 'history': history, 'revid': revid, 'navigation': navigation, 'filter_file_id': filter_file_id, 'start_revid': start_revid, 'viewing_from': (orig_start_revid is not None) and (orig_start_revid != history.last_revid), 'query': query, 'search_failed': search_failed, 'url': self._branch.context_url, 'directory_breadcrumbs': directory_breadcrumbs, }
def get_values(self, path, kwargs, headers): history = self._history branch = history._branch revid = self.get_revid() revid = history.fix_revid(revid) file_id = kwargs.get('file_id', None) if (file_id is None) and (path is None): raise HTTPBadRequest('No file_id or filename ' 'provided to view') try: if file_id is None: file_id = history.get_file_id(revid, path) if path is None: path = history.get_path(revid, file_id) except (NoSuchId, NoSuchRevision): raise HTTPNotFound() filename = os.path.basename(path) change = history.get_changes([revid])[0] # If we're looking at the tip, use head: in the URL instead if revid == branch.last_revision(): revno_url = 'head:' else: revno_url = history.get_revno(revid) # Directory Breadcrumbs directory_breadcrumbs = (util.directory_breadcrumbs( self._branch.friendly_name, self._branch.is_root, 'files')) tree = history.revision_tree(revid) # Create breadcrumb trail for the path within the branch branch_breadcrumbs = util.branch_breadcrumbs(path, tree, 'files') if not tree.has_id(file_id): raise HTTPNotFound() if tree.kind(path, file_id) == "directory": raise HTTPMovedPermanently( self._branch.context_url(['/files', revno_url, path])) # no navbar for revisions navigation = util.Container() return { # In AnnotateUI, "annotated" is a dictionary mapping lines to changes. # We exploit the fact that bool({}) is False when checking whether # we're in "annotated" mode. 'annotated': {}, 'revno_url': revno_url, 'file_id': file_id, 'file_path': path, 'filename': filename, 'navigation': navigation, 'change': change, 'contents': self.file_contents(file_id, revid), 'fileview_active': True, 'directory_breadcrumbs': directory_breadcrumbs, 'branch_breadcrumbs': branch_breadcrumbs, }