diff --git a/js/glowingbear.js b/js/glowingbear.js index e4b1086..195a1cb 100644 --- a/js/glowingbear.js +++ b/js/glowingbear.js @@ -427,6 +427,7 @@ function($rootScope, var fetchMoreLines = function(numLines) { + $log.debug('Fetching ', numLines, ' lines'); var buffer = models.getActiveBuffer(); if (numLines === undefined) { // Math.max(undefined, *) = NaN -> need a number here @@ -506,7 +507,7 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', q.push(scope.$$nextSibling); } } - console.log(watchers); + $log.debug(watchers); }; @@ -1217,6 +1218,7 @@ weechat.directive('inputBar', function() { controller: function($rootScope, $scope, $element, + $log, connection, models) { @@ -1260,11 +1262,23 @@ weechat.directive('inputBar', function() { $scope.sendMessage = function() { var input = $scope.getInputNode(); - models.getActiveBuffer().addToHistory(input.value); // log to buffer history + var ab = models.getActiveBuffer(); + + // log to buffer history + ab.addToHistory(input.value); + // Split the command into multiple commands based on line breaks _.each($scope.command.split(/\r?\n/), function(line) { connection.sendMessage(line); }); + + // Check for /clear command + if ($scope.command === '/buffer clear' || $scope.command === '/c') { + $log.debug('Clearing lines'); + ab.clear(); + } + + // Empty the input after it's sent input.value = ''; }; diff --git a/js/models.js b/js/models.js index 53ef7b2..4fe75c5 100644 --- a/js/models.js +++ b/js/models.js @@ -19,6 +19,7 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) var notify = 3; // Default 3 == message var lines = []; var requestedLines = 0; + var allLinesFetched = false; var nicklist = {}; var history = []; var historyPos = 0; @@ -201,6 +202,14 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) return nicklist.hasOwnProperty('root'); }; + /* Clear all our buffer lines */ + var clear = function() { + while(lines.length > 0) { + lines.pop(); + } + requestedLines = 0; + }; + return { id: pointer, fullName: fullName, @@ -208,6 +217,7 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) number: number, title: title, lines: lines, + clear: clear, requestedLines: requestedLines, addLine: addLine, lastSeen: lastSeen,