Web uygulamasının her kayıt kartında üç ortak özellik çalışır: kayda dosya ekleyen bir Belgeler satırı (docs.section), dosyaları indirmek yerine açan uygulama içi bir görüntüleyici ve bir paylaşım kartı. Bu sayfa her özelliğin yaptığı çağrıları ve uyduğu kuralları listeler. Belgeler modülünün kendisi belgeler modülü sayfasındadır.
Kapsam ve kaynak¶
- Tanımlandığı yer:
webapp/js/record-docs.js(recordDocsRow,makeRecordDocsScreen,makeAddDocView,createDocsCollector),webapp/js/viewer.js(openViewer,openViewerFromPath,registerRenderer,triggerDownload),webapp/js/vendor/pdfjs/,webapp/js/share.js(openShareSheet,buildRecordShare,buildRecordsShare) - Sayı: 2 görüntüleyici çizici (
webapp/js/viewer.js:151vewebapp/js/viewer.js:381içindekiregisterRendererçağrıları); 3 paylaşım hedefi (webapp/js/share.js:84-86)
Kayıt belgeleri¶
Sağlayıcı araması¶
Belgeler özelliği belgeler modülünü hiç adlandırmaz. docsProvider(), ModuleMeta.provides içinde yeteneği bildiren modülü providerOf('record_documents') ile sorar ve liste ile tür yollarını o modülün varlık metadata'sından kurar (webapp/js/record-docs.js:23-37). İzin kodları sağlayıcının varlığının <entity_type>.read, .create ve .delete kodlarıdır (webapp/js/record-docs.js:40). tests/test_metadata_driven_rules.py:63 sağlayıcının yetenekle bildirildiğini denetler.
Çağrılar¶
| Adım | Çağrı | Kaynak |
|---|---|---|
| Satırı bir sayıyla gösterme | GET <documents list>?entity_type=<type>&entity_id=<id>&limit=1 |
webapp/js/record-docs.js:294-326 |
| Bir kaydın belgelerini listeleme | GET <documents list>?entity_type=<type>&entity_id=<id>&limit=200 |
webapp/js/record-docs.js:58-63 |
| Belge türlerini yükleme | GET <types list>?active_only=true |
webapp/js/record-docs.js:106, webapp/js/record-docs.js:207 |
| Belge ekleme | POST <documents list>, sonra dosyayla POST /attachments/, sonra POST <documents list><doc_id>/versions |
webapp/js/record-docs.js:103-194 |
| Açma veya indirme | GET <documents list><doc_id>/versions, sonra etkin sürümün, yoksa en yenisinin GET /attachments/<attachment_id>/download çağrısı |
webapp/js/record-docs.js:65-78 |
| Kaldırma | Bir onaydan sonra DELETE <documents list><doc_id> |
webapp/js/record-docs.js:262-280 |
Satır, varlık record_documents değerini false yapmadıkça bir kayıt kartında görünür (webapp/js/gen-form.js:2477-2483) ve yalnız bir sağlayıcı varsa ve kullanıcı onun okuma iznine sahipse gösterilir (webapp/js/record-docs.js:294-296). create_with_documents taşıyan bir varlık oluşturma formunda createDocsCollector ile belgeleri toplar ve kayıt var olduktan sonra ekler (webapp/js/record-docs.js:328-457, webapp/js/gen-form.js:1914-1920). Ekler platform tarafından saklanır; bkz. ekler, notlar ve depolama.
Belge görüntüleyici¶
openViewer({title, blob, contentType, filename}) bir görüntüleyici ekranı iter ve içerik türüne ve dosya uzantısına göre bir çizici seçer. Sonradan kaydedilen çiziciler eşitlikte kazanır (webapp/js/viewer.js:14-28, webapp/js/viewer.js:89-125).
| Çizici | Eşleşen | Özellikler | Kaynak |
|---|---|---|---|
pdf |
application/pdf veya .pdf |
Tuvale çizilen sayfalar, sayfa göstergesi ve gezinme, yakınlaştırma, indirme | webapp/js/viewer.js:151-380 |
image |
image/* veya .png, .jpg, .jpeg, .gif, .webp, .svg |
Görsel gösterimi ve indirme | webapp/js/viewer.js:381-456 |
Eşleşen çizicisi olmayan bir dosya indirme düğmesiyle viewer.unsupported gösterir; bir çizici hatası aynı düğmeyle viewer.error gösterir (webapp/js/viewer.js:98-123). openViewerFromPath önce bir yolu kimliği doğrulanmış blob olarak getirir (webapp/js/viewer.js:127-133). GET uçlu bir metadata aksiyonu sonucunu görüntüleyicide açar; bkz. aksiyonlar ve aksiyon kartı.
PDF kitaplığı yalnız bir PDF açıldığında içe aktarılır. İşçisi webapp/js/vendor/pdfjs/pdf.worker.min.mjs dosyasından çalışır (webapp/js/viewer.js:134-149). Depoya alınan derleme Apache-2.0 lisanslı pdfjs-dist 6.2.108 sürümüdür (webapp/js/vendor/pdfjs/README.txt).
Paylaşım kartı¶
openShareSheet(ctx) bir veya daha çok kaydın özetini ve üç hedefi içeren alttan bir kart açar (webapp/js/share.js:80-140).
| Hedef | Etiket anahtarı | Durum | Etki | Kaynak |
|---|---|---|---|---|
share.mail |
canlı | Bir konu ve gövdeyle cluster:share-via-mail yayar |
webapp/js/share.js:84, webapp/js/share.js:124-131 |
|
| Mesaj | share.message |
canlı değil | Yakında (common.coming_soon) gösterir |
webapp/js/share.js:85, webapp/js/share.js:132-134 |
| Yazdır | share.print |
canlı değil | Yakında gösterir | webapp/js/share.js:86, webapp/js/share.js:132-134 |
buildRecordShare konuyu <entity label>: <record title> yapar ve basit form alanlarından en çok 14 Label: value satırlık bir gövde kurar. buildRecordsShare birden çok kaydı her biri en çok 6 satırla listeler (webapp/js/share.js:15-57). Yalnız basit alan türleri okunduğu için kimlikler, dosyalar ve ilişkiler dışarıda kalır (webapp/js/share.js:15-33). Ana ekran cluster:share-via-mail olayını önceden doldurulmuş bir taslağı kuyruğa alıp Mail uygulamasını açarak işler (webapp/js/home.js:4658-4665).
Paylaşım bir kayıt kartının gezinme çubuğundan ve bir listenin seçim çubuğundan sunulur (webapp/js/gen-form.js:2330-2333, webapp/js/gen-list.js:641-643).
Kısıtlar ve doğrulama¶
- Dosya sürümü olmayan bir belge açılmak yerine
docs.no_filegösterir (webapp/js/record-docs.js:69-73). - Bloblar için oluşturulan nesne URL'leri kullanımdan sonra iptal edilir (
webapp/js/viewer.js:37-47,webapp/js/avatar.js:37-38). - Tarayıcı testleri:
web-client/_e2e_record_docs.mjs,web-client/_e2e_doc_viewer.mjs,web-client/_e2e_doc_version.mjs,web-client/_e2e_intranet_mydocs.mjs.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| record documents | record_documents |
Belgeler sağlayıcısı üzerinden herhangi bir kayda eklenen dosyalar. | Belgeler | webapp/js/record-docs.js:26 |
| document viewer | openViewer |
Bir dosyayı türüne göre çizen uygulama içi ekran. | belge görüntüleyici | webapp/js/viewer.js:89 |
| share sheet | openShareSheet |
Bir kayıt özetini bir hedefe gönderen alttan kart. | paylaşım kartı | webapp/js/share.js:80 |
İlgili sayfalar¶
- Web uygulaması platformu
- Genel form
- Mail ve profil ekranları
- Belgeler modülü
- Ekler, notlar ve depolama
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.