变更记录
什么是新的。
平台的每一个改进,随着它的出货。
· SecurityService
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileExtension} - Update all URL generation to use hash instead of ID - Add backward compatibility: generate hash for old avatars without hash - Update photo upload, Avatar Creator creation, update, and delete operations - Prevents enumeration attacks by making file names unpredictable
· kamo-shared-library
将文件Hash 字段添加到 Avatar 实体以安全保存文件
- 添加文件Hash列以存储可视化标识的SHA-256散列 - Hash用于MinIO文件命名,以防止点数攻击 - 格式 : {hash}. {fileExtension} 而不是 {id}. {fileExtension}
· kamo-internal
重建相机UI - 现代,交互,抛光. 后端直接返回 URL
· SecurityService
重建avatar系统 - 后端直接像背景一样生成预先签名的 URL
· kamo-internal
将 MiNIO 证书添加到 k8s 配置图
· kamo-internal
在 Next.js 中使用带有主题域的 MinIO SDK 生成预签名的 URL
· kamo-shared-library
添加自定义端点预签名 URL 的 PremissionUrlWith Endpoint 方法
· kamo-internal
添加 Avatar 创建者 vafatar 创建, 重新排序的背景管理, 以及全 Avatar/ 背景库支持
· SecurityService
Add avatar and background management endpoints
· kamo-shared-library
添加 AvatarPhoto 和 AvatarAvatar 创建类, 重构 Avatar 继承结构
· SecurityService
Organize MinIO storage with folder structure and add Avatar Creator SVG support
- Updated storage paths to use organized folder structure: * members/avatars/photos/ for photo avatars * members/avatars/vector/ for Avatar Creator SVG avatars * members/backgrounds/ for background images - Added SVG file generation and storage for Avatar Creator avatars - Avatar Creator avatar creation/update now accepts SVG string and saves to MinIO - All presigned URL generation updated to use new folder paths - SVG files are saved when Avatar Creator avatars are created or updated
· SecurityService
Add avatar, background, and member profile management endpoints
- Added AvatarController with CRUD operations for avatars (photo and Avatar Creator) - Added UserBackgroundController for managing user background images - Extended MemberController with GET/PUT endpoints for member profile data - All endpoints support MinIO uploads to 'internal' bucket with presigned URL generation - Avatar endpoints support photo uploads and Avatar Creator avatar creation - Background endpoints support member-specific backgrounds - Member profile endpoints support updating avatar selection from user's collection
· kamo-shared-library
添加 Avatar 和 UserBackground 寄存器及预签名的 URL 支持
- 添加有用户查找假象的方法的 " 神通仓库 " - 添加用户背景存储器,并按用户/成员查找背景 - 添加到 MinIOStorage Service 的 PremissionUrl 方法以生成临时访问 URL - 指定URL默认为7天到期,可配置到期时间
· kamo-shared-library
添加用户图片和用户背景实体与用户/成员关系
- 创建用于存储用户和成员配置照片的用户图片实体 - 创建了用户背景实体,用于存储用户和成员背景图像 - 两个实体支持用户级(成员=null)和成员级(成员组)协会 - UserPhoto 包含 isSet 字段,以表示当前正在使用的相片 - 用户背景包括命令多个背景的排序Id字段 - 两个实体都使用嵌入式EmbRecord State,用于跟踪创建、更新和运行状态 - 添加适当的数据库索引以优化性能
· kamo-internal
添加共享成员页眉组件, 包含成员级外观/ 背景覆盖
- 创建有背景图像和外观显示的共享成员头组件 - 为外观和背景添加了成员级别覆盖选项( 使用默认用户对特定成员) - 更新的配置图Tab,用于共享成员页眉组件 - 更新成员分配表,使用共享成员标题部分 - 标题现在同时出现在简介和会员资格标签上 - 为“使用默认用户Avatar”和“使用默认用户背景”添加了切换开关 - 不使用默认主题背景时支持自定义背景图像 URL
· kamo-marketing
为移动设备添加触摸支持
· kamo-internal
将网格更改为自动高通布局, 以显示所有没有滚动栏的记录
- 设置 DomLayout 自动加高 所以网格扩展以适应所有行 - 清除溢出:隐藏在网格容器中 - 删除高度:从网格包装框中100%限制 - 网格现在显示当前页面上所有没有垂直滚动条的记录
· kamo-internal
将地址栏替换为州和街道栏
- 删除地址栏和地址渲染器 - 在联系人后添加状态栏(显示分区/状态代码) - 在状态后添加街道栏(显示街道、城市格式) - 将地址FilterValue替换为StateFilterValue和街道FilterValue - 添加美国各州的降水过滤器 - 添加 Street 文本过滤字段 - 更新 State and Street 列的过滤逻辑 - 从重置过滤器中删除地址过滤器
· kamo-internal
更新列宽到指定的值
- 将铅标识列宽从300px改为245px - 联络栏保持弹性:1个取出剩余宽度 - 将状态列宽从200px改为65px - 将子状态列宽从200px改为120px - 将代理列宽从150px改为120px - 更新相应的过滤字段容器宽度,以匹配列 - 必要时增加明确的微宽和最大微宽限制
· kamo-internal
将模拟引导ID更新到随机的字母数字,并将地址列设置为 170px
- 添加生成RandomLeadId函数以创建长度 13 的随机数字字符串 - 从相继数字更改为随机字母数字(例如"34FDK69HWGPPK") - 更新地址列宽从250px到170px,并明确分/最大 - 更新地址过滤容器宽度以匹配170px
· kamo-internal
更新日期列宽并替换动作按钮
- 将日期栏宽从155px改为170px(创建和指定) - 更新日期过滤字段容器,以匹配170px宽度 - 将“出口选择”、“共享”和“删除选择”按钮替换为: - “ 重命名选中( { amount setting} ) ” 图标 - 带有 SwapHoriz 图标的所选( { amount serve}) 变化状态 - 从UI材料进口人员和交换图标 - 按钮在标签中动态显示选中的计数
· kamo-internal
将细浅的灰色边框底部添加到二级标签
- 在状态标签容器中添加边框 Bottom : “ 1px solid rgba( 0, 0, 0, 0, 0.12) ” - 匹配在/leads/view/页面上发现的样式 - 在下面的标签和内容之间创建视觉分隔
· kamo-internal
将灰色背景添加到剩余过滤字段并调整到下
- 将过滤行对齐从中线改为弹性端线(下行对齐) - 在所有剩余过滤字段容器中添加灰色背景(#f8fafc) - 添加边框半径并粘贴以匹配日期过滤器样式 - 定期过滤字段与底部对齐,匹配底日期字段的高度 - 日期字段保持高高并有堆叠布局 - 所有过滤字段现在都有一致的灰色背景处理
· kamo-internal
垂直地以孤立的灰色背景堆放日期过滤字段
- 将日期过滤字段从水平布局改为垂直布局(弹性方向:列) - 只添加灰色背景( #f8fafc) 到日期过滤框, 而不是整个过滤行 - 为日期过滤字段设定220px的明显宽度 - 从主过滤行容器中删除灰色背景 - 在日期上添加边框半径过滤框,以便更好地进行视觉分离
· kamo-internal
改进用户界面布局并增加模拟数据
- 缩短日期过滤字段的文本(fontSize:输入0.75rem,标签0.7rem) - 将快速搜索移动到与状态标签相同的行上,与右边对齐 - 模拟线索从50个增加到250个 - 从网格中删除动作列 - 清除重复搜索栏块来清理布局
· kamo-internal
添加创建和指定列的日期范围过滤组件
- 为创建和指定日期范围过滤器添加状态变量(启动/结束日期) - 创建带有起始日期和结束日期字段的日期范围过滤组件 - 为已创建和指定列自定义过滤行添加日期范围过滤组件 - 更新过滤过的RowData逻辑以按日期范围过滤 - 空日期字段无限制(所有日期) - 更新重置Filters功能以清除日期范围过滤器 - 日期过滤器支持部分范围(只启动,只结束,或两者兼有)
· kamo-internal
制作可点击的联系人名链接并添加双击以打开铅
- 更新联系人渲染器, 以下划线可点击链接显示先名和后名 - 在 Click 处理器上添加通过 ViewLead 或导航打开线索的联系人名 - 在RowDoubleClicked处理器上添加AgGridReact,以便在行被双击时打开铅 - 联系人名称现在具有主要颜色、下划线和悬浮效应 - 双击在一行的任何地方打开领先点
· kamo-internal
添加图标到子状态下拉过滤并更新已发送的合同
- 将“ 合同签名” 更新为“ 合同发送” 以匹配 Java 语句 - 更改发件合同的图标以发送图标 - 将图标添加到子状态下降过滤菜单项 - 从材料UI导入发送图标 - 在下拉过滤器中每个子状态选项旁边显示图标
· kamo-internal
为每个子状态添加具有父状态颜色的独特图标
- 为每个子状态添加独有的相关图标(如PersonAdd for New Lead,Message for Left Message) - 图标保持父色(新鲜为绿色,重新核算为蓝色,农场为橙色,Grim为红色,Void为灰色) - 为子状态导入额外的材料UI图标 - 更新 SubStatusIcon 以将每个子状态映射到其独特的图标 - 新鲜:个人Add、消息、事件、时间表、PlayArrow、描述、购物艺术、付款 - 校正:同步、任务、任务转换、构建、本地测试 - 农场:当地佛罗伦萨、缩略图、电话故障、商业、附金、无障碍新产品、街区 - Grim:打印、信号、PersonOff、警告、不干扰、从垃圾堆中恢复 - Void:科学、内容
· kamo-internal
在匹配父状态颜色的子状态列中添加图标
- 添加 SubStatusIcon 帮助器函数,以根据父身份决定图标 - 子状态图标使用与其父状态相同的图标和颜色 - 新鲜子状态:绿色新释放图标 - 正在计数子状态:蓝色 Gavel 图标 - 农场亚地位:橙色农业图标 - Grim 子状态:红色乌鸦图标 - Void 子状态: 灰色取消图标
