highlight current line
[infodrom/phone] / phone.js
1 function page_init()
2 {
3     var frame = document.getElementById('phonecall');
4     frame.src = '';
5     fetch_incoming();
6     fetch_archive();
7 }
8
9 function fetch_incoming_callback(data)
10 {
11     var calls = document.getElementById('incoming_calls');
12     var div = document.getElementById('incoming');
13
14     while (calls.childNodes.length > 0)
15         calls.removeChild(calls.childNodes[0]);
16
17     if (data.incoming.length > 0) {
18         div.style.display = '';
19
20         for (var i=0; i < data.incoming.length; i++) {
21             var elem = document.createElement('li');
22             var text = data.incoming[i].date + ', ';
23             if (data.incoming[i].name == '*** Unknown ***' && data.incoming[i].number != '0')
24                 text += data.incoming[i].number;
25             else
26                 text += data.incoming[i].name;
27             text += ', ' + data.incoming[i].length;
28
29             elem.innerHTML = text;
30             elem.payload = new Array();
31             elem.payload['dir'] = 'incoming';
32             elem.payload['fname'] = data.incoming[i].fname;
33             if (data.incoming[i].read == undefined)
34                 elem.className = 'new';
35             elem.onclick = play_message;
36             calls.appendChild(elem);
37         }
38     } else {
39         div.style.display = 'none';
40     }
41 }
42
43 function fetch_incoming()
44 {
45     ajax_request('incoming', '', fetch_incoming_callback);
46 }
47
48 function fetch_archive_callback(data)
49 {
50     var calls = document.getElementById('archive_calls');
51     var div = document.getElementById('archive');
52
53     while (calls.childNodes.length > 0)
54         calls.removeChild(calls.childNodes[0]);
55
56     if (data.archive.length > 0) {
57         div.style.display = '';
58
59         for (var i=0; i < data.archive.length; i++) {
60             var elem = document.createElement('li');
61             var text = data.archive[i].date + ', ';
62             if (data.archive[i].name == '*** Unknown ***' && data.archive[i].number != '0')
63                 text += data.archive[i].number;
64             else
65                 text += data.archive[i].name;
66             text += ', ' + data.archive[i].length;
67
68             elem.innerHTML = text;
69             elem.payload = new Array();
70             elem.payload['dir'] = 'archive';
71             elem.payload['fname'] = data.archive[i].fname;
72             elem.onclick = play_message;
73             calls.appendChild(elem);
74         }
75     } else {
76         div.style.display = 'none';
77     }
78 }
79
80 function fetch_archive()
81 {
82     ajax_request('archive', '', fetch_archive_callback);
83 }
84
85 function play_message_callback(data)
86 {
87     var speaker = document.getElementById('callspeaker');
88     var date = document.getElementById('calldate');
89     var note = document.getElementById('callnote');
90
91     var text = data.name;
92     if (data.number != '0') text += ' (' + data.number + ')';
93     speaker.innerHTML = text;
94     date.innerHTML = data.date + ', ' + data.length;
95     note.innerHTML = data.note;
96 }
97
98 function play_message(event)
99 {
100     var frame = document.getElementById('phonecall');
101     var parms = 'dir='+event.originalTarget.payload['dir']+'&call='+event.originalTarget.payload['fname'];
102     ajax_request('callinfo', parms, play_message_callback);
103     frame.src = 'index.php?'+parms;
104     event.originalTarget.className = '';
105 }