Guest User

controller.js

a guest
May 17th, 2017
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.   angular.module('coursemate')
  2.     .controller("chatCtrl", ['$rootScope','$scope', '$http', function($rootScope, $scope, $http){
  3.         var vm = this;
  4.         var socket = window.io('localhost:3030/');
  5.         vm.newMessage = undefined;
  6.         vm.username = undefined;
  7.         vm.messages = [];
  8.         vm.onlinelist = [];
  9.         vm.sendBtnDisabled = true;
  10.         vm.connected = false;
  11.  
  12.  
  13.         //socket acions
  14.         socket.on("receive-message", function(msg){
  15.             //socket server send message to us
  16.             $scope.$apply(function(){
  17.               vm.messages.push(msg);
  18.             });
  19.         });
  20.  
  21.         socket.on("online-list", function(list){
  22.             //server sends us refreshed list of members
  23.             $scope.$apply(function(){
  24.               vm.onlinelist = list;
  25.             });
  26.         });
  27.  
  28.         socket.on('disconnect', function(){
  29.             //connection failed
  30.             vm.connected = false;
  31.             vm.keyEventSendMessage(null);
  32.         });
  33.  
  34.         socket.on('connect', function(){
  35.             //connection established
  36.             vm.connected = true;
  37.             vm.keyEventSendMessage(null);
  38.         });
  39.         vm.username = undefined;
  40.  
  41.  
  42.  
  43.         vm.sendMessage = function(){
  44.             //we send messsage to socket server
  45.             var newMessage = {
  46.                 username: vm.username,
  47.                 message: vm.newMessage
  48.             };
  49.             socket.emit("new-message", newMessage);
  50.  
  51.             var config = {
  52.                 headers : {
  53.                     'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'
  54.                 }
  55.             }
  56.             var data = $.param({
  57.                 user: vm.username,
  58.                 content: vm.newMessage
  59.             });
  60.             $http.post('app/database/database.php?req=1', data, config).success(function(data) {
  61.             });
  62.  
  63.             vm.newMessage = undefined;
  64.             vm.keyEventSendMessage(null);
  65.         };
  66.  
  67.         vm.createUser = function(username){
  68.             // we "log in" as users
  69.             vm.username = username;
  70.             socket.emit("new-connection", username);
  71.         }
  72.         vm.keyEventSendMessage = function(event){
  73.             //fired on keyhit at message input
  74.             if(typeof(vm.newMessage) != 'undefined' && vm.newMessage != null && vm.newMessage != '' && vm.connected){
  75.                 vm.sendBtnDisabled = false;
  76.                 if(event != null && event.keyCode == 13){
  77.                     vm.sendMessage();
  78.                 }
  79.             }else{
  80.                 vm.sendBtnDisabled = true;
  81.             }
  82.         }
  83.  
  84.         $http.get('localhost:3030/api/feed').success(function(data) {
  85.             console.log(data);
  86.         });
  87.  
  88.     }]);
Advertisement
Add Comment
Please, Sign In to add comment