3 'items': [{'name': 'Archive', 'callback': menu_list_archive},
4 {'name': 'Delete', 'callback': menu_list_delete},
5 {'name': 'Cancel', 'type': 'hide'}]
10 var frame = document.getElementById('phonecall');
16 function fetch_incoming_callback(data)
18 var calls = document.getElementById('incoming_calls');
19 var div = document.getElementById('incoming');
21 while (calls.childNodes.length > 0)
22 calls.removeChild(calls.childNodes[0]);
24 if (data.incoming.length > 0) {
25 div.style.display = '';
27 for (var i=0; i < data.incoming.length; i++) {
28 var elem = document.createElement('li');
29 var text = data.incoming[i].date + ', ';
30 if (data.incoming[i].name == '*** Unknown ***' && data.incoming[i].number != '0')
31 text += data.incoming[i].number;
33 text += data.incoming[i].name;
34 text += ', ' + data.incoming[i].length;
36 elem.innerHTML = text;
37 elem.payload = new Array();
38 elem.payload['dir'] = 'incoming';
39 elem.payload['call'] = data.incoming[i].fname;
40 if (data.incoming[i].read == undefined)
41 elem.className = 'new';
42 elem.onclick = play_message;
43 elem.oncontextmenu = list_context;
44 calls.appendChild(elem);
47 div.style.display = 'none';
51 function fetch_incoming()
53 ajax_request('incoming', '', fetch_incoming_callback);
56 function fetch_archive_callback(data)
58 var calls = document.getElementById('archive_calls');
59 var div = document.getElementById('archive');
61 while (calls.childNodes.length > 0)
62 calls.removeChild(calls.childNodes[0]);
64 if (data.archive.length > 0) {
65 div.style.display = '';
67 for (var i=0; i < data.archive.length; i++) {
68 var elem = document.createElement('li');
69 var text = data.archive[i].date + ', ';
70 if (data.archive[i].name == '*** Unknown ***' && data.archive[i].number != '0')
71 text += data.archive[i].number;
73 text += data.archive[i].name;
74 text += ', ' + data.archive[i].length;
76 elem.innerHTML = text;
77 elem.payload = new Array();
78 elem.payload['dir'] = 'archive';
79 elem.payload['call'] = data.archive[i].fname;
80 elem.onclick = play_message;
81 elem.oncontextmenu = list_context;
82 calls.appendChild(elem);
85 div.style.display = 'none';
89 function fetch_archive()
91 ajax_request('archive', '', fetch_archive_callback);
94 function play_message_callback(data)
96 var speaker = document.getElementById('callspeaker');
97 var date = document.getElementById('calldate');
98 var note = document.getElementById('callnote');
100 var text = data.name;
101 if (data.number != '0') text += ' (' + data.number + ')';
102 speaker.innerHTML = text;
103 date.innerHTML = data.date + ', ' + data.length;
104 note.innerHTML = data.note;
107 function play_message(event)
109 var frame = document.getElementById('phonecall');
110 var params = 'dir='+event.originalTarget.payload['dir']+'&call='+event.originalTarget.payload['call'];
111 ajax_request('callinfo', params, play_message_callback);
112 frame.src = 'index.php?'+params;
113 event.originalTarget.className = '';
116 function list_context(e)
118 var menu = document.getElementById('menu_list');
120 menu = menu_create('menu_list', menu_list);
122 menu.style.left = e.pageX - 40;
123 menu.style.top = e.pageY - 15;
124 menu.style.display = '';
125 menu.payload = new Array();
126 menu.payload['dir'] = e.target.payload['dir'];
127 menu.payload['call'] = e.target.payload['call'];
132 function menu_list_archive_callback(data)
138 function menu_list_archive(e)
140 if (e.target.parentNode.payload['dir'] == 'incoming')
141 ajax_request('archive_call', 'call='+e.target.parentNode.payload['call'], menu_list_archive_callback);
143 e.target.parentNode.style.display = 'none';
146 function menu_list_delete(e)
148 var params = 'dir='+e.target.parentNode.payload['dir']+'&call='+e.target.parentNode.payload['call'];
149 ajax_request('delete_call', params, menu_list_archive_callback);
151 e.target.parentNode.style.display = 'none';