Web uygulamasının birkaç ekranı varlık metadata'sından üretilmek yerine elle yazılmıştır: Mail uygulaması, Ayarlar altındaki mail bağlantı ekranları, kullanıcı profili, etkinlik ve hata günlükleri ve giriş ekranındaki üyelik girişi. Bu sayfa her ekranın ne gösterdiğini, hangi uçları çağırdığını ve hangi izin kodlarını denetlediğini listeler. Sunucu tarafları mail modülü, günlükler modülü ve üyelik sayfalarındadır.
Kapsam ve kaynak¶
- Tanımlandığı yer:
webapp/js/mail.js(renderMail,queueCompose,resetMail),webapp/js/mail-settings.js(renderMailSettings,renderMailProviders,consumeOAuthRedirect),webapp/js/profile.js(renderProfile),webapp/js/logs.js(makeActivityLog,makeErrorLog,resolveErrorMessage),webapp/js/signup.js(wireSignup) - Sayı: 5 dosya; aşağıdaki uç listeleri her dosyada
apiFetch(içingrepile toplandı
Mail uygulaması¶
renderMail(c) okuma ve yazma uygulamasıdır; screen: "mail" taşıyan mail uygulama manifestosundan açılır (webapp/js/mail.js:646-652, webapp/js/home.js:2427-2428). inbox, sent, drafts ve trash klasörlerini, bir ileti listesini, bir okuma bölmesini ve bir yazma alanını gösterir (webapp/js/mail.js:1-14).
| İşlev | Çağrı | Kaynak |
|---|---|---|
| Hesaplar | GET /mail/accounts/ |
webapp/js/mail.js:144-150 |
| Eşitleme | POST /mail/messages/sync?account_id=<id> |
webapp/js/mail.js:366-375 |
| Bir iletiyi, dizisini ve eklerini okuma | GET /mail/messages/<id>, /thread, /attachments |
webapp/js/mail.js:235-259 |
| Ek içeriği | Blob olarak GET /mail/messages/<id>/attachments/<att_id>/content |
webapp/js/mail.js:79 |
| Okundu işaretleme, çöpe taşıma | POST /mail/messages/<id>/read, /trash |
webapp/js/mail.js:324, webapp/js/mail.js:336 |
| Taslaklar | POST /mail/messages/drafts, /drafts/<id>/discard, ek kaldırma |
webapp/js/mail.js:496, webapp/js/mail.js:541, webapp/js/mail.js:583 |
| Gönderme | POST /mail/messages/send |
webapp/js/mail.js:610 |
| Alıcı önerileri | GET /parties/channels/all?search=<text>&limit=50, yalnız e-posta kanalları |
webapp/js/mail.js:380-390 |
queueCompose(prefill) uygulamanın hesapları yüklendiğinde yeni bir taslak olarak açacağı bir konu ve gövde saklar. Paylaşım kartı ve ana ekran bunu kullanır (webapp/js/mail.js:27, webapp/js/home.js:4658-4665). Bağlı hesap yoksa uygulama Ayarlar › Mail ekranını açmayı önerir (webapp/js/home.js:4654-4656). resetMail() çıkışta ve kapatmada uygulamanın durumunu düşürür (webapp/js/mail.js:654, webapp/js/main.js:168, webapp/js/home.js:2546).
Mail ayarları¶
renderMailSettings(c) Ayarlar › Mail (settings.mail) ekranıdır. Kullanıcının kendi mail hesaplarını bağlar ve listeler (webapp/js/mail-settings.js:1-9, webapp/js/mail-settings.js:55).
| Öğe | Kural | Kaynak |
|---|---|---|
| Sağlayıcı kullanılabilirliği | GET /mail/accounts/providers; hata durumunda yalnız IMAP sunulur |
webapp/js/mail-settings.js:39-49 |
| Bağlama | mail_account.connect sahiplerine gösterilir |
webapp/js/mail-settings.js:69 |
| OAuth bağlama | POST /mail/accounts/oauth/<provider>/start, sonra tarayıcı sağlayıcıya gider ve bir kodla /app adresine döner |
webapp/js/mail-settings.js:213, webapp/js/mail-settings.js:304-337 |
| IMAP bağlama | GET /mail/domains/?limit=200 ucundan bir alan adıyla POST /mail/accounts/imap |
webapp/js/mail-settings.js:48-50, webapp/js/mail-settings.js:255 |
| Bağlantıyı kesme | DELETE /mail/accounts/<id> |
webapp/js/mail-settings.js:286 |
| Sağlayıcı ve alan adı yönetimi | mail_provider.update sahiplerine gösterilir; renderMailProviders ve mail_domain genel listesini açar |
webapp/js/mail-settings.js:71, webapp/js/mail-settings.js:339-423, webapp/js/home.js:4648-4653 |
consumeOAuthRedirect() açılışta çalışır. Başarılı bir girişten sonra geri dönen bir sağlayıcı yönlendirmesini tamamlar ve bir sonuç bildirimiyle Ayarlar › Mail ekranını açar; oturum yokken yalnız yönlendirme parametrelerini temizler (webapp/js/main.js:246-266). Akış mekanizma düzeyinde mail modülü sayfasında anlatılır.
Profil¶
renderProfile(c) oturum açmış kullanıcıyı GET /auth/me ucundan, alan etiketlerini auth.user form metadata'sından ve rol bölümü başlığını auth.role çoğul etiketinden alarak gösterir (webapp/js/profile.js:1-50). Ayarlar uygulamasının en üstündeki profil satırından ulaşılır (webapp/js/home.js:3576).
Etkinlik ve hata günlükleri¶
| Ekran | Çağrı | Süzgeçler | Kaynak |
|---|---|---|---|
Etkinlik Günlüğü (settings.activity_log) |
GET /logs/activities/ |
arama, HTTP yöntemi, başarı veya hata durum aralığı, tarih aralığı | webapp/js/logs.js:181-215 |
Hata Günlüğü (settings.error_log) |
GET /logs/errors/ ve GET /logs/errors/by-trace/<trace_id> |
arama ve tarih aralığı | webapp/js/logs.js:353-405 |
Günlük satırlarındaki modül ve varlık adları metadata üzerinden çözülür (webapp/js/logs.js:1-5). resolveErrorMessage(row) saklanan bir hatayı yerelleştirilmiş bir iletiye çevirir ve asistan ekranlarıyla paylaşılır (webapp/js/logs.js:85, webapp/js/assistant.js:14).
Üyelik girişi¶
wireSignup() giriş ekranındaki üyelik düğmesini yalnız GET /api/v1/signup/ ucu signup: "open" ile yanıt verdiğinde gösterir; bu çok kiracılı bir kurulumda olur (webapp/js/signup.js:1-7, webapp/js/signup.js:286-292, webapp/js/main.js:225-226). Form şirketi, mail alan adını, ilk yöneticinin adını, e-postasını ve parolasını toplar ve kabul için sunucunun bildirim metnini gösterir (webapp/index.html:206-278). Akış, onay adımı ve ülke yönlendirmesi üyelik sayfasında anlatılır.
Kısıtlar ve doğrulama¶
- Bu ekranlardaki izin denetimleri neyin gösterileceğine karar verir; her izni sunucu uygular (
webapp/js/api.js:49-55). - Tarayıcı testleri:
web-client/_e2e_mail.mjs,web-client/_e2e_mailapp.mjs,web-client/_e2e_mail_drafts.mjs,web-client/_e2e_logs_profile.mjs,web-client/_e2e_tenant_signup.mjs.
Tutarsızlıklar¶
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| queued compose | queueCompose |
Mail uygulaması açılmadan önce ona verilen önceden doldurulmuş taslak. | sıradaki taslak | webapp/js/mail.js:27 |
| signup entry | wireSignup |
Yalnız self servis üyeliğin açık olduğu yerde görünen giriş ekranı düğmesi. | üyelik girişi | webapp/js/signup.js:286 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.