From cc970525acfd608efd0186b21b20318b61b8a38b Mon Sep 17 00:00:00 2001 From: jhenstridge Date: Wed, 21 Jul 2004 14:58:30 +0000 Subject: [PATCH] Simplify column sort code, so that clicking the sort column header reverses the sort order, while clicking on other headers sorts by that column in ascending order. This matches how most GUIs handle sorting in columned lists. Also port the sort handling from dir_alternate.ezt to directory.ezt to reduce differences between the two templates. git-svn-id: http://viewvc.tigris.org/svn/viewvc/trunk@886 8cb11bc2-c004-0410-86c3-e597b4017df7 --- lib/viewcvs.py | 26 ++++++++--- templates/dir_alternate.ezt | 89 +++++++++++++++---------------------- templates/directory.ezt | 69 ++++++++++++++-------------- 3 files changed, 91 insertions(+), 93 deletions(-) diff --git a/lib/viewcvs.py b/lib/viewcvs.py index 387540f6..826d9b28 100644 --- a/lib/viewcvs.py +++ b/lib/viewcvs.py @@ -1462,13 +1462,16 @@ def view_directory(request): 'tarball_href' : None, 'search_re' : search_re and htmlify(search_re) or None, 'dir_pagestart' : None, - 'sortby_file_href' : request.get_url(params={'sortby': 'file'}), - 'sortby_rev_href' : request.get_url(params={'sortby': 'rev'}), - 'sortby_date_href' : request.get_url(params={'sortby': 'date'}), - 'sortby_author_href' : request.get_url(params={'sortby': 'author'}), - 'sortby_log_href' : request.get_url(params={'sortby': 'log'}), - 'sortdir_down_href' : request.get_url(params={'sortdir': 'down'}), - 'sortdir_up_href' : request.get_url(params={'sortdir': 'up'}), + 'sortby_file_href' : request.get_url(params={'sortby': 'file', + 'sortdir': None}), + 'sortby_rev_href' : request.get_url(params={'sortby': 'rev', + 'sortdir': None}), + 'sortby_date_href' : request.get_url(params={'sortby': 'date', + 'sortdir': None}), + 'sortby_author_href' : request.get_url(params={'sortby': 'author', + 'sortdir': None}), + 'sortby_log_href' : request.get_url(params={'sortby': 'log', + 'sortdir': None}), 'num_files' : num_files, 'files_shown' : num_displayed, 'no_match' : ezt.boolean(num_files and not num_displayed), @@ -1480,6 +1483,15 @@ def view_directory(request): 'nav_path' : clickable_path(request, 0, 0), }) + # clicking on sort column reverses sort order + if sortdir == 'down': + revsortdir = None # 'up' + else: + revsortdir = 'down' + if sortby in ['file', 'rev', 'date', 'log', 'author']: + data['sortby_%s_href' % sortby] = request.get_url(params={'sortdir': + revsortdir}) + # set cvs-specific fields if request.roottype == 'cvs': plain_tags = options['cvs_tags'] diff --git a/templates/dir_alternate.ezt b/templates/dir_alternate.ezt index c8c9eed4..db4d233d 100644 --- a/templates/dir_alternate.ezt +++ b/templates/dir_alternate.ezt @@ -2,60 +2,43 @@ - [is sortby "rev"] - - [else] - - [end] - [is sortby "file"] - - [else] - - [end] - [is sortby "date"] - - [else] - - [end] - [is sortby "author"] - - [else] - - [end] + + + + [is cfg.options.show_logs "1"] - [is sortby "log"] - - [else] - - [end] + [end] diff --git a/templates/directory.ezt b/templates/directory.ezt index 1a50f7fa..236d1077 100644 --- a/templates/directory.ezt +++ b/templates/directory.ezt @@ -2,40 +2,43 @@
Rev. [is sortdir "up"][else][end]Rev.File [is sortdir "up"][else][end]FileAge [is sortdir "up"][else][end]AgeAuthor [is sortdir "up"][else][end]Author + Rev. + [is sortby "rev"] + [is sortdir + [end] + + File + [is sortby "file"] + [is sortdir + [end] + + Age + [is sortby "date"] + [is sortdir + [end] + + Author + [is sortby "author"] + [is sortdir + [end] + Last log entry [is sortdir "up"][else][end]Last log entry + Last log entry + [is sortby "log"] + [is sortdir + [end] +
- [is sortby "file"] - - [else] - - [end] - [is sortby "rev"] - - [else] - - [end] - [is sortby "date"] - - [else] - - [end] - [is sortby "author"] - - [else] - - [end] + + + + [is cfg.options.show_logs "1"] - [is sortby "log"] - - [else] - - [end] + [end]
FileFileRev.Rev.AgeAgeAuthorAuthor + File + [is sortby "file"] + [is sortdir + [end] + + Rev. + [is sortby "rev"] + [is sortdir + [end] + + Age + [is sortby "date"] + [is sortdir + [end] + + Author + [is sortby "author"] + [is sortdir + [end] + Last log entryLast log entry + Last log entry + [is sortby "log"] + [is sortdir + [end] +