diff --git a/index.html b/index.html index cb8179b..e9e792a 100644 --- a/index.html +++ b/index.html @@ -210,6 +210,16 @@ $ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out rel +
  • +
    +
    + +
    +
    +
  • @@ -228,7 +238,7 @@ $ openssl req -nodes -newkey rsa:2048 -keyout relay.pem -x509 -days 365 -out rel - {{ content.shortName }}{{ content.fullName }} + {{ content.indent(predicate) }}{{ content.shortName }}{{ content.fullName }} diff --git a/js/models.js b/js/models.js index bb9a41b..bd5d0e3 100644 --- a/js/models.js +++ b/js/models.js @@ -24,6 +24,16 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) var notification = 0 var unread = 0 var lastSeen = -2 + var serverSortKey = fullName.replace(/^irc.server.(\w+)/, "irc.$1"); + + var indent = function(predicate) { + if( predicate == "serverSortKey" && fullName.match(/^irc./) && !fullName.match(/^irc.server./) ) { + // indent channel + return "    "; // four protected spaces + } else { + return ""; + } + } // Buffer opened message does not include notify level if( message['notify'] != undefined ) { @@ -115,7 +125,9 @@ models.service('models', ['$rootScope', '$filter', function($rootScope, $filter) addNick: addNick, delNick: delNick, updateNick: updateNick, - flatNicklist: flatNicklist + flatNicklist: flatNicklist, + serverSortKey: serverSortKey, + indent: indent } } diff --git a/js/websockets.js b/js/websockets.js index 793c73a..435021e 100644 --- a/js/websockets.js +++ b/js/websockets.js @@ -315,7 +315,6 @@ weechat.factory('connection', ['$q', '$rootScope', '$log', '$store', 'handlers', models.setActiveBuffer(buffer.id); } } - $rootScope.predicate = 'number'; }); @@ -517,12 +516,20 @@ weechat.controller('WeechatCtrl', ['$rootScope', '$scope', '$store', '$timeout', $store.bind($scope, "nonicklist", false); // Save setting for displaying embeds $store.bind($scope, "noembed", false); + // Save setting for channel ordering + $store.bind($scope, "orderbyserver", false); // Save setting for displaying embeds in rootscope so it can be used from service $rootScope.visible = $scope.noembed == false; // Watch model and update show setting when it changes $scope.$watch('noembed', function() { $rootScope.visible = $scope.noembed == false; }); + // Watch model and update channel sorting when it changes + $scope.$watch('orderbyserver', function() { + $rootScope.predicate = $scope.orderbyserver ? 'serverSortKey' : 'number'; + }); + + $rootScope.predicate = $scope.orderbyserver ? 'serverSortKey' : 'number'; $scope.setActiveBuffer = function(key) { models.setActiveBuffer(key);