JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
serve js from /javascript, make cards draggable
authorJason Woofenden <jason@jasonwoof.com>
Sun, 23 Oct 2011 23:08:54 +0000 (19:08 -0400)
committerJason Woofenden <jason@jasonwoof.com>
Sun, 23 Oct 2011 23:08:54 +0000 (19:08 -0400)
client.coffee
index.html
server.coffee

index 8c1abd0..61643b0 100644 (file)
@@ -1,7 +1,9 @@
 $table = null
 
 add_card = (text, x, y) ->
-       $table.append $ "<div class=\"card\" style=\"left: #{x}px; top: #{y}px\">#{text}</div>"
+       card = $ $ "<div class=\"card\" style=\"left: #{x}px; top: #{y}px\">#{text}</div>"
+       $table.append card
+       card.draggable()
        
 init = ->
        $table = $ '#table'
index f654f36..8ada84e 100644 (file)
@@ -4,7 +4,11 @@
        <title>Card Table</title>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
-       <script src="http://127.0.0.1/javascript/jquery/jquery.min.js"></script>
+       <script src="/javascript/jquery/jquery.min.js"></script>
+       <script src="/javascript/jquery-ui/ui/jquery.ui.core.js"></script>
+       <script src="/javascript/jquery-ui/ui/jquery.ui.widget.js"></script>
+       <script src="/javascript/jquery-ui/ui/jquery.ui.mouse.js"></script>
+       <script src="/javascript/jquery-ui/ui/jquery.ui.draggable.js"></script>
        <script src="client.js"></script>
 </head>
 <body>
index fad6347..48e2857 100644 (file)
@@ -26,6 +26,24 @@ html_handler = (args, out, request, url_parts) ->
                if err
                        return out.end 'Server failed to read index.html'
                out.end data
+
+clean_pathname_regex = new RegExp('[^a-zA-Z/_.-]')
+clean_pathname_regex2 = new RegExp('/[.]')
+clean_pathname_regex3 = new RegExp('^[.-]')
+clean_pathname = (str) ->
+       str = str.replace clean_pathname_regex, '_'
+       str = str.replace clean_pathname_regex2, '/_'
+       return str.replace clean_pathname_regex3, '_'
+       
+# serve javascript files from within /usr/share/javascript
+javascript_handler = (args, out, request, url_parts) ->
+       filename = clean_pathname "/usr/share/#{url_parts.pathname}"
+       fs.readFile filename, 'utf8', (err, data) ->
+               if err
+                       out.writeHead 404
+                       return out.end "Server failed to read #{filename}"
+               out.writeHead 200, 'Content-Type': 'text/javascript'
+               out.end data
        
 
 http_server = http.createServer (req, res) ->
@@ -35,7 +53,9 @@ http_server = http.createServer (req, res) ->
 
        rel_path = url_parts.pathname.substr 1
 
-       if rel_path.substr(rel_path.length - 4) is '.css'
+       if rel_path.substr(0, 11) is 'javascript/'
+               return javascript_handler url_parts.query, res, req, url_parts
+       else if rel_path.substr(rel_path.length - 4) is '.css'
                res.writeHead 200, 'Content-Type': 'text/css'
                return css_handler url_parts.query, res, req, url_parts
        else if rel_path.substr rel_path.length - 3 is '.js'