diff --git a/Builder/IISMainHandler/build.txt b/Builder/IISMainHandler/build.txt index 696ee77..0a5d03c 100644 --- a/Builder/IISMainHandler/build.txt +++ b/Builder/IISMainHandler/build.txt @@ -1 +1 @@ -2030 \ No newline at end of file +2039 \ No newline at end of file diff --git a/FLocal.IISHandler/TemplateEngine.cs b/FLocal.IISHandler/TemplateEngine.cs index 5fd02d4..71e9169 100644 --- a/FLocal.IISHandler/TemplateEngine.cs +++ b/FLocal.IISHandler/TemplateEngine.cs @@ -111,7 +111,14 @@ namespace FLocal.IISHandler { lock(this.locker) { if(!this.cache.ContainsKey(templateName)) { XslCompiledTransform xslt = new XslCompiledTransform(); - xslt.Load(FLocal.Common.Config.instance.dataDir + "Templates" + FLocal.Common.Config.instance.DirSeparator + templateName); + var path = FLocal.Common.Config.instance.dataDir + "Templates" + FLocal.Common.Config.instance.DirSeparator + templateName; + try { + xslt.Load(path); + } catch(XsltCompileException) { + throw; + } catch(XsltException e) { + throw new Exception("Unable to load xslt file: " + path, e); + } this.cache[templateName] = xslt; } } diff --git a/FLocal.IISHandler/WebContext.cs b/FLocal.IISHandler/WebContext.cs index 22fee7e..f8d4741 100644 --- a/FLocal.IISHandler/WebContext.cs +++ b/FLocal.IISHandler/WebContext.cs @@ -198,6 +198,15 @@ namespace FLocal.IISHandler { } } + private static readonly Type BaseType = (new object()).GetType(); + private string getFullTypeName(Type type, int allowedIterations) { + if(allowedIterations <= 0 || type.BaseType == null || type.BaseType.FullName == BaseType.FullName || type.BaseType.FullName == type.FullName) { + return type.FullName; + } else { + return type.FullName + " : " + getFullTypeName(type.BaseType, allowedIterations-1); + } + } + public void LogError(Exception e) { string dir; if(e is AccessDeniedException) { @@ -218,7 +227,8 @@ namespace FLocal.IISHandler { writer.WriteLine("Session: " + this.httprequest.Cookies[Config.instance.CookiesPrefix + "_session"].Value); } writer.WriteLine(); - writer.WriteLine("Exception: " + e.GetType().FullName); + + writer.WriteLine("Exception: " + getFullTypeName(e.GetType(), 20)); writer.WriteLine("Guid: " + e.GetGuid().ToString()); writer.WriteLine(e.Message); if(e is FLocalException) { @@ -226,6 +236,8 @@ namespace FLocal.IISHandler { } else { writer.WriteLine(e.StackTrace); } + writer.WriteLine("=============================="); + writer.WriteLine(e.ToString()); } } diff --git a/Resources/FLocal/static/css/modern/blue.css b/Resources/FLocal/static/css/modern/blue.css index 166196e..fe0759f 100644 --- a/Resources/FLocal/static/css/modern/blue.css +++ b/Resources/FLocal/static/css/modern/blue.css @@ -110,6 +110,9 @@ blockquote .quotecontent { .metroicon-edit { background-image:url(/static/images/metro.icons/black/edit.png); } +.metroicon-i { + background-image:url(/static/images/metro.icons/black/i.png); +} .metroicon-mail { background-image:url(/static/images/metro.icons/black/mail.png); } diff --git a/Resources/FLocal/static/css/modern/high-contrast.css b/Resources/FLocal/static/css/modern/high-contrast.css index 79e5aa3..03eb818 100644 --- a/Resources/FLocal/static/css/modern/high-contrast.css +++ b/Resources/FLocal/static/css/modern/high-contrast.css @@ -90,6 +90,9 @@ blockquote .quotecontent { .metroicon-edit { background-image:url(/static/images/metro.icons/white/edit.png); } +.metroicon-i { + background-image:url(/static/images/metro.icons/white/i.png); +} .metroicon-mail { background-image:url(/static/images/metro.icons/white/mail.png); } diff --git a/Resources/FLocal/templates/Modern/elems/BoardInfo.xslt b/Resources/FLocal/templates/Modern/elems/BoardInfo.xslt index b179660..9992237 100644 --- a/Resources/FLocal/templates/Modern/elems/BoardInfo.xslt +++ b/Resources/FLocal/templates/Modern/elems/BoardInfo.xslt @@ -6,7 +6,7 @@
-
+
boardcontainer @@ -25,30 +25,15 @@

-

Тем:

-

Сообщений:

- -
- showChildren(this); - hideChildren(this); -
- Подразделы -
- -
-
-
+
showChildren(this); hideChildren(this);
- Информация + + i + Информация +
+
+

Тем:

+

Сообщений:

+