X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/77f5f5a80c712f09605140d215551ada7699834d..f4ef2a001a939444826ad0df962a814ba97e9185:/redakcja/static/js/wiki/view_editor_wysiwyg.js?ds=inline diff --git a/redakcja/static/js/wiki/view_editor_wysiwyg.js b/redakcja/static/js/wiki/view_editor_wysiwyg.js index ab0c9889..cb7c40f8 100644 --- a/redakcja/static/js/wiki/view_editor_wysiwyg.js +++ b/redakcja/static/js/wiki/view_editor_wysiwyg.js @@ -203,7 +203,7 @@ 'Ê','ê','Ë','ë','Ē','ē','Ě','ě','Ġ','ġ','Ħ','ħ','Í','í','Î','î', 'Ī','ī','Ĭ','ĭ','Ľ','ľ','Ñ','ñ','Ň','ň','Ó','ó','Ö','ö', 'Ô','ô','Ō','ō','Ǒ','ǒ','Œ','œ','Ø','ø','Ř','ř','Š', - 'š','Ş','ş','Ť','ť','Ţ','ţ','Ű','ű','Ú','ú', + 'š','Ş','ş','Ť','ť','Ţ','ţ','Ű','ű','Ú','ú','Ù','ù', 'Ü','ü','Ů','ů','Ū','ū','Û','û','Ŭ','ŭ', 'Ý','ý','Ž','ž','ß','Ð','ð','Þ','þ','А','а','Б', 'б','В','в','Г','г','Д','д','Е','е','Ё','ё','Ж', @@ -218,7 +218,7 @@ 'Τ','τ','Υ','υ','Φ','φ','Χ','χ','Ψ','ψ','Ω','ω','–', '—','¡','¿','$','¢','£','€','©','®','°','¹','²','³', '¼','½','¾','†','§','‰','•','←','↑','→','↓', - '„','”','„”','«','»','«»','’','[',']','~','|','−','·', + '„','”','„”','«','»','«»','»«','’','[',']','~','|','−','·', '×','÷','≈','≠','±','≤','≥','∈']; var tableContent = ""; @@ -257,7 +257,7 @@ // if we want to surround text with quotes // not sure if just check if value has length == 2 - if(insertVal == '„”' || insertVal == '«»'){ + if (insertVal.length == 2) { var startTag = insertVal[0]; var endTag = insertVal[1]; var textAreaOpened = editArea; @@ -348,6 +348,33 @@ txtarea.scrollTop = scrollPos; } + function getXNodeAttributes(node) { + var m = {} + $.map(node.attributes, function(attrNode) { + if (attrNode.nodeName.indexOf('data-wlf-') === 0) { + var n = attrNode.nodeName.substr(9); + var v = attrNode.nodeValue; + m[n] = v; + }; + }); + return m; + } + + function setXNodeAttributes(node, attrs) { + $.map(node.attributes, function(attrNode) { + var xName = attrNode.nodeName.substr(9); + if (attrNode.nodeName.indexOf('data-wlf-') === 0 + && xName in attrs) { + attrNode.nodeValue = attrs[xName]; + } + if (attrNode.nodeName.indexOf('x-attr-name-') === 0 + && attrNode.nodeValue in attrs) { + node.setAttribute('x-attr-value-' + attrNode.nodeName.substr("x-attr-name-".length), + attrs[attrNode.nodeValue]); + } + }); + } + /* open edition window for selected fragment */ function openForEdit($origin){ var $box = null @@ -376,7 +403,17 @@ } // start edition on this node - var $overlay = $('
').css({ + var $overlay = $('
'); + + $attributes = $('
') + + $.map(getXNodeAttributes($origin.get(0)), + function(v, n) { + $attributes.append(''); + }); + $overlay.append($attributes); + + $overlay.css({ position: 'absolute', height: h, left: x, @@ -459,6 +496,14 @@ else { $origin.html($(element).html()); } + /* Set attributres back to the node */ + var attrs = {}; + $(".html-editarea-attributes [name]") + .each(function(i, textField) { + attrs[textField.name] = textField.value; + }); + setXNodeAttributes($origin.get(0), attrs); + $overlay.remove(); }, error: function(text){ @@ -492,6 +537,12 @@ } else if(buttonName == "znak spec."){ addSymbol(); return false; + } else if (buttonName == "luka") { + startTag = ""; + endTag = ""; + } else if (buttonName == "zastąp") { + startTag = ""; + endTag = ""; } var myField = textAreaOpened; @@ -637,7 +688,8 @@ return _finalize(failure); html2text({ - element: $('#html-view div').get(0), + element: $('#html-view').get(0), + stripOuter: true, success: function(text){ self.doc.setText(text); _finalize(success);