Guest User

Untitled

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