|
|
|
|
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
|
<% ViewState["orgtitle"] = Html.Translate(Page.Title); %>
|
|
|
|
|
<% Page.Title = ViewState["orgtitle"] + " - " + YavscHelpers.SiteName;
|
|
|
|
|
Page.Theme = (string) Profile.UITheme;
|
|
|
|
|
Page.StyleSheetTheme = (string) Profile.UITheme; %>
|
|
|
|
|
<asp:ContentPlaceHolder id="init" runat="server">
|
|
|
|
|
</asp:ContentPlaceHolder>
|
|
|
|
|
<head runat="server">
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
|
|
|
<%= Html.ThemeCSSLinks(Page.StyleSheetTheme,"style")%>
|
|
|
|
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/font-awesome.css")%>" />
|
|
|
|
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/jquery-ui.css")%>" />
|
|
|
|
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/prettify.css")%>" />
|
|
|
|
|
<link rel="stylesheet" href="<%=Url.Content("~/App_Themes/doxy.css")%>" />
|
|
|
|
|
<link rel="icon" type="image/png" href="/favicon.png?v=3" />
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/jquery-2.1.4.min.js")%>"></script>
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/jquery-ui-1.11.4.min.js")%>"></script>
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/parallax.js")%>"></script>
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/Prettify/run_prettify.js")%>"></script>
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
var apiBaseUrl = '<%=Url.Content(Yavsc.WebApiConfig.UrlPrefixRelative)%>';
|
Nouvelles fonctionalités:
- Gestion des déploiement de configurations
- Ajout et suppression d'utilisateurs au groupes (autres que celui des admins)
- Page à customiser en cas d'accès à une ressource d'accès restreint, qui par défaut
n'indique que le nom de controleur et celui de la methode concérnée, et qui ajoute,
seulement dans le cas ou l'utilisateur est administrateur, les noms de groupes ou d'utilisateur
autorisés, avec la mentions "admins only" invitant à la discretion.
* Microsoft.Web.XmlTransform.dll: Copié de l'import Nuget de
Mono.Web.Xdt (transformations de fichiers de configuration)
* yavsc.admin.js: Implémente les méthodes Javascript de l'interface
utilisateur de suppression et d'ajout d'un utilisateur à un groupe:
un widget jQuery pour la suppression, l'accès à l'API
* RestrictedArea.aspx: Page vue par l'utilisateur si par malheur il
suivait un lien vers un contenu d'accès restreint, à la place d'un
code Http 404 ou autre.
Si cet utilisateur est administrateur, la page lui affiche les rôles
ou utilisateurs autorisés à accèder au contenu.
* RestrictedArea.aspx:
* RestrictedArea.aspx:
* RestrictedArea.aspx:
* RestrictedArea.aspx:
* RestrictedArea.aspx:
* RestrictedArea.aspx:
* RestrictedArea.aspx: Page vue par l'utilisateur si par malheur il
suivait un lien vers un contenu d'accès restreint, à la place d'un
code Http 404 ou autre.
Si cet utilisateur est administrateur, la page lui affiche les rôles
ou utilisateurs autorisés à accèder au contenu.
* Makefile: retour au débuggage de la copie de travaille, et pas de la
déployée. La copie de travail sera avec les mots de passe, et donc toujours différente de celle sous git,
mais c'est pas grave.
* AccountController.cs: Evite de mettre à jour un mot de passe avec
des valeures non attendues
* style.css: corrige un mouvement de la disposition au survol de la
souris
* AuthorizeAttribute.cs: enlève la redirection à l'accès restreint, et
fixe pas la même la transmission des données `Roles` et `Users` de
la vue
* AdminController.cs: Evite de supprimer un utilisateur d'un groupe
avec des valeures non attendues
* HomeController.cs: Il n'y avait pas à créer de methode pour la vue
publique de l'accès restreint.
* YavscAjaxHelper.cs: évite d'avoir à convertir en chaine les valeurs
de la vue.
* App.master: Cette page maître affiche encore beaucoup de billets de
blog, on y installe le coteur, de base. Ça changera quand les blogs
auront (enfin) leur page maître dédiée.
* AppAdmin.master: synchronisation avec la page maître principale
(thémes)
* NoLogin.master: synchronisation avec la page maître
principale.(thémes)
* yavsc.rate.js: supprime l'initialisation de tous les type de cotes
depuis le script global.
C'est fait sur les pages qui en ont besoin, et seulement pour les
types de cotes concernés.
* AddUserToRole.ascx: Ce formulaire est maintenant à la fois
opérationel depuis une interface web sans javascript, et à la Ajax
quand Javascript activé.
* UsersInRole.aspx: implémente l'interface utilisateur pour
l'ajout et la suppression d'un utilisateur à un groupe
* Skills.aspx: initialise le coteur js des compétences site
* UserSkills.aspx: initialise le coteur js de compétences utilisateur
* Web.csproj: un script et des pages d'erreur d'accès, il en faut une
par controlleur s'il veut restreindre ses accès sans rendre de code Http 403 ou 404.
* UserNameBase.cs: Permet l'usage des espaces dans les noms
d'utilisateurs, à la création legacy, ou autres usage du nom d'utilisateur.
10 years ago
|
|
|
$(document).ready(function(){
|
|
|
|
|
$('[data-type="rate-bill"]').rate({target: 'Blogs/Rate'});
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
<%=Ajax.GlobalizationScript()%>
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/yavsc.js")%>"></script>
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/yavsc.tags.js")%>"></script>
|
|
|
|
|
<script src="<%=Url.Content("~/Scripts/yavsc.rate.js")%>"></script>
|
|
|
|
|
<asp:ContentPlaceHolder id="head" runat="server">
|
|
|
|
|
</asp:ContentPlaceHolder>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<header data-type="background" data-speed="8" >
|
|
|
|
|
<asp:ContentPlaceHolder ID="overHeaderOne" runat="server">
|
|
|
|
|
<h1><a href="<%= Url.RouteUrl("Default") %>">
|
|
|
|
|
<%=ViewState["orgtitle"]%></a>
|
|
|
|
|
- <a href="<%= Url.RouteUrl("Default", new {controller = "Home" , action = "Index" }) %>"><%= YavscHelpers.SiteName %></a>
|
|
|
|
|
</h1>
|
|
|
|
|
</asp:ContentPlaceHolder>
|
|
|
|
|
<asp:ContentPlaceHolder ID="header" runat="server"></asp:ContentPlaceHolder>
|
|
|
|
|
<div id="notifications"></div>
|
|
|
|
|
<% if (ViewData ["Notifications"]!=null) { %>
|
|
|
|
|
<script>
|
|
|
|
|
$(document).ready(function(){
|
|
|
|
|
<% foreach (Notification note in (IEnumerable<Notification>) ViewData ["Notifications"] ) {
|
|
|
|
|
if (note.click_action == null) {%> Yavsc.notice(<%=note.body%>); <% }
|
|
|
|
|
else {%> Yavsc.notice(<%=note.body%>, <%=note.click_action%>, <%=note.click_action_name%>); <% } %>
|
|
|
|
|
<% } %>
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
<% } %>
|
|
|
|
|
</header>
|
|
|
|
|
<nav data-type="background" data-speed="5">
|
|
|
|
|
<% 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>
|
|
|
|
|
<% } else { %>
|
|
|
|
|
<a href="<%=Url.RouteUrl("Blogs", new { user = HttpContext.Current.User.Identity.Name } )%>" accesskey = "B" class="menuitem" >
|
|
|
|
|
<img src="<%=Url.AvatarUrl(HttpContext.Current.User.Identity.Name)%>" alt="vos billets" class="iconsmall" />
|
|
|
|
|
<span class="hint">Vos billets</span>
|
|
|
|
|
</a>
|
|
|
|
|
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Profile", id = HttpContext.Current.User.Identity.Name} ) %>" accesskey="P" class="menuitem fa fa-user">
|
|
|
|
|
<%= HttpContext.Current.User.Identity.Name %>
|
|
|
|
|
<span class="hint"> Édition de votre profile </span>
|
|
|
|
|
</a>
|
|
|
|
|
<a href="/Blogs/Post" accesskey="P" class="menuitem fa fa-pencil">
|
|
|
|
|
<u>P</u>oster
|
|
|
|
|
<span class="hint">Édition d'un nouveau billet </span>
|
|
|
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<a href="<%= Url.RouteUrl("Default", new { controller = "Account", action = "Logout", returnUrl=Request.Url.PathAndQuery}) %>" accesskey = "C" class="menuitem fa fa-sign-out">
|
|
|
|
|
<%=Html.Translate("Logout")%></a>
|
|
|
|
|
<% } %>
|
|
|
|
|
</nav>
|
|
|
|
|
<main data-type="background" data-speed="10" data-emheight="10" data-posx="0" data-posy="22" >
|
|
|
|
|
<asp:ContentPlaceHolder ID="MainContent" runat="server">
|
|
|
|
|
</asp:ContentPlaceHolder>
|
|
|
|
|
</main>
|
|
|
|
|
<footer data-type="background" data-speed="5" >
|
|
|
|
|
<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>
|
|
|
|
|
<% }} %>
|
|
|
|
|
</footer><div class="modal"></div>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|