chat cx have a user name

This commit is contained in:
2017-03-22 03:31:29 +01:00
parent b0732b1c04
commit d878b9a52b
17 changed files with 306 additions and 275 deletions

View File

@ -42,6 +42,7 @@ namespace Yavsc
new Scope { Id = "frontoffice" , Description ="Your front office interface" }
};
public const string SshHeaderKey = "SSH";
private static readonly string[] GoogleScopes = { "openid", "profile", "email" };
public static readonly string[] GoogleCalendarScopes =

View File

@ -34,7 +34,9 @@ namespace Yavsc.Controllers
public async Task<IActionResult> Index(string id)
{
ViewBag.IsFromSecureProx = (Request.Headers.ContainsKey(Constants.SshHeaderKey))? Request.Headers[Constants.SshHeaderKey]=="on" : false ;
ViewBag.SecureHomeUrl = "https://"+Request.Headers["X-Forwarded-Host"];
ViewBag.SshHeaderKey = Request.Headers[Constants.SshHeaderKey];
var uid = User.GetUserId();
long [] clicked=null;
if (uid==null) {

View File

@ -1,7 +1,6 @@
using System;
using Microsoft.Data.Entity;
using Microsoft.Data.Entity.Infrastructure;
using Microsoft.Data.Entity.Metadata;
using Microsoft.Data.Entity.Migrations;
using Yavsc.Models;

View File

@ -1,5 +1,3 @@
using System;
using System.Collections.Generic;
using Microsoft.Data.Entity.Migrations;
namespace Yavsc.Migrations

View File

@ -1,8 +1,6 @@
using System;
using Microsoft.Data.Entity;
using Microsoft.Data.Entity.Infrastructure;
using Microsoft.Data.Entity.Metadata;
using Microsoft.Data.Entity.Migrations;
using Yavsc.Models;
namespace Yavsc.Migrations

View File

@ -293,7 +293,9 @@
<data name="Not Approuved"><value>Non approuvé</value></data>
<data name="NonValidee"><value>Non validée</value></data>
<data name="NonValide"><value>Non validé</value></data>
<data name="off"><value>inactif</value></data>
<data name="Offline"><value>Hors ligne</value></data>
<data name="on"><value>actif</value></data>
<data name="Online"><value>En ligne</value></data>
<data name="OnlyAuthorizedMayContact"><value>Seuls les utilisateurs authorisés peuvent contacter un préstataire par courrier.</value></data>
<data name="Password"><value>Mot de passe</value></data>

View File

@ -2,7 +2,7 @@
<h2>Chat </h2>
<label><input type="checkbox" id="mute" />Muet</label>
<div class="container">
<div class="container" id="chatview" class="disabled" >
<input type="hidden" id="displayname" />
<div class="panel">
<em>Salons</em>
@ -15,7 +15,7 @@
</div>
<ul id="discussion">
</ul>
<div id="targets" class="disabled" >
<div id="targets" >
<div id="sendmessagebox">
<div class="col-md-10">
<div class="row">

View File

@ -63,4 +63,25 @@
</a>
</div>
}
@if (!ViewBag.IsFromSecureProx) {
<div class="alert alert-warning alert-dismissable">
<markdown>
# Alerte, alerte!
Votre connexion n'est pas sécurisée.
Un accés sécurisé est disponible, mais le certificat qui le chiffre n'est pas certifié par Google, ni aucune
autre autorité de certification reconnue. C'est un certificat auto signé.
Pour l'utiliser, vous devrez ajouter une exception pour ce certificat (p-e après
avoir cliqué sur le lien "avancé" de l'alerte'), et continuer votre navigation
malgré ce défaut de validation de la sécurité associée.
Prennez soin d'ajouter cette exception de manière définitive, je ne compte pas me séparer de ce certificat de si tôt.
---
*Voilà*, c'est comme ça.'
</markdown>
<a href="@ViewBag.SecureHomeUrl" aria-label="close" class="close" >Lien vers le site sécurisé</a>
</div>
}

View File

