Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· MediaService
Sebuah percakapan mencapai telepon
Sebuah pesan pada baris Exec2Exec sekarang masuk ke ponsel penerima juga ke mereka konsol: telepon pelanggan ketika KamoCRM menjawab, setiap telepon anggota meja ketika Pelanggan menulis. Ini mengendarai presence- gated CHAT _ MESSAGE push, deep- link ke kamocopilot: / / execti2exec / < guid > (Dengan nama pelanggan di salinan meja), dan runtuh setiap percakapan sehingga ledakan adalah salah satu pemberitahuan, bukan sepuluh. Sebuah dorongan gagal dicatat dan tidak pernah berhenti frame konsol yang sudah keluar.
· kamo-internal
Kontrol Exec NavTop adalah meja untuk eksekutif KamoCRM
Untuk anggota dengan Exec2Exec Access berdiri di organisasi platform, kontrol sekarang menghitung pesan dari klien yang belum mereka lihat (GET * * * * * * * * * * * * * * dan membuka Interaction Center > Percakapan > Exec2Exec daripada percakapan mereka sendiri. Klien tidak melihat perubahan. - InteractionCenterIntent membuka panel pada tab dan ember. Ember perjalanan sebagai permintaan tertunda Panel Chats menghormati ketika Exec2Exec tab muncul, karena tab yang bergabung strip hanya setelah hak platform Muatan dan sebuah panel baru akan mendarat di tab pertama untuk selamanya. - Direktori ExeC2Exec baris pengelola Lencana Unreadcount, server yang sama menghitung, sehingga lencana dan baris itu terbuka ke setuju; seorang rekan jawaban tidak lagi lencana baris. - useExec2ExecDeskUnread bertanya lagi ketika meja unread snapshot bergerak atau tab kembali, dan terus nomor terakhir pada permintaan gagal.
· MediaService
Jumlah meja dari pesan klien belum dilihat
GET * * * * * * * * * * * * * * mengembalikan berapa banyak pesan dari klien ini EXEC2EXEC _ ACSESS pemegang belum dilihat, di setiap percakapan, dan setiap baris daftar membawa pelanggan Unreadcount. Ini adalah Platform yang tidak dibaca dipersempit dengan apa yang pelanggan katakan: seluruh meja duduk di setiap obrolan, sehingga jawaban rekan adalah tidak dibaca untuk orang lain tanpa menunggu salah satu dari mereka. Satu query feed keduanya * * * * * * * * * * * * * * * Jadi lencana NavTop dan baris Interaction Center setuju.
· KlusterServices
Hubungi 911 dan 933 dari setiap ekstensi, dengan pemberitahuan email MLTS
Ekstensi tidak bisa mencapai 911: tidak ada rute outbound cocok 911 atau 933, jadi dari -internal jatuh ke nomor buruk dan dimainkan "tidak dapat diselesaikan sebagai dipanggil "tanpa pernah mengirim sebuah INVITE. startupsh sekarang membawa setengah rencana dialek dari memperbaiki: - 911 dan 933 adalah extensions yang tepat dalam [dari -process-custom], konteks gerbang luar tinggal di. Ekstensi yang tepat melebihi setiap pola di konteksnya, sehingga gerbang tidak dapat menangkap mereka, dan mereka melewatkan [kamo- outbound- diperbolehkan] daftar: setiap ekstensi dapat dial mereka dengan tidak Prefiks. Masing-masing berjalan langsung ke dari -magang-tambahan, di mana FreePBX 's routing outbound sendiri mengambil alih. - Font color = "# DF01D7" (kamo-e9 -notify) berjalan sebelum panggilan dialihkan dan dimulai kamo _ e911 _ notify.py dilepas, melalui TrySystem (Sistem)) hang channels-action digit oleh FILTER. - Kamo _ e911 _ notify.py mengirim kotak surat administrator platform melalui * * * * * * * * * * * * * dengan waktu, ekstensi dan yang nama, nomor panggilan dan lokasi yang disampaikan ke pusat 911. Ini menolak setiap penerima di luar kamocrm.com, mencoba lagi suatu awalan relay tiga waktu dan log setiap hasil untuk * * * * * * * * * * * * * * * Kapsulnya postfix sendiri tidak digunakan: ini relays melalui smtp.gmail.com dan antrian nya terjebak. Pemberitahuan ditulis ulang pada setiap boot; blok dialek ditambahkan sekali di bawah penjaga grep sendiri, seperti blok petugas. Setengah routing adalah data FreePBX, di luar repo ini, dan diterapkan pada k1m1: rute Emergency911 (darurat _ rute = YES, pola 911 dan 933, batang 1 (batang Telnyx), pertama dalam urutan, menimpa CID + 194929960) dan devices.Emergency _ cid + 194929960 pada semua 22 ekstensi. freepbx / test / test _ e911.py (stdlib unittest) periksa bahwa parses startuppsy sebagai Bash dan sebagai YAML, model pilihan ekstensi Asterisk 's untuk menunjukkan 911 dan 933 melewati gerbang sementara 10 digit, 11 digit dan angka 011 masih mencapainya, pin hook peringatan ke NoOp / TrySystem / Return dengan argumen disaring, dan drive notifier terhadap relay palsu.
· kamo-marketing
Daftar nomor telepon pada halaman Inggris saja
showsPhone (lokal) dalam aplikasi / lib / fone.ts adalah aturan tunggal, saat ini lokal = = "en". PhoneLink mengembalikan apa-apa di tempat lain, yang mencakup header, menu mobile dan footer, dimana angka berdiri sendiri. Hanya Telepon membungkus plakat yang membawa lebih dari jumlah - kartu kontak, dan "Beri kami panggilan:" lead-ins di rumah CTA strip, Enterprise kartu harga dan halaman demo - sehingga kata-kata mereka dan jarak pergi dengan itu. Organisasi JSON- LD menambahkan telepon ke org dan ContactPoints nya Pada kondisi yang sama, sehingga tidak ada markup lokal lainnya mengklaim nomor tersebut.
· kamo-marketing
Biarkan logo memimpin rumah, dan daftar nomor telepon di mana pengunjung memutuskan
Masukan header Rumah menduplikasi logo, yang sudah terhubung ke /. Ini hilang dari desktop dan menu mobile; di tempatnya logo membawa sebuah hover / fokus tooltip yang mengatakan itu akan pulang (meninggalkan halaman halaman itu sendiri, di mana ada tempat untuk kembali). (949) 298-9960 sekarang tap- to- link panggilan: - header, berpusat antara nav dan pemilih bahasa (xl dan up; baris lg tidak memiliki ruang untuk itu), dan dalam menu mobile dengan CTA - Kaki, di bawah ikon sosial - halaman kontak, sebagai kartu Call Us menuju pilihan kontak - Strip CTA rumah, kartu harga Enterprise dan halaman demo, di samping ada panggilan untuk dijalankan - Organisasi JSON- LD, sebagai telepon pada org dan kedua ContactPoints Jumlah kehidupan sekali dalam aplikasi / lib / fone.ts; PhoneLink menjadikannya dan laporan klik melalui data- trek sebagai telepon - klik dengan lokasinya.
· kamo-internal
Satu brand- cat dropdown permukaan untuk seluruh atas bar
Setiap dropdown yang hang off NavTop - delapan menu pilihan (Surat, Dok, Panggilan / Teks, Kalkulator, Dukungan, Pengaturan, Linux Desktop, Games), pil yang tersedia dan picker bahasa - kini terbuka menjadi SATU berbagi permukaan bukannya sendiri MuI putih popover. - Terlukis dalam warna utama organisasi dengan label putih dan ikon. Tepi atas duduk flush di tepi bawah bar, dalam warna bar sendiri di tempat itu (gradien berhenti sekarang hidup di navtop / menu / navTopSeam.ts dan NavTop membangun latar belakang dari mereka), dengan sudut atas persegi dan concave bergabung kedua sisi, sehingga membaca sebagai bar mencapai bawah daripada panel diletakkan di atas halamannya. Sebuah merek terlalu ringan untuk teks putih gelap dalam hue sendiri hanya sejauh WCAG AA kebutuhan (langit-langit bercahaya di CSS relative- matematika warna); setiap merek lain digambar sebagai dipilih. - Buka di bawah mouse beristirahat, mengikuti penunjuk sepanjang bar - permukaan glides dan resize ke menu selanjutnya ketika isi slide ke arah perjalanan - dan melipat kembali ke bar tak lama setelah pointer daun baik pemicu dan panel. Klik atau tekan pin itu sampai sebuah tekan luar, Escape atau sebuah pilihan; sebuah tap tidak pernah memfokuskan sebuah bidang teks. - Papan Ketik: Enter / Space / ArrowDown terbuka ke baris pertama, panah berjalan baris, Home / End, ketik-depan, Kanan / Kiri buka dan grup tutup dan langkah ke menu tetangga, Escape hands fokus kembali ke pemicu. - Satu sorot yang meluncur dari baris ke baris, kelompok yang terbuka di bawah baris mereka pada benang panduan, Satu cincin pada lencana penghitungan, keseimbangan Cheddar menghitung. Semua gerak off di bawah gerakan berkurang. - Pengaturan mendapat kotak pencarian yang mencari di dalam kelompoknya dan menandai kecocokan; Masukkan membuka pukulan pertama. Picker bahasa adalah grid dua kolom dari semua 22 bahasa, dapat dicari dengan nama asli, Nama Inggris atau kode. Pengaturan pin toggle dan dompet Cheddar berubah putih pada merek dan tidak berubah di rel. Rel-out tidak berubah - rel sudah mengintip terbuka pada hover. Ketika menu dibuka, switch dan menutup adalah sebuah Reakt- free state machine (navtop / menu / hoverIntent.ts) dengan tes sendiri. Diverifikasi dalam Chrome nyata terhadap komponen nyata (esbuild harness, sumber data stubbed): 170 diukur cek 11 merek - hover waktu, lapisan flush dan sudut, kedua concave bergabung, teks putih pada 4.5: 1 atau lebih baik pada setiap bagian dari panel, tinta putih seluruh, meluncur antara menu, rahmat meninggalkan, diagonal di tetangga tidak mencuri menu, klik-to- pin, sentuh, keyboard, baik pencarian dan gerak berkurang. 287 tes di navigasi dan suite navtop, tsc, dan image- membangun penjaga terhadap kamus saat ini en.json.
· MediaService
Seat seluruh meja di setiap obrolan, menunjukkan siapa yang di atasnya, menutup feed percakapan
- Keanggotaan berdiri: Setiap pemegang EXEC2EC _ ACSESS eksplisit duduk di setiap Exec2Exec percakapan. Exec2ExecDeskReconciler kursi dan unseats dari hibah pada secuityservice exec2exec.desk.changed event, sebuah menyapu 5 menit, startup, dan kapanpun sebuah obrolan dibuka atau diisi ulang; meja dibaca ulang setiap percakapan sehingga menyapu tidak dapat membatalkan hibah pod lain hanya diterapkan. - GET / chat / {id} / partisipan daftar eksekutif KamoCRM pada percakapan (memberl, userId, name, jobtitle). - Baris pengirim membawa pengirim Telepon (tingkat atas org Telepon (Main))) dan senderPhoneExt (ekstensi VOIP yang diaktifkan, selain anggota tim-satu) untuk Staf KamoCRM. Penyambutan selalu ditandatangani oleh Tuhan. - Roster baris membawa awaitingDesk (pelanggan berbicara terakhir) untuk konsol tanda-di menyapu. - Keamanan: / topik / obrolan / kedatangan / {memberId} dan / topic / chat / unread / {memberId} mungkin sekarang akan berlangganan hanya oleh anggota itu dan tidak pernah dikirim oleh klien. Keduanya tidak dijaga, jadi setiap signal klien bisa mengikuti setiap anggota kedatangan dan tidak dibaca oleh id. - Tambah / hapus / tinggalkan / ganti nama rute anggota menolak Exec2Exec sesi (409 MEMBERSHIP _ MANAGED): pendamahan memiliki keanggotaan tersebut. - Email offline: pesan pelanggan mengirimkan meja, jawaban eksekutif email hanya pelanggan, bukannya setiap eksekutif tentang segala sesuatu. - Kembali Isi pujian dan kursi dalam transaksi yang membuka obrolan, jadi Jawaban pertama pelanggan tidak pernah ditandai membaca untuk meja.
· kamo-marketing
Tangan Google tanda hijau-ubin, karena daftar ikon terbesar yang kita nyatakan
Pencarian menunjukkan satu ikon per situs dan mengambil yang terbesar yang dideklarasikan, apple-touch-icon termasuk, sehingga 180px sentuh ikon (ikon kita dan tema) outtranked segala sesuatu yang lain. A 192px apple- touch-icon sekarang Mengharukan keduanya. Piksel adalah tanda hijau 96px dua kali lipat exactly, so Google 's downscale gives back the original. Tab menjaga favicon.ico, iOS menyimpan tepat 180 pertandingan untuk rumah layar, dan tidak ada logo pada perubahan halaman. Ubin new-tab peramban yang ingin ikon terbesar akan memilih yang satu ini.
· kamo-internal
Tampilkan siapa dari KamoCRM adalah pada chatting, dan bagaimana mencapai mereka
Jendela pelanggan sekarang daftar eksekutif KamoCRM pada percakapan mereka, baca ulang ketika seseorang ditambahkan atau dihapus. Jalur ini menunjukkan hanya NurnaI, dengan Judul pada hover: "Nama - Judul" per orang berlari meja menjadi satu run-pada yang dipotong setelah eksekutif pertama, sehingga pelanggan tidak bisa lagi melihat siapa lagi ada di sana - satu hal strip adalah untuk. Memuat, kosong dan gagal digambar terpisah; "tidak ada dari KamoCRM adalah pada obrolan ini" adalah sesuatu pelanggan bertindak. Seorang eksekutif KamoCRM 's atcomplications line sekarang berakhir di jalur utama org dan mereka ekstensi sendiri - "Sage Nadjaminia - KamoCRM Inc. - Presiden - (949) 298- 9960 x8080 "- melalui signaturePhone, tidak berubah, sehingga mencetak persis sebagai email Tanda tangan tidak. Separator adalah "-" di mana-mana, untuk mencocokkan. Frame keanggotaan tiba dengan id: null, sehingga mereka ditangani sebelum transkrip 's "no id, drop it" guard; di balik itu mereka diam-diam dibuang.
· SecurityService
Katakanlah ketika meja berubah
Menghasilkan atau mencabut Akses Exec2Exec sekarang menerbitkan eksekutif 2exec.desk.berubah, jadi MediaService dapat menempatkan eksekutif pada setiap obrolan - atau melepas mereka - sebagai ubah pada platform -admin halaman bergerak, daripada kapanpun menyapu berikutnya lari. Setelah melakukan, bukan inline: MediaService mengambil seluruh meja dari basis data dan tidak pernah mempercayai payload, sehingga sebuah rolled-back hibah tidak dapat duduk siapa saja - tapi inline mempublikasikan ras komit, dan sebuah perdamaian yang berbunyi Pertama berdamai dengan meja lama. Muatannya untuk log, bukan logika. Ini diterbitkan ketika kanan diadakan sebelum DAN setelah juga: kembali menyelamatkan Eksekutif adalah cara alami untuk menempatkan mereka kembali pada chatting setelah acara yang tidak terjawab.
· kamo-shared-library
Membawa saluran telepon eksekutif pada pesan
ChatMessageDto memperoleh senderPhone dan pengirim PhoneExt, hanya ditata ketika pengirim adalah staf KamoCRM: platform org baris utama ditambah ekstensi yang dicapai Orang itu, sebagai tanda tangan email sudah mencetaknya. Salinan relay dari allowlist, so a field this class does not declare reached no browser - history akan membawa nomor sementara setiap pesan hidup tiba tanpa itu. Satu-satunya komentar penemu tidak lagi memberitahu penelepon itu adalah jawaban yang salah. Untuk meja Exec2Exec sekarang persis yang tepat, sengaja: requesters made the toggle on the platform-admins page the single control over yang duduk di obrolan eksekutif.
· kamo-internal
Berhenti di Interaksi Center yang disematkan; jaga jendela di bawah setiap menu
Dua diikuti -up ke 0c5ef994 (memaksimalkan di samping navigasi). Sebuah Pusat Interaksi PINNED sekarang mengambil lebar dari maksimum panel. Dijepit, panel bekerja bersama layar, sehingga dimaksimalkan jendela dan strip tab nya berhenti di tepi kiri panel daripada berjalan di di bawahnya. Panel menerbitkan lebar pada variabel CSS ketika disematkan AND open (useInteractionCenterReserve) and paneGeometry subtracts it, the way variabel rel sudah bekerja; panel ditarik pada string yang sama, jadi keduanya tidak bisa tidak setuju. Unpinned, panel masih sebuah modal atas coretan dan jendela terus lebar di belakangnya. Unpinning, closing and unmount all menarik cadangan. Tutup lebar navigator mengukur ruangan ke Tepi panel juga. Menus tidak lagi terbuka di balik jendela perkakas. Penghitung z toko (tool- core, bersama dengan ponsel) memanjat pada setiap terbuka, meningkatkan dan fokus dan tidak pernah reset; dicat mentah, sesi panjang membawa jendela masa lalu MUI 1300, dan setiap menu, popover dan dialog dalam aplikasi kemudian dibuka BEHIND mereka - di DOM, diposisikan, tak terlihat. Dermaga sekarang membaca counter untuk ORDER hanya dan melukis setiap jendela pada peringkat dalam sebuah band kecil di atas 200 (windowStack.ts), sehingga menumpuk toko memutuskan disimpan dan tidak ada jendela pernah mencapai menu lapisan. Nav 's lift lebih dari panel maksimal menggunakan tingkat cat yang sama, jadi itu tetap di bawah menu juga. Diverifikasi dalam krom nyata: jendela dan strip ujung di tepi panel disematkan (890px dari 1440), sebuah panel overlay tak terikat tanpa mengalir kembali, dan setelah 2.000 focus click (the counter past 1300) a menu at MUI 's default layer still lukisan di atas jendela.
· kamo-internal
Maksimalkan di samping navigasi, bukan di atasnya
Sebuah jendela alat yang dimaksimalkan dipakai untuk mengambil seluruh viewport. Ini, navigator nya kolom dan jalur tab nya semua disematkan di (0,0) di tingkat stacking dermaga, lebih dari kedua nav - sehingga anggota membaca sebuah jendela maksimal bisa mencapai tidak navigasi sampai mereka menyimpannya. Panel sekarang semuanya di bawah NavTop dan hak NavPri. Jendela, navigator dan strip mulai di tepi rel dan di bawah bar, membaca dari Sama dengan dua variabel CSS AuthedChrome offset halaman sendiri kotak isi oleh (paneGeometry.ts), sehingga diperluas rel bergerak halaman dan panel bersama-sama. navigator dan strip slide di dalam clipping slot, sehingga mereka keluar dari di belakang rel dan bar daripada di seberang mereka, dan ketiga mengikuti rel terbalik dengan jendela sendiri-dan-jejak waktu. Sementara sebuah jendela dimaksimalkan, nav juga harus bekerja di atasnya: - Sebuah pilihan yang masuk ke PAGE mengumumkan nav: halaman pertama, dan setiap jendela masih pada layar dimasukkan sebagai hexhead - jika tidak halaman akan dimuat di bawah panel. Mengklik halaman Anda juga menghitung: itu meminta untuk melihat halaman itu. - Pilihan yang membuka WINDOW TOOL menandai perangkatnya: terbuka dengan asal: 'nav', Dan satu corong setiap terbuka melewati gilirannya yang menjadi memaksimalkan Benar. Jendela baru mengambil panel, yang lama pergi ke hexhead melalui swap toko sendiri, dan navigator dan tab mengikuti jendela baru - ke embernya, ke daftar terminal, atau pergi untuk alat tanpa navigator. Keduanya hanya berlaku saat jendela memegang panel (panggilan anggota). Dengan tidak ada yang memaksimalkan klik nav berperilaku persis seperti sebelumnya. Aturan yang murni (navPaneRule.ts) dan nav hanya mengumumkan (app / lib / navIntent.ts); * * * * * * * * * * * * * gagal pada alat telanjang: terbuka atau router. push tertulis ke permukaan navigasi. Terselubung: baik pilihan nav 'dan menu, Pengaturan, palet perintah, logo, KamoMobile, pil rencana, link NavTop dan bell, tombol Exec2Exec, dan baris Interaction Center. Gagal tetap dalam perubahan yang sama: - Rel hover-mengintip dan Interaction Center (panel dan backdrop) duduk di z 26- 30 di bawah panel di 201 dan mendaki, sehingga sekali nav itu dicapai mereka Terbuka BEHIND itu. Lapisan navigasi diangkat di atas panel dengan sendirinya level ketika satu ditahan, menjaga perintah mereka (navLalerZ, menggunakan MaximizedPaneZ). - Pelaut navigator dihitung lebar sebagai penunjuk x, benar hanya sementara navigator dimulai pada 0. Ini mengukur dari tepi kiri navigator sendiri sekarang, dan tutup lebar pada share dari panel daripada layar. - Catur dan Hold 'em memilih tata letak mereka dari jendela. lebar dalam ketika dimaksimalkan terlalu lebar oleh rel, dan basi pada toggle rel. Mereka mengukur sendiri root (useMeasuredBox, pindah ke alat / untuk dibagi); * * * * * * * * * * * * * * * terus seperti itu.
· kamo-shared-library
Daftar anggota yang memegang platform kanan
countHoldersof menjawab berapa banyak; meja Exec2Exec membutuhkan siapa. Sertakan baris Hanya saja jawaban yang salah untuk "yang bekerja di meja" - pemilik tingkat atas memegang setiap platform kanan tanpa baris sama sekali - jadi ini adalah salah satu lengan jawaban itu, dan penelepon menambahkan pemilik dan cek pekerjaan.
· kamo-internal
Saluran eksekutif di konsol
Garis langsung antara eksekutif pelanggan dan eksekutif KamoCRM: obrolan setengah dari jendela dukungan tanpa tiket, tanpa status, tanpa peringkat dan tanpa antrian. THE TOOL WINDOW. Direktori sendiri, karena draft guard memecahkan alat berkas dari folder sendiri - dan melewati VACUUSLY untuk sebuah tombol chat-only, karena tektarea komposer tinggal di aplikasi / komponen / obrolan. Oleh karena itu penjaga dekat adalah tulisan tangan, tidak disebutkan dari kutu hijau. THE ATRIBUTION LINE. Nama, organisasi dan jabatan resmi pada satu baris yang digunakan untuk memegang nama, dan di KEDUA sisi - titik saluran adalah yang kepala surat seseorang menulis di bawah, yang berlaku untuk anggota yang lebih tua sendiri pesan dari organisasi yang berbeda juga. Sisi pesan dihitung dari id pengirim USER pada render dan tidak pernah disimpan; sisi yang tersimpan adalah apa sekali Membuat gelembung tanah di sisi yang salah tidak diproduksi. Kebanyakan eksekutif tidak memiliki pekerjaan judul dicatat, sehingga dua bidang adalah pemandangan normal dan tidak ada gantung pemisah. NAVTOP. Kiri dari bel, dalam krom tetap dan sengaja keluar dari NAV _ REGISTRY - tidak ada flag "tidak dapat digerakkan" dalam codebase ini, dan tetap keluar dari registry IS bagaimana sebuah ikon dibuat unhideable. Ini mengirimkan sendiri secara eksplisit percakapan: alat ini ditutup pada satu instansi, dan terbuka tanpa propless dari sebuah alat yang dicap adalah kenaikan, bukan navigasi, sehingga tombol akan dinyatakan Bangkitkan kembali eksekutif mana yang Interaction Center terakhir dibuka. Lencana nya menghitung percakapan pemirsa sendiri, tidak pernah total meja - operator adalah pihak untuk setiap percakapan mereka menjawab, dan mengklik kontrol pribadi tidak dapat jelas orang lain yang belum dibaca. INTERAKSI CENTER. Sebuah ember ketujuh, kanan Anggota Tim, terlihat hanya untuk pemegang EXEC2EXEC _ ACSESS di dalam platform org. Ini daftar pengguna, bukan sesi - kebanyakan dari mereka tidak pernah menulis apa-apa - dengan organisasi mereka sendiri disingkat ke "Acme + 3", daftar lengkap dalam tooltip, dalam atribut judul dan di baris aria- label, sehingga terjangkau tanpa hover. ALL _ BACKETS adalah keduanya strip dan saved- preferensi allowlist, jadi satu turunan feed daftar terlihat ketiga pembaca dan anggota yang dikembalikan ke tab yang tidak dapat mereka lihat lagi adalah Bounded daripada terdampar pada nilai Tab tanpa Tab. Selamat datang. Kontrol writeable pertama yang pernah ditempatkan di platform Jenderal tab. Isi Kembali duduk di belakang konfirmasi dan melaporkan apa yang dilakukan, itu bergerbang pada EXEC2EXEC _ AKSESS daripada hak tab sendiri, karena menekan itu menulis pesan ke percakapan orang-orang.
· SecurityService
Simpan Pesan Selamat Datang
Sambutan platform mengirim pertama lebih dari Exec2Exec, pada platform config Singleton mana setiap platform lain-luas pengaturan sudah hidup. Dua titik akhir baru daripada dua kunci lebih lanjut pada / sistem- config, dan itu adalah titik seluruh perubahan: the singleton 's GET tidak memiliki filter per-field sama sekali - Tidak sah Fields mengatur hanya menulis - jadi akui PLATFORM _ GENERAL ke gerbang manapun akan menyerahkan setiap operator Umum URL dasar KamoPBX, ID akun utama, nama akun, pengguna administrator, realm dan titik akhir WSS, plus id model ekstraksi. Satu bidang teks mereka berhak, dalam pertukaran untuk dua tab lainnya. Kosong simpan sebagai null: tidak dikonfigurasi dan konfigurasi -to -tidak sama instruksi, dan Isi Kembali adalah sebuah no- op dalam keadaan itu. Hak itu sendiri dipaksa dalam MediaService, di mana percakapan tersebut, jadi PlatformRightCovereTest catatan di bawah ENFORCED _ ELSEWHERE dengan file yang Tahan gerbangnya.
· MediaService
Sajikan saluran eksekutif
Sebuah percakapan dengan aturan penontonnya sendiri dan tidak ada mesin tiket, berikut Bentuk SystemBug: paket sendiri, pengendali sendiri, visibilitas sendiri, dan Mediasesi / MediaObj kembali digunakan untuk segala sesuatu di bawahnya. Tidak ada yang harus ditekan dari antrian dukungan karena sebuah obrolan tanpa baris tiket tidak pernah Masuklah. Eligibilitas (Exec2ExecEligibility) adalah Anggota polos dari tingkat atas org OR pemilik dari org apapun mereka ditandatangani ke - dan "pemilik" adalah dua fakta, bukan satu: Tanda Anggota Tim DAN orgs.user _ id _ owner, karena platform 's sendiri org dimiliki tanpa pemiliknya selalu membawa bendera. Gerbang kanan platform hanya sisi KamoCRM, dan terus menerus melalui SessionPlatformFact, tidak pernah Otoritas Helper.hasRight, yang melewati bendera GD telanjang. Setiap pesan membawa nama, org dan jabatan resmi, diselesaikan langsung dari id anggota penulis - anggota UNIQUE (ORG _ ID, USER _ ID), sehingga id sudah nama, permanen, yang organisasi seseorang menulis dari. Tidak ada Snapshoted ke baris. Sebuah Anggota polos tidak memiliki gelar pekerjaan sama sekali, yang merupakan kasus normal untuk populasi yang melayani, sehingga garis degrade ke dua bidang daripada trailing sebuah pemisah. Satu percakapan, dua alamat (chat id dan session guid), karena peramban memegang guid - itu adalah kunci draft komposer, kunci yang belum dibaca dan StoMP topik - sementara baris yang keyed oleh id. Kedua menyelesaikan ke baris yang sama; baik adalah untuk merapikan diri. Mengumumkan pesan penggemar keluar semua tiga frame, bukan hanya topik sesi: topik hanya sebuah jendela terpasang subsaits untuk adalah bagaimana lencana gagal untuk bergerak sampai halaman reload. Penulis penyambutan sengaja TIDAK bergabung dengan sesi - anggota SYSTEM platform adalah tanda-nyata secara pribadi, dan bergabung dengan mereka menempatkan setiap percakapan tentang penyebaran menjadi bahwa satu manusia unread snapshot. Baris keanggotaan kedua untuk pengguna yang sama membawa pointer baca mereka yang ada Ganti. Aturan yang belum dibaca adalah setiap MEMBER dan fitur ini adalah salah satu tempat satu USER memegang beberapa, sehingga pointer segar dihitung segala sesuatu yang mereka telah ditulis dari mereka organisasi pertama sebagai unread terhadap diri mereka sendiri. Eligibilitas lebih luas daripada salam dengan tujuan: pemilik org mendapatkan saluran, tapi Pesan Selamat Datang ditujukan, seperti yang dispesifikasikan, untuk kamokrm sendiri Anggota biasa. DDL adalah dengan tangan (ddl-auto: none, Penginisiasi Layanan tidak digunakan) dan sudah diaplikasikan ke cluster; * * * * * * * * * * * * * * * adalah catatan.
· kamo-shared-library
Yayasan Saluran Eksekutif
Satu percakapan antara eksekutif pelanggan dan KamoCRM Para eksekutif, lebih suka USER daripada anggota - yang memungkinkan ikuti seseorang yang memiliki empat organisasi dari mana mereka ditandatangani ke dalam, sedangkan setiap partai masih disimpan sebagai anggota id sehingga setiap catatan pesan organisasi mana yang penulis menulis dari. - MediasionType.EXEC2EC (5) - ditambahkan, tidak pernah dimasukkan; kolom adalah @ Enumerated (ORDINAL). Tidak berbentuk seperti SUPPORT _ TIKET: tidak ada status, tidak ada antrian, tidak ada tugas, tidak ada yang menutup. - * * * * * * * * * * * * - menambahkan terakhir, karena getSortOrder () kembali ordinal (). Ini gerbang yang menjawab meja, tidak pernah yang berhak satu; bertemu dua akan menyerahkan setiap eksekutif meja. - Exec2ExecChat, sebuah satelit di tulang belakang Mediasesi seperti SystemBug, dengan UNIQUE pada USER _ ID: "hanya ada satu percakapan Exec2Exec" adalah basis data bukan sebuah konvensi, yang merupakan apa mengendap ras antara Tombol NavTop dan auto- buka menyelesaikan obrolan yang sama pada satu tanda-in. - ChatMessageDto memperoleh * * * * * * * * * * * * * * * Relay salinan dari allowlist, sehingga sebuah field tidak mendeklarasikan mencapai tidak ada peramban di semua - sejarah akan membaca dengan benar sementara pesan hidup menunjukkan nama kosong. - * * * * * * * * * * * * * * salam yang dikirim platform pertama. - Find ChatChatHimbershipsByAnggota names EXEC2EXEC. Query itu adalah sebuah ALLOWLIST, dan meninggalkan jenis itu adalah seluruh alasan percakapan sosial bisa sekali tidak pernah menunjukkan jumlah yang tidak terbaca di mana saja.
· kamo-signer-monorepo
Gambar dinding org di balik setiap halaman, dan salinan putih di atasnya
merah-tanda adalah satu putih dilabeli permukaan masih melukis abu-abu datar. Sekarang memainkan mengundang latar belakang organisasi fotografi cara kamo- login, kamo- register, konsol dan KamoMeet sudah melakukan - * * * * * * * * * * * * * * * * * backgroundImageCount '< Basis > / img / bg / {n} .webp', 'backgroundOrder' dihormati, 8 s tetap dengan sebuah crossfade 1.2 s yang berhenti di bawah prefer -reduced-motion, 404s diturunkan, dan primer org di atasnya di 6%. 'Organ Latar Belakang' tinggal di @ kamo / tema, di samping sisa dari Konvensi-aset, jadi Signer memiliki satu salinan daripada tangan kelima digulung. Ini memecahkan siput pada setiap lulus and re- probe on KAMO _ THEME _ REAPPLY: the layout mounts before any token has been validasi, so pengirim tidak diketahui pada cat pertama dan dikenal hanya sekali sesi tanah. * * Ini menghasilkan apa-apa sama sekali ketika org tidak memiliki wallpapers * *, dan segala sesuatu yang menjawab untuk itu Digated pada fakta yang sama melalui 'useorganable Wallpaper ()'. Salinan putih atas '--background' - yang pada th penyewa adalah # ffilly - akan terlihat, jadi ini tidak boleh menjadi warna tanpa syarat. Dikaitkan pada empat akar, tidak pernah di dalam layar: fase dibungkus dalam sebuah 'motion.div' yang animata 'y', dan nenek moyang yang berubah adalah blok yang mengandung, jadi 'posisi: tetap' lapis di dalam satu slide dengan transisi bukannya berdiri masih di belakangnya. - * * Sebuah 6% warna adalah warna, bukan scrim. * * Tubuh putih menyalin atas 'crm "s wallpaper - hutan diterangi matahari - ukuran 1,6: 1 dengan mencuci saja, dan kamo-login 'kontes lebar' rgba (2,0,36,0.2) hanya 0.05 ' sampai ~ 2: 1; ia lolos dengan itu karena setiap kata itu menunjukkan duduk di dalam kartu beku. Layar pelengkapan tidak memiliki kartu, sehingga gelap adalah radial berpusat di bawah linier gradien, disetel dengan sampling dirender pixel. Diukur terhadap kedua penyewa nyata, setiap baris Sekarang membersihkan AA: 8.5: 1 untuk judul, 5.5: 1 untuk footer, terburuk kasus 5.5: 1. - * * Layar pelengkapan pergi putih * * - pos dan petunjuk download dengan tiga baris dilaporkan, karena mereka berbagi satu permukaan dan setengah fix dibaca sebagai bug. - * * Logo A adalah warna apapun yang dipilih penyewa. * 'crm "s adalah dekat - hijau hitam, tak terlihat pada foto di bawah coretan. Theme Logo mengambil sebuah 'overlayColor' dan topeng karya seni ke silhouette, sama mekanisme kamo- login dan KamoMeet gunakan untuk org 's logo-overlay sendiri setting; signer melewati # ffilly persis ketika wallpaper up. - * * The welcome screen 's "message from" card was a 4% wash over' transparan '* * - on the flat latar belakang yang dimaksudkan dekat-putih warna, lebih dari foto 96% foto, dengan kutipan gelap di dalamnya. Ini mencampurkan ke # fff pada wallpaper sebagai gantinya. - * * The public quote page * * get it too, tinted from its own '--quote- primary' and hidden in '@ media print' - apa file pelanggan tetap kertas putih. org alias dibaca dari '/ public / < alias > /' segmen dari URL letterhead bahwa 'QuoteMapper.the ma Asset' telah membangun, daripada menambahkan sebuah field ke 'PublicBranding' dan menyebarkan kembali dua layanan Java untuk Stylesheet. Aturan pencetakan mengulangi 'html [data- kamo- wallpaper]' selector di full spesifikasi: sebuah kueri media tidak menambahkan satu pun dari sendiri, sehingga kosong '.quote- halaman' ada akan kehilangan ke aturan layar dan mencetak halaman transparan. Diverifikasi dalam browser terhadap 'crm' dan 'sign- pink' keluar dari ember tema hidup - selamat datang, persetujuan, area kerja dokumen dan pelengkapan - dengan kontras diukur dari piksel yang dirender bukan daripada eyeballed.
· kamo-internal
Selesai halaman kategori - lebar, satu panah belakang, kata sebenarnya
Ketiga manajer ditulis untuk duduk di dalam tab bersarang dari tab. Sebagai halaman mereka sendiri mereka membutuhkan ruang yang sekarang mereka miliki. - Konfigurasi capped sendiri di 560px, sehingga dua switch duduk di kolom dengan sebagian besar dari layar lebar kosong di samping mereka. Mereka adalah grid yang mengisi lebar dan Lipatan kembali ke satu kolom di bawah 360px masing-masing. - Dua panah belakang menunjuk di tempat yang sama - satu di breadcrumb, satu di samping Gelar. Jejak ini disebut sebagai jejak sekarang; panah adalah satu-satunya "kembali". - Doc Types adalah tab sebagian besar organisasi tanah pada dengan apa-apa di dalamnya, dan yang keadaan kosong, toogle nya tooltip dan lima pesan galat nya tidak diterjemahkan Inggris. Keadaan kosong juga memberitahu pembaca untuk mengklik tombol yang sudah aktif layar; ia mengatakan apa tipe dokumen adalah untuk gantinya. - Dua tombol yang berteriak dalam uppercase baku MUI. Memuat kategori tidak lagi menset keadaan secara sinkron di dalam efek - Aturan Pengkompailer Rect menolak bahwa sebagai render cascading, dan mengulang sekarang tonjolan tanda dari klik sebagai gantinya. Pengambilan dibatalkan saat turun.
· kamo-internal
Kategori adalah tabel, dan masing-masing membuka sebagai halaman sendiri
/ settings / features / docs membawa delapan tab: Umum, maka tujuh yang masing-masing dikait tiga manajer yang sama melawan koordinat yang berbeda. Tujuh salinan dari satu layar, dan empat dari mereka mengedit hal yang salah. The ordinals were written when ImageAsnose Type was six constants long. Menambahkan konstanta dan memberikan mereka ID eksplisit pindah CALL _ RECORDING dari 3 sampai 7, dan halaman tidak ada cara untuk pemberitahuan: tab berlabel "Call Recording" telah disunting MY _ DOCS, "Dokumen saya" MEET _ recording, "Meet Recording" SISTEM _ WIDE, "Sistem- Wide" VM _ RECORDING, dan CALL _ RECORDING tidak bisa dihubungi. Tidak ada yang gagal, karena koordinat selalu kategori yang valid. Sementara itu kategori yang tidak pernah memberikan tab mengadakan pekerjaan aktual - organisasi ini tiga puluh enam jenis doc semua duduk di LOAN, yang halaman tidak bisa terbuka sama sekali. Jadi halamannya adalah dua tab sekarang. Umum mengatakan apa manajemen dokumen adalah; Kategori adalah tabel dari setiap kategori ORGANIZATION dapat mengatur, disajikan oleh DocsService dari enum sendiri, dengan folder, tipe doc, tipe didefinisikan, menumpuk perintah dan dokumen disimpan di samping masing-masing. Baris dibuka sebagai halamannya sendiri di bawah * * * * * * * * * * * * * * * cara penyedia telepon tidak - breadcrumb kembali ke tabel, gradien header yang sama, dan konfigurasi / tipe Doc / Menyusun Perintah sebagai tab nyata daripada yang abu-abu bersarang di dalam panel. URL membawa NAMA enum, tidak pernah ordinal, sehingga link disimpan hari ini bertahan konstan berikutnya seseorang appends. Hal-hal kecil ini perbaikan dalam perjalanan masa lalu: - Tab Umum telah render "Deskripsi", "Kategori Tajuk" dan "Tubuh Kategori" - placeholder tidak ada yang diisi masuk - Pengaturan launchpad dan menu pengaturan terdaftar semua tujuh tab mati. - Kategori yang tipe doc tidak pernah dapat berlaku (Materials Pemasaran) tidak lagi menawarkan tab Dok Types, salah satu jenis doc yang hanya dimatikan mengatakan begitu, di samping switch, daripada membiarkan seseorang mendefinisikan tipe yang tidak melakukan apa-apa. - TypeSettings memegang tab bar bersarang tua dan tidak memiliki penelepon tersisa.
· DocsService
Servis kategori dokumen dari enum yang mendefinisikan mereka
Halaman pengaturan dokumen bernama kategori sendiri dan mengirim koordinat yang dia yakini masing-masing memiliki. Mereka ordinals ditulis ketika ImageAstist Tipe adalah enam konstanta long; menambahkan konstanta dan memberikan mereka ID eksplisit dipindahkan CALL _ RECORDING dari Koordinat 3 sampai 7, dan halaman tidak pernah melihat. Tab berlabel "Call Recording" telah mengedit MY _ DOCS, "Dokumen saya" telah mengedit MEET _ RECORDING, "Meet Recordings" telah mengedit SYSTEM _ WIDE, "Sistem- Wide" telah mengedit VM _ RECORDING, dan CALL _ RECORDING tidak dapat dihubungi. Tidak ada yang gagal, karena Koordinat selalu kategori yang valid - hanya bukan yang Anda maksud. GET * * * * * * * * * * * * * * jawaban dengan daftar enum itu sendiri mendefinisikan, sehingga koordinat dan nama selalu meninggalkan di sini bersama-sama dan penelepon tidak perlu menebak baik. Kategori memenuhi kualifikasi ketika folder atau tipe doc berada di atau organisasi - menetap - tepat "ada sesuatu di sini untuk mengatur", yang menjatuhkan asosiasi yang ada hanya sebagai pipa (cuplikan bug, gambar bingkai foto, sebuah resume pada sebuah aplikasi pekerjaan). Setiap baris juga membawa jumlah tabel pengaturan yang ditampilkan: tipe doc didefinisikan dan aktif, menumpuk perintah, dan dokumen tersimpan. Tiga org- lebar baca dikelompokkan dalam memori daripada sebuah query per kategori, jadi satu permintaan mengisi seluruh tabel di mana halaman sebelumnya dibutuhkan ketiga puluh sembilan.
· kamo-signer-monorepo
Pemicu kompak bagi menu signed- copy
Daftar amplop pengirim dan setiap tabel paket yang ditugaskan memiliki baris, bukan slot pahlawan, dan pil berlabel tidak cocok satu. 'iconOnly' memberikan menu SAME ikon unduhan telanjang untuk dibuka. Alternatif adalah kata tunggal file download dalam setiap ruang ketat, yang adalah bagaimana "download tanda tangan salinan "datang berarti tiga hal yang berbeda pada tiga layar di tempat pertama.
· kamo-signer-monorepo
Kapal pengungkapan dengan kode, dalam dua kali- dua bahasa
'@ kamo / esign-core' sekarang membawa pengungkapan konsumen sendiri - enam clauses, setiap bahasa tanda-tanda produk dalam, dan 'congat Disclosure (lokal, merek)' untuk mengisi nama pengirim dalam. Itu di kamus kamo- signer; itu milik di sini karena dua alasan. Hal ini ditampilkan di dua permukaan, dan penandatangan berikut sebuah link email harus menyetujui ke kata yang sama dengan anggota penandatanganan yang sama dokumen dari dalam platform. And it is VERSIONED: 'consent _ disclosure _ VERSION' ditulis ke baris penerima pada waktu persetujuan dan dicetak pada sertifikat pelengkapan, jadi "mereka menerima pengungkapan" nama teks tertentu - yang tidak dapat dilakukan jika sebuah pipa terjemahan dapat merevisi kata-kata tanpa ada yang menabrak versi. Mengubah kata adalah benjolan versi di sini Dan di EsignService 's EsignCreated CateService. Sertifikat lama terus menyebutkan versi lama, yang merupakan titik memiliki satu. Langkah penerbitan sekarang menerima baik kredensial registry mengambil. NPM _ PUBLISH _ TOKEN keluar sebagai pembawa token, yang adalah apa kamo-js menggunakan dan apa yang menjalankan 12016 gagal untuk menginginkan - rahasia yang ada pada kamo- js dan bukan pada repo ini. GIT _ CLOONE _ TOKEN, yang repo ini tidak memiliki, adalah pengguna Forgejo token; daftar paket menerima mereka hanya sebagai auth BASIC, dan menjawab sebuah kosong 401 ketika satu adalah dikirim sebagai pembawa, dengan apa-apa untuk mengatakan skema adalah masalah. Ini mencoba pembawa pertama, jatuh kembali ke dasar, dan membuktikan kredensial dengan 'npm whoami' sebelum membangun sesuatu - jadi kredensial yang tidak dapat mempublikasikan mengatakan begitu bukannya gagal tiga langkah kemudian di dalam 'pnpm publish'.
· ESigService
Sertifikat Penyelesaian yang sebenarnya, dan tiga salinan dari catatan yang ditandatangani
Apa yang ditambahkan pipa meratakan adalah satu halaman per tanda tangan membawa tujuh baris: nama, email, anggota id, timestamp, metode penangkapan, IP, agen pengguna. Tidak ada routing, tidak ada persetujuan catatan, tidak ada pengiriman atau tampilan timeline, tidak ada hash signed-dokumen, tidak ada nomor halaman - sehingga pembaca tidak dapat memberitahu apakah mereka memegang semua itu - dan itu hanya ada dalam PDF dieksekusi, di mana partai yang ingin bukti sendiri tidak bisa mendapatkan itu. 'Esignal cateRenderer' menarik sertifikat: amplop dan kedua sidik jari, partai dalam urutan routing, dan kemudian setiap partai seluruh cerita - peran, perintah penandatanganan, status, Bagaimana mereka terotentikasi, garis waktu dari undangan ke tanda tangan, IP, perangkat, metode penangkapan, dan yang persetujuan pengungkapan mereka diterima dalam bahasa yang mana. Hal ini digunakan di kedua tempat: pipeline meratakan menambahkan halaman-halaman ini ke dokumen yang dieksekusi, dan 'Esignable cateService' melayani halaman yang sama sebagai standar PDF. Satu renderer pada tujuan - implementasi kedua adalah set kedua audit pernyataan yang tidak setuju dengan yang pertama, dan satu hal yang catatan audit mungkin tidak pernah dilakukan adalah bertentangan dengan dirinya sendiri. Sertifikat REGENERATED, tidak pernah disimpan. Setiap fakta di atasnya sudah tahan lama dalam penerima dan baris tanda tangan, sehingga salinan disimpan hanya akan menjadi hal kedua yang dapat pergi basi; itu juga berarti amplop ditandatangani sebelum hari ini mendapat sertifikat penuh pertama kali orang bertanya. * * * * * * * * * * * * * * pada empat permukaan - sesi penandatangan, seorang anggota staf sendiri salin, dasbor pengirim dan API internal - dengan 'baik' sebagai zip. '/ signed- dokumen' tetap di sampingnya karena sudah dihubungkan dari surat yang dikirimkan dan serialisasi ke layanan lain. Dua hal tes tertangkap yang akan telah cacat hidup: - 'Map.of' melempar NullPointerception pada NILAI null, dan satu permintaan dengan nilai kosong adalah salah satu cabang yang ada untuk: sebuah amplop yang tidak lengkap tidak memiliki dijalankan PDF, jadi '? apa = kedua' pada in- penerbangan amplop akan menjadi 500 bukan zip memegang sertifikat. Ini diturunkan ke setengah mana ada sekarang - seseorang mengejar tanda tangan macet adalah persis yang membutuhkan catatan audit. - Resleting ini STORED daripada dibelokkan (kedua anggota sudah dikompresi PDFs) dengan entri diurutkan, sehingga masukan yang sama menghasilkan bytes yang sama dan siapa pun yang menerimanya dapat checksum itu. The test parses kedua anggota sebagai PDFs daripada menghitung mereka: sebuah STORED entri dengan CRC salah unzips ke sampah yang masih terlihat seperti file. (Tidak ada ruang di dalamnya, jadi kata-kata hanya pembungkus berjalan itu dari tepi), menyatakan sebuah timestamp absen sebagai eksplisit em dash daripada mengabaikan baris - "Ditandatangani:" dan tidak ada baris sama sekali berbeda pernyataan, dan hanya satu dari mereka adalah bukti - dan perangko "Halaman m" setelah tubuh, karena sampai tubuh selesai tidak ada yang tahu apa itu M. Consent sekarang membawa lokal itu dirender dalam, sehingga catatan mengatakan yang twenty- dua Terjemahan dari 7001 (c) pengungkapan sinyal benar-benar dibaca.
· kamo-shared-library
Rekam persetujuan WHICH pengungkapan sebuah penandatangan diterima, dan dalam bahasa mana
'Disetujui' catatan bahwa seseorang berdetak kotak. 15 U.S.C. 7001 (c) adalah daftar hal-hal tertentu konsumen harus diberitahu sebelum menyetujui - hak untuk kertas dan biaya apapun, bagaimana untuk menarik dan apa yang biaya mereka, apa persetujuan meliputi, bagaimana menjaga rincian kontak mereka saat ini, dan hardware dan software dibutuhkan untuk membaca AND RETAIN catatan. Kata-kata itu diterjemahkan ke twenty- dua bahasa dan itu akan direvisi, sehingga sertifikat yang dihasilkan setelah revisi akan jika tidak menggambarkan pengungkapan CURRENT sementara penandatangan telah menerima yang sebelumnya, dalam bahasa catatan tidak nama. 'Persetujuan _ pengungkapan _ versi' dan 'persetujuan _ locale' ditulis oleh ESigService pada saat ini dari penerimaan pertama dan tidak pernah overwritten - membuka kembali persetujuan link penandatanganan posting, dan ulang-kencan penerimaan lama untuk apa pun kata adalah saat adalah satu hal kolom ini ada untuk mencegah. DDL diterapkan dengan tangan pada cluster hidup (ddl- auto adalah 'none' di mana-mana): ALTER TABLE emsign _ amplopse _ reciments ADD COLUMN JIKA TIDAK EXISTS persetujuan _ disclosure _ version varchar (32); ALTER TABLE esign _ amploply _ reciments ADD COLUMN JIKA TIDAK EXISTS persetujuan _ locale varchar (16); Keduanya bisa dibuang, dan baris yang disetujui sebelum mereka ada dibaca sebagai "tidak direkam" pada sertifikat daripada diberikan versi yang tidak pernah mereka lihat.
· kamo-signer-monorepo
Satu menandatangani permukaan untuk kedua aplikasi, dan label putih akhirnya melukis
Tanda tangan UI ada dua kali - di sini, dan tangan disalin ke kamo- internal 's eksekusi penyihir hukum - Dan keduanya telah melayang di kedua arah. '@ kamo / esign-core', '@ kamo / esign-ui' dan '@ kamo / doc-render' adalah paket yang diterbitkan sekarang, dibangun dan didorong ke Forgejo registry dengan ini identitas repo, dan kamo- internal mengkonsumsi mereka bukan garpu nya. Penggabungan mengambil setengah lebih baik dari masing-masing: toko kamo- internal (format validasi, penyimpanan dijaga pada 'localStorage' daripada pada alasan DELEGATED dan NOT _ BELUM). Komponen mengambil string mereka sebagai PROPS - dua aplikasi menerjemahkan keluar dari dua kamus yang berbeda, dan komponen yang memilih kunci sendiri hanya bisa hidup dalam satu. Empat cacat, dan salah satu menyebabkan dua lainnya. - * Setiap tombol MUI yang terkandung dalam aplikasi ini transparan. * * 'Applividers' lewat 'EnableCsslayers: true', so all MUI CSS landed in '@ layer mui' - and Tailwind 's preflight, loaded tidak berlapis oleh '@ tailwind dasar', mengalahkan CSS berlapis langsung apapun spesifikasi tersebut. Diukur: '.MuiButton-previedPrimary' computed 'background-color: rgba (0,0,0)' with "Warna: rgba (0,0,0.87) '. Jadi" Agree & continue "ditulis sebagai teks polos, dan" Batal "dan "Adopsi & sign" duduk bersebelahan sebagai dua run teks abu-abu membaca sebagai satu kalimat - yang persis bagaimana hal itu dilaporkan. Preflight 's' p {margin: 0} 'mengalahkan kartu persetujuan' M ' untuk alasan yang sama, itulah sebabnya segala sesuatu pada halaman yang berlari bersama-sama. kamo- internal selalu mount cache Emotion nya tanpa berlapis; pencocokan itu memperbaiki semua sekaligus. - * * Logo adalah gambar rusak. * 'ThemLogo' jatuh kembali ke '/ img / logo-full.svg', yang aplikasi ini tidak bukan melayani, dan melukis torn- halaman browser glyph di tempat pengirim. Sekarang berjalan daftar ekstensi untuk varian KEDUA (sebuah org yang ditandai adalah .png memiliki '.svg' diminta, 40, dan berhenti di sana - 'sign-pink' adalah persis bahwa org), dan ketika tidak ada menyelesaikan itu menarik org nama pendek sebagai kata-kata, atau tidak sama sekali sebelum token telah bernama organisasi. - * * Favicon dan judul tab tidak pernah ditetapkan - juga tidak org merek CSS. * * 'Dynamicus MetaLoader' computed 'const slug = orgSlug = 124; firman 124; getThemSlug ()' ONCE, in the effect body, before any token had validasi: "". 'KamO _ THEME _ REAPPLY' pendengar, mengangkat saat yang mengundang org WAS diketahui, kembali menjalankan penutupan atas yang sama "" dan kembali pada penjaga. konfigurasi. json karenanya tidak pernah diambil pada rute penandatanganan sama sekali. Resolved per application now, favicons REPLACE daripada tambahkan, dan judulnya adalah "Sign - {Org Short Name}" seperti yang diminta. Diverifikasi terhadap penyewa nyata: 'Sign - sign Pink', four org favicons, tanda .png, dan '--color-primary: # 452d4e' mencapai tab, kotak cek dan tombol - palet MUI tidak dapat menyimpan sebuah 'var ()', jadi setiap brand- bantalan komponen diarahkan secara eksplisit. - * * Petik bahasa adalah sebuah globe atas daftar endonyms * *, sehingga penandatangan yang membaca tidak ada Naskah Latin tak punya tujuan. Flag dan nama asli sekarang, meja yang sama dan emoji yang sama font stack sebagai kamo- internal 's NavTop. Hal ini juga muncul pada layar penyambutan dan persetujuan: yang digunakan untuk tiba hanya dengan TopBar, setelah penandatangan telah membaca pengungkapan Inggris. Unduhan menawarkan ketiga salinan dimanapun yang ditawarkan: dokumen yang dieksekusi, sertifikat penyelesaian, atau kedua zip ('/ api / sign / download? apa ='). Sertifikat adalah setengah dari rekam atribut itu sebagai tanda tangan kepada seseorang; serahkan hanya PDF yang menyerahkan separuh Tidak membuktikan apa-apa. Gerbang persetujuan sekarang membawa enam klausul 15 U.S.C. 7001 (c) membutuhkan konsumen untuk ditampilkan Sebelum menyetujui, dan lokal itu diberikan dalam rides keluar dengan persetujuan sehingga sertifikat dapat menyatakan mana dari dua kali--dua terjemahan yang benar-benar dibaca.
· kamo-signer-monorepo
Render the Signature Date field, and make readOnly mean something
Tiga perubahan, yang pertama adalah pekerjaan baru. * * 'signature _ date' * * adalah bidang ESigService mengisi pada instant tanda-tanda - never the browser, whose clock is setstable and which is the one value a party has an insentif untuk salah paham pada instrumen hukum. Jadi tidak ada kontrol untuk itu: signer melihat tanggal yang akan dibawanya, terkunci, terformat dari lokal sesi sendiri dan zona waktu, yang merupakan dua nilai yang sama format server tanggal yang dicap dengan. Pratilik dan dokumen yang dieksekusi tidak dapat tidak setuju. * * 'readOnly' adalah dekoratif di sini. * * Hal ini dalam bentuk desain, itu adalah switch dalam panel properti kamo- internal dan Peternak ESigService 's menghormati itu - dan InteraktiveField tidak pernah melihatnya. Sebuah daerah yang ditandai read- hanya dirender sebagai biasa masukan penandatangan dapat mengetik ke dalam bebas, dan karena receed- ness tidak dipaksa pada daerah baca-saja, bahwa nilai free-typed adalah satu nilai pada halaman tidak diperiksa sebelum dicap ke dokumen. * * signStore dihitung field baca-saja seperti yang diperlukan * *, sehingga sebuah amplop membawa satu could di kotak tanpa kontrol di dalamnya, sementara SERVER dianggap pengiriman yang sama lengkap dan akan menerimanya. port kamo- internal dari berkas ini telah diversi untuk memperbaiki persis itu; keduanya setuju lagi, dan keduanya sekarang cocok dengan FieldCompletion.
· kamo-internal
Sebuah bidang Tanggal Tanda Tangan, dan pengiriman yang mengakui ketika tidak ada email
* * "Dikirim" bukan hal yang sama seperti "disampaikan", dan dialog tidak pernah berkata begitu. * * ESigService membuang hasil dari setiap email undangan, sehingga mengirim surat yang merupakan ditolak masih menunjukkan "Dokumen dikirim untuk tanda tangan" - kegagalan yang tepat dilaporkan hari ini, dimana penerima tidak pernah diberitahu dokumen sedang menunggu. Dialog sekarang membaca apa yang mengirim laporan sebenarnya dan, ketika undangan tidak meninggalkan, menempatkan peringatan atas bahwa Tetap di atas, nama alamat, dan membawa tombol pengiriman ulang itu sendiri daripada mengirim pengirim off untuk menemukan baris pada tab lain. Signature Date. Alat baru dalam Perkakas Tanda Tangan. Penandatangan tidak ditampilkan kontrol untuk itu: server menulis tanggal pada saat mereka menandatangani, dalam zona waktu mereka sendiri dan organisasi lokal, sehingga apa yang dieksekusi PDF mengatakan tidak dapat penandatanganan jam browser. Desainer menunjukkan terkunci, tidak menawarkan permintaan / Pembacaan saja / validasi pengaturan untuk itu (mereka adalah pertanyaan tentang masukan yang tidak ada), dan signer melihat tanggal yang akan dibawanya - format dari lokal dan zona sesi sendiri sehingga pratinjau dan dokumen setuju. Tiga hal yang muncul yang sudah rusak: - * 'readOnly' adalah dekoratif di kedua UIs signer. * Bendera dalam bentuk desain, itu adalah sebuah switch dalam panel properti dan ESigService menghormati itu - dan keduanya Medan InteraktivePernah melihatnya, sehingga "baca-saja" field yang diberikan sebagai biasa masukan penandatangan dapat mengetik ke dalam bebas. Karena tidak ada yang memaksa recedness pada daerah baca-saja, bahwa nilai free-typed adalah satu nilai pada halaman tidak diperiksa sebelum dicap ke dokumen. - * * kamo-signer 's signStore dihitung bidang baca-saja seperti yang diperlukan * *, jadi sebuah paket membawa satu tidak pernah bisa selesai - Selesai tetap cacat dan "bidang berikutnya" pengiriman selesai. kamo- internal 's port telah tetap ini; keduanya sekarang setuju dengan satu sama lain dan dengan FieldCompletion. - * Tidak memegang tiga salinan dari kosa kata lapangan bersama-sama. * * Dua dari mereka mengatakan "PORTED VERBATIM, jangan diverge" dalam header mereka sendiri dan tidak ada yang memaksanya; sebuah tipe ditambahkan ke satu saja dirender sebagai masukan teks telanjang di mana-mana, diam-diam, karena setiap perender memiliki cabang baku. Ada ratchet sekarang. Dialog pengiriman juga melabelkan setiap baris penerima dengan slot penandatangan yang mengikat, dan prefills sebuah slot template sudah pin ke seseorang. Ikatan oleh POSISI, dan Staf tidak pernah melihat slot sama sekali - sehingga pada two--partai template satu-satunya hal memutuskan yang mendapat blok majikan dan yang mendapat karyawan yang nama yang kebetulan Pertama diketik, dengan tidak ada di layar mengatakan demikian.

Alam semestamu menunggu.
Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.
Gratis selamanya — tidak diperlukan kartu kredit