mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 06:51:27 +08:00
correct bug where only a single poll per topic worked
This commit is contained in:
@ -44,8 +44,18 @@ function getHelpText(count, min, max) {
|
||||
|
||||
function replaceToken(tokens, target, list) {
|
||||
let pos = tokens.indexOf(target);
|
||||
let level = tokens[pos].level;
|
||||
|
||||
tokens.splice(pos, 1, ...list);
|
||||
list[0].map = target.map;
|
||||
|
||||
// resequence levels
|
||||
for(;pos<tokens.length;pos++) {
|
||||
let nesting = tokens[pos].nesting;
|
||||
if (nesting < 0) { level--; }
|
||||
tokens[pos].level = level;
|
||||
if (nesting > 0) { level++; }
|
||||
}
|
||||
}
|
||||
|
||||
// analyzes the block to that we have poll options
|
||||
@ -105,6 +115,9 @@ const rule = {
|
||||
after: function(state, openToken, md, raw) {
|
||||
|
||||
let items = getListItems(state.tokens, openToken);
|
||||
if (!items) {
|
||||
return invalidPoll(state, raw);
|
||||
}
|
||||
|
||||
const attrs = openToken.bbcode_attrs;
|
||||
|
||||
@ -190,6 +203,10 @@ const rule = {
|
||||
|
||||
replaceToken(state.tokens, openToken, header);
|
||||
|
||||
// we got to correct the level on the state
|
||||
// we just resequenced
|
||||
state.level = state.tokens[state.tokens.length-1].level;
|
||||
|
||||
state.push('poll_close', 'div', -1);
|
||||
|
||||
token = state.push('poll_open', 'div', 1);
|
||||
|
Reference in New Issue
Block a user