|
|
|
@ -24,7 +24,7 @@ weechat.filter('toArray', function () { |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
weechat.filter('irclinky', ['$filter', function($filter) { |
|
|
|
|
weechat.filter('irclinky', function() { |
|
|
|
|
return function(text) { |
|
|
|
|
if (!text) { |
|
|
|
|
return text; |
|
|
|
@ -36,12 +36,12 @@ weechat.filter('irclinky', ['$filter', function($filter) { |
|
|
|
|
// "#1" is much more likely to be "number 1" than "IRC channel #1".
|
|
|
|
|
// Thus, we only match channels beginning with a # and having at least one letter in them.
|
|
|
|
|
var channelRegex = /(^|[\s,.:;?!"'()+@-\~%])(#+[^\x00\x07\r\n\s,:]*[a-z][^\x00\x07\r\n\s,:]*)/gmi; |
|
|
|
|
// This is SUPER nasty, but ng-click does not work inside a filter, as the markup has to be $compiled first, which is not possible in filter afaik.
|
|
|
|
|
// Therefore, get the scope, fire the method, and $apply. Yuck. I sincerely hope someone finds a better way of doing this.
|
|
|
|
|
var substitute = '$1<a href="#" onclick="var $scope = angular.element(event.target).scope(); $scope.openBuffer(\'$2\'); $scope.$apply();">$2</a>'; |
|
|
|
|
// Call the method we bound to window.openBuffer when we instantiated
|
|
|
|
|
// the Weechat controller.
|
|
|
|
|
var substitute = '$1<a href="#" onclick="openBuffer(\'$2\');">$2</a>'; |
|
|
|
|
return text.replace(channelRegex, substitute); |
|
|
|
|
}; |
|
|
|
|
}]); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
weechat.filter('inlinecolour', function() { |
|
|
|
|
return function(text) { |
|
|
|
|