Deux nouveaux thèmes, IT,
Choix du thème avec un combo dans la page `Account/Profile` * input.css: * style.css: une feuille pour les champs de formulaire thème sombre * style.css: une feuille pour un nouveau thème clair "IT" * style.css: une feuille pour un nouveau thème sombre "IT" * AccountController.cs: renseigne le combobox des thèmes disponibles * YavscHelpers.cs: Prendre la liste des thème dans un paramètre de configuration * Profile.aspx: Selectionner le thème avec un combo à partir de la page du profile * Web.config: le thème par défaut devient "clear", le paramètre "Themes" contient la liste des thèmes autorisés. * Yavsc.csproj: référencer les nouveaux thèmes
This commit is contained in:
parent
58839ab69c
commit
979d577d2a
10 changed files with 477 additions and 9 deletions
19
web/App_Themes/dark/input.css
Normal file
19
web/App_Themes/dark/input.css
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
|
||||
input, textarea, checkbox {
|
||||
color: yellow;
|
||||
background-color: black;
|
||||
font-size: larger;
|
||||
border: solid 1px rgb(128,128,128);
|
||||
animation-name: flash;
|
||||
animation-duration: 1s;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
input:hover, textarea:hover {
|
||||
color: black;
|
||||
background-color: rgba(0,0,0,.8);
|
||||
}
|
||||
|
||||
.input-validation-error { border: solid 1px red; }
|
||||
.field-validation-error { color: red; }
|
||||
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700);
|
||||
@import url(/App_Themes/dark/links.css);
|
||||
@import url(/App_Themes/dark/input.css);
|
||||
|
||||
.skillname {
|
||||
background-color: rgba(16,16,64,0.8);
|
||||
|
|
|
|||
204
web/App_Themes/itclear/style.css
Normal file
204
web/App_Themes/itclear/style.css
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
@import url(http://fonts.googleapis.com/css?family=Josefin+Sans&subset=latin,latin-ext);
|
||||
@import url(/App_Themes/clear/links.css);
|
||||
@import url(/App_Themes/clear/input.css);
|
||||
body {
|
||||
background-color: white;
|
||||
color: black;
|
||||
font-family: 'Josefin Sans', sans-serif;
|
||||
background: url("/App_Themes/images/p8-av4.jpg") 0 0 repeat fixed ;
|
||||
}
|
||||
.tagname { }
|
||||
|
||||
.tagname:hover { background-color: red; }
|
||||
|
||||
/* Start by setting display:none to make this hidden.
|
||||
Then we position it in relation to the viewport window
|
||||
with position:fixed. Width, height, top and left speak
|
||||
for themselves. Background we set to 80% white with
|
||||
our animation centered, and no-repeating */
|
||||
.modal {
|
||||
background: rgba( 255, 255, 255, .8 )
|
||||
url('/App_Themes/images/FhHRx.gif')
|
||||
50% 50%
|
||||
no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
header { float: left; }
|
||||
|
||||
h1 { display: inline-block; }
|
||||
|
||||
nav {
|
||||
|
||||
}
|
||||
nav li { display: inline-block; }
|
||||
|
||||
|
||||
|
||||
main {
|
||||
clear:both;
|
||||
background-color: rgba(256,256,256,.5);
|
||||
}
|
||||
|
||||
footer {
|
||||
background: url("/App_Themes/images/splash-image-2.jpg") 0 0 repeat fixed ;
|
||||
}
|
||||
|
||||
legend, .skillname {
|
||||
background-color: rgba(240,240,240,.8);
|
||||
}
|
||||
#copyr { }
|
||||
|
||||
#gspacer {
|
||||
background-color: rgba(209,209,209,.8); }
|
||||
|
||||
fieldset, .performer {
|
||||
background-color: rgba(216,216,216,0.8);
|
||||
}
|
||||
|
||||
h1 {
|
||||
background-color: rgba(256,256,256,.2);
|
||||
padding: 1em;
|
||||
color:white;
|
||||
transition: color 1s;
|
||||
}
|
||||
|
||||
.postpreview {
|
||||
background-color: rgba(233,233,233,0.8);
|
||||
animation-name: slideInDown;
|
||||
animation-duration: 1s;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
.postpreview > div {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 2s;
|
||||
}
|
||||
|
||||
.postpreview:hover > div {
|
||||
overflow: auto;
|
||||
max-height: 15em;
|
||||
background-color: rgba(233,233,233,0.8);
|
||||
}
|
||||
.post {
|
||||
background-color: rgba(256,256,256,0.8);
|
||||
}
|
||||
.hiddenpost { background-color: rgba(160,160,160,0.5); }
|
||||
|
||||
|
||||
.panel,.bigpanel, aside {
|
||||
background-color: rgba(200,200,200,.8);
|
||||
}
|
||||
|
||||
.usertitleref {
|
||||
background-color:rgba(256,256,212,0.6);
|
||||
}
|
||||
.editable {
|
||||
border: dashed rgb(200,200,256) 2px;
|
||||
background-color: rgba(256,256,256,.8);
|
||||
}
|
||||
|
||||
.notification {
|
||||
background-color: rgba(264,264,128,0.5);
|
||||
border: solid green 1px;
|
||||
}
|
||||
.dirty {
|
||||
background-color: rgba(256,228,128,0.5);
|
||||
}
|
||||
.error, #error {
|
||||
color: #f88;
|
||||
background-color: rgba(256,0,0,.5);
|
||||
}
|
||||
.validation-summary-errors{
|
||||
color: #f88;
|
||||
background-color: rgba(256,256,139,0.5);
|
||||
}
|
||||
|
||||
|
||||
ul.preview li:nth-child(n) {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.validation-summary-errors{
|
||||
color: #f88;
|
||||
}
|
||||
|
||||
a:active {
|
||||
background-color:rgba(184,180,132,0.9);
|
||||
}
|
||||
|
||||
.code {
|
||||
background-color: rgba(230,230,230,0.5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media all and (max-width: 640px) {
|
||||
|
||||
|
||||
|
||||
#logo {
|
||||
}
|
||||
|
||||
header {
|
||||
}
|
||||
nav {
|
||||
}
|
||||
main {
|
||||
|
||||
}
|
||||
footer {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 350px) {
|
||||
|
||||
#logo {
|
||||
}
|
||||
header {
|
||||
}
|
||||
|
||||
nav {
|
||||
}
|
||||
main {
|
||||
|
||||
}
|
||||
footer {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.input-validation-error { border: solid 1px red; background-color: rgba(128,0,0,0.5);
|
||||
animation-name: hotzone;
|
||||
animation-duration: 4s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.field-validation-error { color: rgb(256,200,200); background-color: rgba(128,0,0,0.5);
|
||||
animation-name: hotzone;
|
||||
animation-duration: 4s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
input[type='submit'].clickme {
|
||||
animation-name: hotzone;
|
||||
animation-duration: 4s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
@keyframes hotzone {
|
||||
from {
|
||||
background-color: rgba(230,230,230,.8);
|
||||
color: black;
|
||||
}
|
||||
50% {background-color: rgba(256,150,150,.5);}
|
||||
to {
|
||||
background-color: rgba(230,230,230,.8);
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
204
web/App_Themes/itdark/style.css
Normal file
204
web/App_Themes/itdark/style.css
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
@import url(http://fonts.googleapis.com/css?family=Josefin+Sans&subset=latin,latin-ext);
|
||||
@import url(/App_Themes/dark/links.css);
|
||||
@import url(/App_Themes/dark/input.css);
|
||||
body {
|
||||
background-color: white;
|
||||
color: black;
|
||||
font-family: 'Josefin Sans', sans-serif;
|
||||
background: url("/App_Themes/images/p8-av4.jpg") 0 0 repeat fixed ;
|
||||
}
|
||||
.tagname { }
|
||||
|
||||
.tagname:hover { background-color: red; }
|
||||
|
||||
/* Start by setting display:none to make this hidden.
|
||||
Then we position it in relation to the viewport window
|
||||
with position:fixed. Width, height, top and left speak
|
||||
for themselves. Background we set to 80% white with
|
||||
our animation centered, and no-repeating */
|
||||
.modal {
|
||||
background: rgba( 255, 255, 255, .8 )
|
||||
url('/App_Themes/images/FhHRx.gif')
|
||||
50% 50%
|
||||
no-repeat;
|
||||
}
|
||||
|
||||
|
||||
|
||||
header { float: left; }
|
||||
|
||||
h1 { display: inline-block; }
|
||||
|
||||
nav {
|
||||
|
||||
}
|
||||
nav li { display: inline-block; }
|
||||
|
||||
|
||||
|
||||
main {
|
||||
clear:both;
|
||||
background-color: rgba(256,256,256,.5);
|
||||
}
|
||||
|
||||
footer {
|
||||
background: url("/App_Themes/images/splash-image-2.jpg") 0 0 repeat fixed ;
|
||||
}
|
||||
|
||||
legend, .skillname {
|
||||
background-color: rgba(240,240,240,.8);
|
||||
}
|
||||
#copyr { }
|
||||
|
||||
#gspacer {
|
||||
background-color: rgba(209,209,209,.8); }
|
||||
|
||||
fieldset, .performer {
|
||||
background-color: rgba(216,216,216,0.8);
|
||||
}
|
||||
|
||||
h1 {
|
||||
background-color: rgba(256,256,256,.2);
|
||||
padding: 1em;
|
||||
color:white;
|
||||
transition: color 1s;
|
||||
}
|
||||
|
||||
.postpreview {
|
||||
background-color: rgba(233,233,233,0.8);
|
||||
animation-name: slideInDown;
|
||||
animation-duration: 1s;
|
||||
animation-iteration-count: 1;
|
||||
}
|
||||
|
||||
.postpreview > div {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
transition: max-height 2s;
|
||||
}
|
||||
|
||||
.postpreview:hover > div {
|
||||
overflow: auto;
|
||||
max-height: 15em;
|
||||
background-color: rgba(233,233,233,0.8);
|
||||
}
|
||||
.post {
|
||||
background-color: rgba(256,256,256,0.8);
|
||||
}
|
||||
.hiddenpost { background-color: rgba(160,160,160,0.5); }
|
||||
|
||||
|
||||
.panel,.bigpanel, aside {
|
||||
background-color: rgba(200,200,200,.8);
|
||||
}
|
||||
|
||||
.usertitleref {
|
||||
background-color:rgba(256,256,212,0.6);
|
||||
}
|
||||
.editable {
|
||||
border: dashed rgb(200,200,256) 2px;
|
||||
background-color: rgba(256,256,256,.8);
|
||||
}
|
||||
|
||||
.notification {
|
||||
background-color: rgba(264,264,128,0.5);
|
||||
border: solid green 1px;
|
||||
}
|
||||
.dirty {
|
||||
background-color: rgba(256,228,128,0.5);
|
||||
}
|
||||
.error, #error {
|
||||
color: #f88;
|
||||
background-color: rgba(256,0,0,.5);
|
||||
}
|
||||
.validation-summary-errors{
|
||||
color: #f88;
|
||||
background-color: rgba(256,256,139,0.5);
|
||||
}
|
||||
|
||||
|
||||
ul.preview li:nth-child(n) {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.validation-summary-errors{
|
||||
color: #f88;
|
||||
}
|
||||
|
||||
a:active {
|
||||
background-color:rgba(184,180,132,0.9);
|
||||
}
|
||||
|
||||
.code {
|
||||
background-color: rgba(230,230,230,0.5);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media all and (max-width: 640px) {
|
||||
|
||||
|
||||
|
||||
#logo {
|
||||
}
|
||||
|
||||
header {
|
||||
}
|
||||
nav {
|
||||
}
|
||||
main {
|
||||
|
||||
}
|
||||
footer {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 350px) {
|
||||
|
||||
#logo {
|
||||
}
|
||||
header {
|
||||
}
|
||||
|
||||
nav {
|
||||
}
|
||||
main {
|
||||
|
||||
}
|
||||
footer {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.input-validation-error { border: solid 1px red; background-color: rgba(128,0,0,0.5);
|
||||
animation-name: hotzone;
|
||||
animation-duration: 4s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
.field-validation-error { color: rgb(256,200,200); background-color: rgba(128,0,0,0.5);
|
||||
animation-name: hotzone;
|
||||
animation-duration: 4s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
input[type='submit'].clickme {
|
||||
animation-name: hotzone;
|
||||
animation-duration: 4s;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
|
||||
|
||||
@keyframes hotzone {
|
||||
from {
|
||||
background-color: rgba(230,230,230,.8);
|
||||
color: black;
|
||||
}
|
||||
50% {background-color: rgba(256,150,150,.5);}
|
||||
to {
|
||||
background-color: rgba(230,230,230,.8);
|
||||
color: black;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +1,27 @@
|
|||
2015-12-16 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* input.css:
|
||||
* style.css: une feuille pour les champs de formulaire thème
|
||||
sombre
|
||||
|
||||
* style.css: une feuille pour un nouveau thème clair "IT"
|
||||
|
||||
* style.css: une feuille pour un nouveau thème sombre "IT"
|
||||
|
||||
* AccountController.cs: renseigne le combobox des thèmes
|
||||
disponibles
|
||||
|
||||
* YavscHelpers.cs: Prendre la liste des thème dans un
|
||||
paramètre de configuration
|
||||
|
||||
* Profile.aspx: Selectionner le thème avec un combo à partir
|
||||
de la page du profile
|
||||
|
||||
* Web.config: le thème par défaut devient "clear",
|
||||
le paramètre "Themes" contient la liste des thèmes autorisés.
|
||||
|
||||
* Yavsc.csproj: référencer les nouveaux thèmes
|
||||
|
||||
2015-12-15 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* input.css: refabrication des feuilles de style : la feuille
|
||||
|
|
|
|||
|
|
@ -256,9 +256,15 @@ namespace Yavsc.Controllers
|
|||
ProfileEdition model = new ProfileEdition (ProfileBase.Create (id));
|
||||
model.RememberMe = FormsAuthentication.GetAuthCookie (id, true) == null;
|
||||
SetMEACodeViewData (model);
|
||||
SetUIThemeViewData (model);
|
||||
return View (model);
|
||||
}
|
||||
|
||||
private void SetUIThemeViewData(Profile model) {
|
||||
ViewData ["UITheme"] = YavscHelpers.AvailableThemes.Select (
|
||||
x => new SelectListItem () { Selected =
|
||||
model.UITheme == x, Text = x, Value = x }).ToArray();
|
||||
|
||||
}
|
||||
private void SetMEACodeViewData(Profile model) {
|
||||
var activities = WorkFlowManager.FindActivity ("%", false);
|
||||
var items = new List<SelectListItem> ();
|
||||
|
|
@ -360,6 +366,7 @@ namespace Yavsc.Controllers
|
|||
YavscHelpers.Notify(ViewData, "Profile enregistré"+((editsTheUserName)?", nom public inclu.":""));
|
||||
}
|
||||
SetMEACodeViewData (model);
|
||||
SetUIThemeViewData (model);
|
||||
return View (model);
|
||||
}
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -355,9 +355,9 @@ namespace Yavsc.Helpers
|
|||
/// <summary>
|
||||
/// The available themes.
|
||||
/// </summary>
|
||||
public static string[] AvailableThemes = {
|
||||
"clear", "dark", "blue", "green"
|
||||
};
|
||||
public static string[] AvailableThemes =
|
||||
ConfigurationManager.AppSettings["Themes"]
|
||||
.Split(',');
|
||||
|
||||
/// <summary>
|
||||
/// Themes the CSS links.
|
||||
|
|
@ -370,8 +370,11 @@ namespace Yavsc.Helpers
|
|||
this System.Web.Mvc.HtmlHelper html, string theme, string baseName) {
|
||||
|
||||
if (!AvailableThemes.Contains (theme))
|
||||
throw new ArgumentException ("The given theme is not configured: " +
|
||||
theme);
|
||||
if (AvailableThemes.Length > 0)
|
||||
theme = AvailableThemes [0];
|
||||
else
|
||||
return null;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(baseName))
|
||||
throw new ArgumentException ("Specify a base name");
|
||||
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ Avatar :
|
|||
</legend>
|
||||
<span>
|
||||
<%= Html.LabelFor(model => model.UITheme) %> :
|
||||
<%= Html.TextBox("UITheme") %>
|
||||
<%= Html.DropDownList("UITheme") %>
|
||||
<%= Html.ValidationMessage("UITheme", "*") %></span>
|
||||
|
||||
</fieldset>
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
|
|||
<add name="gcalid" />
|
||||
<add name="gregid" allowAnonymous="true" />
|
||||
<add name="allowcookies" type="System.Boolean" allowAnonymous="true" defaultValue="false" />
|
||||
<add name="UITheme" allowAnonymous="true" defaultValue="dark" />
|
||||
<add name="UITheme" allowAnonymous="true" defaultValue="clear" />
|
||||
<add name="Rate" type="System.Int32" defaultValue="100" />
|
||||
</properties>
|
||||
</profile>
|
||||
|
|
@ -244,7 +244,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
|
|||
<!-- (miliseconds) = 30s -->
|
||||
<add name="requestRetries" value="1" />
|
||||
<!-- -->
|
||||
<add name="clientId" value="[YOUR_PAYPAL_ID]" />
|
||||
<add name="clientId" value="A9S6jrem3H0gdj8tQ2q1ahSCU38tAJRyiro7eED13h3Syn6C9ZSKSRkl" />
|
||||
<!-- -->
|
||||
<add name="clientSecret" value="[YOUR_PAYPAL_SECRET]" />
|
||||
<!-- -->
|
||||
|
|
@ -273,6 +273,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
|
|||
<add key="AdminEMail" value="[YOUR_ADMIN_EMAIL]" />
|
||||
<add key="OwnerEMail" value="[YOUR_OWNER_EMAIL]" />
|
||||
<add key="Name" value="[YOUR_SITE_NAME]" />
|
||||
<add key="Themes" value="clear,dark,itdark,itclear,blue,green,base" />
|
||||
<add key="DefaultAvatar" value="/App_Themes/images/noavatar.png;image/png" />
|
||||
<add key="RegistrationMessage" value="/RegistrationMail.txt" />
|
||||
<!-- <add key="ClientValidationEnabled" value="true" />
|
||||
|
|
|
|||
|
|
@ -176,6 +176,8 @@
|
|||
<Folder Include="xmldoc\" />
|
||||
<Folder Include="App_Code\" />
|
||||
<Folder Include="App_Themes\base\" />
|
||||
<Folder Include="App_Themes\itclear\" />
|
||||
<Folder Include="App_Themes\itdark\" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Controllers\HomeController.cs" />
|
||||
|
|
@ -767,6 +769,9 @@
|
|||
<Content Include="Views\Home\Test.aspx" />
|
||||
<Content Include="App_Themes\clear\input.css" />
|
||||
<Content Include="Views\FrontOffice\Estimate.aspx" />
|
||||
<Content Include="App_Themes\itclear\style.css" />
|
||||
<Content Include="App_Themes\itdark\style.css" />
|
||||
<Content Include="App_Themes\dark\input.css" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue