Skip to content

Commit

Permalink
Room: Support copy room except keys. v5.13.20
Browse files Browse the repository at this point in the history
  • Loading branch information
winlinvip committed Feb 1, 2024
1 parent 18abb82 commit d14f9b4
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 13 deletions.
58 changes: 46 additions & 12 deletions ui/src/pages/ScenarioLiveRoom.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,36 @@ function ScenarioLiveRoomList({setRoomId}) {
setRoomId(room.uuid);
}, [searchParams, setSearchParams, setRoomId]);

const copyRoom = React.useCallback(async (roomCopy) => {
const name = `Copy of ${roomCopy.title}`;
const room = await new Promise(resolve => {
axios.post('/terraform/v1/live/room/create', {
title: name,
}, {
headers: Token.loadBearerHeader(),
}).then(res => {
const room = res.data.data;
console.log(`Status: Create ok, name=${name}, data=${JSON.stringify(res.data.data)}`);
resolve(room);
}).catch(handleError);
});

await new Promise(resolve => {
axios.post('/terraform/v1/live/room/update', {
...roomCopy,
// Do not copy the stream, secret, and token.
uuid: room.uuid, title: room.title, stream: room.stream, secret: room.secret,
roomToken: room.roomToken,
}, {
headers: Token.loadBearerHeader(),
}).then(res => {
alert(t('helper.setOk'));
console.log(`Room: Update ok, uuid=${room.uuid}, data=${JSON.stringify(res.data.data)}`);
resolve();
}).catch(handleError);
});
}, [handleError]);

React.useEffect(() => {
const refreshLiveRoomsTask = () => {
axios.post('/terraform/v1/live/room/list', {
Expand Down Expand Up @@ -172,9 +202,10 @@ function ScenarioLiveRoomList({setRoomId}) {
manageRoom(room);
}}>{t('helper.manage')}</a> &nbsp;
<PopoverConfirm placement='top' trigger={ <a href='#!'>{t('helper.delete')}</a> } onClick={() => removeRoom(room.uuid)}>
<p>
{t('lr.list.delete')}
</p>
<p>{t('lr.list.delete')}</p>
</PopoverConfirm> &nbsp;
<PopoverConfirm placement='top' trigger={ <a href='#!'>{t('helper.copy')}</a> } onClick={() => copyRoom(room)}>
<p>{t('lr.list.copy')}</p>
</PopoverConfirm>
</td>
</tr>;
Expand Down Expand Up @@ -208,15 +239,18 @@ function ScenarioLiveRoomImpl({roomId, setRoomId}) {
const updateRoom = React.useCallback((room) => {
setRequesting(true);
try {
axios.post('/terraform/v1/live/room/update', {
uuid: room.uuid, ...room,
}, {
headers: Token.loadBearerHeader(),
}).then(res => {
alert(t('helper.setOk'));
setRoom(res.data.data);
console.log(`Room: Update ok, uuid=${room.uuid}, data=${JSON.stringify(res.data.data)}`);
}).catch(handleError);
new Promise(resolve => {
axios.post('/terraform/v1/live/room/update', {
uuid: room.uuid, ...room,
}, {
headers: Token.loadBearerHeader(),
}).then(res => {
alert(t('helper.setOk'));
setRoom(res.data.data);
console.log(`Room: Update ok, uuid=${room.uuid}, data=${JSON.stringify(res.data.data)}`);
resolve();
}).catch(handleError);
});
} finally {
setRequesting(false);
}
Expand Down
4 changes: 3 additions & 1 deletion ui/src/resources/locale.json
Original file line number Diff line number Diff line change
Expand Up @@ -463,7 +463,8 @@
"list": {
"title": "直播间列表",
"empty": "暂无直播间",
"delete": "删除后不可恢复,确认删除直播间吗?"
"delete": "删除后不可恢复,确认删除直播间吗?",
"copy": "以当前直播间为模板,复制新的直播间,除了密钥都不变"
},
"room": {
"nav": "导航",
Expand Down Expand Up @@ -736,6 +737,7 @@
"nav": "Navigation"
},
"list": {
"copy": "Using this live room as the template, create a new one, copy everything except tokens and secrets",
"delete": "Deleted rooms cannot be restored. Confirm to delete the room?",
"empty": "No Live Rooms",
"title": "Live Rooms"
Expand Down

0 comments on commit d14f9b4

Please sign in to comment.