@ -51,8 +51,7 @@
@if (ViewData ["Notify"] != null) {
foreach (Notification n in ViewData ["Notify"] as IEnumerable<Notification>) {
<div class="alert alert-info alert-dismissable">
<h1>@n.title</h1><em></em>
@n.body
<h1>@n.title</h1>@n.body
<a class="close" data-dismiss="alert" aria-label="close" onclick="notifClick(@n.Id)">@((n.click_action==null)?SR["Fermer"]:SR[n.click_action])</a>
</div>
}

23
Yavsc/Yavsc.csproj Normal file
View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0-preview-20161123-03" />
<PackageReference Include="xunit" Version="2.2.0-beta4-build3444" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0-beta4-build1194" />
<Content Include="Models\Workflow\CommandForm.cs" />
<Content Include="Models\Workflow\RdvQuery.cs" />
<Content Include="Views\Account\Authorize.cshtml" />
<Content Include="Views\Account\Lockout.cshtml" />
<Content Include="Views\Account\ResetPassword.cshtml" />
<Content Include="project.lock.json" />
<Content Include="project.json" />
<Content Include="Controllers\HomeController.cs" />
<Content Include="Startup\Startup.cs" />
<Content Include="Controllers\SIRENExceptionsController.cs" />
<Content Include="Startup\Startup.OAuth.cs" />
</ItemGroup>
</Project>

View File

@ -12,6 +12,10 @@
"compilationOptions": {
"emitEntryPoint": true
},
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"compile": [
"*.cs"
],
@ -28,7 +32,7 @@
"TRACE"
],
"optimize": false,
"debugType": "full"
"debugType": "portable"
}
},
"Release": {
@ -50,8 +54,8 @@
"EntityFramework.Core": "7.0.0-rc1-*",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-*",
"EntityFramework.Relational": "7.0.0-rc1-*",
"EntityFramework7.Npgsql": "3.1.0-*",
"EntityFramework7.Npgsql.Design": "3.1.0-*",
"EntityFramework7.Npgsql": "3.1.0-rc1-*",
"EntityFramework7.Npgsql.Design": "3.1.0-rc1-*",
"Google.Apis.Core": "1.11.1",
"Google.Apis": "1.11.1",
"MailKit": "1.3.0-beta7",
@ -73,11 +77,11 @@
"Microsoft.AspNet.SignalR.JS": "2.2.1",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-*",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-*",
"Microsoft.AspNet.WebSockets.Server": "1.0.0-rc1-final",
"Microsoft.AspNet.WebSockets.Server": "1.0.0-*",
"Microsoft.Extensions.Configuration.Abstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-*",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-*",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-*",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
@ -89,12 +93,11 @@
"Microsoft.Extensions.CodeGeneration": "1.0.0-rc1-final",
"Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta4",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Binder": "1.0.0-beta8",
"Microsoft.Framework.Configuration.Json": "1.0.0-beta8",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0-*",
"Microsoft.Framework.Configuration.Abstractions": "1.0.0-*",
"Microsoft.Framework.Configuration.Binder": "1.0.0-*",
"Microsoft.Framework.Configuration.Json": "1.0.0-*",
"Microsoft.AspNet.Session": "1.0.0-rc1-final",
"Microsoft.NETCore.Platforms": "1.0.1-beta-23516",
"Microsoft.AspNet.Web.Optimization": "1.1.3",
"Microsoft.Extensions.WebEncoders.Core": "1.0.0-rc1-final",
"Microsoft.Extensions.Options": "0.0.1-alpha",
@ -110,7 +113,8 @@
"YavscLib": "1.0.0-*",
"Extensions.AspNet.Authentication.Instagram": "1.0.0-t150809211713",
"PayPalMerchantSDK": "2.16.204",
"Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final"
"Microsoft.AspNet.Http.Extensions": "1.0.0-rc1-final",
"Microsoft.DiaSymReader.Native": "1.5.0"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --server.urls http://*:5000",
@ -151,9 +155,5 @@
"prepublish": "gulp min",
"postpublish": "echo \" . ./contrib/postPublish.sh # to push in prod.\""
},
"embed": "Views/**/*.cshtml",
"buildOptions": {
"warningsAsErrors": false,
"emitEntryPoint": true
}
"embed": "Views/**/*.cshtml"
}

View File

