feat: wip board metas

This commit is contained in:
Florian Schmitt 2025-06-04 12:35:04 +03:00
parent 7bd2cb8b77
commit 71298ee166
3 changed files with 59 additions and 1 deletions

View file

@ -97,6 +97,10 @@ function getMessage(m) {
// this doesn't happen yet // this doesn't happen yet
break break
case 'editBoardMetas':
sendAction('editBoardMetas', { prop: 'opacity', value: 0.5 })
break
case 'moveCard': case 'moveCard':
moveCard($(`#${data.id}`), data.position) moveCard($(`#${data.id}`), data.position)
break break

View file

@ -11,7 +11,7 @@ const sets = require('simplesets')
// var MemoryStore = require('connect/middleware/session/memory'); // var MemoryStore = require('connect/middleware/session/memory');
// var session_store = new MemoryStore(); // var session_store = new MemoryStore();
const REDIS_PREFIX = '#scrumblr#' const REDIS_PREFIX = '#memo#'
// For Redis Debugging // For Redis Debugging
@ -111,6 +111,39 @@ db.prototype = {
}) })
}, },
// Board metadata commands
createBoardMetas(room, id, board) {
const boardString = JSON.stringify(board)
redisClient.hset(
`${REDIS_PREFIX}-room:${room}-board`,
id,
boardString
)
}
getBoardMetas(room, callback) {
redisClient.hgetall(`${REDIS_PREFIX}-room:${room}-board`, (err, res) => {
console.log('board metas',res)
callback(JSON.parse(res))
})
},
editBoardMetas(room, id, prop, value) {
redisClient.hget(`${REDIS_PREFIX}-room:${room}-board`, id, (err, res) => {
const board = JSON.parse(res)
if (board !== null) {
board[prop] = value
redisClient.hset(`${REDIS_PREFIX}-room:${room}-board`, id, JSON.stringify(board))
}
})
},
deleteBoardMetas(room, id) {
redisClient.hdel(
`${REDIS_PREFIX}-room:${room}-board`,
id
)
},
// Card commands // Card commands
createCard(room, id, card) { createCard(room, id, card) {
const cardString = JSON.stringify(card) const cardString = JSON.stringify(card)

View file

@ -134,6 +134,27 @@ io.sockets.on('connection', (client) => {
break break
case 'editBoardMetas':
clean_data = {}
// TODO: test if prop is in ['title', opacity, 'imageUrl']
clean_data.id = message.data.id
clean_data.prop = message.data.prop
clean_data.value = scrub(message.data.value)
// send update to database
getRoom(client, (room) => {
db.editBoardMetas(room, clean_data.id, clean_data.prop, clean_data.value)
})
message_out = {
action: 'editBoardMetas',
data: clean_data
}
broadcastToRoom(client, message_out)
break
case 'moveCard': case 'moveCard':
// report to all other browsers // report to all other browsers
message_out = { message_out = {