Add Buffer model

This commit is contained in:
David Cormier 2013-10-07 21:15:25 -04:00
parent ebecc5faae
commit 553f40e220
3 changed files with 27 additions and 14 deletions

View file

@ -48,7 +48,7 @@
<div ng-show="connected"> <div ng-show="connected">
<span class="label" ng-class="{'label-success': content.notification }" ng-repeat="(key, content) in buffers"> <span class="label" ng-class="{'label-success': content.notification }" ng-repeat="(key, content) in buffers">
<a ng-click="setActiveBuffer(key)">{{ content.full_name }}</a> <a ng-click="setActiveBuffer(key)">{{ content.fullName }}</a>
</span> </span>
<div ng-repeat="bufferline in activeBuffer.lines"> <div ng-repeat="bufferline in activeBuffer.lines">
<span class="timestamp color-dark-gray">{{ bufferline.date | date: 'H:mm:ss'}}</span> <span class="timestamp color-dark-gray">{{ bufferline.date | date: 'H:mm:ss'}}</span>

View file

@ -2,6 +2,20 @@ var models = angular.module('weechatModels', []);
models.factory('models', ['colors', function(colors) { models.factory('models', ['colors', function(colors) {
function Buffer(message) {
var fullName = message['full_name']
var pointer = message['pointers'][0]
var lines = []
return {
id: pointer,
fullName: fullName,
lines: lines,
}
}
function BufferLine(weechatBufferLine) { function BufferLine(weechatBufferLine) {
/* /*
@ -40,7 +54,8 @@ models.factory('models', ['colors', function(colors) {
} }
return { return {
BufferLine: BufferLine BufferLine: BufferLine,
Buffer: Buffer
} }

View file

@ -194,8 +194,9 @@ weechat.factory('imagePlugin', [function() {
weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager', function($rootScope, colors, models, pluginManager) { weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager', function($rootScope, colors, models, pluginManager) {
var handleBufferClosing = function(message) { var handleBufferClosing = function(message) {
var buffer_pointer = message['objects'][0]['content'][0]['pointers'][0]; var bufferMessage = message['objects'][0]['content'][0];
$rootScope.closeBuffer(buffer_pointer); var buffer = new models.Buffer(bufferMessage);
$rootScope.closeBuffer(buffer.id);
} }
var handleBufferLineAdded = function(message) { var handleBufferLineAdded = function(message) {
@ -223,9 +224,9 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
} }
var handleBufferOpened = function(message) { var handleBufferOpened = function(message) {
var fullName = message['objects'][0]['content'][0]['full_name'] var bufferMessage = message['objects'][0]['content'][0];
var buffer = message['objects'][0]['content'][0]['pointers'][0] var buffer = new models.Buffer(bufferMessage);
$rootScope.buffers[buffer] = { 'id': buffer, 'lines':[], 'full_name':fullName } $rootScope.buffers[buffer.id] = buffer;
} }
@ -241,14 +242,11 @@ weechat.factory('handlers', ['$rootScope', 'colors', 'models', 'pluginManager',
// buffers objects // buffers objects
var buffers = {}; var buffers = {};
for (var i = 0; i < bufferInfos.length ; i++) { for (var i = 0; i < bufferInfos.length ; i++) {
var bufferInfo = bufferInfos[i]; var buffer = new models.Buffer(bufferInfos[i]);
var pointer = bufferInfo['pointers'][0]; buffers[buffer.id] = buffer;
bufferInfo['id'] = pointer;
bufferInfo['lines'] = [];
buffers[pointer] = bufferInfo
if (i == 0) { if (i == 0) {
// first buffer is active buffer by default // first buffer is active buffer by default
$rootScope.activeBuffer = buffers[pointer]; $rootScope.activeBuffer = buffers[buffer.id];
} }
} }
$rootScope.buffers = buffers; $rootScope.buffers = buffers;
@ -350,7 +348,7 @@ weechat.factory('connection', ['$rootScope', '$log', 'handlers', 'colors', funct
var sendMessage = function(message) { var sendMessage = function(message) {
doSend(WeeChatProtocol.formatInput({ doSend(WeeChatProtocol.formatInput({
buffer: $rootScope.activeBuffer['full_name'], buffer: $rootScope.activeBuffer['fullName'],
data: message data: message
})); }));
} }