diff --git a/.meteor/packages b/.meteor/packages index 45350fa2..30302810 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -47,3 +47,4 @@ reactive-var juliancwirko:s-alert panter:qrcode pascoual:pdfkit +yuukan:streamy diff --git a/.meteor/versions b/.meteor/versions index 22aed708..7745add7 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -124,3 +124,4 @@ vazco:universe-html-purifier@1.2.3 webapp@1.3.11 webapp-hashing@1.0.9 xolvio:cleaner@0.3.1 +yuukan:streamy@1.4.1 diff --git a/client/views/helpers/chunks/question_div/question_div.html b/client/views/helpers/chunks/question_div/question_div.html index cbf85c59..2efb739e 100644 --- a/client/views/helpers/chunks/question_div/question_div.html +++ b/client/views/helpers/chunks/question_div/question_div.html @@ -60,6 +60,11 @@ {{/if}} + {{#if adminButtons}} +
+ +
+ {{/if}}
{{#if poster}} diff --git a/client/views/helpers/chunks/question_div/question_div.js b/client/views/helpers/chunks/question_div/question_div.js index fd5e8f3b..3fd8026e 100644 --- a/client/views/helpers/chunks/question_div/question_div.js +++ b/client/views/helpers/chunks/question_div/question_div.js @@ -1,5 +1,13 @@ import { Votes, Answers, Instances, Questions } from '/lib/common.js'; +Streamy.on('emphasize', function(data, s) { + $(`#${data.id}`).find('p.questiontext').css('background-color', 'yellow'); +}); + +Streamy.on('de-emphasize', function(data, s) { + $(`#${data.id}`).find('p.questiontext').css('background-color', ''); +}); + Template.question_div.onCreated(function () { this.replyCount = new ReactiveVar(0); }); @@ -101,4 +109,13 @@ Template.question_div.events({ const parentNode = document.getElementById('nav'); popoverTemplate = Blaze.renderWithData(Template.modify, template.data._id, parentNode); }, + 'change .remote-highlight': function(event, template) { + const currInstance = Instances.findOne({ _id: template.data.instanceid }); + let id = event.currentTarget.parentElement.parentElement.id; + if (event.target.checked === true) { + Meteor.call('emphasize', id, template.data.instanceid); + } else { + Meteor.call('deEmphasize', id, template.data.instanceid); + } + } }); diff --git a/client/views/helpers/chunks/question_div/question_div.scss b/client/views/helpers/chunks/question_div/question_div.scss index 1e553660..96c469d4 100644 --- a/client/views/helpers/chunks/question_div/question_div.scss +++ b/client/views/helpers/chunks/question_div/question_div.scss @@ -390,3 +390,24 @@ $popular-question-color: #f1c40f; font-weight: 600; color: #777!important; } + +.remote-highlight:hover, input[type='checkbox'] { + cursor: pointer; +} + +.remote-highlight { + display: block; + padding-left: 15px; + text-indent: -15px; +} + +.remote-highlight > input { + width: 13px; + height: 13px; + padding: 0; + margin:0; + vertical-align: bottom; + position: relative; + top: -1px; + overflow: hidden; +} diff --git a/server/methods.js b/server/methods.js index d550796d..8779b6e8 100644 --- a/server/methods.js +++ b/server/methods.js @@ -759,5 +759,19 @@ Meteor.methods({ } console.log("OK"); return true; + }, + emphasize(divId, instanceId) { + let currUser = Meteor.users.findOne({ _id: this.userId }); + let currInstance = Instances.findOne({ _id: instanceId }); + if (currInstance.admin === currUser.emails[0].address) { + Streamy.broadcast('emphasize', { id: divId }); + } + }, + deEmphasize(divId, instanceId) { + let currUser = Meteor.users.findOne({ _id: this.userId }); + let currInstance = Instances.findOne({ _id: instanceId }); + if (currInstance.admin === currUser.emails[0].address) { + Streamy.broadcast('de-emphasize', { id: divId }); + } } });