ajout
This commit is contained in:
parent
aa1b224c56
commit
c8311babd7
0
WIM4.1/tp/tp5/ex1/VoirLePUBLIC_HTML
Normal file
0
WIM4.1/tp/tp5/ex1/VoirLePUBLIC_HTML
Normal file
29
WIM4.1/tp/tp5/ex1/index.html
Normal file
29
WIM4.1/tp/tp5/ex1/index.html
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<!doctype html>
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Riot todo</title>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<link rel="stylesheet" href="todo.css">
|
||||||
|
<script src="todo.riot" type="riot"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/riot@6.1.2/riot+compiler.min.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<todo></todo>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
riot.compile().then(() => {
|
||||||
|
riot.mount('todo', {
|
||||||
|
title: 'I want to behave!',
|
||||||
|
items: [
|
||||||
|
{ title: 'Avoid excessive caffeine', done: false },
|
||||||
|
{ title: 'Be less provocative', done: true },
|
||||||
|
{ title: 'Be nice to people', done: true }
|
||||||
|
]
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
84
WIM4.1/tp/tp5/ex1/todo.css
Normal file
84
WIM4.1/tp/tp5/ex1/todo.css
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'myriad pro', sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
todo {
|
||||||
|
display: block;
|
||||||
|
max-width: 600px;
|
||||||
|
margin: 5% auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
form input {
|
||||||
|
font-size: 85%;
|
||||||
|
padding: .4em;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-color: #1FADC5;
|
||||||
|
border: 1px solid rgba(0,0,0,.2);
|
||||||
|
font-size: 75%;
|
||||||
|
color: #fff;
|
||||||
|
padding: .4em 1.2em;
|
||||||
|
border-radius: 2em;
|
||||||
|
cursor: pointer;
|
||||||
|
margin: 0 .23em;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button[disabled] {
|
||||||
|
background-color: #ddd;
|
||||||
|
color: #aaa;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
list-style-type: none;
|
||||||
|
padding: .2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.completed {
|
||||||
|
text-decoration: line-through;
|
||||||
|
color: #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.filters {
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
/* position: absolute;*/
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filters li {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.filters li a {
|
||||||
|
color: inherit;
|
||||||
|
/* margin: 3px;*/
|
||||||
|
margin-right:10px;
|
||||||
|
padding: 3px 7px;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size : 0.75em;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 3px;
|
||||||
|
}
|
||||||
|
.filters li a:hover {
|
||||||
|
border-color: rgba(175, 47, 47, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.filters li a.selected {
|
||||||
|
border-color: rgba(175, 47, 47, 0.2);
|
||||||
|
}
|
58
WIM4.1/tp/tp5/ex1/todo.riot
Normal file
58
WIM4.1/tp/tp5/ex1/todo.riot
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<todo>
|
||||||
|
<h3>{ props.title }</h3>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li each={ item in state.items }>
|
||||||
|
<label class={ item.done ? 'completed' : null }>
|
||||||
|
<input
|
||||||
|
type="checkbox"
|
||||||
|
checked={ item.done }
|
||||||
|
onclick={ () => toggle(item) } />
|
||||||
|
{ item.title }
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<form onsubmit={ add }>
|
||||||
|
<input oninput={ edit } />
|
||||||
|
<button disabled={ !state.text }>
|
||||||
|
Add #{ state.items.length + 1 }
|
||||||
|
</button>
|
||||||
|
<button onclick={ clear }>Clear done</button>
|
||||||
|
<ul class="filters">
|
||||||
|
<li> <a href="#">All</a></li>
|
||||||
|
<li> <a href="#">Active</a></li>
|
||||||
|
<li> <a href="#">Done</a></li>
|
||||||
|
</ul>
|
||||||
|
</form>
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
onBeforeMount(props, state) {
|
||||||
|
// initial state
|
||||||
|
this.state = {
|
||||||
|
items: props.items,
|
||||||
|
text: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
edit(e) {
|
||||||
|
// update only the text state
|
||||||
|
this.update({
|
||||||
|
text: e.target.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
clear(e) {
|
||||||
|
// COMPLETEZ
|
||||||
|
},
|
||||||
|
add(e) {
|
||||||
|
// COMPLETEZ
|
||||||
|
this.idem.push(e)
|
||||||
|
this.update({items: this.items })
|
||||||
|
},
|
||||||
|
toggle(item) {
|
||||||
|
item.done = !item.done
|
||||||
|
// trigger a component update
|
||||||
|
this.update()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</todo>
|
Loading…
Reference in New Issue
Block a user