From 0175b92bdf2ec0763c8025d761c84efa222cb674 Mon Sep 17 00:00:00 2001
From: Andrew Buss <abuss@ucsd.edu>
Date: Mon, 25 May 2015 19:33:15 -0700
Subject: [PATCH] fix some inefficient reloads

---
 scripts/FeedController.js | 34 ++++++++++------------------------
 1 file changed, 10 insertions(+), 24 deletions(-)

diff --git a/scripts/FeedController.js b/scripts/FeedController.js
index d9a1bbf..0220e69 100644
--- a/scripts/FeedController.js
+++ b/scripts/FeedController.js
@@ -15,24 +15,24 @@ angular.module('flashy.FeedController', ['ui.router']).
             return Math.floor(avail / 250);
         }
 
-        function createCols(data) {
+        $scope.refreshLayout = function() {
             $scope.cardCols = [];
             for (i = 0; i < $scope.cols; i++) $scope.cardCols.push([]);
             var i = 0;
-            for (card in data) {
+            for (card in $scope.cards) {
                 if (i >= $scope.cols) i = 0;
                 $scope.cardCols[i++].push(card);
             }
         }
 
-        angular.element($window).bind('resize', $scope.refreshCards);
+
         console.log('cols:' + calculate_cols());
 
         $scope.refreshCards = function () {
             $http.get('/api/sections/' + sectionId + '/feed/').
                 success(function (data) {
                     console.log(data);
-                    createCols(data);
+                    $scope.cards = data;
                     console.log('success in refresh cards...');
                 }).
                 error(function (err) {
@@ -40,6 +40,10 @@ angular.module('flashy.FeedController', ['ui.router']).
                 });
         };
 
+        angular.element($window).bind('resize', function(){
+            if($scope.cols != calculate_cols()) $scope.refreshLayout();
+        });
+
         $scope.add = function (card) {
             var col = Math.floor(Math.random() * $scope.cols);
             $scope.cols[col].unshift(card);
@@ -58,25 +62,6 @@ angular.module('flashy.FeedController', ['ui.router']).
             if (found == -1) console.log('Error finding card to hide:' + card);
         };
 
-        /* Instance creation */
-        $http.get('/api/sections/' + sectionId + '/feed/').
-            success(function (data) {
-                console.log(data);
-                $scope.noCards = function () {
-                    alert(data.length);
-                    if (data.length == 0) {
-                        return true;
-                    } else {
-                        return false;
-                    }
-                }
-                createCols();
-                console.log('success in refresh cards...');
-            }).
-            error(function (err) {
-                console.log('pulling feed failed');
-            });
-
         var loc = window.location, new_uri;
         if (loc.protocol === 'https:') {
             new_uri = 'wss:';
@@ -210,7 +195,8 @@ angular.module('flashy.FeedController', ['ui.router']).
                 document.execCommand('bold');
             });
         });
-
+        $scope.refreshCards();
+        $scope.refreshLayout();
         $scope.$on('$destroy', function () {
             ws.close();
             $rootScope.currentSection = {};
-- 
1.9.1