feat: wip board metas
This commit is contained in:
parent
7bd2cb8b77
commit
71298ee166
3 changed files with 59 additions and 1 deletions
|
@ -97,6 +97,10 @@ function getMessage(m) {
|
|||
// this doesn't happen yet
|
||||
break
|
||||
|
||||
case 'editBoardMetas':
|
||||
sendAction('editBoardMetas', { prop: 'opacity', value: 0.5 })
|
||||
break
|
||||
|
||||
case 'moveCard':
|
||||
moveCard($(`#${data.id}`), data.position)
|
||||
break
|
||||
|
|
|
@ -11,7 +11,7 @@ const sets = require('simplesets')
|
|||
// var MemoryStore = require('connect/middleware/session/memory');
|
||||
// var session_store = new MemoryStore();
|
||||
|
||||
const REDIS_PREFIX = '#scrumblr#'
|
||||
const REDIS_PREFIX = '#memo#'
|
||||
|
||||
// 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
|
||||
createCard(room, id, card) {
|
||||
const cardString = JSON.stringify(card)
|
||||
|
|
21
server.js
21
server.js
|
@ -134,6 +134,27 @@ io.sockets.on('connection', (client) => {
|
|||
|
||||
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':
|
||||
// report to all other browsers
|
||||
message_out = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue