Show More
@@ -920,8 +920,7 b' class RepoFilesView(RepoAppView):' | |||
|
920 | 920 | log.debug('Generating cached nodelist for repo_id:%s, %s, %s', |
|
921 | 921 | repo_id, commit_id, f_path) |
|
922 | 922 | try: |
|
923 | _d, _f = ScmModel().get_nodes( | |
|
924 | repo_name, commit_id, f_path, flat=False) | |
|
923 | _d, _f = ScmModel().get_quick_filter_nodes(repo_name, commit_id, f_path) | |
|
925 | 924 | except (RepositoryError, CommitDoesNotExistError, Exception) as e: |
|
926 | 925 | log.exception(safe_str(e)) |
|
927 | 926 | h.flash(safe_str(h.escape(e)), category='error') |
@@ -667,7 +667,7 b' class DirNode(Node):' | |||
|
667 | 667 | """ |
|
668 | 668 | DirNode stores list of files and directories within this node. |
|
669 | 669 | Nodes may be used standalone but within repository context they |
|
670 |
lazily fetch data within same repositor |
|
|
670 | lazily fetch data within same repository's commit. | |
|
671 | 671 | """ |
|
672 | 672 | |
|
673 | 673 | def __init__(self, path, nodes=(), commit=None): |
@@ -583,6 +583,42 b' class ScmModel(BaseModel):' | |||
|
583 | 583 | |
|
584 | 584 | return _dirs, _files |
|
585 | 585 | |
|
586 | def get_quick_filter_nodes(self, repo_name, commit_id, root_path='/'): | |
|
587 | """ | |
|
588 | Generate files for quick filter in files view | |
|
589 | """ | |
|
590 | ||
|
591 | _files = list() | |
|
592 | _dirs = list() | |
|
593 | try: | |
|
594 | _repo = self._get_repo(repo_name) | |
|
595 | commit = _repo.scm_instance().get_commit(commit_id=commit_id) | |
|
596 | root_path = root_path.lstrip('/') | |
|
597 | for __, dirs, files in commit.walk(root_path): | |
|
598 | ||
|
599 | for f in files: | |
|
600 | ||
|
601 | _data = { | |
|
602 | "name": h.escape(f.unicode_path), | |
|
603 | "type": "file", | |
|
604 | } | |
|
605 | ||
|
606 | _files.append(_data) | |
|
607 | ||
|
608 | for d in dirs: | |
|
609 | ||
|
610 | _data = { | |
|
611 | "name": h.escape(d.unicode_path), | |
|
612 | "type": "dir", | |
|
613 | } | |
|
614 | ||
|
615 | _dirs.append(_data) | |
|
616 | except RepositoryError: | |
|
617 | log.exception("Exception in get_quick_filter_nodes") | |
|
618 | raise | |
|
619 | ||
|
620 | return _dirs, _files | |
|
621 | ||
|
586 | 622 | def get_node(self, repo_name, commit_id, file_path, |
|
587 | 623 | extended_info=False, content=False, max_file_bytes=None, cache=True): |
|
588 | 624 | """ |
General Comments 0
You need to be logged in to leave comments.
Login now