Advertisement
Guest User

Untitled

a guest
Jun 5th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.53 KB | None | 0 0
  1. namespace TryWebSharper
  2.  
  3. open WebSharper
  4. open WebSharper.JavaScript
  5. open WebSharper.JQuery
  6. open WebSharper.UI
  7. open WebSharper.UI.Next
  8. open WebSharper.UI.Next.Client
  9.  
  10.  
  11. [<JavaScript>]
  12.  
  13. module Code =
  14.  
  15.     type IndexTemplate = Templating.Template<"index.html">
  16.  
  17.     [<NoComparison>]
  18.  
  19.     type Task = {Name:string; Done:Var<bool>}
  20.  
  21.     let tasks =
  22.         ListModel.Create(fun task -> task.Name)
  23.             [ {Name = "Learn more F#"; Done = Var.Create true}
  24.               {Name = "Drink more coffee"; Done = Var.Create true}
  25.               {Name = "Refactor enterprise app for F# book"; Done = Var.Create false}
  26.             ]
  27.     let NewTaskName = Var.Create " "
  28.  
  29.     let main =
  30.         IndexTemplate.Main.Doc(
  31.             ListContainer =
  32.                 [ListModel.View tasks |> Doc.Convert (fun task ->
  33.                     IndexTemplate.ListItem.Doc (
  34.                         Task = task.Name,
  35.                         Clear = (fun _ _ -> tasks.RemoveByKey task.Name),
  36.                         ShowDone = Attr.DynamicClass "checked" task.Done.View id)
  37.                 )],
  38.             NewTaskName = NewTaskName,
  39.             Add = (fun _ _ ->
  40.                 tasks.Add { Name = NewTaskName.Value; Done = Var.Create false }
  41.                 Var.Set NewTaskName " "),
  42.             ClearCompleted = (fun _ _ -> tasks.RemoveBy(fun task -> task.Done.Value))
  43.             )
  44.             |> Doc.RunById "tasks"
  45.  
  46.  
  47.  
  48.  
  49.  
  50. (*[<EntryPoint>]
  51.     let main argv =
  52.         printfn "%A" argv
  53.         0 // return an integer exit code
  54.  *)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement