[vlc-commits] web intf: fix uri decoding when browsing.

Francois Cartegnie git at videolan.org
Fri Oct 21 22:47:13 CEST 2011


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Fri Oct 21 20:39:15 2011 +0200| [a8de45a9baf98a1c77d1518421da848448537344] | committer: Francois Cartegnie

web intf: fix uri decoding when browsing.

And now make use of URI

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a8de45a9baf98a1c77d1518421da848448537344
---

 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 fb21dd5..43d70da 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 bed51a0..3bc75f5 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.."/")



More information about the vlc-commits mailing list