Mise en forme du message de contact au préstataire

* Sent.aspx: Vue de confirmation du messag envoyé

* PerformerContact.cs: modèle de donnnée d'un message

* Global.asax.cs: ajout d'une route /to/

* style.css: rien

* style.css: forme du pointeur de liens

* FrontOfficeController.cs: implémente l'envoi d'un e-mail au
  préstataire

* YavscHelpers.cs:
* HomeController.cs: l'e-mail admin est obtenu du helper global

* App.master: Corrige les guillemets autour de notifications web

* yavsc.js: la class des liens est "link", pas "actionlink"

* Contact.aspx: mise en forme du formulaire de contact

* Performer.ascx: lien vers le contact préstataire

* Yavsc.csproj: ajout de la vue du message envoyé

* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: traductions

* YavscModel.csproj: ajout du modèle de données d'un message
This commit is contained in:
2015-12-30 17:19:23 +01:00
parent a14e63d26f
commit 3b33be013c
20 changed files with 286 additions and 94 deletions

View File

@ -72,18 +72,26 @@ namespace Yavsc
title=UrlParameter.Optional,
id=UrlParameter.Optional }
);
routes.MapRoute (
"BlogById",
"b/{action}/{postid}",
new { controller = "Blogs", action = "Index",
postid=UrlParameter.Optional }
);
routes.MapRoute (
"BackCompat",
"Blogs/{action}/{user}/{title}",
new { controller = "Blogs", action = "Index", user = UrlParameter.Optional, title = UrlParameter.Optional }
);
routes.MapRoute (
"Performance",
"to/{action}/{Performer}",
new { controller = "FrontOffice", action = "Contact", Performer = UrlParameter.Optional }
);
routes.MapRoute (
"Default",
"{controller}/{action}/{id}",

View File

@ -1 +1,2 @@


View File

@ -262,6 +262,10 @@ input, select, textarea {
border-width: 1px;
font-size: large;
}
.link { cursor: pointer; }
.performer , .availability { text-align: center; padding: 1em; }
.c2 { font-size: small; font-style: italic; }

View File

@ -1,3 +1,31 @@
2015-12-30 Paul Schneider <paul@pschneider.fr>
* Sent.aspx: Vue de confirmation du messag envoyé
* Global.asax.cs: ajout d'une route /to/
* style.css: rien
* style.css: forme du pointeur de liens
* FrontOfficeController.cs: implémente l'envoi d'un e-mail au
préstataire
* YavscHelpers.cs:
* HomeController.cs: l'e-mail admin est obtenu du helper
global
* App.master: Corrige les guillemets autour de notifications
web
* yavsc.js: la class des liens est "link", pas "actionlink"
* Contact.aspx: mise en forme du formulaire de contact
* Performer.ascx: lien vers le contact préstataire
* Yavsc.csproj: ajout de la vue du message envoyé
2015-12-30 Paul Schneider <paul@pschneider.fr>
* ResetPassword.txt: Un message pour le mot de passe oublié

View File

@ -1,28 +1,29 @@
using System;
using Yavsc;
using System.Web.Mvc;
using System.Web;
using System.Text.RegularExpressions;
using System.IO;
using Yavsc.Controllers;
using System.Collections.Generic;
using Yavsc.Model;
using Yavsc.Model.WorkFlow;
using System.Web.Security;
using System.Threading;
using Yavsc.Model.FrontOffice;
using Yavsc.Model.FileSystem;
using Yavsc.Model.Calendar;
using System.Configuration;
using Yavsc.Helpers;
using Yavsc.Model.FrontOffice.Catalog;
using Yavsc.Model.Skill;
using System.Web.Profile;
using Yavsc.Model.Google.Api;
using System.Net;
using System.Linq;
using System.ComponentModel.DataAnnotations;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text.RegularExpressions;
using System.Threading;
using System.Web;
using System.Web.Mvc;
using System.Web.Profile;
using System.Web.Security;
using Yavsc;
using Yavsc.Controllers;
using Yavsc.Helpers;
using Yavsc.Model;
using Yavsc.Model.Calendar;
using Yavsc.Model.Circles;
using Yavsc.Model.FileSystem;
using Yavsc.Model.FrontOffice;
using Yavsc.Model.FrontOffice.Catalog;
using Yavsc.Model.Google.Api;
using Yavsc.Model.Skill;
using Yavsc.Model.WorkFlow;
namespace Yavsc.Controllers
{
@ -238,6 +239,45 @@ namespace Yavsc.Controllers
return View (WorkFlowManager.GetCommands (Membership.GetUser ().UserName));
}
/// <summary>
/// Contact the specified user.
/// </summary>
/// <param name="user">User.</param>
[Authorize]
public ActionResult Contact(PerformerContact model)
{
return View (model);
}
/// <summary>
/// Send the specified pmsg.
/// </summary>
/// <param name="pmsg">Pmsg.</param>
[Authorize]
public ActionResult Send(PerformerContact pmsg)
{
var performer = Membership.GetUser (pmsg.Performer);
if (performer == null)
ModelState.AddModelError ("Performer", "This user doesn't exist");
var user = Membership.GetUser();
if (ModelState.IsValid) {
using (System.Net.Mail.MailMessage msg = new MailMessage(
YavscHelpers.OwnerEmail,
performer.Email,"[Contact] ("+user.UserName+") "+pmsg.Reason,pmsg.Body))
{
msg.CC.Add(new MailAddress(YavscHelpers.Admail));
using (System.Net.Mail.SmtpClient sc = new SmtpClient())
{
sc.Send (msg);
ViewData.Notify(LocalizedText.Message_sent);
}
}
return View ("Sent");
}
else
return View ("Contact",pmsg);
}
/// <summary>
/// Command the specified collection.
/// </summary>

View File

@ -71,21 +71,7 @@ namespace Yavsc.Controllers
return View (asnlist.ToArray()) ;
}
private static string owneremail = null;
/// <summary>
/// Gets or sets the owner email.
/// </summary>
/// <value>The owner email.</value>
public static string OwnerEmail {
get {
if (owneremail == null)
owneremail = WebConfigurationManager.AppSettings.Get ("OwnerEMail");
return owneremail;
}
set {
owneremail = value;
}
}
/// <summary>
/// Index this instance.
/// </summary>
@ -102,6 +88,7 @@ namespace Yavsc.Controllers
ViewData["Activities"] = WorkFlowManager.FindActivity(id,true);
return View ();
}
/// <summary>
/// Credits this instance.
/// </summary>
@ -109,6 +96,7 @@ namespace Yavsc.Controllers
{
return View ();
}
/// <summary>
/// About this instance.
/// </summary>
@ -116,12 +104,7 @@ namespace Yavsc.Controllers
{
return View ();
}
#if DEBUG
public ActionResult Test ()
{
return View ();
}
#endif
/// <summary>
/// Contact the specified email, reason and body.
/// </summary>
@ -142,10 +125,10 @@ namespace Yavsc.Controllers
return View ();
// requires valid owner and admin email?
if (OwnerEmail == null)
if (YavscHelpers.OwnerEmail == null)
throw new Exception ("No site owner!");
using (System.Net.Mail.MailMessage msg = new MailMessage(email,OwnerEmail,"[Contact] "+reason,body))
using (System.Net.Mail.MailMessage msg = new MailMessage(email,YavscHelpers.OwnerEmail,"[Contact] "+reason,body))
{
msg.CC.Add(new MailAddress(YavscHelpers.Admail));
using (System.Net.Mail.SmtpClient sc = new SmtpClient())

View File

@ -95,7 +95,16 @@ namespace Yavsc.Helpers
return admail;
}
}
private static string owneremail = WebConfigurationManager.AppSettings.Get ("OwnerEMail");
/// <summary>
/// Gets or sets the owner email.
/// </summary>
/// <value>The owner email.</value>
public static string OwnerEmail {
get {
return owneremail;
}
}
/// <summary>
/// Sends the activation message.
/// </summary>
@ -293,8 +302,8 @@ namespace Yavsc.Helpers
}
public static void Notify(this ViewDataDictionary ViewData, string message, string click_action=null, string clickActionName="Ok") {
Notify(ViewData, new Notification { body = YavscAjaxHelper.QuoteJavascriptString(message),
click_action = click_action, click_action_name = YavscAjaxHelper.QuoteJavascriptString(clickActionName)} ) ;
Notify(ViewData, new Notification { body = message,
click_action = click_action, click_action_name = clickActionName} ) ;
}
public static void Notify(this ViewDataDictionary ViewData, Notification note) {

View File

@ -50,7 +50,7 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
$(document).ready(function(){
<% foreach (Notification note in (IEnumerable<Notification>) ViewData ["Notifications"] ) {
if (note.click_action == null) {%> Yavsc.notice(<%=Ajax.JString(note.body)%>); <% }
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_action_name%>); <% } %>
else {%> Yavsc.notice(<%=Ajax.JString(note.body)%>, <%=note.click_action%>, <%=Ajax.JString(note.click_action_name)%>); <% } %>
<% } %>
});
</script>

