Merge pull request #129 from taigaio/bug/1483/wysiwyg-lists

fix issue #1483: wysiwyg lists error
stable
David Barragán Merino 2014-10-29 16:46:03 +01:00
commit ce702797d4
1 changed files with 17 additions and 5 deletions

View File

@ -96,18 +96,24 @@ tgMarkitupDirective = ($rootscope, $rs, $tr) ->
onEnter: onEnter:
keepDefault: false keepDefault: false
replaceWith: (data) => replaceWith: (data) =>
lines = data.textarea.value[0..(data.caretPosition - 1)].split("\n") lines = data.textarea.value.split("\n")
lastLine = lines[lines.length - 1] cursorLine = data.textarea.value[0..(data.caretPosition - 1)].split("\n").length
newLineContent = data.textarea.value[data.caretPosition..].split("\n")[0]
lastLine = lines[cursorLine - 1]
# unordered list - # unordered list -
match = lastLine.match /^(\s*- ).*/ match = lastLine.match /^(\s*- ).*/
if match if match
emptyListItem = lastLine.match /^(\s*)\-\s$/ emptyListItem = lastLine.match /^(\s*)\-\s$/
if emptyListItem if emptyListItem
markdownCaretPositon = removeEmptyLine(data.textarea, lines.length - 1, data.caretPosition) markdownCaretPositon = removeEmptyLine(data.textarea, lines.length - 1, data.caretPosition)
else else
return "\n#{match[1]}" if match breakLineAtBeginning = newLineContent.match /^(\s*)\-\s/
if !breakLineAtBeginning
return "\n#{match[1]}" if match
# unordered list * # unordered list *
match = lastLine.match /^(\s*\* ).*/ match = lastLine.match /^(\s*\* ).*/
@ -118,7 +124,10 @@ tgMarkitupDirective = ($rootscope, $rs, $tr) ->
if emptyListItem if emptyListItem
markdownCaretPositon = removeEmptyLine(data.textarea, lines.length - 1, data.caretPosition) markdownCaretPositon = removeEmptyLine(data.textarea, lines.length - 1, data.caretPosition)
else else
return "\n#{match[1]}" if match breakLineAtBeginning = newLineContent.match /^(\s*)\*\s/
if !breakLineAtBeginning
return "\n#{match[1]}" if match
# ordered list # ordered list
match = lastLine.match /^(\s*)(\d+)\.\s/ match = lastLine.match /^(\s*)(\d+)\.\s/
@ -129,7 +138,10 @@ tgMarkitupDirective = ($rootscope, $rs, $tr) ->
if emptyListItem if emptyListItem
markdownCaretPositon = removeEmptyLine(data.textarea, lines.length - 1, data.caretPosition) markdownCaretPositon = removeEmptyLine(data.textarea, lines.length - 1, data.caretPosition)
else else
return "\n#{match[1] + (parseInt(match[2], 10) + 1)}. " breakLineAtBeginning = newLineContent.match /^(\s*)(\d+)\.\s/
if !breakLineAtBeginning
return "\n#{match[1] + (parseInt(match[2], 10) + 1)}. "
return "\n" return "\n"