diff --git a/scripts/FeedController.js b/scripts/FeedController.js index 3a612fa..345de57 100644 --- a/scripts/FeedController.js +++ b/scripts/FeedController.js @@ -1,5 +1,5 @@ angular.module('flashy.FeedController', ['ui.router']). - controller('FeedController', function($scope, $rootScope, $stateParams, $state, $http) { + controller('FeedController', function($scope, $rootScope, $stateParams, $state, $http, UserService) { console.log('Hello from feed'); sectionId = $stateParams.sectionId; $rootScope.currentSection = $rootScope.SectionResource.get({sectionId: sectionId}); @@ -19,7 +19,10 @@ angular.module('flashy.FeedController', ['ui.router']). }; ws.onmessage = function(e) { console.log('got websocket message ' + e.data); - $scope.refreshCards(); + data = JSON.parse(e.data); + if (data.event_type == 'new_card') { + addCardToFeed(data.flashcard); + } }; ws.onerror = function(e) { console.error(e); @@ -32,18 +35,17 @@ angular.module('flashy.FeedController', ['ui.router']). success(function(data) { console.log(data); $scope.cards = data; + }). error(function(err) { console.log('pulling feed failed'); }); - $scope.viewDeck = function() { - $state.go('deck', {sectionId: sectionId}); - console.log('go to deck'); + var addCardToFeed = function(card) { + $scope.cards.unshift(card); }; $scope.pushCard = function() { - var pushed = new Date(Date.now()); var i = 0; var blanks = []; $('#new-card-input')[0].childNodes.forEach(function(node) { @@ -61,40 +63,31 @@ angular.module('flashy.FeedController', ['ui.router']). text = $('#new-card-input').text(); var myCard = { 'text': text, - 'material_date': pushed, 'mask': blanks, section: sectionId }; $http.post('/api/flashcards/', myCard). success(function(data) { - console.log('pushed a card!'); - listenForC = true; + console.log('flashcard push succeeded'); + if (!UserService.hasVerifiedEmail()) { + Materialize.toast("

Thanks for contributing! However, others won't see your card until you verify your email address

", 4000); + } }). error(function(error) { console.log('something went wrong pushing a card!'); }); - + listenForC = true; $('#new-card-input').html(''); }; - $scope.refreshCards = function() { - $http.get('/api/sections/' + sectionId + '/feed/'). - success(function(data) { - console.log(data); - $scope.cards = data; - - /*if (data.length == 0) { - return true; - } else { - return false; - }*/ - - console.log('success in refresh cards...'); - }). - error(function(err) { - console.log('refresh fail'); - }); - }; + $http.get('/api/sections/' + sectionId + '/feed/'). + success(function(data) { + console.log(data); + $scope.cards = data; + }). + error(function(err) { + console.log("couldn't get cards!"); + }); /* Key bindings for the whole feed window. Hotkey it up! */ var listenForC = true; @@ -137,6 +130,7 @@ angular.module('flashy.FeedController', ['ui.router']). var selected_start = 0; var selected_end = 0; $(document).ready(function() { + $('.tooltipped').tooltip({delay: 50}); // the "href" attribute of .modal-trigger must specify the modal ID that wants to be triggered $('.modal-trigger').leanModal(modal_options); $('#new-card-input').on('keydown', function(e) { diff --git a/scripts/LoginController.js b/scripts/LoginController.js index 2f83dcc..f1a3f12 100644 --- a/scripts/LoginController.js +++ b/scripts/LoginController.js @@ -17,7 +17,6 @@ angular.module('flashy.LoginController', ['ui.router']). if (angular.isDefined($scope.returnToState)) $state.go($scope.returnToState.name, $scope.returnToStateParams); else $state.go('addclass'); - console.log(data); }). error(function(data, status, header, config) { if (data.detail) { // assume 'invalid email or pass' @@ -32,7 +31,7 @@ angular.module('flashy.LoginController', ['ui.router']). 'password': password })). success(function(data) { - console.log(data); + UserService.login(data); if (angular.isDefined($scope.returnToState)) $state.go($scope.returnToState.name, $scope.returnToStateParams); else $state.go('addclass'); diff --git a/scripts/UserService.js b/scripts/UserService.js index 2a2c59f..979a92e 100644 --- a/scripts/UserService.js +++ b/scripts/UserService.js @@ -22,8 +22,14 @@ angular.module('flashy.UserService', ['ui.router']). }; this.login = function(data) { _user = data; + if (!data.is_confirmed) { + Materialize.toast('Please verify your email address!', 4000); + } deferred.resolve(data); }; + this.hasVerifiedEmail = function() { + return this.isResolved() && _user.is_confirmed; + }; this.logout = function() { _user = false; deferred.resolve({}); diff --git a/styles/flashy.css b/styles/flashy.css index 80c375d..ac4c60f 100644 --- a/styles/flashy.css +++ b/styles/flashy.css @@ -236,9 +236,11 @@ html { nav { background-color: #d2143f !important; } -main{ - min-height:145px; + +main { + min-height: 145px; } + .side-nav .collapsible-body { width: 100%; } @@ -279,10 +281,18 @@ md-content.md-default-theme { /*#sidenav-overlay { background-color: rgba(0, 0, 0, 0) !important; }*/ -.card-content{ - width:100%; +.card-content { + width: 100%; } -.valign-wrapper{ - height:100%; +.valign-wrapper { + height: 100%; } + +.toast { + height:100px; + width: 300px; + line-height: 20px; + max-height: 100px; + word-wrap: normal; +} \ No newline at end of file diff --git a/templates/feed.html b/templates/feed.html index 14bfd43..087a4af 100644 --- a/templates/feed.html +++ b/templates/feed.html @@ -1,4 +1,3 @@ -

@@ -9,7 +8,8 @@ @@ -19,16 +19,19 @@