Thème clair opé, WIP circles

* animate.css: animations css

* links.css: liens avec le fond blanc qui se déroule

* links.css: WIP liens thème sombre

* GitHub.ico: un petit merci à GitHub

* live-concert-fg.png: image de plan rapproché : les fans

* live-concert-scene.jpg: Image de fond : la scene

* splash-image-2.jpg: image de fond : photo colorée, public de
  concert, vient de totemproduction.fr

* links.css: ficher de définitions globales du style des bouttons
  (encore inutilisé)

* yavsc.user.js: WIP implémente le widget "utilisateur", permettant
l'affichage des liens rapides pour tout nom d'ulitisateur, le cas
  échéant, vers l'ajout à un cercle,
vers son blog, vers des methodes choisies d'administateur, vers ses
  réseaux sociaux, voir plus.

* About.aspx: Implémente une page "à propos"

* Test.aspx: Page de test: désolé pour le bruit, elle n'est compilée
  qu'en mode `Debug` (elle n'est pas accessible en production)

* NpgsqlBlogProvider.cs: Corrige la méthode pour enlever un tag à un
  article ...

* NpgsqlBlogProvider.csproj: .

* NpgsqlCircleProvider.cs: liste les cercles auquels appartient un
  utilisateur.

* BasketController.cs:
* NpgsqlContentProvider.cs: Les commandes sont fortement typée.

* README.md: mise à jour des priorités

* style.css: réécriture du thème clair

* style.css: * implémente un classe css `clickme` pour attirer l'oeil
sur le boutton de validation après la modification d'un champ de
  formulaire.
* enlève tous les coins arrondis
* modifie la chasse de caractères (une seule utilisée pour le moment)
*

* style.css: * integre la référence à la feuille de style des
  [animations](https://daneden.github.io/animate.css/)
* corrige des marges, alignements
* supprime ce qui reste de coin arrondi
* néttoye les définitions obsolètes
* définit la classe `username`
* corrige le survol à la suppression de tag

* FrontOfficeController.cs: renomme des methodes, refabriqué pour
  s'adapter aux changements de l'API du workflow,
WIP propose les cercles utilisateurs pour l'ajout des profiles
  préstataires aux cercles.

* HomeController.cs: implémente une page "à propos"

* T.cs: re-autorise le titre vide de page, au cas où ... car ce n'est
  pas un véritable
défaut fonctionnel.

* YavscHelpers.cs: Implemente un outil de presentation des liens
  action traduits. Tous les liens action utilisent maintenant cette
  nouvelle methode,
au profile de celle du framework `HtmlHelpers.ActionLink`

* App.master: corrige l'usage du contrôle utilisateur des cotes dans
  le cadre des cotes de billet.

* AppAdmin.master:
* Index.aspx:
* Service.aspx:
* ProductCategory.aspx: traduction des liens action

* NoLogin.master: * traduction des liens action
* suppression des liens de remerciement dans le bas de page, cette
  information a été déplacée dans la page `/Home/Credits`

* to-markdown.js: transforme maintenant les noeuds Html `div` en
  paragraphes Markdown.

* yavsc.hidefieldset.js: Le script règle la forme de la souris au
  survol du bouton,
le cas échéant.

* yavsc.js: nouvelle fonction javascript pour logger un objet
  arbitraire.

* yavsc.rate.js: Fixe la possibilité de mettre des cotes très basses
  ou très hautes (reste encore un mieux à faire),
Affiche au survol des descriptions optionnelles de la cote.

* Title.aspx:
* UserPost.aspx:
* Edit.aspx:
* Index.aspx:
* Brand.aspx:
* Index.aspx:
* PostActions.ascx:
* TitleNotFound.aspx:
* Booking.aspx:
* Command.aspx:
* ChangePasswordSuccess.aspx: Traduction des liens action

* Login.aspx: * Traduction des liens actionTraduction des liens action

* Profile.aspx: * Traduction des liens actionTraduction des liens
  action
* utilisation de la classe css `mayhide` qui autorise maintenant un
  champ d'entrées de formulaire à être plié/déplié au click sur sa
  légende.

* Admin.aspx: Traduction des liens actionTraduction des liens
  actionTraduction des liens actionTraduction des liens
  actionTraduction des liens actionTraduction des liens action

* Backups.aspx:
* RoleList.aspx:
* UserList.aspx:
* Index.aspx: Traduction des liens actionTraduction des liens action

* Edit.aspx: * refabrication de la structure Html
* Traduction des liens actionTraduction des liens action

* Index.aspx: Simlpification des apperçus de blog

* TagControl.ascx: refabrication pour simplifier l'implémentation du
  contrôle utilisateur des tags

* UserPosts.aspx: Traduction des liens action, et simplification du
  listing de blog

* Basket.aspx: Affiche les articles du panier de commandes avec leur
  vue
dédiée à leur type (les commande sont maintenant fortement typées)

* Catalog.aspx: Traduction des liens action, correctin du lien vers le
  produit
(cassé depuis une vielle refabrication des routes)

* DoAnEstimate.aspx: refabrication de la vue de création du devis:
  renommée depuis `Estimate`

* Performer.ascx: * un message supplementaire à l'absence de
  compétence affichée par un préstataire
* des guillemets autour du commentaire du préstataire sur sa
  compétence
* ajout du préstataire au cercles

* Performers.aspx: Décrit en détail les informations sur la
  disponibilité d'un préstataire,
à la date demandée.

* YourEstimates.aspx: renomage de cette page, pour préciser sa
  fonction : Vos devis.

* Contact.aspx: structure Html de la page de contact

* Credits.aspx: Ajoute les remerciements aux communauté du libre

* Index.aspx: ne fait rien

* Web.config: * import de `System.Transactions`
* mise à jour des credits libres

* WebDeploy.targets: utilise les séparateurs de chemin vers ficher à
  la POSIX, ne change rien pour ma config ... (TODO tester sous
  WoinDose)

* Yavsc.csproj: déploie des pages des scripts Javascript et des images
  et feuilles de style en plus.

* CircleManager.cs: implémente les methodes utilisées à la
  construction du contrôle utilisateur.

* CircleProvider.cs: * doc xml
* extension de interface

* Commande.cs: l'objet `Command` devient abstrait, pour exister (être
  instanciée), une commande doit maintenant hériter de cet objet
  abstrait.

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

* IContentProvider.cs: doc xml

* SiteSkills.aspx: renomage de cette page, pour préciser sa fonction :
  les compétences sur ce site.
vnext
Paul Schneider 9 years ago
parent c23b737144
commit d999ae5a8e
82 changed files with 4856 additions and 594 deletions

@ -1,3 +1,7 @@
2015-12-09 Paul Schneider <paul@pschneider.fr>
* README.md: mise à jour des priorités
2015-12-01 Paul Schneider <paul@pschneider.fr>
* README.md: mise à jour priorités

@ -1,3 +1,10 @@
2015-12-09 Paul Schneider <paul@pschneider.fr>
* NpgsqlBlogProvider.cs: Corrige la méthode pour enlever un
tag à un article ...
* NpgsqlBlogProvider.csproj: .
2015-11-30 Paul Schneider <paul@pschneider.fr>
* NpgsqlBlogProvider.cs: implémente le compteur de billet en

@ -20,7 +20,11 @@ namespace Npgsql.Web.Blog
string connectionString;
#region implemented abstract members of BlogProvider
/// <summary>
/// Gets the public post count.
/// </summary>
/// <returns>The public post count.</returns>
/// <param name="bloggerName">Blogger name.</param>
public override long GetPublicPostCount (string bloggerName)
{
long result = -1;
@ -100,7 +104,14 @@ AND b.applicationname = :app
/// <param name="name">Name.</param>
override public void Untag (long postid, string name)
{
Untag (postid, GetTagId (name));
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "DELETE FROM tagged WHERE tagged.postid = :pid AND tagged.tagid = (select tag._id FROM tag WHERE tag.name = :tnm)";
cmd.Parameters.AddWithValue ("pid", postid);
cmd.Parameters.AddWithValue ("tnm", name);
cnx.Open ();
cmd.ExecuteNonQuery ();
}
}
/// <summary>
@ -472,15 +483,19 @@ AND b.applicationname = :app
private long GetTagId (string tagname)
{
// FIXME null pointer at cmd.ExecuteScalar!
if (tagname == null)
throw new NullReferenceException ("This tag name is null");
long id = 0;
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString))
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "SELECT tag._id FROM public.tag WHERE name = :name";
cmd.Parameters.AddWithValue ("name", tagname);
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) {
cnx.Open ();
id = (long)cmd.ExecuteScalar ();
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = "SELECT _id FROM tag WHERE name LIKE :tn";
cmd.Parameters.AddWithValue ("tn",NpgsqlDbType.Varchar, tagname);
id = (long) cmd.ExecuteScalar ();
}
cnx.Close ();
}
return id;
}

@ -9,7 +9,7 @@
<OutputType>Library</OutputType>
<RootNamespace>Npgsql.Web.Blog</RootNamespace>
<AssemblyName>NpgsqlBlogProvider</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>

@ -1,3 +1,11 @@
2015-12-09 Paul Schneider <paul@pschneider.fr>
* NpgsqlCircleProvider.cs: liste les cercles auquels
appartient un utilisateur.
* NpgsqlContentProvider.cs: Les commandes sont fortement
typée.
2015-11-30 Paul Schneider <paul@pschneider.fr>
* NpgsqlContentProvider.csproj: ...

@ -37,6 +37,38 @@ namespace WorkFlowProvider
public class NpgsqlCircleProvider : CircleProvider
{
#region implemented abstract members of CircleProvider
/// <summary>
/// Circles the specified ownername and username.
/// </summary>
/// <param name="ownername">Ownername.</param>
/// <param name="username">Username.</param>
public override string[] Circles (string ownername, string username)
{
List<string> circles = new List<string> ();
using (NpgsqlConnection cnx = new NpgsqlConnection (connectionString)) {
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText = @"select c.title from circle c, circle_members m
where c.owner = :wnr
and c._id = m.circle_id
and m.member = :user
and m.applicationname = :app
";
cmd.Parameters.AddWithValue ("wnr",ownername);
cmd.Parameters.AddWithValue ("user",username);
cmd.Parameters.AddWithValue ("app",applicationName);
cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
if (rdr.HasRows) while (rdr.Read ())
circles.Add (rdr.GetString (0));
rdr.Close ();
}
}
cnx.Close ();
}
return circles.ToArray();
}
/// <summary>
/// Updates the circle.
/// </summary>

