Support clearing of buffer lines with command /c or /clear

This commit is contained in:
Tor Hveem 2014-05-06 18:38:20 +02:00
parent 9f6f598f40
commit f21cf4c046
2 changed files with 26 additions and 2 deletions

View file

@ -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);
};
@ -1208,6 +1209,7 @@ weechat.directive('inputBar', function() {
controller: function($rootScope,
$scope,
$element,
$log,
connection,
models) {
@ -1251,11 +1253,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 === '/clear' || $scope.command === '/c') {
$log.debug('Clearing lines');
ab.clear();
}
// Empty the input after it's sent
input.value = '';
};

View file

@ -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;
@ -197,6 +198,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,
@ -204,6 +213,7 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter)
number: number,
title: title,
lines: lines,
clear: clear,
requestedLines: requestedLines,
addLine: addLine,
lastSeen: lastSeen,