View File

@ -64,7 +64,7 @@ self.onScroll = function() {
self.notice = function (msg, callback, msgok) {
if (!msgok) msgok='Ok';
var note = $('<div class="notification">'+msg+'<br></div>');
var btn = $('<a class="actionlink"><i class="fa fa-check">'+msgok+'</i></a>');
var btn = $('<a class="link"><i class="fa fa-check">'+msgok+'</i></a>');
if (callback) btn.click(callback);
btn.click(self.dimiss).appendTo(note);
note.appendTo("#notifications");

View File

@ -1,27 +1,26 @@
<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<PerformerContact>" %>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<div class="bigpanel">
<p>
<%= Html.Translate("ContactThisPerformer") %>
<%= Html.Translate("ContactAPerformer") %>
</p>
<% using (Html.BeginForm("Contact", "Home")) { %>
<% using (Html.BeginForm("Send", "FrontOffice")) { %>
<%= Html.Translate("Performer") %> : <%= Html.Encode(Model.Performer) %>
<%= Html.Hidden("Performer") %>
<br>
<fieldset style="width:100%">
<legend>Message</legend>
<p>
<%= Html.Label("email",LocalizedText.email) %>:
<%= Html.ValidationMessage("email") %><br/>
<%= Html.TextBox("email") %>
</p>
<p>
<%= Html.Label("reason",LocalizedText.reason) %>:
<%= Html.ValidationMessage("reason") %><br/>
<%= Html.TextBox("reason") %>
<%= Html.TextBox("reason",null, new { @style="width:100%", @placeholder=LocalizedText.PleaseFillInAReason } ) %>
</p>
<p>
<%= Html.Label("body",LocalizedText.body) %>:
<%= Html.ValidationMessage("body") %><br/>
<%= Html.TextArea("body",new {@rows="25"}) %>
<%= Html.TextArea("body",new {@rows="25", @style="width:100%", @placeholder=LocalizedText.PleaseFillInABody }) %>
</p>
</fieldset>
<input type="submit" value="<%=Html.Translate("Submit")%>">

View File

@ -13,9 +13,8 @@ data-roles="<%=string.Join (" ",Roles.GetRolesForUser (Model.UserName)) %>"
</h2>
<address>
<% if (Membership.GetUser()!=null) { %>
<a href="mailto:<%=Model.EMail%>">
<a href="<%=Url.RouteUrl("Performance",new { action="Contact", Performer = Model.UserName })%>">
<i class="fa fa-envelope"></i>
&lt;<%=Html.Encode(Model.EMail)%>&gt;
</a>
<% } else { %>
<i class="fa fa-envelope"></i>

View File

@ -0,0 +1,8 @@
<%@ Page Title="Front office" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.Translate("YourMessageHasBeenSent") %>
Votre message a été envoyé
</asp:Content>

View File

@ -784,6 +784,7 @@
<Content Include="Views\Account\UpdatePassword.aspx" />
<Content Include="App_Themes\base\style.css" />
<Content Include="Views\FrontOffice\Contact.aspx" />
<Content Include="Views\FrontOffice\Sent.aspx" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

View File

@ -1,3 +1,14 @@
2015-12-30 Paul Schneider <paul@pschneider.fr>
* PerformerContact.cs: modèle de donnnée d'un message
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: traductions
* YavscModel.csproj: ajout du modèle de données d'un message
2015-12-30 Paul Schneider <paul@pschneider.fr>
* UpdatePassword.cs: modèle de la modification de mot de passe

View File

@ -0,0 +1,38 @@
//
// PerformerContact.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 System.ComponentModel.DataAnnotations;
namespace Yavsc.Model.FrontOffice
{
public class PerformerContact
{
[Required]
public string Performer { get; set; }
[Required]
public string Reason { get; set; }
[Required]
public string Body { get; set; }
}
}

View File

@ -46,12 +46,6 @@ namespace Yavsc.Model {
}
}
public static string Private_circle {
get {
return ResourceManager.GetString("Private_circle", resourceCulture);
}
}
public static string Comment {
get {
return ResourceManager.GetString("Comment", resourceCulture);
@ -124,9 +118,9 @@ namespace Yavsc.Model {
}
}
public static string UsersInRole {
public static string PleaseFillInAReason {
get {
return ResourceManager.GetString("UsersInRole", resourceCulture);
return ResourceManager.GetString("PleaseFillInAReason", resourceCulture);
}
}
@ -412,6 +406,12 @@ namespace Yavsc.Model {
}
}
public static string to {
get {
return ResourceManager.GetString("to", resourceCulture);
}
}
public static string EndHour {
get {
return ResourceManager.GetString("EndHour", resourceCulture);
@ -430,6 +430,12 @@ namespace Yavsc.Model {
}
}
public static string ContactAPerformer {
get {
return ResourceManager.GetString("ContactAPerformer", resourceCulture);
}
}
public static string Needs {
get {
return ResourceManager.GetString("Needs", resourceCulture);
@ -478,9 +484,9 @@ namespace Yavsc.Model {
}
}
public static string ContactThisPerformer {
public static string Private_circle {
get {
return ResourceManager.GetString("ContactThisPerformer", resourceCulture);
return ResourceManager.GetString("Private_circle", resourceCulture);
}
}
@ -556,6 +562,12 @@ namespace Yavsc.Model {
}
}
public static string YourMessageHasBeenSent {
get {
return ResourceManager.GetString("YourMessageHasBeenSent", resourceCulture);
}
}
public static string UserNotInThisRole {
get {
return ResourceManager.GetString("UserNotInThisRole", resourceCulture);
@ -628,6 +640,12 @@ namespace Yavsc.Model {
}
}
public static string PleaseFillInABody {
get {
return ResourceManager.GetString("PleaseFillInABody", resourceCulture);
}
}
public static string PhotoUpdated {
get {
return ResourceManager.GetString("PhotoUpdated", resourceCulture);
@ -658,9 +676,9 @@ namespace Yavsc.Model {
}
}
public static string DocTemplateException {
public static string UsersInRole {
get {
return ResourceManager.GetString("DocTemplateException", resourceCulture);
return ResourceManager.GetString("UsersInRole", resourceCulture);
}
}
@ -772,6 +790,12 @@ namespace Yavsc.Model {
}
}
public static string DocTemplateException {
get {
return ResourceManager.GetString("DocTemplateException", resourceCulture);
}
}
public static string DoNotPublishMyActivity {
get {
return ResourceManager.GetString("DoNotPublishMyActivity", resourceCulture);
@ -838,6 +862,12 @@ namespace Yavsc.Model {
}
}
public static string Performer {
get {
return ResourceManager.GetString("Performer", resourceCulture);
}
}
public static string NoSkillforthisactivity {
get {
return ResourceManager.GetString("NoSkillforthisactivity", resourceCulture);

View File

@ -100,9 +100,9 @@ namespace Yavsc.Model {
}
}
public static string Welcome {
public static string User_name {
get {
return ResourceManager.GetString("Welcome", resourceCulture);
return ResourceManager.GetString("User_name", resourceCulture);
}
}
@ -112,9 +112,9 @@ namespace Yavsc.Model {
}
}
public static string UsersInRole {
public static string PleaseFillInAReason {
get {
return ResourceManager.GetString("UsersInRole", resourceCulture);
return ResourceManager.GetString("PleaseFillInAReason", resourceCulture);
}
}
@ -400,6 +400,12 @@ namespace Yavsc.Model {
}
}
public static string to {
get {
return ResourceManager.GetString("to", resourceCulture);
}
}
public static string EndHour {
get {
return ResourceManager.GetString("EndHour", resourceCulture);
@ -418,6 +424,12 @@ namespace Yavsc.Model {
}
}
public static string ContactAPerformer {
get {
return ResourceManager.GetString("ContactAPerformer", resourceCulture);
}
}
public static string Needs {
get {
return ResourceManager.GetString("Needs", resourceCulture);
@ -472,12 +484,6 @@ namespace Yavsc.Model {
}
}
public static string ContactThisPerformer {
get {
return ResourceManager.GetString("ContactThisPerformer", resourceCulture);
}
}
public static string OnlyAuthorizedMayContact {
get {
return ResourceManager.GetString("OnlyAuthorizedMayContact", resourceCulture);
@ -562,12 +568,6 @@ namespace Yavsc.Model {
}
}
public static string User_name {
get {
return ResourceManager.GetString("User_name", resourceCulture);
}
}
public static string Item_added_to_basket {
get {
return ResourceManager.GetString("Item_added_to_basket", resourceCulture);
@ -580,6 +580,12 @@ namespace Yavsc.Model {
}
}
public static string Welcome {
get {
return ResourceManager.GetString("Welcome", resourceCulture);
}
}
public static string YourEstimates {
get {
return ResourceManager.GetString("YourEstimates", resourceCulture);
@ -622,6 +628,12 @@ namespace Yavsc.Model {
}
}
public static string PleaseFillInABody {
get {
return ResourceManager.GetString("PleaseFillInABody", resourceCulture);
}
}
public static string PhotoUpdated {
get {
return ResourceManager.GetString("PhotoUpdated", resourceCulture);
@ -652,9 +664,9 @@ namespace Yavsc.Model {
}
}
public static string DocTemplateException {
public static string UsersInRole {
get {
return ResourceManager.GetString("DocTemplateException", resourceCulture);
return ResourceManager.GetString("UsersInRole", resourceCulture);
}
}
@ -760,6 +772,12 @@ namespace Yavsc.Model {
}
}
public static string DocTemplateException {
get {
return ResourceManager.GetString("DocTemplateException", resourceCulture);
}
}
public static string DoNotPublishMyActivity {
get {
return ResourceManager.GetString("DoNotPublishMyActivity", resourceCulture);
@ -826,6 +844,12 @@ namespace Yavsc.Model {
}
}
public static string Performer {
get {
return ResourceManager.GetString("Performer", resourceCulture);
}
}
public static string NoSkillforthisactivity {
get {
return ResourceManager.GetString("NoSkillforthisactivity", resourceCulture);

View File

@ -41,7 +41,7 @@
<data name="Circles"><value>Cercles</value></data>
<data name="Comment"><value>Commentaire</value></data>
<data name="Consultant"><value>Consultant</value></data>
<data name="ContactThisPerformer"><value>Contactez ce préstataire</value></data>
<data name="ContactAPerformer"><value>Contactez un préstataire</value></data>
<data name="Count"><value>Nombre</value></data>
<data name="Create"><value>Créer</value></data>
<data name="Date_search"><value>Demande de rendez-vous</value></data>
@ -109,9 +109,12 @@
<data name="Pdf_version"><value>Version Pdf</value></data>
<data name="PerformanceDate"><value>Date de la prestation</value></data>
<data name="Performers"><value>Perstataires</value></data>
<data name="Performer"><value>Préstataire</value></data>
<data name="Person"><value>Personne</value></data>
<data name="Photo"><value>Photo</value></data>
<data name="PhotoUpdated"><value>Photo mise à jour</value></data>
<data name="PleaseFillInABody"><value>S'il vous plait, saisissez un corps de message</value></data>
<data name="PleaseFillInAReason"><value>S'il vous plait, saisissez une réson, un sujet pour votre message</value></data>
<data name="Posted"><value>Posté</value></data>
<data name="PreferedDate"><value>Date souhaitée</value></data>
<data name="Preview"><value>Prévisualiser</value><comment>Prévisualiser le document</comment></data>
@ -145,6 +148,7 @@
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis"><value>Selon son calendier Google, ce perstataire pourrait ne pas être disponible ce</value></data>
<data name="ThisPerformerDoesntGiveAccessToHisCalendar"><value>Ce prestataire n'a pas mis de calendrier à disposition.</value></data>
<data name="Title"><value>Titre</value></data>
<data name="to"><value>pour</value></data>
<data name="Unitary_cost"><value>Coût unitaire</value></data>
<data name="User_List"><value>Liste des utilisateurs</value><comment></comment></data>
<data name="User_name"><value>Nom d'utilisateur</value></data>

View File

@ -36,7 +36,7 @@
<data name="BookingTitle6829C"><value>Book a software editor</value></data>
<data name="Catalog"><value>Catalog</value></data>
<data name="Create"><value>Create</value></data>
<data name="ContactThisPerformer"><value>Contact this performer</value></data>
<data name="ContactAPerformer"><value>Contact a performer</value></data>
<data name="Count"><value>Count</value></data>
<data name="ChooseADescription"><value>Please, choose a description</value></data>
<data name="ChooseATitle"><value>Please, choose a title</value></data>
@ -113,9 +113,12 @@
<data name="Pdf_version"><value>Pdf version</value></data>
<data name="PerformanceDate"><value>Performance Date</value></data>
<data name="Performers"><value>Performers</value></data>
<data name="Performer"><value>Performer</value></data>
<data name="Person"><value>Person</value></data>
<data name="Photo"><value>Photo</value></data>
<data name="PhotoUpdated"><value>Photo updated</value></data>
<data name="PleaseFillInABody"><value>Please fill in a body</value></data>
<data name="PleaseFillInAReason"><value>Please, fill in a reason</value></data>
<data name="Posted"><value>Posted</value></data>
<data name="PreferedDate"><value>Prefered date</value></data>
<data name="Preview"><value>Preview</value><comment>comment on preview</comment></data>
@ -150,6 +153,7 @@
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis"><value>This performer gives access to his calendar and it appears he should not be available this</value></data>
<data name="ThisPerformerDoesntGiveAccessToHisCalendar"><value>ThisPerformerDoesntGiveAccessToHisCalendar</value></data>
<data name="Title"><value>Title</value></data>
<data name="to"><value>to</value></data>
<data name="Unitary_cost"><value>Unitary_cost</value></data>
<data name="User_List"><value>User List</value><comment></comment></data>
<data name="User_name"><value>User name</value></data>
@ -172,5 +176,5 @@
<data name="YourSkills"><value>Your skills, your special fields, the scope of your activities</value></data>
<data name="YourPosts"><value>You posts</value></data>
<data name="YourProfile"><value>Your profile</value></data>
<data name="YourMessageHasBeenSent"><value>Your message has been sent</value></data>
</root>

View File

@ -255,6 +255,7 @@
<Compile Include="WorkFlow\CommandRegistration.cs" />
<Compile Include="WorkFlow\NominativeCommandRegistration.cs" />
<Compile Include="RolesAndMembers\UpdatePassword.cs" />
<Compile Include="FrontOffice\PerformerContact.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>