+var menu_list = {
+ 'title': 'Calls',
+ 'items': [{'name': 'Archive', 'callback': menu_list_archive},
+ {'name': 'Edit', 'callback': menu_list_edit},
+ {'name': 'Delete', 'callback': menu_list_delete},
+ {'name': 'Cancel', 'type': 'hide'}]
+};
+
function page_init()
{
var frame = document.getElementById('phonecall');
frame.src = '';
fetch_incoming();
+ fetch_archive();
+}
+
+function reload()
+{
+ fetch_incoming();
+ fetch_archive();
}
function fetch_incoming_callback(data)
elem.innerHTML = text;
elem.payload = new Array();
elem.payload['dir'] = 'incoming';
- elem.payload['fname'] = data.incoming[i].fname;
+ elem.payload['call'] = data.incoming[i].fname;
+ if (data.incoming[i].read == undefined)
+ elem.className = 'new';
elem.onclick = play_message;
+ elem.oncontextmenu = list_context;
calls.appendChild(elem);
}
} else {
ajax_request('incoming', '', fetch_incoming_callback);
}
+function fetch_archive_callback(data)
+{
+ var calls = document.getElementById('archive_calls');
+ var div = document.getElementById('archive');
+
+ while (calls.childNodes.length > 0)
+ calls.removeChild(calls.childNodes[0]);
+
+ if (data.archive.length > 0) {
+ div.style.display = '';
+
+ for (var i=0; i < data.archive.length; i++) {
+ var elem = document.createElement('li');
+ var text = data.archive[i].date + ', ';
+ if (data.archive[i].name == '*** Unknown ***' && data.archive[i].number != '0')
+ text += data.archive[i].number;
+ else
+ text += data.archive[i].name;
+ text += ', ' + data.archive[i].length;
+
+ elem.innerHTML = text;
+ elem.payload = new Array();
+ elem.payload['dir'] = 'archive';
+ elem.payload['call'] = data.archive[i].fname;
+ elem.onclick = play_message;
+ elem.oncontextmenu = list_context;
+ calls.appendChild(elem);
+ }
+ } else {
+ div.style.display = 'none';
+ }
+}
+
+function fetch_archive()
+{
+ ajax_request('archive', '', fetch_archive_callback);
+}
+
function play_message_callback(data)
{
var speaker = document.getElementById('callspeaker');
var date = document.getElementById('calldate');
var note = document.getElementById('callnote');
- Debug.ObjDump(data);
-
var text = data.name;
if (data.number != '0') text += ' (' + data.number + ')';
speaker.innerHTML = text;
function play_message(event)
{
- Debug.write('Request ' + event.originalTarget.payload['fname'] + ' in ' + event.originalTarget.payload['dir']);
-
var frame = document.getElementById('phonecall');
- var parms = 'dir='+event.originalTarget.payload['dir']+'&call='+event.originalTarget.payload['fname'];
- ajax_request('callinfo', parms, play_message_callback);
- // frame.src = 'index.php?'+parms;
+ var params = 'dir='+event.originalTarget.payload['dir']+'&call='+event.originalTarget.payload['call'];
+ ajax_request('callinfo', params, play_message_callback);
+ frame.src = 'index.php?'+params;
+ event.originalTarget.className = '';
+}
+
+function save_callback(data)
+{
+ field = document.getElementById('edit_status');
+ field.innerHTML = 'Call saved';
+}
+
+function save()
+{
+ var dir = document.getElementById('edit_dir');
+ var call = document.getElementById('edit_call');
+ var name = document.getElementById('edit_name');
+ var note = document.getElementById('edit_note');
+ var params = 'dir=' + dir.value + '&call=' + call.value;
+ params += '&name=' + name.value + '¬e=' + note.value;
+
+ ajax_request('save', params, save_callback);
+}
+
+function list_context(e)
+{
+ var menu = document.getElementById('menu_list');
+ if (!menu)
+ menu = menu_create('menu_list', menu_list);
+
+ menu.style.left = e.pageX - 40;
+ menu.style.top = e.pageY - 15;
+ menu.style.display = '';
+ menu.payload = new Array();
+ menu.payload['dir'] = e.target.payload['dir'];
+ menu.payload['call'] = e.target.payload['call'];
+
+ return false;
+}
+
+function menu_list_archive_callback(data)
+{
+ fetch_incoming();
+ fetch_archive();
+}
+
+function menu_list_edit_callback(data)
+{
+ var fields = ['name','note','dir','call'];
+ var field;
+
+ for (var i=0; i < fields.length; i++) {
+ field = document.getElementById('edit_' + fields[i]);
+ field.value = data[fields[i]];
+ }
+
+ fields = ['name','note'];
+ for (var i=0; i < fields.length; i++) {
+ field = document.getElementById('edit_' + fields[i]);
+ field.innerHTML = data[fields[i]];
+ }
+
+ field = document.getElementById('edit_date');
+ field.innerHTML = data.date + ', ' + data.length;
+ field = document.getElementById('edit_status');
+ field.innerHTML = '';
+}
+
+function menu_list_archive(e)
+{
+ if (e.target.parentNode.payload['dir'] == 'incoming')
+ ajax_request('archive_call', 'call='+e.target.parentNode.payload['call'], menu_list_archive_callback);
+
+ e.target.parentNode.style.display = 'none';
+}
+
+function menu_list_edit(e)
+{
+ var params = 'dir='+e.target.parentNode.payload['dir']+'&call='+e.target.parentNode.payload['call'];
+ ajax_request('callinfo', params, menu_list_edit_callback);
+
+ e.target.parentNode.style.display = 'none';
+}
+
+function menu_list_delete(e)
+{
+ var params = 'dir='+e.target.parentNode.payload['dir']+'&call='+e.target.parentNode.payload['call'];
+ ajax_request('delete_call', params, menu_list_archive_callback);
+
+ e.target.parentNode.style.display = 'none';
}