X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/df341bdd09208d2b0f84060454cc0000df19deba..22121e7b8f5b96e2a174bfb623adac3f3a4cbab9:/src/redakcja/static/js/wiki/view_editor_wysiwyg.js diff --git a/src/redakcja/static/js/wiki/view_editor_wysiwyg.js b/src/redakcja/static/js/wiki/view_editor_wysiwyg.js index f056edc9..517c878e 100644 --- a/src/redakcja/static/js/wiki/view_editor_wysiwyg.js +++ b/src/redakcja/static/js/wiki/view_editor_wysiwyg.js @@ -110,6 +110,50 @@ } + function addReference(){ + var selection = window.getSelection(); + var n = selection.rangeCount; + + if (n == 0) { + window.alert("Nie zaznaczono żadnego obszaru"); + return false; + } + + // for now allow only 1 range + if (n > 1) { + window.alert("Zaznacz jeden obszar"); + return false; + } + + // remember the selected range + var range = selection.getRangeAt(0); + + if (!verifyTagInsertPoint(range.endContainer)) { + window.alert("Nie można wstawić w to miejsce przypisu."); + return false; + } + + var tag = $(''); + range.collapse(false); + range.insertNode(tag[0]); + + xml2html({ + xml: '', + success: function(text){ + var t = $(text); + tag.replaceWith(t); + openForEdit(t); + }, + error: function(){ + tag.remove(); + alert('Błąd przy dodawaniu referncji:' + errors); + } + }) + } + + + + /* Insert theme using current selection */ function addTheme(){ @@ -386,6 +430,15 @@ x = 100; } } + if ($origin.is('.reference-inline-box')) { + w = 400; + h = 32; + y -= 32; + x = Math.min( + x, + $('.htmlview div').offset().left + $('.htmlview div').width() - 400 + ); + } // start edition on this node var $overlay = $('
').css({ @@ -397,8 +450,11 @@ }).appendTo($box[0].offsetParent || $box.parent()).show(); - if ($origin.is('.motyw')) { + if ($origin.is('*[x-edit-no-format]')) { $('.akap-edit-button').remove(); + } + + if ($origin.is('.motyw')) { $.themes.autocomplete($('textarea', $overlay)); } @@ -412,7 +468,7 @@ }; }); } - else if($box.is('*[x-annotation-box]')) { + else if($box.is('*[x-annotation-box]') || $origin.is('*[x-edit-attribute]')) { $('.delete-button', $overlay).click(function(){ if (window.confirm("Czy jesteś pewien, że chcesz usunąć ten przypis?")) { $origin.remove(); @@ -436,8 +492,16 @@ var serializer = new XMLSerializer(); + if($box.attr("x-edit-attribute")) { + source = $(''); + source.text($box.attr("data-wlf-" + $box.attr("x-edit-attribute"))); + source = source[0]; + } else { + source = $box[0]; + } + html2text({ - element: $box[0], + element: source, stripOuter: true, success: function(text){ $('textarea', $overlay).val($.trim(text)); @@ -454,13 +518,24 @@ insertedText = insertedText.replace(/,\s*$/, ''); } + if($box.attr("x-edit-attribute")) { + xml = '<' + nodeName + ' ' + $box.attr("x-edit-attribute") + '="' + insertedText + '"/>'; + } else { + xml = '<' + nodeName + '>' + insertedText + ''; + } + + xml2html({ - xml: '<' + nodeName + '>' + insertedText + '', + xml: xml, success: function(element){ if (nodeName == 'out-of-flow-text') { $(element).children().insertAfter($origin); $origin.remove() } + else if ($box.attr('x-edit-attribute')) { + $(element).insertAfter($origin); + $origin.remove(); + } else { $origin.html($(element).html()); } @@ -535,6 +610,7 @@ }); } + function VisualPerspective(options){ var old_callback = options.callback; @@ -563,6 +639,11 @@ } }); + $('#insert-reference-button').click(function(){ + addReference(); + return false; + }); + $('#insert-annotation-button').click(function(){ addAnnotation(); return false; @@ -611,6 +692,7 @@ xml2html({ xml: this.doc.text, + base: this.doc.getBase(), success: function(element){ var htmlView = $('#html-view'); htmlView.html(element);