Pošta
Modul pošta slouží ke komunikaci členů skrze FreenetIS. S jeho pomocí lze poslat zprávu jakémukoliv členovi (nebo uživatelovi).
Obsah
Uživatelský pohled
Vzhled
Skládá se ze 3 základních částí:
Doručená pošta
Zobrazuje doručenou počtu uživatele řazenou chronologicky od nejnovější zprávy po tu nejstarší.
Mimo to obsahuje jednoduché ovládání zpráv - je možné je hromadně mazat nebo je hromadně označovat jako přečtené nebo nepřečtené.
Je to vstupní část - dá se sem vstoupit přes kliknutí na obálku v horní části stránky nebo kliknutím na Moje pošta v menu Můj profil.
Odeslaná pošta
Zobrazuje všechny odeslané zprávy uživatele řazené chronologicky od nejnovější zprávy po tu nejstarší.
Mimo to obsahuje jednoduché ovládání zpráv - je možné je hromadně mazat.
Napsat novou zprávu
Obsahuje formulář pro napsání nové zprávy. Obsahuje 3 pole:
Komu - textové pole, musí obsahovat login příjemce; nebo loginy příjemců (oddělené čárkou) TODO: Dodělat nějaké klikátko, kde si člověk bude moct naklikat příjemce.
Předmět - textové pole předmět zprávy
Text - samotný text zprávy, ve formě WYSIWYG editoru
Kromě psání nových zpráv se tento formulář používá pro psání odpovědí (automaticky do formuláře doplní login původního odesílatele/příjemce a cituje text původní zprávy).
Signalizace
Na novou doručenou poštu je uživatel upozorněn změnou barvy obálky v horní části stránky (z bílé na zelenou).
Systémové použití
Jedním ze základním důvodů, proč zavést poštu do FreenetISu, byla potřeba vytvořit způsob, jakým bude systém upozorňovat na některé události. V praxi to funguje tak, že uživatelovi přijde zpráva od uživatele s ID 1 (freenetis).
Příklady - uživatel upozorněn, když:
- někdo jiný přidal/editoval/smazal jeho práci - pokud někdo přidal/editoval/smazal práci (může-li hlasovat) - pokud někdo přidal/editoval/smazal hlas k práci (je-li jeho nebo může-li hlasovat) - pokud byla práce schválena/zamítnuta (je-li jeho nebo může-li hlasovat) - atd.
Systém se samozřejmě snaží inteligentně a neposílat zprávu v případech, kdy uzná, že to není nutné. Příklad - nepošle uživatelovi zprávu, přidal-li si práci sám, atd.
Programátorský pohled
Databázový popis
Všechny zprávy pošty jsou uloženy v tabulce mail_messages. Ta obsahuje sloupce:
id - jednoznačný identifikátor zprávy (primární klíč)
from_id - ID uživatele-odesílatele
to_id - ID uživatele-příjemce
subject - předmět zprávy
body - text zprávy
time - čas odeslání
readed - příznak, zda-li byla zpráva přečtená
from_deleted - odesílatel tuto zprvu smazal
to_deleted - příjemce tuto zprávu smazal
Mazání zpráv
Protože je každá zpráva pro dvě strany, neprobíhá její mazání jako obvykle. Kdyby totiž uživatel A poslal zprávu uživateli B a poté A zprávu smazal ze svých odeslaných zpráv, zpráva by zmizela i B z jeho doručených.
Z toho důvodu musely být zavedeny sloupce from_deleted a to_deleted. Ty pak popisují, jestli příjemce/odesílatel smazal tuto zprávu. Teprve až v případě, že oba budou pravdivé, dojde ke skutečné smazání zprávy z databáze.