Skip to content

Commit

Permalink
Add the option to configure rich text in config file for message or q…
Browse files Browse the repository at this point in the history
…uestion list build-in template (#5738)

Signed-off-by: Giovanni Ferrari <giovanni.ferrari@soft.it>
  • Loading branch information
quinarygio committed Jan 24, 2024
1 parent 6c493ba commit 205deb5
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/test/resources/businessData/message-and-question-list
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"id": "Warning",
"title": "Warning about the state of the grid",
"summary": "Warning about the state of the grid : a problem has been detected",
"message": "A problem has been detected, please put maintenance work on hold and be on stand by",
"richMessage": {"ops":[{"attributes":{"color":"#e60000","bold":true},"insert":"A problem has been detected"},{"insert":", please put maintenance work on hold and be on stand by"},{"attributes":{"header":2},"insert":"\n"}]},
"question": false,
"severity": "ALARM",
"publishers": [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ export class MessageOrQuestionListUserCardTemplate extends BaseUserCardTemplate

if ( this.previousTitleId != messageId || opfab.currentUserCard.getEditionMode() == 'CREATE') {
const quill = document.getElementById("message");
this.setRichTextContent(quill, message?.message);
this.view.setRichTextContent(quill, message);

const summaryArea = document.getElementById("summary") as HTMLTextAreaElement;
summaryArea.value = message?.summary ?? '';
Expand All @@ -89,10 +89,6 @@ export class MessageOrQuestionListUserCardTemplate extends BaseUserCardTemplate

}

private setRichTextContent(quillEditor: any, message: string) {
quillEditor.setContents(opfab.richTextEditor.getDeltaFromText(opfab.utils.escapeHtml(message)));
}

private listenToEntityUsedForSendingCardChange() {
opfab.currentUserCard.listenToEntityUsedForSendingCard((entity) => {
this.updateSelectedEmitter(entity);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,4 +238,42 @@ describe('MessageOrQuestionList UserCard template', () => {
expect(messages[0].value).toEqual('id3');
expect(messages[1].value).toEqual('id4');
});

it('GIVEN a message list WHEN selected message has richMessage field THEN quill editor content is the richMessage', () => {
const view = new MessageOrQuestionListUserCardTemplateView();
const messageOrQuestionList = {
messagesList: [{
id: 'id1',
richMessage: {"ops":[{"attributes":{"color":"#e60000","bold":true}},{"insert":"Rich message"}]},
}]
};

view.messageOrQuestionList = messageOrQuestionList;

const selectedMessage = messageOrQuestionList.messagesList[0];

const quillEditor = new QuillEditorMock();
view.setRichTextContent(quillEditor, selectedMessage)

expect(quillEditor.getContents()).toEqual("{\"ops\":[{\"attributes\":{\"color\":\"#e60000\",\"bold\":true}},{\"insert\":\"Rich message\"}]}");
});

it('GIVEN a message list WHEN selected message does not have richMessage field THEN quill editor content is the message in delta format', () => {
const view = new MessageOrQuestionListUserCardTemplateView();
const messageOrQuestionList = {
messagesList: [{
id: 'id2',
message: 'message2',
}]
};

view.messageOrQuestionList = messageOrQuestionList;

const selectedMessage = messageOrQuestionList.messagesList[0];

const quillEditor = new QuillEditorMock();
view.setRichTextContent(quillEditor, selectedMessage);

expect(quillEditor.getContents()).toEqual("{\"ops\":[{\"insert\":\"message2\"}]}");
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -149,4 +149,8 @@ export class MessageOrQuestionListUserCardTemplateView {
return selectedOption;
}

setRichTextContent(quillEditor: any, message: any) {
const delta = message.richMessage ? JSON.stringify(message.richMessage) : opfab.richTextEditor.getDeltaFromText(opfab.utils.escapeHtml(message.message));
quillEditor.setContents(delta);
}
}

0 comments on commit 205deb5

Please sign in to comment.