1 // Javascript for index page: mostly counters updating
11 sortedCounts: function () {
12 const capitalizedPrefix
= this.curPrefix
.replace(/^\w/, c
=> c
.toUpperCase());
13 const variantsCounts
= variantArray
15 return v
.name
.startsWith(capitalizedPrefix
);
21 count: this.counts
[v
.name
] || 0,
24 return variantsCounts
.sort((a
,b
) => {
25 if (a
.count
!= b
.count
)
26 return b
.count
- a
.count
;
27 // Else, alphabetic ordering
28 return a
.name
.localeCompare(b
.name
);
33 const url
= socketUrl
;
34 const sid
= getRandString();
35 this.conn
= new WebSocket(url
+ "/?sid=" + sid
+ "&page=index");
36 const socketMessageListener
= msg
=> {
37 const data
= JSON
.parse(msg
.data
);
38 if (data
.code
== "counts")
39 this.counts
= data
.counts
;
40 else if (data
.code
== "increase")
41 this.counts
[data
.vname
]++;
42 else if (data
.code
== "decrease")
43 this.counts
[data
.vname
]--;
45 const socketCloseListener
= () => {
46 this.conn
= new WebSocket(url
+ "/?sid=" + sid
+ "&page=index");
47 this.conn
.addEventListener('message', socketMessageListener
);
48 this.conn
.addEventListener('close', socketCloseListener
);
50 this.conn
.onmessage
= socketMessageListener
;
51 this.conn
.onclose
= socketCloseListener
;
53 // TODO: AJAX call get corr games (all variants)
54 // si dernier lastMove sur serveur n'est pas le mien et nextColor == moi, alors background orange
55 // ==> background orange si à moi de jouer par corr (sur main index)
56 // (helper: static fonction "GetNextCol()" dans base_rules.js)