From 276b8bd9566cbdcc99b7c3ab8349e8c06843c23d Mon Sep 17 00:00:00 2001
From: Andreas Gohr <andi@splitbrain.org>
Date: Thu, 25 May 2006 17:23:57 +0200
Subject: [PATCH] javascript to toggle editor wrapping

This patch adds a way to sisable and enable the automating wrapping in the
editor textarea. Disabling the wrapping is especially useful when editing
large tables.

darcs-hash:20060525152357-7ad00-ced566c5d640cc521877d4b3325640c3fcd3ded9.gz
---
 lib/images/wrap.gif        | Bin 0 -> 86 bytes
 lib/scripts/script.js      |  27 +++++++++++++++++++++++++++
 lib/tpl/default/design.css |   2 +-
 3 files changed, 28 insertions(+), 1 deletion(-)
 create mode 100644 lib/images/wrap.gif

diff --git a/lib/images/wrap.gif b/lib/images/wrap.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f2253e4a288755bd1087abb67656dee814b6722c
GIT binary patch
literal 86
zcmZ?wbhEHb6k!lySjfZx1P2Zr_zwn(KUo+-0y-c9B+tO4-qOGF^jn#v3QxZ(opVLf
gZyQf+?T|@XI(N}FmFKhK_q4q)tNwManw7yC00KB6f&c&j

literal 0
HcmV?d00001

diff --git a/lib/scripts/script.js b/lib/scripts/script.js
index df12a29fb..1f5a71e78 100644
--- a/lib/scripts/script.js
+++ b/lib/scripts/script.js
@@ -339,12 +339,16 @@ function initSizeCtl(ctlid,edid){
 
     var l = document.createElement('img');
     var s = document.createElement('img');
+    var w = document.createElement('img');
     l.src = DOKU_BASE+'lib/images/larger.gif';
     s.src = DOKU_BASE+'lib/images/smaller.gif';
+    w.src = DOKU_BASE+'lib/images/wrap.gif';
     addEvent(l,'click',function(){sizeCtl(edid,100);});
     addEvent(s,'click',function(){sizeCtl(edid,-100);});
+    addEvent(w,'click',function(){toggleWrap(edid);});
     ctl.appendChild(l);
     ctl.appendChild(s);
+    ctl.appendChild(w);
 }
 
 /**
@@ -359,6 +363,29 @@ function sizeCtl(edid,val){
   DokuCookie.setValue('sizeCtl',textarea.style.height);
 }
 
+/**
+ * Toggle the wrapping mode of a textarea
+ *
+ * @author Fluffy Convict <fluffyconvict@hotmail.com>
+ * @link   http://news.hping.org/comp.lang.javascript.archive/12265.html
+ * @author <shutdown@flashmail.com>
+ * @link   https://bugzilla.mozilla.org/show_bug.cgi?id=302710#c2
+ */
+function toggleWrap(edid){
+    var txtarea = $(edid);
+    var wrap = txtarea.getAttribute('wrap');
+    if(wrap && wrap.toLowerCase() == 'off'){
+        txtarea.setAttribute('wrap', 'soft');
+    }else{
+        txtarea.setAttribute('wrap', 'off');
+    }
+    // Fix display for mozilla
+    var parNod = txtarea.parentNode;
+    var nxtSib = txtarea.nextSibling;
+    parNod.removeChild(txtarea);
+    parNod.insertBefore(txtarea, nxtSib);
+}
+
 /**
  * Handler to close all open Popups
  */
diff --git a/lib/tpl/default/design.css b/lib/tpl/default/design.css
index 3c2cedfec..75e022385 100644
--- a/lib/tpl/default/design.css
+++ b/lib/tpl/default/design.css
@@ -148,7 +148,7 @@ div.dokuwiki div.toolbar, div.dokuwiki div#wiki__editbar {
 }
 div.dokuwiki div#size__ctl {
    float:right;
-   width:40px;
+   width:60px;
    height:2.7em;
 }
 div.dokuwiki #size__ctl img {
-- 
GitLab