Pošta

Z Freenetis Wiki
Přejít na: navigace, hledání

Modul pošta slouží ke komunikaci členů skrze FreenetIS. S jeho pomocí lze poslat zprávu jakémukoliv členovi (nebo uživatelovi).

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). Nova posta.jpg

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.