feat: Avatar Position-Offset (translate X/Y)
Backend: - AgentRecord + SessionRecord: AvatarOffsetX, AvatarOffsetY Properties - DB-Migration: avatar_offset_x/y REAL DEFAULT 0 auf agents + sessions - Agent/Session Endpoints: Create + Update lesen/schreiben Offset-Felder - GetSessionsWithStats: Offset-Felder ans Frontend Frontend: - Avatar-Editor: X/Y Offset-Slider (-50% bis +50%) im Modal - buildTransformStyle() Helper für transform: scale() translate() - getOffsetX()/getOffsetY() Public API - Reset bei Clear/AI-Generate/Upload - ui.js: buildAgentCard + buildSessionCard rendern transform mit Offset - Agent-Page + Session-Page: initialOffsetX/Y + Save - CSS: .av-offset-row Styles (gruppiert mit .av-scale-row)
This commit is contained in:
1 parent
95b3683910
commit
4775b8ded7
10 files changed
+143
-30
No files matched your search
@@ -38,7 +38,9 @@ registerPage('agent', {
|
||||
_agentAvatarEditor = AvatarEditor.init({
|
||||
previewEl: avatarPreview,
|
||||
initialImage: (agent && agent.avatar) || null,
|
||||
initialScale: (agent && agent.avatarScale) || 1
|
||||
initialScale: (agent && agent.avatarScale) || 1,
|
||||
initialOffsetX: (agent && agent.avatarOffsetX) || 0,
|
||||
initialOffsetY: (agent && agent.avatarOffsetY) || 0
|
||||
});
|
||||
|
||||
if (agent) {
|
||||
@@ -100,6 +102,8 @@ registerPage('agent', {
|
||||
webSearchVersion: webSearchVersionEl.value,
|
||||
avatar: _agentAvatarEditor.getImage(),
|
||||
avatarScale: _agentAvatarEditor.getScale(),
|
||||
avatarOffsetX: _agentAvatarEditor.getOffsetX(),
|
||||
avatarOffsetY: _agentAvatarEditor.getOffsetY(),
|
||||
customCommands: getCommandsFromUI(commandsList)
|
||||
};
|
||||
|
||||
|
||||
@@ -37,7 +37,9 @@ registerPage('session', {
|
||||
_sessionAvatarEditor = AvatarEditor.init({
|
||||
previewEl: imagePreview,
|
||||
initialImage: (session && session.image) || null,
|
||||
initialScale: (session && session.avatarScale) || 1
|
||||
initialScale: (session && session.avatarScale) || 1,
|
||||
initialOffsetX: (session && session.avatarOffsetX) || 0,
|
||||
initialOffsetY: (session && session.avatarOffsetY) || 0
|
||||
});
|
||||
|
||||
if (session) {
|
||||
@@ -190,7 +192,9 @@ registerPage('session', {
|
||||
context: _sessionContextMde.value().trim() || null,
|
||||
workspace: workspaceEl.value.trim() || null,
|
||||
customCommands: commands,
|
||||
avatarScale: _sessionAvatarEditor.getScale()
|
||||
avatarScale: _sessionAvatarEditor.getScale(),
|
||||
avatarOffsetX: _sessionAvatarEditor.getOffsetX(),
|
||||
avatarOffsetY: _sessionAvatarEditor.getOffsetY()
|
||||
};
|
||||
|
||||
if (isNew) {
|
||||
|
||||
Reference in new issue
Block a user