Merge branch 'vnext' of https://github.com/pazof/yavsc into vnext
* 'vnext' of https://github.com/pazof/yavsc: Formatting no yield return for arrays: Json serialyzer fails to do it. pro net private chat pv test succeeded switch pub chan<->private
This commit is contained in:
commit
73dfd48f20
3 changed files with 35 additions and 24 deletions
|
|
@ -24,7 +24,7 @@ namespace Yavsc.Controllers
|
||||||
[HttpGet("users")]
|
[HttpGet("users")]
|
||||||
public IEnumerable<ChatUserInfo> GetUserList()
|
public IEnumerable<ChatUserInfo> GetUserList()
|
||||||
{
|
{
|
||||||
|
List<ChatUserInfo> result = new List<ChatUserInfo>();
|
||||||
var cxsQuery = dbContext.Connections?.Include(c=>c.Owner).GroupBy( c => c.ApplicationUserId );
|
var cxsQuery = dbContext.Connections?.Include(c=>c.Owner).GroupBy( c => c.ApplicationUserId );
|
||||||
|
|
||||||
// List<ChatUserInfo> result = new List<ChatUserInfo>();
|
// List<ChatUserInfo> result = new List<ChatUserInfo>();
|
||||||
|
|
@ -37,12 +37,12 @@ namespace Yavsc.Controllers
|
||||||
if (cxs.Count>0) {
|
if (cxs.Count>0) {
|
||||||
var user = cxs.First().Owner;
|
var user = cxs.First().Owner;
|
||||||
|
|
||||||
yield return new ChatUserInfo { UserName = user.UserName,
|
result.Add(new ChatUserInfo { UserName = user.UserName,
|
||||||
UserId = user.Id, Avatar = user.Avatar, Connections = cxs,
|
UserId = user.Id, Avatar = user.Avatar, Connections = cxs,
|
||||||
Roles = ( userManager.GetRolesAsync(user) ).Result.ToArray() };
|
Roles = ( userManager.GetRolesAsync(user) ).Result.ToArray() });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,20 @@
|
||||||
color: black;
|
color: black;
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
font-style: bold;
|
font-style: bold;
|
||||||
|
background-color: yellow;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<input type="hidden" id="displayname" />
|
<input type="hidden" id="displayname" />
|
||||||
|
<div style="float:right; background-color: grey; padding:1em; margin:1em;">
|
||||||
<ul id="userlist" style="float:right;">
|
<h3>Salons</h3>
|
||||||
|
<ul><li id="pubChan">Public</li></ul>
|
||||||
|
<h3>Utilisateurs</h3>
|
||||||
|
<ul id="userlist" style="list-style-type:none;">
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
<ul id="discussion">
|
<ul id="discussion">
|
||||||
</ul>
|
</ul>
|
||||||
<div style="display: inline-block;">
|
<div style="display: inline-block;">
|
||||||
|
|
@ -52,42 +58,43 @@
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
|
var pvuis;
|
||||||
|
|
||||||
document.userList = [];
|
|
||||||
var setPrivate = function(li)
|
var setPrivate = function(li)
|
||||||
{
|
{
|
||||||
$("#sendmessagebox").addClass("hidden");
|
$("#sendmessagebox").addClass("hidden");
|
||||||
$("#sendpvbox").removeClass("hidden");
|
$("#sendpvbox").removeClass("hidden");
|
||||||
document.privateChatter = document.userList[$(li).data("usernum")];
|
pvuis = { CXs: $(li).data("cxids"), UserName: $(li).data("name")};
|
||||||
|
$('#sendpvdest').html(pvuis.UserName)
|
||||||
$('#sendpvdest').html(document.privateChatter.UserName)
|
|
||||||
}
|
}
|
||||||
var setPublic = function()
|
var setPublic = function()
|
||||||
{
|
{
|
||||||
$("#sendmessagebox").removeClass("hidden");
|
$("#sendmessagebox").removeClass("hidden");
|
||||||
$("#sendpvbox").addClass("hidden");
|
$("#sendpvbox").addClass("hidden");
|
||||||
document.privateChatter = {};
|
|
||||||
}
|
}
|
||||||
|
$('#pubChan').css('cursor','pointer');
|
||||||
|
$('#pubChan').click(setPublic);
|
||||||
setPublic();
|
setPublic();
|
||||||
|
|
||||||
var getUsers = function() {
|
var getUsers = function() {
|
||||||
|
console.log("Try and get user list ...");
|
||||||
$('#userlist').empty();
|
$('#userlist').empty();
|
||||||
$('#to').empty();
|
$('#to').empty();
|
||||||
$.get("/api/chat/users").done(
|
$.get("/api/chat/users").done(
|
||||||
function(users) {
|
function(users) {
|
||||||
$.each(users, function () {
|
$.each(users, function () {
|
||||||
var user = this;
|
var user = this;
|
||||||
|
console.log(user);
|
||||||
var existent = $('#userlist li').filterByData("name",user.UserName);
|
var existent = $('#userlist li').filterByData("name",user.UserName);
|
||||||
if (existent.length>0) existent.remove();
|
if (existent.length>0) existent.remove();
|
||||||
var li = $('<li class="user">'+htmlEncode(user.UserName)+'</li>');
|
var li = $('<li class="user"><img src="/Avatars/'+user.UserName+'.xs.png"> '+htmlEncode(user.UserName)+'</li>');
|
||||||
|
|
||||||
var cxids = [];
|
var cxids = [];
|
||||||
$.each(user.Connections,function() {
|
$.each(user.Connections,function() {
|
||||||
cxids.push(this.ConnectionId);
|
cxids.push(this.ConnectionId);
|
||||||
});
|
});
|
||||||
$(li).data("name",user.UserName);
|
$(li).data("name",user.UserName);
|
||||||
$(li).data("cxids",cxids);
|
$(li).data("cxids",cxids);
|
||||||
document.userList.push(user);
|
|
||||||
$(li).data("usernum",document.userList.length-1);
|
|
||||||
$(li).css('cursor','pointer');
|
$(li).css('cursor','pointer');
|
||||||
$(li).click(function(){
|
$(li).click(function(){
|
||||||
setPrivate(this);
|
setPrivate(this);
|
||||||
|
|
@ -133,7 +140,7 @@
|
||||||
ids.push(cxid);
|
ids.push(cxid);
|
||||||
connected.data("cxids",ids);
|
connected.data("cxids",ids);
|
||||||
} else {
|
} else {
|
||||||
var li = $('<li class="user">'+username+'</li>');
|
var li = $('<li class="user"><img src="/Avatars/'+username+'.xs.png"> '+username+'</li>');
|
||||||
li.data("name",username);
|
li.data("name",username);
|
||||||
li.data("cxids",[cxid]);
|
li.data("cxids",[cxid]);
|
||||||
li.appendTo('#userlist');
|
li.appendTo('#userlist');
|
||||||
|
|
@ -182,8 +189,8 @@ $('#discussion').append('<li class="notif"><i>' + htmlEncode(tag)
|
||||||
$('#sendpv').click(function () {
|
$('#sendpv').click(function () {
|
||||||
|
|
||||||
// Call the Send method on the hub.
|
// Call the Send method on the hub.
|
||||||
$.each(document.privateChatter.Connections,function () {
|
$.each(pvuis.CXs,function () {
|
||||||
chat.server.sendPV( this.ConnectionId, $('#pv').val());
|
chat.server.sendPV( this, $('#pv').val());
|
||||||
});
|
});
|
||||||
// Clear text box and reset focus for next comment.
|
// Clear text box and reset focus for next comment.
|
||||||
$('#pv').val('').focus();
|
$('#pv').val('').focus();
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ Ceci est une grosse liste de fonctionnalités, existantes, ou à implémenter, o
|
||||||
✔ Accès aux profiles des intervenants. @done (August 13th 2016, 0:57)
|
✔ Accès aux profiles des intervenants. @done (August 13th 2016, 0:57)
|
||||||
✔ Demande de devis, spécifiant une date et un lieu, envers un pro (ou "BookQuery", ou "demande de rendez-vous"). @done (August 13th 2016, 0:57)
|
✔ Demande de devis, spécifiant une date et un lieu, envers un pro (ou "BookQuery", ou "demande de rendez-vous"). @done (August 13th 2016, 0:57)
|
||||||
✔ Notifications commande. @done (September 15th 2016, 15:00)
|
✔ Notifications commande. @done (September 15th 2016, 15:00)
|
||||||
✔ Rendu html du format Markdown-av (+audio&video). @done (October 6th 2016, 14:32)
|
✔ Rendu Html du format Markdown-av (+audio&video). @done (October 6th 2016, 14:32)
|
||||||
✔ Rendu Android, via WebKit WebView. @done (October 6th 2016, 14:32)
|
✔ Rendu Android, via WebKit WebView. @done (October 6th 2016, 14:32)
|
||||||
✔ Salon public. @done (September 28th 2016, 17:58)
|
✔ Salon public. @done (September 28th 2016, 17:58)
|
||||||
✔ Saisie et soumission basique du devis. @done (October 30th 2016, 21:50)
|
✔ Saisie et soumission basique du devis. @done (October 30th 2016, 21:50)
|
||||||
|
|
@ -49,16 +49,18 @@ Ceci est une grosse liste de fonctionnalités, existantes, ou à implémenter, o
|
||||||
☐ Évaluation de la prestation.
|
☐ Évaluation de la prestation.
|
||||||
☐ Page d'accueil du mobile: Les alertes, et les derniers événements, donc, les derniers post, les
|
☐ Page d'accueil du mobile: Les alertes, et les derniers événements, donc, les derniers post, les
|
||||||
dernières inscriptions de prestataire, les annonces corporate
|
dernières inscriptions de prestataire, les annonces corporate
|
||||||
* La selection d'une star: pas de notation à afficher + idem chanteur
|
* La sélection d'une star: pas de notation à afficher + idem chanteur,
|
||||||
|
les critères : la date, les champs du formulaire de commande: le message, le lieu
|
||||||
☐ depuis le mobile
|
☐ depuis le mobile
|
||||||
☐ depuis le Web
|
☐ depuis le Web
|
||||||
* La selection d'un DJ: (rechercher dans / afficher) les samples + idem chanteur
|
* La sélection d'un DJ: (rechercher dans / afficher) les samples + idem chanteur
|
||||||
|
les critères : la date, les champs du formulaire de commande: le message, le lieu, la tendance musicale
|
||||||
☐ depuis le mobile
|
☐ depuis le mobile
|
||||||
☐ depuis le Web
|
☐ depuis le Web
|
||||||
* La selection d'un chanteur: (rechercher dans / afficher) les titres du répértoire
|
* La sélection d'un chanteur: (rechercher dans / afficher) les titres du répertoire
|
||||||
☐ depuis le mobile
|
☐ depuis le mobile
|
||||||
☐ depuis le Web
|
☐ depuis le Web
|
||||||
* La selection d'une formation musicale: idem chanteur + (rechercher/afficher) la taille de la formation
|
* La sélection d'une formation musicale: idem chanteur + (rechercher/afficher) la taille de la formation
|
||||||
☐ depuis le mobile
|
☐ depuis le mobile
|
||||||
☐ depuis le Web
|
☐ depuis le Web
|
||||||
|
|
||||||
|
|
@ -125,9 +127,11 @@ Ceci est une grosse liste de fonctionnalités, existantes, ou à implémenter, o
|
||||||
en l'enregistrant comme activité fille. Par ailleurs, l'utilisateur peut déclarer plusieurs activités,
|
en l'enregistrant comme activité fille. Par ailleurs, l'utilisateur peut déclarer plusieurs activités,
|
||||||
sous la forme d'une liste, dont le premier élément indique l'activité principale
|
sous la forme d'une liste, dont le premier élément indique l'activité principale
|
||||||
(pour laquelle un code APE doit correspondre).
|
(pour laquelle un code APE doit correspondre).
|
||||||
☐ Le streaming video, de pair à pair
|
☐ Le streaming vidéo, de pair à pair
|
||||||
☐ Le streaming vidéo public.
|
☐ Le streaming vidéo public.
|
||||||
|
|
||||||
## Jalon 5
|
## Jalon 5
|
||||||
|
|
||||||
☐ Conciliation
|
☐ Conciliation
|
||||||
|
☐ Le réseau pro : on a des sous-traitants, on leur transmet des demandes de devis en tant que dépendance
|
||||||
|
d'une demande en cours,cette dernière n'est validable qu'une fois seulement que tous les devis dont elle dépend sont validés.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue