From a8de45a9baf98a1c77d1518421da848448537344 Mon Sep 17 00:00:00 2001 From: Francois Cartegnie Date: Fri, 21 Oct 2011 20:39:15 +0200 Subject: [PATCH] web intf: fix uri decoding when browsing. And now make use of URI --- share/lua/http/js/controlers.js | 10 +++++----- share/lua/intf/modules/httprequests.lua | 14 ++++++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/share/lua/http/js/controlers.js b/share/lua/http/js/controlers.js index fb21dd531d..43d70dadd7 100644 --- a/share/lua/http/js/controlers.js +++ b/share/lua/http/js/controlers.js @@ -163,16 +163,16 @@ function sendCommand(params,append){ } } function browse(dir){ - dir = dir==undefined ? '~' : dir; + dir = dir==undefined ? 'file://~' : dir; $.ajax({ url: 'requests/browse.xml', - data:'dir='+encodeURIComponent(dir), + data:'uri='+encodeURIComponent(dir), success: function(data,status,jqXHR){ var tgt = browse_target.indexOf('__')==-1 ? browse_target : browse_target.substr(0,browse_target.indexOf('__')); $('#browse_elements').empty(); $('element',data).each(function(){ if($(this).attr('type')=='dir' || $.inArray($(this).attr('name').substr(-3),video_types)!=-1 || $.inArray($(this).attr('name').substr(-3),audio_types)!=-1){ - $('#browse_elements').append(createElementLi($(this).attr('name'),$(this).attr('type'),$(this).attr('path'),$(this).attr('name').substr(-3))); + $('#browse_elements').append(createElementLi($(this).attr('name'),$(this).attr('type'),$(this).attr('uri'),$(this).attr('name').substr(-3))); } }); $('[opendir]').dblclick(function(){ @@ -195,7 +195,7 @@ function browse(dir){ case '#mobile': break; default: - sendCommand('command=in_play&input=file://'+encodeURIComponent($(this).attr('openfile'))); + sendCommand('command=in_play&input='+encodeURIComponent($(this).attr('openfile'))); break; } $('#window_browse').dialog('close'); @@ -212,7 +212,7 @@ function browse(dir){ $('[openfile]').click(function(){ switch(tgt){ case '#mobile': - sendCommand('command=in_play&input=file://'+encodeURIComponent($(this).attr('openfile')),"window.location='mobile.html'"); + sendCommand('command=in_play&input='+encodeURIComponent($(this).attr('openfile')),"window.location='mobile.html'"); break; default: break; diff --git a/share/lua/intf/modules/httprequests.lua b/share/lua/intf/modules/httprequests.lua index bed51a0e9d..3bc75f58b4 100644 --- a/share/lua/intf/modules/httprequests.lua +++ b/share/lua/intf/modules/httprequests.lua @@ -341,15 +341,21 @@ getbrowsetable = function () local uri = _GET["uri"] --uri takes precedence, but fall back to dir if uri then - dir = vlc.strings.make_path(uri) + if uri == "file://~" then + dir = uri + else + dir = vlc.strings.make_path(uri) + end else dir = _GET["dir"] end --backwards compatibility with old format driveLetter:\\.. --this is forgiving with the slash type and number - local position=string.find(dir, '%a:[\\/]*%.%.',0) - if position==1 then dir="" end + if dir then + local position=string.find(dir, '%a:[\\/]*%.%.',0) + if position==1 then dir="" end + end local result={} --paths are returned as an array of elements @@ -357,7 +363,7 @@ getbrowsetable = function () result.element._array={} if dir then - if dir == "~" then dir = vlc.misc.homedir() end + if dir == "~" or dir == "file://~" then dir = vlc.misc.homedir() end -- FIXME: hack for Win32 drive list if dir~="" then dir = common.realpath(dir.."/") -- 2.39.2