diff options
Diffstat (limited to 'tests/niminaction/Chapter7/Tweeter/src/views')
-rw-r--r-- | tests/niminaction/Chapter7/Tweeter/src/views/general.nim | 51 | ||||
-rw-r--r-- | tests/niminaction/Chapter7/Tweeter/src/views/user.nim | 49 |
2 files changed, 100 insertions, 0 deletions
diff --git a/tests/niminaction/Chapter7/Tweeter/src/views/general.nim b/tests/niminaction/Chapter7/Tweeter/src/views/general.nim new file mode 100644 index 000000000..0e920b1de --- /dev/null +++ b/tests/niminaction/Chapter7/Tweeter/src/views/general.nim @@ -0,0 +1,51 @@ +#? stdtmpl(subsChar = '$', metaChar = '#') +#import "../database" +#import user +#import xmltree +# +#proc `$!`(text: string): string = escape(text) +#end proc +# +#proc renderMain*(body: string): string = +# result = "" +<!DOCTYPE html> +<html> + <head> + <title>Tweeter written in Nim</title> + <link rel="stylesheet" type="text/css" href="style.css"> + </head> + + <body> + ${body} + </body> + +</html> +#end proc +# +#proc renderLogin*(): string = +# result = "" +<div id="login"> + <span>Login</span> + <span class="small">Please type in your username...</span> + <form action="login" method="post"> + <input type="text" name="username"> + <input type="submit" value="Login"> + </form> +</div> +#end proc +# +#proc renderTimeline*(username: string, messages: seq[Message]): string = +# result = "" +<div id="user"> + <h1>${$!username}'s timeline</h1> +</div> +<div id="newMessage"> + <span>New message</span> + <form action="createMessage" method="post"> + <input type="text" name="message"> + <input type="hidden" name="username" value="${$!username}"> + <input type="submit" value="Tweet"> + </form> +</div> +${renderMessages(messages)} +#end proc \ No newline at end of file diff --git a/tests/niminaction/Chapter7/Tweeter/src/views/user.nim b/tests/niminaction/Chapter7/Tweeter/src/views/user.nim new file mode 100644 index 000000000..4abcf440d --- /dev/null +++ b/tests/niminaction/Chapter7/Tweeter/src/views/user.nim @@ -0,0 +1,49 @@ +#? stdtmpl(subsChar = '$', metaChar = '#', toString = "xmltree.escape") +#import "../database" +#import xmltree +#import times +# +#proc renderUser*(user: User): string = +# result = "" +<div id="user"> + <h1>${user.username}</h1> + <span>Following: ${$user.following.len}</span> +</div> +#end proc +# +#proc renderUser*(user: User, currentUser: User): string = +# result = "" +<div id="user"> + <h1>${user.username}</h1> + <span>Following: ${$user.following.len}</span> + #if user.username notin currentUser.following: + <form action="follow" method="post"> + <input type="hidden" name="follower" value="${currentUser.username}"> + <input type="hidden" name="target" value="${user.username}"> + <input type="submit" value="Follow"> + </form> + #end if +</div> +# +#end proc +# +#proc renderMessages*(messages: seq[Message]): string = +# result = "" +<div id="messages"> + #for message in messages: + <div> + <a href="/${message.username}">${message.username}</a> + <span>${message.time.utc().format("HH:mm MMMM d',' yyyy")}</span> + <h3>${message.msg}</h3> + </div> + #end for +</div> +#end proc +# +#when true: +# echo renderUser(User(username: "d0m96<>", following: @[])) +# echo renderMessages(@[ +# Message(username: "d0m96", time: getTime(), msg: "Hello World!"), +# Message(username: "d0m96", time: getTime(), msg: "Testing") +# ]) +#end when |