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).

Chyba při vytváření náhledu: Náhled nelze uložit na dané místo.

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.