+
+
+
{{ bufferline.date | date: 'H:mm:ss'}}
{{ part.text }}
diff --git a/js/models.js b/js/models.js
index 32699bc..66dd47a 100644
--- a/js/models.js
+++ b/js/models.js
@@ -1,22 +1,74 @@
var models = angular.module('weechatModels', []);
-models.factory('models', ['colors', function(colors) {
+models.service('models', ['colors', function(colors) {
- function Buffer(message) {
+ var BufferList = []
+ activeBuffer = null;
+
+ this.model = { 'buffers': {} }
+
+ this.addBuffer = function(buffer) {
+ BufferList[buffer.id] = buffer;
+ if (BufferList.length == 1) {
+ activeBuffer = buffer.id;
+ }
+ this.model.buffers[buffer.id] = buffer;
+ }
+
+ this.getActiveBuffer = function() {
+ return activeBuffer;
+ }
+
+ this.setActiveBuffer = function(bufferId) {
+
+ activeBuffer = _.find(this.model['buffers'], function(buffer) {
+ if (buffer['id'] == bufferId) {
+ return buffer;
+ }
+ });
+
+ console.log(this.activeBuffer);
+ }
+
+ this.getBuffers = function() {
+ return BufferList;
+ }
+
+ this.getBuffer = function(bufferId) {
+ return _.find(this.model['buffers'], function(buffer) {
+ if (buffer['id'] == bufferId) {
+ console.log('yƩ');
+ return buffer;
+ }
+ });
+ }
+
+ this.closeBuffer = function(bufferId) {
+ delete(BufferList[bufferId]);
+ var firstBuffer = _.keys(BufferList)[0];
+ activeBuffer = firstBuffer;
+ }
+
+ this.Buffer = function(message) {
var fullName = message['full_name']
var pointer = message['pointers'][0]
var lines = []
+
+ var addLine = function(line) {
+ lines.push(line);
+ }
return {
id: pointer,
fullName: fullName,
lines: lines,
+ addLine: addLine
}
}
- function BufferLine(weechatBufferLine) {
+ this.BufferLine = function(weechatBufferLine) {
/*
* Parse the text elements from the buffer line added
@@ -53,10 +105,8 @@ models.factory('models', ['colors', function(colors) {
}
- return {
- BufferLine: BufferLine,
- Buffer: Buffer
+ this.getBufferList = function() {
+ return BufferList;
}
-
}]);
diff --git a/js/websockets.js b/js/websockets.js
index 45993ca..e01a0e2 100644
--- a/js/websockets.js
+++ b/js/websockets.js
@@ -205,11 +205,18 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
message = new models.BufferLine(message);
message.metadata = pluginManager.contentForMessage(message.text);
- if (!_isActiveBuffer(message.buffer)) {
- $rootScope.buffers[message.buffer]['notification'] = true;
- }
+ console.log(message);
+ console.log(message.buffer);
+ console.log(models.getBuffer(message.buffer));
+ models.getBuffer(message.buffer).addLine(message);
+
- $rootScope.buffers[message.buffer]['lines'].push(message);
+
+ //if (!_isActiveBuffer(message.buffer)) {
+ // $rootScope.buffers[message.buffer]['notification'] = true;
+ //}
+
+ //$rootScope.buffers[message.buffer]['lines'].push(message);
}
/*
@@ -226,7 +233,7 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
var handleBufferOpened = function(message) {
var bufferMessage = message['objects'][0]['content'][0];
var buffer = new models.Buffer(bufferMessage);
- $rootScope.buffers[buffer.id] = buffer;
+ //$rootScope.buffers[buffer.id] = buffer;
}
@@ -240,16 +247,11 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
// buffer info from message
var bufferInfos = message['objects'][0]['content'];
// buffers objects
- var buffers = {};
for (var i = 0; i < bufferInfos.length ; i++) {
var buffer = new models.Buffer(bufferInfos[i]);
- buffers[buffer.id] = buffer;
- if (i == 0) {
- // first buffer is active buffer by default
- $rootScope.activeBuffer = buffers[buffer.id];
- }
+ models.addBuffer(buffer);
}
- $rootScope.buffers = buffers;
+
}
var handleEvent = function(event) {
@@ -282,7 +284,7 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
}]);
-weechat.factory('connection', ['$rootScope', '$log', 'handlers', 'colors', function($rootScope, $log, handlers, colors) {
+weechat.factory('connection', ['$rootScope', '$log', 'handlers', 'colors', 'models', function($rootScope, $log, handlers, colors, models) {
protocol = new WeeChatProtocol();
var websocket = null;
@@ -333,6 +335,7 @@ weechat.factory('connection', ['$rootScope', '$log', 'handlers', 'colors', funct
message = protocol.parse(evt.data)
handlers.handleEvent(message);
$rootScope.commands.push("RECV: " + evt.data + " TYPE:" + evt.type) ;
+ console.log("apply");
$rootScope.$apply();
}
@@ -348,7 +351,7 @@ weechat.factory('connection', ['$rootScope', '$log', 'handlers', 'colors', funct
var sendMessage = function(message) {
doSend(WeeChatProtocol.formatInput({
- buffer: $rootScope.activeBuffer['fullName'],
+ buffer: models.getActiveBuffer()['fullName'],
data: message
}));
}
@@ -359,12 +362,43 @@ weechat.factory('connection', ['$rootScope', '$log', 'handlers', 'colors', funct
}
}]);
-weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', 'connection', function ($rootScope, $scope, $store, connection) {
+weechat.service('testService', function(){
+ var count = 1;
+ var list = [];
+ this.incrementCount = function () {
+ count++;
+ list.push(count);
+ return list;
+ };
+ this.getCount = function(){
+ return list;
+ }
+
+});
+
+weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', 'models', 'connection', 'testService', function ($rootScope, $scope, $store, models, connection, testService) {
+
+ $scope.buffers = models.model.buffers;
+ $scope.activeBuffer = models.getActiveBuffer
+
+ $scope.incrementAge = function () {
+ models.model.age++;
+ models.model.cats.push('nouveau chat');
+ }
+
+
+ $scope.clickS = function () {
+ $scope.countS = testService.incrementCount();
+ };
+
$rootScope.commands = []
+
+
+ $rootScope.models = models;
+
$rootScope.buffer = []
- $rootScope.buffers = {}
- $rootScope.activeBuffer = null;
+
$store.bind($scope, "hostport", "localhost:9001");
$store.bind($scope, "proto", "weechat");
$store.bind($scope, "password", "");
@@ -372,14 +406,14 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', 'connection
// $scope.password = "";
$rootScope.closeBuffer = function(buffer_pointer) {
- delete($rootScope.buffers[buffer_pointer]);
- var first_buffer = _.keys($rootScope.buffers)[0];
- $scope.setActiveBuffer(first_buffer);
+ // delete($rootScope.buffers[buffer_pointer]);
+ // var first_buffer = _.keys($rootScope.buffers)[0];
+ // $scope.setActiveBuffer(first_buffer);
}
$scope.setActiveBuffer = function(key) {
- $rootScope.buffers[key]['notification'] = false;
- $rootScope.activeBuffer = $rootScope.buffers[key];
+ console.log(key);
+ models.setActiveBuffer(key);
};
$scope.sendMessage = function() {