Browse Source

display program data path and bookmark in the dashboard

Luke Pulverenti 12 years ago
parent
commit
7736c8cefc

+ 10 - 0
MediaBrowser.Common.Implementations/HttpClientManager/HttpClientManager.cs

@@ -131,6 +131,16 @@ namespace MediaBrowser.Common.Implementations.HttpClientManager
                     await options.ResourcePool.WaitAsync(options.CancellationToken).ConfigureAwait(false);
                 }
 
+                if ((DateTime.UtcNow - client.LastTimeout).TotalSeconds < 30)
+                {
+                    if (options.ResourcePool != null)
+                    {
+                        options.ResourcePool.Release();
+                    }
+                    
+                    throw new HttpException(string.Format("Connection to {0} timed out", options.Url)) { IsTimedOut = true };
+                }
+                
                 _logger.Info("HttpClientManager.Get url: {0}", options.Url);
 
                 try

+ 6 - 0
MediaBrowser.Model/System/SystemInfo.cs

@@ -61,6 +61,12 @@ namespace MediaBrowser.Model.System
         /// <value>The id.</value>
         public string Id { get; set; }
 
+        /// <summary>
+        /// Gets or sets the program data path.
+        /// </summary>
+        /// <value>The program data path.</value>
+        public string ProgramDataPath { get; set; }
+        
         /// <summary>
         /// Initializes a new instance of the <see cref="SystemInfo"/> class.
         /// </summary>

+ 27 - 0
MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs

@@ -306,6 +306,33 @@ namespace MediaBrowser.Server.Implementations.HttpServer
                 return;
             }
 
+            var localPath = context.Request.Url.LocalPath;
+
+            if (string.Equals(localPath, "/mediabrowser/", StringComparison.OrdinalIgnoreCase))
+            {
+                context.Response.Redirect(DefaultRedirectPath);
+                context.Response.Close();
+                return;
+            }
+            if (string.Equals(localPath, "/mediabrowser", StringComparison.OrdinalIgnoreCase))
+            {
+                context.Response.Redirect("mediabrowser/" + DefaultRedirectPath);
+                context.Response.Close();
+                return;
+            }
+            if (string.Equals(localPath, "/", StringComparison.OrdinalIgnoreCase))
+            {
+                context.Response.Redirect("mediabrowser/" + DefaultRedirectPath);
+                context.Response.Close();
+                return;
+            }
+            if (string.IsNullOrEmpty(localPath))
+            {
+                context.Response.Redirect("/mediabrowser/" + DefaultRedirectPath);
+                context.Response.Close();
+                return;
+            }
+
             RaiseReceiveWebRequest(context);
 
             await Task.Factory.StartNew(() =>

+ 3 - 2
MediaBrowser.ServerApplication/ApplicationHost.cs

@@ -191,7 +191,7 @@ namespace MediaBrowser.ServerApplication
         {
             base.OnLoggerLoaded();
 
-            _httpServerCreationTask = Task.Run(() => ServerFactory.CreateServer(this, LogManager, "Media Browser", "index.html"));
+            _httpServerCreationTask = Task.Run(() => ServerFactory.CreateServer(this, LogManager, "Media Browser", "dashboard/index.html"));
         }
 
         /// <summary>
@@ -516,7 +516,8 @@ namespace MediaBrowser.ServerApplication
                 FailedPluginAssemblies = FailedAssemblies.ToArray(),
                 InProgressInstallations = InstallationManager.CurrentInstallations.Select(i => i.Item1).ToArray(),
                 CompletedInstallations = InstallationManager.CompletedInstallations.ToArray(),
-                Id = _systemId
+                Id = _systemId,
+                ProgramDataPath = ApplicationPaths.ProgramDataPath
             };
         }