Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· kamo-internal
Tulis deskripsi penjadwalan -dukungan sebagai teks kaya
Deskripsi di * * * * * * * * * * * * * * * * * * * Tiga baris Texas. Ini adalah / kb / baru menulis permukaan sekarang, minus gambar dan perpustakaan media - mereka upload ke media KB, yang merupakan rumah yang tepat untuk artikel dan yang salah untuk bidang pengaturan. Kolom berisi dua bentuk dari sini: dokumen Lexie pada apapun yang disimpan sejak, dan prosa telanjang pada setiap baris lebih tua dari itu, karena tidak ada menulis ulang mereka. app / lib / richTextField.ts adalah jembatan. Ini mendeteksi dokumen dengan parsing bukan oleh penjepit terkemuka - prosa seperti '{beta} pelanggan saja' adalah hukum, dan mengendus akan mengirimkannya melalui parseEditorState, yang melemparkan, membuka penyunting kosong dan kehilangan teks penulis pada menyimpan berikutnya. Prose Legacy adalah dibungkus ke dalam dokumen sehingga membuka sebagai teks yang dapat disunting sebagai gantinya. Penyunting kosong masih menserialisasikan satu paragraf kosong, jadi apa yang akan disimpan diputuskan dengan teks polos editor tangan kembali, bukan oleh JSON - dibersihkan deskripsi dibaca sebagai absen di mana-mana hilir. Setiap pembaca diberi makan kata-kata daripada dokumen: wizard pemesanan kartu picker menyimpan dua baris teaser, dan langkah konfirmasi memperoleh yang diberikan deskripsi, yang merupakan salah satu tempat format penulis menulis sebenarnya baca. RichTextView membuatnya melalui leksicalToHtml sanitising, dan menunjukkan nilai warisan sebagai teks escaped - apa pun paste pernah dibawa ke sly-text bidang adalah persis apa yang akan dinyatakan berjalan. KbArticleEditor memperoleh placeholder dan allowMedia; tipografi pratinjau catatan dalam globals.css sekarang dibagi dengan .kamo- richtext membaca permukaan, yang berbeda hanya dalam yang link bekerja. Membutuhkan MediaService yang tahu deskripsinya Plain - dikerahkan dan diverifikasi sebelum ini mendarat, karena ObjectMapper nya menolak properti yang tidak diketahui.
· kamo-login
Tambah picker area kerja
Tanda-dalam nama yang tidak ada organisasi sekarang datang kembali dengan daftar bukan sesi. Ini adalah klien setengah: / api / login melewati muatan yang melalui (sebelum cek no- OTK, yang jika tidak akan melaporkan baik sempurna signall-in sebagai kegagalan), / api / session / pilih relay pilihan dan tanaman sesi persis seperti / api / login tidak, dan langkah ketiga dalam kartu menanyakan yang mana ruang kerja. Dibangun sekitar apa yang sebenarnya dilakukan anggota, yang membuka ruang kerja yang sama dengan terakhir kali: yang diingat dipilih dan dinamai di tombol, jadi ini dibaca sebagai konfirmasi daripada survei, sementara setiap alternatif Tinggal satu tombol lagi. Tombol panah bergerak, Enter terbuka, dan pencarian muncul lewat delapan ruang kerja. Nama samaran di bawah setiap nama bukanlah dekorasi. Organisasi disini benar-benar nama berbagi - ada empat disebut "Acme Corp" - jadi itu adalah satu-satunya (yaitu) orang-orang yang membedakan (antara yang hak dan yang bathil) dengan sejelas-jelasnya, Satu berkembang: sebuah rel tunggal yang memancar antara baris melalui tata letak bersama, jadi Pilihan papan tik dapat dibaca tanpa cincin fokus pada setiap elemen. Dihormati terhadap prefer-reduced- gerak, dan langkah hanya mount setelah sandi, sehingga opasitas serialisasi: 0 yang membuat kondisi awal Framer blok pertama cat tidak pernah berlaku di sini. Masih tidak dapat dicapai dalam produksi: Layanan SecurityService gerbang picker belakang * * * * * * * * * * * * * * * yang off. Ini mendarat UI pertama jadi bendera memiliki sesuatu untuk diaktifkan.
· MediaService
Membawa deskripsi tipe di kedua bentuknya
Deskripsi adalah dokumen Lexie sekarang, sehingga layanan menyimpan teks sedih cermin klien mengirim bersama dan tangan pembaca bentuk apapun yang mereka bisa sebenarnya gunakan. WebinarTypeDTO memperoleh deskripsinya untuk sebuah permukaan yang menginginkan kata-kata tersebut daripada dokumen. Pemetaan publik DTO dan penjadwalan -webinar DTO mendapatkan teks polos saja - bukan halaman anonim atau pengingat memiliki Lexic waktu berjalan, dan mencetak keadaan penyunting mentah pada pembaca lebih buruk daripada tidak ada. Cermin ditulis tanpa syarat di samping dokumen: permintaan yang membawa Tidak ada cermin yang membawa prosa, sehingga membersihkan menempatkan baris kembali ke warisan bentuk pembaca sudah jatuh kembali ke, di mana cermin basi di samping segar deskripsi akan kata-kata yang tidak lagi cocok. Membutuhkan kolom webinar _ type.description _ plain, yang diterapkan oleh KamiInisializer dan diverifikasi hadir di Yugabyte sebelum ini mendarat.
· InitializerService
Kolom deskripsi teks Rich pada webinar _ type
Mirror the shared- lib entitas change. Dua hal yang dibutuhkan meja sebelum Mediasers memetakan mereka. Kolom deskripsi harus tidak terikat: itu memegang sebuah keadaan penyunting Lexical Sekarang, dan langit-langit varchar tidak akan dipotong, itu akan menolak seluruh menyimpan dengan nilai -too -long error didalam @ Transaksional update yang kemudian menggulung kembali dan tidak meninggalkan apapun untuk menjelaskannya. Periksa - kemudian - mengubah daripada ALTER telanjang, karena entitas telah menyatakan TEXT sejak tabel diciptakan - jadi pada setiap basis data platform ini menjalankan probe pendek sirkuit dan tidak ada DDL diterbitkan di semua, yang penting pada Yugabyte teDB di mana ALTER COLUMN tanpa syarat... TYPE akan log kegagalan pada setiap startup. description _ plain adalah baru: the slaugh- text mirror, nulable with no default, karena null adalah nilai jujur untuk setiap baris yang mendahului penyunting dan adalah apa yang memberitahu pembaca untuk jatuh kembali ke deskripsi. Diverifikasi terhadap cluster hidup: deskripsi sudah teks, dan keduanya kolom hadir setelah dijalankan.
· kamo-shared-library
Simpan deskripsi tipe sebagai teks kaya
Deskripsi di * * * * * * * * * * * * * * * * * * * * adalah Kondisi penyunting lexical sekarang bukan garis prosa, jadi kolom harus a unbounded TEXT bound as a long varchar - a bare @ Lob on a String map to a PostgreSQL besar objek (oid) pada Hibernate 6, yang kolom ini tidak. DESCRIPSI _ PLAIN adalah cermin teks sedih yang ditulis oleh penyunting bersama dengan dokumen, untuk alasan yang sama TrainingSlide terus BodyText sebelah BodyJson: hanya jangka panjang Lexical dapat membaca dokumen Lexical, sehingga setiap konsumen ingin kata-kata akan sebaliknya harus kapal parser untuk internal editor format. RichTextValets membaca baik bentuk, karena baris yang ditulis sebelum Editor mendarat masih terus prosa telanjang dan tidak ada menulis ulang mereka. PublicWebinarTypeDTO terus melayani teks biasa: sebuah halaman pemesanan anonim tidak memiliki Lexie waktu berjalan, dan lapangan publik diam-diam berubah dari prosa ke JSON akan tampilkan keadaan penyunting mentah di pengunjung. CreateWebinarTypeRequest memperoleh ketidaktahuan Tak Diketahui - MediService membangun sendiri ObjectMapper dari ObjectMapper baru (), so FAIL _ ON _ UNKNOWN _ PROPERTIES adalah di Jackson default benar dan setiap bidang masa depan di sini adalah perangkap over-order.
· SecurityService
Biarkan anggota masuk tanpa penamaan host org mereka
Menambahkan paruh kedua dari pembagian: tanda-dalam nama tidak ada organisasi Mengotentikasi pengguna, lalu menanyakan area kerja yang mana. POST / api / secure / session / select mengubah satu pilihan menjadi sebuah sesi, dan Signal IncompletionService memegang setiap gerbang antara sandi yang benar dan sebuah sesi yang dapat dipakai sehingga login dan seleksi tidak dapat digeser terpisah. Mencapai dalam dua kasus. Sebuah inang yang nama tidak ada organisasi selalu membela - sebelum sekarang itu adalah tanda-dalam yang tidak bisa berhasil sama sekali, jadi tidak ada Diambil. Host platform adalah kasus perubahan ada untuk: login.kamocrm.com merespons to KamoCRM Inc., so without this it goes on scoping every sign- in to that one org and a members of a domainless org masih tidak bisa masuk Itu kasus kedua kapal di belakang * * * * * * * * * * * * * * * * * * default FALSE. Menghidupkan membuat anggota beberapa organ menerima daftar area kerja daripada sebuah sesi, dimana klien tidak dapat membuat satu dibaca sebagai log masuk yang gagal -- 17 dari 53 pengguna memiliki lebih dari satu keanggotaan. It goes on with the release that teach kamo- login the picker. Sampai maka rilis ini mengubah apa-apa bagi siapa pun penandatanganan di hari ini, dan domain gubahan menyimpan path asli dengan cara baik. Aturan penutupan diawetkan dengan sengaja. Sandi yang benar yang bisa enter nothing is refused in the same words as a wrong one, or the form menjadi oracle untuk kredensial yang valid. Daftar area kerja tidak pernah sebuah Otoritas: pemilihan mengembalikan keanggotaan, sehingga diedit, basi atau ditemukan daftar mendapat penolakan. Pilihan Token bukan sesi -- tunggal-gunakan, lima menit, id pengguna dan Tidak ada yang lain. * * * * * * * * * * * * * * * benar ditandai baru titik akhir sebagai pre- sesi; itu baseled dengan penalaran, karena titik akhir yang tujuannya adalah untuk mint sesi tidak memiliki untuk menyelesaikan. Org id melintasi setiap kawat baru sebagai digit string. 1200096283020229788 adalah id nyata di sini dan tidak memiliki representasi ganda yang tepat. 923 tes lulus.
· InitializerService
Ingat area kerja terakhir yang ditandatangani oleh anggota
users.last _ org _ id mendukung picker area kerja. Sebuah organisasi tidak ada lagi dinamai dengan nama host, sehingga anggota yang dimiliki beberapa yang dipilih satu setelah penandatanganan; kolom ini berhenti bahwa menjadi keputusan baru setiap Pagi. Satu pernyataan, tidak seperti UserIsFakegration empat. Kolom itu berakhir TIDAK NULL dengan DEFAULT dan Yugabyte menolak ADD COLUMN... TIDAK NULL pada tabel penduduk. Yang satu ini sengaja dapat dibuang dengan tidak baku dan tidak ada kunci asing: NULL adalah nilai yang berarti untuk "belum dipilih", yang adalah setiap account predating picker, dan kunci asing akan membiarkan hapus org blok tanda-in. Sebuah id basi tidak berbahaya - hanya picker menggunakannya untuk prechoose sebuah baris itu sudah mendaftar. Sudah diterapkan ke database langsung, karena layanan ini tidak memiliki CI dan mendorong kapal apa-apa, ini adalah apa yang memberikan lingkungan segar kolom.
· kamo-internal
Sebuah berkas mungkin dijatuhkan di mana saja pada jendela obrolan, tidak hanya pada strip masukan
Target drop adalah permukaan komposer saja - beberapa lusin piksel di bagian bawah jendela yang sebaliknya semua pesan. Sebuah screenshot membiarkan pergi atas percakapan tidak melakukan apa-apa, dan lebih buruk: peramban baku untuk menjatuhkan berkas yang tidak diklaim adalah untuk NAVIGATE tab ke file, yang mengambil setiap jendela alat terbuka dan setiap unsent draft dengan itu. 'Use ComposerIngest' diperoleh 'bindDropTarget', yang mengikat gerakan drag ke sebuah elemen komposer tidak memiliki, dan 'ComposerSurface' menyelesaikan elemen tersebut dari DOM - shell sendiri 'data- tool-window', atau 'data- chatbox- root' untuk percakapan yang menarik sendiri bingkai. Asli pendengar dalam fase CAPPURE, sehingga tidak ada di dalam jendela dapat mengambil gerakan pertama atau berhenti pendek sebelum jendela telah melihatnya; hanya drags membawa berkas yang diklaim, sehingga percakapan AI pohon folder menjaga sendiri drag- dan - drop tersentuh. Sebuah berkas drag diklaim bahkan ketika melampirkan terkunci - menolak file tidak boleh biaya anggota halaman. Satu per komposer tertelan masih, sehingga jendela dan permukaan tidak pernah dapat tahap drop yang sama dua kali. Anggota chat, dukungan tiket, percakapan sosial, percakapan AI dan SMS semua mendapatkan ini dari satu permukaan yang mereka bagi; komposer tanpa jendela di sekitarnya menjaga perilaku lama.
· kamo-internal
Drop blok salam dan menempatkan kepala surat di satu baris
The launchpad 's kepala sekolah membawa kicker, "selamat sore" pos dan baris status dari aplikasi / judul / uji / tanggal di samping logo, dan milik anggota kontrol melayang di atasnya benar-benar - sehingga header memesan selokan 150px dan ~ 130px tinggi untuk mengatakan waktu hari. Logo dan kontrol sekarang bagi satu baris flex, yaitu tinggi logo saja, dan kisi mulai yang jauh lebih tinggi.
· kamo-internal
Pindahkan Binders dan Upload ke kanan strip
Strip sekarang memisahkan apa manajer dokumen IS dari mana ia membawa Anda. Kiri: Asli, Diubah, Umum - tiga tampilan dari dokumen yang sama. Kanan: empat ikon jalan pintas, kemudian Binders dan Uploads sebagai tujuan, menjaga label mereka dan cat mereka. Di luar sana mereka bukan lagi anak-anak dari < Tab >, jadi mereka mengatur activeTab sendiri dan menandai negara mereka sendiri dipilih - tidak ada indikator di luar kelompok untuk melakukannya. Sebuah tab yang dicat menunjukkan pilihan dengan garis bawah putih: pada coklat dan biru itu adalah satu isyarat yang membaca sekilas tanpa mengganggu isi, dan cadangan 3px apakah dipilih atau tidak sehingga label tidak tidak bergeser ketika diklik. paintedTab juga membawa tipografi sendiri dan ukuran sekarang. Di dalam < Tab > mereka berasal dari induk '& .MuiTab-root'; sebuah tab standalone mewarisi tidak satupun dari itu dan akan diberikan pada MUI 's uppercase default.
· kamo-marketing
Atur judul dalam tanda kutip
Kutipan di baris banner, seperti yang diminta - tetapi diberikan dari CSS ('open-quote' / 'close- quote' terhadap 'quotes: auto') daripada diketik ke dalam String, karena dua alasan. Pipa telah diterjemahkan 'previewBanner.headline' ke 19 locales sejak e67f59b mendarat. 'translate.ts' re-queues kunci hanya ketika hilang atau masih sama dengan bahasa Inggris, jadi menambahkan kutipan ke nilai Inggris akan meninggalkan semua 19 terjemahan persis seperti mereka - mengutip bahasa Inggris, dikutip segala sesuatu yang lain - dan tidak menjalankan singkat dari '--force' akan pernah pemberitahuan. Itu adalah perangkap renamin e67f59b ditulis untuk menghindari, dan melakukannya lagi untuk tanda baca akan berarti nama kunci ketiga dan terjemahan penuh kedua dari sebuah baris yang belum berubah kata. Dan glyph tidak dibagi. German set "...," French ""..., Japanese Single "... Satu pasangan diketik ke en.json adalah salah satu konvensi bahwa 21 locales lainnya membawa Salah atau jatuhkan; 'quotes: auto' resolve terhadap 'lang' pada < html >, yang [lokal] / layout.tsx sudah set per lokal, jadi masing-masing mendapat sendiri. Inggris menyelesaikan ke keriting ""... bahwa salinan tampilan ingin daripada mesin tik sepasang. 'quotes: auto' adalah nilai awal dan ditulis pula - 'quotes' adalah warisan, jadi aturan leluhur ditambahkan kemudian bisa dinyatakan mengubah apa ini membuat tanpa menyentuh blok ini. Tidak ada lagi di globals.css set hari ini. Tidak ada perubahan kamus dalam satu ini, sehingga tidak ada cross- repo mendorong memesan untuk mendapatkan salah.
· kamo-internal
Ekspresi - warna, Spirit Animal dan logo sebagai salah satu keputusan
Dua kontrol sudut menjadi satu. Yang split adalah kecelakaan urutan fitur dikirim daripada sebuah perbedaan siapa pun memegang: warna, pola dan organisasi apos; s tanda tiga pengacara dari satu pertanyaan - apa melakukan hal ini panel terlihat seperti - dan mereka menggabungkan. Memilih mereka dari dua popups berarti Anda tidak pernah bisa melihat kombinasi Anda membuat sambil membuatnya, sehingga lembar Dibuka di sebuah pratinjau langsung menumpuk tiga persis seperti tumpukan panel mereka. TIGA - EMPAT PIRIT ANIMALS, sebagai SVG < pola > def daripada gradien CSS. Gradiasi melakukan garis-garis dan titik-titik dan sangat sedikit lain, dan setengah daftar ini Rosettes, poligonal patch, tumpang tindih timbangan dan mata merak 's bulu. SVG menarik bentuk nyata, tetap garing pada setiap ukuran panel, mengambil tinta anggota secara langsung, dan markup daripada aset - tidak ada permintaan untuk CSP untuk memiliki pendapat tentang dan tidak ada byte untuk mengirimkan. Bentuk adalah data deklarasi berubah ke elemen, sehingga tidak ada mencapai DOM sebagai string interpolasi, dan setiap tinta is hex- check on the way in for the same reason the frame designer 's Warna. Warna dan pola disimpan secara terpisah dan menggabungkan, karena mereka pilihan terpisah: mengubah pikiran Anda tentang warna tidak boleh kehilangan hewan. Tinta standar pola adalah warna pinggiran kertas sendiri - yang lebih dalam pendamping - jadi "Sage + Leopard" berarti macan tutul di bijak daripada macan tutul di beberapa hue tidak berhubungan, yang merupakan apa anggota memilih dua jelas berarti. Sebuah tinta eksplisit dari jalur org atau palet mereka sendiri menimpa itu. Pola yang melukis UNDER isi panel dan kacanya, tidak seperti tanda org yang harus bergerak di depan untuk bertahan hidup kabur. Tekstur milik di bawah permukaan beku yang sama warna di bawah, di depan akan mencetak zebra garis-garis di teks seseorang. Applies di mana-mana kontrol lama melakukan - widget, kartu aplikasi, catatan disematkan, yang pinned- widget band - karena mereka berempat sudah berbagi krom panel. PaneColors Button dan PaneBrandControl dihapus daripada ditinggalkan di samping mereka pengganti: dua cara untuk menetapkan satu hal adalah bagaimana mereka hanyut.
· kamo-internal
Menghitung pada tab Binders, dan tanah pada Docs Yang Dipilih
Tab berbunyi "Binders (n)" sehingga jumlah binder Dok yang dipilih dipegang adalah terlihat dari strip - termasuk (0), yang kasus layak dilihat, karena ia mengatakan binder kosong sebelum anggota pergi mencarinya. Memasuki tab sekarang membuka Docs Yang Terpilih. Anggota tiba di sini dari memilih dokumen, sehingga binder adalah apa yang mereka datang untuk, membuat mereka menemukannya di daftar adalah langkah dengan tidak ada keputusan di dalamnya. Membuka binder lain selama suatu kunjungan tidak dibatalkan oleh penyelarasan berikutnya - "sudah mendarat" bendera adalah reset reset wasit dengan unmount, sehingga re-lands per kunjungan daripada melawan anggota sesi pertengahan. Kunci i18n baru daripada judul tab. binders: dialog paket legal menggunakan yang satu sebagai label polos dan tidak memiliki menghitung untuk dimasukkan ke dalamnya.
· kamo-internal
Gambar IS panel, bukan sesuatu di dalam satu
Setiap widget lain isi dalam kartu kaca beku launchpad, dengan header, judul dan kontrol sudut. Sebuah bingkai gambar tidak: diberikan bahwa cara itu adalah bingkai duduk di dalam kedua, bingkai tak terlihat, dan mouding anggota dirancang menjadi detail dalam persegi panjang orang lain. Jadi keuntungan registri 'ownisSurface', dan menyatakan itu mengambil persis tiga hal yang melawan seperti widget daripada melayani itu - kaca permukaan, latar belakang COLOUR swatch (bingkai sudah memiliki warna tikar dan Mencetak anggota yang dipilih) dan latar belakang LOGO (sebuah tanda air dicetak di foto seseorang). Kedua tempat yang cat panel dekorasi kehormatan itu: grid yang dapat disortable dan pinned- widget band. Apa yang dibawa header masih ada sebagai kontrol yang memudar di atas berjamur - nama frame pada plat berletakan bottom- kiri, jalan ke nya Editor dan kontrol lepas di atas kanan. Gelap dan transparan daripada launchpad yang biasa lampu krom, karena ini duduk pada foto dan pucat Tombol menghilang saat langit cerah mendarat di sudut itu. Mereka berhenti kejadian penunjuk dari mencapai panel di bawah, atau meraih untuk penyunting akan memulai drag. Flag pada registri daripada cek untuk id widget ini, jadi widget kedua yang melukis permukaannya sendiri tidak perlu perubahan di sini.
· kamo-internal
Tampilkan lapisan mana dari dokumen yang diubah yang bekerja
Sebuah dokumen memiliki satu catatan yang diubah, sehingga tab yang diubah memiliki satu baris per dokumen. Nama kolom lapisan yang disentuh daripada yang dari dua jenis baris adalah: Dokumen sekali byte yang berbeda dari asli, Form Fields sekali bidang telah diletakkan di atasnya, dan "Belum diedit" untuk catatan yang diturunkan dengan membuka editor dan kemudian tidak ada yang dilakukan. Itu negara bagian terakhir adalah nyata dan layak dikatakan: membuka editor mewarisi catatan, sehingga mengklaim lapisan ada akan memberitahu anggota mereka mengedit sesuatu yang mereka hanya melihat.
· kamo-marketing
Menukar lencana NOW LIVE untuk headline yang disembunyikan
Panji atas dipimpin dengan pil enam karakter - berbatasan, uppercase, berdenyut - dan menempatkan pesan yang sebenarnya setelah itu. Pil sekarang membawa pesan itu sendiri: "Menjalankan bisnismu tanpa Kamo adalah kesalahan". Tak satu pun dari krom lencana bertahan hidup itu. Kotak 1px di sekitar kalimat penuh berbunyi sebagai sebuah tombol, 'teks-transform: uppercase' akan meneriakkan sebuah baris yang ditulis dalam kalimat kasus, dan 1.2px pelacakan adalah ukuran lencana daripada membaca satu. The ':: setelah' whitewash dan 'badge- pulse' keyframe pergi bersama mereka, bersama dengan entri '.preview-banner-live' dalam daftar gerak reduced- - animasi berada di elemen nama samaran-, sehingga pinning elemen tidak pernah melakukan apa-apa. Apa yang tersisa adalah berani dan putih. # fff lebih # c1111, yang paling ringan berhenti dari gradien di belakangnya, ukuran 5.25: 1; sisa spanduk duduk di 0.92 alpha, sehingga berat dan bahwa 8% terakhir putih memisahkan headline dari Garis changelog di sampingnya. Breakpoint wrap moves 640px - > 768px. Nomor itu dipilih ketika slot ini memuat enam karakter; baris nowrap tunggal sekarang mengukur ~ 625px dengan changelog salin setelah itu, sehingga di 640px banner akan menghabiskan ~ 15px terakhir dari kisaran tunggal-baris overflow nya sendiri tetap 38px kotak. 768 juga baris wrap up with the reduced- motion breakpoint below, so the banner stops shimmering dan mulai membungkus pada satu lebar bukannya dua 128px terpisah. Kunci salinan adalah RENAMED, tidak bernilai ulang (sisi kamus, set perubahan yang sama). 'translate.ts' antrian kunci hanya ketika hilang atau ketika nilainya masih sama dengan sumber Inggris - tidak memiliki gagasan string Inggris yang berubah. Editing 'nowLive' in place would have left all 21 locales translating "Now "HIDUP!" Sampai seseorang berpikir untuk menjalankan '- memaksa'. Sebuah kunci baru hilang di mana-mana, sehingga sync berikutnya mengambilnya, dan 'writeLocaleFile' iterates en 'kunci, yang memangkas yang lama dari setiap tempat. Sampai itu berjalan, mundur Inggris merge dalam i18n / request.ts merender kalimat Inggris daripada sebuah kunci mentah.
· InitializerService
Gabungkan dua catatan yang diubah menjadi satu dengan dua lapis
Dimana dokumen memiliki kedua jenis, baris CLASSIC bertahan - itu adalah salah satu yang mungkin menyimpan bytes yang diedit - desain ini menunjuk kembali ke atasnya, dan FORM _ FILLABLE baris dihapus. Kehilangan kedua belah pihak akan kehilangan pekerjaan anggota: bita adalah Edits dibuat di LibreOffice, desain adalah penempatan lapangan dilakukan dengan tangan. Indeks unik menjadi satu baris per asli daripada satu per (asli, baik), dan hanya dibangun setelah penggabungan daun tidak ada dokumen memegang dua. modified _ kind adalah sengaja ditinggalkan dalam tabel. Dropping it would break any Pod DocsService masih berjalan pada salinan gambar sebelumnya, yang bernama kolom di setiap Img SELECT, dapat pergi setelah armada telah berbalik. Pelari sebelumnya tidak lagi menciptakan indeks unik tua, jadi dua migrasi tidak menghabiskan setiap lari berebut itu. Applied to prod ahead of this push: 8 modified bars, 4 carding design, 2 with diverged bytes, none double, nothing lost.
· kamo-internal
Gambar Bingkai - foto dan video anggota sendiri, dalam bingkai yang mereka buat
Widget pertama yang INSTANCED Seorang anggota menggantung sebanyak frame yang mereka suka, masing-masing dengan isinya sendiri, yang sendiri cetakan dan tempatnya sendiri di grid, semua dari satu entri registri. THE MITRE. Sebuah bingkai adalah SATU profil berjamur diulang di empat sisi dan dipotong di 45 ° di mana mereka bertemu, yang adalah bagaimana frame nyata dibuat dan alasan ini Model tidak memiliki "top border" atau "left border" - tidak ada yang harus menjaga di langkah karena hanya ada satu hal. Seorang anggota merancang bagian persilangan, empat sisi jatuh dari itu, dan setiap sudut adalah garis 45 ° BY KONSTRUKSI agak daripada dengan gaya siapa pun bisa salah. Setiap sisi adalah trapezoid dipotong dari sebuah kotak ukuran penuh dan dicat dengan gradien berjalan dari tepi luar Di dalam ada empat di antaranya terdapat serambi, dan di antaranya ada empat potong Tidak ada tumpang tindih dan tidak ada jahitan. 'Border- *' warna akan bebas dan adalah salah alat: mereka tidak dapat membawa sebuah multi- band profil atau tekstur, dan anggota yang mengedit satu sisi akan memiliki tiga lagi untuk diperbaiki. PICTURE THE. Rasio aspek selalu disimpan, frame selalu diisi, overflow dipotong. Letterboxing di dalam cetakan terlihat seperti kesalahan dalam bingkai daripada properti foto. Misalnya perjalanan sebagai 'widget: picture- frame # < uuid >' melalui tata letak, toko panel dan preferensi show / hide, sehingga bingkai menjaga ukurannya sendiri, warna, logo dan posisi dan menyembunyikan satu meninggalkan saudara kandung sendiri. Id kosakata pindah ke widget - murni dan tertutup, karena mereka string bertahan dalam setiap anggota disimpan pengaturan dan bentuk mereka Load- bearing. Sebuah contoh default untuk SHOWN: anggota dibuat, dan membuat itu adalah keputusan untuk memilikinya. Editor di * * * * * * * * * * * * * * * * * menempatkan frame pada ukuran tergantung di kiri dan segala sesuatu yang mengubahnya di kanan. Pratilik adalah komponen SAME yang dirender launchpad, bukan facsimile - cetakan yang terlihat halus di 90px adalah lempengan di 400, dan dua renderers akan melayang dengan preview menjadi salah satu yang melayang. Saves are debounded dan optimisme: merancang bingkai adalah seratus perubahan kecil dalam menit, sehingga tombol simpan akan berarti kehilangan banyak ke mis- klik. Setiap warna dalam desain tersimpan adalah pola diperiksa sebelum mencapai gradien. Blobs ini adalah member- menulis data yang interpolasi menjadi atribut gaya, dan pemeriksaan adalah apa yang membuat sebuah bingkai disimpan dari menjadi sebuah cara menulis CSS sewenang-wenang. Perintah ulang media dengan panah daripada menyeret: kisi ini terletak di dalam halaman dapat dicapai dari launchpad anggota sudah menyeret panel di sekitar, dan yang kedua berbeda-berperilaku drag permukaan adalah bagaimana orang bergerak hal yang salah. Panah juga bekerja di telepon dan dengan keyboard. Upload pergi satu per satu - menembak dua puluh permintaan multipart contunt pada satu pod adalah bagaimana anggota dengan folder liburan menurunkan layanan bagi semua orang selain itu.
· SecurityService
Frame dan media titik akhir, dan benih hak baru
Self saja, dan dipaksa di QUERY. Setiap membaca dan menulis menyelesaikan anggota dari sesi dan setiap panggilan repositori mengambil id itu, termasuk Pencarian single-frame - id frame adalah UUID yang berjalan ke peramban dan kembali, sehingga findById akan tangan dinding orang lain kepada siapa pun menduga satu. Tidak ada "mengelola frame anggota lain" titik akhir: kontrol administrator atas fitur ini adalah benar, bukan isinya. Media melalui ImageService daripada disimpan di sini, yang membeli contents-clased dedup (foto yang sama dalam tiga frame adalah satu berkas yang disimpan), Penyimpanan akuntansi org, dan putar ulang melalui proksi pencitraan yang ada - yang sudah berbicara Jangkauan HTTP, sehingga video sudah berusaha. Hashes adalah dihitung dalam pengontrol karena pipeline memvalidasi pemanggil Terhadap sendiri dan penelepon di sini IS server, itulah yang masing-masing uploader sisi server- dalam platform tidak. A slideshow 's ORDER tinggal di frame pengaturan blob, bukan sebagai kolom di setiap gambar: sebuah baris pencitraan dibagikan oleh setiap asosiasi referensi nya bytes, sehingga kolom pengurutan di atasnya akan menjadi milik frame mana terakhir menulis. Menghapus bingkai yang merusak media. Meninggalkan baris di belakang akan terus penagihan organisasi untuk dinding tidak ada yang bisa membuka, yang yatim piatu kelas platform ini telah digigit oleh sebelumnya. Kehamilan: 12 frame anggota, 120 item bingkai, 100 MB file. Yang terakhir adalah baik di bawah platform lain upload batas pada tujuan - ini adalah dinding dekorasi yang otomatis di belakang launchpad, dan video 2 GB akan diambil oleh setiap tab anggota terbuka. Benih hak dari Manusia _ Sendiri _ BACKGROUND _ IMAGES, yang sudah mengatakan ini anggota dapat menghias layar mereka sendiri dengan upload mereka sendiri - benih yang paling aman banyak, karena tidak ada dalam bingkai adalah data orang lain. ADED TIDAK secara sengaja benih, tidak seperti widget lainnya: yang lain membuka sesuatu anggota sudah memiliki dan berguna saat mereka muncul, sementara bingkai gambar kosong tidak ada yang meminta adalah kekacauan. Penangan menamakan sesi pembantu mereka Anggota mata uang sehingga tidak terotentikasi titik akhir ratchet dapat melihat penjaga - scan yang membaca salah satu metode tubuh dan tidak Tidak mengikuti panggilan.
· InitializerService
Buat tabel gambar _ frame
Satu baris per widget Gambar Frame seorang anggota telah mengatur launchpad mereka. Tabel daripada blob preferensi karena foto dan video dalam bingkai adalah baris pencitraan membawa id dalam assoc _ object _ id, dan sebuah asosiasi membutuhkan sesuatu yang tahan lama untuk menunjuk. Sebuah bingkai id tinggal hanya di dalam anggota JSON preferensi akan menjadi kunci asing untuk apa-apa: tidak ada yang bisa memaksakan bahwa frame masih ada, dan membersihkan preferensi anggota akan Yatim piatu diam-diam setiap byte mereka telah diunggah. setting adalah TEXT memegang JSON dengan sengaja. Ini adalah penampilan frame - baca keseluruhan untuk menarik satu panel, ditulis utuh pada menyimpan, tidak pernah kueri ke - sehingga sebagai kolom setiap bevel baru atau butir desainer tumbuh akan DDL lain ubah pendaratan di sini sebelum layanan yang memetakan, untuk nilai tak ada permintaan akan pernah menyaring. @ Order (0) setiap konvensi skema: sekali entitas shared-lib ada, apapun runner yang memuat PictureFrame melalui JPA memancarkan kolom ini dalam nya SELECT, sehingga migrasi later- memerintahkan tidak akan pernah dicapai - yang sebelumnya pelari akan mati pada "relation picture _ frames tidak ada" dan mengambil jalankan turun dulu. CATATAN UNTUK DEPLOY: SecurityService menjalankan hibernasi ddl- auto: tidak ada, jadi tabel ini tidak muncul sendiri. Layanan ini harus berupa RUN sebelum bingkai gambar Fitur bekerja.
· kamo-shared-library
Skema, hak cipta dan domain penyimpanan di belakang widget frame
Gambar Bingkai adalah foto dan video anggota sendiri pada launchpad mereka sendiri, dan anggota dapat menggantung beberapa. Ini adalah segalanya platform perlu terus Satu. Gambar adalah baris daripada kunci dalam blob preferensi anggota karena media adalah baris pencitraan yang diasosiasikan dengan id bingkai, dan sebuah asosiasi membutuhkan sesuatu yang tahan lama untuk menunjuk. Anggota-scoped daripada user- scoped: byte disimpan di bawah sebuah organisasi dan dihitung terhadap itu, jadi frame yang diikuti orang antara orgs akan menempatkan satu org penyimpanan pada lain Tagihan org. Kemunculannya adalah satu kolom JSON - membaca keseluruhan untuk menggambar panel, ditulis secara keseluruhan pada menyimpan, tidak pernah queried ke - sehingga desainer yang tumbuh bevel bulan depan tidak perlu perubahan DDL di depannya. ImageAspe.PICTURE _ FRAME scopes ke FRAME, bukan anggota: beberapa frame beberapa slideshows, dan scoping untuk anggota akan membuat setiap orang dari mereka menunjukkan segalanya. It buy content- called dedup for free, so a anggota yang menempatkan foto yang sama dalam tiga frame ditagih untuk satu. StorageDomain.PICTURE _ FRAMES mendapat baris sendiri daripada sedang dilipat ke ember umum. Ini adalah salah satu domain orang-orang organisasi sendiri mengisi beberapa megabita pada suatu waktu dengan tidak ada mengelola itu, dan org menonton nya Bill perlu melihatnya secara terpisah dari dokumen yang dijalankan bisnisnya. Tes cakupan akan gagal membangun sebaliknya, yang merupakan titik dari itu. Hak-hak mengikuti bentuk yang setiap widget lain gunakan - PICTURE _ FRAME _ WIDGET tambah empat anak kebijakan - menggantung off manvage _ OWN _ BACKGROUND _ IMAGES, hak yang sudah mengatur media pribadi seorang anggota menempatkan pada layar mereka sendiri. Bukan akar: suatu widget yang hibah tidak dapat dicapai dari grup yang memiliki nya data adalah hak tidak ada yang menemukan. Ids 229- 233; 228 diambil. Taxonomy 219 / 156 / 32 / 31 - > 224 / 161 / 32 / 31.
· kamo-internal
Tempatkan empat anggota jalan pintas pada satu baris
adalah salah satu kelas kontrol, sehingga mereka sekarang berbagi satu baris: launchpad yang Sudut kanan atas dibaca sebagai strip tunggal daripada dua baris tumpukan. Gaya; ia menggunakan pillingsx bersama seperti tetangganya, dan runtuh label pada xs seperti yang mereka lakukan, sehingga empat jalan pintas masih cocok telepon. Baris membungkus daripada meluap ketika anggota memegang setiap satu dari mereka.
· kamo-internal
Posisi dan warna untuk logo panel, dan selalu membiarkan anggota membuka penyunting
EDITOR YANG TIDAK MENGERTI UNTUK SIAPA SAJA THE ROLL TIDAK MEMUTUHKAN UNTUK. 'Branof' menjawab kosong sampai tanda ada dan kontrol itu diberi jawaban, sehingga anggota yang bibit tidak berjalan - atau tidak bertahan - tidak ada tombol sama sekali dan tidak ada cara untuk memberikan panel logo. Sebuah panel yang belum ditentukan adalah yang belum dicap, bukan yang hilang: 'brandari' sekarang Selalu menjawab, dan editor selalu ada. Band pined- widget memiliki gejala yang sama untuk alasan yang berbeda. Hal ini membuat luar SortableCard, yang merupakan apa mengungkapkan krom pada hover panel, sehingga kontrol duduk di opasitas 0 permanen. Ini membawa aturan itu sendiri sekarang. POSISI. Sembilan jangkar dalam popup, digambar sebagai grid yang sel masing-masing memegang titik dalam mereka sudut sendiri, sehingga pemetik membaca sebagai panel itu singkatan. Rotasi harus berpindah ke logo itu sendiri: memutar kotak ukuran mengayunkan tanda edge- berlabuh di sekitar panel tengah dan keluar dari sudut anggota baru saja memasukkannya COLOUR. Tanda dapat dicat siluet padat, melalui Theme Logo yang ada overlayColor - topeng CSS, sehingga mencapai warna sewenang-wenang daripada mendorong Karya seni sendiri warna sekitar. Dua sumber: jalan merek organisasi dari * * * * * * * * * * * * * * * deduped karena sebuah org yang set hanya sebuah primer dengan terang dan terang yang tidak bernilai sama, dan palet milik anggota sendiri menggunakan pendamping dalam setiap warna daripada kertas pastel, karena silhouette pucat pada panel pucat adalah tanda tidak ada yang bisa melihat. SIZE bergabung dengan ROLL, antara 0.55 dan 1,1 dari panel. Setiap tanda tepat 0.85 adalah kirim bahwa sebuah halaman telah dihasilkan daripada terdiri.
· kamo-internal
Cat catatan master dalam warna organisasi
"Our Master Note" adalah organisasi PRIMARY dan "My Master Note" nya SECONDARY, masing-masing sebagai pastel - a 18% warna putih. Pasangan membaca sebagai satu set di sekilas, dan juga tidak dapat salah untuk salah satu dari dua belas posting-itu warna anggota picks untuk catatan mereka sendiri. Berasal dari --color-primary / --color-sekunder daripada hex, sehingga white- label org mendapat merek sendiri. Tepi ini berlantai terhadap batu tulis dan kertas sengaja bukan: sebuah org mungkin set a near-white primary, and an 18% tint of that is just a paler sheet, but an edge dicampur dari itu saja akan menjadi aturan tak terlihat, pin dan karet. Sama alasan sebagai token scrollbar halaman. Satu konsekuensi, dan itu adalah titik: catatan master tidak memiliki palet lagi. Warna adalah apa yang mengatakan catatan siapa itu, yang bukan pilihan anggota - jadi swatch hilang dari panel, kartu, lengket dan editor, dan KBService berhenti menabur satu. '${color.edge} 33' harus pergi dengan itu. Tambahkan digit hex ke warna -mix () ekspresi menghasilkan sebuah deklarasi peramban tetes diam-diam, meninggalkan perbatasan dengan tidak ada warna sama sekali; dengan StickyAlpha () mengambil baik bentuk dan setiap catatan permukaan berjalan Melalui sekarang. useMasterNotes juga serikat dengan lapisan mengambang cache, jalan dipilih Pinned Panes tidak - jika catatan master diedit dalam lengket yang menunjukkan nya moot- time teks di launchpad sampai reload.
· kamo-internal
Taruh dua catatan utama pada setiap launchpad
"My Master Note" dan "Our Master Note" adalah panel dalam jaringan yang sama seperti segala sesuatu yang lain - diseret, resize dan memerintahkan seperti panel lain - dan tidak keduanya dapat dihapus. Organisasi ini membawa sebuah cincin conic- gradien yang dicat dari --color-primary, satu-satunya sisi yang bergerak pada halaman, sehingga salah satu panel yang melakukan tidak datang dari anggota membaca seperti dari seberang ruangan. Ditancapkan ke statis cincin di bawah prefer-reduced- motion. Keduanya disematkan, sehingga mereka tiba dalam daftar disematkan juga; pemilihan PinnedPanes tetes mereka di sana, atau masing-masing akan dicat dua kali dan duplikat akan salinan tanpa lencana dan tepi. Diambil dari / api / note / master, yang TIDAK DIJUAL pada aplikasi Catatan: disematkan panel catatan adalah aplikasi Catatan tumpah ke halaman rumah, dan ini adalah furnitur dari halaman rumah itu sendiri. Setiap kontrol server akan menolak diambil daripada dinonaktifkan: tidak unpin, no delete and no rename on either master note, and no colors, no toolbar dan tidak ada permukaan mengetik pada organisasi untuk anggota tanpa hak. A baca-saja anggota mendapat pembaca - render sama menggunakan panel - bukan sebuah Editor yang menyimpan akan ditolak setelah mereka melakukan pekerjaan. Tidak Api.saveNote rute dengan scope, sehingga lengket, editor, dinding dan picker warna launchpad ini berhenti perlu tahu bahwa catatan organisasi memiliki tidak ada anggota dan sehingga tidak dapat dicapai oleh titik akhir perid.
· KBService
Melayani, menyediakan dan melindungi dua catatan utama
Get / api / note / master jawaban baik dan ketentuan mana yang hilang. PUT / api / note / master / org menulis "Our Master Note", ditujukan oleh organisasi bukan dengan catatan id, sehingga tidak ada untuk menebak dan tidak ada organisasi lain catatan untuk mencapai. Editing it takes Manvage _ ORG _ MASTER _ CATATAN atau kepemilikan dari organisasi - lantai pemilik adalah jaminan anti-penguncian, karena hak sengaja tidak ditabur ke peran yang ada. GET / master sengaja mengambil NO catatan yang benar. VIEW _ NOTES gerbang aplikasi Catatan * *; ini adalah perlengkapan dari launchpad rumah, dan "setiap anggota selalu memiliki satu" memiliki berarti setiap anggota. Daftar biasa menjaga gerbang VIEW _ NOTES mereka dan sekarang juga mengembalikan catatan organisasi, sehingga dapat dibaca dan dicari di dinding. Aturan dipaksa di sini daripada di klien: catatan master tidak dapat terhapus (409 - fakta tentang catatan, bukan tentang yang bertanya), tidak dapat dan tak bisa diganti namanya. Judul dan pin diabaikan daripada ditolak, karena editor mengirim setiap bidang pada setiap menyimpan dan menolak permintaan akan gagal mengedit ke BODY atas judul anggota tidak pernah tersentuh. Kunci isi mengikuti scope: keyForOrg (orgId) untuk catatan organisasi, jadi setiap anggota organisasi bisa membacanya. Mengukir itu dari siapa pun yang menulis itu akan membuat catatan bersama dapat dibaca oleh satu orang. Menyediakan adalah kacang sendiri dan transaksi sendiri, dan melakukan setiap membaca sebelumnya penulisan pertama: sejak pindah ke Yugabyte a SELECT setelah menulis dalam satu Transaksi bisa kembali 40001 dan menggugurkannya. Metode pribadi pada Layanan Catatan akan tidak berguna sebagai @ Transaksional dan dijalankan dalam transaksi penelepon.
· InitializerService
Tambahkan kolom masterscope ke catatan
MASTER _ SCOPE ('MEMBER' / 'ORG' / NULL) dan ORGANIZASI _ ID, ditambah dua indeks entitas menyatakan dan sebagian unik indeks per lingkup sehingga satu catatan master hidup per anggota dan perorganisasi dipaksa oleh database daripada hanya oleh find-then-create in NotesService. Tidak ada backup: setiap catatan yang ada adalah catatan biasa dan NULL dibaca sebagai persis itu. Guru mencatat sendiri yang ditetapkan malas pada membaca pertama ingin mereka, yang mencakup keanggotaan dan organisasi dibuat setelah ini berjalan tanpa migrasi kedua. @ Order (0), seperti setiap kolumn-add pelari: saat peta perpustakaan terbagi kolom ini, setiap pelari yang memuat sebuah catatan melalui JPA memancarkan mereka dalam SELECT nya, sehingga migrasi memerintahkan terlambat tidak pernah dicapai. Terapan untuk Yugabyte 2026-08- 22: semua tujuh pernyataan yang diterapkan, baik kolom dan empat indeks diverifikasi hadir.
· kamo-shared-library
Model catatan master dan hak yang menjaga org
Sebuah catatan master adalah salah satu catatan anggota - atau organisasi - selalu memiliki. "My Master Note" ditetapkan sebagai anggota, "Our Master Note" adalah satu per satu organisasi dan muncul di setiap peluncur anggota. Keduanya adalah baris 'catatan' biasa membawa sebuah MASTER _ SCOPE, bukan meja baru, jadi Penyunting eksikal, simpan otomatis, versi, warna, lengket mengambang dan RAG mempublikasikan semua terus bekerja dengan apa-apa untuk menjaga dalam langkah. Baris ORG memuat _ ID NULL MEMBER dengan sengaja: setiap finder anggota-scoped cocok 'n.member.id =: memberId', sehingga catatan organisasi tidak pernah dapat dikembalikan oleh daftar pribadi satu anggota, perbarui atau hapus. Baca yang seharusnya lihat itu pergi melalui baru '... VisibleToAnggota' pencari, yang lebar untuk itu secara eksplisit; menulis menyimpan pasangan member- scoped dan sehingga tidak dapat mencapai sama sekali. Manvage _ ORG _ MASTER _ CATATAN (228) adalah akar standalone dengan sebuah layanan kosong tipe, berikut Manage _ ORG _ BRANDING: peran, job- judul dan editor departemen saja membuat bagian layanan ketika org memiliki aplikasi yang diaktifkan, dan master org catatan pada setiap launchpad apakah Catatan diaktifkan atau tidak. Tidak dipatenkan untuk VIEW _ NOTES untuk alasan yang sama - KBService melayani catatan tanpa catatan yang tepat.
· kamo-internal
Tandai sepertiga panel anggota dengan logo org, dan biarkan mereka menyetelnya
Sepertiga dari panel anggota memakai org lemah yang sama mark / lead dan / kalender membawa, di Skala panel. Yang panel, dan bagaimana, digulung sekali dan terus. APA THE ROLL DECIDES. Tanda dari panel itu tergantung pada bentuk panel itu akan masuk, karena sebuah kata dan ikon cocok persegi panjang yang berbeda. Sebuah panel persegi adalah dinyatakan koin melemparkan antara dua. A lebar satu bersandar ke Wordmark di tiga dalam empat - a Kata-kata IS lebar, dan ikon persegi dalam strip four- kolom adalah titik dalam bidang. Yang tinggi. Selalu mengambil wordmark dan mengubahnya 90 derajat searah jarum jam, yang cocok dengan panel tinggi lebih baik daripada Mark berbaring datar. Dan setiap panel bermerek mendapat beberapa derajat miring apa pun yang digulung: tanda diletakkan sempurna persegi pada panel persegi persegi baca sebagai kesalahan tata letak, dan beberapa derajat dari benar dibaca sebagai perangko, yang adalah apa itu. The kemiringan pergi cara baik, karena halaman tanda Semua miring kiri dibaca sebagai kutu rendering. PER PANE, TIDAK SEKALI - perbedaan dari warna yang menyebar, dan alasan sebuah panel yang TIDAK ditandai telah dicatat daripada kosong. Ketidakhadiran berarti "panel ini baru, gulung, "yang memungkinkan widget diaktifkan bulan depan, sebuah catatan disematkan berikutnya minggu atau aplikasi baru diberikan mengambil lulus yang sama pada penampilan pertama sementara tidak ada sudah di halaman bergerak. Ini juga merupakan isi ulang: launchpad yang ditata sebelum semua ini ada tidak membawa keputusan, sehingga setiap salah satu dari pane yang baru oleh definisi itu dan digulung pada beban berikutnya. Tidak ada migrasi, dan tidak ada anggota fitur gagal untuk mencapai. ORG 'S OPT-OUT DATANG PERTAMA. Sebuah organisasi yang bgWatermark adalah NONE telah berubah logos latar belakang mati; sebuah permukaan baru bukan sebuah pengecualian dari preferensi mereka sudah Diekspresikan, sehingga orang-orang panel tidak membuat tanda apa pun yang digulung. EDITOR. Sebuah kontrol di samping warna yang membuka popover untuk tanda itu sendiri: penuh, sederhana atau tidak sama sekali, ditambah rotasi, ukuran, hue dan kontras. Segala sesuatu di dalamnya adalah live - yang nilai masuk langsung ke preferensi render panel dari, jadi anggota menyeret Hue slider mengawasi panel di belakang popover berubah saat mereka menyeret. Disimpan melawan mereka anggota record seperti setiap preferensi panel lainnya. Filter adalah hue- rotasi dan kontras bukan halaman watermark 's grayscale, karena skala abu-abu strip hue dan akan telah meninggalkan anggota slider yang tidak bergerak. Reset- to -default pada halaman widget sengaja TIDAK jelas merek: re-rolling sebuah logo akan tangan seseorang launchpad yang berbeda setiap kali mereka menekannya, yang tidak sebuah reset.
· kamo-internal
Edit dalam Mode Klasik, dan redraw ketika menyimpan
Editor Form-fible sekarang dapat cabang ke LibreOffice. Server diperoleh versi klasik dalam perjalanan jika dokumen belum punya satu, yang merupakan titik menawarkan dari sini - anggota yang hanya pernah menambahkan bentuk bidang tidak memiliki salinan klasik untuk membuka belum. Ketika tab lainnya disimpan, penyunting memuat ulang. Halaman-halaman tempatnya duduk hanya berubah di bawahnya, dan itu akan tetap menggambar yang mereka ditempatkan di atas. Dikatakan begitu daripada menggambar kembali diam-diam: perbedaan antara "dokumen diperbarui" dan "bidang saya melompat untuk tidak alasan, "dan setelah aliran kembali mereka mungkin benar-benar perlu bergerak. Editor yang DID menyimpan sengaja tidak dimuat ulang - itu sudah memegang byte yang ditulis, dan reload itu akan membuang apa-apa diketik sejak. Ids dibandingkan sebagai string akhir sampai akhir. Dua id anggota int64 yang berbeda dibandingkan EQUAL sebagai angka, yang berarti menyimpan rekan memuat ulang penyunting Anda; tes menegaskan bahwa kesetaraan langsung jadi alasannya bukan hanya komentar.

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