X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/4c48c47d0b84e516114c16ee191359166e93a51c..f7b91d0fc5230f026f5e62fcb81122a495bacc2f:/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 0179f408..cb7c40f8 100644
--- a/redakcja/static/js/wiki/view_editor_wysiwyg.js
+++ b/redakcja/static/js/wiki/view_editor_wysiwyg.js
@@ -203,7 +203,7 @@
             'Ê','ê','Ë','ë','Ē','ē','Ě','ě','Ġ','ġ','Ħ','ħ','Í','í','Î','î',
             'Ī','ī','Ĭ','ĭ','Ľ','ľ','Ñ','ñ','Ň','ň','Ó','ó','Ö','ö',
             'Ô','ô','Ō','ō','Ǒ','ǒ','Œ','œ','Ø','ø','Ř','ř','Š',
-            'š','Ş','ş','Ť','ť','Ţ','ţ','Ű','ű','Ú','ú',
+            'š','Ş','ş','Ť','ť','Ţ','ţ','Ű','ű','Ú','ú','Ù','ù',
             'Ü','ü','Ů','ů','Ū','ū','Û','û','Ŭ','ŭ',
             'Ý','ý','Ž','ž','ß','Ð','ð','Þ','þ','А','а','Б',
             'б','В','в','Г','г','Д','д','Е','е','Ё','ё','Ж',
@@ -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 = $('<div class="html-editarea"><button class="accept-button">Zapisz</button><button class="delete-button">Usuń</button><button class="tytul-button akap-edit-button">tytuł dzieła</button><button class="wyroznienie-button akap-edit-button">wyróżnienie</button><button class="slowo-button akap-edit-button">słowo obce</button><button class="znak-button akap-edit-button">znak spec.</button><textarea></textarea></div>').css({
+        var $overlay = $('<div class="html-editarea"><button class="accept-button">Zapisz</button><button class="delete-button">Usuń</button><button class="tytul-button akap-edit-button">tytuł dzieła</button><button class="wyroznienie-button akap-edit-button">wyróżnienie</button><button class="slowo-button akap-edit-button">słowo obce</button><button class="znak-button akap-edit-button">znak spec.</button><button class="luka-button akap-edit-button">luka</button><button class="zastap-button akap-edit-button">zastąp</button><textarea></textarea></div>');
+	
+	$attributes = $('<div class="html-editarea-attributes"></div>')
+	
+	$.map(getXNodeAttributes($origin.get(0)),
+	      function(v, n) {
+		$attributes.append('<span><label for="attr-'+n+'">'+n+'</label><input type="text" name="'+n+'" id="attr-'+n+'" value="'+v+'"/></span>');
+	      });
+	$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 = "<luka>";
+				endTag = "</luka>";
+			} else if (buttonName == "zastąp") {
+				startTag = "<zastap rozw=\"\">";
+				endTag = "</zastap>";
 			}
 			
 			var myField = textAreaOpened;