@ -19,12 +19,12 @@
< link rel = "shortcut icon" type = "image/png" href = "assets/img/favicon.png" >
< link rel = "shortcut icon" type = "image/png" href = "assets/img/favicon.png" >
< link href = "css/glowingbear.css" rel = "stylesheet" media = "screen" >
< link href = "css/glowingbear.css" rel = "stylesheet" media = "screen" >
< link href = "css/themes/dark.css" rel = "stylesheet" media = "screen" id = "themeCSS" / >
< link href = "css/themes/dark.css" rel = "stylesheet" media = "screen" id = "themeCSS" / >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4 .8/angular.min.js" integrity = "sha384-r1y8TJcloKTvouxnYsi4PJAx+nHNr90ibsEn3zznzDzWBN9X3o3kbHLSgcIPtzAp " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5 .8/angular.min.js" integrity = "sha256-6Sr0HqNgUf/p88g6vsl87CrAnNqiOWhjlY6LS8jeWHA= " crossorigin = "anonymous" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4 .8/angular-route.min.js" integrity = "sha384-fQQcs0/yvL0uyyzpXoTKfcQl5e9GYh7GKIft35qSjfKXSILYNI6YZOM0Ju94DY+/ " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5 .8/angular-route.min.js" integrity = "sha256-cSGSOcFF66XhVJmkBJLDSHDSYEd32PmWU4Wpc+0oRXk= " crossorigin = "anonymous" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4 .8/angular-sanitize.min.js" integrity = "sha384-79uolbJAcWnfqb2Oi/w0fEz2NdE5lvY1p+TSew6D3XC7PlZY1OGuvGBiwjZhFvOg " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5 .8/angular-sanitize.min.js" integrity = "sha256-ofQzChnxWn2oMUL1tJeGxH4WabrFcHbgIecUgUpTI48= " crossorigin = "anonymous" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4 .8/angular-touch.min.js" integrity = "sha384-bnrVwYH8/uQCvK9n+xYQKdf1xtgSNHBYcy0djCofRUPvAt93iEhBfHlngRP/aXsg " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5 .8/angular-touch.min.js" integrity = "sha256-8PhLTPxH6rn7uJ36c6Oe0Io10mU70IJRvP+zq/sxSg8= " crossorigin = "anonymous" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0 /underscore-min.js" integrity = "sha384-nXjwhL1LfWUDVHxQ2R0rHpbr/E6lfCFXR4kfcPHp1eLGH1dH/mZohGINd44EzEya " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3 /underscore-min.js" integrity = "sha256-obZACiHd7gkOk9iIL/pimWMTJ4W/pBsKu+oZnSeBIek= " crossorigin = "anonymous" > < / script >
< script src = "https://cdnjs.cloudflare.com/ajax/libs/emojione/2.1.0 /lib/js/emojione.min.js" integrity = "sha384-pJb7FFLYTcgO7KbgirAXNIHFIKzywqq4LIcWx9cavPapYWdCH5mcYptrkpHHEkH1 " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/emojione/2.2.6 /lib/js/emojione.min.js" integrity = "sha256-r1QTE6OqyCP/xqQCml3O8jLnSm0/6DoIM473m+VnLPM= " crossorigin = "anonymous" > < / script >
< script type = "text/javascript" src = "3rdparty/inflate.min.js" > < / script >
< script type = "text/javascript" src = "3rdparty/inflate.min.js" > < / script >
< script type = "text/javascript" src = "js/localstorage.js" > < / script >
< script type = "text/javascript" src = "js/localstorage.js" > < / script >
< script type = "text/javascript" src = "js/weechat.js" > < / script >
< script type = "text/javascript" src = "js/weechat.js" > < / script >
@ -46,7 +46,7 @@
< script type = "text/javascript" src = "js/models.js" > < / script >
< script type = "text/javascript" src = "js/models.js" > < / script >
< script type = "text/javascript" src = "js/plugins.js" > < / script >
< script type = "text/javascript" src = "js/plugins.js" > < / script >
< script type = "text/javascript" src = "js/imgur.js" > < / script >
< script type = "text/javascript" src = "js/imgur.js" > < / script >
< script type = "text/javascript" src = "3rdparty/favico-0.3.5 .min.js" > < / script >
< script type = "text/javascript" src = "3rdparty/favico-0.3.10 .min.js" > < / script >
< / head >
< / head >
< body ng-controller = "WeechatCtrl" ng-keydown = "handleKeyPress($event)" ng-keyup = "handleKeyRelease($event)" ng-keypress = "handleKeyPress($event)" ng-class = "{'no-overflow': connected}" ng-init = "init()" lang = "en-US" >
< body ng-controller = "WeechatCtrl" ng-keydown = "handleKeyPress($event)" ng-keyup = "handleKeyRelease($event)" ng-keypress = "handleKeyPress($event)" ng-class = "{'no-overflow': connected}" ng-init = "init()" lang = "en-US" >
< div class = "alert alert-danger upload-error" ng-show = "uploadError" >
< div class = "alert alert-danger upload-error" ng-show = "uploadError" >
@ -251,7 +251,7 @@ $ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out rel
< / div >
< / div >
< div class = "title" title = "{{activeBuffer().rtitle}}" >
< div class = "title" title = "{{activeBuffer().rtitle}}" >
< span class = "desktop" ng-repeat = "part in activeBuffer().title" ng-class = "::part.classes" ng-bind-html = "::(part.text | linky:'_blank' | DOMfilter:'irclinky')" > < / span >
< span class = "desktop" ng-repeat = "part in activeBuffer().title" ng-class = "::part.classes" ng-bind-html = "::(part.text | linky:'_blank':{rel:'noopener noreferrer'} | DOMfilter:'irclinky')" > < / span >
< span class = "mobile" ng-click = "showModal('topicModal')" ng-class = "{'active': activeBuffer().active, 'channel': activeBuffer().type === 'channel', 'channel_hash': activeBuffer().prefix === '#', 'channel_plus': activeBuffer().prefix === '+', 'channel_ampersand': activeBuffer().prefix === '&'}" > {{ activeBuffer().trimmedName || activeBuffer().fullName }}< / span >
< span class = "mobile" ng-click = "showModal('topicModal')" ng-class = "{'active': activeBuffer().active, 'channel': activeBuffer().type === 'channel', 'channel_hash': activeBuffer().prefix === '#', 'channel_plus': activeBuffer().prefix === '+', 'channel_ampersand': activeBuffer().prefix === '&'}" > {{ activeBuffer().trimmedName || activeBuffer().fullName }}< / span >
< / div >
< / div >
@ -317,7 +317,7 @@ $ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out rel
< td class = "prefix" > < span ng-class = "::{'repeated-prefix': bufferline.prefixtext==bufferlines[$index-1].prefixtext}" > < a ng-click = "addMention(bufferline.prefix)" > < span class = "hidden-bracket" > < < / span > < span ng-repeat = "part in ::bufferline.prefix" ng-class = "::part.classes" ng-bind = "::part.text|prefixlimit:25" > < / span > < span class = "hidden-bracket" > > < / span > < / a > < / span > < / td > <!--
< td class = "prefix" > < span ng-class = "::{'repeated-prefix': bufferline.prefixtext==bufferlines[$index-1].prefixtext}" > < a ng-click = "addMention(bufferline.prefix)" > < span class = "hidden-bracket" > < < / span > < span ng-repeat = "part in ::bufferline.prefix" ng-class = "::part.classes" ng-bind = "::part.text|prefixlimit:25" > < / span > < span class = "hidden-bracket" > > < / span > < / a > < / span > < / td > <!--
-->< td class = "message" > <!--
-->< td class = "message" > <!--
-->< div ng-repeat = "metadata in ::bufferline.metadata" plugin data = "::metadata" > < / div > <!--
-->< div ng-repeat = "metadata in ::bufferline.metadata" plugin data = "::metadata" > < / div > <!--
-->< span ng-repeat = "part in ::bufferline.content" class = "text" ng-class = "::part.classes.concat(['line-' + part.$$hashKey.replace(':','_')])" ng-bind-html = "::part.text | linky:'_blank' | DOMfilter:'irclinky' | DOMfilter:'emojify':settings.enableJSEmoji | DOMfilter:'inlinecolour' | DOMfilter:'latexmath':('.line-' + part.$$hashKey.replace(':','_')):settings.enableMathjax" > < / span >
-->< span ng-repeat = "part in ::bufferline.content" class = "text" ng-class = "::part.classes.concat(['line-' + part.$$hashKey.replace(':','_')])" ng-bind-html = "::part.text | linky:'_blank':{rel:'noopener noreferrer'} | DOMfilter:'irclinky' | DOMfilter:'emojify':settings.enableJSEmoji | DOMfilter:'inlinecolour' | DOMfilter:'latexmath':('.line-' + part.$$hashKey.replace(':','_')):settings.enableMathjax" > < / span >
< / td >
< / td >
< / tr >
< / tr >
< tr class = "readmarker" ng-if = "activeBuffer().lastSeen==$index" >
< tr class = "readmarker" ng-if = "activeBuffer().lastSeen==$index" >
@ -502,7 +502,7 @@ $ openssl req -nodes -newkey rsa:4096 -keyout relay.pem -x509 -days 365 -out rel
< div class = "modal-header" >
< div class = "modal-header" >
< button type = "button" class = "close" ng-click = "closeModal($event)" aria-hidden = "true" > × < / button >
< button type = "button" class = "close" ng-click = "closeModal($event)" aria-hidden = "true" > × < / button >
< h4 class = "modal-title" > Channel topic< / h4 >
< h4 class = "modal-title" > Channel topic< / h4 >
< p ng-repeat = "part in activeBuffer().title" ng-class = "::part.classes" ng-bind-html = "::(part.text | linky:'_blank' | DOMfilter:'irclinky')" > < / p >
< p ng-repeat = "part in activeBuffer().title" ng-class = "::part.classes" ng-bind-html = "::(part.text | linky:'_blank':{rel:'noopener noreferrer'} | DOMfilter:'irclinky')" > < / p >
< / div >
< / div >
< div class = "modal-footer" >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-primary" ng-click = "closeModal($event)" > Close< / button >
< button type = "button" class = "btn btn-primary" ng-click = "closeModal($event)" > Close< / button >