Mercurial > repos > tabletprog
comparison editor.tp @ 17:7400bb42e0c9
Add direct file edit link support
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 25 Mar 2012 15:31:10 -0700 |
parents | 85fb6ba15bc6 |
children | 4dd99fde5f63 |
comparison
equal
deleted
inserted
replaced
16:59e83296e331 | 17:7400bb42e0c9 |
---|---|
18 | 18 |
19 //js builtins | 19 //js builtins |
20 console <- foreign: #{ | 20 console <- foreign: #{ |
21 log <- foreign: #{} | 21 log <- foreign: #{} |
22 } | 22 } |
23 window <- #{} | |
23 | 24 |
25 //kernel definitions | |
26 true <- #{ | |
27 if:else <- :self trueblock :elseblock { | |
28 trueblock: | |
29 } | |
30 } | |
31 | |
32 false <- #{ | |
33 if:else <- :self trueblock :elseblock { | |
34 elseblock: | |
35 } | |
36 } | |
37 | |
38 editFile <- :path { | |
39 get: path :request { | |
40 addClass: (q: "body") "editorMode" | |
41 src <- request getP: "responseText" | |
42 console log: src | |
43 ast <- parser parse: src | |
44 console log: ast | |
45 ast toHTML: (q: "#src") | |
46 //(q: "#src") setP: "textContent" (request getP: "responseText") | |
47 } | |
48 } | |
49 | |
50 //editor code | |
24 main <- { | 51 main <- { |
25 //bind handlers for file browser links | 52 //bind handlers for file browser links |
26 each: (qall: "a") :idx el { | 53 each: (qall: "a") :idx el { |
27 el setP: "onclick" :event { | 54 el setP: "onclick" :event { |
28 console log: "click" | 55 console log: "click" |
29 link <- foreign: this | 56 link <- foreign: this |
30 get: (link getP: "href") :request { | 57 editFile: (link getP: "href") |
31 addClass: (q: "body") "editorMode" | |
32 src <- request getP: "responseText" | |
33 console log: src | |
34 ast <- parser parse: src | |
35 console log: ast | |
36 ast toHTML: (q: "#src") | |
37 //(q: "#src") setP: "textContent" (request getP: "responseText") | |
38 } | |
39 foreign: false | 58 foreign: false |
40 } | 59 } |
41 } | 60 } |
42 | 61 |
43 //bind handlers for editor buttons | 62 //bind handlers for editor buttons |
52 } | 71 } |
53 | 72 |
54 (q: "#builtin_button") setP: "onclick" :event { | 73 (q: "#builtin_button") setP: "onclick" :event { |
55 removeClass: (q: ".controls") "showops" | 74 removeClass: (q: ".controls") "showops" |
56 } | 75 } |
76 | |
77 path <- (window getP: "location") getP: "pathname" | |
78 if: (path indexOf: "/edit/") = 0 { | |
79 editFile: (path substr: 5) | |
80 } else: { | |
81 console log: "not edit page" | |
82 } | |
57 } | 83 } |
58 | 84 |
59 } | 85 } |