Guest User

Untitled

a guest
May 17th, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scheme 3.94 KB | None | 0 0
  1. (define TRUE 1)
  2. (define FALSE 0)
  3. (define users '())
  4. (define rooms '("standard", "standard2"))
  5. (define (draw-client)
  6.         (<HTML>
  7.             (<HEAD>
  8.              (<SCRIPT> ~(define user "")
  9.              ~(define (load-page v) (alert "page loaded") (innerHTML-set! (dom-get-element-by-id "body") v))
  10.  
  11.                          
  12.              ~(define (welcome-user)
  13.                          
  14.                            (let ((user (dom-get-element-by-id "username").value))
  15.                            (<DIV> (<H1> "Welcome " user)
  16.                            (<P>(<INPUT>
  17.                                
  18.                                     :onclick (begin (innerHTML-set! (dom-get-element-by-id "body") (show-login)) )
  19.                                     :type "button"
  20.                                     :value "log out"
  21.                                     )))
  22.                            ))
  23.              ~(define (print-rooms)
  24.                                  (with-hop ($get-rooms) (lambda (x)
  25.                                        (dom-append-child! (dom-get-element-by-id "body") x))))
  26.              
  27.              
  28.              ~(define (login) (with-hop ($login (dom-get-element-by-id "username"))
  29.                                            (lambda (x) (if
  30.                                                         (eq? x $FALSE)
  31.                                                         (begin (alert "login failed, choose another nickname")
  32.                                                                   (dom-set-attribute!
  33.                                                                    (dom-get-element-by-id "username")
  34.                                                                    "value"
  35.                                                                    ""))
  36.                                                            (begin (innerHTML-set! (dom-get-element-by-id "body") (welcome-user))
  37.                                                                   (print-rooms))
  38.                                                            
  39.                                                            
  40.                                    ))) )
  41.              
  42.           ~(define (show-login)
  43.                           (<DIV> (<P> "Username"
  44.                                       (<INPUT> :id "username" :value "test"))
  45.                                  (<P>
  46.                                   (<INPUT> :type "button"
  47.                                            :value "login"
  48.                                            :onclick ~(login)))
  49.                           )
  50.              
  51.                           )))
  52.            
  53.               (<BODY>
  54.               (<DIV> :id "body" (show-login-s) ))
  55.              
  56.              ))
  57.  
  58.  
  59.  
  60. (define (show-login-s)    
  61.              (<DIV> (<P> "Username"
  62.                   (<INPUT> :id "username" :value "test"))
  63.              (<P>
  64.               (<INPUT> :type "button"
  65.                        :value "login"
  66.                        :onclick ~(login)))))
  67.  
  68.  
  69.  
  70. (define (delete-from-list element list)
  71.   (if (eq? '() list)
  72.       '()
  73.       (if (equal? element (car list))
  74.           (cdr list)
  75.           (cons (car list) (delete-from-list element (cdr list))))))
  76.  
  77. (define-service (logout user)
  78.  
  79.   (tprint "ok")
  80.   (delete-from-list user users))
  81.  
  82.  
  83.  
  84.  (define (get-room-iter list)
  85.   (if (eq? '() list)
  86.       '()
  87.       (cons (<TR> (<TD> (car list))) (get-room-iter (cdr list)))))
  88.  
  89. (define-service (get-rooms)
  90.   (<DIV>
  91.    (<P> "New room"
  92.      (<INPUT> :id "newroom"))
  93.   (<P>
  94.      (<INPUT> :type "button"
  95.      :value "add room"
  96.      :onclick ~(alert "New room: " (dom-get-element-by-id "newroom").value)
  97.      ))
  98.   (<TABLE> (get-room-iter rooms))
  99.   ;code for new rooms
  100.   )
  101.   )
  102.  
  103.  
  104.  
  105.  
  106.  
  107. (define-service (login user)
  108.   (if (or (equal? "" user)(member user users))
  109.       FALSE
  110.       (begin (set! users (cons user users)) (tprint users) TRUE)))
  111.  
  112. (define-service (draw)
  113.     (draw-client))
  114.    
  115. (draw)
Add Comment
Please, Sign In to add comment