परिवर्तन लॉग
क्या नया है.
यह जहाज के रूप में, प्लेटफार्म के हर सुधार.
· kamo-internal
सभी पांच संपादकों में अनुमति पदानुक्रम दिखाएं और लागू करें
पांच संपादकों ने चेकबॉक्स की पांच फ्लैट सूचियों के रूप में 199 अधिकार दिए, और कोई नहीं उन्हें पता चला कि एक अधिकार दूसरे के लिए एक शर्त हो सकता है। एक बच्चे को देना अपने माता-पिता के बिना वास्तव में एक काम करने की अनुमति देने की तरह देखा - जो है कैसे कानूनी और अनुपालन टैब को दो अधिकार की जरूरत है और कोई संपादक ऐसा कह सकता है। अधिकार पेड़ पेड़ प्रदान करता है: एक कनेक्टर रीढ़ के साथ इंडेंटेशन, खुलने योग्य शाखाओं, प्रति शाखा एक दी गई / कुल गोली, खोज जो एक मैच के पूर्वजों को रखता है दृश्यमान और एक कैस्केड जो एनिमेटेड है क्योंकि एनीमेशन वह है जो सिखाता है नियम - बच्चे को रोशनी प्रदान करने में सक्षम बनाता है कि यह क्या निर्भर करता है, माता-पिता को अलग करने के लिए उसकी त्वचा को अलग करना सबट्री, दोनों के साथ एक undo टोस्ट नामकरण बिल्कुल क्या ले जाया गया। सम्मान प्रेरित गति को पसंद करता है। यह तीन राज्यों के बारे में झूठ बोलना भी रोकता है, संपादक कभी व्यक्त नहीं कर सकते: अधिकार ऑर्ग के सुरक्षा मॉडल द्वारा बंद कर दिया गया था, जिसे दिया गया था-but-inert विरासत पंक्तियों जिसका माता-पिता है इनकार कर दिया, और 58 अधिकार जो अनुदान योग्य हैं लेकिन कहीं भी गेट नहीं है। एक व्यवस्थापक पहले प्लेसहोल्डर से वास्तविक अनुमति नहीं बता सकती। कैस्केड नियम app/lib/rightsHierarchy.ts में रहते हैं, जावा से प्रतिबिंबित रोलराइट प्रकार। एक सुरक्षा नियम की एक प्रति एक दायित्व है, इसलिए समानता परीक्षण पढ़ता है जावा स्रोत और ट्रस्टिंग सम्मेलन के बजाय किसी भी विचलन पर विफल रहता है। शाखा-प्रकार के टेम्पलेट संपादक को ऑर्डरिंग और इंडेंटेशन मिलता है, लेकिन इसके पास रहता है स्वयं का नियंत्रण और ऑटो-कैस्केड नहीं है: वे फॉरे मूल्य, पूर्ण और पूर्ण हैं हर स्तर के बाद लागू होता है, इसलिए उन्हें पकड़ना चुपचाप एक जानबूझकर लिखने की कोशिश करेगा ओवरराइड माता-पिता का संबंध अभी भी संकल्प समय पर लागू होता है। डिजाइन + प्रतिनिधि लेखा परीक्षा: डॉक्स/सुपरपावर/स्पेक्ट्स/
· SecurityService
सामान्यीकृत सदस्य पदानुक्रम के खिलाफ ओवरराइड करता है
सदस्य प्रत्यक्ष अधिकार अब अधिकार क्षेत्र के माध्यम से जाते हैं। इससे पहले कि वे सामान्य हों जारी रखा गया है: एक बच्चे ने अपने पूर्वजों को सदस्य पर ग्रेंटेड तक खींच लिया स्तर, एक विकृत माता-पिता ने उसके उप-त्रि को नीचे धकेल दिया। संपादक पर भरोसा करने के बजाय सर्वर-साइड, क्योंकि यह समापन बिंदु पहुंच योग्य है सीधे। एक बच्चे के साथ संग्रहीत स्तर लेकिन इसके माता-पिता को ठीक नहीं है कि क्या है? बाद में हलकों की बंदी पास स्ट्रिप्स - सदस्य को सही ढंग से खोना होगा यूआई ने इसे स्वीकार करने के लिए कुछ भी नहीं किया। पहले एक मानचित्र में एकत्रित किया गया ताकि पदानुक्रम एक बार में पूरे स्तर को देखता है; प्रविष्टि द्वारा प्रविष्टि सामान्य करने के आदेश पर निर्भर करेगा ग्राहक भेजने के लिए हुआ था।.
· InitializerService
बैकफिल पूर्वज इसलिए बंद पहुंच को दूर नहीं कर सकते
सदस्यRightsAppliedService अब किसी भी अधिकार को अस्वीकार करता है जिसका मूल श्रृंखला नहीं है दिया गया। हर पंक्ति जो पदानुक्रम से पहले लिखी गई थी, के बारे में कुछ नहीं जानता पूर्वजों, तो एक भूमिका होल्डिंग MANAGE SUBSCRIPTION PLANs without ACCESS COMMERCE — अब तक पूरी तरह से सामान्य - इसे अगले पुनरावर्तन पर खो देंगे। पार 13 लाइव संगठन जो एक आउटेज है, माइग्रेशन नहीं है। सभी चार स्तरों (ऑर्ग भूमिकाओं, विभागों, नौकरी शीर्षकों, सदस्य ओवरराइड्स) को लाती है अभी तक बनाए रखने के लिए, एक ही नियम का उपयोग करते हुए: एक प्रदान की गई वंशज अपने पूर्वजों को GRANTED तक खींचता है। चरण 2 वास्तव में एक है कि आउटेज को रोकता है - यह स्पष्ट रूप से परिभाषित पूर्वजों को प्रदान करने के लिए फ्लिप करता है, क्योंकि उन पंक्तियों को जो चरण 1 तक जीवित रहने वाले हैं, अछूते और बंद होने के बाद हर जगह वापस आ जाएंगे। उनके नीचे वंशज। सुरक्षा मॉडल टेम्प्लेट जानबूझकर स्पर्श नहीं किए जाते हैं: माता-पिता पर एक FORCE NUKE एक व्यवस्थापक उद्देश्य पर बंद एक subtree स्विचन है, और बंद सम्मान यह विशेषता है। चरण 3 एक गेट है, एक लॉग लाइन नहीं है: यह पलटनेवाला फिर से जांच करता है और अगर रन विफल रहता है किसी भी स्तर पर अभी भी एक गैर-प्रवासित पूर्वजों के तहत एक स्वीकृत वंशज है। A माइग्रेशन जिसने पीछे छोड़े गए उल्लंघन के साथ सफलता की सूचना दी, वह हाथ देगा हलक में समस्या, जहां यह एक सदस्य के रूप में घूमता है, चुपचाप हार जाता है इसकी व्याख्या करने के लिए कुछ भी नहीं है।.
· kamo-shared-library
सभी 199 अधिकारों के लिए माता-पिता / बच्चे पदानुक्रम
रोलराइटटाइप ने वर्षों के लिए 'parent' फ़ील्ड और एक सार्वजनिक getParent () घोषित किया है। प्रत्येक निरंतर पारित null और कभी कभी इसे बुलाया नहीं। यह समाप्त होता है कि मचान: 135 बच्चे, 34 जड़ें, 30 स्टैंडअलोन, अधिकतम गहराई 3, एक से व्युत्पन्न सभी 199 अधिकारों का लेखापरीक्षण 15,081 से अधिक स्रोत फ़ाइलों में 40 रिपॉज़ है। TWO प्रवर्तन बिंदु, और विभाजन डिजाइन है: सामान्यीकृत (Level) AUTHORING है। यह एक स्तर की आत्म-सहायक बनाता है - एक दिया बच्चा अपने पूर्वजों को उस स्तर पर खींचता है, एक वंचित माता-पिता ने इसे नीचे धकेल दिया वहाँ उसकी उप-त्रि। भूमिका, विभाग और नौकरी-शीर्षक लिखने के पथ में लागू। क्योंकि प्रत्येक स्तर सुसंगत रहता है, एक नौकरी का शीर्षक जो एक बच्चे को भी अनुदान देता है माता-पिता थेरे, और मौजूदा झरना पहले से ही अधिक विशिष्ट देता है स्तर ने एक विभाग को हराया जिसने इसे अस्वीकार कर दिया। कोई क्रॉस-लेवल प्राथमिकता नियम नहीं था जोड़ा गया और झरना अछूता हुआ है। ApplicationClosure () ResOLUTION है, जो लागू होने के बाद किया गया हैTemplateRules. यह एक है केवल दो चीज़ों के लिए सुरक्षा नेट तक नहीं पहुंच सकता: एक सुरक्षा मॉडल FORCE NUKE on a parents (absolute, लागू किया गया था, इसलिए इसके बिना एक मजबूर बंद माता-पिता ने अपने बच्चों को दिया था और उनमें से किसी के सामने लिखी गई पंक्तियां। दो जोड़े जानबूझकर FLAT रहते हैं क्योंकि कर्तव्यों का अलगाव इस पर निर्भर करता है: APPROVE TIMECARD ADJUSTMENTS / FINALIZE PAY PERIODS, and APPROVE ORG PAYOUTS, as a way. अपने बच्चे के बजाय MANAGE ORG FINANCEs का एक भाई-बहन - बाद में घोंसला प्रत्येक भुगतान अनुमोदनकर्ता को एक जारीकर्ता भी होना चाहिए। डिज़ाइन: Kamo-internal *************
· kamo-internal
ऑर्ग के रंग में रिमाइंडर को फिर से पेंट करें, अपने विकल्प को जगह में खोलें
कार्ड अब संगठन का प्राथमिक रंग है, जिस पर प्रत्येक चिह्न खींचा गया है। --on-primary बल्कि एक शाब्दिक सफेद के बजाय - एक सफेद लेबल org जो एक चुनता है पीला प्राथमिक उस एक टोकन को फिर से जीवंत कर सकता है और पूरे कार्ड को स्थानांतरित कर सकता है। चिप्स, रेल और सीमाएँ उसी टोकन से रंग-मिश्रित होती हैं, इसलिए वे किसी भी तरह से वैध रहते हैं। प्राथमिक कार्रवाई एक उलटा गोली है, जो मुहावरे को कानूनी हस्ताक्षर से मेल खाती है नायक पहले से ही एक रंगीन बैंड पर एक बटन के लिए उपयोग करता है। प्रति किंड उच्चारण रीढ़ चला गया है; आइकन पहले से ही तरह का होता है, और एक एक रंगीन कार्ड पर दूसरा रंग केवल इसे कीचड़ में डाल दिया। अतिदेय अपवाद है, और यह लाल रंग को मोड़ने के बजाय उलटा करता है: एक मनमाने ढंग से रंग पर लाल रंग अपठित है। इसके Snooze और अधिक मेनू MUI मेनू थे, जो दस्तावेज़ के लिए पोर्टल और लाने के लिए उनके साथ एक स्क्रॉल लॉक। यह ताला ओवरफ्लो सेट करता है: छुपा और एक क्षतिपूर्ति दस्तावेज़ पर पैडिंग-दाएं.बॉडी, और पैडिंग शरीर हर निश्चित स्थिति में चलता है पृष्ठ पर तत्व - इसलिए डेक, जो नीचे / दाएं 20 पर तय किया गया है, कूद गया जिस क्षण कोई भी Snooze के लिए पहुंच गया, और मेनू ने इसे कार्ड को कवर किया इससे संबंधित है। दोनों अब एक इनलाइन पैनल हैं, कार्ड के अंदर विस्तार के साथ ट्रिगर छोड़ दिया। कोई पोर्टल नहीं, कोई स्क्रॉल लॉक, कवर करने के लिए कुछ नहीं।.
· kamo-internal
Org डिफ़ॉल्ट कानूनी पाठ के साथ कानूनी और अनुपालन सेटिंग्स टैब
एक नया टैब ऑन /सेटिंग/फीचर/hrs होल्डिंग डिफॉल्ट लीगल टेक्स्ट, लिंक्ड से सेटिंग्स मेनू और सेटिंग्स लॉन्चपैड। पैकेज बनाना /hr/legal-compliance अब इससे शुरू होता है, और यह क्षेत्र तीन पंक्तियाँ लंबा है। राइट्स HRS सेटिंग्स पृष्ठ पूरी तरह से अब REFUSES के रूप में RENDER के बिना RENDER करने के लिए MANAGE HRS SETTINGS के बजाय केवल पुनर्निर्देशित: पुनर्निर्देशित एक प्रभाव है, इसलिए यह एक प्रतिपादन के बाद तक नहीं चल सकता है, और हर टैब पेंटिंग थी - और इसके फायरिंग माउंट-टाइम लोड - एक सदस्य के लिए जो सही नहीं रखता है। नया टैब इसके अलावा, MAAGE LEGAL AND COMPLIANCE की आवश्यकता है, जो तीन स्थानों पर समान है। (पृष्ठ, मेनू लिंक, लॉन्चपैड कार्ड) और एक परीक्षण द्वारा पिन किया गया, क्योंकि एक लिंक की पेशकश की गई किसी के लिए पृष्ठ खुलने वाले प्रदाता सेटअप के बजाय टैब प्रस्तुत नहीं करेगा: सेटिंग्स व्यू त्रुटि के बजाय 0 अनुक्रमित करने के लिए एक अज्ञात? टैब = को हल करता है। संवाद केवल डिफॉल्ट के बीज जबकि लेखक ने टाइप नहीं किया है - लाने इसके बाद वे पहले से ही लिख सकते हैं। बीजDefaultAttestation एक शुद्ध है हेल्पर इसलिए कि नियम परीक्षण योग्य है, और इसे राज्य अद्यतनकर्ता के बाहर लागू किया जाता है: विकास में दोहराने वाले अद्यतनकर्ता को फिर से सक्रिय करें, जिसने बीजित स्नैपशॉट छोड़ दिया उन्नत और दूसरा कॉल अपने स्वयं के परिवर्तन को मना कर देता है। एक EDIT कभी फिर से बीज नहीं। पैकेज अपने स्वयं के शब्दों को पूरा करता है और इसे ओवरराइट करता है क्या एक प्रकाशित संस्करण के दर्शकों को सहमत होने के लिए कहा जाता है.
· kamo-internal
स्टिकी और पूर्वावलोकन में रिच टेक्स्ट, और एक मोड जिसे आप स्विच कर सकते हैं
अब एक नोट कहता है कि यह अमीर पाठ या सादे पाठ है, और दोनों संपादक और फ्लोटिंग स्टिकी इसे स्विच कर सकते हैं। अमीर मोड में फ्लोटिंग नोट बहुत ही समान संपादक / नोट्स उपयोग को एम्बेड करता है, इसलिए इसमें हर उपकरण है जो पूरा पृष्ठ है - उस नोट के अपने रंग में तैयार है KbArticleEditor पर एक नया वैकल्पिक 'टोन' प्रोप के माध्यम से। प्रोप है योजक: अनुपस्थित, संपादक बिल्कुल जैसा दिखता है, इसलिए ज्ञान आधार अछूता है। टूलबार लपेटता है और धक्का देने के बजाय स्क्रॉल करता है एक संकीर्ण चिपचिपा बंद क्षेत्र लेखन। स्विचिंग अमीर -> सादे पहले पूछते हैं, और स्पष्ट रूप से कहते हैं कि स्वरूपण इसे खारिज कर दिया जाता है और जब पाठ रखा जाता है तो उसे ठीक नहीं किया जा सकता है। यह नहीं है छिपे हुए - सादे मोड में कहीं नहीं है - इसलिए रूपांतरण भी एक संस्करण स्नैपशॉट, पुराने स्वरूपण इतिहास से वसूल छोड़ दिया। सादे -> अमीर सिर्फ उपकरण बदल जाता है और कोई चेतावनी की जरूरत है। दीवार कार्ड पर पूर्वावलोकन और लॉन्चपैड चिप्स अब असली दिखाते हैं एक समतल रेखा के बजाय सामग्री। वे एक स्टैंडअलोन के माध्यम से प्रदान करते हैं एक घुड़सवार लेक्सिकल उदाहरण के बजाय lexicalToHtml: एक दीवार दर्जनों है कार्ड, और प्रत्येक अन्यथा पूरे संपादक रनटाइम में ड्रैग करेगा एक पैराग्राफ प्रदर्शित करें। उस उत्पादन को इंजेक्ट किया जाता है, और नोट सामग्री को इंजेक्ट किया जाता है। सदस्य-लेखित और अक्सर चिपका हुआ, इसलिए यह सुरक्षा-संवेदनशील हिस्सा है और लिखा गया था परीक्षण-first — escaping, एक योजना की अनुमति है कि मना कर दिया जावास्क्रिप्ट: और डेटा: (टैब- और केस-असफल सहित), उद्धरण-इकट्ठे href के अंदर, और विरासत कच्चे एचटीएमएल नोटों को प्रस्तुत किए जाने के बजाय पाठ के रूप में दिखाया गया है। जबकि एक खोज चल रहा है कार्ड सादे हाइलाइट पूर्वावलोकन को देखते हैं: हिट मामलों को मध्य-अनुसंधान से चिह्नित करना, और यह प्रस्तुत करने पर प्रकाश नहीं डाल सकता एचटीएमएल को फिर से तय किए बिना क्या सिर्फ धारावाहिक किया गया था। इसके अलावा: फ्लोटिंग नोट्स ऑर्ग की विन्यास योग्य पृष्ठभूमि ले जाते हैं वॉटरमार्क, वही एक सामग्री पृष्ठों का उपयोग करता है, ओरग का सम्मान करता है NONE सहित BgWatermark सेटिंग। इसलिए इसे नोट के शेयर के रूप में आकार दिया गया किसी भी आकार पर रखती है, और पृष्ठों के उपयोग की तुलना में थोड़ा मजबूत है क्योंकि एक चिपचिपा निकट-सफेद के बजाय संतृप्त कागज पर बैठता है।.
· KBService
एपीआई के माध्यम से एक नोट के अमीर पाठ / सादे पाठ मोड ले लो
अनुरोधित मोड और डिफॉल्ट्स को अमीर बनाने, मिलान करने का सम्मान करता है संपादक एक नोट में बनाया गया है। अद्यतन हर दूसरे की तरह null-guarded है उस समापन बिंदु पर फ़ील्ड, इसलिए कॉलर केवल { isRichText } भेजता नहीं है नोट खाली करें। डीटीओ isRichTextOrDefault () के माध्यम से पढ़ता है, इसलिए एक पंक्ति जो किसी भी तरह से होती है बचे हुए बैकफिल को अमीर बताया गया है। रखने की दिशा में स्वरूपण सुरक्षित दिशा है: विपरीत एक स्वरूपित प्रस्तुत करेगा जैसा कि सादे नोट करें और सदस्य को इसे समतल करने के लिए आमंत्रित करें।.
· InitializerService
Is rich text कॉलम जोड़ें, डिफ़ॉल्ट और वापस अमीर के लिए भरा
क्या एक नोट को अमीर पाठ या सादे पाठ के रूप में संपादित किया जाता है, इसे वापस नहीं पढ़ा जा सकता है इसकी सामग्री से बाहर: एक अमीर नोट कोई भी प्रारूपित नहीं है, फिर भी बाइट के लिए बाइट है एक सादे। एक स्तंभ के बिना संपादक हर बार अपने टूलबार को खो देता है ध्यान फिर से खोला जाता है। डिफ़ॉल्ट TRUE, जो कि YugabyteDB को कॉलम को एक में जोड़ने की अनुमति देता है तालिका जिसमें पहले से ही पंक्तियां हैं। TRUE विशेष रूप से क्योंकि हर नोट लिखा इससे पहले स्तंभ अस्तित्व में अमीर संपादक में लिखा गया था - यह था केवल संपादक वहाँ था - इसलिए FALSE के लिए backfill स्वरूपित दिखाया जाएगा आम तौर पर नोट्स और उन्हें समतल करने की पेशकश करते हैं। सामान्य कारण के लिए @Order(0): पल साझा-lib कॉलम को मैप करता है, प्रत्येक धावक जो एक नोट सेलेक्ट को लोड करता है, इसलिए देर से प्रवास कभी नहीं होता है पहुंच गया। इस पैकेज का उपयोग करता है - यह स्तंभ को दर्शाता है इसे बंद करने के बजाय इकाई को नाम देना, और ब्रेक करके जांच करना नाम और यह असफल देखा। Yugabyte के खिलाफ लागू: स्तंभ बोओलेन डिफ़ॉल्ट सच के रूप में प्रस्तुत, सभी मौजूदा पंक्तियों को सच करने के लिए वापस भरा, कोई नल नहीं।.
· kamo-shared-library
एक नोट रिकॉर्ड क्या यह अमीर पाठ या सादे पाठ है
मोड सामग्री से प्राप्त नहीं किया जा सकता है। एक अमीर नोट सदस्य है नहीं स्वरूपित अभी तक एक सादे एक के समान बाइट-for-byte धारावाहिक - दोनों unstyled पैराग्राफों का एक लेक्सिकल दस्तावेज़ हैं - इसलिए कहीं बिना इसे रखने के लिए, संपादक हर बार अपना टूलबार खो देता है जब नोट फिर से खोला जाता है। धन के लिए डिफ़ॉल्ट, और स्तंभ वापस TRUE में भर जाता है, क्योंकि हर नोट इससे पहले कि ध्वज को अमीर संपादक में अधिकृत किया गया था; यह एकमात्र ही था वहाँ था। FALSE के लिए बैकफिलिंग ने फॉर्मेट किए गए नोटों को सादे रूप में पेश किया और सदस्य को उन्हें समतल करने के लिए आमंत्रित करें। उद्देश्य पर Nullable, isRichTextOrDefault () एक unset ध्वज पढ़ने के रूप में अमीर: एक पंक्ति जो किसी भी तरह से बैकफिल से बच जाती है, उसे रखने की कोशिश करनी चाहिए स्वरूपण, इसे त्यागने की दिशा में नहीं।.
· kamo-internal
अधिसूचनाओं के लिए एक पृष्ठ और उन पर नियंत्रण
नोटिफिकेशन पेज ने अपनी खुद की हेडर पहनी - एक भौं, एक शीर्षक और तीन एक bordered कार्ड के अंदर गोली बटन - जबकि हर पड़ोसी पृष्ठ (खाता) ब्राउजर, हर सेटिंग स्क्रीन) एक ब्रांड ढाल नायक द्वारा एक साथ पेश किया जाता है वापस तीर और इसके तहत एक टैब बार। यह उत्पाद में कहीं और पढ़ा जाता है। यह अब एक ही हेडर को वहन करता है, जिसमें अपठित गिनती इसके उपशीर्षक और दो के रूप में होती है। कार्रवाई जो सूची में नायक के सफेद बटन के रूप में काम करती है। इसके तहत, दो टैब: अधिसूचनाएं और सेटिंग्स। सेटिंग्स वह हैं जो सदस्य के अपने प्रोफ़ाइल पर / सेटिंग / सदस्य /{id} पर एक टैब होने के लिए इस्तेमाल किया?tab= अधिसूचनाएं, जो नियंत्रण को विभिन्न स्क्रीन पर नोटिफिकेशन पर डालती हैं स्वयं अधिसूचनाओं से - दो स्थानों में एक विषय, जिनमें से कोई नहीं दूसरा उल्लेख किया गया है। एक सदस्य जो घंटी खोलता है क्योंकि यह रुक नहीं जाएगा अब है पहले से ही उस पृष्ठ पर जो इसे रोक सकता है। `?tab=` के माध्यम से साझा किया जाता है Notification TABS, इसलिए बार और सतह जो इसमें गहरी लिंक नहीं हो सकती एक मूल्य पर बहाना जो कुछ भी नहीं चुनता है। दोनों सतहों कि पुराने स्थान से जुड़ा हुआ है (toast डेक सेटिंग्स कार्रवाई, पेज का अपना सेटिंग बटन, अब एक टैब) नोटिफिकेशन सेटिंग HREF पर जाता है। An सदस्य URL का पुराना बुकमार्क अभी भी हल हो जाता है - सेटिंग्स देखें वापस करने के लिए वापस गिर जाता है एक `?tab=` के लिए पहला टैब यह मान्यता नहीं है। त्वरित सुझाव प्रतिलिपि जो पुराने टैब (settings.notifications.help.*) को लटका देती है। नहीं किया गया: मदद लेने वाला एक सेटिंग्स व्यू वहन है और इस पृष्ठ पर है कोई नहीं। कुंजी को स्क्रब के बजाय शब्दकोश में छोड़ दिया जाता है।.
· DocsService
GET/PATCH org की डिफ़ॉल्ट कानूनी पाठ
/api/docs/legal/settings, एक ही संरक्षित () फ़नल के पीछे हर दूसरे के रूप में इस नियंत्रक पर मैपिंग। पढ़ा गया एनईवीईआर एक पंक्ति बनाता है: जब ऑर्ग होता है तो यह लीगलडिफ़ॉल्ट्स को हल करता है कोई नहीं। यह पैकेज संपादक के बीज को साइड-प्रभाव मुक्त रखता है और क्या है KamoInitializer बीज के बाद बनाए गए संगठनों को कवर करता है - पंक्ति है पहली बचत पर भौतिककृत, जहां एक लिखने का संबंध है। सही सेट जानबूझकर पैकेज समापन बिंदुओं की तुलना में व्यापक है। यह समापन बिंदु कानूनी और अनुपालन सेटिंग्स टैब (MANAGE HRS SETTINGS) से पहुंच गया है और पैकेज संपादक (MANAGE LEGAL AND COMPLIANCE); या तो अकेले 403s इसके मालिक क्षेत्र में एक स्क्रीन। क्योंकि यह एक ओरग-स्तरीय स्ट्रिंग है, यह चौड़ी करने के लिए सुरक्षित है बायलरप्लेट - कोई रोस्टर, कोई असाइनमेंट नहीं, कोई सबूत नहीं - और एक प्रतिगमन परीक्षण पिन कि चौड़ी सूची/create/audience-preview तक नहीं पहुंचती है। PATCH semantics: एक अनुपस्थित क्षेत्र अछूता है, एक खाली स्ट्रिंग एक जानबूझकर है स्पष्ट प्रकाशित पहले से ही एक खाली प्रयास मना कर दिया, तो एक स्पष्ट डिफ़ॉल्ट केवल लेखक अपनी खुद की लिखता है।.
· InitializerService
हर संगठन को एक डिफ़ॉल्ट कानूनी पाठ बीज
एक hr legal settings पंक्ति प्रति org, org id पर अद्वितीय, ले जाना ************* केवल, कभी नहीं अद्यतन। एक ओरग जिसने अपने स्वयं के शब्दों को संपादित किया है, इसका मालिक है; एक redeploy चुपचाप वाक्य फिर से लिखना उसके लोगों को कानूनी रूप से कहा जाता है इस स्ट्रिंग के लिए सबसे खराब संभव व्यवहार होने के लिए सहमत हैं। यह भी बनाता है धावक idempotent। संगठन ने AFTER बनाया, इस रन को डॉक्स सर्विस रीड फ्लेमबैक द्वारा कवर किया गया है। बल्कि org प्रावधान के बजाय, इसलिए भविष्य में प्रावधान करने वाला मार्ग जो भूल गया कॉल एक org जहाज नहीं कर सकता जिसका डिफ़ॉल्ट कानूनी पाठ खाली है। दोनों कथन 40001 retry: एक कमांड लाइनर्नर से एक फेंक पूरी तरह से गर्भपात करता है प्रारंभ करने वाला और उसके बाद ऑर्डर करने वाले प्रत्येक धावक को छोड़ देता है।.
· kamo-shared-library
Org स्तर डिफ़ॉल्ट कानूनी पाठ
लीगलसेटिंग्स प्रति संगठन एक पंक्ति है जो एक नया कानूनी शब्द ले जाता है। पैकेज शुरू होता है। यह एक DEFAULT है, कभी एक लाइव संदर्भ नहीं: एक बनाना पैकेज पाठ की प्रतिलिपि बनाता है, और प्रकाशन फ्रीज जो एक संस्करण पर कॉपी करता है, इसलिए इसे संपादित करने से पैकेज में बदलाव नहीं हो सकता है जो मौजूद है या किसी ने पहले से ही सहमत लीगलडिफ़ॉल्ट्स में एक स्थान पर प्लेटफॉर्म शब्दकरण होता है। KamoInitializer बीज, DocsService ने गिरावट को पढ़ा और सेटिंग्स क्षेत्र में सभी इसे बांध दिया - तीन साक्षर ड्रिफ्ट करेंगे और या तो माइग्रेशन के पक्ष में आगे बढ़ेगा तब डिफ़ॉल्ट क्या है के बारे में असहमति।.
· kamo-internal
इतिहास एक पृष्ठ बन जाता है, और घंटी के छल्ले
घंटी ने एक पॉपओवर खोला, जो "क्या सिर्फ हुआ" के लिए सही आकार है और "क्या यह याद दिलाने वाले ने मंगलवार को कहा" के लिए गलत है। एक पैनल एक बंद फांसी टूलबार को पेज नहीं किया जा सकता है, भीड़ के बिना फ़िल्टर नहीं किया जा सकता है, और जब आप बंद हो जाते हैं कुछ भी क्लिक करें - इसलिए कोई सदस्य हाल ही में पढ़ने वाली अधिसूचनाओं को देख सकता है और और कुछ नहीं। सब कुछ पहले पढ़ा गया था, अभ्यास में चला गया। यह एक गरीब है आवेदन के रिकॉर्ड के लिए संपत्ति ने किसी को बताया है। /notifications वह रिकॉर्ड है। यह एक सूची के बजाय क्रोनोलॉजी के रूप में पढ़ता है, क्योंकि अधिसूचनाएं होती हैं और प्रश्न एक सदस्य लाता है लगभग है हमेशा "जब": दिनों की एक रीढ़ की हड्डी जिसमें इसे फांसी, प्रत्येक डॉट अपनी तरह के रंग में, इसलिए एक महीने का इतिहास एक महीने से पहले बैंड के रूप में पढ़ता है शब्द पढ़ा जाता है। Unread पंक्तियों जमीन ले जाते हैं और पढ़ने वाले केवल डॉट ले जाते हैं, जिस अंतर के लिए स्कैन किया जा रहा है। फ़िल्टर रेल ने क्या संकुचित किया रीढ़ की हड्डी इसे फिर से व्यवस्थित करने के बजाय रखती है - पढ़ने, पढ़ने या पढ़ने दोनों, और तरह के साथ प्रत्येक के खिलाफ एक गिनती। दिन समूहीकरण के बजाय कैलेंडर-एवेयर है: आधे अतीत में आधी रात, चार घंटे से कुछ पहले कल हुआ, और "4h पहले" नहीं है इसके लिए क्या देखना है? कुछ भी सर्वर तारीख नहीं कर सकता रखा जाता है और समूहीकृत किया जाता है, जहां यह एक दिन का दावा नहीं कर सकता है। घंटी अब एक लिंक है, जिसे बार में अन्य दो ध्यान चिह्नों की तरह बिल्ला जाता है। सभी तीनों ने उसी तरह पढ़ा। क्या अलग है आंदोलन, और जानबूझकर: एक उत्कृष्ट दस्तावेज और एक चल घड़ी राज्यों हैं, और वे एक अंगूठी को पल्स करते हैं जो कि एक उत्कृष्ट दस्तावेज़ है। "still True" कहते हैं। एक अग्रेषित अधिसूचना एक घटना है, और एक घंटी क्या करती है जब एक घटना होती है अंगूठी। तो यह झूलता है - एक बार मारा और सेटलिंग, आयाम 12° → 9° → 6° → 3° → 1.5°, मुकुट पर pivoting क्योंकि एक घंटी हैंग - और फिर चार सेकंड के लिए आराम करते हैं। कभी रुकने वाली घंटी अलार्म नहीं होगी, और इसके अलावा यह पहले से ही बताता है कि बात बनी रहती है।.
· EmailService
एक पृष्ठबद्ध, फिल्टर करने योग्य इतिहास
केंद्र एक सवाल का जवाब दे सकता है: हाल ही में सौ, पढ़ना या नहीं, पहले से ही पढ़ने के लिए पूछने का कोई तरीका नहीं है। इसलिए किसी सदस्य ने देखा था था, व्यवहार में, चला गया - जो उस रिकॉर्ड के लिए एक खराब संपत्ति है जो कि क्या है? एप्लिकेशन ने किसी को बताया है। GET/api/notifications/browse पृष्ठों, कुल रिपोर्ट, प्रत्येक प्रकार की गिनती के लिए एक प्रकार की गिनती फ़िल्टर रेल, और सभी, पढ़ने या पढ़ने की स्थिति लेता है। मौजूदा सूची रहती है जैसा कि यह था: यह लाइव डेक भरता है, जो नवीनतम कुछ और कुछ नहीं चाहता है। फिल्टर के संयोजन के बजाय भविष्यवाणी से निर्मित, और जानबूझकर नहीं (:kind IS NULL OR ...) - एक untyped null पैरामीटर क्या है प्रत्येक कैलेंडर लुकअप 500 बनाया गया है और एक omitted भविष्यवाणी ऐसा नहीं कर सकती है।.
· kamo-shared-library
इतिहास को विनिर्देशन द्वारा पूछताछ करनी चाहिए
ब्रूसेबल हिस्ट्री को तरह से फ़िल्टर किया गया है और इस बात से कि कोई अधिसूचना जारी की गई है या नहीं। पढ़ना, और वे स्वतंत्र रूप से गठबंधन करते हैं - जो जेपीक्यूएल के रूप में प्रति संयोजन एक क्वेरी है, या (: आईएस एनएल या n.kind = :kind) से भरा एक क्वेरी। दूसरा क्या हर कैलेंडर लुकअप उत्तर 500 बनाया है: एक null पैरामीटर Untyped आता है और PostgreSQL बयान को दूर करने से मना कर देता है। विशिष्टता एक शून्य को पारित करने के बजाय भविष्यवाणी को छोड़ देता है, इसलिए गलती यहां नहीं हो सकती है।.
· kamo-internal
एक विभाजन-pane संपादक के साथ एक पेपर दीवार के रूप में पुनर्निर्माण / नोट्स
यह पृष्ठ अभी भी कच्चे टेलिविंड ब्लू-600/gray-50 पर था जबकि इसके चारों ओर सब कुछ घर की व्यवस्था में चला गया, और इसके सभी में से एक ~ 100 `dark:` वेरिएंट डेड कोड था - Globals.css pins `color-scheme: light`. यह `-accent-knowledge` को भी नजरअंदाज कर दिया गया, उच्चारण टोकन वास्तव में आरक्षित यह मॉड्यूल। पहले से ही डेटा के रूप में पुनर्निर्माण: पैलेट है निर्माण के बाद, इसलिए नोट्स कागज के रूप में प्रस्तुत - चिनाई ऊंचाई, एक प्रति आईडी झुकाव जो होवर पर सीधा होता है, पिन पर एक पिन हेड नोट के अपने गहरे रंग में नोट्स। एक रंग का नोट सादे कागज हो जाता है हल करने के बजायStickyColor() के नींबू की वापसी, जो अन्यथा होगा पूरे दीवार को पीला रंग दें और सदस्य को चुना जाने से पहले पैलेट खर्च करें कुछ भी बैंड निश्चित होने के बजाय सक्रिय प्रकार का अनुसरण करते हैं, इसलिए केवल एक विभाजक जब यह कुछ सच कहता है तो अंतरिक्ष की लागत: एक तारीख के तहत पुनरावृत्ति, एक दृश्य संख्या के तहत एक शीर्षक प्रकार, खुली आवृत्ति के तहत प्रारंभिक। इसके अलावा कहते हैं: एक कमांड पैलेट (259K), रंग के साथ एक खुलने योग्य फिल्टर रेल Swatches और दीवार आँकड़े, बहु-चयन के साथ बदलाव रेंज और थोक कार्रवाई, कीबोर्ड नेव (/ UDK N P F X arrows), खोज हाइलाइटिंग, कंकाल लोडिंग दीवार के अपने आकार में और खाली बनाम कोई परिणाम राज्यों को अलग करें। संपादक अब एक ड्रैगेबल डिवाइडर पर दीवार के बगल में खुलता है बजाय पृष्ठ की जगह, और नोट आईडी की कुंजी है, इसलिए स्विचिंग नोट इसे रीसेट करता है। फ़िल्टरिंग, सॉर्टिंग, बैंडिंग, चिनाई संतुलन और कागज ज्यामिति के लिए कदम 48 यूनिट परीक्षणों के पीछे app/lib/noteWall.ts। Notecard की DOM आधारित सामग्री पार्सर चला जाता है - यह दस्तावेज़ का उपयोग करता है। निर्माण, इसलिए एक नोट जिसका ContentPlain को बचाने के लिए सभी सर्वर-साइड पर कोई पूर्वावलोकन प्रस्तुत नहीं किया गया था। NotE SORT OPTIONS को हटा देता है, जिसने हार्ड-कोडेड अंग्रेजी सॉर्ट लेबल भेज दिया सभी 22 स्थानीय लोगों में।.
· kamo-internal
पिन और अपने फ्लोटिंग स्टिकी से एक नोट unpin
चिपचिपा एक नोट को फिर से रंग सकता है, नाम बदल सकता है, कम से कम कर सकता है और बंद कर सकता है लेकिन इसे पिन न करें - इसलिए पिनिंग का मतलब एक चीज के लिए वापस /नोट पर जाना है ध्यान पहले से ही आपके सामने है। पिनिंग स्टिकी के बजाय नोट की संपत्ति है, इसलिए टॉगल सीधे नोट के माध्यम से और साझा कैश के माध्यम से वापस लिखते हैं। यही है यह एक बार में हर जगह जमीन बनाता है: /नोट सूची, और पिन-नोट घर लांचपैड पर बैंड (जहां यह छिपा रहता है जब तक कि चिपचिपा नहीं है) बंद, पहले के रूप में). Optimistic, और यह पिन वापस डालता है अगर लिखने विफल रहता है। Reuses Components.notes.card.pin / .unpin और वही आइकन संपादक इसलिए एक पिन का मतलब सभी तीन सतहों पर एक चीज है। कोई नया तार नहीं।.
· kamo-internal
एक शांत घंटे की खिड़की, दोनों अधिसूचना चैनलों को नियंत्रित करती है
वहाँ दो थे। पृष्ठ के शीर्ष के पास जोड़ी ने इन-ऐप कार्ड को मौन दिया; नीचे जोड़ी ने याद किए गए संदेश ईमेल को मौन दिया। स्क्रीन पर कुछ नहीं कहा वे अलग-अलग चीजें थे, इसलिए एक सदस्य चुप घंटे की स्थापना को नोटिस करना पड़ा। दूसरा सेट अस्तित्व में है और यह भी सेट - और उचित धारणा, कि एक उन्होंने पहले से ही शाम को कवर किया था, गलत था। शीर्ष पर खिड़की अब एकमात्र है, और यह दोनों लिखते हैं। वे संग्रहित हैं विभिन्न सेवाओं द्वारा - सदस्य की अधिसूचना वरीयताओं पर इन-ऐप घंटों, ui-preference Media Service पर ईमेल घंटे पढ़ता है - इसलिए नियंत्रण लिखते हैं दो बार, जो वास्तव में एक सदस्य के बारे में कभी नहीं जानना चाहिए। दो स्टोरों को एक बार फिर से नियंत्रित किया जाता है, लोड पर, क्योंकि एक सदस्य एक साथ आ सकता है एक तरफ खिड़की और दूसरा नहीं। जो भी जीत निर्धारित है: एक ईमेल विंडो है जब इन-ऐप साइड में कोई नहीं है, तो कुछ भी कॉन्फ़िगर नहीं किया जाता है फेंका जाता है दूर, और अन्यथा इन-ऐप विंडो को बाहर की ओर धकेल दिया जाता है ताकि एकल नियंत्रण चालू हो स्क्रीन दोनों चैनलों के बारे में सच्चाई बता रही है। ईमेल वरीयता अब अपने अनुभाग के बजाय पैनल के स्वामित्व में है। दो घटक debouncing उसी संग्रहित कुंजी को लिखते हैं और दौड़ सकते हैं आधे आकार को बनाए रखता है, और मीडिया सर्विस डिफ़ॉल्ट रूप से एक अनुपस्थित क्षेत्र को पढ़ती है कभी नहीं चुना।.
· kamo-internal
100% के दो अर्थ - एक रीडिंग चौड़ाई और पूरे फलक
एक बेसलाइन पर प्रतिशत रीसेट करें: पृष्ठ फलक में हो गया लेकिन कैप्ड 920px पर, जो एक विस्तृत मॉनिटर पर शीट को बहुत अधिक फ्लोटिंग छोड़ देता है खाली डेस्क वह कैप जानबूझकर है - एक पत्र पृष्ठ एक पार फैल गया 34-इंच डिस्प्ले एक खराब दस्तावेज़ है, एक बड़ा नहीं, क्योंकि आंख एक ऐसी रेखा को ट्रैक नहीं कर सकता है, लेकिन यह हमेशा नहीं है कि सदस्य क्या चाहता है। ठीक प्रिंट पढ़ना या घने रूप में काम करना, वे चाहते हैं कि उनके पास स्थान है। तो अब दो हैं, और कैप्सूल पिक्स में एक टॉगल जो: पठनीय चौड़ाई को 920 पर कैप्ड करें। क्या पनीर खुलता है? चौड़ाई फलक को भर देती है, 24px गटर को कम करती है, इसलिए शीट की छाया नहीं है किनारे के खिलाफ क्लिप किया गया और पृष्ठ पढ़ने के रूप में नीचे रखी बजाय फसल की तुलना में। वे एक MODE हैं, जो ज़ूम सीढ़ी पर दो और स्टॉप नहीं हैं, क्योंकि वे हैं विभिन्न आलोचकों के बजाय विभिन्न आलोचकों। ज़ूम गुण जो भी बेसलाइन सक्रिय है, इसलिए रीडआउट एक के बारे में ईमानदार रहता है का एक बहु है, और + / - अभी भी या तो से काम करते हैं। उस पर बेसलाइन LANDS स्विचिंग - ज़ूम रिटर्न 100% करने के लिए। "फ़िट टू चौड़ाई" कि शीर्ष पर लागू 250% ज़ूम छोड़ दिया कुछ भी फिट नहीं होगा, और सदस्य एक चौड़ाई के लिए, एक के गुणक नहीं। Toggle `aria-pressed` के साथ एक बटन है, और इसके टूलटिप नाम क्या हैं? वर्तमान में यह क्या है, इसके बजाय आईटी दस्तावेज तैयार करना: "फ़िट टू चौड़ाई" पेज में मोड, "रिसेट व्यू" चौड़ाई मोड में। दोनों कुंजी पहले से ही अस्तित्व में हैं और हैं सभी 22 स्थानों में गैर-खाली। MaxPageWidthFor परीक्षण में किनारों को कवर करता है: एक नान फलक माप गिर जाता है वापस पढ़ने योग्य टोपी के बजाय PdfPages तक पहुंचने के बजाय maxPageWidth और कुछ भी नहीं देना, और एक पतन वाले फलक कभी भी चौड़ाई को बहुत छोटा नहीं लौटाते पढ़ना एक परीक्षण पिन तथ्य यह है कि एक फलक पर टोपी की तुलना में संकीर्ण दो मोड गटर के भीतर converge - यह एक बग के बजाय सही है चारों ओर डिजाइन.
· kamo-internal
नवटॉप घड़ी को ताज़ा करने के क्षण संपादक बचाता है
पंच को देखते हुए एक सदस्य वर्तमान में उन्हें पहले से ही छोड़ देता है। ऑफ सर्वर-साइड: RosterService.clockState ने नवीनतम लाइव पंच को पढ़ा और छोड़ दिया शून्य पंक्तियां, इसलिए कोई क्लॉक-आउट लिखित नहीं है और कोई भी आवश्यक नहीं है। SHIFT OUT यहाँ बेकार की तुलना में बदतर होगा - SHIFT IN यह जोड़ी के साथ सिर्फ शून्य था, इसलिए यह एक अनाथ के रूप में उतरता है और लापता पंच अपवाद संपादक को बढ़ाता है स्पष्ट करने के लिए मौजूद है। वास्तव में गलत क्या था? यह 60 के दशक के फर्श पर मतदान नहीं करता है संपादक से संकेत करते हैं, इसलिए प्रविष्टि को हटाने के बाद उन्हें नीचे देखा गया था सदस्य ने क्रोम को यह कहते हुए देखा कि वे घड़ी में थे। संपादक अब एक बचाने की घोषणा करता है जो कुछ लिखा था और नियंत्रण फिर से पढ़ता है। `finally` से फायर किया गया और सफलता के बजाय लैंडेड पर गेट किया गया। कि आधे रास्ते बंद कर दिया अभी भी रिकॉर्ड बदल गया है, और वह मामला है जहां एक कहानी बैज नोटिस करने के लिए सबसे कठिन है। यह घटना संपादन सदस्य को वहन करती है क्योंकि नवटॉप घड़ी स्वयं-स्किप है (fetchMyClockState). अन्य सदस्यों के खिलाफ / घंटे / उपस्थिति। होना चाहिएRefreshClock तुलना के लिए स्ट्रिंग्स और एक नंबर मना कर दिया, कारण के लिए parseClockState पहले से ही देता है: ids अद्वितीय हैं rowid() मूल्य पिछले MAX SAFE INTEGER और दो सदस्य गोल कर सकते हैं। समान संख्या। जब एचआर अपने कार्ड को संपादित करता है तो अन्य सदस्य के ब्राउज़र को ठीक नहीं करता है - जिसकी जरूरत है Timecard.clock.{memberId} पुश रिले, अभी भी लंबित है।.
· kamo-internal
दस्तावेज़ को ज़ूम करें, और इसे स्थानांतरित करने के लिए इसे हड़पें
दस्तावेज़ फलक के नीचे-दाएं में एक फ्लोटिंग कैप्सूल: -, वर्तमान प्रतिशत + READOUT is the RESET — एक अलग रीसेट बटन होगा कुछ के लिए तीसरे नियंत्रण केवल चाहता है कि एक बार वे पहले से ही कर सकते हैं देखें कि वे 100% पर नहीं हैं, और जहां वे चेक करते हैं, संख्या है। यह है एक लेबल के साथ एक वास्तविक बटन, इसलिए कीबोर्ड और स्क्रीन रीडर इसे तक पहुंचते हैं। 100% मतलब FIT-TO-PANE, वास्तविक आकार नहीं। `zoom` फिट-चौड़ाई गुणा करता है स्केल PdfPages पहले से ही computes, और राय में शुरू हुआ सदस्य क्या है उनका मतलब है जब वे "100%" दबाते हैं। चरण गुणात्मक हैं (x1.25), नहीं ± 0.25: एक निश्चित कदम 100% पर पृष्ठ का एक चौथाई है और इसमें से सोलहवां है। 400% पर, इसलिए दूर से वापस ज़ूम करने के लिए एक दर्जन प्रेस लेना होगा। The गणित में परीक्षण के साथ app/lib/pdfZoom.ts है, जिसमें उस + उसके बाद रिटर्न शामिल है। वास्तव में जहां आप थे और यह कि एक नान वापस फिट होने के बजाय फिट हो जाता है PdfPage तक पहुंचने के रूप में `scale = naturalScale * NaN`, जो शून्य पृष्ठों को प्रस्तुत करता है और ठीक उसी तरह दिखता है जैसे दस्तावेज़ लोड करने में विफल रहता है। डीआरएजी टू पैन, कहीं भी जो कुछ आप संचालित नहीं हैं। DragToPan सामग्री को बदलने के बजाय स्क्रॉललेफ्ट / स्क्रॉलटॉप लिखते हैं, इसलिए यह कंटेनर की सीमा, स्क्रॉलबार और पहिया व्यवहार को मुफ्त में विरासत में मिली - और क्षैतिज अक्ष केवल तब तक कुछ नहीं करता जब तक पृष्ठ चौड़ा न हो ऐसा करने के लिए कहीं भी कोई शर्त नहीं है। यह शुरू करने से मना कर देता है इनपुट, textarea, चयन, बटन, a [href], लेबल, [role=radiogroup] और शेष: वे हस्ताक्षर बक्से, पाठ क्षेत्र और चेकबॉक्स समूह हैं इंटरएक्टिवफील्ड रेंडर्स, और ज़ूम कैप्सूल के अपने बटन। सूचक नीचे रास्ते पर कब्जा कर लिया जाता है ताकि एक खींचें जो फलक को छोड़ देता है, ट्रैकिंग रखता है और अभी भी स्पष्ट रूप से समाप्त होता है। केवल MOUSE. पहले से ही पैसों को मासिक धर्म और रबर-बैंडिंग के साथ स्पर्श करें कि यहां कोई हैंडलर पुन: उत्पन्न नहीं कर सकता है, और इसे वापस लेने के लिए यह करना होगा डिवाइस पर दस्तावेज़ खराब हो जाता है जहां ड्रैगिंग प्राकृतिक इशारा है। एक लेआउट फिक्स इस के साथ आता है: PdfPages केंद्र पृष्ठों के साथ `align-items: केंद्र`, और एक फ्लेक्स आइटम अपने कंटेनर ओवरफ्लो की तुलना में व्यापक दोनों तरफ EQUALLY - बाएं आधे जिनमें से कोई स्क्रॉल स्थिति नहीं हो सकती है पहुंचना अतीत में ज़ूम करने के लिए फलक चौड़ाई हर जगह के बाएं मार्जिन डाल दिया जाएगा पृष्ठ स्थायी रूप से पहुँच से बाहर। अब पृष्ठ रैपर व्यापक रूप से बढ़ता है पृष्ठ (`चौड़ाई: फिट-content`, 'मिन-चौड़ाई: 100%' पर मंजिला, इसलिए पूरे शीट स्क्रॉल करने योग्य क्षेत्र के अंदर रहती है।.
· kamo-internal
लॉन्चपैड, कलर रोटेशन और एक उचित प्रेषक-बंद पर पिन किए गए नोट्स
तीन चीजें पिन्ड नोट होम लॉन्चपैड तक पहुंचते हैं। हर नोट पर pinned /notes एक हो जाता है अपने स्वयं के चिपचिपा रंग में वहाँ चिपके, एक लघु पूर्वावलोकन के साथ; एक क्लिक करें इसे ओवरले पर उठाता है, और एक कोने का नियंत्रण इसे पूरी तरह से खुलता है इसके बजाय कुछ चीज़ों के लिए एक चिपचिपा नहीं है। एक नोट जो है CURRENTLY FLOATING छोड़ दिया जाता है - यह पहले से ही सदस्य की स्क्रीन पर है, और लिस्टिंग यह दो बार एक ही नोट की पेशकश करेगा, वही नियम जो बनाता है इसके /नोट्स कार्ड निष्क्रिय हो जाते हैं। चिपचिपा बंद करने से चिप वापस आती है। बैंड केवल तभी प्रस्तुत होता है जब नोट विकल्प नेव के अपने गेट को जीवित रखा, इसलिए यह अपने आप में पहुंच के बारे में कुछ भी नहीं फैसला करता है, और यह ओवरले की पसंद करता है एक नोट की कैश कॉपी इसलिए चिप कभी पहले से ही एक शीर्षक या रंग दिखाता है इसे उठाया गया था। नए नोट्स पैलेट के माध्यम से घूमते हैं। प्रत्येक रंग के बाद खुलता है सदस्य का हाल ही में निर्मित नोट, अंत में रैपिंग, इसलिए एक दीवार चिपचिपापन कभी भी समान पीले रंग का ब्लॉक नहीं है। नोट्स की कुंजी एक संग्रहित काउंटर के बजाय, इसलिए यह सही उपकरणों पर रहता है और कुछ भी नहीं के साथ सत्र बनाए रखने के लिए अतिरिक्त; एक unset या unrecognised पिछले रंग अनुमान लगाने के बजाय रोटेशन को पुनरारंभ करता है। एक नोट बंद करने के लिए अब यह crumples। प्रत्याशा की एक पिटाई, फिर वह चिल्लाती है, स्पिन और गिर गया, अपने स्वयं के रंग में कागज स्क्रैप का एक पफ छोड़ दिया उस स्थान पर छोड़ दिया गया। स्क्रैप को परत द्वारा प्रस्तुत किया जाता है, न कि परत ध्यान दें: एक बच्चा नोट के निकास को बदल देता है और दूर हो जाएगा इसके बजाय बाहर फटने के लिए, इसलिए नोट अपने आखिरी हाथ पर है रास्ते में आयत और रंग। ओवर में एक अधिकतम नोट फटना पूरी तरह से देखने के बजाय आकार यह करने के लिए नीचे बहाल होगा; एक कम से कम एक विस्फोट बिल्कुल नहीं, स्क्रीन पर कोई स्थान नहीं है; और पसंद-कम-गति को कोई स्क्रैप के साथ एक सादे फीका हो जाता है। बिखरना एक है नियतिवादी हैश नहीं, गणित। खुरचनी के मध्य प्रकाश को झिलमिलाते हैं।.
· kamo-internal
चौड़ाई में अधिसूचना सेटिंग्स, एक काम मॉडल के साथ
यह स्विच पंक्तियों का एक 760px स्तंभ था, जो बदले में भरने के लिए एक फॉर्म के रूप में पढ़ता था। कुछ की तुलना में - और एक विस्तृत स्क्रीन पर पृष्ठ खाली के दो तिहाई छोड़ दिया जबकि अधिसूचना प्रकार की सूची नीचे गिर गई। पृष्ठ का वास्तविक प्रश्न "मेरे सेटिंग्स क्या हैं" नहीं है, लेकिन "कैसे मुश्किल यह है एप्लिकेशन को मुझे बाधित करने की अनुमति देता है, इसलिए अब यह जवाब देकर खुलता है कि एक में वाक्य लाइव मूल्यों से इकट्ठे - ऐप में, ध्वनि के साथ, अपने पर डेस्कटॉप, अपने शांत घंटों के बाहर - और चार निर्णयों को चौड़ाई देता है इसके पीछे: कौन से चैनल जहां वे जमीन पर रहते हैं, जब शांत रहते हैं, और क्या है इसके बारे में बताया जा रहा है। सेंटरपीस एक मंच है: एप्लिकेशन का लघु में स्वयं का दृष्टिकोण, लघु में चित्रित जबकि इसके आसपास का पृष्ठ प्रकाश रहता है, जबकि अधिसूचना डेक के अंधेरे टोकन यह एक वास्तविक अधिसूचना के विपरीत है जब यह एक पर आता है काम करने वाली स्क्रीन। कोने को कोने पर क्लिक करके चुना जाता है, और कार्ड काटने के बजाय पूरे स्प्रिंग्स, इसलिए नियंत्रण और इसके परिणाम एक हैं इशारा। चार quadrants ने यहां एक ड्रॉपडाउन को हराया: विकल्प स्थानिक है, और विकल्प स्थानिक है। शब्द "बॉटम राइट" एक की तस्वीर की तुलना में एक स्क्रीन का एक बुरा नक्शा है। इसके अलावा, शो मुझे सदस्य के वास्तविक डेक में एक वास्तविक अधिसूचना बढ़ाती है स्वयं की ध्वनि, कोने और बर्खास्तगी समय। अधिसूचनाओं के लिए एक सेटिंग पृष्ठ को करना चाहिए आपको एक अधिसूचना दिखाने में सक्षम होना चाहिए, और एक नकली एक की तस्वीर होगी - इसलिए PreviewToast वास्तविक डेक के माध्यम से एक फेंका कार्ड डालता है, कुछ भी नहीं लिखा, कुछ भी प्रकाशित नहीं किया जाता है और कभी भी केंद्र तक नहीं पहुंचता है। प्रकार टाइल बन गया जहां पूरी टाइल स्विच है, बल्कि पंक्तियों के साथ अब तक एक 34px टॉगल, और ईमेल अनुभाग ने पैनल को अपना लिया पंक्तियाँ इसलिए यह पृष्ठ के हिस्से के रूप में पढ़ती हैं, बजाय एक कार्ड जो भटक गया था। अब Do-not-disturb एक बार दिखाई देता है। यह सारांश पट्टी में और फिर से में था शांत कार्ड - एक स्क्रीन पर एक ही स्विच दो बार। यह सारांश के साथ रहता है, जो बात यह है कि यह बदलता है; शांत कार्ड निर्धारित तरह से छोड़ दिया जाता है।.
· kamo-internal
अधिसूचना सदस्य की अपनी प्रोफ़ाइल पर एक टैब बन जाती है
वे अपने स्वयं के / सेटिंग / नोटिफिकेशन का एक पेज थे, जो वरीयता देते थे उस व्यक्ति के बारे में पृष्ठ के अलावा कहीं एक व्यक्ति - और छोड़ दिया मिस्ड-मेसेज ईमेल स्विच प्रोफ़ाइल टैब पर फंसे हुए हैं, इसलिए दो हिस्सों की "मैं चीजों को कैसे बताऊं" विभिन्न स्क्रीन पर रहते थे। अब दोनों ही हैं, ************* मेरी प्रोफ़ाइल के बाद सीधे। ई-मेल स्विच अपने व्यवहार को वास्तव में रखते हैं - समान वरीयता कुंजी, समान me-coped मार्ग, एक ही debounce और रख-रखाव फ्लश - और के साथ वापस ले जाया जाता है अधिसूचना पैनल का अपना अनुभाग और पंक्ति प्राइमिटिव इसलिए उन्होंने इसके हिस्से के रूप में पढ़ा इसके बजाय एक कार्ड जो भटकता है। वे एक अलग सेक्शन में रहते हैं और कहते हैं: यह चैनल आपको तब तक पहुंचता है जब आवेदन बंद हो जाता है, तो उसे एक द्वारा लिखा जाता है विभिन्न सेवा, और अपने खुद के शांत घंटे रहता है। दो घंटे के सेट तह एक नियंत्रण में चुपचाप बदल जाएगा कि उनमें से कौन सा शासन करता है। टैब स्वयं-केवल है क्योंकि इसके पीछे हर वरीयता पढ़ी जाती है और लिखा जाता है Me-scoped मार्गों के माध्यम से - किसी और के प्रोफ़ाइल पर ये नियंत्रण संपादित करेंगे दर्शक अपने आप को संपादित करने के लिए दिखाई देते हुए। यह खाता पता प्राप्त करता है इसके बजाय प्रोफ़ाइल टैब से इसे लेने के लिए: सेटिंग्स टैब एक पर एक माउंट समय, इसलिए एक भाई से उठाया गया मूल्य ठीक उसी समय गायब हो जाएगा जब कोई सदस्य पहले इस टैब को खोला गया, जो एक अधिसूचना के सेटिंग लिंक से हर बार है। पुराने मार्ग अपने सेटिंग्स-मेनू विषय और तीन सतहों के साथ चला गया है इससे जुड़े अब एक सहायक के माध्यम से पथ का निर्माण - एक हाथ से इकट्ठे मार्ग तीन स्थानों में एक ऐसा मार्ग होता है जो अंततः खुद से असहमत होता है।.
· kamo-internal
अपने स्वयं के मार्ग पर / सेटिंग / साइन पर एक पैकेज साइन करें
हस्ताक्षर सदस्य के प्रोफाइल टैब पर इनलाइन थे, इसलिए दस्तावेज़ नीचे बैठा हुआ था सेटिंग्स टैब पट्टी और अनुपालन उप टैब पट्टी और उस टैब की मदद पैनल - साधन पर असंबंधित क्रोम के तीन बैंड सदस्य है पढ़ने के लिए कहा जा रहा है, और दो हेडर। यह अब है ************* यह पृष्ठ NavTop विरासत में मिला है और हर दूसरे स्क्रीन की तरह NavPri और विज़ार्ड का हीरो बैंड एकमात्र है हेडर फिनिशिंग या रिटर्न छोड़ने के लिए ************* - सूची यह आया कि बाल्टी में पैकेज आया था। सूची `push` के साथ नेविगेट करती है, नहीं `replace`: यह एक अलग कदम है इसलिए ब्राउज़र बैक सूची में वापस आना पड़ता है। AllOWLIST IT के साथ चल रहा है। `RESTRICTED ROUTE PREFIX` है डिफ़ॉल्ट रूप से उपसर्ग-जोड़ा और इनकार करता है, और यह वह सदस्य है जिसका रोजगार समाप्त हो गया है। उस पर `/settings/sign` के बिना, एक पूर्व कर्मचारी अपनी पैकेज सूची खोल सकते हैं और सीधे वापस बाउंस हो सकते हैं इसके लिए RestrictedMembershipGuard द्वारा उस पल को वे एक में क्लिक किया - एक सटीक सतह पर लूप को रीडायरेक्ट करें जो टीयर पहुंच योग्य रखने के लिए मौजूद हैं, चूंकि अनुपालन स्वीकृति दो चीजों में से एक है जो इसकी रक्षा करती है। `retrictedRoutes.test.ts` अब पिन करता है, जिसमें शामिल है कि मैच नहीं है नंगे startWith: `/settings/signage` `/settings/sign` नहीं है। पृष्ठ पर स्वयं कोई द्वार नहीं, जानबूझकर। सदस्य अपने स्वयं के निष्पादन रोजगार समझौते में कोई मानव संसाधन अधिकार नहीं है और कभी नहीं होगा - पैकेज था उन्हें जारी किया गया - और इसके पीछे हर समापन बिंदु डॉक्स सर्विस में आत्म-स्किप किया गया है (LegalAssignmentOwnership, not LegalPackageAccess), इसलिए सत्र निर्णय लेता है जिसका असाइनमेंट यह है और किसी और के uid उत्तर 404 है। किसी भी असाइनमेंट के साथ एक नंगे / सेटिंग / संकेत सूची में वापस नहीं आता बल्कि इसके बजाय एक त्रुटि रिपोर्टिंग: बिना किसी एक के पृष्ठ पर कुछ भी नहीं है और कोई रास्ता नहीं है सदस्य इसे वहाँ आपूर्ति करने के लिए। एक विकृत uid त्रुटि को दर्शाता है, क्योंकि बोलना एक बुरा लिंक को छिपाना होगा जो किसी को फिर से भेजने के बारे में है।.
· kamo-internal
प्रत्येक फ्लोटिंग नोट का आकार और स्थिति प्रति डिवाइस
एक अलग नोट को फिर से खोलना अब इसे वास्तव में वापस डाल देता है जहां यह छोड़ दिया गया था, पर उस स्क्रीन पर इसे छोड़ दिया गया आकार। प्लेसमेंट डेविस के अनुसार है, जानबूझकर। कौन से नोट्स फ्लोटिंग हैं? सदस्य की संपत्ति और यूआई प्राथमिकताओं में सर्वर-साइड रहता है, इसलिए यह उन्हें हर जगह अनुसरण करता है; जहां एक नोट SITS स्क्रीन की संपत्ति है उनके सामने, और एक लेआउट जो 27 "डेस्कटॉप सूट करता है, एक पर गलत है लैपटॉप। इसलिए प्लेसमेंट स्थानीय स्टोरेज में रहते हैं, जो सदस्य द्वारा दायर किया जाता है क्योंकि एक ब्राउज़र एक उपकरण है लेकिन एक से अधिक व्यक्ति हो सकता है। प्लेसमेंट उद्देश्य पर चिपचिपा जीवित रहते हैं - एक नोट बंद करने के लिए उसके रहता है ज्यामिति, जो पूरे बिंदु है - इसलिए स्टोर को प्रति सदस्य को कैप किया जाता है और कम से कम जगह पहले evict. बहाल करने पर 404s) तुरंत अपना स्लॉट देता है। दो चीजें जो इसे सही करना था: - Logout एक थोक LocalStorage.clear() है, जिसे गिरा दिया जाएगा प्रत्येक साइन-आउट पर लेआउट। यह अब इस एक कुंजी को कैप्चर और पुनर्स्थापित करता है उसी तरह यह पहले से ही गहरे लिंक स्टैश के लिए करता है। नोट आईडी और केवल समन्वयित, कभी सामग्री नहीं। - माउंट पर चलने के बजाय सदस्य आईडी के लिए हाइड्रेशन इंतजार करता है। प्लेसमेंट सदस्य हैं, इसलिए हम जानते हैं कि यह कौन है इससे पहले कि हम बहाल चुपचाप इस डिवाइस के लेआउट को नजरअंदाज कर देगा और वापस आ जाएगा क्रॉस-डिवाइस ज्यामिति। पुनर्स्थापना पर प्राथमिकता इस उपकरण का स्थान है, और जो कुछ भी हो क्रॉस-डिवाइस वरीयता आखिरी ली गई - इसलिए एक ब्रांड-न्यू डिवाइस अभी भी खुलता है एक कैस्केड के बजाय एक sane लेआउट के लिए - और किसी भी तरह यह फिर से दबाया जाता है वर्तमान व्यूपोर्ट के लिए।.
· kamo-internal
कॉलबैक पर लीड पढ़ा जाता है, याद नहीं किया जाता है - और कॉल को फिर से खोला जा सकता है
दो चीजें, दोनों एक कैलेंडर घटना के बारे में एक खराब जगह होने के लिए एक प्रति रखने के लिए किसी और का रिकॉर्ड। घटना संवाद अब CRM से लीड पढ़ता है। इसका नाम, रिंग की संख्या, ईमेल, कॉल करने के लिए सबसे अच्छा समय — सभी प्राप्त जब संवाद खुलता है, कुंजी द्वारा कॉलबैक पहले से ही इस घटना को स्टोर करता है। यह क्या नहीं दिखाता है एक प्रतिलिपि उस समय जमे हुए कॉल बुक किया गया था, जो विवरण के लिए इस्तेमाल किया जाता है क्या करना चाहिए और क्या चुपचाप एक सदस्य को एक नंबर की अंगूठी देने के लिए कहा गया था सप्ताह में जवाब दिया। विवरण अब सदस्य का अपना नोट और कुछ भी नहीं है अन्य, जो कहानी नहीं जा सकता क्योंकि यह कभी किसी चीज की एक प्रति नहीं थी। और एक लंबित कॉल लीड पेज से खोला जा सकता है। क्लिक करना उसी संवाद में एक ही कैलेंडर इवेंट, इसलिए एक जगह एक सदस्य को एक ही संवाद में देखने के लिए जाता है। वादे वाली कॉल वह जगह है जिसे वे इसे स्थानांतरित कर सकते हैं। बचत सुरक्षा सेवा के माध्यम से चला जाता है कैलेंडर एपीआई के बजाय, क्योंकि कॉलबैक रिकॉर्ड और घटना दो हैं एक वादा के दृष्टिकोण और केवल वही सेवा जो दोनों के मालिक हैं, उन्हें एक साथ ले जा सकते हैं — विकल्प एक प्रमुख पृष्ठ और एक कैलेंडर है जो उस समय असहमति करता है जब कॉल है, और एक अनुस्मारक जो भी सदस्य पढ़ नहीं रहा है के खिलाफ आग लगाता है। पंक्ति खुद ही नियंत्रण है; संकल्प बटन के बगल में यह क्लिक बंद कर देता है, इसलिए कोई भी व्यक्ति इसे पढ़ने के लिए अर्थ में कॉल संपर्क नहीं करता है।.
· EmailService
आईडी द्वारा एक घटना पढ़ें
लीड पेज में एक कॉलबैक इवेंट आईडी है और इसे उसी में फिर से खोलना चाहता है। कैलेंडर उपयोग को संवाद करें, इसलिए इसे अपने आप में घटना लाने में सक्षम होना चाहिए। वास्तव में सूची की तरह स्कोप - सदस्य के अपने कैलेंडर प्लस प्लस सदस्य के अपने कैलेंडर संगठन - इसलिए किसी और के कैलेंडर से संबंधित आईडी अनुपस्थित के रूप में पढ़ता है बजाय निषिद्ध के रूप में।.

तुम्हारा ब्रह्मांड इंतजार कर रहा है.
मिनटों में मुफ्त शुरू करें. जब भी आप तैयार हों तो उत्पाद जोड़ें - कोई माइग्रेशन नहीं, कोई नया लॉगइन नहीं.
हमेशा के लिए मुफ्त - कोई क्रेडिट कार्ड की आवश्यकता नहीं