From 5da0423603b1e54005414a60814d87a3328ee72e Mon Sep 17 00:00:00 2001 From: Janne Koschinski <janne@kuschku.de> Date: Sat, 3 Mar 2018 15:18:23 +0100 Subject: [PATCH] Properly format actions and notices --- database/backends/PostgresSmartBackend.php | 5 +++++ res/css/_content.sass | 23 +++++++++++++++++++++- res/css/search.css | 13 ++++++++++++ res/js/component/app.js | 10 +++++----- res/js/component/app.jsx | 10 +++++----- res/js/component/message.js | 10 ++++++++-- res/js/component/message.jsx | 11 +++++++++-- 7 files changed, 67 insertions(+), 15 deletions(-) diff --git a/database/backends/PostgresSmartBackend.php b/database/backends/PostgresSmartBackend.php index 451c39b..7c825c9 100644 --- a/database/backends/PostgresSmartBackend.php +++ b/database/backends/PostgresSmartBackend.php @@ -39,6 +39,7 @@ class PostgresSmartBackend implements Backend ranked_messages.buffername, ranked_messages.networkname, ranked_messages.messageid, + ranked_messages.type, ranked_messages.time, ranked_messages.sender, ts_headline(replace(replace(ranked_messages.message, '<', '<'), '>', '>'), query, 'HighlightAll=TRUE') AS message @@ -64,6 +65,7 @@ class PostgresSmartBackend implements Backend buffer.buffername, buffer.networkid, backlog.senderid, + backlog.type, backlog.time, backlog.message, query, @@ -138,6 +140,7 @@ class PostgresSmartBackend implements Backend buffer.buffername, buffer.networkid, backlog.senderid, + backlog.type, backlog.time, backlog.message, query, @@ -199,6 +202,7 @@ class PostgresSmartBackend implements Backend backlog.bufferid, buffer.buffername, sender.sender, + backlog.type, backlog.time, network.networkname, replace(replace(replace(backlog.message, '&', '&'), '<', '<'), '>', '>') AS message @@ -222,6 +226,7 @@ class PostgresSmartBackend implements Backend backlog.bufferid, buffer.buffername, sender.sender, + backlog.type, backlog.time, network.networkname, replace(replace(replace(backlog.message, '&', '&'), '<', '<'), '>', '>') AS message diff --git a/res/css/_content.sass b/res/css/_content.sass index 93b6bfe..9e279a6 100644 --- a/res/css/_content.sass +++ b/res/css/_content.sass @@ -320,4 +320,25 @@ display: inline span - vertical-align: top \ No newline at end of file + vertical-align: top + &.action + .sender, .content + font-style: italic + + .sender + &:before + content: ' -*- ' + color: #1a237e + + .content + color: #1a237e + + &.notice + .content, .sender + color: #916409 + + .sender + &:before + content: '[' + &:after + content: ']' \ No newline at end of file diff --git a/res/css/search.css b/res/css/search.css index 03156aa..b08e97f 100644 --- a/res/css/search.css +++ b/res/css/search.css @@ -1188,3 +1188,16 @@ body { display: inline; } .results .buffer .container .context .message .container .content span { vertical-align: top; } } + .results .buffer .container .context .message.action .sender, .results .buffer .container .context .message.action .content { + font-style: italic; } + .results .buffer .container .context .message.action .sender:before { + content: ' -*- '; + color: #1a237e; } + .results .buffer .container .context .message.action .content { + color: #1a237e; } + .results .buffer .container .context .message.notice .content, .results .buffer .container .context .message.notice .sender { + color: #916409; } + .results .buffer .container .context .message.notice .sender:before { + content: '['; } + .results .buffer .container .context .message.notice .sender:after { + content: ']'; } diff --git a/res/js/component/app.js b/res/js/component/app.js index 457a45e..d56ee1c 100644 --- a/res/js/component/app.js +++ b/res/js/component/app.js @@ -45,7 +45,7 @@ class App { return; this.buffers = result.map(buffer => { return new Buffer(buffer.bufferid, buffer.buffername, buffer.networkname, buffer.hasmore, buffer.messages.map(msg => { - return new Context(new Message(msg.messageid, msg.time, msg.sender, msg.message, true)); + return new Context(new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message, true)); })); }); this.buffers.forEach(buffer => this.insert(buffer)); @@ -99,7 +99,7 @@ class App { after: 0, before: 10 })).then(result => { - context.loadBefore(result.map(msg => new Message(msg.messageid, msg.time, msg.sender, msg.message))); + context.loadBefore(result.map(msg => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); context.setLoading(false); }); } @@ -113,7 +113,7 @@ class App { after: 10, before: 0 })).then(result => { - context.loadAfter(result.map(msg => new Message(msg.messageid, msg.time, msg.sender, msg.message))); + context.loadAfter(result.map(msg => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); context.setLoading(false); }); } @@ -129,8 +129,8 @@ class App { })).then(result => { const before = result.filter(msg => msg.messageid < context.anchorBefore); const after = result.filter(msg => msg.messageid > context.anchorAfter); - context.loadBefore(before.map(msg => new Message(msg.messageid, msg.time, msg.sender, msg.message))); - context.loadAfter(after.map(msg => new Message(msg.messageid, msg.time, msg.sender, msg.message))); + context.loadBefore(before.map(msg => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); + context.loadAfter(after.map(msg => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); context.setLoading(false); }); } diff --git a/res/js/component/app.jsx b/res/js/component/app.jsx index bc70e02..115694d 100644 --- a/res/js/component/app.jsx +++ b/res/js/component/app.jsx @@ -49,7 +49,7 @@ class App { this.buffers = result.map((buffer) => { return new Buffer(buffer.bufferid, buffer.buffername, buffer.networkname, buffer.hasmore, buffer.messages.map((msg) => { - return new Context(new Message(msg.messageid, msg.time, msg.sender, msg.message, true)); + return new Context(new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message, true)); })); }); this.buffers.forEach((buffer) => this.insert(buffer)); @@ -107,7 +107,7 @@ class App { after: 0, before: 10 })).then((result) => { - context.loadBefore(result.map((msg) => new Message(msg.messageid, msg.time, msg.sender, msg.message))); + context.loadBefore(result.map((msg) => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); context.setLoading(false); }); } @@ -123,7 +123,7 @@ class App { after: 10, before: 0 })).then((result) => { - context.loadAfter(result.map((msg) => new Message(msg.messageid, msg.time, msg.sender, msg.message))); + context.loadAfter(result.map((msg) => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); context.setLoading(false); }); } @@ -142,8 +142,8 @@ class App { const before = result.filter((msg) => msg.messageid < context.anchorBefore); const after = result.filter((msg) => msg.messageid > context.anchorAfter); - context.loadBefore(before.map((msg) => new Message(msg.messageid, msg.time, msg.sender, msg.message))); - context.loadAfter(after.map((msg) => new Message(msg.messageid, msg.time, msg.sender, msg.message))); + context.loadBefore(before.map((msg) => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); + context.loadAfter(after.map((msg) => new Message(msg.messageid, msg.type, msg.time, msg.sender, msg.message))); context.setLoading(false); }); } diff --git a/res/js/component/message.js b/res/js/component/message.js index c6c33a1..c8501ca 100644 --- a/res/js/component/message.js +++ b/res/js/component/message.js @@ -1,7 +1,8 @@ class Message extends Component { - constructor(id, time, sender, content, isAnchor) { + constructor(id, type, time, sender, content, isAnchor) { super(); this.id = id; + this.type = type; this.time = time; this.sender = sender; this.content = content; @@ -9,9 +10,14 @@ class Message extends Component { this.render(); } render() { + const classes = ['message']; + if ((this.type & 2) !== 0) + classes.push('notice'); + if ((this.type & 4) !== 0) + classes.push('action'); return this.elem = function () { var $$a = document.createElement('span'); - $$a.setAttribute('class', 'message'); + $$a.setAttribute('class', classes.join(' ')); var $$b = document.createElement('span'); $$a.appendChild($$b); var $$c = document.createElement('time'); diff --git a/res/js/component/message.jsx b/res/js/component/message.jsx index bb03d6a..cfad04c 100644 --- a/res/js/component/message.jsx +++ b/res/js/component/message.jsx @@ -1,8 +1,9 @@ class Message extends Component { - constructor(id, time, sender, content, isAnchor) { + constructor(id, type, time, sender, content, isAnchor) { super(); this.id = id; + this.type = type; this.time = time; this.sender = sender; this.content = content; @@ -12,8 +13,14 @@ class Message extends Component { } render() { + const classes = ["message"]; + if ((this.type & 0x00000002) !== 0) + classes.push("notice"); + if ((this.type & 0x00000004) !== 0) + classes.push("action"); + return this.elem = ( - <span className="message"> + <span className={classes.join(" ")}> <span><time>{this.formatTime()}</time></span> <span className="container"> <span className="sender" data-sendercolor={SenderColorHandler.nickToColor(this.getNick())}> -- GitLab