콘텐츠로 건너뛰기
KAMOUniverse

변경 로그

무슨 일이야?

플랫폼에 대한 모든 개선 사항, 그것이 선적.

  1. · kamo-shared-library

    실패를 끄는 것을 보여주는 것은 비용

    kamo.entitlement.fail-open 모든 앱은 계획 매트릭스를 언급하지 않습니다. 그것은 카탈로그 백필을위한 임시 밸브로 문서화 - 한 번 켜십시오. matrix는 씨앗입니다. 그러나 아무것도 결정하는 질문에 대답 할 수 없습니다. 그것을 끄는 것은 안전합니다: tenants는 그것 때문에 앱스만 붙들고 있습니다. Flipping 그것 블라인드는 살아있는 조직에서 멀리 앱을 가지고, 와 알림으로 첫 번째 지원 표. failedOpenGrants는 각 조직을 두 번 해결하고, 한 번 비례없는 앱을 부여 그리고 한 번 그들을 부인하고 차이를보고. 그것은 살아있는 것을 읽지 않습니다 flag, 그래서 그것은 이전과 플립 후 같은 대답을 제공합니다. re-resolution는 해결을 통해 직접 계획 ID보다 오히려 간다, PlanCode lookup에 실제 경로의 fallback 미러링 - 그렇지 않으면 보조금 사실 생존은 손실로보고됩니다.

  2. · kamo-internal

    누군가가 거기에 있는지, 그들의 확장

    모든 행은 현재 이름 옆에 존재 점과 단어를 운반하고 확장 상세 라인에서 - 그래서 더 이상 이름을 선택하지 않고 이름 * 이것은 앱에서 한 사람의 피커이므로 관리자에 착륙합니다. 필드, e-sign signers, 채팅을 추가하고 지원과 같은 할당. 모든 것을 선언했다. possible status는 sign-in에서만 이동합니다. sign-out 과 수동 toggle, 그래서 누군가는 표시하지 않는 AVAILABLE indefinitely — 녹색 점으로 인해 자신감이 잘못 될 것 도트는 한 가지입니다. 연결되지 않는 그릴은 outline 링으로 오히려 채워진 점, 그래서 다른 상태 색상 대신 부재로 읽습니다. 존재를 결코 수행하지 않은 디렉토리 — `fetcher` 뒤에 in-memory 소스 — 모든 것에 표시하지 않습니다. Absent는 알 수 없으며 알 수 없습니다. 모두가 오프라인으로 청구하는 것보다.

  3. · SecurityService

    디렉토리 행의 가용성, 존재 및 확장

    한 사람이 더 쉽게 할 때 행은 그들이 어디에 있는지 말하고 방법 그들에 도달, 그래서 각각은 이제 그들이 마지막 선언을 수행, 어떤 것도 여부 그들은 실제로 연결되고, 그들의 일 연장이 있을 때. Availability와 존재는 둘 다 혼자 무연 때문에 입니다: possible status는 sign-in, sign-out 및 수동 toggle에 단지 움직임, 그래서 AVAILABLE 무한하게 읽지 않은 회원. Presence는 PRESENCE에서 읽습니다:{memberId} key MediaService 쓰기 — a 크로스 서비스 읽는 가치 naming. 대안은 HTTP 왕복 여행이었다 검색의 모든 키 입력에 MediaService, 또는 브라우저에서 존재를 읽는, 그리고 브라우저는: ToolProviders는 도구 도크를 sibling으로 렌더링합니다. 존재 공급자를 붙드는 나무, 그래서 선택자는 지원 표 안쪽에 열립니다 창은 모든 동료를 오프라인으로 보고할 것입니다. 두 서비스는 Redis 호스트를 공유 및 데이터베이스. 검색을 실패하지 않고 오프라인으로 읽을 수 없습니다.

  4. · BillingService

    Org가 방에서 실행될 때 블록을 구입하십시오

    밤새 스냅 샷 스윕 후 곧 실행합니다. 사용법은 결정한다 — 어제의 숫자에 대한 확장은 살 것이다 매일 늦게 막습니다. 런 당 한 블록, 캐치 업 파열을 하지 않고, 그것은 소유자의 천장에 중지. 조직이 지금까지 그 천장이 오른쪽 outcome가 쓴 것입니다 그리고 누군가가 그것을 보면, 플랫폼은 조용히 자신의 길을 살 비용. Auto-expand는 천장이 무제한으로 읽을 수 없습니다. 부패 한도가 의도보다 더 많은 가능성이 있기 때문에.

  5. · InitializerService

    Auto-expand 열 추가

  6. · kamo-shared-library

    천장을 가진 Opt-in 자동 폭발

    블록을 보유하는 구독에 두 개의 열 : 다른 구매 여부 조직이 방에서 실행될 때 1개의 자동적으로, 그리고 가장 그것 할지도 모릅니다 지금 구매 목적에 따라 떨어져 - 누군가의 청구서가 악화됩니다. 그 대답은 설명과 실패, 그래서 그것을 켜는 소유자 거래 그것에 대해 생각하지 않는 한 작은 돈, 그리고 그것은 단지 그들의 무역 이름 * 천장은 선택 보다는 오히려 요구됩니다: 없이 자동적인 구입 경계는 프로세스 nobody에 대한 개방적인 약속입니다.

  7. · BillingService

    카탈로그 가격 변경은 실제로 Stripe에 도달

    Stripe Prices는 immutable이고 mapping는 (org의 유형, 부호, 당 1개의 줄을 붙듭니다 주기) 독특한 열쇠 뒤에, 그래서 일단 가격 존재한 그것 결코 변화할 수 있었습니다. · 가격 편집은 수익에 영구적인 no-op이었습니다. 아무것도 보고했습니다. StripePriceReconciler는 카탈로그에 대한 모든 매핑 가격을 비교합니다. 말하고, 물었을 때, 오래된 신선한 줄무늬 가격에 매핑을 점 하나의 아카이브 - 삭제 된 것보다 아카이브, Stripe가 청구를 보관하기 때문에 이미 구독에 대한 보관 된 가격 및 새로운 것을 거부, 정확히 행동을 원한다. 미터로 재는, 그래서 미터로 재는 가격은 뒤로 무겁고 침묵적으로 빌링 사용법을 멈추지 않을 수 없습니다. 새로운 가격에 기존 가입자를 이동하지 않습니다. 제품 정보 카탈로그 줄을 편집했기 때문에 라이브 고객 재판매 아무도 승인; 그대가 상업적 결정이며, 그것은 결코 결정이 누락 된 것은 사실입니다. 여전히 카운트 오래된 가격은 대신보고됩니다. 노출된 보고서만 기본으로 GET *********** 와 명시된 POST 뒤에 재점.

  8. · InitializerService

    가격 변경을 감지 할 수있는 열을 추가

    주문(0), nullable, backfill 없음 — null 금액은 "우리는 무엇을 알 수 없습니다 이 가격은"로 만들고 reconciler는 오히려 알 수 없는 것처럼 대우합니다 drift로.

  9. · kamo-shared-library

    각 줄무늬 가격이 생성 된 기록

    매핑은 가격 ID를 사용하여 저장되므로 카탈로그 가격 변경이 가능 더 많은 정보 keepPlanPrices 행의 존재에 단락 독특한 키는 두 번째로, 즉 $72에서 $79로 계획을 올리지 않는 마케팅 페이지를 업데이트, 인앱 견적 및 계획 DTO 변경 어떤 사람이 청구 된 것에 대해 아무것도 없다 - 아무런 경고없이. unit amount cents와 currency는 비교할 수 있는 reconciler를 제공합니다. NULL을 기존의 행에 두 번 NULL을 두십시오. null은 "unknown"을 의미합니다. 모든 행의 진실은 열을 전하고, 불명한 대로 대우 첫 번째 실행에 부동산의 모든 가격을 재창조합니다.

  10. · kamo-internal

    저장 용량을 입력하면 요약이 반환됩니다

    BillingService와 함께 클라이언트 계약 유지, 이제 무엇을보고 플랜 포함, 블록이 샀다, 결합 된 천장과 저장된 바이트와 함께 사용되는 분수. 새로운 사본을 필요로 하는 패널, kamo-translation-dictionary는 다른 세션에 의해 중간 편집, 그래서 UI 토지는 별도의 청소보다 in-flight 작업에서 그 repo.

  11. · BillingService

    관련 상품

    저장 패널은 모든 것에 대해 저장된 바이트를 보고 — 수당 없음, 비율 없음, 돈 없음 - 400 GB에서 찾는 소유자는 말할 수있는 방법이 없었다 편안하거나 자신의 업로드를 중지하는 것에 대해. 그들의 첫 번째 문제의 지식은 실패한 업로드되었습니다. 요약은 이제 계획이 포함 된 것을 운반, 어떤 블록이 샀다, 결합된 천장 및 분수는, 더 구획 크기 및 가격을 etc로 이용했습니다 표면은 다른 구획이 그것을 Hardcoding 없이 주고 요하는 것을 말할 수 있습니다. 동일한 카탈로그에서 모두는 충전을 가격이 책정됩니다.

  12. · kamo-shared-library

    저장 수당에게 효력을 주십시오

    스토리지는 빌드 페이싱과 함께 밤새 9개의 도메인을 통해 측정되었습니다. 적용 테스트 - 어떤 경우에도 허용을 계산하거나 바이트를 거부. 계획의 저장 그림은 데이터 아무도 읽고, 추가 저장 add-on에는 제품 효력이 전혀 없었습니다: 지불은 아무것도 바꾸지 않으며 비용을 지불하지 않습니다 아무것도. StorageQuotaService는 조직이 파악할 수 있는 것을 해결합니다 — 계획의 per-user 수당은 좌석을 가로 질러 블록을 샀다. — and ImageService는 그것을 초과하는 콘텐츠를 거부합니다. 체크인 후 dedup lookup, 그래서 파일을 다시 배치 이미 보유는 결코 거부되지 않습니다 공간을 위해; 진짜로 새로운 바이트 조사만. 빌링 서비스보다는 여기에 살고 있습니다. 바이트는 각각 업로드 경로에 청구 API를 호출 할 수 없으며, 그것은 거부됩니다 ImageService가 조립되기 때문에 constructor를 통해서 오히려 분야 여러 곳에서 손 - constructor 인수는 컴파일하는 하나의 편집입니다. 테스트를 제외한 모든 곳에서 이미지 빌드가 실패합니다. 두 잘못되는 방법. "GB"는 gibibyte로 읽습니다. 파일 관리자는 GB와 더 관대 한 독서를 인쇄 할 때 의미한다. 그리고 실시간 구독이 없는 조직, 또는 할당된 할당량의 서비스, 이전에 저장하십시오: 이 문은 어떤 것에 지불 고객을 붙들기 위하여 존재합니다 그들은, 데이터 손실에 청구 간격을 끄지 않는. 읽기는 결코 문이 없다 — 저장을 충전하면 더 많은 것을 추가 할 수 없습니다.

  13. · kamo-internal

    그들의 대리인이 실제로 거기 있다는 것을 requestor에게 말하십시오

    침묵 스레드는 "나의 에이전트에서이"에 보이지 않는 잠시 쉬어, 그리고 사람이 기다리고 말할 수 없습니다. 자주 묻는 질문 대화는 말한다, 그리고 대답은 "지금" 그것은 무슨 일이 일어나는 것을 말한다 다음 - 메시지가 수신되고 다시 때 응답됩니다 - 오히려 누군가를 떠나는 것은 전혀 착륙했는지 궁금합니다. "모든 사람이 대답하기 때문에 헤더보다는 채팅 아래 배치 거기에?", 이는 질문하는 동안 입력하고, 스캐닝하는 동안 티켓의 메타데이터. Server-answered, requestor의 존재지도에서 읽지 않은: 존재는 조직 당 방송, 그래서 고객에 의해 도움이되는 회원 org는 영구적으로 오프라인으로 에이전트를 볼 수 있습니다. 자신감이 잘못되었습니다. "they're 멀리"는 눈에 띄지 않습니다. 같은 이유로 실패한 오염은 마지막으로 유지 통지를 플립 대신 알려진 대답. 30 년대에 투표하고 탭이 볼 때만. 편의 용품 신호, 정정이 아닌, 배경 탭은 아무도 볼 수 없습니다.

  14. · MediaService

    재 할당은 새로운 대리인에 도달하고, requestor는 거기 누구에게 말됩니다

    재 할당은 아무도에 도달하지 않았다. assignmentOpenedAt 레코드 그 클라이언트 넣어 화면에 대화, 그리고 그것은 표지판에서 티켓을 제기하는 것입니다 — 하지만 그것은 여전히 PREVIOUS 에이전트의 스탬프를 개최, 그래서 새로운 하나는 단지 살아있는 푸시를 가지고 그들은 두 번째로 온라인이되고, 그들은 그들이 누구인지 아무것도하지 않았다 로그인. applyAssignment는 현재 할당자가 변경할 때마다 삭제합니다. 누구든지 그것을 지금 소유하기를 위해 handover 내구재를 만드는. *** * *** 도움이되는 사람을 말합니다. 그들을 돕는 사람은 돕습니다. 응답된 서버 측에 목적: 존재 조직 당 방송되므로 고객 요청자는 에이전트를 볼 수 없습니다. 공급자 org 모든 상태에 읽을 것 이다 "offline" 각 단일 Cross-org 대화. 이미 대화에서 Scoped — 티켓 ID는 UUID, 비밀이 아니며, "그 책상에서이 사람"은 아니어야합니다. 짐에 응답.

  15. · kamo-internal

    채팅 요청을 할당하고, 티켓 목록에서 할당

    두 개의 틈, 같은 원인 - 할당은 무언가로 처리되었습니다. 일의 조각에 오히려 표. 할당 단추는 pre-tickets outright를 위해 숨겨져 있었습니다, 그래서 라이브 채팅 요구, 옳은 사람이 가장 중요하게 얻은 경우, 할 수있는 방법이 없었다 모두에 넣으십시오. 채팅 요청이 아직 되지 않았을 때 그 제외 날짜 실제 티켓" 및 할당 만 변환에 일어났다. 현재 할당 가능 그리고 상태는 살아남기 때문에 나중에 변환 될 수 있습니다. 먼저 대화를 열고, 잘못된 모양입니다. queue를 삼기위한 - queue를 일하는 사람은 종종 사람이 아닙니다. 대답한다. 표 목록에 셀에 할당 된 것은 이제 통제입니다. hovering shows assign or reassign, 같은 선택기를 클릭하여 티켓 창 사용. 행 클릭은 여전히 대화를 엽니 다. 응답은 reloading 보다는 오히려 그것의 자신의 줄을 깁습니다, 그래서 할당은 하지 않습니다 필터링, 정렬, paged queue에서 연산자의 장소를 이동합니다.

  16. · kamo-internal

    계획 피커에 대한 견적 엔진, Stripe가 법안을 일치

    살아있는 달리기 합계 뒤에 arithmetic는, 어떤 성분든지에서 apart를 이렇게 지킵니다 숫자는 직접 시험될 수 있습니다. 그것은 거울 *********** 정확하게: headcount를 가진 per-seat add-ons 가늠자, 단위에 의하여 편평한 1s 계산서는 샀습니다 그러나 많은 사람들이 계획에 있으며, 미터로 된 것은 오히려 관련 기사 그 대응은 점입니다. 둘 다 플랫폼은 이전에 인용했습니다 가격은 한 번에 청구됩니다 - 인앱 주문 마법사가 추가되었습니다. 좌석에 관계없이, 공공 페이지는 조직 전체 저장 풀을 청구 사용자당.

  17. · BillingService

    첫 번째 플랜을 순차적으로 만들고, 실제 플랜 가격을 반환

    두 가지는 조직이 첫 번째 구독을 구입했습니다. 계획 목록은 sub.marketId를 통해만 도달했습니다 구독 org 이미 개최되었으므로 제품에서 어디에서나 계획을 볼 수 없습니다. GET /api/billing/markets/for-org는 콜러의 시장에서 시장을 해결 entitlement root - 무료 계획이 이미 그들의 기본을 공급하는 동일한 org, 그래서 계획과 제목은 다른 카탈로그에서 올 수 없습니다. 그리고 계획 DTO는 **************** 아무것도 읽었습니다 NULL for every KamoCRM plan 가격 **************** 구매 표면은 그러므로 보여주었습니다 모든 가격, 계정은 null을 기록했습니다. 그것은 지금 가격을 읽습니다 행, 계획 열은 카탈로그에 대한 낙하로 그 운반합니다. 또한 add-on 단위 크기를 노출하므로 구입 표면은 "10 GB"라고 할 수 있습니다. hardcoding 없이.

  18. · kamo-internal

    게이트 유료 작업에 라이센스 시트, chokepoint에서

    제품에 거의 모든 문질러 행동 — 확장을 다이얼, 회원 이메일, AI Assistant를 열고 녹음을 시작, 소셜 대화를 시작 — 베어 **************** 및 도구 레지스트리에는 모든 문이 없었다. 그 전화 사이트를 한 번에 완료 할 수 없었다 : 파견자 나중에 추가, 또는 단순히 놓고, 그것을 곧 루트. 자주 묻는 질문 ToolWindowsContext의 단일 도구 : 오픈 핸들러, 그래서 모든 콜러가 덮여있다. 도구 창을 통과하지 않는 행동은 그들이 살고있는 곳에 문질러있다: 첨부파일(Draw-drop 및 붙여넣기 포함) 다른 경로), 그룹으로 채팅을 성장, 회의 항목 포인트. 즉, 감사가 발견 된 세 가지 주장을 해결합니다. 세의 두 " 회의에 초대"입점 체크 조직. isMeet과 세 번째는 아니; 세 개의 이메일 항목 중 두는 ACCESS MAIL 및 세 번째는했다 아니; 그리고 roster에서 회원의 확장을 다이얼은 어떤 VOIP 체크가 없었다 이름 * 그들 모두는 동의합니다. Capabilities default to lock — 첫 번째 로드는 비행 중이며, 호출하면 실패하고 오래된 백엔드가 필드를 omits하는 경우. Guessing "allowed" 손 밖으로 유료 기능, 실수는 제목 경로 이미 한 번 오류가 없습니다.

  19. · SecurityService

    회원이 무엇을 할 수 있는지 해결, 그 계획이 포함되지 않는 것

    기능 보조금은 계획을 설명합니다. 그들은이 회원을 설명하지 않습니다, 때문에 org-level org.features의 콘솔 게이트 네비게이션 - 그래서 라이센스없이 회원 모든 앱에서 조직은 자격이 되었고, 회원 수준 이미 데이터베이스에 존재 licensing은 전혀 영향을 미치지 않았습니다. memberCapabilities는 서버에서 한 번 해결된 답이 누락됩니다. 회원정보 좌석 없이는 deliberate 지면을 지킵니다: teammates를 가진 원본 대화, 지원, 그들의 자신의 프로필, 그들의 자신의 청구 — 충분히 인간에 도달 좌석을 다시 구입. 번역이 너무나 유지되기 때문에, 당신은 보내지 않습니다. 돈을 지불하는 모든 것은 꺼집니다. org 재판은 모두 좌석 이외의 org에서 라이센스 회사 소개 평가판 org는 무료 플랜의 싱글 시트로 시드됩니다. 라이센스에 대한 평가는 소유자가 혼자 제품을 평가 할 수 있음을 의미 할 것입니다. 그들은 그것을 평가하기 위해 초대 된 팀 동안 아무것도. 로그인은 비접촉되지 않습니다. 인증은 빌링 상태와 여전히 상담하지 않았습니다. 아니다. 좌석 비용을 잃는 것은 결코 접근하지 않습니다.

  20. · BillingService

    단위로 빌 per-unit add-ons는, headcount에 의해 샀습니다

    생성 및 업데이트를 통해 새로운 애드온 수량 스레드: FLAT 부가 기능 구독이 실제로 샀는지, 그래서 4 좌석 당 한 번 보다는 4개의 구획으로 10 GB 저장 구획 계산서. Quantities는 해결된 add-on 부호에 대하여 안으로 거릅니다, 그래서 stale 또는 hostile 몸은 코드에 대한 수량을 주차 할 수 없습니다. 구매하기.

  21. · InitializerService

    추가 저장 $ 2.50 10 GB 당, org-wide

    Add-on은 조직 전체 공유 풀을 설명하고 그 다음 가격 USAGE BASED at $4 와 "25 GB" 에 명시된 prose. 아직 제출되지 않음 저장 미터 사건, 그래서 그것은 아무것도 청구; 그리고 붙어 있었다, 줄무늬 미터로 재는 가격에 수량을 거부하므로 구독이 생성되면 이름 * 한편 공개 페이지는 "+$4 /user/month"로 렌더링되었습니다. 지금 FLAT with unit size 10 에 $2.50 - 블록 소유자가 구매, 가격 그러나 많은 사람들이 플랜에 있습니다. AddOnQuantityMigration는 두 개의 추가 순서(0)에 nullable 란은, 어떤 주자든지 지도를 적재할 수 있습니다 전에 그들.

  22. · kamo-shared-library

    Add-ons를 단위 크기와 purchasable 양을 주십시오

    Add-on의 단위는 그 묘사 안에 prose로만 존재했습니다 (" 각 단위 25 GB를 추가합니다) 마케팅 사이트에서 hardcoded 일정으로, 그래서 아무것도 할 수 있었다 에 대한 청구. SubscriptionAddOn 이득 unit size, 및 AccountSubscription 이익 addon quantities — 구독이 샀는 각 추가에 대한 몇 단위. active addon codes는 진실의 제목 소스를 유지, 그래서 아무것도 그 만 "이 앱이 부여 된"는 수량 맵이 존재하는 것을 알고 있습니다. 또한 순서 마법사의 따옴표를 고칠, 각 추가에 한 번 좌석 없이 추가 대부분의 경우 PER SEAT: 4개의 모듈을 가진 25 좌석 순서가 있었습니다 $ 31에 대한 견적 $ 775 줄무늬가 청구됩니다. 견적은 다음과 같습니다. 가격 모형 책임은, 그리고 omits는 추측 보다는 오히려 add-ons를 미터로 묶습니다.

  23. · kamo-internal

    Id를 입력하는 대신 티켓을 다시 할당하는 에이전트를 선택합니다

    할당 및 재 할당은 원시 회원 ID를 입력 한 텍스트 상자를 열었다. 이미 원하는 사람의 ID를 알고, 전체 작업 목적은 올바른 것을 찾는다. 이제 MemberPickerDialog를 사용하여 Manager 필드 뒤에 동일한 Picker 회원 프로필과 이 앱에서 한 사람의 선택. 디렉토리 검색 서버 측 및 이름, 별명으로, 일 및 계정 이메일, 직업 제목 및 일치 부서, 그래서 "ana lending"은 대출에 Ana를 찾습니다. 각 행은 충분히 운반 같은 이름의 두 사람에게 말하십시오. 현재 할당자는 위에 핀 결과 그래서 그것은 중앙 연구를 잃지 않습니다. id는 JavaScript의 정확한 정수 범위를 초과하므로 id는 문자열을 유지합니다. 철사에 디렉토리.

  24. · MediaService

    자동 오픈 핸드오버를 위한 엔드포인트

    GET /sessions/chat/auto-open 채팅 대화 이 멤버의 클라이언트를 반환 제기해야 합니다. POST /sessions/{guid}/auto-opened 레코드가 수행되었습니다. 내구성 지원 handover의 반대, 그리고 같은 이유로: 결정 플랫폼에 속해, 하나의 브라우저 탭의 sessionStorage. 쓰기는 콜러의 자신의 회원 행에 적용, 그래서 하나의 회원의 클라이언트 클라이언트 공급 보다는 오히려 다른 것, 그리고 우표 서버 시간을 은퇴할 수 없습니다 value — 비교는 이 동일한 시계에 의해 쓴 메시지 타임스탬프에 대하여, 그리고 skewed 브라우저는 그렇지 않으면 대화를 금지하거나 re-raise 그것 끝없는. ChatAutoOpenHqlTest는 실제 엔티티티 모델과 핀에 대한 쿼리를 곱합니다. 세 가지가 존재합니다. Spring Data는 @Query at context만 유효합니다. 부팅, 그래서 typo는 실패 시작 또는 경로에 500으로 그렇지 않으면 표면 모든 회원은 sign-in에 표시됩니다. 테스트는 annotation을 읽습니다 반사 그래서 그것은 stale 사본에 대해 통과 할 수 없습니다.

  25. · kamo-shared-library

    고객에 의해 제기 된 대화의 튼튼한 기록

    MediaSessionMember는 그것이이기 때문에 msgIdLastViewed 옆에 AUTO OPENED AT를 얻습니다 같은 곡물 - 한 세션에 한 회원의 관계에 대한 사실. 그대 답변 "어떻게 그들이 읽었다"; 이 하나의 대답 "그들은 이미 보았 이, unasked". 그것은 per-tab sessionStorage 플래그를 대체, 어떤의 기록되지 않았다: a 두 번째 장치가 모든 대화를 다시 열었습니다. 저장을 완전히 잃었다. findChatSessionsToAutoOpen 회원이 뭔가를 들고 세션을 반환 마지막 인상 이후 도착한 곳을 읽지 마십시오 — 그래서 대화 deliberately left 읽지 않은 것은 각 부하에 다시 열림하지만 다시 올 때 진정한 새로운 메시지 땅. 채팅 세션 만; 지원 티켓은 자신의 소유 수로. 회원의 자신의 메시지는 제외되며 dangling msgIdLastViewed pointer counts as 읽지 않은 오히려 보다 잡힌 업, 때문에 scalar subquery over 사라진 행 수율 NULL 과 영구적으로 읽을 것 이다.

  26. · kamo-internal

    선호도 패널

    4개의 dropdowns 및 패널에 스위치는 10ant에 있는 바닥에 정상을 세척했습니다 전체 강도에 색상, 그래서 모든 제어는 자신의 배경을 싸웁니다. 각 각 클릭 뒤에 숨겨지은 3개 또는 4개의 선택권을 선택하고 동일한 12를 반복했습니다 국경의 선 스타일링. 패널은 지금 표면이고, 색깔은 선택된 무엇이든에 속합니다. - 모든 옵션은 화면에 있습니다. 이 세 ~ 5 세 설정입니다. 각 짧은 값; 보여주기 더 빠른 메뉴를 열고, 1개의 선택 성분은 duplicated styling의 4개의 구획을 대체합니다. - 알림 시간 및 방법은 카드를 공유하므로 아무것도 의미하지 않습니다. 다른없이. Reminder 상쇄는 단청이며 나머지는 일치합니다. 시간의 달력 처리. - 기본 달력은 색상을 보여줍니다, 그래서 그것은 같은 방법을 인식 sidebar 및 이벤트 대화 상자는 혼자 이름이 아닌. - 헤더는 몸의 스크롤 동안 넣어 - 4 섹션 제목 다른 스크롤. 이 설정은 버튼을 눌러 변경에 저장하고, 이전에 말했다 그래서 베어 스피너. 이제 명시적 인 "Saved"이 있습니다. 몇 초 만에 변경을 위해 영수증이므로 패널의 영구 상태. 단면도 비틀림 및 확인 봄; 둘 다 밑에 억압됩니다 선호하는 모션. 모든 문자열은 기존 키입니다. detached worktree에서 생산 빌드로 검증되었습니다.

  27. · kamo-internal

    조립된 골격을 가진 mailbox 스피너를 대체하십시오

    /messages의 모든로드 상태는 다른 빈 판에 Loader2였습니다. — boot, 메시지 목록, 폴더 트리, 메시지 몸과 다음 페이지 모두 장소의 경간은 독자에게 무엇을 오는지 아무것도 말했다. 그들은 이제 적재하는 것을 그립니다. 각 주주는 기하학을 복사합니다. 이 구성 요소는 40px avatar, 폴더 indent 및 104/120px 메시지 행은 실제 마크 업을 측정하므로 레이아웃은하지 않습니다. 데이터 땅을 이동. 1개의 아이디어는 동의를 나릅니다: 빛 십자가의 밴드 각 위주자는 오른쪽으로 왼쪽으로 시작하여 아래 각 행에 나중에 시작한다. 하이라이트는 각 줄 보다는 오히려 단 하나 대각선 통행으로 겹쳐 쌓입니다 자신의 시계에 번쩍이는. 행은 동일한 순서에 있는 장소에 상승합니다. 빛은 --accent-comms에서 섞이고, 메시지 단위의 자신의 가족 악센트, 그래서 그것은 일반적인 광택보다이 제품으로 읽습니다. 선호 사항 아직도 막대에 전체적인 것을 평평하게 합니다. 새로운 메시지 키가 없습니다 : placeholders는 화면 리더에게 자신을 발표 이미 세 개의 로딩 문자열을 통해.

  28. · kamo-internal

    이벤트 대화에서 게스트를 추가하고 제거

    마지막 것은 대화 상자가 할 수 없습니다. 이미에 표시 할 수 있습니다. 이벤트는 없지만 누구에게도 넣는 방법이 없습니다. - 만의 게스트 컨트롤 "업데이트 및 알림"은 이미 초대 된 사람들이 재 메일을 보냅니다. RSVP로 등록된 이메일이 추가됩니다. 국가로, 그리고 hover에 제거. 자주 묻는 질문 대화 상자를 제출하면 중간 목록이므로 완료됩니다. 더 보기 주최자는 표시되어 일반 손님에 실수가 될 수 없습니다. 이메일 검증은 deliberately permissive입니다. 실제 테스트는 메일이 있는지 여부입니다. 그것은 반송, 그리고 엄격한 패턴 완벽하게 주소 거부 제품 정보 그것은 명백한 typo, 아무것도 더 잡는다. 빈 상태는 apologises보다 오히려 초대합니다. kamo-translation-dictionary에서 앞서 발송된 문자열 — next-intl en.json과 kamo-internal의 CI clones에서 누락된 키에 던져 빌드 시간에, 그래서이 첫 번째 착륙은 달력 페이지를 발송 기타 제품 detached worktree에서 생산 빌드로 검증; 또 다른 세션 in-tree 자물쇠를 붙입니다.

  29. · EmailService

    이벤트의 게스트 목록 관리

    대화 상자는 이미 이벤트에있을 수 있지만 추가하거나 제거 할 수 없습니다. 누군가; 유일한 게스트 운영은 몇 가지가 된 사람들을 재확인했다. 이미 있다. 이벤트는 이제 게스트 목록, 교체 도매에 저장합니다. 자주 묻는 질문 대화 상자가 목록을 소유하기 때문에 합병보다 - 게스트가 거기에 제거 여기에 사라. null 목록은 "공급되지 않음"을 의미하며, 손님 클라이언트 편집은 타이틀만 보내는 것. 클라이언트가 assert에 도착하지 않는 두 가지, 그래서 읽지 않은 요청 : 손님이 제공하는 RSVP, 및 organiser 플래그, 회의를 호출하는 기록. 둘 다 편집을 살아남기 — recreating 그(것)들의 updating 대신에 줄은 각 대답을 다시 놓고 1개를 벗깁니다 행사를 취소할 수 있습니다. 손님이 다시 배치됩니다. 한 달의 전망은 백 이벤트를 반환하고, 요청 이벤트는 행당 쿼리입니다. 이벤트를 삭제하면 먼저 게스트를 제거합니다. 그들은 non-null을 수행 외국의 키가 다시, 그래서 삭제 하나 orphaned 그들 또는 실패 한 번 데이터베이스는 참고를 시행했습니다.

  30. · kamo-shared-library

    Batched 게스트 검색 및 삭제-by-event

    이벤트 대화 상자는 이벤트가 포함되고 목록 엔드포인트가 반환됩니다. 한 번에 이벤트의 달. 이벤트 당 손님에 대한 질문은 행 당 쿼리입니다; findByEventIdIn은 한 번 묻습니다. deleteByEventId는 게스트 목록 도매를 대체하는 첫 번째 절반이며, Non-null 외국을 수행하는 orphaning 행없이 이벤트 제거 그것에 열쇠 뒤.

당신의 우주는 기다리고 있습니다.

몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.

영원히 무료 - 신용 카드 필요 없음