You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
7.1 KiB
171 lines
7.1 KiB
<div ng-keydown="handleKeyPress($event)" class="content" ng-show="connected">
|
|
<div id="topbar">
|
|
<div class="brand">
|
|
<a href="#" data-target="#sidebar" data-toggle="collapse">
|
|
<img alt="brand" src="img/favicon.png" title="Connected to {{ host }}:{{ port}}">
|
|
</a>
|
|
<button ng-show="debugMode" ng-click="countWatchers()">Count<br />Watchers</button>
|
|
</div>
|
|
<div class="title" ng-bind-html="activeBuffer().title | irclinky:'_blank'"></div>
|
|
<div class="actions pull-right vertical-line-left">
|
|
<div class="dropdown pull-left">
|
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown" title="Options menu">
|
|
<i class="glyphicon glyphicon-cog"></i>
|
|
</a>
|
|
<ul class="dropdown-menu pull-right">
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="onlyUnread">
|
|
Only show unread
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label
|
|
<input type="checkbox" ng-model="notimestamp">
|
|
Hide timestamps
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="noembed">
|
|
Hide embedded content by default
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="hotlistsync">
|
|
Sync hotlist with WeeChat
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="nonicklist">
|
|
Hide nicklist
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="orderbyserver">
|
|
Order channels by server
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
<li>
|
|
<form class="form-inline" role="form">
|
|
<div class="checkbox">
|
|
<label>
|
|
<input type="checkbox" ng-model="debugMode">
|
|
Debug Mode
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<a ng-click="disconnect()" title="Disconnect from WeeChat">
|
|
<i class="glyphicon glyphicon-remove"></i>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div bindonce id="sidebar" class="vertical-line collapse in">
|
|
<ul class="nav nav-pills nav-stacked" ng-class="{'indented': (predicate === 'serverSortKey')}">
|
|
<li class="bufferfilter">
|
|
<form role="form">
|
|
<input class="form-control monospace" type="text" id="bufferFilter" ng-model="search" ng-keydown="handleSearchBoxKey($event)" placeholder="Search">
|
|
</form>
|
|
</li>
|
|
<li class="buffer" ng-class="{'active': content.active, 'indent': content.indent }" ng-repeat="(key, content) in buffers | toArray | filter:{fullName:search} | filter:hasUnread | orderBy:predicate">
|
|
<a href="#/{{content.fullName}}" ng-click="setActiveBuffer(content.id)" title="{{ content.fullName }}">
|
|
<span class="badge pull-right" ng-hide="content.notification" ng-if="content.unread" ng-bind="content.unread"></span>
|
|
<span class="badge pull-right danger" ng-show="content.notification" ng-bind="content.notification"></span>
|
|
<span class="buffername">{{ content.shortName }}</span><span ng-hide="content.shortName">{{ content.fullName }}</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div bindonce id="sidebar" class="vertical-line collapse in">
|
|
<ul class="nav nav-pills nav-stacked" ng-class="{'indented': (predicate === 'serverSortKey')}">
|
|
<li class="bufferfilter">
|
|
<form role="form">
|
|
<input class="form-control monospace" type="text" id="bufferFilter" ng-model="search" ng-keydown="handleSearchBoxKey($event)" placeholder="Search">
|
|
</form>
|
|
</li>
|
|
<li class="buffer" ng-class="{'active': content.active, 'indent': content.indent }" ng-repeat="(key, content) in buffers | toArray | filter:{fullName:search} | filter:hasUnread | orderBy:predicate">
|
|
<a href="#" ng-click="setActiveBuffer(content.id)" title="{{ content.fullName }}">
|
|
<span class="badge pull-right" ng-hide="content.notification" ng-if="content.unread" ng-bind="content.unread"></span>
|
|
<span class="badge pull-right danger" ng-show="content.notification" ng-bind="content.notification"></span>
|
|
<span class="buffername">{{ content.shortName }}</span><span ng-hide="content.shortName">{{ content.fullName }}</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div bindonce id="bufferlines" class="monospace" ng-class="{'withnicklist': showNicklist}">
|
|
<div id="nicklist" ng-show="showNicklist" class="vertical-line-left">
|
|
<ul class="nicklistgroup list-unstyled" ng-repeat="group in activeBuffer().nicklist">
|
|
<li ng-repeat="nick in group.nicks|orderBy:'name'" ng-click="openBuffer(nick.name)">
|
|
<a ng-click="nickAction(nick)"><span bo-class="nick.prefixClasses" bo-text="nick.prefix"></span><span bo-class="nick.nameClasses" bo-text="nick.name"></span></a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<table ng-class="{'notimestamp':notimestamp}">
|
|
<tbody>
|
|
<tr class="bufferline">
|
|
<td class="time"><span class="date"> </span></td>
|
|
<td class="prefix"> </td>
|
|
<td class="message">
|
|
<a class="fetchmorelines" ng-click="fetchMoreLines()" ng-hide="loadingLines">Fetch more lines</a>
|
|
<span ng-show="loadingLines">Fetching more lines...</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody ng-repeat="bufferline in (bufferlines = activeBuffer().lines)">
|
|
<tr class="bufferline">
|
|
<td class="time">
|
|
<span class="date" bo-class="{'repeated-time': bufferline.shortTime==bufferlines[$index-1].shortTime}">
|
|
<span class="cof-chat_time cob-chat_time coa-chat_time" bo-text="bufferline.date|date:'HH'"></span><span class="cof-chat_time_delimiters cob-chat_time_delimiters coa-chat_time_delimiters">:</span><span class="cof-chat_time cob-chat_time coa-chat_time" bo-text="bufferline.date|date:'mm'"></span>
|
|
</span>
|
|
</td>
|
|
<td class="prefix"><span ng-repeat="part in bufferline.prefix" bo-class="part.classes" bo-html="part.text"></span></td>
|
|
<td class="message">
|
|
<div ng-repeat="metadata in bufferline.metadata">
|
|
<div plugin data="metadata"></div>
|
|
</div>
|
|
<span ng-repeat="part in bufferline.content" class="text" bo-class="part.classes" bo-html="part.text|irclinky:'_blank'"></span>
|
|
</td>
|
|
</tr>
|
|
<tr class="readmarker" ng-if="activeBuffer().lastSeen==$index">
|
|
<td colspan="3">
|
|
<hr id="readmarker">
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="push"></div>
|
|
</div>
|
|
<div id="footer" ng-show="connected">
|
|
<div class="navbar navbar-inverse navbar-fixed-bottom" ng-class="{'withnicklist': showNicklist}">
|
|
<div input-bar></div>
|
|
</div>
|
|
|