Skip to content

Commit

Permalink
Merge pull request #1760 from RodriSanchez1/feature/ImportCbuilderBoard
Browse files Browse the repository at this point in the history
Feature / Import Cbuilder board
  • Loading branch information
martinbedouret authored Aug 31, 2024
2 parents 1d89159 + 13bb6cc commit 7a62a8d
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 8 deletions.
5 changes: 5 additions & 0 deletions src/api/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,11 @@ class API {
return data;
}

async getTemporaryBoard(id) {
const { data } = await this.axiosInstance.get(`/board/temporary/${id}`);
return data;
}

async getSettings() {
const authToken = getAuthToken();
if (!(authToken && authToken.length)) {
Expand Down
47 changes: 39 additions & 8 deletions src/components/Board/Board.container.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,8 @@ export class BoardContainer extends Component {
isFixedBoard: false,
copiedTiles: [],
isScroll: false,
totalRows: null
totalRows: null,
isCbuilderBoard: false
};
constructor(props) {
super(props);
Expand Down Expand Up @@ -377,15 +378,27 @@ export class BoardContainer extends Component {
}

async tryRemoteBoard(boardId) {
const { userData } = this.props;
const remoteBoard = await API.getBoard(boardId);
const { userData, location } = this.props;

const queryParams = new URLSearchParams(location.search);
const isCbuilderBoard = queryParams.get('cbuilder');

const remoteBoard = isCbuilderBoard
? await API.getTemporaryBoard(boardId)
: await API.getBoard(boardId);

this.setState({ isCbuilderBoard });
//if requested board is from the user just add it
if (
'name' in userData &&
'email' in userData &&
remoteBoard.email === userData.email &&
remoteBoard.author === userData.name
) {
if (isCbuilderBoard) {
this.setState({ copyPublicBoard: remoteBoard });
return null;
}
return remoteBoard;
} else {
//if requested board is public, ask about copy it
Expand Down Expand Up @@ -1356,7 +1369,8 @@ export class BoardContainer extends Component {
if (isSaving) return;
this.setState({
copyPublicBoard: false,
blockedPrivateBoard: false
blockedPrivateBoard: false,
isCbuilderBoard: false
});
};

Expand Down Expand Up @@ -1524,6 +1538,7 @@ export class BoardContainer extends Component {
improvedPhrase,
speak
} = this.props;
const { isCbuilderBoard } = this.state;

if (!this.state.translatedBoard) {
return (
Expand Down Expand Up @@ -1608,11 +1623,19 @@ export class BoardContainer extends Component {
aria-describedby="dialog-copy-desc"
>
<DialogTitle id="dialog-copy-board-title">
{this.props.intl.formatMessage(messages.copyPublicBoardTitle)}
{this.props.intl.formatMessage(
isCbuilderBoard
? messages.importCbuilderBoardTitle
: messages.copyPublicBoardTitle
)}
</DialogTitle>
<DialogContent>
<DialogContentText id="dialog-copy-board-desc">
{this.props.intl.formatMessage(messages.copyPublicBoardDesc)}
{this.props.intl.formatMessage(
isCbuilderBoard
? messages.importCbuilderBoardDesc
: messages.copyPublicBoardDesc
)}
</DialogContentText>
</DialogContent>
<DialogActions>
Expand Down Expand Up @@ -1648,11 +1671,19 @@ export class BoardContainer extends Component {
aria-describedby="dialog-blocked-desc"
>
<DialogTitle id="dialog-blocked-board-title">
{this.props.intl.formatMessage(messages.blockedPrivateBoardTitle)}
{this.props.intl.formatMessage(
isCbuilderBoard
? messages.importCbuilderBoardTitle
: messages.blockedPrivateBoardTitle
)}
</DialogTitle>
<DialogContent>
<DialogContentText id="dialog-blocked-board-desc">
{this.props.intl.formatMessage(messages.blockedPrivateBoardDesc)}
{this.props.intl.formatMessage(
isCbuilderBoard
? messages.loginToImport
: messages.blockedPrivateBoardDesc
)}
</DialogContentText>
</DialogContent>
<DialogActions>
Expand Down
14 changes: 14 additions & 0 deletions src/components/Board/Board.messages.js
Original file line number Diff line number Diff line change
Expand Up @@ -218,5 +218,19 @@ export default defineMessages({
writeAndSay: {
id: 'cboard.components.Board.writeAndSay',
defaultMessage: 'Write and say'
},
importCbuilderBoardTitle: {
id: 'cboard.components.Board.importCbuilderBoardTitle',
defaultMessage: 'Import CBuilder Board'
},
importCbuilderBoardDesc: {
id: 'cboard.components.Board.importCbuilderBoardDesc',
defaultMessage:
'You are trying to import a CBuilder board. In order to use and edit this board you have to copy it into your communicator boards.'
},
loginToImport: {
id: 'cboard.components.Board.loginToImport',
defaultMessage:
'In order to import a CBuilder board you have to be logged in.'
}
});
3 changes: 3 additions & 0 deletions src/translations/src/cboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,9 @@
"cboard.components.Board.userProfileLocked": "User Profile is locked, please unlock settings to see your user profile.",
"cboard.components.Board.live": "LIVE",
"cboard.components.Board.writeAndSay": "Write and say",
"cboard.components.Board.importCbuilderBoardTitle": "Import CBuilder Board",
"cboard.components.Board.importCbuilderBoardDesc": "You are trying to import a CBuilder board. In order to use and edit this board you have to copy it into your communicator boards.",
"cboard.components.Board.loginToImport": "In order to import a CBuilder board you have to be logged in.",
"cboard.components.Board.ImageEditor.title": "Image editor",
"cboard.components.Board.ImageEditor.rotateRight": "Rotate right",
"cboard.components.Board.ImageEditor.cropImage": "Crop image",
Expand Down

0 comments on commit 7a62a8d

Please sign in to comment.