This repository was archived by the owner on Oct 3, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpopup.js
More file actions
111 lines (79 loc) · 2.66 KB
/
popup.js
File metadata and controls
111 lines (79 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
// task constructor
(function() {
var pointer = 0,
acceptTask = null,
taskTray = null;
var Task = function (id, name, hasEnd, start, approxEnd, progress, extraTime) {
this.id = id || false;
this.name = name || false;
this.status = status || false;
this.hasEnd = hasEnd || false;
this.start = start || false;
this.approxEnd = approxEnd || false;
this.progress = progress || false;
this.extraTime = extraTime || false;
};
var injectTask = function(begin) {
var addedTask = JSON.parse( localStorage.getItem('task_tracker_storage') );
var _array = addedTask.array;
if(_array.length === 0) {
return;
}
var i = begin || 0;
var len = _array.length;
for(; i < len; i++) {
var entry = document.createElement('li');
entry.setAttribute('data-id', _array[i].id);
entry.innerHTML = _array[i].name;
if(_array[i].status === 'started') {
entry.className = 'active';
}
taskTray.appendChild(entry);
}
pointer = i;
};
var removeTask = function(taskId, target) {
var addedTask = JSON.parse( localStorage.getItem('task_tracker_storage') );
var id = taskId.split('-')[1];
addedTask.array.remove(id);
taskTray.removeChild(target);
localStorage.setItem( 'task_tracker_storage', JSON.stringify(addedTask) );
};
var init = function() {
acceptTask = document.getElementById('accept_task');
taskTray = document.getElementById('task_tray');
if(!localStorage.getItem('task_tracker_storage')) {
var taskJSON = {
"array": []
};
localStorage.setItem( 'task_tracker_storage', JSON.stringify(taskJSON) );
} else {
injectTask();
};
acceptTask.addEventListener('keyup', function(e) {
if(e.keyCode === 13 && this.value != '') {
var newTask = new Task(id = 'task-' + pointer, name = this.value);
var addedTask = JSON.parse( localStorage.getItem('task_tracker_storage') );
addedTask.array.push( newTask );
localStorage.setItem( 'task_tracker_storage', JSON.stringify(addedTask) );
this.value = '';
var tEvent = document.createEvent('Event');
tEvent.initEvent('newTaskAdded', true, true);
window.dispatchEvent(tEvent);
} else {
return;
}
}, false);
taskTray.addEventListener('click', function(e) {
var target = e.target;
var taskId = target.getAttribute('data-id');
removeTask(taskId, target);
}, false);
};
document.addEventListener('DOMContentLoaded', function () {
init();
}, false);
window.addEventListener('newTaskAdded', function() {
injectTask(pointer);
}, false);
})();