From b8b77c7f3874c2cda4017281c5345a3bec5451f0 Mon Sep 17 00:00:00 2001
From: inga-lovinde <52715130+inga-lovinde@users.noreply.github.com>
Date: Sun, 26 Sep 2010 13:07:18 +0000
Subject: [PATCH] ModernSkin setting implemented
---
Builder/IISMainHandler/build.txt | 2 +-
Common/Common.csproj | 1 +
Common/dataobjects/AccountSettings.cs | 18 ++++-
Common/dataobjects/AnonymousUserSettings.cs | 8 +++
Common/dataobjects/IUserSettings.cs | 5 ++
Common/dataobjects/ModernSkin.cs | 70 +++++++++++++++++++
IISMainHandler/handlers/AbstractGetHandler.cs | 1 +
.../handlers/request/AbstractPostHandler.cs | 1 +
.../handlers/request/SettingsHandler.cs | 3 +-
.../handlers/response/SettingsHandler.cs | 1 +
static/css/modern/global.css | 2 +-
.../{penartur.css => high-contrast.css} | 16 +----
templates/Full/Settings.xslt | 20 ++++++
templates/Modern/Settings.xslt | 24 ++++++-
templates/Modern/elems/Main.xslt | 8 +--
15 files changed, 155 insertions(+), 25 deletions(-)
create mode 100644 Common/dataobjects/ModernSkin.cs
rename static/css/modern/{penartur.css => high-contrast.css} (72%)
diff --git a/Builder/IISMainHandler/build.txt b/Builder/IISMainHandler/build.txt
index 98ced61..32196ac 100644
--- a/Builder/IISMainHandler/build.txt
+++ b/Builder/IISMainHandler/build.txt
@@ -1 +1 @@
-1696
\ No newline at end of file
+1702
\ No newline at end of file
diff --git a/Common/Common.csproj b/Common/Common.csproj
index 1d81187..e75f5a6 100644
--- a/Common/Common.csproj
+++ b/Common/Common.csproj
@@ -101,6 +101,7 @@
+
diff --git a/Common/dataobjects/AccountSettings.cs b/Common/dataobjects/AccountSettings.cs
index 48e5ede..f933cd5 100644
--- a/Common/dataobjects/AccountSettings.cs
+++ b/Common/dataobjects/AccountSettings.cs
@@ -21,6 +21,7 @@ namespace FLocal.Common.dataobjects {
public const string FIELD_USERSPERPAGE = "UsersPerPage";
public const string FIELD_BOARDSVIEWSETTINGS = "BoardsViewSettings";
public const string FIELD_SKINID = "SkinId";
+ public const string FIELD_MODERNSKINID = "ModernSkinId";
public const string FIELD_MACHICHARAID = "MachicharaId";
public static readonly TableSpec instance = new TableSpec();
public string name { get { return TABLE; } }
@@ -90,6 +91,19 @@ namespace FLocal.Common.dataobjects {
}
}
+ private int _modernSkinId;
+ public int modernSkinId {
+ get {
+ this.LoadIfNotLoaded();
+ return this._modernSkinId;
+ }
+ }
+ public ModernSkin modernSkin {
+ get {
+ return ModernSkin.LoadById(this.modernSkinId);
+ }
+ }
+
private int _machicharaId;
public int machicharaId {
get {
@@ -118,6 +132,7 @@ namespace FLocal.Common.dataobjects {
this._usersPerPage = int.Parse(data[TableSpec.FIELD_USERSPERPAGE]);
this._boardsViewSettings = data[TableSpec.FIELD_BOARDSVIEWSETTINGS];
this._skinId = int.Parse(data[TableSpec.FIELD_SKINID]);
+ this._modernSkinId = int.Parse(data[TableSpec.FIELD_MODERNSKINID]);
this._machicharaId = int.Parse(data[TableSpec.FIELD_MACHICHARAID]);
}
@@ -158,13 +173,14 @@ namespace FLocal.Common.dataobjects {
}
}
- public static void Save(Account account, int postsPerPage, int threadsPerPage, int usersPerPage, int uploadsPerPage, Skin skin, Machichara machichara) {
+ public static void Save(Account account, int postsPerPage, int threadsPerPage, int usersPerPage, int uploadsPerPage, Skin skin, ModernSkin modernSkin, Machichara machichara) {
Dictionary dataToUpdate = new Dictionary {
{ TableSpec.FIELD_POSTSPERPAGE, new ScalarFieldValue(postsPerPage.ToString()) },
{ TableSpec.FIELD_THREADSPERPAGE, new ScalarFieldValue(threadsPerPage.ToString()) },
{ TableSpec.FIELD_USERSPERPAGE, new ScalarFieldValue(usersPerPage.ToString()) },
{ TableSpec.FIELD_UPLOADSPERPAGE, new ScalarFieldValue(uploadsPerPage.ToString()) },
{ TableSpec.FIELD_SKINID, new ScalarFieldValue(skin.id.ToString()) },
+ { TableSpec.FIELD_MODERNSKINID, new ScalarFieldValue(modernSkin.id.ToString()) },
{ TableSpec.FIELD_MACHICHARAID, new ScalarFieldValue(machichara.id.ToString()) },
};
Dictionary dataToInsert = new Dictionary(dataToUpdate) {
diff --git a/Common/dataobjects/AnonymousUserSettings.cs b/Common/dataobjects/AnonymousUserSettings.cs
index 558b65a..8962ec6 100644
--- a/Common/dataobjects/AnonymousUserSettings.cs
+++ b/Common/dataobjects/AnonymousUserSettings.cs
@@ -11,6 +11,7 @@ namespace FLocal.Common.dataobjects {
var allSkins = Skin.allSkins.ToArray();
//this._skinId = allSkins[Util.RandomInt(0, allSkins.Length)].id;
this._skinId = 28;
+ this._modernSkinId = 1;
this._machicharaId = 2;
}
@@ -45,6 +46,13 @@ namespace FLocal.Common.dataobjects {
}
}
+ private int _modernSkinId;
+ public ModernSkin modernSkin {
+ get {
+ return ModernSkin.LoadById(this._modernSkinId);
+ }
+ }
+
private int _machicharaId;
public Machichara machichara {
get {
diff --git a/Common/dataobjects/IUserSettings.cs b/Common/dataobjects/IUserSettings.cs
index f255d0c..695a215 100644
--- a/Common/dataobjects/IUserSettings.cs
+++ b/Common/dataobjects/IUserSettings.cs
@@ -27,6 +27,10 @@ namespace FLocal.Common.dataobjects {
get;
}
+ ModernSkin modernSkin {
+ get;
+ }
+
Machichara machichara {
get;
}
@@ -44,6 +48,7 @@ namespace FLocal.Common.dataobjects {
new XElement("usersPerPage", settings.usersPerPage),
new XElement("uploadsPerPage", settings.uploadsPerPage),
new XElement("skinId", settings.skin.id),
+ new XElement("modernSkinId", settings.modernSkin.id),
new XElement("machicharaId", settings.machichara.id)
);
}
diff --git a/Common/dataobjects/ModernSkin.cs b/Common/dataobjects/ModernSkin.cs
new file mode 100644
index 0000000..80af3b7
--- /dev/null
+++ b/Common/dataobjects/ModernSkin.cs
@@ -0,0 +1,70 @@
+п»їusing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Xml.Linq;
+using FLocal.Core;
+using FLocal.Core.DB;
+using FLocal.Core.DB.conditions;
+
+namespace FLocal.Common.dataobjects {
+ public class ModernSkin : SqlObject {
+
+ public class TableSpec : ISqlObjectTableSpec {
+ public const string TABLE = "ModernSkins";
+ public const string FIELD_ID = "Id";
+ public const string FIELD_NAME = "SkinName";
+ public static readonly TableSpec instance = new TableSpec();
+ public string name { get { return TABLE; } }
+ public string idName { get { return FIELD_ID; } }
+ public void refreshSqlObject(int id) { Refresh(id); }
+ }
+
+ protected override ISqlObjectTableSpec table { get { return TableSpec.instance; } }
+
+ private string _name;
+ public string name {
+ get {
+ this.LoadIfNotLoaded();
+ return this._name;
+ }
+ }
+
+ protected override void doFromHash(Dictionary data) {
+ this._name = data[TableSpec.FIELD_NAME];
+ }
+
+ private static readonly object allSkins_Locker = new object();
+ public static IEnumerable allSkins {
+ get {
+ return
+ from id in Cache>.instance.get(
+ allSkins_Locker,
+ () => {
+ List ids = (from stringId in Config.instance.mainConnection.LoadIdsByConditions(
+ TableSpec.instance,
+ new FLocal.Core.DB.conditions.EmptyCondition(),
+ Diapasone.unlimited
+ ) select int.Parse(stringId)).ToList();
+ ModernSkin.LoadByIds(ids);
+ return ids;
+ }
+ )
+ let skin = ModernSkin.LoadById(id)
+ orderby skin.id
+ select skin;
+ }
+ }
+ internal static void allSkins_Reset() {
+ Cache>.instance.delete(allSkins_Locker);
+ }
+
+ public XElement exportToXml() {
+ return new XElement("modernSkin",
+ new XElement("id", this.id),
+ new XElement("name", this.name)
+ );
+ }
+
+ }
+}
diff --git a/IISMainHandler/handlers/AbstractGetHandler.cs b/IISMainHandler/handlers/AbstractGetHandler.cs
index 6bb6bf9..21b33ed 100644
--- a/IISMainHandler/handlers/AbstractGetHandler.cs
+++ b/IISMainHandler/handlers/AbstractGetHandler.cs
@@ -28,6 +28,7 @@ namespace FLocal.IISHandler.handlers {
new XElement("current", DateTime.Now.ToXml()),
context.exportSession(),
context.userSettings.skin.exportToXml(),
+ context.userSettings.modernSkin.exportToXml(),
context.userSettings.machichara.exportToXml(),
context.exportRequestParameters(),
};
diff --git a/IISMainHandler/handlers/request/AbstractPostHandler.cs b/IISMainHandler/handlers/request/AbstractPostHandler.cs
index 74cb38c..4bf2ff6 100644
--- a/IISMainHandler/handlers/request/AbstractPostHandler.cs
+++ b/IISMainHandler/handlers/request/AbstractPostHandler.cs
@@ -33,6 +33,7 @@ namespace FLocal.IISHandler.handlers.request {
new XElement("title", Config.instance.AppInfo),
new XElement("timestamp", DateTime.Now.Ticks.ToString()),
context.userSettings.skin.exportToXml(),
+ context.userSettings.modernSkin.exportToXml(),
context.userSettings.machichara.exportToXml(),
context.exportSession(),
context.exportRequestParameters(),
diff --git a/IISMainHandler/handlers/request/SettingsHandler.cs b/IISMainHandler/handlers/request/SettingsHandler.cs
index 78b06b6..9a19fed 100644
--- a/IISMainHandler/handlers/request/SettingsHandler.cs
+++ b/IISMainHandler/handlers/request/SettingsHandler.cs
@@ -25,6 +25,7 @@ namespace FLocal.IISHandler.handlers.request {
int usersPerPage = int.Parse(context.httprequest.Form["usersPerPage"]);
int uploadsPerPage = int.Parse(context.httprequest.Form["uploadsPerPage"]);
Skin skin = Skin.LoadById(int.Parse(context.httprequest.Form["skinId"]));
+ ModernSkin modernSkin = ModernSkin.LoadById(int.Parse(context.httprequest.Form["modernSkinId"]));
Machichara machichara = Machichara.LoadById(int.Parse(context.httprequest.Form["machicharaId"]));
if((postsPerPage < 1) || (postsPerPage > 200)) throw new FLocalException("wrong number for postsPerPage");
@@ -34,7 +35,7 @@ namespace FLocal.IISHandler.handlers.request {
if(!context.account.checkPassword(currentPassword)) throw new FLocalException("Wrong password. You should enter your current password in order to change settings.");
- AccountSettings.Save(context.session.account, postsPerPage, threadsPerPage, usersPerPage, uploadsPerPage, skin, machichara);
+ AccountSettings.Save(context.session.account, postsPerPage, threadsPerPage, usersPerPage, uploadsPerPage, skin, modernSkin, machichara);
if(newPassword != null && newPassword != "") {
context.account.updatePassword(newPassword);
diff --git a/IISMainHandler/handlers/response/SettingsHandler.cs b/IISMainHandler/handlers/response/SettingsHandler.cs
index a49d469..bca6b68 100644
--- a/IISMainHandler/handlers/response/SettingsHandler.cs
+++ b/IISMainHandler/handlers/response/SettingsHandler.cs
@@ -24,6 +24,7 @@ namespace FLocal.IISHandler.handlers.response {
return new XElement[] {
settings.exportToXml(context),
new XElement("skins", from skin in Skin.allSkins select skin.exportToXml()),
+ new XElement("modernSkins", from modernSkin in ModernSkin.allSkins select modernSkin.exportToXml()),
new XElement("machicharas", from machichara in Machichara.allMachicharas select machichara.exportToXml())
};
}
diff --git a/static/css/modern/global.css b/static/css/modern/global.css
index 08e27c9..f5c41fb 100644
--- a/static/css/modern/global.css
+++ b/static/css/modern/global.css
@@ -98,7 +98,7 @@ input {
[nobr] {
white-space: nowrap;
}
-.postcontainer, .pmcontainer {
+.postcontainer, .pmcontainer, .uploadcontainer {
border-style:none none solid none;
border-width:0 0 1px 0;
padding-bottom:5pt;
diff --git a/static/css/modern/penartur.css b/static/css/modern/high-contrast.css
similarity index 72%
rename from static/css/modern/penartur.css
rename to static/css/modern/high-contrast.css
index aff2fd3..100ed52 100644
--- a/static/css/modern/penartur.css
+++ b/static/css/modern/high-contrast.css
@@ -15,7 +15,7 @@ PRE{background-color:#303030;font-size:0.9em;BORDER:#999999 1px solid;PADDING: 0
.confluent{COLOR:black;}
-.postcontainer, .pmcontainer {
+.postcontainer, .pmcontainer, .uploadcontainer {
border-color:#808080;
}
.pmcontainer.unread {
@@ -50,20 +50,6 @@ blockquote {
background-color:#1C281C;
}
-.tablesurround{BACKGROUND:#191919;margin-top:-0.1em;margin-bottom:-0.1em}
-.tableborders{BACKGROUND:#191919}
-.tdheader{FONT-WEIGHT:bold;font-size:1em;BACKGROUND:#333333;color:#ffffff}
-.tdheader a{font-size:1em;color:#dddddd;text-decoration:underline}
-.tdheader a:hover{color:#BBBBBB;text-decoration:none}
-.tdheader a:visited{color:#999999;text-decoration:underline}
-.tdheader a:active{color:#000000;text-decoration:underline}
-.lighttable{BACKGROUND:#141414;color:#cccccc}
-.darktable{BACKGROUND:black}
-.cleartable{BACKGROUND:black}
-.alternatetable{BACKGROUND:black}
-.subjecttable{BACKGROUND:black}
-.footertable{BACKGROUND:#666666}
-
.header, .header a {
color:#BFBFBF;
}
diff --git a/templates/Full/Settings.xslt b/templates/Full/Settings.xslt
index 733c181..e47d8da 100644
--- a/templates/Full/Settings.xslt
+++ b/templates/Full/Settings.xslt
@@ -89,6 +89,15 @@ function changeMachichara(newMachichara) {
+
+ Цветовая схема дизайна Modern:
+
+
+
Цветовая схема:
@@ -134,6 +143,17 @@ function changeMachichara(newMachichara) {
+
+
+
+
+
+
+
+
+
+