le theme, WIP les cercles
* 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
This commit is contained in:
@ -1,3 +1,9 @@
|
||||
2015-12-15 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* Makefile: utilise le fichier de conf généré pour débugger.
|
||||
|
||||
* README.md: maj priorités
|
||||
|
||||
2015-12-09 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* README.md: mise à jour des priorités
|
||||
|
7
Makefile
7
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))
|
||||
|
@ -1,3 +1,7 @@
|
||||
2015-12-15 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* NpgsqlContentProvider.cs: bug fix
|
||||
|
||||
2015-12-09 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* NpgsqlCircleProvider.cs: liste les cercles auquels
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
19
web/App_Themes/clear/input.css
Normal file
19
web/App_Themes/clear/input.css
Normal file
@ -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; }
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
||||
|
@ -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; }
|
||||
|
@ -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; }
|
||||
|
@ -1,3 +1,54 @@
|
||||
2015-12-15 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* 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 <paul@pschneider.fr>
|
||||
|
||||
* animate.css: animations css
|
||||
|
@ -95,7 +95,7 @@ namespace Yavsc.Controllers
|
||||
/// <param name="model">Model.</param>
|
||||
/// <param name="submit">Submit.</param>
|
||||
[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
|
||||
|
@ -422,6 +422,7 @@ namespace Yavsc.Helpers
|
||||
string actionLabel, object htmlAttributes = null) {
|
||||
return TranslatedActionLink (helper, actionLabel, actionLabel, htmlAttributes);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Translateds the action link.
|
||||
/// </summary>
|
||||
@ -431,10 +432,13 @@ namespace Yavsc.Helpers
|
||||
/// <param name="method">Method.</param>
|
||||
/// <param name="htmlAttributes">Html attributes.</param>
|
||||
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);
|
||||
}
|
||||
/// <summary>
|
||||
/// Translateds the action link.
|
||||
@ -447,6 +451,11 @@ namespace Yavsc.Helpers
|
||||
/// <param name="htmlAttributes">Html attributes.</param>
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -36,7 +36,6 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
||||
</asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<header >
|
||||
<asp:ContentPlaceHolder ID="overHeaderOne" runat="server">
|
||||
<h1>
|
||||
@ -101,7 +100,7 @@ Vos billets
|
||||
$(document).ready(function() {
|
||||
$('fieldset.mayhide').hidefieldset();
|
||||
$( "a" ).append("<div class='aback'></div>").append("<div class='bback'></div>");
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
|
||||
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" EnableTheming="true"%>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
||||
@ -6,7 +6,7 @@
|
||||
Page.Theme = (string) Profile.UITheme;
|
||||
Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
||||
<asp:ContentPlaceHolder id="init" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</asp:ContentPlaceHolder>
|
||||
<head runat="server">
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
@ -23,18 +23,23 @@ Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
||||
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
||||
<script type="text/javascript">
|
||||
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
||||
$(document).ready(function(){
|
||||
$('[data-type="rate-bill"]').rate({webTarget: 'Blogs/Rate'});
|
||||
});
|
||||
</script>
|
||||
<%=Ajax.YaGlobalizationScript()%>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.rate.js")%>"></script>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.hidefieldset.js")%>"></script>
|
||||
<asp:ContentPlaceHolder id="head" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body>
|
||||
<header data-type="background" data-speed="8" >
|
||||
<header >
|
||||
<asp:ContentPlaceHolder ID="overHeaderOne" runat="server">
|
||||
<h1><a href="<%= Url.RouteUrl("Default") %>">
|
||||
<%=ViewState["orgtitle"]%></a>
|
||||
<h1>
|
||||
<%=ViewState["orgtitle"]%>
|
||||
- <a href="<%= Url.RouteUrl("Default", new {controller = "Home" , action = "Index" }) %>"><%= YavscHelpers.SiteName %></a>
|
||||
</h1>
|
||||
</asp:ContentPlaceHolder>
|
||||
@ -51,10 +56,10 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
|
||||
</script>
|
||||
<% } %>
|
||||
</header>
|
||||
<nav data-type="background" data-speed="5">
|
||||
<nav >
|
||||
<% if (Membership.GetUser()==null) { %>
|
||||
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Login", returnUrl=Request.Url.PathAndQuery}) %>" class="menuitem" accesskey = "C">
|
||||
<i class="fa fa-sign-in">Connexion</i>
|
||||
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Login", returnUrl=Request.Url.PathAndQuery}) %>" class="link" accesskey = "C">
|
||||
<i class="fa fa-sign-in"></i> Connexion
|
||||
</a>
|
||||
<% } else { %>
|
||||
<ul>
|
||||
@ -68,38 +73,45 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
|
||||
<li><%= Html.TranslatedActionLink("Role list", "RoleList") %></li>
|
||||
</ul>
|
||||
|
||||
<a href="<%=Url.RouteUrl("Blogs", new { user = HttpContext.Current.User.Identity.Name } )%>" accesskey = "B" class="menuitem" >
|
||||
<img src="<%=Url.AvatarUrl(HttpContext.Current.User.Identity.Name)%>" alt="vos billets" class="iconsmall" />
|
||||
<span class="hint">Vos billets</span>
|
||||
<a href="<%=Url.RouteUrl("Blogs", new { user = HttpContext.Current.User.Identity.Name } )%>" accesskey = "B" class="link" >
|
||||
<img src="<%=Url.AvatarUrl(HttpContext.Current.User.Identity.Name)%>" alt="" class="iconsmall" />
|
||||
Vos billets
|
||||
</a>
|
||||
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Profile", id = HttpContext.Current.User.Identity.Name} ) %>" accesskey="P" class="menuitem fa fa-user">
|
||||
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Profile", id = HttpContext.Current.User.Identity.Name} ) %>" accesskey="P" class="link ">
|
||||
<i class="fa fa-user"></i>
|
||||
<%= HttpContext.Current.User.Identity.Name %>
|
||||
<span class="hint"> Édition de votre profile </span>
|
||||
</a>
|
||||
<a href="/Blogs/Post" accesskey="P" class="menuitem fa fa-pencil">
|
||||
<a href="/Blogs/Post" accesskey="P" class="link">
|
||||
<i class="fa fa-pencil"></i>
|
||||
<u>P</u>oster
|
||||
<span class="hint">Édition d'un nouveau billet </span>
|
||||
</a>
|
||||
|
||||
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Logout", returnUrl=Request.Url.PathAndQuery}) %>" accesskey = "C" class="menuitem fa fa-sign-out">
|
||||
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Logout", returnUrl=Request.Url.PathAndQuery}) %>" accesskey = "C" class="link">
|
||||
<i class="fa fa-sign-out"></i>
|
||||
<%=Html.Translate("Logout")%></a>
|
||||
<% } %>
|
||||
</nav>
|
||||
<main data-type="background" data-speed="10" data-emheight="10" data-posx="0" data-posy="22" >
|
||||
<main>
|
||||
<asp:ContentPlaceHolder ID="MainContent" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</main>
|
||||
<footer data-type="background" data-speed="5" >
|
||||
<footer>
|
||||
|
||||
<%= Html.TranslatedActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
|
||||
|
||||
<div id="copyr">
|
||||
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">© 2015 GNU GENERAL PUBLIC LICENSE <i>Version 3, 29 June 2007</i></a>
|
||||
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">
|
||||
<%=Html.Encode("© 2015 GNU GENERAL PUBLIC LICENSE")%> <i>Version 3, 29 June 2007</i></a>
|
||||
</div>
|
||||
<%= Html.TranslatedActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
|
||||
<% foreach ( Link link in Html.Thanks()) { %>
|
||||
<a class="thanks" href="<%=link.Url%>"><% if (link.Image !=null) {
|
||||
%><img src="<%= link.Image %>" alt="<%= link.Text %>"/></a>
|
||||
<% } else { %>
|
||||
<a class="thanks" href="<%=link.Url%>"><%= link.Text %></a>
|
||||
<% }} %>
|
||||
|
||||
</footer><div class="modal"></div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('fieldset.mayhide').hidefieldset();
|
||||
$( "a" ).append("<div class='aback'></div>").append("<div class='bback'></div>");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
|
||||
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" EnableTheming="true"%>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
||||
@ -27,18 +27,19 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
||||
$('[data-type="rate-bill"]').rate({webTarget: 'Blogs/Rate'});
|
||||
});
|
||||
</script>
|
||||
<%=Ajax.GlobalizationScript()%>
|
||||
<%=Ajax.YaGlobalizationScript()%>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.rate.js")%>"></script>
|
||||
<script src="<%=Url.Content("~/Scripts/yavsc.hidefieldset.js")%>"></script>
|
||||
<asp:ContentPlaceHolder id="head" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</head>
|
||||
<body>
|
||||
<header data-type="background" data-speed="8" >
|
||||
<header >
|
||||
<asp:ContentPlaceHolder ID="overHeaderOne" runat="server">
|
||||
<h1><a href="<%= Url.RouteUrl("Default") %>">
|
||||
<%=ViewState["orgtitle"]%></a>
|
||||
<h1>
|
||||
<%=ViewState["orgtitle"]%>
|
||||
- <a href="<%= Url.RouteUrl("Default", new {controller = "Home" , action = "Index" }) %>"><%= YavscHelpers.SiteName %></a>
|
||||
</h1>
|
||||
</asp:ContentPlaceHolder>
|
||||
@ -59,12 +60,21 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
|
||||
<asp:ContentPlaceHolder ID="MainContent" runat="server">
|
||||
</asp:ContentPlaceHolder>
|
||||
</main>
|
||||
<footer data-type="background" data-speed="5" >
|
||||
<footer>
|
||||
|
||||
<%= Html.TranslatedActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
|
||||
|
||||
<div id="copyr">
|
||||
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">© 2015 GNU GENERAL PUBLIC LICENSE <i>Version 3, 29 June 2007</i></a>
|
||||
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">
|
||||
<%=Html.Encode("© 2015 GNU GENERAL PUBLIC LICENSE")%> <i>Version 3, 29 June 2007</i></a>
|
||||
</div>
|
||||
<%= Html.TranslatedActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
|
||||
|
||||
</footer><div class="modal"></div>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('fieldset.mayhide').hidefieldset();
|
||||
$( "a" ).append("<div class='aback'></div>").append("<div class='bback'></div>");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,10 +1,12 @@
|
||||
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PerformerProfile>" %>
|
||||
<% ViewBag.BlogCounter = BlogManager.GetPostCounter(Model.UserName); %>
|
||||
<% ViewBag.WithinCircles = CircleManager.Circles(Model.UserName); %>
|
||||
<div class="performer">
|
||||
<h2>
|
||||
<img src="<%= Model.Avatar %>" alt="" class="bigavatar">
|
||||
<span class="username" data-type="user" data-roles="" data-blog-counter="<%=ViewBag.BlogCounter%>" data-circles="" ><%=Html.Encode(Model.UserName)%></span>
|
||||
<span class="username" data-type="user"
|
||||
data-roles="<%=string.Join (" ",Roles.GetRolesForUser (Model.UserName)) %>"
|
||||
data-blog-counter="<%=BlogManager.GetPostCounter(Model.UserName)%>"
|
||||
data-circles="<%=string.Join (" ",CircleManager.Circles(Model.UserName))%>" >
|
||||
<%=Html.Encode(Model.UserName)%></span>
|
||||
<%=Html.Partial("RateUserSkillControl", Model) %>
|
||||
</h2>
|
||||
<address>
|
||||
|
@ -17,7 +17,7 @@ foreach (Estimate estim in Model) {
|
||||
Vos estimations en tant que client
|
||||
(<%=ViewData["ClientCount"]%>):<br>
|
||||
<% foreach (Estimate estim in Model) { %>
|
||||
<%= Html.TranslatedActionLink("Titre:"+estim.Title+" Responsable:"+estim.Responsible,"Estimate",new{id=estim.Id}) %>
|
||||
<%= Html.TranslatedActionLink("Titre:"+estim.Title+" Responsable:"+estim.Responsible,"Estimate", new{ Id=estim.Id }) %>
|
||||
<br><% } %>
|
||||
</div>
|
||||
<% } %>
|
||||
|
@ -116,9 +116,6 @@
|
||||
<Reference Include="PayPalCoreSDK">
|
||||
<HintPath>..\packages\PayPalCoreSDK.1.6.3\lib\net451\PayPalCoreSDK.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Npgsql">
|
||||
<HintPath>..\packages\Npgsql.3.0.3\lib\net45\Npgsql.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net">
|
||||
<HintPath>..\packages\log4net.2.0.4\lib\net45-full\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
@ -138,6 +135,9 @@
|
||||
<Reference Include="System.ServiceModel" />
|
||||
<Reference Include="System.ServiceModel.Web" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="Npgsql">
|
||||
<HintPath>..\packages\Npgsql.3.0.4\lib\net45\Npgsql.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Admin\" />
|
||||
@ -757,7 +757,6 @@
|
||||
<Content Include="Scripts\yavsc.user.js" />
|
||||
<Content Include="Views\FrontOffice\SiteSkills.aspx" />
|
||||
<Content Include="Views\FrontOffice\YourEstimates.aspx" />
|
||||
<Content Include="Views\FrontOffice\DoAnEstimate.aspx" />
|
||||
<Content Include="App_Themes\animate.css" />
|
||||
<Content Include="App_Themes\images\live-concert-fg.png" />
|
||||
<Content Include="App_Themes\images\live-concert-scene.jpg" />
|
||||
@ -766,6 +765,8 @@
|
||||
<Content Include="App_Themes\clear\links.css" />
|
||||
<Content Include="App_Themes\images\splash-image-2.jpg" />
|
||||
<Content Include="Views\Home\Test.aspx" />
|
||||
<Content Include="App_Themes\clear\input.css" />
|
||||
<Content Include="Views\FrontOffice\Estimate.aspx" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
|
||||
|
@ -12,7 +12,7 @@
|
||||
<package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net451" />
|
||||
<package id="Mono.Web.Xdt" version="1.0.0" targetFramework="net451" />
|
||||
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
|
||||
<package id="Npgsql" version="3.0.3" targetFramework="net451" />
|
||||
<package id="Npgsql" version="3.0.4" targetFramework="net451" />
|
||||
<package id="PayPalButtonManagerSDK" version="2.9.109" targetFramework="net45" />
|
||||
<package id="PayPalCoreSDK" version="1.6.3" targetFramework="net451" />
|
||||
<package id="Prettify" version="3.3.04.2013" targetFramework="net451" />
|
||||
|
@ -1,3 +1,28 @@
|
||||
2015-12-15 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* 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.
|
||||
|
||||
* 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
|
||||
|
||||
2015-12-09 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* CircleManager.cs: implémente les methodes utilisées à la
|
||||
|
@ -25,7 +25,7 @@ namespace Yavsc.Model.Circles
|
||||
/// <summary>
|
||||
/// Circle base.
|
||||
/// </summary>
|
||||
public class CircleBase
|
||||
public class CircleBase : ICircle
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="Yavsc.Model.Circles.CircleBase"/> class.
|
||||
|
43
yavscModel/Circles/CircleMember.cs
Normal file
43
yavscModel/Circles/CircleMember.cs
Normal file
@ -0,0 +1,43 @@
|
||||
//
|
||||
// CircleMember.cs
|
||||
//
|
||||
// Author:
|
||||
// Paul Schneider <paul@pschneider.fr>
|
||||
//
|
||||
// Copyright (c) 2015 GNU GPL
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
using System;
|
||||
using Yavsc.Model.RolesAndMembers;
|
||||
|
||||
namespace Yavsc.Model.Circles
|
||||
{
|
||||
/// <summary>
|
||||
/// Circle member.
|
||||
/// </summary>
|
||||
public class CircleMember : UserNameBase
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the owner.
|
||||
/// </summary>
|
||||
/// <value>The owner.</value>
|
||||
#region ICircle implementation
|
||||
public string Owner {
|
||||
get;
|
||||
set;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
39
yavscModel/Circles/ICircle.cs
Normal file
39
yavscModel/Circles/ICircle.cs
Normal file
@ -0,0 +1,39 @@
|
||||
//
|
||||
// CircleBase.cs
|
||||
//
|
||||
// Author:
|
||||
// Paul Schneider <paul@pschneider.fr>
|
||||
//
|
||||
// Copyright (c) 2015 GNU GPL
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Lesser General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
using System;
|
||||
|
||||
namespace Yavsc.Model.Circles
|
||||
{
|
||||
/// <summary>
|
||||
/// I circle.
|
||||
/// </summary>
|
||||
public interface ICircle: IIdentified<long>
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the owner.
|
||||
/// </summary>
|
||||
/// <value>The owner.</value>
|
||||
string Owner { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -37,12 +37,6 @@ namespace Yavsc.Model.FrontOffice
|
||||
/// </summary>
|
||||
public class PerformerProfile: UserNameBase, IRating, IIdentified<long>
|
||||
{
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="Yavsc.Model.Skill.PerformerProfile"/> class.
|
||||
/// </summary>
|
||||
public PerformerProfile()
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the identifier.
|
||||
@ -63,6 +57,9 @@ namespace Yavsc.Model.FrontOffice
|
||||
/// <param name="username">Username.</param>
|
||||
public PerformerProfile(string username)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace (username))
|
||||
throw new InvalidOperationException (
|
||||
"The specified username cannot be blank.");
|
||||
UserName = username;
|
||||
}
|
||||
|
||||
|
@ -22,8 +22,15 @@ using System;
|
||||
|
||||
namespace Yavsc.Model
|
||||
{
|
||||
/// <summary>
|
||||
/// I identified.
|
||||
/// </summary>
|
||||
public interface IIdentified<T>
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the identifier.
|
||||
/// </summary>
|
||||
/// <value>The identifier.</value>
|
||||
T Id { get; set; }
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ namespace Yavsc.Model.RolesAndMembers
|
||||
/// <summary>
|
||||
/// User name base.
|
||||
/// </summary>
|
||||
public class UserNameBase {
|
||||
public class UserNameBase : IIdentified<string> {
|
||||
/// <summary>
|
||||
/// Gets or sets the name of the user.
|
||||
/// </summary>
|
||||
@ -37,6 +37,20 @@ namespace Yavsc.Model.RolesAndMembers
|
||||
,Display(ResourceType=typeof(LocalizedText),Name="User_name"),RegularExpression(@"^[a-zA-Z .-_#]{1,100}$")]
|
||||
public string UserName { get; set; }
|
||||
|
||||
#region IIdentified implementation
|
||||
/// <summary>
|
||||
/// Gets or sets the identifier.
|
||||
/// </summary>
|
||||
/// <value>The identifier.</value>
|
||||
public string Id {
|
||||
get {
|
||||
return UserName;
|
||||
}
|
||||
set {
|
||||
throw new NotImplementedException ();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -241,6 +241,8 @@
|
||||
<Compile Include="FrontOffice\PerformerAvailability.cs" />
|
||||
<Compile Include="Skill\AuthentificatedSkillRating.cs" />
|
||||
<Compile Include="Skill\SkillRating.cs" />
|
||||
<Compile Include="Circles\CircleMember.cs" />
|
||||
<Compile Include="Circles\ICircle.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
|
@ -1,3 +1,9 @@
|
||||
2015-12-15 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* MainClass.cs: format du code
|
||||
|
||||
* YavscClient.csproj: refabrication
|
||||
|
||||
2015-11-30 Paul Schneider <paul@pschneider.fr>
|
||||
|
||||
* YavscClient.csproj: ...
|
||||
|
@ -3,10 +3,10 @@ using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Http.Formatting;
|
||||
using Newtonsoft.Json;
|
||||
using Yavsc.Model.FrontOffice;
|
||||
using Yavsc.Model.FrontOffice.Catalog;
|
||||
using System.Net.Http.Formatting;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Yavsc
|
||||
{
|
@ -9,7 +9,7 @@
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>maeclient</RootNamespace>
|
||||
<AssemblyName>yavscclient</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
@ -36,36 +36,42 @@
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Lua</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'TotemPre|AnyCPU' ">
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\TotemPre</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'TotemProd|AnyCPU' ">
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\TotemProd</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'YavscPre|AnyCPU' ">
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\YavscPre</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Yavsc|AnyCPU' ">
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Yavsc</OutputPath>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.ServiceModel.Activation" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Net.Http.Formatting" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="MyClass.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="MainClass.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
|
Reference in New Issue
Block a user