Browse Source

Rename notes to todos

master
Nero 5 years ago
parent
commit
e341da7dc1
  1. 57
      app.js
  2. 20
      index.html

57
app.js

@ -14,7 +14,7 @@ let kara = new Vue({
chatbox: null, chatbox: null,
isTyping: false, isTyping: false,
askedForName: false, askedForName: false,
takeNote: false, awaitTodo: false,
username: '', username: '',
themes: null, themes: null,
activeTheme: 'slate', activeTheme: 'slate',
@ -30,7 +30,7 @@ let kara = new Vue({
username: null, username: null,
location: '' location: ''
}, },
notes: [], todos: [],
reactions: [] reactions: []
}, },
mounted() { mounted() {
@ -178,8 +178,8 @@ let kara = new Vue({
// Check commands // Check commands
if (this.askedForName === true) { if (this.askedForName === true) {
this.setName(message); this.setName(message);
} else if (this.takeNote === true) { } else if (this.awaitTodo === true) {
this.saveNote(message); this.saveTodo(message);
} else { } else {
let answer = this.getReaction(message); let answer = this.getReaction(message);
if (answer) { if (answer) {
@ -264,12 +264,12 @@ let kara = new Vue({
return "Please tell me how i should call you."; return "Please tell me how i should call you.";
} }
if (this.includesAllOf(keywords, ['new', 'note']) || if (this.includesAllOf(keywords, ['new', 'todo']) ||
this.includesAllOf(keywords, ['new', 'task']) || this.includesAllOf(keywords, ['new', 'task']) ||
this.includesAllOf(keywords, ['take', 'note']) || this.includesAllOf(keywords, ['take', 'todo']) ||
this.includesAllOf(keywords, ['save', 'to', 'clipboard']) this.includesAllOf(keywords, ['save', 'to', 'clipboard'])
) { ) {
this.takeNote = true; this.awaitTodo = true;
return this.oneOf([ return this.oneOf([
"What do you wan't me to save for you?", "What do you wan't me to save for you?",
"Tell me what you wan't to save.", "Tell me what you wan't to save.",
@ -409,9 +409,9 @@ let kara = new Vue({
// Commands // Commands
processCommands: function (message) { processCommands: function (message) {
if (this.checkForCommands(message, 'note')) { if (this.checkForCommands(message, 'todo')) {
let noteToSave = this.checkForCommands(message, 'note'); let todoToSave = this.checkForCommands(message, 'todo');
this.saveNote(noteToSave); this.saveTodo(todoToSave);
} }
if (this.checkForCommands(message, 'clear')) { if (this.checkForCommands(message, 'clear')) {
@ -695,11 +695,11 @@ let kara = new Vue({
this.updateStorage(); this.updateStorage();
}, },
// Notes // Todos
saveNote(message) { saveTodo(message) {
this.takeNote = false; this.awaitTodo = false;
this.notes.push({ this.todos.push({
time: moment(), time: moment(),
body: message, body: message,
checked: false checked: false
@ -710,16 +710,16 @@ let kara = new Vue({
this.botMessage( this.botMessage(
this.oneOf([ this.oneOf([
"Saved! :)", "Saved! :)",
"You can read and check your notes in the clipboard-section. :)" "You can read and check your todos in the clipboard-section. :)"
]) ])
) )
}, },
clearNotes() { clearTodos() {
this.notes = []; this.todos = [];
this.botMessage( this.botMessage(
this.oneOf([ this.oneOf([
"Notes cleared. 🚮" "Todos cleared. 🚮"
]) ])
); );
@ -741,8 +741,8 @@ let kara = new Vue({
let savedMessages = JSON.parse(localStorage.getItem('messages')); let savedMessages = JSON.parse(localStorage.getItem('messages'));
this.messages = savedMessages ? savedMessages : []; this.messages = savedMessages ? savedMessages : [];
let savedNotes = JSON.parse(localStorage.getItem('notes')); let savedTodos = JSON.parse(localStorage.getItem('todos'));
this.notes = savedNotes ? savedNotes : []; this.todos = savedTodos ? savedTodos : [];
let savedLastMessage = JSON.parse(localStorage.getItem('lastMessage')); let savedLastMessage = JSON.parse(localStorage.getItem('lastMessage'));
this.lastMessage = savedLastMessage ? savedLastMessage : null; this.lastMessage = savedLastMessage ? savedLastMessage : null;
@ -758,7 +758,7 @@ let kara = new Vue({
localStorage.setItem('activeTheme', this.activeTheme); localStorage.setItem('activeTheme', this.activeTheme);
localStorage.setItem('messages', JSON.stringify(this.messages)); localStorage.setItem('messages', JSON.stringify(this.messages));
localStorage.setItem('answers', JSON.stringify(this.reactions)); localStorage.setItem('answers', JSON.stringify(this.reactions));
localStorage.setItem('notes', JSON.stringify(this.notes)); localStorage.setItem('todos', JSON.stringify(this.todos));
localStorage.setItem('lastMessage', JSON.stringify(this.lastMessage)); localStorage.setItem('lastMessage', JSON.stringify(this.lastMessage));
localStorage.setItem('location', JSON.stringify(this.location)); localStorage.setItem('location', JSON.stringify(this.location));
}, },
@ -918,6 +918,19 @@ let kara = new Vue({
} }
return costs[message2.length]; return costs[message2.length];
} },
// Speech
say(message) {
var speech = new SpeechSynthesisUtterance();
// Set the text and voice attributes.
speech.text = message;
speech.volume = 1;
speech.rate = 1;
speech.pitch = 1;
window.speechSynthesis.speak(speech);
},
} }
}) })

20
index.html

@ -22,7 +22,7 @@
<div class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#settingsModal"> <div class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#settingsModal">
<i class="fas fa-sliders-h"></i> <i class="fas fa-sliders-h"></i>
</div> </div>
<div class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#noteModal" v-if="notes.length > 0"> <div class="btn btn-sm btn-secondary" data-toggle="modal" data-target="#todoModal" v-if="todos.length > 0">
<i class="fas fa-clipboard"></i> <i class="fas fa-clipboard"></i>
</div> </div>
<div class="btn btn-sm btn-secondary" @click="scrollDown()"> <div class="btn btn-sm btn-secondary" @click="scrollDown()">
@ -73,33 +73,33 @@
required autofocus> required autofocus>
</div> </div>
<div class="modal fade" id="noteModal" tabindex="-1" role="dialog" aria-labelledby="noteModal" aria-hidden="true"> <div class="modal fade" id="todoModal" tabindex="-1" role="dialog" aria-labelledby="todoModal" aria-hidden="true">
<div class="modal-dialog" role="document"> <div class="modal-dialog" role="document">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title">Notes</h5> <h5 class="modal-title">Todos</h5>
<div class="float-right"> <div class="float-right">
<button class="btn btn-sm btn-secondary" @click="clearNotes"> <button class="btn btn-sm btn-secondary" @click="clearTodos">
<i class="fas fa-trash"></i> <i class="fas fa-trash"></i>
</button> </button>
</div> </div>
</div> </div>
<div class="modal-body" style="max-height: 800px; overflow-y: scroll"> <div class="modal-body" style="max-height: 800px; overflow-y: scroll">
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item" v-for="note in notes" v-if="!note.checked"> <li class="list-group-item" v-for="todo in todos" v-if="!todo.checked">
<span class="float-right"> <span class="float-right">
<input type="checkbox" v-model="note.checked" @change="updateStorage()"/> <input type="checkbox" v-model="todo.checked" @change="updateStorage()"/>
</span> </span>
{{ note.body }} {{ todo.body }}
</li> </li>
</ul> </ul>
<hr/> <hr/>
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item" v-for="note in notes" v-if="note.checked"> <li class="list-group-item" v-for="todo in todos" v-if="todo.checked">
<span class="float-right"> <span class="float-right">
<input type="checkbox" v-model="note.checked" @change="updateStorage()"/> <input type="checkbox" v-model="todo.checked" @change="updateStorage()"/>
</span> </span>
<span style="text-decoration: line-through;">{{ note.body }}</span> <span style="text-decoration: line-through;">{{ todo.body }}</span>
</li> </li>
</ul> </ul>
</div> </div>

Loading…
Cancel
Save