[extensions-web] review: Start refactoring diff-view split



commit 0d813015ad90e20a92eed2762644705bd7f60cce
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Feb 7 13:48:21 2012 -0500

    review: Start refactoring diff-view split
    
    The initial code between the diff and non-diff modes were very similar,
    so we've kept the differences to a boolean flag. Now, we're using the
    boolean flag in places we shouldn't. Start refactoring things not to
    be a boolean flag, but instead helper functions.

 sweettooth/static/js/review.js |   31 ++++++++++++++++++-------------
 1 files changed, 18 insertions(+), 13 deletions(-)
---
diff --git a/sweettooth/static/js/review.js b/sweettooth/static/js/review.js
index f353a54..0d14134 100644
--- a/sweettooth/static/js/review.js
+++ b/sweettooth/static/js/review.js
@@ -30,28 +30,33 @@ define(['jquery', 'diff'], function($, diff) {
         return $table;
     }
 
-    function createFileView(filename, pk, isDiff) {
-        var frag = isDiff ? '/get-file-diff/' : '/get-file/';
-
+    function createDiffView(filename, pk) {
         var req = $.ajax({
             type: 'GET',
             dataType: 'json',
             data: { filename: filename },
-            url: REVIEW_URL_BASE + frag + pk
+            url: REVIEW_URL_BASE + '/get-file-diff/' + pk
         });
 
         var deferred = new $.Deferred();
-
         req.done(function(data) {
-            var $html;
-            if (isDiff) {
-                $html = diff.buildDiffTable(data.chunks, data.oldlines, data.newlines);
-            } else {
-                $html = buildFileView(data);
-            }
-            deferred.resolve($html);
+            deferred.resolve(diff.buildDiffTable(data.chunks, data.oldlines, data.newlines));
         });
+        return deferred;
+    }
 
+    function createFileView(filename, pk) {
+        var req = $.ajax({
+            type: 'GET',
+            dataType: 'json',
+            data: { filename: filename },
+            url: REVIEW_URL_BASE + '/get-file/' + pk
+        });
+
+        var deferred = new $.Deferred();
+        req.done(function(data) {
+            deferred.resolve(buildFileView(data));
+        });
         return deferred;
     }
 
@@ -120,7 +125,7 @@ define(['jquery', 'diff'], function($, diff) {
                         return;
 
                     if ($file === null) {
-                        var d = createFileView(filename, pk, diff);
+                        var d = (diff ? createDiffView : createFileView)(filename, pk, diff);
                         currentFilename = filename;
                         d.done(function($table) {
                             $file = $table;



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