]> jfr.im git - irc/quakenet/qwebirc.git/commitdiff
Add URLificiation.
authorChris Porter <redacted>
Tue, 14 Oct 2008 23:12:25 +0000 (00:12 +0100)
committerChris Porter <redacted>
Tue, 14 Oct 2008 23:12:25 +0000 (00:12 +0100)
compile.bat
compile.sh
js/ui/colour.js
js/ui/url.js [new file with mode: 0644]
static/mochauidebug.html
static/swmuidebug.html
static/uglyuidebug.html

index 74706b420c854b2bc0291c81e2259c8bd8264f1e..92e58f774b3f9683809ec60116cf1eb18da33e4f 100644 (file)
@@ -3,7 +3,7 @@ mkdir compiled
 del /q compiled\*.js\r
 \r
 cd js\r
-copy version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\baseircclient.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\baseuiwindow.js + ui\colour.js + ui\theme.js + qwebircinterface.js ..\compiled\qwebirc-concat.js /b\r
+copy version.js + jslib.js + irc\ircconnection.js + irc\irclib.js + irc\baseircclient.js + irc\irctracker.js + irc\commandparser.js + irc\ircclient.js + ui\baseui.js + ui\baseuiwindow.js + ui\colour.js + ui\url.js + ui\theme.js + qwebircinterface.js ..\compiled\qwebirc-concat.js /b\r
 copy ui\swmlayout.js + ui\swmui.js ..\compiled\swmui-concat.js /b\r
 cd ..\compiled\r
 \r
index 0a815e0b34563a2fd9f8bc6d7eb0932860904eb6..647a7bb52808a99d417ee38813268c512590972d 100755 (executable)
@@ -3,7 +3,7 @@ mkdir -p compiled
 rm -f compiled/*.js
 
 cd js
-cat version.js jslib.js irc/ircconnection.js irc/irclib.js irc/baseircclient.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/baseuiwindow.js ui/colour.js ui/theme.js qwebircinterface.js > ../compiled/qwebirc-concat.js
+cat version.js jslib.js irc/ircconnection.js irc/irclib.js irc/baseircclient.js irc/irctracker.js irc/commandparser.js irc/ircclient.js ui/baseui.js ui/baseuiwindow.js ui/colour.js ui/url.js ui/theme.js qwebircinterface.js > ../compiled/qwebirc-concat.js
 cat ui/swmlayout.js ui/swmui.js > ../compiled/swmui-concat.js
 
 error() {
index 3bd29ea51990425b7dd82cacc52b08cdd009a74a..6a15bd698898e57f3b962152d794f4a3c44543f0 100644 (file)
@@ -44,7 +44,7 @@ function Colourise(line, entity) {
 
   function emitEndToken() {
     if(out.length > 0) {
-      element.appendChild(document.createTextNode(out.join("")));
+      urlificate(element, out.join(""));
       entity.appendChild(element);
       out = [];
     }
diff --git a/js/ui/url.js b/js/ui/url.js
new file mode 100644 (file)
index 0000000..3245ec3
--- /dev/null
@@ -0,0 +1,31 @@
+var url_re = /https?:\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
+
+function urlificate(element, text) {
+  function appendText(text) {
+    element.appendChild(document.createTextNode(text));  
+  }
+  function appendA(text) {
+    var a = document.createElement("a");
+    a.href = text;
+    a.target = "new";
+    a.appendChild(document.createTextNode(text));
+    
+    element.appendChild(a);
+  }
+  
+  for(;;) {
+    var index = text.search(url_re);
+    if(index == -1) {
+      appendText(text);
+      break;
+    }
+    var match = text.match(url_re);
+  
+    before = text.substring(0, index);
+    matched = match[0];
+    after = text.substring(index + matched.length);
+    text = after;
+    appendText(before);
+    appendA(matched, before);
+  }
+}
index 4e84c900b20c3850449be437b081f8ee69c55a18..2876fe827d52f8a3b4a98c6ce2648f2dab68a389 100644 (file)
@@ -23,6 +23,7 @@
   <script type="text/javascript" src="js/debug/ui/baseui.js"></script>
   <script type="text/javascript" src="js/debug/ui/baseuiwindow.js"></script>
   <script type="text/javascript" src="js/debug/ui/colour.js"></script>
+  <script type="text/javascript" src="js/debug/ui/url.js"></script>
   <script type="text/javascript" src="js/debug/ui/theme.js"></script>
   <script type="text/javascript" src="js/debug/ui/mochaui.js"></script>
   <script type="text/javascript" src="js/debug/qwebircinterface.js"></script>
index e529dc78f602f11ff06c2de6e613c38b666abf35..a687b98f16bccc8f6186a680dc4f086184239ffd 100644 (file)
@@ -16,6 +16,7 @@
   <script type="text/javascript" src="js/debug/ui/baseui.js"></script>
   <script type="text/javascript" src="js/debug/ui/baseuiwindow.js"></script>
   <script type="text/javascript" src="js/debug/ui/colour.js"></script>
+  <script type="text/javascript" src="js/debug/ui/url.js"></script>
   <script type="text/javascript" src="js/debug/ui/theme.js"></script>
   <script type="text/javascript" src="js/debug/ui/swmlayout.js"></script>
   <script type="text/javascript" src="js/debug/ui/swmui.js"></script>
index 30a73a9c36654c594f8e773079b451c732036d5c..859b4c152c44d416971bd4f13d738f6419864f09 100644 (file)
@@ -16,6 +16,7 @@
   <script type="text/javascript" src="js/debug/ui/baseui.js"></script>
   <script type="text/javascript" src="js/debug/ui/baseuiwindow.js"></script>
   <script type="text/javascript" src="js/debug/ui/colour.js"></script>
+  <script type="text/javascript" src="js/debug/ui/url.js"></script>
   <script type="text/javascript" src="js/debug/ui/theme.js"></script>
   <script type="text/javascript" src="js/debug/ui/uglyui.js"></script>
   <script type="text/javascript" src="js/debug/qwebircinterface.js"></script>