diff --git a/bigbluebutton-html5/imports/ui/components/presentation/service.js b/bigbluebutton-html5/imports/ui/components/presentation/service.js index 1f9ca6ed7a9e6a99f3093f1f9646f72a8409f7e2..dab726751d83343b1ecbdb27e94853531d0e4798 100755 --- a/bigbluebutton-html5/imports/ui/components/presentation/service.js +++ b/bigbluebutton-html5/imports/ui/components/presentation/service.js @@ -77,7 +77,7 @@ const parseCurrentSlideContent = (yesValue, noValue, abstentionValue, trueValue, const quickPollOptions = []; if (!currentSlide) return quickPollOptions; - const { + let { content, } = currentSlide; @@ -85,18 +85,6 @@ const parseCurrentSlideContent = (yesValue, noValue, abstentionValue, trueValue, let optionsPoll = content.match(pollRegex) || []; if (optionsPoll) optionsPoll = optionsPoll.map(opt => `\r${opt[0]}.`); - const ynPollString = `(${yesValue}\\s*\\/\\s*${noValue})|(${noValue}\\s*\\/\\s*${yesValue})`; - const ynOptionsRegex = new RegExp(ynPollString, 'gi'); - const ynPoll = content.match(ynOptionsRegex) || []; - - const ynaPollString = `(${yesValue}\\s*\\/\\s*${noValue}\\s*\\/\\s*${abstentionValue})|(${yesValue}\\s*\\/\\s*${abstentionValue}\\s*\\/\\s*${noValue})|(${abstentionValue}\\s*\\/\\s*${yesValue}\\s*\\/\\s*${noValue})|(${abstentionValue}\\s*\\/\\s*${noValue}\\s*\\/\\s*${yesValue})|(${noValue}\\s*\\/\\s*${yesValue}\\s*\\/\\s*${abstentionValue})|(${noValue}\\s*\\/\\s*${abstentionValue}\\s*\\/\\s*${yesValue})`; - const ynaOptionsRegex = new RegExp(ynaPollString, 'gi'); - const ynaPoll = content.match(ynaOptionsRegex) || []; - - const tfPollString = `(${trueValue}\\s*\\/\\s*${falseValue})|(${falseValue}\\s*\\/\\s*${trueValue})`; - const tgOptionsRegex = new RegExp(tfPollString, 'gi'); - const tfPoll = content.match(tgOptionsRegex) || []; - optionsPoll.reduce((acc, currentValue) => { const lastElement = acc[acc.length - 1]; @@ -137,6 +125,22 @@ const parseCurrentSlideContent = (yesValue, noValue, abstentionValue, trueValue, poll, })); + if (quickPollOptions.length > 0) { + content = content.replace(new RegExp(pollRegex), ''); + } + + const ynPollString = `(${yesValue}\\s*\\/\\s*${noValue})|(${noValue}\\s*\\/\\s*${yesValue})`; + const ynOptionsRegex = new RegExp(ynPollString, 'gi'); + const ynPoll = content.match(ynOptionsRegex) || []; + + const ynaPollString = `(${yesValue}\\s*\\/\\s*${noValue}\\s*\\/\\s*${abstentionValue})|(${yesValue}\\s*\\/\\s*${abstentionValue}\\s*\\/\\s*${noValue})|(${abstentionValue}\\s*\\/\\s*${yesValue}\\s*\\/\\s*${noValue})|(${abstentionValue}\\s*\\/\\s*${noValue}\\s*\\/\\s*${yesValue})|(${noValue}\\s*\\/\\s*${yesValue}\\s*\\/\\s*${abstentionValue})|(${noValue}\\s*\\/\\s*${abstentionValue}\\s*\\/\\s*${yesValue})`; + const ynaOptionsRegex = new RegExp(ynaPollString, 'gi'); + const ynaPoll = content.match(ynaOptionsRegex) || []; + + const tfPollString = `(${trueValue}\\s*\\/\\s*${falseValue})|(${falseValue}\\s*\\/\\s*${trueValue})`; + const tgOptionsRegex = new RegExp(tfPollString, 'gi'); + const tfPoll = content.match(tgOptionsRegex) || []; + ynPoll.forEach(poll => quickPollOptions.push({ type: 'YN', poll,