$data['incoming'] = read_directory('incoming');
} elseif ($_POST['func'] == 'archive') {
$data['archive'] = read_directory('archive');
+ } elseif ($_POST['func'] == 'archive_call') {
+ archive_call($_POST['call']);
+ } elseif ($_POST['func'] == 'delete_call') {
+ delete_call($_POST['dir'],$_POST['call']);
} elseif ($_POST['func'] == 'callinfo') {
$data = callinfo($_POST['dir'],$_POST['call']);
}
+var menu_list = {
+ 'title': 'Calls',
+ 'items': [{'name': 'Archive', 'callback': menu_list_archive},
+ {'name': 'Delete', 'callback': menu_list_delete},
+ {'name': 'Cancel', 'type': 'hide'}]
+};
+
function page_init()
{
var frame = document.getElementById('phonecall');
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 {
elem.innerHTML = text;
elem.payload = new Array();
elem.payload['dir'] = 'archive';
- elem.payload['fname'] = data.archive[i].fname;
+ elem.payload['call'] = data.archive[i].fname;
elem.onclick = play_message;
+ elem.oncontextmenu = list_context;
calls.appendChild(elem);
}
} else {
function play_message(event)
{
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 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_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_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';
+}
while (($filename = readdir($dir)) !== false) {
if (($pos = strpos($filename, '.vmsg')) !== false) {
$fname = substr($filename,0,$pos);
- $info = message_info('incoming', $fname);
+ $info = message_info($directory, $fname);
$info['fname'] = $fname;
$result[] = $info;
}
pclose($p);
}
-?>
\ No newline at end of file
+function archive_call($call)
+{
+ $basename = SPOOL_DIR . '/' . 'incoming' . '/' . $call;
+ $basenew = SPOOL_DIR . '/' . 'archive' . '/' . $call;
+
+ rename($basename . '.vmsg', $basenew . '.vmsg');
+ rename($basename . '.info', $basenew . '.info');
+}
+
+function delete_call($dir, $call)
+{
+ $basename = SPOOL_DIR . '/' . $dir . '/' . $call;
+
+ unlink($basename . '.vmsg');
+ unlink($basename . '.info');
+}
+
+?>