@ -217,12 +217,12 @@
"Zlib.Portable.Signed": "1.11.0"
},
"compile": {
"lib/net45/Google.Apis.dll": {},
"lib/net45/Google.Apis.PlatformServices.dll": {}
"lib/net45/Google.Apis.PlatformServices.dll": {},
"lib/net45/Google.Apis.dll": {}
},
"runtime": {
"lib/net45/Google.Apis.dll": {},
"lib/net45/Google.Apis.PlatformServices.dll": {}
"lib/net45/Google.Apis.PlatformServices.dll": {},
"lib/net45/Google.Apis.dll": {}
}
},
"Google.Apis.Core/1.11.1": {
@ -1525,6 +1525,9 @@
"lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {}
}
},
"Microsoft.DiaSymReader.Native/1.5.0": {
"type": "package"
},
"Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final": {
"type": "package",
"dependencies": {
@ -2449,15 +2452,6 @@
"lib/net451/Microsoft.Net.WebSockets.dll": {}
}
},
"Microsoft.NETCore.Platforms/1.0.1-beta-23516": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Targets": "1.0.1-beta-23516"
}
},
"Microsoft.NETCore.Targets/1.0.1-beta-23516": {
"type": "package"
},
"Microsoft.Owin/2.1.0": {
"type": "package",
"dependencies": {
@ -3075,12 +3069,12 @@
"Zlib.Portable.Signed": "1.11.0"
},
"compile": {
"lib/net45/Google.Apis.dll": {},
"lib/net45/Google.Apis.PlatformServices.dll": {}
"lib/net45/Google.Apis.PlatformServices.dll": {},
"lib/net45/Google.Apis.dll": {}
},
"runtime": {
"lib/net45/Google.Apis.dll": {},
"lib/net45/Google.Apis.PlatformServices.dll": {}
"lib/net45/Google.Apis.PlatformServices.dll": {},
"lib/net45/Google.Apis.dll": {}
}
},
"Google.Apis.Core/1.11.1": {
@ -4383,6 +4377,9 @@
"lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {}
}
},
"Microsoft.DiaSymReader.Native/1.5.0": {
"type": "package"
},
"Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final": {
"type": "package",
"dependencies": {
@ -5307,15 +5304,6 @@
"lib/net451/Microsoft.Net.WebSockets.dll": {}
}
},
"Microsoft.NETCore.Platforms/1.0.1-beta-23516": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Targets": "1.0.1-beta-23516"
}
},
"Microsoft.NETCore.Targets/1.0.1-beta-23516": {
"type": "package"
},
"Microsoft.Owin/2.1.0": {
"type": "package",
"dependencies": {
@ -5933,12 +5921,12 @@
"Zlib.Portable.Signed": "1.11.0"
},
"compile": {
"lib/net45/Google.Apis.dll": {},
"lib/net45/Google.Apis.PlatformServices.dll": {}
"lib/net45/Google.Apis.PlatformServices.dll": {},
"lib/net45/Google.Apis.dll": {}
},
"runtime": {
"lib/net45/Google.Apis.dll": {},
"lib/net45/Google.Apis.PlatformServices.dll": {}
"lib/net45/Google.Apis.PlatformServices.dll": {},
"lib/net45/Google.Apis.dll": {}
}
},
"Google.Apis.Core/1.11.1": {
@ -7241,6 +7229,9 @@
"lib/net45/Microsoft.CodeAnalysis.CSharp.dll": {}
}
},
"Microsoft.DiaSymReader.Native/1.5.0": {
"type": "package"
},
"Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final": {
"type": "package",
"dependencies": {
@ -8165,15 +8156,6 @@
"lib/net451/Microsoft.Net.WebSockets.dll": {}
}
},
"Microsoft.NETCore.Platforms/1.0.1-beta-23516": {
"type": "package",
"dependencies": {
"Microsoft.NETCore.Targets": "1.0.1-beta-23516"
}
},
"Microsoft.NETCore.Targets/1.0.1-beta-23516": {
"type": "package"
},
"Microsoft.Owin/2.1.0": {
"type": "package",
"dependencies": {
@ -9720,6 +9702,22 @@
"ThirdPartyNotices.rtf"
]
},
"Microsoft.DiaSymReader.Native/1.5.0": {
"type": "package",
"sha512": "Zs1Cm0z1G9QLkKZ/k9O2/z47fN84ZbhWCrdBYv0ArC2lU4H1pOTkjah6RgCm/ZnS8ZdOMFC+We6shG6SCRaXeg==",
"files": [
"build/Microsoft.DiaSymReader.Native.props",
"Microsoft.DiaSymReader.Native.1.5.0.nupkg",
"Microsoft.DiaSymReader.Native.1.5.0.nupkg.sha512",
"Microsoft.DiaSymReader.Native.nuspec",
"runtimes/win/native/Microsoft.DiaSymReader.Native.amd64.dll",
"runtimes/win/native/Microsoft.DiaSymReader.Native.arm.dll",
"runtimes/win/native/Microsoft.DiaSymReader.Native.x86.dll",
"runtimes/win8-arm/native/Microsoft.DiaSymReader.Native.arm.dll",
"runtimes/win-x64/native/Microsoft.DiaSymReader.Native.amd64.dll",
"runtimes/win-x86/native/Microsoft.DiaSymReader.Native.x86.dll"
]
},
"Microsoft.Dnx.Compilation.Abstractions/1.0.0-rc1-final": {
"type": "package",
"sha512": "kg3kR7H12Bs46TiuF7YT8A3SNXehhBcwsArIMQIH2ecXGkg5MPWDl2OR6bnQu6k0OMu9QUiv1oiwC9yU7rHWfw==",
@ -9888,7 +9886,6 @@
},
"Microsoft.Extensions.Configuration/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "2ayWzqMVGWjr8o8bOSnIsyQbi9sLz9Ya8+YM+9tM/ivSnLHuN7TNHNfJv4jTyRZvoOafdh5Ivlc/OdmsZPXlQQ==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.Configuration.dll",
@ -9912,7 +9909,6 @@
"lib/net451/Microsoft.Extensions.Configuration.Abstractions.xml",
"lib/netcore50/Microsoft.Extensions.Configuration.Abstractions.dll",
"lib/netcore50/Microsoft.Extensions.Configuration.Abstractions.xml",
"Microsoft.Extensions.Configuration.Abstractions.1.0.0-rc1-final.nupkg",
"Microsoft.Extensions.Configuration.Abstractions.1.0.0-rc1-final.nupkg.sha512",
"Microsoft.Extensions.Configuration.Abstractions.nuspec"
]
@ -9964,7 +9960,6 @@
},
"Microsoft.Extensions.Configuration.FileExtensions/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "w2x8nqrp2YUgNBJuZ3SUmexBtjaoZFzCQtObRTjrE4GWceFEmaLZtXFvs4n9IgRQkOqqCza7Fv7NXnD9m2emjQ==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.Configuration.FileExtensions.dll",
@ -9995,7 +9990,6 @@
},
"Microsoft.Extensions.Configuration.Json/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "9v+RpswnXEpAP5mx8J1w1yZZT2pPtMBTnOAauNh2c9ju5Dhq3ljxvbm0S9j6o5F/EFSLlbfN/brxTJN3qa/upw==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.Configuration.Json.dll",
@ -10011,7 +10005,6 @@
},
"Microsoft.Extensions.Configuration.UserSecrets/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "m2WaXGNWRrbpWquen8PS1oB8GdG5tCSWhXAmFbhacj1mhz3ojFy0TDUZPbx87TX2ZQNNp6MYfzO5Z73hlM47Bw==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.Configuration.UserSecrets.dll",
@ -10055,7 +10048,6 @@
},
"Microsoft.Extensions.FileSystemGlobbing/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "7N9IPDU0T1uQBj6hobeGNqiEd+Cuu6RHJ0RcwkUvzTsLq8Vf2Sc72+HEAICTw1CTRXHgW49Zr47PvO0QPxI/5g==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.FileSystemGlobbing.dll",
@ -10168,7 +10160,6 @@
},
"Microsoft.Extensions.Logging.TraceSource/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "wIxGpFxTKI+xvh/aVNCUh0tUEq24xmRW/OWpOJrE2c3QrIJJ6vSpvwGJ7cmgvMWK2Ul+HDd9Wxrcd0tUa8rHhg==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.Logging.TraceSource.dll",
@ -10235,7 +10226,6 @@
},
"Microsoft.Extensions.Primitives/1.0.0-rc1-final": {
"type": "package",
"serviceable": true,
"sha512": "oHWqBARJveyM7LctuqQqvsTC58hxoq0gGnHr6Qsxie71LIkZpfE21IklhSLOsqmv4QIpes/G6k1vZbAQ+cC/nw==",
"files": [
"lib/dotnet5.4/Microsoft.Extensions.Primitives.dll",
@ -10498,26 +10488,6 @@
"Microsoft.Net.WebSockets.nuspec"
]
},
"Microsoft.NETCore.Platforms/1.0.1-beta-23516": {
"type": "package",
"sha512": "YPVzF1z1qhI3am4/I3EWEjn5hxm1wnIbHTRp6nrfKOoj0NBGtubVTTQmC3l5VZIbwmygiMVbWdbFhzJwWJXNEw==",
"files": [
"Microsoft.NETCore.Platforms.1.0.1-beta-23516.nupkg",
"Microsoft.NETCore.Platforms.1.0.1-beta-23516.nupkg.sha512",
"Microsoft.NETCore.Platforms.nuspec",
"runtime.json"
]
},
"Microsoft.NETCore.Targets/1.0.1-beta-23516": {
"type": "package",
"sha512": "11J+6atPf0UYQnpr8aKy6Xx+O9rAf/46OyODFY8gFbKkW/PVIh7iSHziukpvWZ+hI/ieFklGMopDU1MiUELutQ==",
"files": [
"Microsoft.NETCore.Targets.1.0.1-beta-23516.nupkg",
"Microsoft.NETCore.Targets.1.0.1-beta-23516.nupkg.sha512",
"Microsoft.NETCore.Targets.nuspec",
"runtime.json"
]
},
"Microsoft.Owin/2.1.0": {
"type": "package",
"sha512": "lk0kK64mlmcmtWX8YOYkZsnZKDoGEzMZhe8e1bcP+FFcgD4f2QfKwvu5Z8Bh8WS0VO7Rgk+DJ0hwW0k+S/UGMg==",
@ -10796,6 +10766,7 @@
},
"System.Diagnostics.DiagnosticSource/4.0.0-beta-23516": {
"type": "package",
"serviceable": true,
"sha512": "0uDR/UOmFCNPDCyHEPHhCrk6c1iRnDp00YqwSZ8Qf5aaaJjm4WXnf4Q9xZw4OoApsSiODSypDMdpQU24IxR16A==",
"files": [
"lib/dotnet5.2/System.Diagnostics.DiagnosticSource.dll",
@ -11020,6 +10991,7 @@
},
"System.Numerics.Vectors/4.1.1-beta-23516": {
"type": "package",
"serviceable": true,
"sha512": "FCYCEjc3BXBTpVZTxMqf2m/sGYyDzLwICy5lNKgZzT8WfshJhsTGjJuETwsh1Cwi6bksw9YiTB6yeeWBBJDnTA==",
"files": [
"lib/dotnet5.4/System.Numerics.Vectors.dll",
@ -11172,7 +11144,6 @@
},
"System.Resources.ResourceManager/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "qmqeZ4BJgjfU+G2JbrZt4Dk1LsMxO4t+f/9HarNY6w8pBgweO6jT+cknUH7c3qIrGvyUqraBhU45Eo6UtA0fAw==",
"files": [
"lib/DNXCore50/System.Resources.ResourceManager.dll",
@ -11521,8 +11492,8 @@
"EntityFramework.Core >= 7.0.0-rc1-*",
"EntityFramework.MicrosoftSqlServer >= 7.0.0-rc1-*",
"EntityFramework.Relational >= 7.0.0-rc1-*",
"EntityFramework7.Npgsql >= 3.1.0-*",
"EntityFramework7.Npgsql.Design >= 3.1.0-*",
"EntityFramework7.Npgsql >= 3.1.0-rc1-*",
"EntityFramework7.Npgsql.Design >= 3.1.0-rc1-*",
"Google.Apis.Core >= 1.11.1",
"Google.Apis >= 1.11.1",
"MailKit >= 1.3.0-beta7",
@ -11544,11 +11515,11 @@
"Microsoft.AspNet.SignalR.JS >= 2.2.1",
"Microsoft.AspNet.StaticFiles >= 1.0.0-rc1-*",
"Microsoft.AspNet.Tooling.Razor >= 1.0.0-rc1-*",
"Microsoft.AspNet.WebSockets.Server >= 1.0.0-rc1-final",
"Microsoft.AspNet.WebSockets.Server >= 1.0.0-*",
"Microsoft.Extensions.Configuration.Abstractions >= 1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions >= 1.0.0-rc1-*",
"Microsoft.Extensions.Configuration.Json >= 1.0.0-rc1-*",
"Microsoft.Extensions.Configuration.UserSecrets >= 1.0.0-rc1-*",
"Microsoft.Extensions.Configuration.FileProviderExtensions >= 1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json >= 1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.UserSecrets >= 1.0.0-rc1-final",
"Microsoft.Extensions.Logging >= 1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console >= 1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug >= 1.0.0-rc1-final",
@ -11560,12 +11531,11 @@
"Microsoft.Extensions.CodeGeneration >= 1.0.0-rc1-final",
"Microsoft.Extensions.PlatformAbstractions >= 1.0.0-rc1-final",
"Microsoft.Extensions.CodeGenerators.Mvc >= 1.0.0-rc1-final",
"Microsoft.Framework.ConfigurationModel.Json >= 1.0.0-beta4",
"Microsoft.Framework.Configuration.Abstractions >= 1.0.0-beta8",
"Microsoft.Framework.Configuration.Binder >= 1.0.0-beta8",
"Microsoft.Framework.Configuration.Json >= 1.0.0-beta8",
"Microsoft.Framework.ConfigurationModel.Json >= 1.0.0-*",
"Microsoft.Framework.Configuration.Abstractions >= 1.0.0-*",
"Microsoft.Framework.Configuration.Binder >= 1.0.0-*",
"Microsoft.Framework.Configuration.Json >= 1.0.0-*",
"Microsoft.AspNet.Session >= 1.0.0-rc1-final",
"Microsoft.NETCore.Platforms >= 1.0.1-beta-23516",
"Microsoft.AspNet.Web.Optimization >= 1.1.3",
"Microsoft.Extensions.WebEncoders.Core >= 1.0.0-rc1-final",
"Microsoft.Extensions.Options >= 0.0.1-alpha",
@ -11581,7 +11551,8 @@
"YavscLib >= 1.0.0-*",
"Extensions.AspNet.Authentication.Instagram >= 1.0.0-t150809211713",
"PayPalMerchantSDK >= 2.16.204",
"Microsoft.AspNet.Http.Extensions >= 1.0.0-rc1-final"
"Microsoft.AspNet.Http.Extensions >= 1.0.0-rc1-final",
"Microsoft.DiaSymReader.Native >= 1.5.0"
],
"DNX,Version=v4.5.1": [
"fx/System.Drawing >= 4.0.0"

View File

@ -114,7 +114,13 @@ select,
-webkit-transform: initial;
transform: initial;
}
.container {
-webkit-transition: background-color 2s color 1s;
-moz-transition: background-color 2s color 1s;
transition: background-color 2s color 1s;
}
.disabled {
color: #999;
background-color: #555;
}
/* Set widths on image and video, since otherwise they use their native resolution */

View File

@ -1 +1 @@
.discussion,.notif,.pv{font-family:monospace}.smalltofhol,tr.visiblepost{max-height:3em}.blog a:active,.blog a:hover,a:active,a:hover{outline:0}#discussion,.blogphoto{float:left}.smalltofhol{max-width:3em;float:left;margin:.5em}.price,.total{font-weight:700;padding:.2em;margin:.2em}.price{font-size:x-large;border:2px solid #000;border-radius:1em}.total{font-size:xx-large;background-color:#f8f;border:3px solid #000;border-radius:1em}.blog,.panel{padding:1em}.blog a{font-weight:900}.discussion{color:#000}.notif{color:#006}.pv{color:#251;font-style:bold}#targets{display:block}tr.hiddenpost{background-color:#888;font-size:smaller;max-height:2em}a.bloglink{font-weight:700;text-shadow:0 0 8px #000}a{font-weight:900}.panel{display:inline-block;margin:1em;color:#000;background-color:inherit;border:1px solid #000}button,input,select,textarea{background-color:#bbb;color:#000}.jumbotron{padding:.5em}.carousel .item .btn{-webkit-transition:-webkit-transform 2s;transition:transform 2s;transform:scale3d(0,0,0);-webkit-transform:scale3d(0,0,0)}.carousel .active .btn{-webkit-transform:initial;transform:initial}.disabled{background-color:#555}.carousel-caption-s p{font-family:jubilat;font-weight:600;font-size:large;line-height:1.1;text-decoration:overline;text-decoration-line:overline;text-shadow:3px 3px 7px #000;-webkit-text-shadow:inset 0 3px 5px #000;color:#000;margin:.5em;padding:.5em;animation:mymove 3s infinite;background-color:rgba(256,256,256,.6)}.carousel-caption-s{right:3em;top:1em;left:3em;z-index:10;padding-top:20px;padding-bottom:20px;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.6);min-height:16em;overflow:auto}.carousel-inner .item{padding-left:15%;padding-right:15%}.carousel-indicators{position:absolute;z-index:15;padding:0;text-align:center;list-style:none;top:.1em;height:1em}main.container{padding-right:1em;padding-left:1em;margin-left:1em;margin-right:1em}@-webkit-keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}@keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}ul.actiongroup li{display:inline}ul.actiongroup li a:hover{background-color:rgba(200,200,200,.6);color:#400}.display-field{font-kerning:none;display:inline-flex;color:#008}.display-label{font-family:'Lucida Sans','Lucida Sans Regular','Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif;font-stretch:condensed;display:inline-flex;color:#444;background-color:#210912}footer{vertical-align:bottom;padding:1.5em;color:grey;font-weight:bolder;font-size:x-small}.meta{color:#444;font-style:italic;font-size:smaller}.activity{font-family:fantasy}.blogtitle{display:inline-block;font-size:x-large}.blogphoto{margin:1em}
.discussion,.notif,.pv{font-family:monospace}.smalltofhol,tr.visiblepost{max-height:3em}.blog a:active,.blog a:hover,a:active,a:hover{outline:0}#discussion,.blogphoto{float:left}.smalltofhol{max-width:3em;float:left;margin:.5em}.price,.total{font-weight:700;padding:.2em;margin:.2em}.price{font-size:x-large;border:2px solid #000;border-radius:1em}.total{font-size:xx-large;background-color:#f8f;border:3px solid #000;border-radius:1em}.blog,.panel{padding:1em}.blog a{font-weight:900}.discussion{color:#000}.notif{color:#006}.pv{color:#251;font-style:bold}#targets{display:block}tr.hiddenpost{background-color:#888;font-size:smaller;max-height:2em}a.bloglink{font-weight:700;text-shadow:0 0 8px #000}a{font-weight:900}.panel{display:inline-block;margin:1em;color:#000;background-color:inherit;border:1px solid #000}button,input,select,textarea{background-color:#bbb;color:#000}.jumbotron{padding:.5em}.carousel .item .btn{-webkit-transition:-webkit-transform 2s;transition:transform 2s;transform:scale3d(0,0,0);-webkit-transform:scale3d(0,0,0)}.carousel .active .btn{-webkit-transform:initial;transform:initial}.container{-webkit-transition:background-color 2s color 1s;-moz-transition:background-color 2s color 1s;transition:background-color 2s color 1s}.disabled{color:#999;background-color:#555}.carousel-caption-s p{font-family:jubilat;font-weight:600;font-size:large;line-height:1.1;text-decoration:overline;text-decoration-line:overline;text-shadow:3px 3px 7px #000;-webkit-text-shadow:inset 0 3px 5px #000;color:#000;margin:.5em;padding:.5em;animation:mymove 3s infinite;background-color:rgba(256,256,256,.6)}.carousel-caption-s{right:3em;top:1em;left:3em;z-index:10;padding-top:20px;padding-bottom:20px;text-align:center;text-shadow:0 4px 8px rgba(0,0,0,.6);min-height:16em;overflow:auto}.carousel-inner .item{padding-left:15%;padding-right:15%}.carousel-indicators{position:absolute;z-index:15;padding:0;text-align:center;list-style:none;top:.1em;height:1em}main.container{padding-right:1em;padding-left:1em;margin-left:1em;margin-right:1em}@-webkit-keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}@keyframes mymove{from,to{text-decoration-color:red}50%{text-decoration-color:#00f}}ul.actiongroup li{display:inline}ul.actiongroup li a:hover{background-color:rgba(200,200,200,.6);color:#400}.display-field{font-kerning:none;display:inline-flex;color:#008}.display-label{font-family:'Lucida Sans','Lucida Sans Regular','Lucida Grande','Lucida Sans Unicode',Geneva,Verdana,sans-serif;font-stretch:condensed;display:inline-flex;color:#444;background-color:#210912}footer{vertical-align:bottom;padding:1.5em;color:grey;font-weight:bolder;font-size:x-small}.meta{color:#444;font-style:italic;font-size:smaller}.activity{font-family:fantasy}.blogtitle{display:inline-block;font-size:x-large}.blogphoto{margin:1em}

View File

@ -1,179 +1,184 @@
var chatinit = function() {
+(function ($) {
var pvuis
var pvuis;
var audio = new Audio('/sounds/bell.mp3');
var audio = new Audio('/sounds/bell.mp3')
function addULI(uname, cxids)
{
$('<li class="user"><button><img src="/Avatars/' + uname + '.xs.png"> ' + uname + '</button></li>')
.data("name", uname)
.data("cxids", cxids)
.css('cursor', 'pointer')
.click(function () { setPrivate(this); })
.appendTo('#userlist')
}
function addULI (uname, cxids) {
$('<li class="user"><button><img src="/Avatars/' + uname + '.xs.png"> ' + uname + '</button></li>')
.data('name', uname)
.data('cxids', cxids)
.css('cursor', 'pointer')
.click(function () { setPrivate(this); })
.appendTo('#userlist')
}
function getUsers() {
$('#userlist').empty();
$('#to').empty();
$.get("/api/chat/users").done(
function (users) {
$.each(users, function () {
var user = this;
var existent = $('#userlist li').filterByData("name", user.UserName);
if (existent.length > 0) existent.remove();
var cxids = [];
$.each(user.Connections, function () {
cxids.push(this.ConnectionId);
});
addULI(user.UserName,cxids)
});
}
);
};
function getUsers () {
$('#userlist').empty()
$('#to').empty()
$.get('/api/chat/users').done(
function (users) {
$.each(users, function () {
var user = this
var existent = $('#userlist li').filterByData('name', user.UserName)
if (existent.length > 0) existent.remove()
var cxids = []
$.each(user.Connections, function () {
cxids.push(this.ConnectionId)
})
addULI(user.UserName, cxids)
})
}
)
}
function onCx() {
setTimeout(function () {
getUsers();
},120),
$('#targets').removeClass('disabled')
};
function onDisCx () {
$('#targets').addClass('disabled');
};
// This optional function html-encodes messages for display in the page.
function htmlEncode(value) {
var encodedValue = $('<div />').text(value).html();
return encodedValue;
}
function onCx () {
setTimeout(function () {
getUsers()
}, 120),
$('#chatview').removeClass('disabled')
$('#sendmessage').prop('disabled',false);
$('#sendpv').prop('disabled',false);
}
function onDisCx () {
$('#chatview').addClass('disabled');
$('#sendmessage').prop('disabled',true);
$('#sendpv').prop('disabled',true);
var setPrivate = function (li) {
$("#sendmessagebox").addClass("hidden");
$("#sendpvbox").removeClass("hidden");
pvuis = { CXs: $(li).data("cxids"), UserName: $(li).data("name") };
$('#sendpvdest').html(pvuis.UserName)
$('#pv').focus();
}
var setPublic = function () {
$("#sendmessagebox").removeClass("hidden");
$("#sendpvbox").addClass("hidden");
$('#message').focus();
}
$('#pubChan').css('cursor', 'pointer');
$('#pubChan').click(setPublic);
setPublic();
// Reference the auto-generated proxy for the hub.
var chat = $.connection.chatHub;
// Create a function that the hub can call back to display messages.
chat.client.addMessage = function (name, message) {
// Add the message to the page.
$('#discussion').append('<li class="discussion"><strong>' + htmlEncode(name)
+ '</strong>: ' + htmlEncode(message) + '</li>')
};
chat.client.addPV = function (name, message) {
if (!$("#mute").prop('checked'))
{
audio.play();
}
// Add the pv to the page.
$('#discussion').append('<li class="pv"><strong>' + htmlEncode(name)
+ '</strong>: ' + htmlEncode(message) + '</li>')
};
$.fn.filterByData = function (prop, val) {
return this.filter(
function () { return $(this).data(prop) == val; }
);
}
}
// This optional function html-encodes messages for display in the page.
function htmlEncode (value) {
var encodedValue = $('<div />').text(value).html()
return encodedValue
}
var onUserDisconnected = function (cxid) {
$('#userlist li').filter(function () {
var nids = $(this).data("cxids").filter(function () {
return $(this) !== cxid
});
if (nids.Length == 0) $(this).remove();
else $(this).data("cxids", nids)
});
};
var onUserConnected = function (cxid, username) {
var connected = $('#userlist li').filterByData("name", username);
if (connected.length > 0) {
var ids = connected.data("cxids");
ids.push(cxid);
connected.data("cxids", ids)
} else {
addULI(username, [cxid])
}
};
chat.client.notify = function (tag, message, data) {
if (data) {
// Add the pv to the page.
var setPrivate = function (li) {
$('#sendmessagebox').addClass('hidden')
$('#sendpvbox').removeClass('hidden')
pvuis = { CXs: $(li).data('cxids'), UserName: $(li).data('name') }
$('#sendpvdest').html(pvuis.UserName)
$('#pv').focus()
}
var setPublic = function () {
$('#sendmessagebox').removeClass('hidden')
$('#sendpvbox').addClass('hidden')
$('#message').focus()
}
$('#pubChan').css('cursor', 'pointer')
$('#pubChan').click(setPublic)
setPublic()
// Reference the auto-generated proxy for the hub.
var chat = $.connection.chatHub
// Create a function that the hub can call back to display messages.
chat.client.addMessage = function (name, message) {
// Add the message to the page.
$('#discussion').append('<li class="discussion"><strong>' + htmlEncode(name)
+ '</strong>: ' + htmlEncode(message) + '</li>')
}
chat.client.addPV = function (name, message) {
if (!$('#mute').prop('checked')) {
audio.play()
}
// Add the pv to the page.
$('#discussion').append('<li class="pv"><strong>' + htmlEncode(name)
+ '</strong>: ' + htmlEncode(message) + '</li>')
}
$.fn.filterByData = function (prop, val) {
return this.filter(
function () { return $(this).data(prop) == val; }
)
}
if (tag === 'connected') {
onUserConnected(message, data);
$('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
+ '</i> ' + htmlEncode(data) + '</li>')
}
else if (tag === 'disconnected') {
onUserDisconnected(message, data);
$('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
+ '</i> ' + htmlEncode(data) + '</li>')
}
else {
$('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
+ '</i> ' + htmlEncode(message) + ' : ' + htmlEncode(data) + '</li>')
}
}
};
var onUserDisconnected = function (cxid) {
$('#userlist li').filter(function () {
var nids = $(this).data('cxids').filter(function () {
return $(this) !== cxid
})
if (nids.Length == 0) $(this).remove()
else $(this).data('cxids', nids)
})
}
var onUserConnected = function (cxid, username) {
var connected = $('#userlist li').filterByData('name', username)
if (connected.length > 0) {
var ids = connected.data('cxids')
ids.push(cxid)
connected.data('cxids', ids)
} else {
addULI(username, [cxid])
}
}
chat.client.notify = function (tag, message, data) {
if (data) {
// Add the pv to the page.
var sendMessage = function () {
chat.server.send($('#displayname').val(), $('#message').val());
// Clear text box and reset focus for next comment.
$('#message').val('')
};
if (tag === 'connected') {
onUserConnected(message, data)
$('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
+ '</i> ' + htmlEncode(data) + '</li>')
}
else if (tag === 'disconnected') {
onUserDisconnected(message, data)
$('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
+ '</i> ' + htmlEncode(data) + '</li>')
}else {
$('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
+ '</i> ' + htmlEncode(message) + ' : ' + htmlEncode(data) + '</li>')
}
}
}
var sendPV = function () {
var msg = $('#pv').val();
// Call the Send method on the hub.
$.each(pvuis.CXs, function () {
chat.server.sendPV(this, msg);
});
$('#discussion').append('<li class="pv">' + htmlEncode(pvuis.UserName)
+ '<< ' + htmlEncode(msg) +'</li>');
// Clear text box and reset focus for next comment.
$('#pv').val('');
}
var sendMessage = function () {
chat.server.send($('#displayname').val(), $('#message').val())
// Clear text box and reset focus for next comment.
$('#message').val('')
}
// Start the connection.
$.connection.hub.start().done(function () {
onCx();
$('#sendmessage').click(function () {
// Call the Send method on the hub.
sendMessage();
$('#message').focus();
});
$("#message").keydown(function (event) {
if (event.which == 13) {
sendMessage()
}
});
$("#pv").keydown(function (event) {
if (event.which == 13) {
sendPV()
}
});
$('#sendpv').click(function () {
// Call the Send method on the hub.
sendPV();
$("#sendpv").focus()
});
});
var sendPV = function () {
var msg = $('#pv').val()
// Call the Send method on the hub.
$.each(pvuis.CXs, function () {
chat.server.sendPV(this, msg)
})
$('#discussion').append('<li class="pv">' + htmlEncode(pvuis.UserName)
+ '<< ' + htmlEncode(msg) + '</li>')
// Clear text box and reset focus for next comment.
$('#pv').val('')
}
$.connection.hub.disconnected(function () {
onDisCx();
});
// Start the connection.
$.connection.hub.start().done(function () {
onCx()
$('#sendmessage').click(function () {
// Call the Send method on the hub.
sendMessage()
$('#message').focus()
})
$('#message').keydown(function (event) {
if (event.which == 13) {
sendMessage()
}
})
$('#pv').keydown(function (event) {
if (event.which == 13) {
sendPV()
}
})
$('#sendpv').click(function () {
// Call the Send method on the hub.
sendPV()
$('#sendpv').focus()
})
})
$(window).unload(function () { chat.server.abort(); });
$.connection.hub.disconnected(function () {
onDisCx()
setTimeout(function () {
$.connection.hub.start().done(function () {
$('#mySignalRConnectionIdHidden').val($.connection.hub.id)
onCx()
}, 30000); // Re-start connection after 30 seconds
})
})
};
chatinit(this);
$(window).unload(function () { chat.server.abort(); })
})(jQuery);

1
Yavsc/wwwroot/js/chat.min.js vendored Normal file
View File

@ -0,0 +1 @@
+function(n){function s(s,e){n('<li class="user"><button><img src="/Avatars/'+s+'.xs.png"> '+s+"</button></li>").data("name",s).data("cxids",e).css("cursor","pointer").click(function(){d(this)}).appendTo("#userlist")}function e(){n("#userlist").empty(),n("#to").empty(),n.get("/api/chat/users").done(function(e){n.each(e,function(){var e=this,i=n("#userlist li").filterByData("name",e.UserName);i.length>0&&i.remove();var t=[];n.each(e.Connections,function(){t.push(this.ConnectionId)}),s(e.UserName,t)})})}function i(){setTimeout(function(){e()},120),n("#chatview").removeClass("disabled"),n("#sendmessage").prop("disabled",!1),n("#sendpv").prop("disabled",!1)}function t(){n("#chatview").addClass("disabled"),n("#sendmessage").prop("disabled",!0),n("#sendpv").prop("disabled",!0)}function a(s){var e=n("<div />").text(s).html();return e}var o,c=new Audio("/sounds/bell.mp3"),d=function(s){n("#sendmessagebox").addClass("hidden"),n("#sendpvbox").removeClass("hidden"),o={CXs:n(s).data("cxids"),UserName:n(s).data("name")},n("#sendpvdest").html(o.UserName),n("#pv").focus()},u=function(){n("#sendmessagebox").removeClass("hidden"),n("#sendpvbox").addClass("hidden"),n("#message").focus()};n("#pubChan").css("cursor","pointer"),n("#pubChan").click(u),u();var l=n.connection.chatHub;l.client.addMessage=function(s,e){n("#discussion").append('<li class="discussion"><strong>'+a(s)+"</strong>: "+a(e)+"</li>")},l.client.addPV=function(s,e){n("#mute").prop("checked")||c.play(),n("#discussion").append('<li class="pv"><strong>'+a(s)+"</strong>: "+a(e)+"</li>")},n.fn.filterByData=function(s,e){return this.filter(function(){return n(this).data(s)==e})};var r=function(s){n("#userlist li").filter(function(){var e=n(this).data("cxids").filter(function(){return n(this)!==s});0==e.Length?n(this).remove():n(this).data("cxids",e)})},f=function(e,i){var t=n("#userlist li").filterByData("name",i);if(t.length>0){var a=t.data("cxids");a.push(e),t.data("cxids",a)}else s(i,[e])};l.client.notify=function(s,e,i){i&&("connected"===s?(f(e,i),n("#discussion").append('<li class="notif"><i>'+a(s)+"</i> "+a(i)+"</li>")):"disconnected"===s?(r(e,i),n("#discussion").append('<li class="notif"><i>'+a(s)+"</i> "+a(i)+"</li>")):n("#discussion").append('<li class="notif"><i>'+a(s)+"</i> "+a(e)+" : "+a(i)+"</li>"))};var p=function(){l.server.send(n("#displayname").val(),n("#message").val()),n("#message").val("")},v=function(){var s=n("#pv").val();n.each(o.CXs,function(){l.server.sendPV(this,s)}),n("#discussion").append('<li class="pv">'+a(o.UserName)+"<< "+a(s)+"</li>"),n("#pv").val("")};n.connection.hub.start().done(function(){i(),n("#sendmessage").click(function(){p(),n("#message").focus()}),n("#message").keydown(function(n){13==n.which&&p()}),n("#pv").keydown(function(n){13==n.which&&v()}),n("#sendpv").click(function(){v(),n("#sendpv").focus()})}),n.connection.hub.disconnected(function(){t(),setTimeout(function(){n.connection.hub.start().done(function(){n("#mySignalRConnectionIdHidden").val(n.connection.hub.id),i()},3e4)})}),n(window).unload(function(){l.server.abort()})}(jQuery);

5
Yavsc/xunit.runner.json Normal file
View File

@ -0,0 +1,5 @@
{
"diagnosticMessages": false,
"methodDisplay": "classAndMethod",
"parallelizeTestCollections": true
}