$data['call'] = $_POST['call'];
} elseif ($_POST['func'] == 'save') {
save_call();
+ } elseif ($_POST['func'] == 'messages') {
+ $data['messages'] = read_directory('messages');
}
header('Content-type: application/json; charset=UTF-8');
echo json_encode($data);
</div>
<div class="controls">
-<img src="lib/reload.png" onclick="reload()" title="Check phone box">
+<img src="lib/reload.png" onclick="reload()" title="Check phone box"><br>
+<img src="lib/config.png" onclick="toggle_messages()" title="Display configured messages" style="margin-top: 10px;">
</div>
<div class="phonecall">
<p id="callnote"></p>
</div>
-<div class="editcall">
+<div class="editcall" id="container_edit">
<p class="title">Edit message</p>
<div style="padding-left: 5px;">
<form id="edit_form">
</div>
</div>
+<div class="editcall" id="container_config" >
+<p class="title">Configured messages</p>
+<ul class="phonelist" id="internal_calls">
+<li>Loading data...</li>
+</ul>
+</div>
+
</body>
</html>
fetch_archive();
}
+function remove_children(obj)
+{
+ while (obj.childNodes.length > 0)
+ obj.removeChild(obj.childNodes[0]);
+}
+
function fetch_incoming_callback(data)
{
var calls = document.getElementById('incoming_calls');
var div = document.getElementById('incoming');
- while (calls.childNodes.length > 0)
- calls.removeChild(calls.childNodes[0]);
+ remove_children(calls);
if (data.incoming.length > 0) {
div.style.display = '';
var calls = document.getElementById('archive_calls');
var div = document.getElementById('archive');
- while (calls.childNodes.length > 0)
- calls.removeChild(calls.childNodes[0]);
+ remove_children(calls);
if (data.archive.length > 0) {
div.style.display = '';
var date = document.getElementById('calldate');
var note = document.getElementById('callnote');
+ if (data.dir == 'messages') {
+ date.innerHTML = ' ';
+ speaker.innerHTML = 'Message ' + data.call;
+ note.innerHTML = '';
+ return;
+ }
+
var text = data.name;
if (data.number != '0') text += ' (' + data.number + ')';
speaker.innerHTML = text;
ajax_request('callinfo', params, menu_list_edit_callback);
e.target.parentNode.style.display = 'none';
+
+ var edit = document.getElementById('container_edit');
+ var config = document.getElementById('container_config');
+
+ edit.style.display = '';
+ config.style.display = 'none';
}
function menu_list_delete(e)
e.target.parentNode.style.display = 'none';
}
+
+function fetch_messages_callback(data)
+{
+ var calls = document.getElementById('internal_calls');
+
+ remove_children(calls);
+
+ if (data.messages.length > 0) {
+ for (var i=0; i < data.messages.length; i++) {
+ var elem = document.createElement('li');
+
+ elem.innerHTML = data.messages[i].fname;
+ elem.payload = new Array();
+ elem.payload['dir'] = 'messages';
+ elem.payload['call'] = data.messages[i].fname;
+ elem.onclick = play_message;
+ calls.appendChild(elem);
+ }
+ }
+}
+
+function toggle_messages()
+{
+ var edit = document.getElementById('container_edit');
+ var config = document.getElementById('container_config');
+
+ config.style.display = '';
+ edit.style.display = 'none';
+
+ ajax_request('messages', '', fetch_messages_callback);
+}
if ($dir = opendir(SPOOL_DIR . '/' . $directory)) {
while (($filename = readdir($dir)) !== false) {
- if (($pos = strpos($filename, '.vmsg')) !== false) {
+ if (($pos = strpos($filename, '.vmsg')) !== false || ($pos = strpos($filename, '.msg')) !== false) {
$fname = substr($filename,0,$pos);
$info = message_info($directory, $fname);
$info['fname'] = $fname;
{
$dir = str_replace('/','x',$dir);
$call = str_replace('/','x',$call);
- $fname = SPOOL_DIR . '/' . $dir . '/' . $call . '.vmsg';
+
+ if ($dir == 'messages')
+ $ext = '.msg';
+ else
+ $ext = '.vmsg';
+
+ $fname = SPOOL_DIR . '/' . $dir . '/' . $call . $ext;
if (!is_file($fname)) {
printf("<html><body><h3>Anruf %s in %s nicht gefunden!</h3></body></html>", $call, $dir);