[extensions-web] review: Highlight the file list better



commit af0fbb0dc9c12aa52991900b125fdcdbd97ecd82
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Mon Feb 6 15:54:05 2012 -0500

    review: Highlight the file list better
    
    Remove unchanged files from the diff view. Highlight "added"
    and "deleted" files. In the "files" view, add unchanged files
    to the end of the list.

 sweettooth/review/views.py       |   15 ++++++++++++++-
 sweettooth/static/css/review.css |   14 +++++++++++---
 sweettooth/static/js/review.js   |   14 ++++++--------
 3 files changed, 31 insertions(+), 12 deletions(-)
---
diff --git a/sweettooth/review/views.py b/sweettooth/review/views.py
index e2de6d2..b230039 100644
--- a/sweettooth/review/views.py
+++ b/sweettooth/review/views.py
@@ -164,7 +164,20 @@ def ajax_get_file_list_view(request, obj):
     added   = new_filelist - old_filelist
     deleted = old_filelist - new_filelist
 
-    return dict(both=sorted(both),
+    unchanged, changed = set([]), set([])
+
+    for filename in both:
+        old, new = old_zipfile.open(filename, 'r'), new_zipfile.open(filename, 'r')
+        oldcontent, newcontent = old.read(), new.read()
+
+        # Unchanged, remove
+        if oldcontent == newcontent:
+            unchanged.add(filename)
+        else:
+            changed.add(filename)
+
+    return dict(unchanged=sorted(unchanged),
+                changed=sorted(changed),
                 added=sorted(added),
                 deleted=sorted(deleted))
 
diff --git a/sweettooth/static/css/review.css b/sweettooth/static/css/review.css
index 380d623..4143770 100644
--- a/sweettooth/static/css/review.css
+++ b/sweettooth/static/css/review.css
@@ -29,7 +29,7 @@
     margin-left: 2em;
 }
 
-.filelist li a {
+.fileselector {
     float: left;
     display: block;
     padding: 0 1em;
@@ -44,7 +44,7 @@
     transition: background-color 0.2s ease-in-out, border 0.2s ease-in-out;
 }
 
-.filelist li a.selected {
+.fileselector.selected {
     cursor: auto;
     color: #2e3436;
     background-color: #C8D0D5;
@@ -95,7 +95,7 @@ p.nochanges {
     background-color: #ffccaa;
 }
 
-.inserted {
+.inserted, .added {
     background-color: #bbffbb;
 }
 
@@ -107,6 +107,14 @@ p.nochanges {
     background-color: #cceeff;
 }
 
+.fileselector.changed {
+    background-color: transparent;
+}
+
+.unchanged {
+    color: #747474;
+}
+
 .linenumbers pre, .linum {
     color: #aaa;
     text-align: right;
diff --git a/sweettooth/static/js/review.js b/sweettooth/static/js/review.js
index 3045e76..aaabacc 100644
--- a/sweettooth/static/js/review.js
+++ b/sweettooth/static/js/review.js
@@ -45,12 +45,7 @@ define(['jquery', 'diff'], function($, diff) {
         req.done(function(data) {
             var $html;
             if (isDiff) {
-                if (data === null) {
-                    $html = $('<p>', {'class': 'nochanges'}).
-                        text("There have been no changes in this file.");
-                } else {
-                    $html = diff.buildDiffTable(data.chunks, data.oldlines, data.newlines);
-                }
+                $html = diff.buildDiffTable(data.chunks, data.oldlines, data.newlines);
             } else {
                 $html = addLineNumbers(data);
             }
@@ -131,11 +126,14 @@ define(['jquery', 'diff'], function($, diff) {
                 $('<li>').append($selector).appendTo($fileList);
             }
 
-
-            $.each(files.both, function() { createFileSelector('both', this); });
+            $.each(files.changed, function() { createFileSelector('changed', this); });
             $.each(files.added, function() { createFileSelector('added', this); });
             $.each(files.deleted, function() { createFileSelector('deleted', this); });
 
+            // Don't show the 'unchanged' section in a diff view.
+            if (!diff)
+                $.each(files.unchanged, function() { createFileSelector('unchanged', this); });
+
             $fileList.show();
 
             // Select the first item.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]