From e5c29a9bec48743dc49474518b457ec1f98630fe Mon Sep 17 00:00:00 2001
From: Oswaldo Acauan <oswaldoacauan@gmail.com>
Date: Mon, 15 Aug 2016 19:25:36 +0000
Subject: [PATCH] Change operations order to prevent currentSlide being
 undefined

---
 .../server/modifiers/displayThisSlide.js      | 22 +++++++++++--------
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/bigbluebutton-html5/imports/api/slides/server/modifiers/displayThisSlide.js b/bigbluebutton-html5/imports/api/slides/server/modifiers/displayThisSlide.js
index ad8bed79e6..6d198ee835 100755
--- a/bigbluebutton-html5/imports/api/slides/server/modifiers/displayThisSlide.js
+++ b/bigbluebutton-html5/imports/api/slides/server/modifiers/displayThisSlide.js
@@ -5,21 +5,18 @@ export function displayThisSlide(meetingId, newSlideId, slideObject) {
   // grab the presentationId part of the slideId
   const presentationId = newSlideId.split('/')[0];
 
-  // change current to false for the old slide
-  Slides.update({
+  let currentSlide = Slides.findOne({
     presentationId: presentationId,
     'slide.current': true,
-  }, {
-    $set: {
-      'slide.current': false,
-    },
   });
 
-  //change current to true for the new slide and update its ratios and offsets
-  Slides.update({
+  let newSlide = Slides.findOne({
     presentationId: presentationId,
     'slide.id': newSlideId,
-  }, {
+  });
+
+  // first update the new slide as current and update its ratios/offsets
+  Slides.update(newSlide._id, {
     $set: {
       'slide.current': true,
       'slide.height_ratio': slideObject.height_ratio,
@@ -28,4 +25,11 @@ export function displayThisSlide(meetingId, newSlideId, slideObject) {
       'slide.y_offset': slideObject.y_offset,
     },
   });
+
+  // change current to false for the old slide after update the new one
+  Slides.update(currentSlide._id, {
+    $set: {
+      'slide.current': false,
+    },
+  });
 };
-- 
GitLab