Skip to content

Commit 46fbd81

Browse files
committed
generate hide all & gues one notes
1 parent da268b1 commit 46fbd81

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

ts/image-occlusion/generate.ts

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { get } from "svelte/store";
55

66
import { addImageOcclusionNotes } from "./lib";
77
import { noteFieldsData, tagsWritable } from "./store";
8+
import { getQuestionMaskColor } from "./tools/lib";
89

910
const divData = [
1011
"angle",
@@ -36,10 +37,8 @@ export function generate(): string {
3637

3738
let occlusionNotes = "";
3839
let clozeData = "";
39-
let count = 0;
4040

4141
canvasObjects.forEach((object, index) => {
42-
count++;
4342
const obJson = object.toJSON();
4443
if (obJson.type === "group") {
4544
clozeData += getGroupCloze(object, index);
@@ -53,30 +52,39 @@ export function generate(): string {
5352
return occlusionNotes;
5453
}
5554

56-
const getCloze = (object, index, relativePos) => {
55+
const getCloze = (object, index, relativePos): string => {
5756
const obJson = object.toJSON();
5857
let clozeData = "";
5958

60-
Object.keys(obJson).forEach(function (key) {
59+
Object.keys(obJson).forEach(function(key) {
6160
if (divData.includes(key)) {
62-
if (key === "points") {
63-
const points = JSON.stringify(obJson[key]);
64-
clozeData += `:${key}='${points}'`;
61+
if (key === "type") {
62+
clozeData += `:${obJson[key]}`;
63+
} else if (key === "points") {
64+
const points = obJson[key];
65+
let pnts = "";
66+
points.forEach((point: { x: number; y: number }) => {
67+
pnts += point.x.toFixed(2) + "," + point.y.toFixed(2) + " ";
68+
});
69+
clozeData += `:${key}=${pnts.trim()}`;
6570
} else if (relativePos && key === "top") {
66-
clozeData += `:top="${relativePos.top}" `;
71+
clozeData += `:top=${relativePos.top}`;
6772
} else if (relativePos && key === "left") {
68-
clozeData += `:left="${relativePos.left}" `;
73+
clozeData += `:left=${relativePos.left}`;
6974
} else {
70-
clozeData += `:${key}="${obJson[key]}"`;
75+
clozeData += `:${key}=${obJson[key]}`;
7176
}
7277
}
7378
});
7479

75-
clozeData = `{{c${index + 1}::image-occlusion:${clozeData}}}\n`;
80+
// question mask color, on front side asking for cloze
81+
clozeData += `:quesmaskcolor=${getQuestionMaskColor()}`;
82+
83+
clozeData = `{{c${index + 1}::image-occlusion${clozeData}}}\n`;
7684
return clozeData;
7785
};
7886

79-
const getGroupCloze = (group, index) => {
87+
const getGroupCloze = (group, index): string => {
8088
let clozeData = "";
8189
const objects = group._objects;
8290

@@ -88,35 +96,33 @@ const getGroupCloze = (group, index) => {
8896
return clozeData;
8997
};
9098

91-
const getObjectPositionInGroup = (group, object) => {
99+
const getObjectPositionInGroup = (group, object): { top: number; left: number } => {
92100
let left = object.left + group.left + group.width / 2;
93101
let top = object.top + group.top + group.height / 2;
94102
left = left.toFixed(2);
95103
top = top.toFixed(2);
96104
return { top, left };
97105
};
98106

99-
const saveImageNotes = async function (
107+
export const saveImageNotes = async function(
100108
imagePath: string,
101-
occlusions: string,
102109
deckId: number,
103-
count: number,
104-
) {
110+
): Promise<void> {
111+
const occlusions = generate();
105112
const fieldsData = get(noteFieldsData);
106113
const tags = get(tagsWritable);
107114
let header = fieldsData["header"];
108-
let notes = fieldsData["notes"];
115+
let notes = fieldsData["back-extra"];
109116

110117
if (header === undefined) {
111118
const textArea = document.getElementById("img-occ-html-header")! as HTMLTextAreaElement;
112119
header = textArea.value;
113120
}
114121

115122
if (notes === undefined) {
116-
const textArea = document.getElementById("img-occ-html-notes")! as HTMLTextAreaElement;
123+
const textArea = document.getElementById("img-occ-html-back-extra")! as HTMLTextAreaElement;
117124
notes = textArea.value;
118125
}
119126

120127
await addImageOcclusionNotes(imagePath, deckId, occlusions, header, notes, tags);
121128
};
122-

0 commit comments

Comments
 (0)