From 58839ab69cf88b5905b82ef61e712fa08998f020 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Tue, 15 Dec 2015 21:36:33 +0100 Subject: [PATCH] le theme, WIP les cercles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * input.css: refabrication des feuilles de style : la feuille des champs de formulaire. * CircleMember.cs: un membre de cercle est un nom d'utilisateur associé au cercle d'un autre utilisateur. * ICircle.cs: Définit l'interface d'un cercle: un cercle est identifié par un entier long, il a un possesseur. * Makefile: utilise le fichier de conf généré pour débugger. * NpgsqlContentProvider.cs: bug fix * README.md: maj priorités * AccountController.cs: implémente une méthode de l'API pour ajouter un utilisateur au cercle * links.css: Corrige la couleur du boutton de validation des formulaire de classe `ActionLink` * style.css: refabrication: importe la nouvelle feuille de style des champs de formulaires * style.css: nettoyage du thème sombre * style.css: nettoyage + section principale (`main`) centré * FrontOfficeController.cs: Repositionne la route vers le devis à do/Estimate * YavscHelpers.cs: corrige ma ré-écriture des helpers html ActionLink * App.master: formattage du code source * AppAdmin.master: synchronisation avec la page maître, beaucoup de changements dans cette page maître pour les administrateurs: * prend en charge les côtes d'article * utilise les fontes de caractère de la page pour les lien action * prend en charge les zones de formulaire masquable. * NoLogin.master: synchronisation avec la page maître * Performer.ascx: WIP permet d'ajouter un préstataire à un de ses cercles. * YourEstimates.aspx: corrige un lien cassé * Yavsc.csproj: mise à niveau Npgsql, renommage Estimate * packages.config: mise à niveau de la bibliothèque Npgsql (pilote d'accès à la base de donnée) * CircleBase.cs: un objet cercle basique implémente l'interface d'un cercle. * PerformerProfile.cs: s'assure que le nom d'utilisateur utilisé n'est pas vide. * IIdentified.cs: doc xml * UserNameBase.cs: l'objet base de type "nom d'utilisateur" implémente l'interface générique d'un identifié, par une chaine de caractère. * YavscModel.csproj: reference les nouvelles definitions : * un membre de cercle * l'interface d'un cercle * MainClass.cs: format du code * YavscClient.csproj: * Estimate.aspx: refabrication --- ChangeLog | 6 ++ Makefile | 7 ++- NpgsqlContentProvider/ChangeLog | 4 ++ .../NpgsqlContentProvider.cs | 3 +- README.md | 9 +-- web/ApiControllers/AccountController.cs | 8 +++ web/App_Themes/clear/input.css | 19 ++++++ web/App_Themes/clear/links.css | 16 +++-- web/App_Themes/clear/style.css | 19 +----- web/App_Themes/dark/style.css | 18 ------ web/App_Themes/style.css | 2 +- web/ChangeLog | 51 ++++++++++++++++ web/Controllers/FrontOfficeController.cs | 2 +- web/Helpers/YavscHelpers.cs | 27 +++++---- web/Models/App.master | 3 +- web/Models/AppAdmin.master | 60 +++++++++++-------- web/Models/NoLogin.master | 26 +++++--- .../{DoAnEstimate.aspx => Estimate.aspx} | 0 web/Views/FrontOffice/Performer.ascx | 8 ++- web/Views/FrontOffice/YourEstimates.aspx | 2 +- web/Yavsc.csproj | 9 +-- web/packages.config | 2 +- yavscModel/ChangeLog | 25 ++++++++ yavscModel/Circles/CircleBase.cs | 2 +- yavscModel/Circles/CircleMember.cs | 43 +++++++++++++ yavscModel/Circles/ICircle.cs | 39 ++++++++++++ yavscModel/FrontOffice/PerformerProfile.cs | 9 +-- yavscModel/IIdentified.cs | 7 +++ yavscModel/RolesAndMembers/UserNameBase.cs | 16 ++++- yavscModel/YavscModel.csproj | 2 + yavscclient/ChangeLog | 6 ++ yavscclient/{MyClass.cs => MainClass.cs} | 4 +- yavscclient/YavscClient.csproj | 10 +++- 33 files changed, 343 insertions(+), 121 deletions(-) create mode 100644 web/App_Themes/clear/input.css rename web/Views/FrontOffice/{DoAnEstimate.aspx => Estimate.aspx} (100%) create mode 100644 yavscModel/Circles/CircleMember.cs create mode 100644 yavscModel/Circles/ICircle.cs rename yavscclient/{MyClass.cs => MainClass.cs} (100%) diff --git a/ChangeLog b/ChangeLog index 4c847bc2..6c87b1a5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2015-12-15 Paul Schneider + + * Makefile: utilise le fichier de conf généré pour débugger. + + * README.md: maj priorités + 2015-12-09 Paul Schneider * README.md: mise à jour des priorités diff --git a/Makefile b/Makefile index 53ec9dfd..500d7986 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,12 @@ distclean: clean sourcepkg: git archive --format=tar --prefix=yavsc-$(CONFIG)/ $(CONFIG) | bzip2 > yavsc-$(CONFIG).tar.bz2 -start_xsp: build +dist/web/$(CONFIG)/Web.config: deploy + +web/Web.config: dist/web/$(CONFIG)/Web.config + cp dist/web/$(CONFIG)/Web.config web + +start_xsp: build web/Web.config (cd web; export MONO_OPTIONS=--debug; xsp4 --port 8080) xmldoc: $(patsubst %,web/bin/%,$(DOCASSBS)) diff --git a/NpgsqlContentProvider/ChangeLog b/NpgsqlContentProvider/ChangeLog index a4085d99..ba774c8f 100644 --- a/NpgsqlContentProvider/ChangeLog +++ b/NpgsqlContentProvider/ChangeLog @@ -1,3 +1,7 @@ +2015-12-15 Paul Schneider + + * NpgsqlContentProvider.cs: bug fix + 2015-12-09 Paul Schneider * NpgsqlCircleProvider.cs: liste les cercles auquels diff --git a/NpgsqlContentProvider/NpgsqlContentProvider.cs b/NpgsqlContentProvider/NpgsqlContentProvider.cs index ff714f5b..af10e4e8 100644 --- a/NpgsqlContentProvider/NpgsqlContentProvider.cs +++ b/NpgsqlContentProvider/NpgsqlContentProvider.cs @@ -50,9 +50,8 @@ namespace Yavsc using (var rdr = cmd.ExecuteReader ()) { if (rdr.HasRows) { while (rdr.Read ()) { - var profile = new PerformerProfile (); + var profile = new PerformerProfile (rdr.GetString (1)); profile.Id = rdr.GetInt64 (0); - profile.UserName = rdr.GetString (1); profile.EMail = rdr.GetString (2); profile.MEACode = MEACode; profile.Rate = rdr.GetInt32 (3); diff --git a/README.md b/README.md index 8483ee86..1cb4d1fb 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,8 @@ yavsc -1) Messagerie instantanée : choisir entre directement Google Hangouts API, SIP, ou Signal R custom - -0) Fixer l'edition de la côte zéro. (y en a 6, ou onze avec les moitiés, pas cinq (ni dix avec les moitiés)) +0) Bug fixes : + stocker le token calendar à part 1) Créer un contrôle "bouton utilisateur" `UserNameControl` avec @@ -18,10 +18,6 @@ yavsc * Si c'est un préstataire, et si on est pas déjà dans un formulaire de reservation, un lien vers la reservation de ses services - -1.1) Donner des descriptions textuelles au cotes (ex: dans le cadre d'un prestataire, ses 5 cotes seraient -par exemple "Nouvelle star" "Artiste local" "Artiste régional" "Star nationale" "Star internationale" - 1.2) Concevoir un objet Contact listant les point d'accès par protocol (email, http, sip, irc, téléphone, adresse postale ...) 2) Refabrication de l'Api : @@ -42,7 +38,6 @@ par exemple "Nouvelle star" "Artiste local" "Artiste régional" "Star nationale" seules les propriétés spécifiées non nulles sont mises à jour (NDLR:la visibilité est donc par exemple toujours mis à jour). -3) Corriger un peu le thème clair (fond de titres trop sombre) 4) Terminer l'édition du profile de site, avec la modification et la suppression des activités et compétences diff --git a/web/ApiControllers/AccountController.cs b/web/ApiControllers/AccountController.cs index 7542e9f6..f794bec6 100644 --- a/web/ApiControllers/AccountController.cs +++ b/web/ApiControllers/AccountController.cs @@ -132,5 +132,13 @@ namespace Yavsc.ApiControllers new string [] { model.Role } ); } + [ValidateAjax] + [Authorize()] + public void AddUserToCircle(UserRole model) + { + if (ModelState.IsValid) + Roles.AddUserToRole (model.UserName, + model.Role ); + } } } diff --git a/web/App_Themes/clear/input.css b/web/App_Themes/clear/input.css new file mode 100644 index 00000000..a7f0b98b --- /dev/null +++ b/web/App_Themes/clear/input.css @@ -0,0 +1,19 @@ + +input, textarea, checkbox { + color: black; + background-color: white; + 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(256,256,256,.8); +} + +.input-validation-error { border: solid 1px red; } +.field-validation-error { color: red; } + diff --git a/web/App_Themes/clear/links.css b/web/App_Themes/clear/links.css index eb020c55..cb7530a2 100644 --- a/web/App_Themes/clear/links.css +++ b/web/App_Themes/clear/links.css @@ -1,5 +1,4 @@  - a, .actionlink { z-index: 1; color: white; @@ -10,18 +9,24 @@ a, .actionlink { position: relative; transition: color 1s; } +/* inputs have a white background in this theme */ +input.actionlink + { + color: black; + } a:visited { color: white; } +/* inverse the font color, as long as a black one + is rolling out in backgound */ a:hover, a:visited:hover, .actionlink:hover { color:black; } - @media print { .actionlink, .menuitem { display:none;} } - + /* button dark background */ div.bback { position: absolute; top: 0; @@ -29,10 +34,9 @@ div.bback { width:100%; height:100%; z-index: -2; - background-color: rgba(32,32,32,.2); + background-color: rgba(32,32,32,.3); } - - + /* button white animated */ div.aback { transform: scaleX(0); transform-origin: 0px 50% 0px; diff --git a/web/App_Themes/clear/style.css b/web/App_Themes/clear/style.css index 50b62129..6ad86a66 100644 --- a/web/App_Themes/clear/style.css +++ b/web/App_Themes/clear/style.css @@ -1,6 +1,6 @@ @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; @@ -23,15 +23,7 @@ body { no-repeat; } -input, textarea, checkbox { - color: black; - background-color: white; - font-size: larger; - border: solid 1px rgb(128,128,128); - animation-name: flash; - animation-duration: 1s; - animation-iteration-count: 1; - } + header { float: left; } @@ -137,18 +129,11 @@ a:active { background-color:rgba(184,180,132,0.9); } -input:hover, textarea:hover { - color: black; - background-color: rgba(256,256,256,.8); -} .code { background-color: rgba(230,230,230,0.5); } -.input-validation-error { border: solid 1px red; } -.field-validation-error { color: red; } - @media all and (max-width: 640px) { diff --git a/web/App_Themes/dark/style.css b/web/App_Themes/dark/style.css index 9ab2c272..0f77001d 100644 --- a/web/App_Themes/dark/style.css +++ b/web/App_Themes/dark/style.css @@ -1,22 +1,6 @@ @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700); @import url(/App_Themes/dark/links.css); -.panel { - display:inline-block; - width: calc(33% - 10px); -} - -@media all and (max-width: 1200px) { -.panel { - width: calc(50% - 5px); - } -} -@media all and (max-width: 720px) { -.panel { - width: 100%; - } -} - .skillname { background-color: rgba(16,16,64,0.8); border-color: #aaf; @@ -28,7 +12,6 @@ body { color: #D0FFD0; } - .rate { border: solid rgb(128,128,0) 1px; background-color: rgba(20,20,20,.8); @@ -215,7 +198,6 @@ header h1, header a , .actionlink, .menuitem, a { padding:.5em;} padding:.3em; } - .bshpanel { cursor:zoom-in; } .c2 { display:initial; } .c2-alt { display:none; } diff --git a/web/App_Themes/style.css b/web/App_Themes/style.css index a1439950..984ace44 100644 --- a/web/App_Themes/style.css +++ b/web/App_Themes/style.css @@ -43,6 +43,7 @@ main { margin: 2em; padding: 2em; display: block; + text-align: center; } main video, main img { max-width:100%; @@ -352,7 +353,6 @@ div.panel { .usertitleref{ padding:.3em; } - .bshpanel { cursor:zoom-in; } .c2 { display:initial; } .c2-alt { display:none; } diff --git a/web/ChangeLog b/web/ChangeLog index 1c5e8a4b..9de96243 100644 --- a/web/ChangeLog +++ b/web/ChangeLog @@ -1,3 +1,54 @@ +2015-12-15 Paul Schneider + + * input.css: refabrication des feuilles de style : la feuille + des champs de formulaire. + + * AccountController.cs: implémente une méthode de l'API pour + ajouter un utilisateur au cercle + + * links.css: Corrige la couleur du boutton de validation des + formulaire de classe `ActionLink` + + * style.css: refabrication: importe la nouvelle feuille de + style des champs de formulaires + + * style.css: nettoyage du thème sombre + + * style.css: nettoyage + section principale (`main`) centré + + * FrontOfficeController.cs: Repositionne la route vers le + devis à do/Estimate + + + * YavscHelpers.cs: corrige ma ré-écriture des helpers html + ActionLink + + * App.master: formattage du code source + + * AppAdmin.master: synchronisation avec la page maître, + beaucoup de changements dans cette page maître pour les + administrateurs: + * prend en charge les côtes d'article + * utilise les fontes de caractère de la page pour les lien + action + * prend en charge les zones de formulaire masquable. + + * NoLogin.master: synchronisation avec la page maître + + * Performer.ascx: WIP permet d'ajouter un préstataire à un de + ses cercles. + + * YourEstimates.aspx: corrige un lien cassé + + * Yavsc.csproj: mise à niveau Npgsql, + renommage Estimate + + * packages.config: mise à niveau de la bibliothèque Npgsql + (pilote d'accès à la base de donnée) + + + * Estimate.aspx: refabrication + 2015-12-09 Paul Schneider * animate.css: animations css diff --git a/web/Controllers/FrontOfficeController.cs b/web/Controllers/FrontOfficeController.cs index dd73d174..edf010c4 100644 --- a/web/Controllers/FrontOfficeController.cs +++ b/web/Controllers/FrontOfficeController.cs @@ -95,7 +95,7 @@ namespace Yavsc.Controllers /// Model. /// Submit. [Authorize] - public ActionResult DoAnEstimate (Estimate model, string submit) + public ActionResult Estimate (Estimate model, string submit) { string username = Membership.GetUser ().UserName; // Obsolete, set in master page diff --git a/web/Helpers/YavscHelpers.cs b/web/Helpers/YavscHelpers.cs index 277dee99..27a4c3c1 100644 --- a/web/Helpers/YavscHelpers.cs +++ b/web/Helpers/YavscHelpers.cs @@ -422,6 +422,7 @@ namespace Yavsc.Helpers string actionLabel, object htmlAttributes = null) { return TranslatedActionLink (helper, actionLabel, actionLabel, htmlAttributes); } + /// /// Translateds the action link. /// @@ -431,10 +432,13 @@ namespace Yavsc.Helpers /// Method. /// Html attributes. public static IHtmlString TranslatedActionLink (this HtmlHelper helper, - string actionLabel, string method, object htmlAttributes = null) { - return TranslatedActionLink (helper, - actionLabel, method, null, htmlAttributes = null); - + string actionName, string method, object routes, object htmlAttributes = null) { + + string controllerName = helper.ViewContext.Controller.GetType ().Name; + if (controllerName.EndsWith ("Controller")) + controllerName = controllerName.Substring (0,controllerName.Length - 10); + return TranslatedActionLink (helper, actionName, method, + controllerName, routes, htmlAttributes); } /// /// Translateds the action link. @@ -447,6 +451,11 @@ namespace Yavsc.Helpers /// Html attributes. public static IHtmlString TranslatedActionLink (this HtmlHelper helper, string actionLabel, string method, string controller, object htmlAttributes = null) { + string controllerName = helper.ViewContext.Controller.GetType ().Name; + if (controllerName.EndsWith ("Controller")) + controllerName = controllerName.Substring (0,controllerName.Length - 10); + if (controller == null) + controller = controllerName; return TranslatedActionLink (helper, actionLabel, method, controller, new { controller = controller, action = actionLabel }, htmlAttributes); } @@ -491,15 +500,7 @@ namespace Yavsc.Helpers } - public static IHtmlString TranslatedActionLink (this HtmlHelper helper, - string actionName, string method, object routes, object htmlAttributes = null) { - - string controllerName = helper.ViewContext.Controller.GetType ().Name; - if (controllerName.EndsWith ("Controller")) - controllerName = controllerName.Substring (0,controllerName.Length - 10); - return TranslatedActionLink (helper, actionName, method, - controllerName, routes, htmlAttributes); - } + diff --git a/web/Models/App.master b/web/Models/App.master index ebf089eb..5638565b 100644 --- a/web/Models/App.master +++ b/web/Models/App.master @@ -36,7 +36,6 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>'; -

@@ -101,7 +100,7 @@ Vos billets $(document).ready(function() { $('fieldset.mayhide').hidefieldset(); $( "a" ).append("
").append("
"); - }); + }); diff --git a/web/Models/AppAdmin.master b/web/Models/AppAdmin.master index 7092cef7..0d4d5ea6 100644 --- a/web/Models/AppAdmin.master +++ b/web/Models/AppAdmin.master @@ -1,4 +1,4 @@ -<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> +<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" EnableTheming="true"%> <% ViewState["orgtitle"] = Html.Translate(Page.Title); %> @@ -6,7 +6,7 @@ Page.Theme = (string) Profile.UITheme; Page.StyleSheetTheme = (string) Profile.UITheme; %> - + @@ -23,18 +23,23 @@ Page.StyleSheetTheme = (string) Profile.UITheme; %> +<%=Ajax.YaGlobalizationScript()%> + -
+
-

"> -<%=ViewState["orgtitle"]%> +

+<%=ViewState["orgtitle"]%> - "><%= YavscHelpers.SiteName %>

@@ -51,10 +56,10 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti <% } %>
-