a layout
parent
a2009e41aa
commit
2cc196225a
@ -1,31 +0,0 @@
|
|||||||
using System.Diagnostics;
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
|
||||||
using Yavsc.Models;
|
|
||||||
|
|
||||||
namespace Yavsc.Controllers;
|
|
||||||
|
|
||||||
public class HomeController : Controller
|
|
||||||
{
|
|
||||||
private readonly ILogger<HomeController> _logger;
|
|
||||||
|
|
||||||
public HomeController(ILogger<HomeController> logger)
|
|
||||||
{
|
|
||||||
_logger = logger;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IActionResult Index()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IActionResult Privacy()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
|
|
||||||
public IActionResult Error()
|
|
||||||
{
|
|
||||||
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,135 +0,0 @@
|
|||||||
using Microsoft.AspNet.Mvc.Localization;
|
|
||||||
using Microsoft.AspNet.Mvc;
|
|
||||||
using Microsoft.AspNet.Http.Features;
|
|
||||||
using Microsoft.AspNet.Diagnostics;
|
|
||||||
using Microsoft.AspNet.Authorization;
|
|
||||||
using Microsoft.AspNet.Hosting;
|
|
||||||
using Microsoft.AspNet.Identity;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Security.Claims;
|
|
||||||
using Microsoft.Data.Entity;
|
|
||||||
using Microsoft.AspNet.Http;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace Yavsc.Controllers
|
|
||||||
{
|
|
||||||
using System.IO;
|
|
||||||
using Models;
|
|
||||||
using Yavsc;
|
|
||||||
using Yavsc.Helpers;
|
|
||||||
|
|
||||||
[AllowAnonymous]
|
|
||||||
public class HomeController : Controller
|
|
||||||
{
|
|
||||||
readonly ApplicationDbContext _dbContext;
|
|
||||||
|
|
||||||
readonly IHtmlLocalizer _localizer;
|
|
||||||
public HomeController(IHtmlLocalizer<Startup> localizer,
|
|
||||||
ApplicationDbContext context)
|
|
||||||
{
|
|
||||||
_localizer = localizer;
|
|
||||||
_dbContext = context;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task<IActionResult> Index(string id)
|
|
||||||
{
|
|
||||||
ViewBag.IsFromSecureProx = Request.Headers.ContainsKey(Constants.SshHeaderKey) && Request.Headers[Constants.SshHeaderKey] == "on";
|
|
||||||
ViewBag.SecureHomeUrl = "https://" + Request.Headers["X-Forwarded-Host"];
|
|
||||||
ViewBag.SshHeaderKey = Request.Headers[Constants.SshHeaderKey];
|
|
||||||
var uid = User.GetUserId();
|
|
||||||
long[] clicked = null;
|
|
||||||
if (uid == null)
|
|
||||||
{
|
|
||||||
await HttpContext.Session.LoadAsync();
|
|
||||||
var strclicked = HttpContext.Session.GetString("clicked");
|
|
||||||
if (strclicked != null) clicked = strclicked.Split(':').Select(c => long.Parse(c)).ToArray();
|
|
||||||
if (clicked == null) clicked = new long[0];
|
|
||||||
}
|
|
||||||
else clicked = _dbContext.DimissClicked.Where(d => d.UserId == uid).Select(d => d.NotificationId).ToArray();
|
|
||||||
var notes = _dbContext.Notification.Where(
|
|
||||||
n => !clicked.Contains(n.Id)
|
|
||||||
);
|
|
||||||
this.Notify(notes);
|
|
||||||
|
|
||||||
ViewData["HaircutCommandCount"] = _dbContext.HairCutQueries.Where(
|
|
||||||
q => q.ClientId == uid && q.Status < QueryStatus.Failed
|
|
||||||
).Count();
|
|
||||||
var toShow = _dbContext.Activities
|
|
||||||
.Include(a => a.Forms)
|
|
||||||
.Include(a => a.Parent)
|
|
||||||
.Include(a => a.Children)
|
|
||||||
.Where(a => !a.Hidden)
|
|
||||||
.Where(a => a.ParentCode == id)
|
|
||||||
.OrderByDescending(a => a.Rate).ToList();
|
|
||||||
|
|
||||||
foreach (var a in toShow)
|
|
||||||
{
|
|
||||||
a.Children = a.Children.Where(c => !c.Hidden).ToList();
|
|
||||||
}
|
|
||||||
return View(toShow);
|
|
||||||
}
|
|
||||||
public async Task<IActionResult> About()
|
|
||||||
{
|
|
||||||
FileInfo fi = new FileInfo("wwwroot/version");
|
|
||||||
return View("About", fi.Exists ? _localizer["Version logicielle: "] + await fi.OpenText().ReadToEndAsync() : _localizer["Aucune information sur la version logicielle n'est publiée."]);
|
|
||||||
}
|
|
||||||
public IActionResult Privacy()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
public IActionResult AboutMarkdown()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IActionResult Contact()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
public IActionResult Dash()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
public ActionResult Chat()
|
|
||||||
{
|
|
||||||
if (User.Identity.IsAuthenticated)
|
|
||||||
{
|
|
||||||
ViewBag.IsAuthenticated = true;
|
|
||||||
string uid = User.GetUserId();
|
|
||||||
ViewBag.Contacts = _dbContext.Contact.Where(c => c.OwnerId == uid)
|
|
||||||
;
|
|
||||||
}
|
|
||||||
else ViewBag.IsAuthenticated = false;
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IActionResult Error()
|
|
||||||
{
|
|
||||||
var feature = this.HttpContext.Features.Get<IExceptionHandlerFeature>();
|
|
||||||
|
|
||||||
return View("~/Views/Shared/Error.cshtml", feature?.Error);
|
|
||||||
}
|
|
||||||
public IActionResult Status(int id)
|
|
||||||
{
|
|
||||||
ViewBag.StatusCode = id;
|
|
||||||
return View("~/Views/Shared/Status.cshtml");
|
|
||||||
}
|
|
||||||
public IActionResult Todo()
|
|
||||||
{
|
|
||||||
User.GetUserId();
|
|
||||||
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IActionResult VideoChat()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
public IActionResult Audio()
|
|
||||||
{
|
|
||||||
return View();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,159 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "About ";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
<environment names="Development">
|
|
||||||
**Version de Development**
|
|
||||||
<markdown>
|
|
||||||
|
|
||||||
## L'objectif
|
|
||||||
|
|
||||||
Cette application est construite pour mettre en relation des artistes
|
|
||||||
du domaine musical avec leur public.
|
|
||||||
|
|
||||||
## Le fonctionnement
|
|
||||||
|
|
||||||
Les utilisateurs du site sont soit artiste, soit client, soit administrateur. ils ont tous droit à leur blog.
|
|
||||||
Pour les artistes, c'est un moyen de promouvoir leur activité.
|
|
||||||
Ils peuvent y publier des articles, truffés de vidéos et photos.
|
|
||||||
Pour les clients, c'est un moyen de casser la glace avec leurs idoles,
|
|
||||||
par la description détaillées de leur centres d'intérêts.
|
|
||||||
|
|
||||||
L'application propulse aussi une messagerie instantanée, disponible depuis
|
|
||||||
un navigateur Web ou depuis l'appplication mobile,
|
|
||||||
pouvant garantir la preservation du secret sur toute information personnelle,
|
|
||||||
du client comme du prestataire.
|
|
||||||
|
|
||||||
Puis viennent (ou pas) une prise commande, un payement du client,
|
|
||||||
la prestation, une collecte du retour du client, et un paiement du prestataire de services.
|
|
||||||
|
|
||||||
Ni le client ni le prestataire ne sont anonymes pour l'applications,
|
|
||||||
il sont même formellement authentifies par l'acquitement d'une première
|
|
||||||
facturation en ligne, ou à l'occasion de la saisie de leur profil proféssionnel.
|
|
||||||
|
|
||||||
Durant la phase de construction d'un contrat de prestation,
|
|
||||||
le client et l'artiste peuvent profiter d'un canal de communication privé et anonyme,
|
|
||||||
qui est fermé à la validation définitive du dit contrat.
|
|
||||||
|
|
||||||
Valider un contrat, c'est:
|
|
||||||
|
|
||||||
* Choisir le type de contrat
|
|
||||||
* Se mettre d'accord sur les paramètres du contrat
|
|
||||||
* Le faire signer des deux parties
|
|
||||||
* Mettre en œuvre d'éventuels paiement d'arrhes
|
|
||||||
|
|
||||||
Une fois validé, le contrat est publié à destination des deux parties. la facture est publiée à destination du client,
|
|
||||||
qui peut l'honorer auprès du système, auquel cas ce client est marqué solvable, et le contrat est marqué approvisionné.
|
|
||||||
|
|
||||||
En cas de défaut d'approvisionnement, le système prendra soin de marquer le contrat comme provisoire, et de prévenir l'artiste
|
|
||||||
d'effectuer toute prestation en relation tant le paiement associé laisse à douter.
|
|
||||||
|
|
||||||
Une fois sa prestation associée exécutée, les paiements relatifs sont effectués auprès de l'artiste.
|
|
||||||
|
|
||||||
Pour un contrat exécuté et non honoré par le client, le processus de poursuite en recouvrement est engagé, sinon, le contrat est archivé,
|
|
||||||
des attestations de paiement sont disponibles pour l'artiste et la facture est marquée payée, puis repostée au client.
|
|
||||||
|
|
||||||
### Pour l'artiste
|
|
||||||
|
|
||||||
L'artiste choisit plusieurs paramètres qui vont faire son profil :
|
|
||||||
|
|
||||||
* Le type d'activités qu'il veut promouvoir, le type de prestations qu'il fournit (est-ce un DJ,
|
|
||||||
un chanteur solo, un musicien solo, un ensemble musical classique, un groupe)
|
|
||||||
* La tarification de sa mise en contact avec un nouveau client
|
|
||||||
(combien je reçois par demande client traitée sans lourdeur de plus d'une journée)
|
|
||||||
* Le lieu où il exerce et, le cas échéant, sur combien de distance il pourrait se déplacer.
|
|
||||||
* un agenda Google optionnel, à consulter pour établir sa disponibilité
|
|
||||||
* Des paramètres supplémentaires en fonctions de son type d'activité par exemple, pour
|
|
||||||
les ensembles, leur taille, le cas échéant, leur répertoire ou des indications sur le style de leur musique)
|
|
||||||
|
|
||||||
### Pour le client
|
|
||||||
|
|
||||||
Il choisit un lieu et une date pour déclarer un événement avenir
|
|
||||||
(il peut bien-sûr en programmer autant qu'il le veut).
|
|
||||||
|
|
||||||
Il peut, parcourir les publications des artistes, et entamer,
|
|
||||||
sur la base d'un de ses projets événementiel, la négociation d'un contrat de prestation.
|
|
||||||
|
|
||||||
Il a accès à la connaissance des journées connues comme libres des artistes par le système.
|
|
||||||
|
|
||||||
## La confidentialité
|
|
||||||
|
|
||||||
À aucun moment, aucune adresse postale, aucune adresse e-mail ni aucun numéro de téléphone
|
|
||||||
ne sont transmis ni aux clients, ni aux artistes. Seul le système a accès à ces informations.
|
|
||||||
|
|
||||||
De plus, le droit de retrait est permanent et sa mise en oeuvre immédiate.
|
|
||||||
Les artistes comme les clients peuvent demander leur désinscription,
|
|
||||||
qui désactive immédiatement les publications associées à leurs informations,
|
|
||||||
et programme la suppression complète de ces dites informations dans les quinze jours
|
|
||||||
à compter de la demande, sauf demande contradictoire.
|
|
||||||
L'opération est annulable, jusqu'à deux semaines après sa programmation.
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="Lua,Development">
|
|
||||||
<markdown>
|
|
||||||
C'est mon site pérso, une configuration de _Yavsc_ (encore une autre très petite entreprise).
|
|
||||||
|
|
||||||
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
|
|
||||||
* [license: GNU GPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="Yavsc,Development">
|
|
||||||
<markdown>
|
|
||||||
Yet Another Very Small Company ...
|
|
||||||
|
|
||||||
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
|
|
||||||
* [license: GNU FPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="YavscPre,Development">
|
|
||||||
<markdown>
|
|
||||||
## Yet Another Very Small Company :
|
|
||||||
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
|
|
||||||
* [license: GNU FPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
|
|
||||||
|
|
||||||
En production:
|
|
||||||
|
|
||||||
* [Lua](http://pschneider.fr:85)
|
|
||||||
* [Yavsc](http://pschneider.fr:84)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
|
|
||||||
<environment names="coiffure,Development">
|
|
||||||
<markdown>
|
|
||||||
Vous êtes sur le site de commande en coiffure à domicile de Soraya Boudjouraf,
|
|
||||||
un as de la coiffure, qui oeuvre en région parisienne.
|
|
||||||
|
|
||||||
En validant un formulaire de commande ici, c'est à elle que vous notifiez votre demande.
|
|
||||||
|
|
||||||
Vous pouvez ![lui laisser votre numéro de téléphone](/HairCutCommand/HairCut?activityCode=Brush&performerId=1bd841ab-c305-4971-940d-7ddca818310c)
|
|
||||||
et/ou des détails sur votre demande,
|
|
||||||
elle vous rappelera.</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="Development">
|
|
||||||
<markdown>
|
|
||||||
## Ceci est un site de développement.
|
|
||||||
|
|
||||||
Cette présente ressource ne concerne que le développement du logiciel qui la met en oeuvre.
|
|
||||||
Elle est éphémère, et pratiquement en permanence force de codes 500.
|
|
||||||
|
|
||||||
Veuillez excuser l'équipe de développement pour vous avoir fait part de cette adresse et pour la gêne occasionnnée.
|
|
||||||
|
|
||||||
La "pré-production" affiche les sites suivants:
|
|
||||||
|
|
||||||
* [Lua](https://pschneider.fr:85)
|
|
||||||
* [Yavsc](https://pschneider.fr:84)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
<p>
|
|
||||||
@Model
|
|
||||||
</p>
|
|
@ -1,163 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "About";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
<environment names="freefield,Development">
|
|
||||||
|
|
||||||
<markdown>
|
|
||||||
## O objetivo
|
|
||||||
|
|
||||||
Esta aplicação é construída para conectar artistas
|
|
||||||
do campo musical com seu público.
|
|
||||||
|
|
||||||
## Operation
|
|
||||||
|
|
||||||
Os usuários do site são artista, cliente ou administrador. Todos eles têm direito ao seu blog.
|
|
||||||
Para artistas, é uma maneira de promover seus negócios.
|
|
||||||
Eles podem publicar artigos, cheios de vídeos e fotos.
|
|
||||||
Para os clientes, é uma maneira de quebrar o gelo com seus ídolos,
|
|
||||||
pela descrição detalhada de seus centros de interesse.
|
|
||||||
|
|
||||||
O aplicativo também alimenta um mensageiro instantâneo, disponível desde
|
|
||||||
um navegador da web ou de um aplicativo para dispositivos móveis
|
|
||||||
pode garantir a preservação do sigilo sobre qualquer informação pessoal,
|
|
||||||
cliente e provedor.
|
|
||||||
|
|
||||||
Então venha (ou não) um pedido, um pagamento do cliente,
|
|
||||||
a entrega, uma coleta do retorno do cliente e um pagamento do provedor de serviços.
|
|
||||||
|
|
||||||
Nem o cliente nem o provedor são anônimos para os aplicativos,
|
|
||||||
eles são até formalmente autenticados pela aquisição de um primeiro
|
|
||||||
faturamento on-line ou ao entrar em seu perfil profissional.
|
|
||||||
|
|
||||||
Durante a fase de construção de um contrato de serviço,
|
|
||||||
o cliente e o artista podem se beneficiar de um canal de comunicação privado e anônimo,
|
|
||||||
que está fechado para a validação final do referido contrato.
|
|
||||||
|
|
||||||
Valide um contrato é:
|
|
||||||
|
|
||||||
* Escolha o tipo de contrato
|
|
||||||
* Concordo com os parâmetros do contrato
|
|
||||||
* Faça ambas as partes assinarem
|
|
||||||
* Implementar qualquer adiantamento
|
|
||||||
|
|
||||||
Uma vez validado, o contrato é publicado para ambas as partes. a fatura é publicada para o cliente,
|
|
||||||
quem pode homenageá-lo ao sistema, caso em que esse cliente recebe uma pontuação de solvente e o contrato é marcado como provisionado.
|
|
||||||
|
|
||||||
Em caso de falta de fornecimento, o sistema terá o cuidado de marcar o contrato como provisório, e avisar o artista
|
|
||||||
para executar qualquer serviço relacionado, pois o pagamento associado deixa dúvidas.
|
|
||||||
|
|
||||||
Depois que o serviço associado tiver sido executado, os pagamentos relativos serão feitos ao artista.
|
|
||||||
|
|
||||||
Para um contrato executado e não honrado pelo cliente, o processo de processo de recuperação é contratado, caso contrário, o contrato é arquivado,
|
|
||||||
Os certificados de pagamento estão disponíveis para o artista e a fatura é marcada como paga e depois repassada ao cliente.
|
|
||||||
|
|
||||||
### Para o artista
|
|
||||||
|
|
||||||
O artista escolhe vários parâmetros que farão o seu perfil:
|
|
||||||
|
|
||||||
* O tipo de atividades que ele quer promover, o tipo de serviços que ele oferece (é um DJ,
|
|
||||||
um cantor solo, um músico solo, um conjunto musical clássico, uma banda)
|
|
||||||
* O preço de seu contato com um novo cliente
|
|
||||||
(quanto recebo por solicitação de cliente processada sem peso de mais de um dia)
|
|
||||||
* O lugar onde ele pratica e, se sim, até onde ele pode se mover.
|
|
||||||
* um calendário opcional do Google, para consultar para estabelecer sua disponibilidade
|
|
||||||
* Parâmetros adicionais dependendo do tipo de atividade, por exemplo, para
|
|
||||||
conjuntos, seu tamanho, se houver, seu repertório ou indicações do estilo de sua música)
|
|
||||||
|
|
||||||
### Para o cliente
|
|
||||||
|
|
||||||
Ele escolhe um lugar e uma data para declarar um evento futuro
|
|
||||||
(Ele pode programar o quanto quiser).
|
|
||||||
|
|
||||||
Ele pode, navegar pelas publicações dos artistas e começar,
|
|
||||||
com base em um de seus projetos de eventos, a negociação de um contrato de serviço.
|
|
||||||
|
|
||||||
Ele tem acesso ao conhecimento de dias conhecidos como artistas livres pelo sistema.
|
|
||||||
|
|
||||||
## Confidencialidade
|
|
||||||
|
|
||||||
Em nenhum momento, nenhum endereço de correspondência, nenhum endereço de e-mail e nenhum número de telefone
|
|
||||||
não são transmitidos para clientes ou artistas. Apenas o sistema tem acesso a essas informações.
|
|
||||||
|
|
||||||
Além disso, o direito de retirada é permanente e sua implementação imediata.
|
|
||||||
Artistas e clientes podem solicitar sua desinscrição,
|
|
||||||
que imediatamente desativa as publicações associadas às suas informações,
|
|
||||||
e planeia a eliminação completa desta informação no prazo de quinze dias
|
|
||||||
do aplicativo, a menos que seja um pedido contraditório.
|
|
||||||
A operação é anulável até duas semanas após a sua programação.
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="Lua,Development">
|
|
||||||
<markdown>Este é o meu site perso, uma configuração de _Yavsc_ (outro negócio muito pequeno).
|
|
||||||
|
|
||||||
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
|
|
||||||
* [licença: GNU GPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
|
|
||||||
|
|
||||||
Outras instalações:
|
|
||||||
</markdown>
|
|
||||||
<markdown>
|
|
||||||
* [Coiffure](http://coiffure.pschneider.fr)
|
|
||||||
* [ZicMoove](http://linkmuse.pschneider.fr)
|
|
||||||
* [Yavsc](http://yavsc.pschneider.fr)
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="Yavsc">
|
|
||||||
<markdown>
|
|
||||||
Yet Another Very Small Company ...
|
|
||||||
|
|
||||||
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
|
|
||||||
* [license: GNU FPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="YavscPre">
|
|
||||||
<markdown>
|
|
||||||
## Yet Another Very Small Company :
|
|
||||||
* [README](https://github.com/pazof/yavsc/blob/vnext/README.md)
|
|
||||||
* [license: GNU FPL v3](https://github.com/pazof/yavsc/blob/vnext/LICENSE)
|
|
||||||
|
|
||||||
En production:
|
|
||||||
|
|
||||||
* [Lua](http://pschneider.fr:85)
|
|
||||||
* [Yavsc](http://pschneider.fr:84)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
|
|
||||||
<environment names="coiffure">
|
|
||||||
<markdown>
|
|
||||||
Você está no site da ordem em cabeleireiro em casa de Soraya Boudjouraf,
|
|
||||||
um ás de cabeleireiro, que trabalha na região de Paris.
|
|
||||||
|
|
||||||
Ao validar um formulário de pedido aqui, é para ela que você notifica sua solicitação.
|
|
||||||
|
|
||||||
Você pode [Deixe-lhe o seu número de telefone] (/ HairCutCommand / HairCut? ActivityCode = Brush & performerId = 1bd841ab-c305-4971-940d-7ddca818310c)
|
|
||||||
e / ou detalhes sobre o seu pedido,
|
|
||||||
ela vai ligar de volta.</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<environment names="Development">
|
|
||||||
<markdown>
|
|
||||||
## Este é um site de desenvolvimento.
|
|
||||||
|
|
||||||
Este recurso só diz respeito ao desenvolvimento do software que o implementa.
|
|
||||||
É efêmero e praticamente constantemente força 500 códigos.
|
|
||||||
|
|
||||||
Por favor, desculpe a equipe de desenvolvimento para informá-lo sobre este endereço e pelo inconveniente.
|
|
||||||
|
|
||||||
A "pré-produção" exibe os seguintes sites:
|
|
||||||
|
|
||||||
* [Yavsc](https://yavsc.pschneider.fr)
|
|
||||||
* [Lua](https://lua.pschneider.fr)
|
|
||||||
|
|
||||||
</markdown>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
@Model
|
|
||||||
</p>
|
|
@ -1,38 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "À propos des restrictions d'accès";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
|
|
||||||
<markdown>
|
|
||||||
|
|
||||||
# Blog et fichiers utilisateurs
|
|
||||||
|
|
||||||
Par défaut, un envoi à destination du serveur est privé, visible seulement pour son possesseur (et l'administration).
|
|
||||||
|
|
||||||
L'utilisateur peu publier chacun de ces derniers à l'adresse :
|
|
||||||
|
|
||||||
* de tout le monde,
|
|
||||||
* ou d'une liste de cercles d'utilisateurs,
|
|
||||||
* ou de personne
|
|
||||||
|
|
||||||
Quand il s'agit d'un fichier, son adresse permanente relative à la racine du serveur web est: `/UserFiles/(Nom Utilisateur)/(cheminVersLeFichier)`
|
|
||||||
|
|
||||||
Les restrictions d'accès à ce fichier sont celles associées à tous les fichiers du même dossier.
|
|
||||||
Il n'y a pas de regle assiciée à chaque fichier individuellement,
|
|
||||||
elles appartiennent au dossier qui les contient.
|
|
||||||
|
|
||||||
Les billet de blog sont regroupés par utilisateur, à l'Url
|
|
||||||
|
|
||||||
/Blog/(Nom d'Utilisateur)
|
|
||||||
|
|
||||||
Ils sont aussi regroupés par titre :
|
|
||||||
|
|
||||||
/Title/(Titre de post)
|
|
||||||
|
|
||||||
Et ils possèdent une addresse permanente de la forme :
|
|
||||||
|
|
||||||
/Blogspot/Details/(Id Numerique De Post)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</markdown>
|
|
@ -1,19 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "À propos de Markdown";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
|
|
||||||
<markdown>
|
|
||||||
Quelques extensions à un Markdown de base :
|
|
||||||
|
|
||||||
* les video et audio: `![video: Ep. 28 - La France en commun - Une invitation à écrire un nouveau projet d'émancipation humaine](/images/testVideo.mp4)`
|
|
||||||
|
|
||||||
![video: Ep. 28 - La France en commun - Une invitation à écrire un nouveau projet d'émancipation humaine](/images/testVideo.mp4)
|
|
||||||
|
|
||||||
à faire:
|
|
||||||
|
|
||||||
* le tag "Numéro de ticket": "Ticket#6854"
|
|
||||||
* le tag "Titre d'article": "#1_great_title"
|
|
||||||
* le tag "User" = "@@(John Doe)" ou "@@jdoe"
|
|
||||||
|
|
||||||
</markdown>
|
|
@ -1,9 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Page d'accueil";
|
|
||||||
}
|
|
||||||
@section scripts {
|
|
||||||
|
|
||||||
<script src="~/js/str.js">
|
|
||||||
</script>
|
|
||||||
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
@Model BasketView
|
|
||||||
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a asp-controller="HaircutCommand" asp-action="Index">
|
|
||||||
@Model.HairCutActiveQueryCount </a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Conditions Générales de Vente";
|
|
||||||
}
|
|
||||||
<h2>@ViewData["Title"]</h2>
|
|
||||||
<markdown>
|
|
||||||
|
|
||||||
Le paiement intervient à la commande, quelque soit la date d'intervention.
|
|
||||||
Vous pouvez annuler votre commande depuis la [liste de vos commande en cours](/HairCutCommand/),
|
|
||||||
|
|
||||||
Vous pouvez demander le remboursement d'un paiement, dans le cadre d'une réclamation sur l'execution
|
|
||||||
de votre commande, en nous contactant via courrier éléctronique ou postal, [que vour retrouverez sur la page de contact](/Home/Contact), votre demande sera rapidement traitée.
|
|
||||||
|
|
||||||
</markdown>
|
|
@ -1,22 +0,0 @@
|
|||||||
@{ ViewBag.Title = "Chat"; }
|
|
||||||
<h2>@ViewBag.Title</h2>
|
|
||||||
|
|
||||||
<label><input type="checkbox" id="mute" />Muet</label>
|
|
||||||
|
|
||||||
<div class="container disabled panel" id="chatview" data="fullchatview"
|
|
||||||
data-chans="yavsc" data-mutectl="mute" ></div>
|
|
||||||
|
|
||||||
@section scripts {
|
|
||||||
<!--Reference the autogenerated SignalR hub script. -->
|
|
||||||
<script src="~/api/signalr/hubs"></script>
|
|
||||||
<!-- SignalR script to update the chat page and send messages.-->
|
|
||||||
|
|
||||||
@if (!ViewBag.IsAuthenticated) { // Get the user name and store it to prepend to messages.
|
|
||||||
<script>
|
|
||||||
// var uname = prompt('Entrez votre nom:', '');
|
|
||||||
|
|
||||||
</script>
|
|
||||||
}
|
|
||||||
<script src="~/js/chat.js"></script>
|
|
||||||
|
|
||||||
}
|
|
@ -1,17 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Contact";
|
|
||||||
}
|
|
||||||
<h2>@ViewData["Title"].</h2>
|
|
||||||
<h3>@ViewData["Message"]</h3>
|
|
||||||
|
|
||||||
<address>
|
|
||||||
Paul Schneider<br>
|
|
||||||
2 Boulevard Aristide Briand -
|
|
||||||
92150 Suresnes (France)
|
|
||||||
<abbr title="Phone">P:</abbr> +33 6 51 14 15 64
|
|
||||||
</address>
|
|
||||||
|
|
||||||
<address>
|
|
||||||
<strong>Support:</strong> <a href="mailto:contact@pschneider.fr">contact@pschneider.fr</a><br />
|
|
||||||
<strong>Marketing:</strong> <a href="mailto:paul@pschneider.fr">paul@pschneider.fr</a>
|
|
||||||
</address>
|
|
@ -1,19 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Dash";
|
|
||||||
}
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<video id="videoPlayer" controls></video>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@section scripts {
|
|
||||||
<script src="~/js/dash.all.min.js"></script>
|
|
||||||
<script>
|
|
||||||
(function(){
|
|
||||||
var url = "https://dash.akamaized.net/envivio/EnvivioDash3/manifest.mpd";
|
|
||||||
var player = dashjs.MediaPlayer().create();
|
|
||||||
player.initialize(document.querySelector("#videoPlayer"), url, true);
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Home Page";
|
|
||||||
}
|
|
||||||
|
|
||||||
<div class="text-center">
|
|
||||||
<h1 class="display-4">Welcome</h1>
|
|
||||||
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
|
|
||||||
</div>
|
|
@ -1,6 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Privacy Policy";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
|
|
||||||
<p>Use this page to detail your site's privacy policy.</p>
|
|
@ -1,14 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = @SR["Confidentialité"]+" "+@SiteSettings.Value.Title;
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
|
|
||||||
<markdown>
|
|
||||||
## La confidentialité
|
|
||||||
|
|
||||||
À aucun moment, aucune adresse postale, aucune adresse e-mail ni aucun numéro de téléphone
|
|
||||||
ne sont transmis à personne. Seul le système et son [possesseur](/Home/Contact) a accès à ces informations.
|
|
||||||
|
|
||||||
De plus, le droit de retrait est permanent et sa mise en oeuvre [immédiate](/Account/Delete).
|
|
||||||
|
|
||||||
</markdown>
|
|
@ -1,17 +0,0 @@
|
|||||||
@{
|
|
||||||
ViewData["Title"] = "Todo (first)";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
<em>Linkmuse(trox)</em>
|
|
||||||
|
|
||||||
<markdown>
|
|
||||||
Les tags.
|
|
||||||
La librairie, les lives.
|
|
||||||
</markdown>
|
|
||||||
@{
|
|
||||||
ViewData["Title"] = "TODO";
|
|
||||||
}
|
|
||||||
<h1>@ViewData["Title"]</h1>
|
|
||||||
<em>Faster, stronger, shorter</em>
|
|
||||||
<markdown>
|
|
||||||
</markdown>
|
|
@ -1,76 +0,0 @@
|
|||||||
@{ ViewBag.Title = "video Chat"; }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<input type="file" accept="video/*;capture=camcorder" id="cam">
|
|
||||||
<!-- <input type="file" accept="image/*;capture=camera" >
|
|
||||||
<input type="file" accept="audio/*;capture=microphone"> -->
|
|
||||||
<video autoplay id="localvideo">
|
|
||||||
</video>
|
|
||||||
@section scripts
|
|
||||||
{
|
|
||||||
<script>
|
|
||||||
|
|
||||||
function readURL(input) {
|
|
||||||
if (input.files && input.files[0]) {
|
|
||||||
var reader = new FileReader();
|
|
||||||
|
|
||||||
reader.onload = function (e) {
|
|
||||||
$('#localvideo').attr('src', e.target.result);
|
|
||||||
}
|
|
||||||
|
|
||||||
reader.readAsDataURL(input.files[0]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$("#cam").change(function(){
|
|
||||||
readURL(this);
|
|
||||||
});
|
|
||||||
|
|
||||||
var errorCallback = function(e) {
|
|
||||||
console.log('Reeeejected!', e);
|
|
||||||
};
|
|
||||||
|
|
||||||
navigator.getUserMedia = navigator.getUserMedia ||
|
|
||||||
navigator.webkitGetUserMedia ||
|
|
||||||
navigator.mediaDevices.getUserMedia ||
|
|
||||||
navigator.mozGetUserMedia ||
|
|
||||||
navigator.msGetUserMedia;
|
|
||||||
|
|
||||||
// Not showing vendor prefixes.
|
|
||||||
navigator.mediaDevices.getUserMedia({video: true, audio: true},
|
|
||||||
function(localMediaStream) {
|
|
||||||
var video = document.querySelector('video');
|
|
||||||
video.src = window.URL.createObjectURL(localMediaStream);
|
|
||||||
|
|
||||||
// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.
|
|
||||||
// See crbug.com/110938.
|
|
||||||
video.onloadedmetadata = function(e) {
|
|
||||||
// Ready to go. Do some stuff.
|
|
||||||
};
|
|
||||||
}, errorCallback);
|
|
||||||
|
|
||||||
|
|
||||||
if (navigator.mediaDevices.getUserMedia) {
|
|
||||||
navigator.mediaDevices.getUserMedia({audio: true, video: false}, function(stream) {
|
|
||||||
if ("srcObject" in video) {
|
|
||||||
video.srcObject = "stream";
|
|
||||||
} else {
|
|
||||||
// Avoid using this in new browsers, as it is going away.
|
|
||||||
video.src = window.URL.createObjectURL(stream);
|
|
||||||
}
|
|
||||||
}, errorCallback);
|
|
||||||
} else {
|
|
||||||
video.src = $("#cam").attr('src'); // fallback.
|
|
||||||
}
|
|
||||||
|
|
||||||
$(document).ready(
|
|
||||||
function () {
|
|
||||||
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
}
|
|
@ -1,109 +0,0 @@
|
|||||||
<!doctype html>
|
|
||||||
<html lang="@System.Globalization.CultureInfo.CurrentUICulture.Name">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no" />
|
|
||||||
<link rel="icon" href="@SiteSettings.Value.FavIcon" asp-append-version="true" />
|
|
||||||
<title>@ViewData["Title"] - @SiteSettings.Value.Title</title>
|
|
||||||
<script src="~/js/jquery-2.2.4.js" ></script>
|
|
||||||
<link rel="stylesheet" href="~/css/main/bootstrap.css" />
|
|
||||||
<script src="~/js/bootstrap.js"></script>
|
|
||||||
<link rel="stylesheet" href="~/css/main/site.css" asp-append-version="true"/>
|
|
||||||
<link rel="stylesheet" href="~/css/main/jquery-ui.css" asp-append-version="true"/>
|
|
||||||
<link rel="stylesheet" title="Dark" href="~/css/dark/site.css" asp-append-version="true" />
|
|
||||||
<link rel="alternate stylesheet" title="Clear" href="~/css/clear/site.css" asp-append-version="true" />
|
|
||||||
<script src="~/js/jquery-ui.js" asp-append-version="true"></script>
|
|
||||||
<script src="~/js/jquery.signalR-2.2.1.js" asp-append-version="true"></script>
|
|
||||||
<script src="~/js/site.js" asp-append-version="true"></script>
|
|
||||||
<link rel="stylesheet" href="@Startup.SiteSetup.StyleSheet" asp-append-version="true"/>
|
|
||||||
|
|
||||||
@RenderSection("header", required: false)
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
|
|
||||||
<div class="container">
|
|
||||||
<div class="navbar-header">
|
|
||||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
|
||||||
<span class="sr-only">Toggle navigation</span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
<span class="icon-bar"></span>
|
|
||||||
</button>
|
|
||||||
<a asp-controller="Home" asp-action="Index" asp-route-id="" class="navbar-brand">
|
|
||||||
<img src="@SiteSettings.Value.Logo" alt="@SiteSettings.Value.Title" asp-append-version="true"/></a>
|
|
||||||
</div>
|
|
||||||
<div class="navbar-collapse collapse">
|
|
||||||
<ul class="nav navbar-nav">
|
|
||||||
@RenderSection("ctxmenu", required: false)
|
|
||||||
<li><a asp-controller="Blogspot" asp-action="Index" class="navbar-link">@SR["Blogs"]</a></li>
|
|
||||||
<li><a asp-controller="Home" asp-action="Chat" class="navbar-link">@SR["Chat"]</a></li>
|
|
||||||
<li><a asp-controller="Home" asp-action="Contact" class="navbar-link">@SR["Contact"]</a></li>
|
|
||||||
<li><a asp-controller="Home" asp-action="About" class="navbar-link">@SR["About"] @SiteSettings.Value.Title</a> </li>
|
|
||||||
<li class="dropdown">
|
|
||||||
<a class="dropdown-toggle navbar-link" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
|
||||||
<span> @System.Globalization.CultureInfo.CurrentUICulture.DisplayName </span>
|
|
||||||
<span class="caret"></span>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu">
|
|
||||||
<li><a onclick="setUiCult('fr')" style="cursor:pointer" >@SR["Français"]</a></li>
|
|
||||||
<li><a onclick="setUiCult('en')" style="cursor:pointer">@SR["Anglais"]</a></li>
|
|
||||||
<li><a onclick="setUiCult('pt')" style="cursor:pointer">@SR["Portugais"]</a></li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
@await Html.PartialAsync("_LoginPartial")
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
@if (ViewData ["Notify"] != null) {
|
|
||||||
foreach (Notification n in ViewData ["Notify"] as IEnumerable<Notification>) {
|
|
||||||
<div class="alert alert-info alert-dismissable">
|
|
||||||
<img src="~/images/Notifications/@(n.icon).png" style="max-height:3em; float: left; margin:1em;"/> <h2 markdown="@n.title"></h2>
|
|
||||||
<a class="close" data-dismiss="alert" aria-label="close" onclick="notifClick(@n.Id)">@((n.click_action==null)?SR["Fermer"]:SR[n.click_action])</a>
|
|
||||||
<markdown>@n.body</markdown>
|
|
||||||
</div>}
|
|
||||||
}
|
|
||||||
@RenderSection("subbanner", required: false)
|
|
||||||
<main class="container body-content" role="main">
|
|
||||||
@RenderBody()
|
|
||||||
</main>
|
|
||||||
<hr />
|
|
||||||
<footer>
|
|
||||||
<environment names="Development">
|
|
||||||
<p><em>Site de développement</em></p>
|
|
||||||
</environment>
|
|
||||||
<i>@SiteSettings.Value.Slogan</i>
|
|
||||||
<environment names="yavsc,zicmoove,lua,coiffure,freefield">
|
|
||||||
<script>
|
|
||||||
window.fbAsyncInit = function() {
|
|
||||||
FB.init({
|
|
||||||
appId : '552433071604577',
|
|
||||||
xfbml : true,
|
|
||||||
version : 'v2.5'
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
(function(d, s, id){
|
|
||||||
var js, fjs = d.getElementsByTagName(s)[0];
|
|
||||||
if (d.getElementById(id)) {return;}
|
|
||||||
js = d.createElement(s); js.id = id;
|
|
||||||
js.src = "//connect.facebook.net/fr_FR/sdk.js";
|
|
||||||
fjs.parentNode.insertBefore(js, fjs);
|
|
||||||
}(document, 'script', 'facebook-jssdk'));
|
|
||||||
</script>
|
|
||||||
<div style="float:right;"
|
|
||||||
data-ref="ZicMoove"
|
|
||||||
class="fb-like"
|
|
||||||
data-share="true"
|
|
||||||
data-width="300"
|
|
||||||
data-show-faces="true"
|
|
||||||
data-colorscheme="dark">
|
|
||||||
</div>
|
|
||||||
</environment>
|
|
||||||
|
|
||||||
<p class="small">Yavsc - Copyright © 2015 - 2019 Paul Schneider</p>
|
|
||||||
</footer>
|
|
||||||
@RenderSection("scripts", required: false)
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,75 +0,0 @@
|
|||||||
{
|
|
||||||
"Logging": {
|
|
||||||
"IncludeScopes": false,
|
|
||||||
"LogLevel": {
|
|
||||||
"Default": "Debug",
|
|
||||||
"System": "Information",
|
|
||||||
"Microsoft": "Information"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ConnectionStrings": {
|
|
||||||
"Default": "Server=[YOURSERVERNAME];Port=5432;Database=[YOURDBNAME];Username=[YOURDBUSERNAME];Password=[YOURDBPASSW];"
|
|
||||||
},
|
|
||||||
"Site": {
|
|
||||||
"Title": "Yavsc",
|
|
||||||
"Slogan": "Yavsc!",
|
|
||||||
"StyleSheet": "/css/default.css",
|
|
||||||
"Authority": "http://127.0.0.1:5000/",
|
|
||||||
"Owner": {
|
|
||||||
"Name": "[Site owner's name]",
|
|
||||||
"EMail": "[Site owner's e-mail address]"
|
|
||||||
},
|
|
||||||
"Admin": {
|
|
||||||
"Name": "[a name for a site admin]",
|
|
||||||
"EMail": "[an e-mail for a site admin]"
|
|
||||||
},
|
|
||||||
"Avatars": "Avatars",
|
|
||||||
"Quota": 200000000,
|
|
||||||
"Bills": "Bills",
|
|
||||||
"Blog": "Blog",
|
|
||||||
"TempDir": "Temp"
|
|
||||||
},
|
|
||||||
"Smtp": {
|
|
||||||
"Host": "[YOURSMTPHOST]",
|
|
||||||
"Port": 25,
|
|
||||||
"EnableSSL": false
|
|
||||||
},
|
|
||||||
"DataProtection": {
|
|
||||||
"Keys": {
|
|
||||||
"Dir": "DataProtection-Keys"
|
|
||||||
},
|
|
||||||
"RSAParamFile": "RSA-Params.json",
|
|
||||||
"ExpiresInHours": 168
|
|
||||||
},
|
|
||||||
"Authentication": {
|
|
||||||
"PayPal": {
|
|
||||||
"Mode": "[sandbox|production]",
|
|
||||||
"ClientId": "[Your PayPal REST API ClientId]",
|
|
||||||
"Secret": "[Your PayPal REST API Secret]"
|
|
||||||
},
|
|
||||||
"Google": {
|
|
||||||
"ApiKey": "[Your ApiKey]",
|
|
||||||
"ClientId": "[Your ClientId]",
|
|
||||||
"ClientSecret": "[Your ClientSecret]",
|
|
||||||
"ServiceAccount": {
|
|
||||||
"project_id": "[Yours]",
|
|
||||||
"private_key_id": "[Yours]",
|
|
||||||
"private_key": "-----[Yours]---\n",
|
|
||||||
"client_email": "[Yours]@appspot.gserviceaccount.com",
|
|
||||||
"client_id": "[Yours]",
|
|
||||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
|
||||||
"token_uri": "https://accounts.google.com/o/oauth2/token",
|
|
||||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
|
||||||
"client_x509_cert_url": "https://www41.googleapis.com/robot/v1/[Yours].com"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Facebook": {
|
|
||||||
"ClientId": "[Your ClientId]",
|
|
||||||
"ClientSecret": "[Your ClientSecret]"
|
|
||||||
},
|
|
||||||
"Twitter": {
|
|
||||||
"ClientId": "[Your ClientId]",
|
|
||||||
"ClientSecret": "[Your ClientSecret]"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
var notifClick =
|
|
||||||
function(nid) {
|
|
||||||
if (nid > 0) {
|
|
||||||
$.get('/api/dimiss/click/' + nid);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var setUiCult = function(lngspec) {
|
|
||||||
document.cookie = 'ASPNET_CULTURE=c=' + lngspec + '|uic=' + lngspec;
|
|
||||||
location.reload();
|
|
||||||
};
|
|
Loading…
Reference in New Issue