renamed method argument
[brisk.git] / TODO.txt
1  TODO |
2 ------+
3
4   FEATURES |
5  ----------+
6    * Users Network construction
7      DONE - sql
8      - dbase API
9      - enhance info interface
10        . disable parts of interface
11      - minisplash at end of the match
12
13    * Double click on chat to open preferences
14
15    * APPRENTICE
16      Phase2
17      DONE - match counters (part 2)
18        DONE . migration script for old users
19      - guarantee for apprentice
20
21   BUGS |
22  ------+
23    - Global vars checker
24    - Remove books from chat
25    - Not triple chars between letters
26    - 10002 message when already clicked
27    - usermgmt: add user delete
28    DONE - usermgmt: add email
29
30
31 ---------
32    - APPRENTICE
33      Phase2
34      DONE - match counters (part 2)
35        DONE . migration script for old users
36
37    - APPRENTICE
38      Phase1
39      DONE - correggere minuta giornaliera
40      DONE - aggiungere mask per autogar
41      DONE - correggere email per apprentice
42      DONE - verificare la variabile per tout IP ban apprentice
43      DONE - chat ban for apprentice
44
45      DONE - ip check and time limit
46        DONE . sql
47          DONE . temporary table limitation
48        DONE . message
49      DONE - usermgmt extension
50      DONE - add close button
51      DONE - add apprentice icon
52      DONE - match counters (part 1)
53        DONE . sql for match counters
54      DONE - new info system
55        DONE - click management
56        DONE - show user info (RO)
57          DONE - require command/info
58          DONE - fix fiverank table
59          DONE - fix bug with bitwise
60          DONE - fix layout of tables
61      DONE - aggiungere books.png
62
63     - MENTORS
64      - listen all
65
66    - BUDDY LIST
67      - white list
68      - black list
69      - delegate
70
71    - DEANONYMIZER
72       . study how to move login delta injection
73
74    - CERTIFICATIONS
75       DONE . Guarantes for certified-only (buttons choice managed)
76       DONE . Tables for certified-only
77       . Term Of Use
78       . Placing for certified-only
79
80    - IP CLASSES BAN
81       DONE . BAN and BLACK lists added
82       DONE . update method to SIGHUP manager
83       DONE . create constructor refactored
84
85    - PLACEMENT-NORMALIZATION
86       DONE . Normalize previous points
87       DONE . Denormalize "Info" view
88       DONE . Denormalize explained matches
89       DONE . Check placement
90       DONE . Distinguish between inherited mult and local mult
91
92    - AUTO-MAINTENANCE
93      DONE . Terms Of Service acceptance
94        DONE . print date of hard switch
95        DONE . TOS version
96        DONE . user TOS acceptance (db field)
97        DONE . show TOS ([show me later, yes, no]/[yes, no])
98        DONE . switch-off date
99        DONE . manage accept
100        DONE . manage refuse
101        DONE . show current TOS
102        DONE . disable user reason integer field and remove SUSPEND state (db, php)
103        DONE . fix tos layout
104        DONE . opt - download TOS
105        . opt - checkbox for anonimous users with message when not checked
106        . opt - button enabled when arrived to the bottom of the TOS only
107        . opt - check TOS version between config file and TOS file
108      DONE . show guarantee (/guar <login> command)
109        DONE . multi-language
110        DONE . command documentation
111        DONE . manage disagreeding users investigation
112        DONE . self guaranteed
113      . DONE New Users Guarantee Procedure
114        . DONE Change guarantee workflow
115        . DONE Db update
116
117          UserA                 UserB                      Admin
118 -------------------------------------------------------------------------
119       guarante UserB
120            |
121            v
122       Save on mail
123          table,
124       email to UserB
125     (Disabled, MAILED)
126 -------------------------------------------------------------------------
127                            Receive email
128                            to check address
129                                  |
130                                  v
131                            Click on link
132                                  |
133                                  v
134                            Check on mail
135                                table,
136                            update user status,
137                            delete mail rec
138                           (Disabled, TOBECHK)
139 -------------------------------------------------------------------------
140                                                        admin panel
141                                                        accept user
142                                                             |
143                                                             v
144                                                      send email with
145                                                      password,
146                                                      update user status
147                                                       (Normal, NONE)
148 -------------------------------------------------------------------------
149                            Receive email
150                            with password
151 -------------------------------------------------------------------------
152
153      DONE . More user info in the list
154      DONE . Manage date to display when a user was required
155      . Email-address expiration check
156      . Account expiration
157
158
159    DONE - CONTINUE FEATURE
160      DONE . replace explicit strings with multilanguage array
161      DONE . add a php downloader with filtering on allowed requests
162      DONE . save points every game
163      DONE . modify points calculation to include order and mazzo
164      DONE . exclude not standard types from statistics
165          DONE . daily reports (1 for each active tournament)
166          DONE . monthly stats (for normal match only)
167      DONE . show current match ID when created
168      DONE . add info about continue to the info page
169      DONE . add command to continue
170          DONE . check consistency of the request
171      DONE . rearrange users and game status to continue the selected match
172      DONE . investigate user reordering ??
173
174    - WEBSOCKET TRANSPORT
175      . refactoring $enc attribute management
176      DONE . reintroduced $enc = 'plain' for websocket
177      DONE . fallback for not correct WS version
178      DONE . fini of ws stream
179      DONE . reactivate compression
180      DONE . fix xynt_test01
181      DONE M2: brisk working
182      DONE . manage multiport apache config
183      DONE . manage headers correctly in sac-a-push
184      DONE . manage transport.close method where required
185      DONE . xynt_stream: manage fallback to multiple ports
186      DONE . manage fini for ws
187      POST . server: manage input data from clients
188      POST . manage ping/pong (seems not required)
189
190      DONE . client (xynt_streaming.js)
191      DONE . server (transport.phh)
192
193      DONE M1: xynt_test01.php working
194
195
196    - improved S
197      . db update (add components, maybe single string)
198      . filter in index.php
199      . filter in index_wr.php
200
201    - prefs API:
202      . prefs_assign(content): assign json content as output var
203      . prefs_apply(prefs_new): apply new content to g_prefs and system
204      . prefs_load(content): load json content and apply to g_prefs and system
205
206      . prefs_update: update preferences temporarly
207      . prefs_save: save to the server the new prefs
208
209    - preferences (listen into preferences)
210         // js var, volatile server, (db server || cookie)
211         temporary: js var, volatile server
212         permanent: js var, volatile server, (db server || cookie)
213
214      . data from db OR, if missing, from cookies
215
216      . update values
217      . database change
218      . MANAGE NOT AUTH USERS
219
220    - preferences (with "modifiable S")
221      . Mod. S: new flag into database
222      . graph infrastructure
223      . new box to edit color
224
225   MAJOR |
226  -------+
227    - BUG: some connection to the named socket fails
228    - Not simultaneous more then one stream
229
230
231   MINOR |
232  -------+
233    WIP - try to be more antivirus-friendly
234    - multiple rows between games
235    - packetize and automatize php-ancillary and apache module
236    - DISABLED_TO_FIX: DNS access (perform blocking dns requests, must be fixed)
237
238
239   DONE |
240  ------+
241    DONE - temporarly server hung not reflected on user timeouts
242    DONE - timeouted users are still be able to sit down (only the first at the table is banned)
243    DONE - page still opened after the server restart
244    DONE - log_legal address fix
245    DONE - manage too fast reload in xynt-streaming
246    DONE - add xhr as transport layer and manage different streams better
247    TEST - BUG: pari + 72 non fa 4x ma attualmente fa 3x, da correggere
248    TEST - BUG: lurker are logged out (and remain a pending socket opened (look the spush log)
249    DONE - save/restore database
250    DONE - into the room local step remains -1
251    DONE - centralize all '<script ...' incapsulation to allow multiple transport system.
252    DONE - BUG: access with password from 2 diff browsers the second go in strange "page not found" 
253           in the first tentative, the second works
254    DONE - BUG: access with password from 2 diff browsers place the first in a strict loop (the 
255           problem was a call to a static parent method instead of the overrided child method,
256           substitute self:: with the dynamically get class::)
257    DONE - garbage management
258
259    DONE/FROZEN - problem with getpeer (HOSTADDR)
260
261    DONE - slow cards distribution
262    DONE - substr to mb_substr
263    DONE - parametrizations:
264           . parametrization of $DOCUMENT_ROOT  var in brisk-spush.phh file
265           . parametrization of SITE_PREFIX(_LEN) define
266           . move the name of the named socket into the configuration file
267    DONE - manage and test cross forwarder between table and room
268    DONE - setcookie (for tables only and persist prefs)
269    DONE - images flickering on slow windows: try to poll stream every 300 ms (seems to be download problem)
270    DONE - database connection fails after a while, check close and try PGSQL_CONNECT_FORCE_NEW.
271    DONE - unneeded garbage_time.expired access
272    DONE - BUG: fast loop on stream index_rd_ifra page (js watchdog start without timeout corrupt counts)
273    DONE - BUG: logout failed (fixed with a garbage_collector wrapper at sac-a-push level
274    DONE - 404 wrong page management (remove directories redirections (es. brisk/))
275    DONE - configuration file management
276    DONE - app level keep-alive
277    DONE - index_wr other issues
278    DONE - from room to table
279    DONE - from table to room
280    DONE - chunked
281    DONE - bug: read from a not resource handle (already closed because a new socket substitute it)
282    DONE - partial write for normal page management
283    DONE - index_rd_ifra: last_clean issue
284    DONE - fwrite failed error management (select, buffer where store unsent data, and fwrite check and retry)
285    DONE - bug: after restart index_rd.php receive from prev clients a lot of req
286    DONE - index_wr.php::chat
287    DONE - index_wr.php::exit
288    DONE - index_rd.php porting
289    DONE - generic var management from internet
290    DONE - index.php auth part
291    ABRT - index_wr.php::reload - reload is js-only function
292    ABRT - keepalive management - not interesting for our purposes
293
294  BRISK4 (mammuth)
295  ======
296
297  - STEP MANAGEMENT VERIFY
298  Slim Paragraph
299  DONE - move the garbage timeout on file
300  DONE - in index_rd load all data only when required
301  - briskin5 alignment
302    DONE . extern del garb_timeout
303    DONE . user_load parameters verify
304    DONE . Bin5::load_data and Bin5::save_data refactoring with
305           data split
306    . move many function into "Bin5 class"
307  - garbaging of .step files
308
309  DB: - initial usage
310      DONE - configurabilitĂ  file o db
311      DONE - aggiornare le funz di gestione db in modo che prevedano anche il flag DISABLE
312      DONE - travasatore file to pg
313        DONE - travaso punteggi
314        DONE - memorizzazione nuovi i punteggi nel db
315        DONE - gestione classifiche in SQL
316          DONE - produrle
317          DONE - mostrarle
318
319      STEP 1.1
320        DONE - points archiver
321
322      STEP 1.2
323        DONE - partial usability if database go down.
324
325      STEP 1.5
326      - sistema di inserimento nuovi utenti (riversatore da form di inserimento)
327
328      STEP 2
329      - modifica password   
330      - ripristino password 
331
332      STEP 3
333      - comunicazioni di aggiornamento (stato salvato sul server) 
334
335  DONE - var $G_base aggiunta per gestire include in include da path differenti
336
337  BRISK3 (trusty)
338  ======
339   DONE - donameter
340     DONE - G_donors
341     DONE (WOW!) - js object with infos
342     DONE - main logic at login (cookie check in index_rd.php; show_message and createCookie via snippets with block
343            to prevent fast reload)
344     DONE - cookie per non assillare e visualizz.
345     DONE - graphical donameter
346     WIP content (in conf.)
347
348   DONE - numero di tavoli auth-only nel .brisk-install
349   - isolation
350     TEST - ricalcolo delle persone in piedi quando si cambia modalitĂ 
351     DONE - se si e' in isolation non si può cambiare nick perdendo l' auth
352     DONE - non leggere le chat di quelli non autenticati (in isolation)
353     DONE - regole per passare alla modalita' (in piedi o ai tavoli autenticati) 
354     DONE - treni non auth da nascondere 
355     DONE - verso gli altri ??: uguale a prima
356
357   finire multilingua (briskin5/index_wr.php e altri se ce ne sono)
358   coniglio
359   only auth strictly
360   placing limits to config file
361
362 Dunque, 
363
364 - come vengono aggiornate le classifiche: ogni giorno alle 23:58
365
366 - cosa cambia tra le tre coppie di classifiche: 
367   ci sono le classifiche dell' ultima settimana, quelle dell' ultimo mese,  e quelle dell' ultimo trimestre,
368   per ognuno di questi lassi di tempo poi c'è la classifica di chi ha giocato piĂą di TOT partite o meno di TOT partite, con TOT che cambia a seconda del lasso di tempo.
369
370 - come vengono calcolate le classifiche: per ogni utente vengono presi tutti i punti fatti ai tavoli con lucchetto nel lasso di tempo preso in considerazione (ultima settimana, ultimo mese o ultimo trimestre), sommati e divisi per il numero di partite fatte in quello stesso lasso di tempo per normalizzare i valori; poi siccome la gente quando vede 0.18734 sbarella ho deciso di moltiplicare il tutto per 100.
371
372 Un esempio per chiarire:
373
374   l'utente 'pippo' che Ă¨ nuovo gioca 4 partite nell'ultima settimana con i seguenti punteggi:
375     -2, 1, 2, 1
376   lo score viene { [ (-2) + (1) + (2) + (1) ] / 4 }  * 100 = 50.0
377   
378   a paritĂ  di score tra utenti va piĂą in alto chi ha giocato piĂą partite.
379
380 Se dopo quelle 4 partite 'pippo' non ne giocherĂ  piĂą, passata una settimana dall'ultima giocata 
381 sparirĂ  dalla classifica settimanale e rimarrĂ  in quelle mensili e trimestrali.
382
383
384   
385
386
387
388
389  BUG
390  ---
391  
392   DONE - paste da demauroparavia
393   DONE - recupero partita per re-login con password
394   DONE - problema "|" nei nomi (manca enhance degli script lato server)
395   - problema col treno se mouse sopra mentre stringe (verif)
396   
397  MINOR
398  -----
399
400  NORMAL
401  ------
402
403   - win test
404   WIP - /listen 
405     DONE - skin della textarea
406     DONE - set cookie 
407     DONE - init client (read from cookie) - ALWAYS BY SERVER
408     DONE - init server
409     DONE - after cookie check auth-only when no-auth case
410     DONE - aggiungi info accanto a "Chat"
411   DONE - /mesgtoadm
412   DONE - img dei comandi
413
414   DONE - form per garantire utenti (accoda in un file nel formato corretto)
415   DONE -   process request
416   DONE -   show form
417   DONE -   close butt
418   DONE -   submit form
419   DONE -   process form js side 
420   DONE -   process form
421   DONE -   documentazione in help
422
423   DONE - user status
424
425   DONE - aggiornare help
426   DONE -   overflow management
427   DONE -   for status
428   -   for password
429
430   DONE - reload home
431   - notify for long pages
432
433   - buddy list
434   - silenziastolti vari (fino al buddy import)
435   - restrict challenge per IP
436   - restricted charset for login
437   - watchdog
438
439   - db (minimal)
440     - db admin page
441     - user db admin
442     - use db 
443     - admin db
444
445     - studiare un anti-dos
446   - login modify
447  DONE  - db (fake)
448  DONE  - display auth
449     - manage preferences 
450
451  minor
452  -----
453    - auth after login
454
455 ----- done ------
456
457  BUG
458  ---
459   DONE   righe troncate
460   DONE - questione "a monte" che:
461   DONE   - lascia fuori il bottone
462   DONE   - scrive &agrave e compagnia
463   DONE - refresh act_table when unauthorized
464   DONE - problema ghost autenticato (ne prendi il posto ovunque sia)
465
466  MINOR
467  -----
468   DONE - refactoring of the owner name (auth attr for owner name)
469   DONE   - room
470   DONE     - at chat input line 
471   DONE     - in the chat output line
472   DONE     - deauth management
473   DONE - table
474   DONE   - at chat input line
475   DONE   - in the chat output line
476   DONE   - for user area of other users
477   DONE   - deauth management
478   DONE - alart to one user
479
480
481  NORMAL
482  ------
483   DONE - strong ban: "expire time|IP|session|(nick if authenticated)"
484   DONE   - login: se auth      -  verifica solo gli expire per quel nick
485   DONE   -        se non auth  -  verifica gli expire per IP e sessione
486   DONE   - riscrivere messaggi
487
488   DONE - login 
489   DONE   - se pass:
490   DONE     - richiede per l' utente un token (tutta la parte backend va un minimo studiata)
491   DONE     - lo legge, ci hasha la password
492   DONE     - invia la pass al server hashata
493   DONE   - se non pass:
494   DONE     - check del login e return corretto
495   DONE     - oggetto in shm single table con ( "ip", "login", timestamp ) e suo management
496   DONE     - rename ghost if logged
497   DONE     - onunload_cb e onbeforeunload_cb !!! 
498   DONE   - da change attrs a change class (input field)
499   DONE     - colore del bg per arrivare ad essere omogeneo
500   DONE     - cambiare path e file di config
501   DONE   - login with or without pass
502   DONE   - registered nick notice (METTERE IL MSG NELLA PAG DI LOGIN)
503   DONE     - segnalare tavoli solo per auth
504   DONE     - rename restriction at auth table
505   DONE     - change nick (strcasecmp)
506   DONE   - refact js tables to handle flags
507   DONE - room javascript refactoring
508
509   DONE - work background
510   DONE - reserved tables
511
512
513  BRISK2 (spawn)
514  ======
515
516    
517    URGENT - tables spawn
518             DONE - link with photos
519             DONE - top banner in Etc file
520             DONE - spawn of a table
521             DONE - data to cookies (removed table_idx from xhr calls also)
522             DONE - set subst to shutdowner/shutdowned
523             DONE - return to index.php
524             DONE - game's token
525             DONE - recover of corrupted table data
526             DONE - closure of a table
527             DONE - flush of the table
528             DONE - security checks for right scope access
529             DONE - garbage collector management
530             DONE -    recursive garbage - howto ?
531             DONE - stat & subst in browser
532             DONE - laccwr setting and exit if all players are unactive for some time
533             DONE - the list of test case
534             DONE - shm dimension
535             DONE - remove unused parts
536             DONE - move images
537             DONE - optimizations
538             DONE - cambiare titolo al tavolo
539             DONE - shutdowning lock tables
540             DONE - topbanner
541             DONE - public announcements
542             DONE - 10 sec to exit from table
543
544             FAR - inheritances
545    
546    TRAIN  -  DONE - add again in reload   
547              DONE - wag_set refact
548              DONE - filtra char speciali per title
549              DONE - chatt_send refact 
550              DONE - elenco dei giocatori
551              DONE - documentazione online
552              DONE - timeout management     
553              LATER - border color a muzzo
554        
555    NORM   - testament
556    NORM   - public announcements
557    NORM   - 10 sec to exit from table
558    NORM   - moving label for tables click
559
560 ----------------- join -----------------
561    NORM   - map
562
563    NORM   - restart preload img
564    NORM   - tools dir with a main and some pages where check briscola tools.
565    NORM   - watchdog
566
567    NORM   - chat vecchie in reload (forse)
568
569  MIDDLE TODO
570  ===========
571
572    - user assistant (with button to enable disable)
573    - documentation
574
575
576  FAR TODO
577  ========
578    NORM - internationalization
579    NORM - img -> div + css
580    
581  WEB
582  ===
583
584    - link to stable/unstable
585
586 -------------------------------------------------------------------
587  DONE
588  ====
589
590    ABORTED - asta: highlight buttons (css hover) - change pointer when over
591    DONE - step proxy
592    DONE - special chars in js
593    DONE - ban temporaneo dai tavoli
594    DONE - flash player to play sound
595    DONEBUG - (aum. il timeout) - carte giocate che restano girate
596          Sembra non migliorare di molto la cosa, gestita la cache
597          correttamente, sono apposto.
598
599    DONE - one player reject a game, to less points (<= 2)
600    DONE - help page
601    DONE - test di download per la cache
602    DONE - se passano tutti tranne l'ultimo l'asta va al penultimo.
603           Corretto il codice, occorre verificare se questo
604           ingenera qualche problema.
605    DONE - raddoppiato il numero di righe nella chat
606    DONE - corretto bug del /nick
607    DONE - carosello pubblicitĂ  altout
608    DONE - smammamorti
609    DONE - unload of the stream
610    DONE - standup centrati
611    DONE - current player - in info
612    DONE - HELP butt con ABOUT, REGOLE, VERSIONE
613    DONE - welcome lines in the chats (room and table)
614    DONE - welcome lines in the chats (room and table)
615    DONE - nomi in primo piano se vai sul quadrato   
616    DONE - to pass explicit config file to INSTALL.sh
617    DONE - flag to create a config file
618    ABRT - bottoni => immagini
619    DONE - aggiungere bottone al login
620    DONE - nomi in primo piano se vai sul quadrato   
621    DONE - installer to set cookie path
622    DONE - change name
623    DONE - automatic and manual logout
624    DONE - cache problems solved via .htaccess
625    DONE - all players out of the auction
626    DONE - time to send cards
627    DONE - hide cards before sends at a new game
628    DONE - well recognization of the browser and O.S.
629    DONE - login consistency !!!!
630    DONE - functionalization of garbage
631    DONE - call garbage function into login
632    DONE - game
633    DONE - manage the reload from scratch of the table page
634    DONE - table reset
635    DONE - sendcard => card_send(idx, ....)
636    DONE - show table for game
637    DONE - points calculation
638    DONE - make-up of the chooser
639    DONE - where place the briscola on the table
640    DONE - users info
641    DONE - show current auction position
642    DONE - table with internal management of the transition between pages.
643    DONE - server side page abort management  
644    DONE - cookie problem with Ajax
645    DONE - spostare il tasto "esco"
646    DONE - to pass explicit config file to INSTALL.sh 
647    DONE - 8 tables
648    DONE - safety out management
649    DONE - info enhancement and related button (how win the last game and
650           with how much points ?)
651
652  WEB
653    DONE - homepage
654    DONE - screenshots
655
656 DOC
657    CHAPTERS
658       HTTP Streaming
659       Local serializer
660       Database on shmem
661       Page abort (reload on http streaming case)
662       Chat
663       Cookies management
664       CSS tricks
665
666 CHECK ON NEW SERVERS
667 .htaccess AllowOverwrite mode for Cache-Control directive
668
669
670
671
672 */
673