@ -210,13 +210,14 @@ namespace Yavsc
using (NpgsqlConnection cnx = CreateConnection ()) {
using (NpgsqlCommand cmd = cnx.CreateCommand ()) {
cmd.CommandText =
"select id,creation,prdref,params from commandes where @user = clientname and applicationname = @app";
"select id,creation,prdref,params,class from commandes where @user = clientname and applicationname = @app";
cmd.Parameters.AddWithValue ("@user", username);
cmd.Parameters.AddWithValue ("@app", this.ApplicationName);
cnx.Open ();
using (NpgsqlDataReader rdr = cmd.ExecuteReader ()) {
while (rdr.Read ()) {
Command ycmd = new Command ();
string cls = rdr.GetString (4);
Command ycmd = Command.CreateCommand(cls);
ycmd.Id = rdr.GetInt64 (0);
ycmd.CreationDate = rdr.GetDateTime (1);
ycmd.ProductRef = rdr.GetString (2);

@ -18,9 +18,12 @@ 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
Et Donner des descriptions textuelles au cotes (ex: dans le cadre d'un prestataire, ses 5 cotes seraient
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 :
concernant la mise à jour la creation et l'edition d'un post, on

@ -39,7 +39,7 @@ namespace Yavsc.ApiControllers
public long Create(NameValueCollection cmdParams)
{
// HttpContext.Current.Request.Files
Command cmd = new Command(cmdParams, HttpContext.Current.Request.Files);
Command cmd = Command.CreateCommand(cmdParams, HttpContext.Current.Request.Files);
CurrentBasket.Add (cmd);
return cmd.Id;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,51 @@

a, .actionlink {
z-index: 1;
color: white;
display:inline-block;
border-style: solid;
border-width:1px;
padding: 1em;
position: relative;
transition: color 1s;
}
a:visited { color: white; }
a:hover, a:visited:hover, .actionlink:hover {
color:black;
}
@media print {
.actionlink, .menuitem { display:none;}
}
div.bback {
position: absolute;
top: 0;
left:0;
width:100%;
height:100%;
z-index: -2;
background-color: rgba(32,32,32,.2);
}
div.aback {
transform: scaleX(0);
transform-origin: 0px 50% 0px;
transition: transform 1s;
position: absolute;
top: 0;
left:0;
width:100%;
height:100%;
z-index: -1;
background-color:white;
}
a:hover > div.aback {
transform: scaleX(1);
}

@ -1,11 +1,14 @@
@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700);
@import url(http://fonts.googleapis.com/css?family=Josefin+Sans&subset=latin,latin-ext);
@import url(/App_Themes/clear/links.css);
body {
background-color: grey;
color: #303030;
font-family: 'Open Sans', sans-serif;
background-color: white;
color: black;
font-family: 'Josefin Sans', sans-serif;
background: url("/App_Themes/images/splash-image-2.jpg") 0 0 repeat fixed ;
}
.tagname { color: #D0FFD0; }
.tagname { }
.tagname:hover { background-color: red; }
/* Start by setting display:none to make this hidden.
@ -21,68 +24,79 @@ body {
}
input, textarea, checkbox {
color: #FFA0A0;
background-color: black;
}
header {
background: url("/App_Themes/images/live-concert-388160_1280.jpg") 50% 0 repeat fixed;
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;
}
#logo {
background: url("/App_Themes/images/logo.s.png") 1em 1em no-repeat fixed;
}
header { float: left; }
h1, h2, h3 { background-color: rgba(256,256,256,.5); }
h1 { display: inline-block; }
nav {
background: url("/App_Themes/images/live-concert-388160_1280.jpg") 50% 10em repeat fixed ;
}
nav li { display: inline-block; }
main {
background: url("/App_Themes/images/musician-923526_1.nbbi.jpg") 50% 20em repeat fixed ;
clear:both;
background-color: rgba(256,256,256,.5);
}
footer {
background: url("/App_Themes/images/live-concert-388160_1280.jpg") 50% 30em repeat fixed ;
background: url("/App_Themes/images/splash-image-2.jpg") 0 0 repeat fixed ;
}
legend {
background-color: rgba(240,240,240,.5);
legend, .skillname {
background-color: rgba(240,240,240,.8);
}
#copyr { background-color: rgba(250,250,250,.8); }
#copyr { }
#gspacer {
background-color: rgba(209,209,209,.8); }
form {
background-color: rgba(150,150,256,0.8);
}
fieldset {
background-color: rgba(216,216,256,0.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); }
a { color: rgb(0,56,0); }
a:hover { background-color: rgba(160,160,160,.7); }
footer a {
color: black;
background-color: rgba(220,220,220,.8);
}
.panel,.bshpanel, aside {
.panel,.bigpanel, aside {
background-color: rgba(200,200,200,.8);
}
@ -91,6 +105,7 @@ footer a {
}
.editable {
border: dashed rgb(200,200,256) 2px;
background-color: rgba(256,256,256,.8);
}
.notification {
@ -102,7 +117,7 @@ footer a {
}
.error, #error {
color: #f88;
background-color: rgba(256,.5);
background-color: rgba(256,0,0,.5);
}
.validation-summary-errors{
color: #f88;
@ -118,79 +133,87 @@ ul.preview li:nth-child(n) {
color: #f88;
}
a.menuitem {
color: black;
border: solid black 1px;
background-color: rgba(220,220,220,.8);
}
.actionlink {
color: black;
border: solid black 1px;
background-color: rgba(220,220,220,.8);
}
input, select, textarea {
color: black;
background-color:rgba(256,256,256,0.8);
border: solid 1px rgb(128,128,128);
}
a:active {
background-color:rgba(184,180,132,0.9);
}
input:hover, textarea:hover {
color: white;
background-color:rgba(164,164,164,0.8);
input:hover, textarea:hover {
color: black;
background-color: rgba(256,256,256,.8);
}
.code {
background-color: rgba(230,230,230,0.5);
}
.ohafter:hover + .onhover, .ohinside:hover > .onhover {
background-color: rgba(240,240,250,.8);
}
.input-validation-error { border: solid 1px red; }
.field-validation-error { color: red; }
@media all and (max-width: 640px) {
#logo {
background: url("/App_Themes/images/logo.xs.png") 0 0 no-repeat fixed;
}
header {
background: url("/App_Themes/images/live-concert-388160_1280.s.jpg") 50% 0 repeat fixed;
}
nav {
background: url("/App_Themes/images/live-concert-388160_1280.s.jpg") 50% 10% repeat fixed ;
}
main {
background: url("/App_Themes/images/musician-923526_1.nbbi.xs.jpg") 50% 20em repeat fixed ;
}
footer {
background: url("/App_Themes/images/live-concert-388160_1280.s.jpg") 50% 90% repeat fixed ;
}
}
@media all and (max-width: 350px) {
#logo {
background: url("/App_Themes/images/logo.xxs.png") 0 0 no-repeat fixed;
}
header {
background: url("/App_Themes/images/live-concert-388160_1280.xxs.jpg") -1em -1em repeat fixed;
}
nav {
background: url("/App_Themes/images/live-concert-388160_1280.xxs.jpg") 50% 10% repeat fixed ;
}
main {
background: url("/App_Themes/images/musician-923526_1.nbbi.xxs.jpg") 50% 20em repeat fixed ;
}
footer {
background: url("/App_Themes/images/live-concert-388160_1280.xxs.jpg") 50% 90% repeat fixed ;
}
}
.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;
}
}

@ -0,0 +1,27 @@

.actionlink, .menuitem, a, input[type='submit'] {
display:inline-block;
border-radius:1em;
border-style: solid;
border-width:1px;
cursor: pointer;
padding: 1em;
animation-name: fadeIn;
animation-duration: 1s;
animation-iteration-count: 1;
}
.menuitem {}
a:hover, .actionlink:hover, input[type='submit']:hover {
animation-name: fadeIn;
animation-duration: 1s;
animation-iteration-count: 1;
}
@media print {
.actionlink, .menuitem { display:none;}
}

@ -1,4 +1,21 @@
@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);
@ -21,13 +38,8 @@ body {
.rate:hover { border-color: green;
background-color:rgba(30,0,124,0.9); }
input, textarea, checkbox {
color: #FFFFA0;
background-color: black;
}
header {
background: url("http://s448140597.onlinehome.us/wp-content/uploads/2014/12/project-management1.jpg") -20em -20em repeat fixed;
}
header h1, header a {
@ -60,7 +72,16 @@ legend {
#gspacer {
background-color: rgba(20,20,20,.8);
}
.thanks {
background-color: rgba(50,50,50,.8);
color: rgb(230,230,230);
font-size: x-small;
font-weight: bold;
}
.thanks:hover {
background-color: rgba(80,80,80,.8);
color: white;
}
.postpreview {
background-color: rgba(0,0,32,0.8);
}
@ -70,12 +91,12 @@ legend {
}
.hiddenpost { background-color: rgba(16,16,16,0.5); }
.panel, .spanel, .bshpanel, .xspanel, .xxspanel, aside {
aside {
background-color: rgba(20,20,20,.6);
border-color: rgb(128,128,128);
border-style: solid;
border-width: 1px;
padding: 1em;
}
.usertitleref {
@ -90,15 +111,19 @@ legend {
border-color: green ;
}
.dirty {
background-color: rgba(128,128,0,0.5);
background-color: rgba(128,0,0,0.5);
}
.error, #error {
color: #f88;
background-color: rgba(256,0,0,0.5);
background-color: rgba(128,0,0,0.5);
}
.validation-summary-errors{
color: #f88;
background-color: rgba(256,0,0,0.5);
background-color: rgba(128,0,0,0.5);
}
.validation-summary-errors{
@ -107,9 +132,18 @@ legend {
a {
text-decoration: none;
background-color: rgba(30,30,30,.8);
color: yellow;
}
a:hover {
background-color:rgba(50,50,50,.8);
color: white;
}
a:active {
background-color:rgba(124,0,32,0.9);
}
.actionlink, .menuitem, a {
.actionlink, .menuitem, input[type='submit'] {
border-color: rgb(128,128,0);
background-color: rgba(20,20,20,.8);
color: yellow;
@ -117,26 +151,21 @@ a {
input, select, textarea {
color: white;
background-color:rgba(0,0,64,0.8);
background-color:rgba(32,32,32,0.8);
border-color: rgb(128,128,128);
}
a:hover {
background-color:rgba(30,0,124,0.9);
border-color: green ;
}
a:active {
background-color:rgba(124,0,32,0.9);
}
input:hover, textarea:hover {
color: white;
background-color:rgba(64,64,64,0.8);
background-color:rgb(0,0,0);
}
.code {
background-color: rgba(0,0,256,0.1);
}
.clickme {
transition: background-color 2s;
}
@media all and (max-width: 640px) {
header {
@ -223,3 +252,31 @@ header h1, header a { padding:.2em;}
.c2 { display:none; }
.c2-alt { display:initial; }
}
.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(30,30,30,.8);}
50% {background-color: rgba(90,50,50,.8);}
to {background-color: rgba(30,30,30,.8);}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

@ -0,0 +1,26 @@

.actionlink, .menuitem, a, input[type='submit'] {
display:inline-block;
border-radius:1em;
border-style: solid;
border-width:1px;
cursor: pointer;
padding: 1em;
animation-name: fadeIn;
animation-duration: 1s;
animation-iteration-count: 1;
}
.menuitem {}
a:hover, .actionlink:hover, input[type='submit']:hover {
animation-name: fadeIn;
animation-duration: 1s;
animation-iteration-count: 1;
}
@media print {
.actionlink, .menuitem { display:none;}
}

@ -1,4 +1,4 @@
@import url(/App_Themes/animate.css);
body {
padding: 0;
margin: 0;
@ -11,42 +11,38 @@ body.loading .modal {
display: block;
}
.rate {
border-radius:1em;
border-style: solid;
border-width: 1px;
padding:.2em;
margin:.1em;
padding:.1em;
display: inline-block;
width:5em;
text-align:center;
}
header {
transition: margin 2s, padding 2s;
padding: 0;
padding: 2em;
margin: 0;
padding-top: 2em;
padding-bottom:2em;
display: block;
}
header h1, header a {
transition:padding 2s;
margin:0; padding:1em;
header h1 {
transition: padding 2s;
}
nav {
transition: margin 2s, padding 2s;
margin: 2em;
transition: margin 2s, size 2s;
padding: 2em;
display: block;
border-radius:1em;
justify-content: space-around;
}
div {
vertical-align: text-top;
transition: margin 2s, padding 2s, height 2s; }
main {
transition: margin 2s, padding 2s;
margin: 2em;
padding: 2em;
display: block;
border-radius:1em;
}
main video, main img {
max-width:100%;
@ -56,7 +52,6 @@ main video, main img {
footer {
transition: margin 2s, padding 2s;
margin: 2em;
padding: 2em;
display: block;
clear: both;
@ -71,7 +66,7 @@ footer img { max-height: 3em; vertical-align: middle; }
a img, h1 img, .menuitem img { vertical-align: middle; }
fieldset {
border-radius:5px; border-style: solid;
border-style: solid;
border-width: 1px;
}
aside {
@ -101,6 +96,8 @@ ul.preview li:nth-child(n) {
overflow: auto;
}
.switch { cursor: pointer; }
.dispmodal {
position: fixed;
z-index: 1000;
@ -113,20 +110,13 @@ ul.preview li:nth-child(n) {
overflow-x: hidden;
}
.postpreview {
display: inline-block;
max-width: 40em;
padding: 1em;
border-radius:1em;
}
.postpreview video, .postpreview img {
max-width: 100%;
padding: 1em;
max-height: 3em;
padding: .3em;
}
.post {
display:block;
padding: 1em;
border-radius:1em;
}
.fullwidth { width: 100%; }
@ -139,35 +129,22 @@ textarea.fullwidth { min-height:10em; }
display:inline;
bottom:0;
}
.panel {
display:inline-block;
}
.panel,.bshpanel, aside {
border-radius: 1em;
padding: 1em;
}
.spanel {
max-width: 18em;
display: inline-block;
border-radius: 1.5em;
padding: .3em;
}
fieldset {
display: inline-block;
border-radius: 1.5em;
padding: .3em;
}
.xspanel {
max-width:13em;
display: inline-block;
padding:.2em;
border-radius: 1em;
}
.xxspanel {
max-width:7em;
display: inline-block;
padding:.1em;
border-radius: .5em;
}
.hint {
@ -175,21 +152,22 @@ display:inline-block;
font-style: italic;
font-size: smaller;
}
.hint::before {
content: "(";
}
.hint::after {
content: ")";
}
.usertitleref {
border-radius: 1em;
padding: 1em;
}
.editable {
margin: .5em;
min-height:1em;
border-radius: 1em;
border-style: dashed;
border-width: 2px;
}
@ -199,16 +177,15 @@ content: ")";
border-style: solid;
border-width: 1px;
padding: 1em;
border-radius:1em;
margin:1em;
padding:1em;
}
.error, #error {
font-size: large;
}
.hidden { display:none; }
.hidden { display:none; }
.iconsmall { max-height: 1.3em; max-width: 1.3em; }
@ -219,7 +196,6 @@ content: ")";
nav li { display: inline-block; }
footer a {
border-radius:1em;
padding:1em;
}
@ -230,35 +206,23 @@ a img, h1 img, .menuitem img { vertical-align: middle; }
legend {
border-radius:5px;
padding:.5em;
}
#copyr { text-align: center; display: block; }
#gspacer {
border-radius:1em;
margin:1em; padding:1em;
display: inline-block }
.actionlink, .menuitem, a {
display:inline-block;
border-radius:1em;
border-style: solid;
border-width:1px;
cursor: pointer;
padding: 1em;
}
input, select, textarea {
border-radius:1em;
border-style: solid;
border-width:1px;
}
.code {
font-family: "monospace";
border-radius:25px;
white-space: pre-wrap;
}
.bigavatar{
@ -271,44 +235,38 @@ input, select, textarea {
}
.comment {
border-radius:25px;
font-size: smaller;
}
.onhover {
display:none;
position: absolute;
.username {
border-style: solid;
border-width: 1px;
font-size: large;
font-weight: bold;
display: inline-block;
animation-name: wobble;
animation-duration: 4s;
animation-iteration-count: 1;
padding:1em;
}
.ohafter:hover + .onhover, .ohinside:hover > .onhover {
display:block;
z-index:2;
padding:5px; margin:5px;
background-color: rgba(0,0,40,.8);
}
.skillname, .performer, .usercard, .pagelink {
.skillname, .pagelink {
padding:.5em;
margin:.25em;
max-width: 24em;
text-align: center;
display: inline-block;
border-radius:1em;
border-style: solid;
border-width: 1px;
font-size: large;
}
.input-validation-error { border: solid 1px red; background-color: rgba(180,256,256,.5); }
.field-validation-error { color: red; background-color: rgba(180,256,256,.5); }
.performer , .availability { text-align: center; padding: 1em; }
.c2 { font-size: small; font-style: italic; }
.c3 { font-size: x-small; font-style: italic; }
.rate {
display:inline-bloc; width:5em; cursor: pointer; text-align:center;
}
h2 select { font-size: large; }
ul.editablelist {
@ -319,45 +277,47 @@ ul.editablelist>li {
margin:.5em;
padding:.2em;
border: solid grey 1px;
border-radius: 1em;
cursor:pointer;
}
ul.editablelist>li:before {
ul.editablelist>li:after {
font-family: 'FontAwesome';
content: "\f007";
content: " ";
}
ul.editablelist>li:hover {
background-color: rgba(128,0,0,0.5);
cursor:pointer;
}
ul.editablelist>li:hover:before {
ul.editablelist>li:hover:after {
font-family: 'FontAwesome';
content: "\f00d";
}
.bsh { display: none; }
.c3 { display:initial; }
.c3-alt { display:none; }
@media all and (min-width: 640px) {
div.panel {
display:inline-block;
}
}
.high-z-index { z-index: 99; }
@media print {
body {background-color:white;color:black;}
.control, .actionlink, .menuitem, nav { display:none;}
.control, nav { display:none;}
}
.bshpanel { display: inline-block; }
.bsh { display: none; }
.c3 { display:initial; }
.c3-alt { display:none; }
@media all and (max-width: 640px) {
header {
padding-top:1em;
padding-bottom:1em;
}
#avatar {
margin:.5em;
}
header h1, header a , .actionlink, .menuitem, a { padding:.5em;}
nav {
margin: 1em;
@ -372,22 +332,19 @@ header h1, header a , .actionlink, .menuitem, a { padding:.5em;}
padding: 1em;
}
footer a {
border-radius:.5em;
margin:.5em;
padding:.5em;
}
.notification {
padding: .5em;
border-radius:.5em;
margin:.5em;
padding:.5em;
max-height: 100%;
overflow-y: auto;
}
.menuitem {
display: block;
}
.menuitem { display: block; }
.post {
margin:.3em;
padding:.3em;
@ -404,10 +361,7 @@ header h1, header a , .actionlink, .menuitem, a { padding:.5em;}
}
@media all and (max-width: 380px) {
header {
padding-top:.5em;
padding-bottom:.5em;
}
header h1, header a { padding:.2em;}
@ -415,6 +369,7 @@ header h1, header a { padding:.2em;}
margin: .5em;
padding: .5em;
}
main {
margin: .5em;
padding: .5em;
@ -424,7 +379,6 @@ header h1, header a { padding:.2em;}
padding: .5em;
}
footer a {
border-radius:.2em;
margin:.2em;
padding:.2em;
}
@ -433,4 +387,3 @@ header h1, header a { padding:.2em;}
}

@ -1,3 +1,192 @@
2015-12-09 Paul Schneider <paul@pschneider.fr>
* animate.css: animations css
* links.css: liens avec le fond blanc qui se déroule
* links.css: WIP liens thème sombre
* GitHub.ico: un petit merci à GitHub
* live-concert-fg.png: image de plan rapproché : les fans
* live-concert-scene.jpg: Image de fond : la scene
* splash-image-2.jpg: image de fond : photo colorée, public de
concert, vient de totemproduction.fr
* links.css: ficher de définitions globales du style des
bouttons (encore inutilisé)
* yavsc.user.js: WIP implémente le widget "utilisateur",
permettant
l'affichage des liens rapides pour tout nom d'ulitisateur, le
cas échéant, vers l'ajout à un cercle,
vers son blog, vers des methodes choisies d'administateur,
vers ses réseaux sociaux, voir plus.
* About.aspx: Implémente une page "à propos"
* Test.aspx: Page de test: désolé pour le bruit, elle n'est
compilée qu'en mode `Debug` (elle n'est pas accessible en
production)
* BasketController.cs: Les commandes sont fortement typée.
* style.css: réécriture du thème clair
* style.css: * implémente un classe css `clickme` pour attirer
l'oeil
sur le boutton de validation après la modification d'un champ
de formulaire.
* enlève tous les coins arrondis
* modifie la chasse de caractères (une seule utilisée pour le
moment)
*
* style.css: * integre la référence à la feuille de style des
[animations](https://daneden.github.io/animate.css/)
* corrige des marges, alignements
* supprime ce qui reste de coin arrondi
* néttoye les définitions obsolètes
* définit la classe `username`
* corrige le survol à la suppression de tag
* FrontOfficeController.cs: renomme des methodes, refabriqué
pour s'adapter aux changements de l'API du workflow,
WIP propose les cercles utilisateurs pour l'ajout des profiles
préstataires aux cercles.
* HomeController.cs: implémente une page "à propos"
* T.cs: re-autorise le titre vide de page, au cas où ... car
ce n'est pas un véritable
défaut fonctionnel.
* YavscHelpers.cs: Implemente un outil de presentation des
liens action traduits. Tous les liens action utilisent
maintenant cette nouvelle methode,
au profile de celle du framework `HtmlHelpers.ActionLink`
* App.master: corrige l'usage du contrôle utilisateur des
cotes dans le cadre des cotes de billet.
* AppAdmin.master:
* Index.aspx:
* Service.aspx:
* ProductCategory.aspx: traduction des liens action
* NoLogin.master: * traduction des liens action
* suppression des liens de remerciement dans le bas de page,
cette information a été déplacée dans la page `/Home/Credits`
* to-markdown.js: transforme maintenant les noeuds Html `div`
en paragraphes Markdown.
* yavsc.hidefieldset.js: Le script règle la forme de la souris
au survol du bouton,
le cas échéant.
* yavsc.js: nouvelle fonction javascript pour logger un objet
arbitraire.
* yavsc.rate.js: Fixe la possibilité de mettre des cotes très
basses ou très hautes (reste encore un mieux à faire),
Affiche au survol des descriptions optionnelles de la cote.
* Title.aspx:
* UserPost.aspx:
* Edit.aspx:
* Index.aspx:
* Brand.aspx:
* Index.aspx:
* PostActions.ascx:
* TitleNotFound.aspx:
* Booking.aspx:
* Command.aspx:
* ChangePasswordSuccess.aspx: Traduction des liens action
* Login.aspx: * Traduction des liens actionTraduction des
liens action
* Profile.aspx: * Traduction des liens actionTraduction des
liens action
* utilisation de la classe css `mayhide` qui autorise
maintenant un champ d'entrées de formulaire à être plié/déplié
au click sur sa légende.
* Admin.aspx: Traduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens action
* Backups.aspx:
* RoleList.aspx:
* UserList.aspx:
* Index.aspx: Traduction des liens actionTraduction des liens
action
* Edit.aspx: * refabrication de la structure Html
* Traduction des liens actionTraduction des liens action
* Index.aspx: Simlpification des apperçus de blog
* TagControl.ascx: refabrication pour simplifier
l'implémentation du contrôle utilisateur des tags
* UserPosts.aspx: Traduction des liens action, et
simplification du listing de blog
* Basket.aspx: Affiche les articles du panier de commandes
avec leur vue
dédiée à leur type (les commande sont maintenant fortement
typées)
* Catalog.aspx: Traduction des liens action, correctin du lien
vers le produit
(cassé depuis une vielle refabrication des routes)
* DoAnEstimate.aspx: refabrication de la vue de création du
devis: renommée depuis `Estimate`
* Performer.ascx: * un message supplementaire à l'absence de
compétence affichée par un préstataire
* des guillemets autour du commentaire du préstataire sur sa
compétence
* ajout du préstataire au cercles
* Performers.aspx: Décrit en détail les informations sur la
disponibilité d'un préstataire,
à la date demandée.
* YourEstimates.aspx: renomage de cette page, pour préciser sa
fonction : Vos devis.
* Contact.aspx: structure Html de la page de contact
* Credits.aspx: Ajoute les remerciements aux communauté du
libre
* Index.aspx: ne fait rien
* Web.config: * import de `System.Transactions`
* mise à jour des credits libres
* WebDeploy.targets: utilise les séparateurs de chemin vers
ficher à la POSIX, ne change rien pour ma config ... (TODO
tester sous WoinDose)
* Yavsc.csproj: déploie des pages des scripts Javascript et
des images et feuilles de style en plus.
* SiteSkills.aspx: renomage de cette page, pour préciser sa
fonction : les compétences sur ce site.
2015-12-03 Paul Schneider <paul@pschneider.fr>
* AccountController.cs: doc xml

@ -22,6 +22,7 @@ using Yavsc.Model.Google.Api;
using System.Net;
using System.Linq;
using System.ComponentModel.DataAnnotations;
using Yavsc.Model.Circles;
namespace Yavsc.Controllers
{
@ -53,7 +54,7 @@ namespace Yavsc.Controllers
/// Estimates released to this client
/// </summary>
[Authorize]
public ActionResult Estimates (string client)
public ActionResult YourEstimates (string client)
{
var u = Membership.GetUser ();
if (u == null) // There was no redirection to any login page
@ -94,7 +95,7 @@ namespace Yavsc.Controllers
/// <param name="model">Model.</param>
/// <param name="submit">Submit.</param>
[Authorize]
public ActionResult Estimate (Estimate model, string submit)
public ActionResult DoAnEstimate (Estimate model, string submit)
{
string username = Membership.GetUser ().UserName;
// Obsolete, set in master page
@ -238,14 +239,23 @@ namespace Yavsc.Controllers
/// <param name="collection">Collection.</param>
[HttpPost]
[Authorize]
public ActionResult Command (FormCollection collection)
public ActionResult DoCommand (FormCollection collection)
{
try {
// Add specified product command to the basket,
// saves it in db
new Command (collection, HttpContext.Request.Files);
YavscHelpers.Notify (ViewData, LocalizedText.Item_added_to_basket);
return View (collection);
//
// * check the validity of this request
// by finding the "type" parameter between
// the allowed command types
// * instanciate the given command type, passing it the form data
// * Make the workflow register this command
// * Render the resulting basket
var cmd = Command.CreateCommand (collection, HttpContext.Request.Files);
ViewData["Commanded"] = cmd;
YavscHelpers.Notify (ViewData,
LocalizedText.Item_added_to_basket);
return View ("Basket",WorkFlowManager.GetCommands (User.Identity.Name));
} catch (Exception e) {
YavscHelpers.Notify (ViewData, "Exception:" + e.Message);
return View (collection);
@ -276,7 +286,7 @@ namespace Yavsc.Controllers
/// Skills the specified model.
/// </summary>
[Authorize (Roles = "Admin")]
public ActionResult ActivitySkills (string MEACode)
public ActionResult SiteSkills (string MEACode)
{
SetMEACodeViewData (MEACode);
var skills = SkillManager.FindSkill ("%",MEACode);
@ -404,6 +414,7 @@ namespace Yavsc.Controllers
{
// assert (model.MEACode!=null), since it's the required part of the route data
var needs = SkillManager.FindSkill ("%", model.MEACode);
ViewBag.Activity = WorkFlowManager.GetActivity (model.MEACode);
var specification = new List<SkillRating> ();
ViewData ["Needs"] = needs;
if (model.Need != null) {
@ -438,6 +449,7 @@ namespace Yavsc.Controllers
}
} else
result.Add (profile.CreateAvailability (model.PreferedDate, false));
ViewData["Circles"] = CircleManager.ListAvailableCircles();
return View ("Performers", result.ToArray ());
}
if (model.Need==null) {

@ -109,7 +109,19 @@ namespace Yavsc.Controllers
{
return View ();
}
/// <summary>
/// About this instance.
/// </summary>
public ActionResult About ()
{
return View ();
}
#if DEBUG
public ActionResult Test ()
{
return View ();
}
#endif
/// <summary>
/// Contact the specified email, reason and body.
/// </summary>

@ -35,8 +35,9 @@ namespace Yavsc.Helpers
/// <param name="text">Text.</param>
public static IHtmlString Translate(this HtmlHelper helper, object text)
{
// TODO notify admin from a null text here
if (string.IsNullOrWhiteSpace ((string)text))
throw new InvalidOperationException ("Empty text to translate");
return null;
// Just call the other one, to avoid having two copies (we don't use the HtmlHelper).
return new MvcHtmlString(helper.Encode(GetString((string)text)));
}

@ -17,6 +17,8 @@ using System.Web.Mvc;
using System.Text.RegularExpressions;
using Yavsc.Model.Messaging;
using System.Linq;
using System.Reflection;
using System.Web.Routing;
namespace Yavsc.Helpers
{
@ -377,7 +379,6 @@ namespace Yavsc.Helpers
HtmlTextWriter writer = new HtmlTextWriter(strwr);
// refer to the global style
writer.AddAttribute ("rel", "stylesheet");
writer.AddAttribute ("title", theme);
writer.AddAttribute ("href",
string.Format(
"/App_Themes/{1}.css",
@ -407,6 +408,100 @@ namespace Yavsc.Helpers
}
return new MvcHtmlString(strwr.ToString());
}
private static object defaultHtmlAttributes =
new { @class="actionlink" };
/// <summary>
/// Translateds the action link.
/// </summary>
/// <returns>The action link.</returns>
/// <param name="helper">Helper.</param>
/// <param name="actionName">Action name.</param>
/// <param name="htmlAttributes">Html attributes.</param>
public static IHtmlString TranslatedActionLink (this HtmlHelper helper,
string actionLabel, object htmlAttributes = null) {
return TranslatedActionLink (helper, actionLabel, actionLabel, htmlAttributes);
}
/// <summary>
/// Translateds the action link.
/// </summary>
/// <returns>The action link.</returns>
/// <param name="helper">Helper.</param>
/// <param name="actionName">Action name.</param>
/// <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);
}
/// <summary>
/// Translateds the action link.
/// </summary>
/// <returns>The action link.</returns>
/// <param name="helper">Helper.</param>
/// <param name="actionName">Action name.</param>
/// <param name="method">Method.</param>
/// <param name="controller">Controller.</param>
/// <param name="htmlAttributes">Html attributes.</param>
public static IHtmlString TranslatedActionLink (this HtmlHelper helper,
string actionLabel, string method, string controller, object htmlAttributes = null) {
return TranslatedActionLink (helper, actionLabel, method, controller,
new { controller = controller, action = actionLabel }, htmlAttributes);
}
/// <summary>
/// Translateds the action link.
/// </summary>
/// <returns>The action link.</returns>
/// <param name="helper">Helper.</param>
/// <param name="actionName">Action name.</param>
/// <param name="method">Method.</param>
/// <param name="controller">Controller.</param>
/// <param name="routes">Routes.</param>
/// <param name="htmlAttributes">Html attributes.</param>
public static IHtmlString TranslatedActionLink (this HtmlHelper helper,
string actionLabel, string actionName, string controller, object routes, object htmlAttributes = null) {
if (htmlAttributes == null)
htmlAttributes = defaultHtmlAttributes;
IHtmlString text = T.Translate (helper, actionLabel);
StringWriter strwr = new StringWriter ();
HtmlTextWriter writer = new HtmlTextWriter(strwr);
foreach (var ppt in htmlAttributes.GetType().GetProperties(BindingFlags.GetProperty|
BindingFlags.Public)) {
writer.AddAttribute(ppt.Name, ppt.GetValue(htmlAttributes).ToString())
;
}
writer.AddAttribute ("href",
UrlHelper.GenerateUrl (
"Default", actionName, controller,
( routes == null ) ? null : new RouteValueDictionary ( routes ) ,
helper.RouteCollection,
helper.ViewContext.RequestContext,
false));
writer.RenderBeginTag ("a");
writer.Write (text);
writer.RenderEndTag ();
return new MvcHtmlString(strwr.ToString());
}
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);
}
}
}

@ -24,7 +24,7 @@ Page.StyleSheetTheme = (string) Profile.UITheme; %>
<script type="text/javascript">
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
$(document).ready(function(){
$('[data-type="rate-bill"]').rate({target: 'Blogs/Rate'});
$('[data-type="rate-bill"]').rate({webTarget: 'Blogs/Rate'});
});
</script>
<%=Ajax.YaGlobalizationScript()%>
@ -36,10 +36,11 @@ var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
</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>
@ -56,36 +57,39 @@ 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 { %>
<a href="<%=Url.RouteUrl("Blogs", new { user = HttpContext.Current.User.Identity.Name } )%>" accesskey = "B" class="menuitem fa" >
<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"> &Eacute;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">&Eacute;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.ActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
<%= Html.TranslatedActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
<div id="copyr">
<a href="http://yavsc.pschneider.fr/Blogs/UserPost/paul/License">
@ -93,5 +97,11 @@ Vos billets
</div>
</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>

@ -58,14 +58,14 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
</a>
<% } else { %>
<ul>
<li><%= Html.ActionLink("Backups","Backups") %></li>
<li><%= Html.ActionLink("Restaurations", "Restore") %></li>
<li><%= Html.ActionLink("Create backup","CreateBackup") %></li>
<li><%= Html.ActionLink("Remove user", "RemoveUser") %></li>
<li><%= Html.ActionLink("Add a Role ", "AddRole") %></li>
<li><%= Html.ActionLink("Remove role", "RemoveRoleQuery") %></li>
<li><%= Html.ActionLink("User list", "UserList") %></li>
<li><%= Html.ActionLink("Role list", "RoleList") %></li>
<li><%= Html.TranslatedActionLink("Backups","Backups") %></li>
<li><%= Html.TranslatedActionLink("Restaurations", "Restore") %></li>
<li><%= Html.TranslatedActionLink("Create backup","CreateBackup") %></li>
<li><%= Html.TranslatedActionLink("Remove user", "RemoveUser") %></li>
<li><%= Html.TranslatedActionLink("Add a Role ", "AddRole") %></li>
<li><%= Html.TranslatedActionLink("Remove role", "RemoveRoleQuery") %></li>
<li><%= Html.TranslatedActionLink("User list", "UserList") %></li>
<li><%= Html.TranslatedActionLink("Role list", "RoleList") %></li>
</ul>
<a href="<%=Url.RouteUrl("Blogs", new { user = HttpContext.Current.User.Identity.Name } )%>" accesskey = "B" class="menuitem" >
@ -93,7 +93,7 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
<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>
</div>
<%= Html.ActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
<%= 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>

@ -63,13 +63,8 @@ else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_acti
<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>
</div>
<%= Html.ActionLink("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>
<% }} %>
<%= Html.TranslatedActionLink("Formulaire de contact","Contact","Home",null, new { @class="thanks" }) %>
</footer><div class="modal"></div>
</body>
</html>

@ -404,7 +404,12 @@ module.exports = [
return '\n\n' + content + '\n\n';
}
},
{
filter: 'div',
replacement: function (content) {
return '\n\n' + content + '\n\n';
}
},
{
filter: 'br',
replacement: function () {
@ -457,7 +462,6 @@ module.exports = [
return '`' + content + '`';
}
},
{
filter: function (node) {
return node.nodeName === 'A' && node.getAttribute('href');

@ -3,34 +3,38 @@
return jQuery.widget('Yavsc.hidefieldset', {
options: {
jsCallBack: null,
disabled: false
disabled: false,
classOpen: 'fa-minus',
classClosed: 'fa-plus',
},
button: null,
_create: function() {
var $ctl = $(this.element);
var _this = this;
var _btn = $ctl.children('legend');
if (!this.options.disabled && _btn) {
_btn.addClass('actionlink');
if (!_this.options.disabled && _btn) {
_btn.css('cursor','pointer');
_btn.addClass('fa');
_btn.addClass('fa-eye');
this.button = _btn;
_btn.addClass(_this.options.classClosed);
_this.button = _btn;
$ctl.children(':not(legend)').hide();
this.button.click( function (e) {
if ( _btn.hasClass('fa-eye') ) {
_btn.removeClass('fa-eye');
_btn.addClass('fa-eye-slash');
var onactivate = function (e) {
if ( _btn.hasClass(_this.options.classClosed) ) {
_btn.removeClass(_this.options.classClosed);
_btn.addClass(_this.options.classOpen);
$ctl.children(':not(legend)').show();
}
else {
_btn.addClass('fa-eye');
_btn.removeClass('fa-eye-slash');
_btn.addClass(_this.options.classClosed);
_btn.removeClass(_this.options.classOpen);
$ctl.children(':not(legend)').hide();
}
});
};
_this.button.click(onactivate);
//_this.button.hover(onactivate,onactivate);
//_this.click(onactivate);
//_this.hover(onactivate,onactivate);
}
},
})})(jQuery);

@ -2,14 +2,19 @@
var Yavsc = (function(apiBaseUrl){
var self = {};
self.apiBaseUrl = (apiBaseUrl || '/api');
self.dumpprops = function (obj) {
var str = "";
for(var k in obj)
if (obj.hasOwnProperty(k))
str += k + " = " + obj[k] + "\n";
return (str); }
str += " "+k + " = " + obj[k] + "\n";
return (str); };
self.apiBaseUrl = (apiBaseUrl || '/api');
self.logObj = function(obj) {
console.log('obj:'+obj);
console.log('-props:'+self.dumpprops(obj));
};
self.showHide = function () {
var id = $(this).attr('did');

@ -23,11 +23,12 @@
};
var id = $ratectl.data('id');
$ratectl.addClass('rate');
$ratectl.css('cursor','pointer');
$ratectl.click(function (e) {
var oset = $ratectl.offset();
var x = ((e.pageX - oset.left) * 100 ) / $ratectl.width();
// here, x may be greater than 100, or lower than 0 here,
// depending on padding & mergin on the $ratectl node,
var x = ((e.pageX - oset.left) * 100 ) / ($ratectl.innerWidth());
// here, x may be greater than 100, (or lower than 0, i saw it),
// depending on padding & margin on the $ratectl node,
// when it's a span, and there is a line return within,
// the values on second star line are false.
// Time to sanitize:
@ -40,21 +41,21 @@
});
},
updateRate: function (ctl,rate) {
// Using 10 half stars, it makes 11 choices (from 0 to 10)
var rounded = Math.round(rate / 11);
var _this = this;
var rounded = Math.round(rate / 10);
var HasHalf = (rounded % 2 == 1);
var NbFilled = Math.floor(rounded / 2);
var NbEmpty = (5 - NbFilled) - ((HasHalf)?1:0) ;
ctl.empty();
var i=0;
for (i=0; i<NbFilled; i++)
ctl.append('<i class="fa fa-star"></i>');
if (HasHalf)
ctl.append('<i class="fa fa-star-half-o"></i>');
ctl.append('<i class="fa fa-star" title="'+_this.options.labels[i]+'"></i>');
if (HasHalf) { i++;
ctl.append('<i class="fa fa-star-half-o" title="'+_this.options.labels[i]+'"></i>');
}
for (var j=0; j<NbEmpty; j++, i++ )
ctl.append('<i class="fa fa-star-o"></i>');
ctl.append('<i class="fa fa-star-o" title="'+_this.options.labels[i]+'"></i>');
ctl.append
},
})})(jQuery);
}).call(this);

@ -0,0 +1,48 @@
(function() {
(function(jQuery) {
return jQuery.widget('Yavsc.user', {
options: {
disabled: false,
circles: [],
},
buttonCircles: null,
buttonBlog: null,
buttonInstMsg: null,
buttonMailling: null,
buttonAdmin: null,
circles: [],
_create: function() {
var _this = this;
var $this = $(this);
var $ctl = $(this.element);
if (!_this.options.disabled) {
var roles = $this.data('roles');
var bcounter = $this.data('blog-counter');
var circlesspec = $this.data('circles');
console.log('here');
if (bcounter)
if (bcounter>0) {
_this.buttonBlog = $('<a><i class="fa fa-folder"></i></a>');
$ctl.append(_this.buttonBlog);
}
if (circlesspec)
{
_this.circles = circlesspec.split(' ');
}
var text = '<form><fieldset class="mayhide"><i class="fa fa-users"></i></fieldset>\n';
for (i = 0; i < _this.options.circles.length; i++) {
var checked = _this.circles.indexOf(_this.options.circles[i])>-1;
if (checked) checked = " checked";
text += "<input type='checkbox'"+checked+">"+ _this.options.circles[i] + "</option>\n";
}
text += "</form>";
_this.buttonCircles = $(text);
$ctl.append(_this.buttonCircles);
return $ctl;
}
},
})})(jQuery);
}).call(this);

@ -1,6 +1,6 @@
<%@ Page Title="Successfully changed your password" Language="C#" Inherits="System.Web.Mvc.ViewPage" MasterPageFile="~/Models/App.master" %>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<div>
<%= Html.ActionLink("Register","Register")%></div>
<div><%= Html.ActionLink("ChangePassword","ChangePassword")%></div>
<%= Html.TranslatedActionLink("Register","Register")%></div>
<div><%= Html.TranslatedActionLink("ChangePassword","ChangePassword")%></div>
</asp:Content>

@ -21,7 +21,7 @@
<input type="submit"/>
<% } %></div>
<div class="panel">
<%= Html.ActionLink("S'enregistrer","GetRegister",new {returnUrl=ViewData["returnUrl"]}, new { @class="actionlink" }) %>
<%= Html.TranslatedActionLink("S'enregistrer","GetRegister",new {returnUrl=ViewData["returnUrl"]}, new { @class="actionlink" }) %>
</div>
<div class="panel">
<a href="<%= Url.RouteUrl ("Default", new { controller = "Google", action= "Login", returnUrl=ViewData["returnUrl"] }) %>" class="actionlink">

@ -10,8 +10,8 @@
%><aside>This user is Admin.</aside>
<% } %>
<aside>
<%= Html.ActionLink("Changer de mot de passe","ChangePassword", "Account",null, new { @class="actionlink" })%>
<%= Html.ActionLink("Désincription", "Unregister", "Account", new { id = ViewData["UserName"] } , new { @class="actionlink" })%>
<%= Html.TranslatedActionLink("Changer de mot de passe","ChangePassword", "Account",null, new { @class="actionlink" })%>
<%= Html.TranslatedActionLink("Désincription", "Unregister", "Account", new { id = ViewData["UserName"] } , new { @class="actionlink" })%>
</aside>
<aside>
<code>Compte bancaire:<%= Model.HasBankAccount %></code>
@ -29,7 +29,7 @@
<%= Html.ValidationSummary() %>
<%= Html.Hidden("UserName",ViewData["ProfileUserName"]) %>
<fieldset><legend>Informations publiques
<fieldset class="mayhide"><legend>Informations publiques
<i>
<img src="<%=Url.AvatarUrl(HttpContext.Current.User.Identity.Name)%>" alt="avatar" class="avatar" />
<%=Html.Encode(Model.UserName)%> APE:<%=Model.MEACode%> <%=Model.WebSite%> </i></legend>
@ -56,7 +56,7 @@ Avatar :
</span>
</fieldset>
<fieldset><legend>Informations administratives
<fieldset class="mayhide"><legend>Informations administratives
<i><%= string.IsNullOrWhiteSpace(Model.Name)?"KO":Html.Encode(Model.Name) %>
</i>
</legend>
@ -66,7 +66,7 @@ Avatar :
<%= Html.ValidationMessage("Name", "*") %></span>
</fieldset>
<fieldset><legend>Blog <i><%=Html.Encode(Model.BlogTitle)%>
<fieldset class="mayhide"><legend>Blog <i><%=Html.Encode(Model.BlogTitle)%>
<%= Model.BlogVisible?null:Html.Translate("hidden") %>
</i></legend>
<div class="spanel">
@ -81,7 +81,7 @@ Avatar :
</div>
</fieldset>
<fieldset><legend>Contact
<fieldset class="mayhide"><legend>Contact
<i><%=Html.Encode(Model.Phone)%> <%=Html.Encode(Model.Mobile)%>
<%=Html.Encode(Model.HasPostalAddress?"adresse OK":"adresse KO")%></i>
</legend>
@ -111,30 +111,35 @@ Avatar :
<%= Html.ValidationMessage("Country", "*") %>
</div>
</fieldset>
<fieldset><legend>Disponibilité
<fieldset class="mayhide"><legend>Profile préstataire</legend>
<fieldset class="mayhide"><legend>Disponibilité
<i><%=Html.Encode(
string.IsNullOrWhiteSpace(Model.GoogleCalendar)?"KO":"OK")%></i></legend>
<div class="spanel">
<%= Html.LabelFor(model => model.GoogleCalendar) %> :
<%= Html.Encode(Model.GoogleCalendar) %>
<%= Html.ActionLink("Choisir l'agenda","ChooseCalendar","Google",new { returnUrl= Request.Url.AbsolutePath }, new { @class="actionlink" }) %>
<%= Html.TranslatedActionLink("Choisir l'agenda","ChooseCalendar","Google",new { returnUrl= Request.Url.AbsolutePath }, new { @class="actionlink" }) %>
</div></fieldset>
<fieldset><legend>Informations de facturation
<fieldset class="mayhide"><legend>Informations de facturation
<i> <%=Html.Encode(Model.HasBankAccount?"OK":"KO")%> </i>
</legend>
<p>Saisissez ici vos informations de facturation.</p>
<fieldset class="mayhide">
<legend>Par le numéro de compte</legend>
<div class="spanel">
<%= Html.LabelFor(model => model.BankCode) %> :
<%= Html.TextBox("BankCode") %>
<%= Html.ValidationMessage("BankCode", "*") %>
</div><div class="spanel">
</div>
<div class="spanel">
<%= Html.LabelFor(model => model.WicketCode) %> :
<%= Html.TextBox("WicketCode") %>
<%= Html.ValidationMessage("WicketCode", "*") %>
</div><div class="spanel">
<%= Html.LabelFor(model => model.AccountNumber) %> :
<%= Html.TextBox("AccountNumber") %>
<%= Html.ValidationMessage("AccountNumber", "*") %>
@ -142,7 +147,11 @@ Avatar :
<%= Html.LabelFor(model => model.BankedKey) %> :
<%= Html.TextBox("BankedKey") %>
<%= Html.ValidationMessage("BankedKey", "*") %>
</div><div class="spanel">
</div>
</fieldset>
<fieldset class="mayhide">
<legend>Par codes BIC et IBAN</legend>
<div class="spanel">
<%= Html.LabelFor(model => model.BIC) %> :
<%= Html.TextBox("BIC") %>
<%= Html.ValidationMessage("BIC", "*") %>
@ -152,7 +161,11 @@ Avatar :
<%= Html.ValidationMessage("IBAN", "*") %>
</div>
</fieldset>
<fieldset><legend>Interface utilisateur
</fieldset>
</fieldset>
<fieldset class="mayhide"><legend>Interface utilisateur
<i> <%=Html.Encode(Model.UITheme)%> </i>
</legend>
<span>
@ -161,11 +174,11 @@ Avatar :
<%= Html.ValidationMessage("UITheme", "*") %></span>
</fieldset>
<input type="submit"/>
<input type="submit" id="submit" value="<%=Html.Translate("SubmitChanges")%>" />
<% } %>
<script>
$(document).ready(function(){
$('fieldset').hidefieldset();
$('input').on('change',function(){$(this).addClass('dirty'); $('#submit').addClass('clickme');});
});
</script>
</asp:Content>

@ -7,7 +7,7 @@
<% foreach (string u in (string[])ViewData["admins"]) { %>
<tr><td>
<%= u %> </td><td>
<%= Html.ActionLink("Remove","RemoveFromRole",
<%= Html.TranslatedActionLink("Remove","RemoveFromRole",
new { username = u, rolename="Admin", returnUrl = Request.Url.PathAndQuery })%>
</td></tr>

@ -1,6 +1,6 @@
<%@ Page Language="C#" MasterPageFile="~/Models/AppAdmin.master" Inherits="System.Web.Mvc.ViewPage<DataAccess>" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<%=Html.ActionLink("Create a database backup", "CreateBackup")%><br/>
<%=Html.ActionLink("Restaurations", "Restore")%><br/>
<%=Html.TranslatedActionLink("Create a database backup", "CreateBackup")%><br/>
<%=Html.TranslatedActionLink("Restaurations", "Restore")%><br/>
</asp:Content>

@ -6,14 +6,14 @@ Roles:
<ul>
<%foreach (string rolename in (string[]) Model){ %>
<li><%=Html.ActionLink(rolename,"UsersInRole", new { rolename = rolename }, new { @class="actionlink" } )%> <% if (Roles.IsUserInRole("Admin")) { %>
<%= Html.ActionLink("Supprimer","RemoveRole", new { rolename = rolename }, new { @class="actionlink" } ) %>
<li><%=Html.TranslatedActionLink(rolename,"UsersInRole", new { rolename = rolename }, new { @class="actionlink" } )%> <% if (Roles.IsUserInRole("Admin")) { %>
<%= Html.TranslatedActionLink("Supprimer","RemoveRole", new { rolename = rolename }, new { @class="actionlink" } ) %>
<% } %></li>
<% } %>
</ul>
<% if (Roles.IsUserInRole("Admin")) { %>
<%= Html.ActionLink("Ajouter un rôle","AddRole", null, new { @class="actionlink" } ) %>
<%= Html.TranslatedActionLink("Ajouter un rôle","AddRole", null, new { @class="actionlink" } ) %>
<% } %>
</asp:Content>

@ -16,8 +16,8 @@
<% if (Roles.IsUserInRole("Admin")) { %>
<%= Html.ActionLink(LocalizedText.Remove,"RemoveUser", new { username = user.UserName, returnUrl = Request.Url.PathAndQuery }, new { @class="actionlink" } ) %>
<%= Html.ActionLink("Blogger","AddUserToRole", new { username = user.UserName, rolename="Blogger", returnUrl = Request.Url.PathAndQuery }, new { @class="actionlink" } ) %>
<%= Html.TranslatedActionLink(LocalizedText.Remove,"RemoveUser", new { username = user.UserName, returnUrl = Request.Url.PathAndQuery }, new { @class="actionlink" } ) %>
<%= Html.TranslatedActionLink("Blogger","AddUserToRole", new { username = user.UserName, rolename="Blogger", returnUrl = Request.Url.PathAndQuery }, new { @class="actionlink" } ) %>
<% } %>
</li><% }%>
</ul>

@ -2,6 +2,6 @@
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<ul>
<li><%= Html.ActionLink("Notifier des cercles d'un évennement","NotifyEvent","BackOffice" ) %></li>
<li><%= Html.TranslatedActionLink("Notifier des cercles d'un évennement","NotifyEvent","BackOffice" ) %></li>
</ul>
</asp:Content>

@ -13,28 +13,37 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<aside>
Id:<%= Html.ActionLink( Model.Id.ToString() , "UserPost", new { user= Model.Author, title=Model.Title, id = Model.Id }, new { @class = "usertitleref actionlink" }) %>
Id:<%= Html.TranslatedActionLink( Model.Id.ToString() , "UserPost", new { user= Model.Author, title=Model.Title, id = Model.Id }, new { @class = "usertitleref actionlink" }) %>
, Posted: <%= Model.Posted.ToString("yyyy/MM/dd") %> - Modified: <%= Model.Modified.ToString("yyyy/MM/dd") %>
Visible: <%= Model.Visible? "oui":"non" %> <%= Html.ActionLink("Supprimer","RemovePost", new { user=Model.Author, title = Model.Title, id = Model.Id }, new { @class="actionlink" } ) %>
Visible: <%= Model.Visible? "oui":"non" %> <%= Html.TranslatedActionLink("Supprimer","RemovePost", new { user=Model.Author, title = Model.Title, postid = Model.Id }, new { @class="actionlink" } ) %>
</aside>
<aside>
<% using(Html.BeginForm("Edit","Blogs")) { %>
<fieldset>
<legend>Contrôle d'accès au Billet</legend>
<%= Html.LabelFor(model => model.Visible) %> : <%= Html.CheckBox( "Visible" ) %>
<i id="note_visible">Note: Si un ou plusieurs cercles sont séléctionnés ici,
le billet ne sera visible qu'aux membres de ces cercles.</i>
<%= Html.ValidationMessage("Visible", "*") %>
<%= Html.LabelFor(model => model.AllowedCircles) %>
<fieldset class="mayhide">
<legend>Attacher des fichiers</legend>
<input type="file" name="attached" id="postedfile" multiple>
<input type="button" value="attacher les ficher" onclick="submitFile()">
<input type="button" value="importer les documents" onclick="submitImport()">
</fieldset>
<fieldset class="mayhide">
<legend><i class="fa fa-lock"></i> <%= Html.Translate("BillAccessControl") %></legend>
<label for="Visible"><i class="fa fa-eye"></i></label> : <%= Html.CheckBox( "Visible" ) %>
<%= Html.ValidationMessage("Visible", "*") %> <br>
<label for="AllowedCircles"> <i class="fa fa-users"></i> <%= Html.Translate("AllowedCircles") %>
</label>
<i class="hint">Note: Si un ou plusieurs cercles sont séléctionnés ici,
le billet ne sera visible qu'aux membres de ces cercles.</i><br>
<%= Html.ListBox("AllowedCircles") %>
<%= Html.ValidationMessage("AllowedCircles", "*") %>
</fieldset>
<span id="viewsource">
<i class="fa fa-code menuitem"><%=Html.Translate("View_source")%></i></span>
<span id="hidesource" class="hidden">
<i class="fa fa-code menuitem"><%=Html.Translate("Hide_source")%></i>
</span>
<fieldset id="source" class="hidden">
<fieldset class="mayhide">
<legend><i class="fa fa-code"></i><%=Html.Translate("BillSourceCode")%></legend>
<%=Html.Hidden("Author")%>
<%=Html.Hidden("Id")%>
<%= Html.LabelFor(model => model.Photo) %>
@ -46,17 +55,11 @@ Visible: <%= Model.Visible? "oui":"non" %> <%= Html.ActionLink("Supprimer","Remo
<%=Html.TextArea("Content")%>
<%=Html.ValidationMessage("Content")%>
</fieldset>
<input type="submit" id="validate" value="Valider" class="fa fa-check menuitem">
<input type="submit" id="validate" class="actionlink">
<% } %>
<form id="frmajax">
<fieldset>
<legend>Attacher des fichiers</legend>
<input type="file" name="attached" id="postedfile" multiple>
<input type="button" value="attacher les ficher" onclick="submitFile()">
<input type="button" value="importer les documents" onclick="submitImport()">
</fieldset>
</form>
</aside>
<span class="placard editable" for="Photo">
<img src="<%=Model.Photo%>" alt="photo" id="vphoto" >
@ -75,17 +78,6 @@ Visible: <%= Model.Visible? "oui":"non" %> <%= Html.ActionLink("Supprimer","Remo
$(document).ready(function(){
$('#hidesource').click(function(){
$('#source').addClass('hidden');
$('#viewsource').removeClass('hidden');
$('#hidesource').addClass('hidden');
});
$('#viewsource').click(function(){
$('#source').removeClass('hidden');
$('#viewsource').addClass('hidden');
$('#hidesource').removeClass('hidden');
});
jQuery('.placard').hallo({plugins: {'hallo-image-insert-edit': { lang: 'fr' } } });
jQuery('#vtitle').hallo({
@ -125,7 +117,7 @@ jQuery('#vcontent').hallo({
'tr',
'td',
'th',
'style'
'style',
]
},
'halloblacklist': {tags: ['style']},
@ -238,6 +230,12 @@ var data = new FormData($('#frmajax').get()[0]);
</script>
<script>
$(document).ready(function(){
$('input').on('change',function(){$(this).addClass('dirty'); $('#validate').addClass('clickme');});
});
</script>
</asp:Content>

@ -1,19 +1,21 @@
<%@ Page Title="Articles" Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master" EnableTheming="True" StylesheetTheme="dark" %>
<%@ Page Title="Blogs" Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master" EnableTheming="True" StylesheetTheme="dark" %>
<%@ Register Assembly="Yavsc.WebControls" TagPrefix="yavsc" Namespace="Yavsc.WebControls" %>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<div>
<% foreach (var g in Model.GroupByTitle()) { %>
<div class="panel">
<div class="postpreview panel">
<h2><a href="<%= Url.RouteUrl("Titles", new { title = g.Key }) %>" class="usertitleref"><%=Html.Encode(g.Key)%></a></h2>
<% foreach (var p in g) { %>
<div class="postpreview">
<div>
<% if (p.Photo != null ) { %>
<img src="<%=p.Photo%>" alt="<%=p.Photo%>" class="photo">
<% } %>
<p><%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %></p>
<%= Html.Partial("PostActions",p)%>
</div> <% } %>
<% } else {} %>
<%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %>
<%= Html.Partial("PostActions",p) %>
</div><% // we only show the first. It's a preview
break;
} %>
</div>
<% } %>
</div>

@ -1,23 +1,23 @@
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BasePost>" %>
<% if (Membership.GetUser()!=null) { %>
<aside>
(<%= Model.Posted.ToString("D") %>
- <%= Model.Modified.ToString("D") %> <%= Model.Visible? "":", Invisible!" %>)
(<%= Html.Translate("Posted") %> <%= Model.Posted.ToString("D") %>
- <%= Html.Translate("Edited") %> <%= Model.Modified.ToString("D") %> <%= Model.Visible? "":", Invisible!" %>)
<%= Html.Partial("RateControl",Model)%>
<%
if (Membership.GetUser().UserName==Model.Author || Roles.IsUserInRole("Admin"))
{ %>
<%= Html.Partial("TagControl",Model)%>
<% if (Model is BlogEntry) { %>
<i class="fa fa-pencil"><%=Html.Translate("DoComment")%></i>
<% using (Html.BeginForm("Comment","Blogs")) { %>
<filedset>
<%=Html.Hidden("Author")%>
<fieldset>
<legend><i class="fa fa-pencil"></i><%=Html.Translate("DoComment")%></legend>
<div> <%=Html.Hidden("Author")%>
<%=Html.Hidden("Title")%>
<%=Html.TextArea("CommentText","")%>
<%=Html.Hidden("PostId",Model.Id)%>
<input type="submit" value="Poster un commentaire"/>
</filedset> <% } %>
<input type="submit" value="Poster un commentaire"/></div>
</fieldset> <% } %>
<% } %>
<a href="<%= Url.RouteUrl("Default", new { action = "EditId", postid = Model.Id })%>" class="actionlink">
<i class="fa fa-pencil"><%=Html.Translate("Edit")%></i>

@ -2,28 +2,23 @@
<ul id="tags<%=Model.Id%>" data-postid="<%=Model.Id%>" class="editablelist ">
<% if (Model.Tags != null) {
foreach ( var tagname in Model.Tags) { %>
<li class="tagname fa fa-tag"><%=tagname%></li> <%
<li><i class="fa fa-tag"></i><%=tagname%></li><%
%><% } } %>
</ul>
<% if (Membership.GetUser()!=null) { %>
<% if (Membership.GetUser().UserName==Model.Author || Roles.IsUserInRole("Admin"))
{ // grant all permissions: to choose a given set of tags, also create some new tags %>
<span id="viewtagger<%=Model.Id%>">
<i class="fa fa-tag menuitem" id="viewtaggerbtn<%=Model.Id%>"><%=Html.Translate("DoTag")%></i></span>
<span id="hidetagger<%=Model.Id%>" class="hidden">
<i class="fa fa-tag menuitem" id="hidetaggerbtn<%=Model.Id%>" ><%=Html.Translate("Tags")%> - <%=Html.Translate("Hide")%></i>
Note: Ils sont utilisé pour classifier le document. Par exemple, le tag <code>Accueil</code> rend le document
éligible à une place en page d'Accueil.
</span>
<form id="tagger<%=Model.Id%>" class="maskable" data-btn-show="viewtagger<%=Model.Id%>" data-btn-hide="hidetagger<%=Model.Id%>" >
<form id="tagger<%=Model.Id%>">
<fieldset>
<legend>Associer des tags au billet</legend>
<legend><i class="fa fa-tags"></i> <%=Html.Translate("DoTag")%></legend>
<div>
<label for="newtag"><%= Html.Translate("Tag_name")%>: </label>
<span id="Err_tag<%=Model.Id%>" class="error"></span>
<input type="text" id="newtag<%=Model.Id%>" class="taginput">
<span id="Err_model<%=Model.Id%>" class="error"></span>
<input id="sendnewtag<%=Model.Id%>" type="submit" class="submittag fa fa-tag" value="<%=Html.Translate("Submit")%>">
<input id="sendnewtag<%=Model.Id%>" type="submit" class="link fa fa-tag" value="<%=Html.Translate("Submit")%>">
</div>
</fieldset>
</form>
<script>

@ -6,7 +6,7 @@
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
<h1>
<%=Html.ActionLink(Model.Title, "Title", new{title=Model.Title}, null)%>
<%=Html.TranslatedActionLink(Model.Title, "Title", new{title=Model.Title}, null)%>
- <a href="<%= Url.RouteUrl("Default",new {controller="Home" }) %>"><%= YavscHelpers.SiteName %></a>
</h1>
</asp:Content>

@ -1,5 +1,5 @@
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<BlogEntryCollection>" MasterPageFile="~/Models/App.master"%>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
Pas d'article trouvé ici: &lt;<%= Html.Encode(ViewData["BlogUser"]) %>/<%= Html.Encode(ViewData["PostTitle"]) %>&gt;
<br/> <%= Html.ActionLink("Poster?","Post/", new { user = ViewData["BlogUser"], title = ViewData["PostTitle"]}, new { @class="actionlink" }) %>
<br/> <%= Html.TranslatedActionLink("Poster?","Post/", new { user = ViewData["BlogUser"], title = ViewData["PostTitle"]}, new { @class="actionlink" }) %>
</asp:Content>

@ -13,7 +13,7 @@
<a href="<%= Url.RouteUrl("BlogByTitle", new{ user=Model.Author, title = Model.Title}) %>">
<%=Model.Title%>
</a>
- <%= Html.ActionLink((string)ViewData ["BlogTitle"] ,"UserPosts",new{user=Model.Author}, null) %>
- <%= Html.TranslatedActionLink((string)ViewData ["BlogTitle"] ,"UserPosts",new{user=Model.Author}, null) %>
-
<a href="<%=Url.Content("~/")%>"><%= YavscHelpers.SiteName %></a>
</h1>
@ -34,7 +34,7 @@
<img class="avatar" src="<%= Url.RouteUrl("Default", new { action="Avatar", controller="Account", user = c.From } ) %>" alt="<%=c.From%>"/>
<%= Html.Markdown(c.CommentText) %>
<% if (Model.Author == username || c.From == username ) { %>
<%= Html.ActionLink("Supprimer","RemoveComment", new { cmtid = c.Id } , new { @class="actionlink" })%>
<%= Html.TranslatedActionLink("Supprimer","RemoveComment", new { cmtid = c.Id } , new { @class="actionlink" })%>
<% } %>
</div><% } %>
</div><% } %>

@ -22,15 +22,18 @@
<% foreach (var g in Model.GroupByTitle()) { %>
<div class="panel">
<h2><a href="<%= Url.RouteUrl("Titles", new { title = g.Key }) %>" class="usertitleref"><%=Html.Encode(g.Key)%></a></h2>
<% foreach (var p in g) { %>
<div class="postpreview">
<a href="<%= Url.RouteUrl("Titles", new { title = g.Key}) %>" >
<% if (p.Photo!=null) { %>
<img src="<%=p.Photo%>" alt="photo" class="photo"><% } %>
<img src="<%=p.Photo%>" alt="<%=g.Key%>" >
<% } else { %>
<%} %><%=Html.Encode(g.Key)%></a>
<div>
<%= Html.Markdown(p.Intro,"/bfiles/"+p.Id+"/") %>
<%= Html.Partial("PostActions",p)%>
</div> <% } %>
<%= Html.Partial("PostActions",p)%></div>
</div> <% break; } %>
</div>
<% } %>
<%= Html.RenderPageLinks((int)ViewData["PageIndex"],(int)ViewData["PageSize"],(int)ViewData["ResultCount"])%>
<%= Html.RenderPageLinks((int) ViewData["PageIndex"],(int)ViewData["PageSize"],(int)ViewData["ResultCount"])%>
</asp:Content>

@ -1,5 +1,5 @@
<%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.ActionLink("Delete","FileSystem") %>
<%= Html.ActionLink("Rename","FileSystem") %>
<%= Html.TranslatedActionLink("Delete","FileSystem") %>
<%= Html.TranslatedActionLink("Rename","FileSystem") %>
</asp:Content>

@ -4,9 +4,9 @@
</h1>
<ul>
<% foreach (System.IO.FileInfo fi in Model) { %>
<li> <%= Html.ActionLink(fi.Name,"Details",new {id = fi.Name}) %> </li>
<li> <%= Html.TranslatedActionLink(fi.Name,"Details",new {id = fi.Name}) %> </li>
<% } %>
</ul>
<%= Html.ActionLink("Ajouter des fichiers","Create") %>
<%= Html.TranslatedActionLink("Ajouter des fichiers","Create") %>
</asp:Content>

@ -10,27 +10,19 @@
<% if (Model.Count>0) { %>
<ul>
<% foreach (Command cmd in Model.Values) { %>
<li>
<%= cmd.Id %>
<%= cmd.CreationDate %>
<%= cmd.Status %>
<%= cmd.ProductRef %>
<ul>
<% if (cmd.Parameters!=null)
foreach (string key in cmd.Parameters.Keys) { %>
<li><%=key%>: <%=cmd.Parameters[key]%></li>
<% } %>
</ul>
<li><div>
<%= cmd.Id %>/<%= cmd.CreationDate %>/<%= cmd.Status %>
<%= cmd.ProductRef %></div>
<div>
<%= Html.Partial(cmd.GetType().Name,cmd) %>
</div>
</li>
<% } %>
</ul>
<% } %>
<ul><li>
<%= Html.ActionLink("Catalog","Catalog" ) %>
<%= Html.TranslatedActionLink("Catalog","Catalog" ) %>
</li><li>
<%= Html.ActionLink("Estimates","Estimates" ) %>
<%= Html.TranslatedActionLink("Estimates","Estimates" ) %>
</li></ul>
</asp:Content>

@ -1,16 +1,11 @@
<%@ Page Title="Booking" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<SimpleBookingQuery>" %>
<asp:Content ContentPlaceHolderID="init" ID="init1" runat="server">
<% Title = Html.Translate("BookingTitle"+Model.MEACode) + " - " + YavscHelpers.SiteName; %>
<% Title = Html.Encode(ViewBag.Activity.Title) + " - " + YavscHelpers.SiteName; %>
</asp:Content>
<asp:Content ContentPlaceHolderID="overHeaderOne" ID="header1" runat="server">
<h1>
<a href="<%=Url.RouteUrl("FrontOffice",new {action="Booking", MEACode=Model.MEACode })%>">
<img href="<%= ViewData["Photo"] %>" alt="">
<%=Html.Translate("BookingTitle"+Model.MEACode)%>
</a>
- <a href="<%= Url.RouteUrl("Default",new {controller="Home" }) %>"><%= YavscHelpers.SiteName %></a>
<h1><%=Html.Encode(ViewBag.Activity.Title) %> - <a href="<%= Url.RouteUrl("Default",new {controller="Home" }) %>"><%= YavscHelpers.SiteName %></a>
</h1>
</asp:Content>
@ -30,6 +25,8 @@
<%= Html.Hidden("MEACode") %>
<fieldset>
<legend><%= Html.Translate("YourNeed") %></legend>
<%= Html.Translate("Si vous le voulez, vous pouvez détailler ici votre demande, en matière de compétences attendues:") %>
<div>
<input type="hidden" name="Need" id="Need" value="">
<ul >
<% if (ViewData ["Needs"]!=null)
@ -38,12 +35,15 @@
<% } %>
</ul>
<%= Html.ValidationMessageFor(model=>model.Need) %>
</div>
</fieldset>
<fieldset>
<legend><%= Html.Translate("PerformanceDate") %></legend>
Intervention souhaitée le
<input type="text" id="PreferedDate" name="PreferedDate" class="start date" value="<%=Model.PreferedDate.ToString("yyyy/MM/dd")%>">
<%= Html.Translate("Indiquez ici la date souhaitée pour la prestation.") %>
<div>
Intervention souhaitée le : <input type="text" id="PreferedDate" name="PreferedDate" class="start date" style="z-index: 99 !important;" value="<%=Model.PreferedDate.ToString("yyyy/MM/dd")%>">
<%= Html.ValidationMessageFor( model=>model.PreferedDate ) %>
</div>
</fieldset>
<script>
$(document).ready(function(){
@ -70,12 +70,12 @@ Intervention souhaitée le
'autoclose': true } ;
// $('#PreferedHour').timepicker(tpconfig);
$('#PreferedDate').datepicker(dpconfig);
$('#PreferedDate').datepicker(dpconfig).zIndex(4);
});
</script>
<input type="submit">
<input type="submit" value="<%=Html.Translate("Search")%>" class="fullwidth actionlink">
<% } %>
</asp:Content>

@ -10,12 +10,12 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<% foreach (ProductCategory pc in Model.Categories ) { %>
<div>
<h2><%= Html.ActionLink( pc.Name, "ProductCategory", new { id = Model.Name, pc = pc.Reference }, new { @class="actionlink" } ) %></h2>
<h2><%= Html.TranslatedActionLink( pc.Name, "ProductCategory", new { id = Model.Name, pc = pc.Reference }, new { @class="actionlink" } ) %></h2>
</div>
<% foreach (Product p in pc.Products ) { %>
<div>
<h3><%= Html.ActionLink( p.Name, "Product", new { id = Model.Name, pc = pc.Reference , pref = p.Reference }, new { @class="actionlink" } ) %></h3>
<h3><%= Html.TranslatedActionLink( p.Name, "Product", new { id = Model.Name, pc = pc.Reference , pref = p.Reference }, new { @class="actionlink" } ) %></h3>
<p>
<%= p.Description %>
<% if (p.Images !=null)

@ -2,16 +2,18 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<% foreach (Brand b in Model.Brands ) { %><div>
<h1> <%= Html.ActionLink( b.Name, "Brand", new { id = b.Name }, new { @class="actionlink" } ) %> </h1>
<h1> <%= Html.TranslatedActionLink( b.Name, "Brand", new { id = b.Name }, new { @class="actionlink" } ) %> </h1>
<p><i><%= Html.Encode( b.Slogan ) %></i></p>
<% foreach (ProductCategory pc in b.Categories ) { %>
<div>
<h2><%= Html.ActionLink( pc.Name, "ProductCategory", new { brandid= b.Name, pcid = pc.Reference }, new { @class="actionlink" } ) %></h2>
<h2><%= Html.TranslatedActionLink( pc.Name, "ProductCategory", new { brandid= b.Name, pcid = pc.Reference }, new { @class="actionlink" } ) %></h2>
</div>
<% foreach (Product p in pc.Products ) { %>
<div>
<h3><%= Html.ActionLink( p.Name, "Product", new { id = b.Name, pc = pc.Reference , pref = p.Reference }, new { @class="actionlink" } ) %></h3>
<h3><%= Html.TranslatedActionLink( p.Name, "Product",
new { id = b.Name, pc = pc.Reference , pref = p.Reference },
new { @class="actionlink" } ) %></h3>
<p>
<%= p.Description %>
<% if (p.Images !=null)

@ -1,12 +1,14 @@
<%@ Page Title="Commande" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<FormCollection>" %>
<%@ Page Title="Commande" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<Command>" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<%= Html.ActionLink("Votre panier","Basket","FrontOffice" ) %>
(pas implémenté)
<%= Html.TranslatedActionLink("Votre panier","Basket","FrontOffice" ) %>
<ul><li>
<%= Html.ActionLink("Catalog","Catalog" ) %>
<%= Html.TranslatedActionLink("Catalog","Catalog" ) %>
</li><li>
<%= Html.ActionLink("Estimates","Estimates" ) %>
<%= Html.TranslatedActionLink("Estimates","Estimates" ) %>
</li></ul>
</asp:Content>

@ -1,4 +1,4 @@
<%@ Page Title="Devis" Language="C#" Inherits="System.Web.Mvc.ViewPage<Estimate>" MasterPageFile="~/Models/App.master" %>
<%@ Page Title="DoAnEstimate" Language="C#" Inherits="System.Web.Mvc.ViewPage<Estimate>" MasterPageFile="~/Models/App.master" %>
<%@ Register Assembly="Yavsc.WebControls" TagPrefix="yavsc" Namespace="Yavsc.WebControls" %>
<asp:Content ContentPlaceHolderID="head" ID="head1" runat="server" >
<script type="text/javascript" src="<%=Url.Content("~/Scripts/stupidtable.js")%>"></script>

@ -2,20 +2,20 @@
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<ul>
<li><%= Html.ActionLink("Catalog","Catalog" ) %></li>
<li><%= Html.ActionLink("Basket","Basket" ) %> </li>
<li><%= Html.ActionLink("Estimates","Estimates" ) %></li>
<li><%= Html.ActionLink("Estimate","Estimate" ) %></li>
<li><%= Html.TranslatedActionLink("Catalog") %></li>
<li><%= Html.TranslatedActionLink("Basket" ) %> </li>
<li><%= Html.TranslatedActionLink("YourEstimates") %></li>
<li><%= Html.TranslatedActionLink("DoAnEstimate") %></li>
<% if (User.Identity.IsAuthenticated) { %>
<li><%= Html.ActionLink("Activities","Activities" ) %></li>
<li><%= Html.ActionLink("ManagedSiteSkills", "Skills" ) %></li>
<li><%= Html.ActionLink("UserSkills","UserSkills" ) %></li>
<li><%= Html.TranslatedActionLink("Activities" ) %></li>
<li><%= Html.TranslatedActionLink("SiteSkills") %></li>
<li><%= Html.TranslatedActionLink("UserSkills") %></li>
<% } else { %>
<li><%= Html.Translate("Activities") %>,
<%= Html.Translate("ManagedSiteSkills") %>,
<%= Html.Translate("UserSkills") %>:
<i><%= Html.Translate("AuthenticatedOnly") %></i></li>
<% }%>
<li> <i><%= Html.Translate("AuthenticatedOnly") %>:
<%= Html.Translate("Activities") %>,
<%= Html.Translate("SiteSkills") %>,
<%= Html.Translate("UserSkills") %></i>
</li> <% }%>
</ul>
</asp:Content>

@ -1,29 +1,41 @@
<%@ 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">
<%=Html.Encode(Model.UserName)%>
<span class="username" data-type="user" data-roles="" data-blog-counter="<%=ViewBag.BlogCounter%>" data-circles="" ><%=Html.Encode(Model.UserName)%></span>
<%=Html.Partial("RateUserSkillControl", Model) %>
</h2>
<p>
<i class="fa fa-envelope">
<address>
<% if (Membership.GetUser()!=null) { %>
<a href="mailto:<%=Model.EMail%>">
<i class="fa fa-envelope"></i>
&lt;<%=Html.Encode(Model.EMail)%>&gt;
<% } else { %><%=Html.LabelFor(m => m.EMail)%>:
<i><%= Html.Translate("AuthenticatedOnly") %></i>
</a>
<% } else { %>
<i class="fa fa-envelope"></i>
<%=Html.LabelFor(m => m.EMail)%>:
<%= Html.Translate("AuthenticatedOnly") %>
<% }%>
</i>
</p>
</address>
<% if (Model.Skills==null) { %>
<%= Html.Translate("") %>
<% } else
foreach (var userskill in Model.Skills) { %>
Cet utilisateur n'a pas saisi de compétence particulière ...
<% } else if (Model.Skills.Count()>0) { %>
<ul style="padding:0; margin:0;"> <% foreach (var userskill in Model.Skills) { %>
<li class="skillname" data-sid="<%= userskill.Id %>">
<%= userskill.SkillName %>
<div data-type="comment">&quot;<%= userskill.Comment %>&quot;</div>
<% if (!string.IsNullOrWhiteSpace(userskill.Comment)) { %>
<div data-type="comment">
&quot;<%= userskill.Comment %>&quot;
</div><% } %>
<%=Html.Partial("RateUserSkillControl", userskill) %>
</li>
</li>
<% } %>
</ul>
<% } %>
<% if (Model.HasCalendar()) { %>
<i class="fa fa-calendar-check" ><%= Html.Translate("Google_calendar") %> : <%= Html.Translate("available") %>.</i><br>
@ -31,5 +43,9 @@ foreach (var userskill in Model.Skills) { %>
<% if (BlogManager.GetPostCounter(Model.UserName)>0) { %>
<a href="<%=Url.RouteUrl("Blogs",new { user = Model.UserName } )%>">
<i class="fa fa-folder"><%=Model.BlogTitle %></i>
</a></div>
</a>
<% } %>
</div>

@ -1,23 +1,29 @@
<%@ Page Language="C#" Title="Performers" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<PerformerAvailability>>" %>
<asp:Content ContentPlaceHolderID="head" ID="headContent" runat="server">
<script type="text/javascript" src="/Scripts/yavsc.user.js"></script>
</asp:Content>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<% foreach (var available in Model) { %>
<div class="usercard">
<%= Html.Partial("Performer", available.Profile ) %><br>
<% if (available.DateAvailable) {
%>
<%= Html.Translate("ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable") %>
<%
}
else if (available.Profile.HasCalendar()) {
%>
<%= Html.Translate("ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable") %>
<%
} else {
%>
<div class="panel">
<%= Html.Partial("Performer", available.Profile ) %>
<div class="availability">
<% if (available.DateAvailable) { %>
<%= Html.Translate("ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis") %>
<%= available.PerformanceDate.ToString("D") %>
<% } else if (available.Profile.HasCalendar()) { %>
<%= Html.Translate("ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis") %>
<%= available.PerformanceDate.ToString("D") %>
<% } else {%>
<%= Html.Translate("ThisPerformerDoesntGiveAccessToHisCalendar") %>
<%
} %></div><% } %>
<% } %>
</div>
</div>
<% } %>
<script>
$(document).ready(function(){
$("[data-type='user']").user({circles:<%=Ajax.JSonString(ViewData["Circles"])%>});
});
</script>
</asp:Content>

@ -3,7 +3,7 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<% foreach (Product p in Model.Products ) { %>
<h3><%= Html.ActionLink( p.Name, "Product", new { id = ViewData["BrandId"], pc = Model.Reference , pref = p.Reference }, new { @class="actionlink" } ) %></h3>
<h3><%= Html.TranslatedActionLink( p.Name, "Product", new { id = ViewData["BrandId"], pc = Model.Reference , pref = p.Reference }, new { @class="actionlink" } ) %></h3>
<p>
<%= p.Description %>

@ -3,7 +3,7 @@
<% Title = ViewData ["BrandName"] + " " + Model.Name; %>
</asp:Content>
<asp:Content ContentPlaceHolderID="header" ID="headerContent" runat="server">
<h2> <%=ViewData ["ProdCatName"]%> - <%= Html.ActionLink( Model.Name, "Product", new { id = ViewData ["BrandName"], pc = ViewData ["ProdCatRef"] , pref = Model.Reference } ) %></h2>
<h2> <%=ViewData ["ProdCatName"]%> - <%= Html.TranslatedActionLink( Model.Name, "Product", new { id = ViewData ["BrandName"], pc = ViewData ["ProdCatRef"] , pref = Model.Reference } ) %></h2>
</asp:Content>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">

@ -1,4 +1,4 @@
<%@ Page Title="My estimates" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Estimate>>" %>
<%@ Page Title="YourEstimates" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<Estimate>>" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<% if (((int)ViewData["ResponsibleCount"])>0) { %>
<div>
@ -7,7 +7,7 @@ Les estimations que vous avez faites (<%=ViewData["ResponsibleCount"]%>):<br>
foreach (Estimate estim in Model) {
if (string.Compare(estim.Responsible,(string) ViewData["UserName"])==0) { %>
<%= Html.ActionLink("Titre:"+estim.Title+" Client:"+estim.Client,"Estimate",new{id=estim.Id}) %>
<%= Html.TranslatedActionLink("Titre:"+estim.Title+" Client:"+estim.Client,"Estimate",new{id=estim.Id}) %>
<br>
<% }}%>
</div>
@ -17,7 +17,7 @@ foreach (Estimate estim in Model) {
Vos estimations en tant que client
(<%=ViewData["ClientCount"]%>):<br>
<% foreach (Estimate estim in Model) { %>
<%= Html.ActionLink("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>
<% } %>

@ -0,0 +1,7 @@
<%@ Page Title="About" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<p><%= Html.Translate("AboutContent") %></p>
</asp:Content>

@ -1,7 +1,7 @@
<%@ Page Title="Contact" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<div class="panel">
<div class="bigpanel">
<p>
Directeur : Paul Schneider<br>
Adresse postale : 2 Boulevard Aristide Briand<br>
@ -12,7 +12,7 @@ SIRET : 803 851 674 00017<br>
Activité Principalement Exercée (APE) : 5829C Édition de logiciels applicatifs<br>
</p>
<% using (Html.BeginForm("Contact", "Home")) { %>
<fieldset>
<fieldset style="width:100%">
<legend>Message</legend>
<p>
<%= Html.Label("email") %>:
@ -27,7 +27,7 @@ Activité Principalement Exercée (APE) : 5829C Édition de logiciels applicatif
<p>
<%= Html.Label("body") %>:
<%= Html.ValidationMessage("body") %><br/>
<%= Html.TextArea("body") %>
<%= Html.TextArea("body",new {@rows="25"}) %>
</p>
</fieldset>
<input type="submit" value="<%=Html.Translate("Submit")%>">

@ -1,5 +1,22 @@
<%@ Page Title="Credits" Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<div>Icons made by <a href="http://www.flaticon.com/authors/vectorgraphit" title="Vectorgraphit">Vectorgraphit</a> from <a href="http://www.flaticon.com" title="Flaticon">www.flaticon.com</a> is licensed by <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0">CC BY 3.0</a></div>
<div>
<%=Html.Translate("Icons_made_by")%> <a href="http://www.flaticon.com/authors/vectorgraphit" title="Vectorgraphit">Vectorgraphit</a>
<%=Html.Translate("from")%> <a href="http://www.flaticon.com" title="Flaticon">www.flaticon.com</a>
<%=Html.Translate("is_licensed_by")%> <a href="http://creativecommons.org/licenses/by/3.0/" title="Creative Commons BY 3.0">CC BY 3.0</a>
</div>
<% foreach ( Yavsc.Helpers.Link link in Html.Thanks()) { %>
<a href="<%=link.Url%>"><% if (link.Image !=null) {
%><img src="<%= link.Image %>" alt="<%= link.Text %>"/></a>
<% } else { %>
<a href="<%=link.Url%>"><%= link.Text %></a>
<% }} %>
</asp:Content>

@ -13,5 +13,6 @@
<%= Html.Partial("Activity",a) %>
<% } %>
</div>
</asp:Content>

@ -0,0 +1,39 @@
<%@ Page Language="C#" MasterPageFile="~/Models/App.master" Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="initContent" ContentPlaceHolderID="init" runat="server">
</asp:Content>
<asp:Content ID="headContent" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="overHeaderOneContent" ContentPlaceHolderID="overHeaderOne" runat="server">
</asp:Content>
<asp:Content ID="headerContent" ContentPlaceHolderID="header" runat="server">
</asp:Content>
<asp:Content ID="MainContentContent" ContentPlaceHolderID="MainContent" runat="server">
<div class="test1">
<div class="panel">
A single panel
</div>
</div>
<div class="test2">
<div class="panel">
Premier panneau
</div>
<div class="panel">
Deuxième et dernier panneau
</div>
</div>
<div class="test3">
<div class="panel">
Premier panneau
</div>
<div class="panel">
Deuxième panneau
</div>
<div class="panel">
Troisème et dernier panneau
</div>
</div>
</asp:Content>

@ -2,7 +2,7 @@
<asp:Content ContentPlaceHolderID="MainContent" ID="MainContentContent" runat="server">
<div>
<%= Html.ActionLink("blogs","Index","WorkFlow") %>
<%= Html.TranslatedActionLink("blogs","Index","WorkFlow") %>
</div>
</asp:Content>

@ -53,6 +53,7 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
<add assembly="System.IdentityModel.Selectors, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<add assembly="System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<customErrors mode="Off">
@ -166,6 +167,8 @@ http://msdn2.microsoft.com/en-us/library/b5ysx397.aspx
<add name="MarkdownDeep" url="http://www.toptensoftware.com/markdowndeep/" />
<add name="MarkdownHelper" url="http://www.nuget.org/packages/MarkdownHelper" />
<add name="Postgresql" url="http://www.postgresql.org" image="/App_Themes/images/pgsql.png" />
<add name="Animate.css, Another thing from Daniel Eden." url="https://daneden.github.io/animate.css/" />
<add name="GitHub" url="https://github.com/" image="/App_Themes/images/GitHub.ico" />
</to>
</thanks>
<circleProviders defaultProvider="NpgsqlCircleProvider">

@ -4,7 +4,8 @@
<Target Name="Deploy" Condition="'$(DeployDir)' != '' And !$(SkipCopyUnchangedFiles)" DependsOnTargets="Build">
<Copy SourceFiles="@(FileWrites)" DestinationFolder="$(DeployDir)/%(RelativeDir)" />
<Copy SourceFiles="@(Content)" DestinationFolder="$(DeployDir)/%(RelativeDir)" />
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="$(DeployDir)\Web.config" Condition="Exists('Web.$(Configuration).config')"/>
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="$(DeployDir)/Web.config" Condition="Exists('Web.$(Configuration).config')"/>
</Target>
</Project>

@ -137,6 +137,7 @@
<Reference Include="System.Data.Linq" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Web" />
<Reference Include="Microsoft.CSharp" />
</ItemGroup>
<ItemGroup>
<Folder Include="Admin\" />
@ -276,7 +277,6 @@
<Content Include="Views\Admin\Backups.aspx" />
<Content Include="Views\Admin\Restore.aspx" />
<Content Include="Views\Admin\Restored.aspx" />
<Content Include="Views\FrontOffice\Estimates.aspx" />
<Content Include="Catalog.xml" />
<Content Include="RegistrationMail.txt" />
<Content Include="Views\FrontOffice\Writting.ascx" />
@ -302,7 +302,6 @@
<Content Include="Views\Account\Profile.aspx" />
<Content Include="robots.txt" />
<Content Include="Scripts\form-new-user.js" />
<Content Include="Views\FrontOffice\Estimate.aspx" />
<Content Include="Views\FrontOffice\EventPub.aspx" />
<Content Include="Views\Account\Circles.aspx" />
<Content Include="Views\Account\Register.ascx" />
@ -754,7 +753,19 @@
<Content Include="Content\images\icons-svg\video-white.svg" />
<Content Include="Scripts\jquery.mobile-1.4.5.js" />
<Content Include="Scripts\jquery.mobile-1.4.5.min.js" />
<Content Include="Views\FrontOffice\ActivitySkills.aspx" />
<Content Include="Views\Home\About.aspx" />
<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" />
<Content Include="App_Themes\links.css" />
<Content Include="App_Themes\dark\links.css" />
<Content Include="App_Themes\clear\links.css" />
<Content Include="App_Themes\images\splash-image-2.jpg" />
<Content Include="Views\Home\Test.aspx" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
@ -795,6 +806,7 @@
<None Include="Web.TotemPre.config" />
<None Include="Web.TotemProd.config" />
<None Include="Scripts\jquery.mobile-1.4.5.min.map" />
<None Include="App_Themes\images\GitHub.ico" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\NpgsqlMRPProviders\NpgsqlMRPProviders.csproj">

@ -1,3 +1,22 @@
2015-12-09 Paul Schneider <paul@pschneider.fr>
* CircleManager.cs: implémente les methodes utilisées à la
construction du contrôle utilisateur.
* CircleProvider.cs: * doc xml
* extension de interface
* Commande.cs: l'objet `Command` devient abstrait, pour
exister (être instanciée), une commande doit maintenant
hériter de cet objet abstrait.
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: traductions
* IContentProvider.cs: doc xml
2015-12-03 Paul Schneider <paul@pschneider.fr>
* LocalizedText.resx:

@ -24,6 +24,9 @@ using System.Configuration;
using System.Collections.Specialized;
using System.Collections;
using System.Reflection;
using System.Collections.Generic;
using System.Web;
using System.Linq;
namespace Yavsc.Model.Circles
{
@ -75,6 +78,38 @@ namespace Yavsc.Model.Circles
}
}
/// <summary>
/// List the specified user.
/// </summary>
/// <param name="user">User.</param>
public static IEnumerable<CircleBase> List(string user)
{
if (user == null)
user = HttpContext.Current.User.Identity.Name;
return DefaultProvider.List (user);
}
/// <summary>
/// Circles the specified user and relation.
/// </summary>
/// <param name="user">User.</param>
/// <param name="relation">Relation.</param>
public static string[] Circles(string relation, string user = null )
{
if (user == null)
user = HttpContext.Current.User.Identity.Name;
return DefaultProvider.Circles (user, relation);
}
/// <summary>
/// Lists the available circles.
/// </summary>
/// <returns>The available circles.</returns>
/// <param name="user">User.</param>
public static string[] ListAvailableCircles (string user = null )
{
if (user == null)
user = HttpContext.Current.User.Identity.Name;
return DefaultProvider.List (user).Select (x => x.Title).ToArray();
}
}
}

@ -66,10 +66,15 @@ namespace Yavsc.Model.Circles
/// </summary>
/// <param name="id">Identifier.</param>
public abstract CircleBase Get (long id);
/// <summary>
/// Gets the identifier.
/// </summary>
/// <returns>The identifier.</returns>
/// <param name="circle">Circle.</param>
/// <param name="username">Username.</param>
public abstract long GetId (string circle, string username);
/// <summary>
/// List circle's user.
/// List user's circles.
/// </summary>
public abstract IEnumerable<CircleBase> List(string user);
@ -81,6 +86,8 @@ namespace Yavsc.Model.Circles
/// <param name="member">Username to look for in the circles</param>
public abstract bool Matches(long [] circle_ids, string member);
public abstract string [] Circles(string ownername, string username);
/// <summary>
/// Removes the membership.
/// </summary>

@ -6,6 +6,7 @@ using Yavsc.Model.FileSystem;
using System.Web;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
namespace Yavsc.Model.FrontOffice
@ -13,7 +14,7 @@ namespace Yavsc.Model.FrontOffice
/// <summary>
/// Commande.
/// </summary>
public class Command
public abstract class Command
{
/// <summary>
/// Gets or sets the creation date.
@ -55,12 +56,13 @@ namespace Yavsc.Model.FrontOffice
public Command()
{
}
/// <summary>
/// Froms the post.
/// </summary>
/// <param name="collection">Collection.</param>
/// <param name="files">Files.</param>
public void FromPost(NameValueCollection collection, NameObjectCollectionBase files)
private void FromPost(NameValueCollection collection, NameObjectCollectionBase files)
{
// string catref=collection["catref"]; // Catalog Url from which formdata has been built
ProductRef=collection["ref"]; // Required product reference
@ -83,11 +85,25 @@ namespace Yavsc.Model.FrontOffice
/// </summary>
/// <param name="collection">Collection.</param>
/// <param name="files">Files.</param>
public Command (NameValueCollection collection, NameObjectCollectionBase files)
public static Command CreateCommand (NameValueCollection collection, NameObjectCollectionBase files)
{
FromPost (collection, files);
var cmd = CreateCommand (collection ["type"]);
cmd.FromPost (collection, files);
return cmd;
}
/// <summary>
/// Creates the command.
/// </summary>
/// <returns>The command.</returns>
/// <param name="className">Class name.</param>
public static Command CreateCommand (string className)
{
var type = Type.GetType (className);
ConstructorInfo ci = type.GetConstructor(new Type[]{});
var cmd = ci.Invoke (new object[]{}) as Command;
return cmd;
}
}
}

@ -76,6 +76,12 @@ namespace Yavsc.Model {
}
}
public static string BillSourceCode {
get {
return ResourceManager.GetString("BillSourceCode", resourceCulture);
}
}
public static string access_denied {
get {
return ResourceManager.GetString("access_denied", resourceCulture);
@ -88,9 +94,15 @@ namespace Yavsc.Model {
}
}
public static string DuplicateEmail {
public static string MEACode {
get {
return ResourceManager.GetString("DuplicateEmail", resourceCulture);
return ResourceManager.GetString("MEACode", resourceCulture);
}
}
public static string from {
get {
return ResourceManager.GetString("from", resourceCulture);
}
}
@ -136,9 +148,9 @@ namespace Yavsc.Model {
}
}
public static string DoSpecifyCircles {
public static string DoAnEstimate {
get {
return ResourceManager.GetString("DoSpecifyCircles", resourceCulture);
return ResourceManager.GetString("DoAnEstimate", resourceCulture);
}
}
@ -148,6 +160,12 @@ namespace Yavsc.Model {
}
}
public static string NoSkillforthisactivity {
get {
return ResourceManager.GetString("NoSkillforthisactivity", resourceCulture);
}
}
public static string was_added_to_the_empty_role {
get {
return ResourceManager.GetString("was_added_to_the_empty_role", resourceCulture);
@ -268,6 +286,30 @@ namespace Yavsc.Model {
}
}
public static string Catalog {
get {
return ResourceManager.GetString("Catalog", resourceCulture);
}
}
public static string SubmitChanges {
get {
return ResourceManager.GetString("SubmitChanges", resourceCulture);
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis", resourceCulture);
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis", resourceCulture);
}
}
public static string none {
get {
return ResourceManager.GetString("none", resourceCulture);
@ -304,9 +346,9 @@ namespace Yavsc.Model {
}
}
public static string Google_error {
public static string Home {
get {
return ResourceManager.GetString("Google_error", resourceCulture);
return ResourceManager.GetString("Home", resourceCulture);
}
}
@ -322,9 +364,9 @@ namespace Yavsc.Model {
}
}
public static string Skills {
public static string Posted {
get {
return ResourceManager.GetString("Skills", resourceCulture);
return ResourceManager.GetString("Posted", resourceCulture);
}
}
@ -376,9 +418,9 @@ namespace Yavsc.Model {
}
}
public static string hidden {
public static string Icons_made_by {
get {
return ResourceManager.GetString("hidden", resourceCulture);
return ResourceManager.GetString("Icons_made_by", resourceCulture);
}
}
@ -412,6 +454,12 @@ namespace Yavsc.Model {
}
}
public static string AboutContent {
get {
return ResourceManager.GetString("AboutContent", resourceCulture);
}
}
public static string YourNeed {
get {
return ResourceManager.GetString("YourNeed", resourceCulture);
@ -460,9 +508,9 @@ namespace Yavsc.Model {
}
}
public static string MEACode {
public static string Google_error {
get {
return ResourceManager.GetString("MEACode", resourceCulture);
return ResourceManager.GetString("Google_error", resourceCulture);
}
}
@ -478,9 +526,9 @@ namespace Yavsc.Model {
}
}
public static string Logout {
public static string About {
get {
return ResourceManager.GetString("Logout", resourceCulture);
return ResourceManager.GetString("About", resourceCulture);
}
}
@ -496,12 +544,6 @@ namespace Yavsc.Model {
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable", resourceCulture);
}
}
public static string Offline {
get {
return ResourceManager.GetString("Offline", resourceCulture);
@ -526,6 +568,18 @@ namespace Yavsc.Model {
}
}
public static string YourEstimates {
get {
return ResourceManager.GetString("YourEstimates", resourceCulture);
}
}
public static string Name {
get {
return ResourceManager.GetString("Name", resourceCulture);
}
}
public static string Non_existent_user {
get {
return ResourceManager.GetString("Non_existent_user", resourceCulture);
@ -586,9 +640,15 @@ namespace Yavsc.Model {
}
}
public static string UsersInRole {
public static string User_List {
get {
return ResourceManager.GetString("UsersInRole", resourceCulture);
return ResourceManager.GetString("User_List", resourceCulture);
}
}
public static string SiteSkills {
get {
return ResourceManager.GetString("SiteSkills", resourceCulture);
}
}
@ -610,9 +670,15 @@ namespace Yavsc.Model {
}
}
public static string Name {
public static string EndDate {
get {
return ResourceManager.GetString("Name", resourceCulture);
return ResourceManager.GetString("EndDate", resourceCulture);
}
}
public static string Logout {
get {
return ResourceManager.GetString("Logout", resourceCulture);
}
}
@ -622,15 +688,15 @@ namespace Yavsc.Model {
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable {
public static string is_licensed_by {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable", resourceCulture);
return ResourceManager.GetString("is_licensed_by", resourceCulture);
}
}
public static string User_List {
public static string Edited {
get {
return ResourceManager.GetString("User_List", resourceCulture);
return ResourceManager.GetString("Edited", resourceCulture);
}
}
@ -640,9 +706,15 @@ namespace Yavsc.Model {
}
}
public static string Home {
public static string hidden {
get {
return ResourceManager.GetString("Home", resourceCulture);
return ResourceManager.GetString("hidden", resourceCulture);
}
}
public static string Skills {
get {
return ResourceManager.GetString("Skills", resourceCulture);
}
}
@ -652,15 +724,21 @@ namespace Yavsc.Model {
}
}
public static string DuplicateEmail {
get {
return ResourceManager.GetString("DuplicateEmail", resourceCulture);
}
}
public static string BillUpdated {
get {
return ResourceManager.GetString("BillUpdated", resourceCulture);
}
}
public static string NoSkillforthisactivity {
public static string BillAccessControl {
get {
return ResourceManager.GetString("NoSkillforthisactivity", resourceCulture);
return ResourceManager.GetString("BillAccessControl", resourceCulture);
}
}
@ -754,9 +832,21 @@ namespace Yavsc.Model {
}
}
public static string EndDate {
public static string DoSpecifyCircles {
get {
return ResourceManager.GetString("EndDate", resourceCulture);
return ResourceManager.GetString("DoSpecifyCircles", resourceCulture);
}
}
public static string Search {
get {
return ResourceManager.GetString("Search", resourceCulture);
}
}
public static string UsersInRole {
get {
return ResourceManager.GetString("UsersInRole", resourceCulture);
}
}

@ -70,9 +70,15 @@ namespace Yavsc.Model {
}
}
public static string BookingTitleArtiste {
public static string Basket {
get {
return ResourceManager.GetString("BookingTitleArtiste", resourceCulture);
return ResourceManager.GetString("Basket", resourceCulture);
}
}
public static string BillSourceCode {
get {
return ResourceManager.GetString("BillSourceCode", resourceCulture);
}
}
@ -88,9 +94,15 @@ namespace Yavsc.Model {
}
}
public static string PreferedDate {
public static string MEACode {
get {
return ResourceManager.GetString("PreferedDate", resourceCulture);
return ResourceManager.GetString("MEACode", resourceCulture);
}
}
public static string from {
get {
return ResourceManager.GetString("from", resourceCulture);
}
}
@ -118,9 +130,9 @@ namespace Yavsc.Model {
}
}
public static string Product_reference {
public static string Remove {
get {
return ResourceManager.GetString("Product_reference", resourceCulture);
return ResourceManager.GetString("Remove", resourceCulture);
}
}
@ -136,9 +148,9 @@ namespace Yavsc.Model {
}
}
public static string DoSpecifyCircles {
public static string DoAnEstimate {
get {
return ResourceManager.GetString("DoSpecifyCircles", resourceCulture);
return ResourceManager.GetString("DoAnEstimate", resourceCulture);
}
}
@ -148,6 +160,18 @@ namespace Yavsc.Model {
}
}
public static string NoSkillforthisactivity {
get {
return ResourceManager.GetString("NoSkillforthisactivity", resourceCulture);
}
}
public static string was_added_to_the_empty_role {
get {
return ResourceManager.GetString("was_added_to_the_empty_role", resourceCulture);
}
}
public static string UserNotInThisRole {
get {
return ResourceManager.GetString("UserNotInThisRole", resourceCulture);
@ -220,15 +244,15 @@ namespace Yavsc.Model {
}
}
public static string was_added_to_the_empty_role {
public static string Title {
get {
return ResourceManager.GetString("was_added_to_the_empty_role", resourceCulture);
return ResourceManager.GetString("Title", resourceCulture);
}
}
public static string ImportException {
public static string Product_reference {
get {
return ResourceManager.GetString("ImportException", resourceCulture);
return ResourceManager.GetString("Product_reference", resourceCulture);
}
}
@ -268,6 +292,30 @@ namespace Yavsc.Model {
}
}
public static string Catalog {
get {
return ResourceManager.GetString("Catalog", resourceCulture);
}
}
public static string SubmitChanges {
get {
return ResourceManager.GetString("SubmitChanges", resourceCulture);
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis", resourceCulture);
}
}
public static string BookingTitleArtiste {
get {
return ResourceManager.GetString("BookingTitleArtiste", resourceCulture);
}
}
public static string none {
get {
return ResourceManager.GetString("none", resourceCulture);
@ -298,9 +346,9 @@ namespace Yavsc.Model {
}
}
public static string Google_error {
public static string Home {
get {
return ResourceManager.GetString("Google_error", resourceCulture);
return ResourceManager.GetString("Home", resourceCulture);
}
}
@ -316,9 +364,9 @@ namespace Yavsc.Model {
}
}
public static string Skills {
public static string Posted {
get {
return ResourceManager.GetString("Skills", resourceCulture);
return ResourceManager.GetString("Posted", resourceCulture);
}
}
@ -328,9 +376,9 @@ namespace Yavsc.Model {
}
}
public static string Title {
public static string ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis {
get {
return ResourceManager.GetString("Title", resourceCulture);
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailableThis", resourceCulture);
}
}
@ -352,9 +400,9 @@ namespace Yavsc.Model {
}
}
public static string Modify {
public static string ImportException {
get {
return ResourceManager.GetString("Modify", resourceCulture);
return ResourceManager.GetString("ImportException", resourceCulture);
}
}
@ -370,9 +418,9 @@ namespace Yavsc.Model {
}
}
public static string hidden {
public static string Icons_made_by {
get {
return ResourceManager.GetString("hidden", resourceCulture);
return ResourceManager.GetString("Icons_made_by", resourceCulture);
}
}
@ -406,6 +454,12 @@ namespace Yavsc.Model {
}
}
public static string AboutContent {
get {
return ResourceManager.GetString("AboutContent", resourceCulture);
}
}
public static string YourNeed {
get {
return ResourceManager.GetString("YourNeed", resourceCulture);
@ -442,15 +496,21 @@ namespace Yavsc.Model {
}
}
public static string Modify {
get {
return ResourceManager.GetString("Modify", resourceCulture);
}
}
public static string Xshouldbeavailable {
get {
return ResourceManager.GetString("Xshouldbeavailable", resourceCulture);
}
}
public static string MEACode {
public static string Google_error {
get {
return ResourceManager.GetString("MEACode", resourceCulture);
return ResourceManager.GetString("Google_error", resourceCulture);
}
}
@ -484,12 +544,6 @@ namespace Yavsc.Model {
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable", resourceCulture);
}
}
public static string Offline {
get {
return ResourceManager.GetString("Offline", resourceCulture);
@ -514,6 +568,12 @@ namespace Yavsc.Model {
}
}
public static string Name {
get {
return ResourceManager.GetString("Name", resourceCulture);
}
}
public static string Non_existent_user {
get {
return ResourceManager.GetString("Non_existent_user", resourceCulture);
@ -526,6 +586,12 @@ namespace Yavsc.Model {
}
}
public static string PreferedDate {
get {
return ResourceManager.GetString("PreferedDate", resourceCulture);
}
}
public static string Edit {
get {
return ResourceManager.GetString("Edit", resourceCulture);
@ -568,9 +634,15 @@ namespace Yavsc.Model {
}
}
public static string UsersInRole {
public static string User_List {
get {
return ResourceManager.GetString("UsersInRole", resourceCulture);
return ResourceManager.GetString("User_List", resourceCulture);
}
}
public static string SiteSkills {
get {
return ResourceManager.GetString("SiteSkills", resourceCulture);
}
}
@ -592,9 +664,15 @@ namespace Yavsc.Model {
}
}
public static string Name {
public static string EndDate {
get {
return ResourceManager.GetString("Name", resourceCulture);
return ResourceManager.GetString("EndDate", resourceCulture);
}
}
public static string YourEstimates {
get {
return ResourceManager.GetString("YourEstimates", resourceCulture);
}
}
@ -604,15 +682,15 @@ namespace Yavsc.Model {
}
}
public static string ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable {
public static string is_licensed_by {
get {
return ResourceManager.GetString("ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable", resourceCulture);
return ResourceManager.GetString("is_licensed_by", resourceCulture);
}
}
public static string User_List {
public static string Edited {
get {
return ResourceManager.GetString("User_List", resourceCulture);
return ResourceManager.GetString("Edited", resourceCulture);
}
}
@ -622,9 +700,15 @@ namespace Yavsc.Model {
}
}
public static string Home {
public static string hidden {
get {
return ResourceManager.GetString("Home", resourceCulture);
return ResourceManager.GetString("hidden", resourceCulture);
}
}
public static string Skills {
get {
return ResourceManager.GetString("Skills", resourceCulture);
}
}
@ -640,9 +724,9 @@ namespace Yavsc.Model {
}
}
public static string NoSkillforthisactivity {
public static string BillAccessControl {
get {
return ResourceManager.GetString("NoSkillforthisactivity", resourceCulture);
return ResourceManager.GetString("BillAccessControl", resourceCulture);
}
}
@ -652,6 +736,12 @@ namespace Yavsc.Model {
}
}
public static string yourquerytransmitted {
get {
return ResourceManager.GetString("yourquerytransmitted", resourceCulture);
}
}
public static string Hide_source {
get {
return ResourceManager.GetString("Hide_source", resourceCulture);
@ -670,9 +760,9 @@ namespace Yavsc.Model {
}
}
public static string yourquerytransmitted {
public static string About {
get {
return ResourceManager.GetString("yourquerytransmitted", resourceCulture);
return ResourceManager.GetString("About", resourceCulture);
}
}
@ -736,21 +826,27 @@ namespace Yavsc.Model {
}
}
public static string EndDate {
public static string DoSpecifyCircles {
get {
return ResourceManager.GetString("EndDate", resourceCulture);
return ResourceManager.GetString("DoSpecifyCircles", resourceCulture);
}
}
public static string DB {
public static string Search {
get {
return ResourceManager.GetString("DB", resourceCulture);
return ResourceManager.GetString("Search", resourceCulture);
}
}
public static string Remove {
public static string UsersInRole {
get {
return ResourceManager.GetString("Remove", resourceCulture);
return ResourceManager.GetString("UsersInRole", resourceCulture);
}
}
public static string DB {
get {
return ResourceManager.GetString("DB", resourceCulture);
}
}

@ -13,46 +13,57 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="About"><value>À propos</value></data>
<data name="AboutContent"><value>Je suis développeur indépendant à Suresnes depuis quelque mois.
Je démarre une activité dans le domaine de l'edition logicielle,
et je délivre principalement des applications pour mobiles.</value></data>
<data name="additionally"><value>de plus</value></data>
<data name="access_denied"><value>Accès refusé</value></data>
<data name="Activities"><value>Activités</value></data>
<data name="AnIMessageHasbeenSent"><value>Un message instantané a été envoyé à {0},
lui présentant votre demande. Vous devriez être contacté très rapidement.</value></data>
<data name="available"><value>disponible</value></data>
<data name="AuthenticatedOnly"><value>Seules les utilisateurs authentifies peuvent accèder à cette information</value></data>
<data name="AuthenticatedOnly"><value>Seuls les utilisateurs authentifiés peuvent accèder à cette information.</value></data>
<data name="Basket"><value>Panier</value></data>
<data name="Bill_edition"><value>Édition d'un billet</value></data>
<data name="Bill_removal"><value>Suppression d'un billet</value></data>
<data name="BillAccessControl"><value>Contrôle d'accès au Billet</value></data>
<data name="BillCreated"><value>Billet créé</value></data>
<data name="BillSourceCode"><value>Code source du billet</value></data>
<data name="BillUpdated"><value>Billet mis à jour</value></data>
<data name="BookingTitleArtiste"><value>Reserver les services d'un artiste</value></data>
<data name="BookingTitle6829C"><value>Reserver les services d'un éditeur de logiciel</value></data>
<data name="Consultant"><value>Consultant</value></data>
<data name="Count"><value>Nombre</value></data>
<data name="Catalog"><value>Catalogue</value></data>
<data name="ChooseADescription"><value>S'il vous plait, choisissez une description.</value></data>
<data name="ChooseATitle"><value>S'il vous plait, choisissez un titre.</value></data>
<data name="ChooseADateInTheFutur"><value>S'il vous plait, choisissez une date dans le futur</value></data>
<data name="Ciffer"><value>Chiffre</value></data>
<data name="Circles"><value>Cercles</value></data>
<data name="Consultant"><value>Consultant</value></data>
<data name="Comment"><value>Commentaire</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>
<data name="DB"><value>Base de données</value></data>
<data name="DoAnEstimate"><value>Faire un devis</value></data>
<data name="DoComment"><value>Commenter</value></data>
<data name="DoNotPublishMyActivity"><value>Ne pas publier mon activité</value></data>
<data name="DoSpecifyCircles"><value>S'il vous plait, spécifiez ceux de vos cercles à qui est destiné ce contenu</value></data>
<data name="Create"><value>Créer</value></data>
<data name="Date_search"><value>Demande de rendez-vous</value></data>
<data name="DocTemplateException"><value>Une erreur est survenue à la génération de votre document</value></data>
<data name="Description"><value>Description</value></data>
<data name="DisplayName"><value>Nom affiché</value></data>
<data name="DoTag"><value>Tagger</value></data>
<data name="entries"><value>entrées</value></data>
<data name="Edit"><value>Éditer</value></data>
<data name="Edited"><value>Edité</value></data>
<data name="EditRelatedSkills"><value>Editer les compétences associées</value></data>
<data name="EndDate"><value>Date de fin</value></data>
<data name="EndHour"><value>Heure de fin</value></data>
<data name="entries"><value>entrées</value></data>
<data name="Estimate_not_found"><value>Devis non trouvé</value></data>
<data name="EventWebPage"><value>Page web de l'événement</value></data>
<data name="ExistantDB"><value>Base de données éxistante</value></data>
<data name="FillInAFutureDate"><value>Veuilliez, s'il vous plait, utiliser une date future.</value></data>
<data name="FillInAFutureDate"><value>Veuillez, s'il vous plait, utiliser une date future.</value></data>
<data name="from"><value>provenant de</value></data>
<data name="Google_calendar"><value>Agenda Google</value></data>
<data name="Google_error"><value>Erreur Google : {0}</value></data>
<data name="Google_registration_id"><value>Identifiant d'enregistrement Google</value></data>
@ -61,10 +72,12 @@
<data name="Hide"><value>Cacher</value></data>
<data name="hidden"><value>caché</value></data>
<data name="I_understood"><value>J'ai compris</value></data>
<data name="Icons_made_by"><value>Les icônes fabriqués par</value></data>
<data name="ImgLocator"><value>URI de l'image</value></data>
<data name="ImportException"><value>Exception à l'import</value></data>
<data name="InternalServerError"><value>Erreur serveur interne</value></data>
<data name="Item_added_to_basket"><value>Article ajouté au panier</value></data>
<data name="is_licensed_by"><value>sont sous licence</value></data>
<data name="Item_added_to_basket"><value>Article ajouté au panier.</value></data>
<data name="Location"><value>Lieu</value></data>
<data name="Logout"><value>Déconnection</value></data>
<data name="ManagedSiteSkills"><value>Compétences gérée sur ce site</value></data>
@ -93,6 +106,7 @@
<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="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>
<data name="Profile_edition"><value>Édition du profile</value></data>
@ -105,17 +119,20 @@
<data name="Remember_me"><value>Se souvenir du mot de passe</value></data>
<data name="Remove"><value>Supprimer</value></data>
<data name="role_created"><value>Rôle créé</value></data>
<data name="Search"><value>Chercher</value></data>
<data name="SiteSkills"><value>Talents/Compétences/Spécialités gérés sur ce site</value></data>
<data name="Skill"><value>Compétence</value></data>
<data name="Skills"><value>Talents/Compétences/Spécialités</value></data>
<data name="StartDate"><value>Date de début</value></data>
<data name="StartDateAfterEndDate"><value>La date de fin doit être postérieure à la date de début.</value></data>
<data name="StartHour"><value>Heure de début</value></data>
<data name="Submit"><value>Soumettre</value></data>
<data name="SubmitChanges"><value>Envoyer les modifications</value></data>
<data name="Tag_name"><value>Nom du tag</value></data>
<data name="Tex_version"><value>Version LaTeX</value></data>
<data name="ThisSiteUsesCookies"><value>Ce site utilise les cookies</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable"><value>Selon son calendier Google, ce perstataire est disponbile.</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable"><value>Selon son calendier Google, ce perstataire pourrait ne pas être disponible.</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis"><value>Selon son calendier Google, ce perstataire est disponbile ce</value></data>
<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="Unitary_cost"><value>Coût unitaire</value></data>
@ -132,8 +149,9 @@
<data name="Xshouldbeavailable"><value>Au vu de son calendrier,
{0} devrait être disponible pour ce rendez-vous</value></data>
<data name="younotadmin"><value>Vous n'êtes pas administrateur</value></data>
<data name="YourEstimates"><value>Vos Devis</value></data>
<data name="YourMEACode"><value>Votre activité</value></data>
<data name="YourNeed"><value>Votre besoin</value></data>
<data name="yourquerytransmitted"><value>Votre demande a été transmise</value></data>
<data name="YourSkills"><value>Your skills, your special fields, the scope of your activities</value></data>
<data name="YourSkills"><value>Vos talents, vos spécialités, le domaine de vos activités</value></data>
</root>

@ -13,6 +13,9 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="About"><value>About</value></data>
<data name="AboutContent"><value>I'm a french developer base in Suresnes, near Paris,
I mainly release some mobile applications for mobiles.</value></data>
<data name="additionally"><value>additionally</value></data>
<data name="access_denied"><value>Access denied</value></data>
<data name="Activities"><value>Activities</value></data>
@ -22,25 +25,28 @@
<data name="AuthenticatedOnly"><value>You must be authenticated in order to access this information</value></data>
<data name="Bill_edition"><value>Bill edition</value></data>
<data name="Bill_removal"><value>Bill removal</value></data>
<data name="BillAccessControl"><value>Bill access control</value></data>
<data name="BillCreated"><value>Bill created</value></data>
<data name="BillSourceCode"><value>Bill source code</value></data>
<data name="BillUpdated"><value>Bill updated</value></data>
<data name="BookingTitleArtiste"><value>Book an artiste</value></data>
<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="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>
<data name="ChooseADateInTheFutur"><value>Please, Choose A Date In The Futur</value></data>
<data name="Ciffer"><value>Ciffer</value></data>
<data name="Circles"><value>Circles</value></data>
<data name="Consultant"><value>Consultant</value></data>
<data name="Comment"><value>Comment</value></data>
<data name="Consultant"><value>Consultant</value></data>
<data name="Count"><value>Count</value></data>
<data name="Date_search"><value>Date search</value></data>
<data name="DB"><value>Data base</value></data>
<data name="Date_search"><value>Rendez-vous query</value></data>
<data name="Description"><value>Description</value></data>
<data name="DisplayName"><value>Display Name</value></data>
<data name="DoAnEstimate"><value>Do an estimate</value></data>
<data name="DocTemplateException"><value>Exception occured when rendering your document</value></data>
<data name="DoNotPublishMyActivity"><value>Do Not Publish My Activity</value></data>
<data name="DoSpecifyCircles"><value>Please, specify circles for audiance</value></data>
@ -48,26 +54,30 @@
<data name="DuplicateEmail"><value>This email adress is already used ({0}).</value></data>
<data name="DuplicateUserName"><value>This user name is already used ({0}).</value></data>
<data name="Edit"><value>Edit</value></data>
<data name="Edited"><value>Edited</value></data>
<data name="EditRelatedSkills"><value>Edit related skills</value></data>
<data name="EndHour"><value>End hour</value></data>
<data name="EndDate"><value>End date</value></data>
<data name="entries"><value>entries</value></data>
<data name="Estimate_not_found"><value>Estimate not found</value></data>
<data name="EventWebPage"><value>Event Web page</value></data>
<data name="ExistantDB"><value>Existant data base</value></data>
<data name="FillInAFutureDate"><value>Please, use a date in the future as starting date.</value></data>
<data name="from"><value>from</value></data>
<data name="Home"><value>Home</value></data>
<data name="Hide"><value>Hide</value></data>
<data name="hidden"><value>hidden</value></data>
<data name="Hide_source"><value>Hide the bill source text</value></data>
<data name="entries"><value>entries</value></data>
<data name="Google_calendar"><value>Google calendar</value></data>
<data name="Google_calendar_"><value>Google calendar</value></data>
<data name="Google_error"><value>Google error : {0}</value></data>
<data name="Google_registration_id"><value>Google registration id</value></data>
<data name="I_understood"><value>I understood</value></data>
<data name="Icons_made_by"><value>Icons made by</value></data>
<data name="InternalServerError"><value>Internal Server Error</value></data>
<data name="ImgLocator"><value>Image URI</value></data>
<data name="ImportException"><value>Exception at importing</value></data>
<data name="is_licensed_by"><value>is licensed by</value></data>
<data name="Item_added_to_basket"><value>Item added to basket</value></data>
<data name="Location"><value>Location</value></data>
<data name="Logout"><value>Logout</value></data>
@ -97,6 +107,7 @@
<data name="Person"><value>Person</value></data>
<data name="Photo"><value>Photo</value></data>
<data name="PhotoUpdated"><value>Photo updated</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>
<data name="Private_circle"><value>Private circle</value></data>
@ -110,18 +121,21 @@
<data name="Remove"><value>Remove</value></data>
<data name="Role"><value>Role</value></data>
<data name="role_created"><value>role created</value></data>
<data name="Search"><value>Search</value></data>
<data name="SiteSkills"><value>Talents/Compétences/Spécialités gérés sur ce site</value></data>
<data name="Skill"><value>Skill</value></data>
<data name="Skills"><value>Skills</value></data>
<data name="StartDate"><value>Start date</value></data>
<data name="Submit"><value>Submit</value></data>
<data name="SubmitChanges"><value>Submit changes</value></data>
<data name="StartHour"><value>Start hour</value></data>
<data name="StartDate"><value>Start date</value></data>
<data name="StartDateAfterEndDate"><value>The ending date must be later than the starting one.</value></data>
<data name="Tag_name"><value>Tag name</value></data>
<data name="Tex_version"><value>LaTeX version</value></data>
<data name="ThisSiteUsesCookies"><value>This site uses cookies</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable"><value>ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailable</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable"><value>ThisPerformerGivesAccessToHisCalendarAndItAppearsHeShouldNotBeAvailable</value></data>
<data name="ThisPerformerGivesAccessToHisCalendarAndSeemsToBeAvailableThis"><value>ThisPerformer Gives access to his calendar and seems to be available this</value></data>
<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="Unitary_cost"><value>Unitary_cost</value></data>
@ -138,9 +152,10 @@
<data name="Xshouldbeavailable"><value>regarding his calendar,
{0} should be available for this booking</value></data>
<data name="younotadmin"><value>You're not administrator</value></data>
<data name="YourEstimates"><value>Your estimates</value></data>
<data name="YourMEACode"><value>Your activity</value></data>
<data name="YourNeed"><value>Your need</value></data>
<data name="YourSkills"><value>Vos talents, vos spécialités, le domaine de vos activités</value></data>
<data name="yourquerytransmitted"><value>your query has been transmitted</value></data>
<data name="YourSkills"><value>Your skills, your special fields, the scope of your activities</value></data>
</root>

@ -87,7 +87,7 @@ namespace Yavsc.Model.WorkFlow
/// </summary>
/// <returns>The estimate statuses.</returns>
/// <param name="estid">Estid.</param>
StatusChange[] GetEstimateStatuses (long estid); /// <summary>
StatusChange[] GetEstimateStatuses (long estid);
/// <summary>
/// Gets the estimates.
@ -99,8 +99,9 @@ namespace Yavsc.Model.WorkFlow
/// <summary>
/// Registers the activity.
/// </summary>
/// <param name="activity">Activity.</param>
/// <param name="code">Code.</param>
/// <param name="activityName">Activity name.</param>
/// <param name="meacode">Meacode.</param>
/// <param name="comment">Comment.</param>
void RegisterActivity (string activityName, string meacode, string comment);
/// <summary>

Loading…