Fixes: Incorrect url used in GzipModule Disables Rich text editor in Port Forward environment
Work Items: 29936
This commit is contained in:
@@ -14,25 +14,27 @@ using umbraco.IO;
|
||||
namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin
|
||||
{
|
||||
/// <summary>
|
||||
/// Description of HttpHandler.
|
||||
/// </summary>
|
||||
public class GzipModule : IModule {
|
||||
/// <summary></summary>
|
||||
/// <param name="context">Request context.</param>
|
||||
public void ProcessRequest(HttpContext context) {
|
||||
HttpRequest request = context.Request;
|
||||
HttpResponse response = context.Response;
|
||||
HttpServerUtility server = context.Server;
|
||||
GzipCompressor gzipCompressor = new GzipCompressor();
|
||||
ConfigSection configSection = (ConfigSection) System.Web.HttpContext.Current.GetSection("TinyMCE");
|
||||
string suffix = "", enc;
|
||||
string[] languages = request.QueryString["languages"].Split(',');
|
||||
bool supportsGzip;
|
||||
/// Description of HttpHandler.
|
||||
/// </summary>
|
||||
public class GzipModule : IModule
|
||||
{
|
||||
/// <summary></summary>
|
||||
/// <param name="context">Request context.</param>
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
HttpRequest request = context.Request;
|
||||
HttpResponse response = context.Response;
|
||||
HttpServerUtility server = context.Server;
|
||||
GzipCompressor gzipCompressor = new GzipCompressor();
|
||||
ConfigSection configSection = (ConfigSection)System.Web.HttpContext.Current.GetSection("TinyMCE");
|
||||
string suffix = "", enc;
|
||||
string[] languages = request.QueryString["languages"].Split(',');
|
||||
bool supportsGzip;
|
||||
|
||||
// Set response headers
|
||||
response.ContentType = "text/javascript";
|
||||
response.Charset = "UTF-8";
|
||||
response.Buffer = false;
|
||||
// Set response headers
|
||||
response.ContentType = "text/javascript";
|
||||
response.Charset = "UTF-8";
|
||||
response.Buffer = false;
|
||||
|
||||
// UMBRACO: Populate the configsection if it's empty
|
||||
if (configSection == null)
|
||||
@@ -43,72 +45,78 @@ namespace umbraco.editorControls.tinyMCE3.webcontrol.plugin
|
||||
configSection.GzipExpiresOffset = TimeSpan.FromDays(10).Ticks;
|
||||
}
|
||||
|
||||
// Setup cache
|
||||
response.Cache.SetExpires(DateTime.Now.AddTicks(configSection.GzipExpiresOffset));
|
||||
response.Cache.SetCacheability(HttpCacheability.Public);
|
||||
response.Cache.SetValidUntilExpires(false);
|
||||
// Setup cache
|
||||
response.Cache.SetExpires(DateTime.Now.AddTicks(configSection.GzipExpiresOffset));
|
||||
response.Cache.SetCacheability(HttpCacheability.Public);
|
||||
response.Cache.SetValidUntilExpires(false);
|
||||
|
||||
// Check if it supports gzip
|
||||
enc = Regex.Replace("" + request.Headers["Accept-Encoding"], @"\s+", "").ToLower();
|
||||
supportsGzip = enc.IndexOf("gzip") != -1 || request.Headers["---------------"] != null;
|
||||
enc = enc.IndexOf("x-gzip") != -1 ? "x-gzip" : "gzip";
|
||||
// Check if it supports gzip
|
||||
enc = Regex.Replace("" + request.Headers["Accept-Encoding"], @"\s+", "").ToLower();
|
||||
supportsGzip = enc.IndexOf("gzip") != -1 || request.Headers["---------------"] != null;
|
||||
enc = enc.IndexOf("x-gzip") != -1 ? "x-gzip" : "gzip";
|
||||
|
||||
// Handle mode/suffix
|
||||
if (configSection.Mode != null)
|
||||
suffix = "_" + configSection.Mode;
|
||||
// Handle mode/suffix
|
||||
if (configSection.Mode != null)
|
||||
suffix = "_" + configSection.Mode;
|
||||
|
||||
gzipCompressor.AddData("var tinyMCEPreInit = {base : '" + new Uri(request.Url, configSection.InstallPath).ToString() + "', suffix : '" + suffix + "'};");
|
||||
gzipCompressor.AddData("var tinyMCEPreInit = {base : '" + configSection.InstallPath + "', suffix : '" + suffix + "'};");
|
||||
|
||||
// Add core
|
||||
gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/tiny_mce" + suffix + ".js"));
|
||||
// Add core
|
||||
gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/tiny_mce" + suffix + ".js"));
|
||||
|
||||
// Add core languages
|
||||
foreach (string lang in languages)
|
||||
// Add core languages
|
||||
foreach (string lang in languages)
|
||||
gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/langs/" + lang + ".js"));
|
||||
|
||||
// Add themes
|
||||
if (request.QueryString["themes"] != null) {
|
||||
foreach (string theme in request.QueryString["themes"].Split(',')) {
|
||||
// Add themes
|
||||
if (request.QueryString["themes"] != null)
|
||||
{
|
||||
foreach (string theme in request.QueryString["themes"].Split(','))
|
||||
{
|
||||
gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/themes/" + theme + "/editor_template" + suffix + ".js"));
|
||||
|
||||
// Add theme languages
|
||||
foreach (string lang in languages) {
|
||||
// Add theme languages
|
||||
foreach (string lang in languages)
|
||||
{
|
||||
string path = IOHelper.MapPath(configSection.InstallPath + "/themes/" + theme + "/langs/" + lang + ".js");
|
||||
|
||||
if (File.Exists(path))
|
||||
gzipCompressor.AddFile(path);
|
||||
}
|
||||
if (File.Exists(path))
|
||||
gzipCompressor.AddFile(path);
|
||||
}
|
||||
|
||||
gzipCompressor.AddData("tinymce.ThemeManager.urls['" + theme + "'] = tinymce.baseURL+'/themes/" + theme + "';");
|
||||
}
|
||||
}
|
||||
gzipCompressor.AddData("tinymce.ThemeManager.urls['" + theme + "'] = tinymce.baseURL+'/themes/" + theme + "';");
|
||||
}
|
||||
}
|
||||
|
||||
// Add plugins
|
||||
if (request.QueryString["plugins"] != null) {
|
||||
foreach (string plugin in request.QueryString["plugins"].Split(',')) {
|
||||
// Add plugins
|
||||
if (request.QueryString["plugins"] != null)
|
||||
{
|
||||
foreach (string plugin in request.QueryString["plugins"].Split(','))
|
||||
{
|
||||
gzipCompressor.AddFile(IOHelper.MapPath(configSection.InstallPath + "/plugins/" + plugin + "/editor_plugin" + suffix + ".js"));
|
||||
|
||||
// Add plugin languages
|
||||
foreach (string lang in languages) {
|
||||
// Add plugin languages
|
||||
foreach (string lang in languages)
|
||||
{
|
||||
string path = IOHelper.MapPath(configSection.InstallPath + "/plugins/" + plugin + "/langs/" + lang + ".js");
|
||||
|
||||
if (File.Exists(path))
|
||||
gzipCompressor.AddFile(path);
|
||||
}
|
||||
if (File.Exists(path))
|
||||
gzipCompressor.AddFile(path);
|
||||
}
|
||||
|
||||
gzipCompressor.AddData("tinymce.ThemeManager.urls['" + plugin + "'] = tinymce.baseURL+'/plugins/" + plugin + "';");
|
||||
}
|
||||
}
|
||||
gzipCompressor.AddData("tinymce.ThemeManager.urls['" + plugin + "'] = tinymce.baseURL+'/plugins/" + plugin + "';");
|
||||
}
|
||||
}
|
||||
|
||||
// Output compressed file
|
||||
gzipCompressor.NoCompression = !supportsGzip || configSection.GzipNoCompression;
|
||||
if (!gzipCompressor.NoCompression)
|
||||
response.AppendHeader("Content-Encoding", enc);
|
||||
// Output compressed file
|
||||
gzipCompressor.NoCompression = !supportsGzip || configSection.GzipNoCompression;
|
||||
if (!gzipCompressor.NoCompression)
|
||||
response.AppendHeader("Content-Encoding", enc);
|
||||
|
||||
gzipCompressor.DiskCache = configSection.GzipDiskCache;
|
||||
gzipCompressor.CachePath = configSection.GzipCachePath;
|
||||
gzipCompressor.DiskCache = configSection.GzipDiskCache;
|
||||
gzipCompressor.CachePath = configSection.GzipCachePath;
|
||||
|
||||
gzipCompressor.Compress(response.OutputStream);
|
||||
}
|
||||
}
|
||||
gzipCompressor.Compress(response.OutputStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user