- {this.renderWhiteboard()}
+
+
+
+ {this.renderWhiteboard()}
+
+
+
);
}
diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/shapes/poll/component.jsx b/bigbluebutton-html5/imports/ui/components/whiteboard/shapes/poll/component.jsx
index 025a3cbb1e..d5490c1e6d 100755
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/shapes/poll/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/shapes/poll/component.jsx
@@ -77,13 +77,13 @@ export default class PollDrawComponent extends React.Component {
//counting the total number of votes, finding the biggest number of votes
this.props.shape.result.reduce(function (previousValue, currentValue, currentIndex, array) {
- votesTotal += currentValue.num_votes;
+ votesTotal = previousValue + currentValue.num_votes;
if (maxNumVotes < currentValue.num_votes) {
maxNumVotes = currentValue.num_votes;
}
return votesTotal;
- });
+ }, 0);
//filling the textArray with data to display
//adding value of the iterator to each line needed to create unique
diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/slide/component.jsx b/bigbluebutton-html5/imports/ui/components/whiteboard/slide/component.jsx
index 7fdf4f51a6..7df77561ce 100755
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/slide/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/slide/component.jsx
@@ -12,9 +12,9 @@ export default class Slide extends React.Component {
+ strokeWidth="0.8"
+ >
: null }
diff --git a/bigbluebutton-html5/imports/ui/components/whiteboard/styles.scss b/bigbluebutton-html5/imports/ui/components/whiteboard/styles.scss
index f8306530f0..b720efc78b 100755
--- a/bigbluebutton-html5/imports/ui/components/whiteboard/styles.scss
+++ b/bigbluebutton-html5/imports/ui/components/whiteboard/styles.scss
@@ -32,3 +32,18 @@
max-width: 100%;
max-height: 100%;
}
+
+.whiteboardContainer {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ width: 100%;
+}
+
+.whiteboardWrapper {
+ order: 1;
+ width: 100%;
+ height: 100%;
+ display: block;
+ position: relative;
+}
diff --git a/bigbluebutton-html5/imports/ui/services/unread-messages/index.js b/bigbluebutton-html5/imports/ui/services/unread-messages/index.js
index af5393eac2..65461aefb1 100644
--- a/bigbluebutton-html5/imports/ui/services/unread-messages/index.js
+++ b/bigbluebutton-html5/imports/ui/services/unread-messages/index.js
@@ -2,6 +2,7 @@ import Storage from '/imports/ui/services/storage/session';
import Auth from '/imports/ui/services/auth';
import Chats from '/imports/api/chat';
+const PUBLIC_CHAT_USERID = 'public_chat_userid';
const STORAGE_KEY = 'UNREAD_CHATS';
const get = (chatID) => {
@@ -20,18 +21,27 @@ const update = (chatID, timestamp = 0) => {
return unreadChats[chatID];
};
-const count = (chatID) => Chats.find({
+const count = (chatID) => {
+ let filter = {
'message.from_time': {
$gt: get(chatID),
},
'message.from_userid': { $ne: Auth.getUser() },
- $or: [
- { 'message.to_userid': chatID },
- { 'message.from_userid': chatID },
- ],
- }).count();
+ };
+
+ // Minimongo does not support $eq. See https://github.com/meteor/meteor/issues/4142
+ if (chatID === PUBLIC_CHAT_USERID) {
+ filter['message.to_userid'] = { $not: { $ne: chatID } };
+ } else {
+ filter['message.to_userid'] = { $not: { $ne: Auth.getUser() } };
+ filter['message.from_userid'].$not = { $ne: chatID };
+ }
+
+ return Chats.find(filter).count();
+};
export default {
+ get,
count,
update,
};
diff --git a/bigbluebutton-html5/package.json b/bigbluebutton-html5/package.json
index f1c956f5ed..edebb57565 100755
--- a/bigbluebutton-html5/package.json
+++ b/bigbluebutton-html5/package.json
@@ -12,16 +12,17 @@
"classnames": "^2.2.3",
"history": "^2.1.1",
"meteor-node-stubs": "^0.2.3",
- "react": "^15.0.1",
- "react-addons-pure-render-mixin": "^15.0.1",
- "react-dom": "^15.0.1",
+ "react": "~15.2.0",
+ "react-addons-pure-render-mixin": "~15.2.0",
+ "react-dom": "~15.2.0",
"image-size": "~0.5.0",
- "react-intl": "^2.1.2",
- "react-modal": "^1.2.1",
- "react-router": "^2.4.0",
- "react-addons-css-transition-group": "^15.1.0",
+ "react-intl": "~2.1.3",
+ "react-modal": "~1.4.0",
+ "react-router": "~2.5.2",
+ "react-addons-css-transition-group": "~15.2.0",
"underscore": "~1.8.3",
- "react-autosize-textarea": "~0.3.1"
+ "react-autosize-textarea": "~0.3.1",
+ "grunt-cli": "~1.2.0"
},
"devDependencies": {
"autoprefixer": "^6.3.6",
@@ -34,11 +35,23 @@
"grunt-shell": "~1.2.1",
"jscs": "~2.11.0",
"load-grunt-tasks": "~3.4.1",
- "grunt-newer": "~1.2.0"
+ "grunt-newer": "~1.2.0",
+ "postcss-modules-extract-imports": "1.0.0",
+ "postcss-modules-local-by-default": "1.0.0",
+ "postcss-modules-scope": "1.0.0",
+ "postcss-modules-values": "1.1.1",
+ "postcss-nested": "1.0.0"
},
"cssModules": {
"extensions": [
"scss"
- ]
+ ],
+ "postcssPlugins": {
+ "postcss-nested": {},
+ "postcss-modules-local-by-default": {},
+ "postcss-modules-extract-imports": {},
+ "postcss-modules-scope": {},
+ "autoprefixer": {}
+ }
}
}