diff options
-rw-r--r-- | vmail-listmessages-html.lsp | 123 | ||||
-rw-r--r-- | vmail-model.lua | 8 |
2 files changed, 8 insertions, 123 deletions
diff --git a/vmail-listmessages-html.lsp b/vmail-listmessages-html.lsp index a6307d2..8baad2b 100644 --- a/vmail-listmessages-html.lsp +++ b/vmail-listmessages-html.lsp @@ -64,130 +64,9 @@ end </script> <script type="text/javascript"> - <% -- Browser detect script from http://www.quirksmode.org/js/detect.html %> - var BrowserDetect = { - init: function () { - this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; - this.version = this.searchVersion(navigator.userAgent) - || this.searchVersion(navigator.appVersion) - || "an unknown version"; - this.OS = this.searchString(this.dataOS) || "an unknown OS"; - }, - searchString: function (data) { - for (var i=0;i<data.length;i++) { - var dataString = data[i].string; - var dataProp = data[i].prop; - this.versionSearchString = data[i].versionSearch || data[i].identity; - if (dataString) { - if (dataString.indexOf(data[i].subString) != -1) - return data[i].identity; - } - else if (dataProp) - return data[i].identity; - } - }, - searchVersion: function (dataString) { - var index = dataString.indexOf(this.versionSearchString); - if (index == -1) return; - return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); - }, - dataBrowser: [ - { - string: navigator.userAgent, - subString: "Chrome", - identity: "Chrome" - }, - { string: navigator.userAgent, - subString: "OmniWeb", - versionSearch: "OmniWeb/", - identity: "OmniWeb" - }, - { - string: navigator.vendor, - subString: "Apple", - identity: "Safari", - versionSearch: "Version" - }, - { - prop: window.opera, - identity: "Opera" - }, - { - string: navigator.vendor, - subString: "iCab", - identity: "iCab" - }, - { - string: navigator.vendor, - subString: "KDE", - identity: "Konqueror" - }, - { - string: navigator.userAgent, - subString: "Firefox", - identity: "Firefox" - }, - { - string: navigator.vendor, - subString: "Camino", - identity: "Camino" - }, - { // for newer Netscapes (6+) - string: navigator.userAgent, - subString: "Netscape", - identity: "Netscape" - }, - { - string: navigator.userAgent, - subString: "MSIE", - identity: "Explorer", - versionSearch: "MSIE" - }, - { - string: navigator.userAgent, - subString: "Gecko", - identity: "Mozilla", - versionSearch: "rv" - }, - { // for older Netscapes (4-) - string: navigator.userAgent, - subString: "Mozilla", - identity: "Netscape", - versionSearch: "Mozilla" - } - ], - dataOS : [ - { - string: navigator.platform, - subString: "Win", - identity: "Windows" - }, - { - string: navigator.platform, - subString: "Mac", - identity: "Mac" - }, - { - string: navigator.userAgent, - subString: "iPhone", - identity: "iPhone/iPod" - }, - { - string: navigator.platform, - subString: "Linux", - identity: "Linux" - } - ] - }; - BrowserDetect.init(); - function PlayMessage() { $(".temporaryplayer").remove(); - if ( BrowserDetect.browser == "Safari" ) { - $(this).parent().parent().after("<tr class='temporaryplayer'><td colspan='9'><object type='audio/x-wav' data='" + $(this).attr("href") + "' width='100%' height='25'><param name='src' value='" + $(this).attr("href") + "'> <param name='autoplay' value='true'> <param name='autoStart' value='1'> </object></td></tr>"); - } else { - $(this).parent().parent().after("<tr class='temporaryplayer'><td colspan='9'><embed width='100%' height='25px' autostart='1' playcount='1' src='" + $(this).attr("href") + "' type='application/x-mplayer2'></embed></td></tr>"); - }; + $(this).parent().parent().parent().after("<tr class='temporaryplayer'><td colspan='9'><audio autoplay controls src='" + $(this).parent().prop("action") + "?submit=true&" + $(this).parent().serialize() + "'></audio></td></tr>"); return false; } function HandleMulti() { diff --git a/vmail-model.lua b/vmail-model.lua index 37b0c2d..8ebc970 100644 --- a/vmail-model.lua +++ b/vmail-model.lua @@ -419,7 +419,7 @@ mymodule.get_config = function() result.event_socket_ip = cfe({ value=config.event_socket_ip, label="FS Event Socket IP" }) result.event_socket_port = cfe({ value=config.event_socket_port, label="FS Event Socket Port" }) result.event_socket_password = cfe({ value=config.event_socket_password, label="FS Event Socket Password" }) - result.callback_command = cfe({ value=config.callback_command, label="FS API Command for Callback", desc="Use $1 for extension, $2 for wav filename, and $3 for originating user. No other parameters allowed." }) + result.callback_command = cfe({ value=config.callback_command, label="FS API Command for Callback", desc="Use $1 for extension, $2 for audio filename, and $3 for originating user. No other parameters allowed." }) return cfe({ type="group", value=result, label="Voicemail Config" }) end @@ -476,6 +476,12 @@ mymodule.download_message = function(self, downloadrequest) else file.label = posix.basename(tmp[1].file_path) file.value = fs.read_file(tmp[1].file_path) + file.length = #file.value + local option = string.match(file.label, "[^.]*$") + if "wav" == option then option = "x-wav" + elseif "mp3" == option then option = "mpeg" + end + file.option = "audio/"..option -- Mark the message as read voicemail_read(tmp[1].username, config.domain, downloadrequest.value.message.value) end |