56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
import Widget from require "lapis.html"
|
|
|
|
class LoggedIn extends Widget
|
|
content: =>
|
|
task_item = (task) ->
|
|
li ->
|
|
input type: "hidden", class: "task-id", value: task and task.id or nil
|
|
div class: "row", ->
|
|
div class: "column column-80", ->
|
|
if task
|
|
input type: "checkbox", id: "task-#{task.id}", onchange: "check(#{task.id});", checked: task.done
|
|
text " #{task.content}"
|
|
else
|
|
input type: "checkbox"
|
|
div class: "column column-20", ->
|
|
button class: "delete", onclick: "delete_item(this);", "x"
|
|
|
|
api_key_item = (key="") ->
|
|
li ->
|
|
div class: "row", ->
|
|
div class: "column column-60", ->
|
|
code key
|
|
div class: "column column-offset-20 column-20", ->
|
|
button class: "delete", onclick: "delete_item(this);", "x"
|
|
|
|
script -> raw "var API_KEY = '#{@keys[1].key}';" -- TODO will be removed soon
|
|
script src: "/static/index.js"
|
|
|
|
script id: "task-template", type: "text/x-custom-template", ->
|
|
task_item!
|
|
script id: "api-key-template", type: "text/x-custom-template", ->
|
|
api_key_item!
|
|
|
|
ul style: "list-style: none;", ->
|
|
if @tasks
|
|
for task in *@tasks
|
|
task_item task
|
|
|
|
li id: "new-task", ->
|
|
form {
|
|
onsubmit: "return new_task();"
|
|
}, ->
|
|
label for: "new-task-input", "New Task"
|
|
input type: "text", id: "new-task-input", placeholder: "content", autocomplete: "off"
|
|
input type: "submit", value: "Add Task"
|
|
|
|
button class: "collapsible", "API Keys"
|
|
div class: "content", ->
|
|
ul style: "list-style: none;", ->
|
|
if @keys
|
|
for key in *@keys
|
|
api_key_item key.key
|
|
|
|
li id: "new-api-key", ->
|
|
button onclick: "new_api_key()", "New API Key"
|