X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/bfe5bad51099e5b0103830396dbdef19538551a6..005a9da6b746b6191c1682b1c67f3a25cb2174a0:/redakcja/static/js/wiki/view_editor_wysiwyg.js diff --git a/redakcja/static/js/wiki/view_editor_wysiwyg.js b/redakcja/static/js/wiki/view_editor_wysiwyg.js index 23abde02..cb7c40f8 100644 --- a/redakcja/static/js/wiki/view_editor_wysiwyg.js +++ b/redakcja/static/js/wiki/view_editor_wysiwyg.js @@ -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){