From 7d20ecc106db40a3c033bdc6260376628a24c0e2 Mon Sep 17 00:00:00 2001 From: zuber Date: Tue, 12 Jan 2010 16:58:00 +0100 Subject: [PATCH] =?utf8?q?Edycja=20paragraf=C3=B3w.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- platforma/static/css/html.css | 2 +- platforma/static/js/main.js | 118 +++++++++++++++--------- platforma/static/js/xslt.js | 6 +- platforma/static/xsl/wl2html_client.xsl | 4 +- 4 files changed, 79 insertions(+), 51 deletions(-) diff --git a/platforma/static/css/html.css b/platforma/static/css/html.css index 57eed6d5..2c78efa4 100755 --- a/platforma/static/css/html.css +++ b/platforma/static/css/html.css @@ -443,7 +443,7 @@ .html-editarea textarea { - border: 2px solid black; +/* border: 2px solid black;*/ margin: 0px; padding: 0px; diff --git a/platforma/static/js/main.js b/platforma/static/js/main.js index a49cb6a0..e5566a84 100644 --- a/platforma/static/js/main.js +++ b/platforma/static/js/main.js @@ -295,52 +295,78 @@ function html(element) { } }; - // function openForEdit($origin) - // { - // // if(this.currentOpen && this.currentOpen != $origin) { - // // this.closeWithSave(this.currentOpen); - // // } - // - // var $box = null - // - // // annotations overlay their sub box - not their own box // - // if($origin.is(".annotation-inline-box")) - // $box = $("*[x-annotation-box]", $origin); - // else - // $box = $origin; - // - // var x = $box[0].offsetLeft; - // var y = $box[0].offsetTop; - // var w = $box.outerWidth(); - // var h = $box.innerHeight(); - // - // console.log("Edit origin:", $origin, " box:", $box); - // console.log("offsetParent:", $box[0].offsetParent); - // console.log("Dimensions: ", x, y, w , h); - // - // // start edition on this node - // var $overlay = $('
'); - // - // h = Math.max(h - 20, 2*parseInt($box.css('line-height'))); - // - // console.log(h); - // - // $overlay.css({ - // position: 'absolute', - // height: h, - // left: x, - // top: y, - // right: 0 - // }); - // - // $($box[0].offsetParent).append($overlay); - // console.log($overlay); - // } - // - // $('.edit-button').live('click', function() { - // openForEdit($(this).parent()); - // }); - // + function openForEdit($origin) + { + // if(this.currentOpen && this.currentOpen != $origin) { + // this.closeWithSave(this.currentOpen); + // } + + var $box = null + + // annotations overlay their sub box - not their own box // + if($origin.is(".annotation-inline-box")) + $box = $("*[x-annotation-box]", $origin); + else + $box = $origin; + + var x = $box[0].offsetLeft; + var y = $box[0].offsetTop; + var w = $box.outerWidth(); + var h = $box.innerHeight(); + + console.log("Edit origin:", $origin, " box:", $box); + console.log("offsetParent:", $box[0].offsetParent); + console.log("Dimensions: ", x, y, w , h); + + // start edition on this node + var $overlay = $('
'); + var serializer = new XMLSerializer(); + + html2xml({ + xml: serializer.serializeToString($box.get(0)), + success: function(text) { + $('textarea', $overlay).focus().val($.trim(text)); + + $('textarea', $overlay).one('blur', function(event) { + xml2html({ + xml: $('textarea', $overlay).val(), + success: function(element) { + $box.after(element); + $overlay.remove(); + $box.remove(); + }, + error: function(text) { + $overlay.remove(); + alert('Błąd! ' + text); + } + }) + }); + }, error: function(text) { + alert('Błąd! ' + text); + } + }); + + h = Math.max(h - 20, 2*parseInt($box.css('line-height'))); + + console.log(h); + + $overlay.css({ + position: 'absolute', + height: h, + left: x, + top: y, + right: 0 + }); + + $($box[0].offsetParent).append($overlay); + console.log($overlay); + } + + $('.edit-button').live('click', function(event) { + openForEdit($(this).parent()); + return false; + }); + var button = $(''); $(element).bind('mousemove', function(event) { var editable = $(event.target).closest('*[x-editable]'); diff --git a/platforma/static/js/xslt.js b/platforma/static/js/xslt.js index e098a7d9..48543e6e 100644 --- a/platforma/static/js/xslt.js +++ b/platforma/static/js/xslt.js @@ -168,9 +168,11 @@ function xml2html(options) { if (error.length > 0 && options.error) { options.error(error.text()); } else { + // console.log(options.xml); + console.log(doc, doc.firstChild); options.success(doc.firstChild); } - }, function() { options.error && options.success('Nie udało się załadować XSLT'); }); + }, function() { options.error && options.error('Nie udało się załadować XSLT'); }); } @@ -194,6 +196,6 @@ function html2xml(options) { } else { options.success(serialize(doc.documentElement).join('')); } - }, function() { options.error && options.success('Nie udało się załadować XSLT'); }); + }, function() { options.error && options.error('Nie udało się załadować XSLT'); }); }; diff --git a/platforma/static/xsl/wl2html_client.xsl b/platforma/static/xsl/wl2html_client.xsl index fa3665bf..d9758ea2 100755 --- a/platforma/static/xsl/wl2html_client.xsl +++ b/platforma/static/xsl/wl2html_client.xsl @@ -7,9 +7,9 @@ --> - +