Skip to content

Commit 727b9f3

Browse files
Class model property show up fix
1 parent 7bc51bf commit 727b9f3

File tree

4 files changed

+23
-15
lines changed

4 files changed

+23
-15
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "cache-visual-editor",
33
"printableName": "Cache Visual Editor",
44
"packageName": "VisualEditor",
5-
"version": "0.9.2",
5+
"version": "0.9.3",
66
"description": "Visual class editor for InterSystems Caché",
77
"main": "index.js",
88
"keywords": [

source/client/js/classEditor/class/index.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ import { getMemberBlock } from "./member";
66
/**
77
* This function returns card element that may be applied to the grid.
88
* @param {*} data
9+
* @param {*} [serviceData] - Object with additional properties passed through all the members.
910
* @returns {HTMLElement}
1011
*/
11-
export function getClassElement (data) {
12+
export function getClassElement (data, serviceData = {}) {
1213

1314
let type = data["_type"],
1415
card = block(`div`, `card ${ type }`),
@@ -19,7 +20,8 @@ export function getClassElement (data) {
1920
}`),
2021
header = block(`div`, `header`);
2122

22-
data[`__visualClassElement`] = card;
23+
serviceData[`visualClassElement`] = card;
24+
serviceData[`cardWidth`] = 1;
2325

2426
if (type === "class") // float priority
2527
head.appendChild(controls);
@@ -35,10 +37,10 @@ export function getClassElement (data) {
3537
return card;
3638
}
3739

38-
head.appendChild(getMemberBlock({ classData: data, classBlockElement: card }));
40+
head.appendChild(getMemberBlock({ classData: data, classBlockElement: card, serviceData }));
3941
MEMBER_SECTIONS.forEach(mName => {
4042
if (data[mName] && Object.keys(data[mName]).length)
41-
card.appendChild(getMemberSection(mName, data));
43+
card.appendChild(getMemberSection(mName, data, serviceData));
4244
});
4345

4446
return card;

source/client/js/classEditor/class/member.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,10 @@ function getMemberDetailedBlock (classData, memberType, classMemberName) {
7474
* @param [classBlockName]
7575
* @param [classBlockPropName]
7676
* @param [classBlockElement]
77+
* @param {*} [serviceData] - Object with additional properties passed through all the members.
7778
*/
7879
function enableMember ({
79-
headerElement, classData, classBlockName, classBlockPropName, classBlockElement
80+
headerElement, classData, classBlockName, classBlockPropName, classBlockElement, serviceData
8081
}) {
8182

8283
let isClass = !classBlockName,
@@ -86,8 +87,8 @@ function enableMember ({
8687
? [classData["Name"]]
8788
: [classData["Name"], classBlockName, classBlockPropName];
8889

89-
if (typeof classData[`__visualCodeBlocksOpened`] === "undefined")
90-
classData[`__visualCodeBlocksOpened`] = 0;
90+
if (typeof serviceData[`visualCodeBlocksOpened`] === "undefined")
91+
serviceData[`visualCodeBlocksOpened`] = 0;
9192

9293
headerElement.addEventListener(`click`, () => {
9394
if (!container) {
@@ -192,9 +193,9 @@ function enableMember ({
192193
headerElement.classList.toggle("opened");
193194

194195
if (classBlockName === "Methods" || classBlockName === "XDatas") {
195-
classData[`__visualCodeBlocksOpened`] += opened ? 1 : -1;
196-
updateGridElement(classData[`__visualClassElement`], {
197-
width: classData[`__visualCodeBlocksOpened`] > 0 ? 2 : 1
196+
serviceData[`visualCodeBlocksOpened`] += opened ? 1 : -1;
197+
updateGridElement(serviceData[`visualClassElement`], {
198+
width: serviceData[`cardWidth`] = serviceData[`visualCodeBlocksOpened`] > 0 ? 2 : 1
198199
});
199200
}
200201

@@ -221,10 +222,11 @@ function getMemberIconsBlock (isClass, memberData) {
221222
* @param [classBlockName]
222223
* @param [classBlockPropName]
223224
* @param {HTMLElement} classBlockElement
225+
* @param {*} [serviceData] - Object with additional properties passed through all the members.
224226
* @returns {HTMLElement}
225227
*/
226228
export function getMemberBlock ({
227-
classData, classBlockName, classBlockPropName, classBlockElement
229+
classData, classBlockName, classBlockPropName, classBlockElement, serviceData
228230
}) {
229231

230232
let isClass = !classBlockName,
@@ -248,7 +250,8 @@ export function getMemberBlock ({
248250
}
249251
item.appendChild(text);
250252
enableMember({
251-
headerElement: item, classData, classBlockName, classBlockPropName, classBlockElement
253+
headerElement: item, classData, classBlockName, classBlockPropName, classBlockElement,
254+
serviceData
252255
});
253256
div.appendChild(item);
254257

source/client/js/classEditor/class/memberSection.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@ function getMemberControls (body, classData, classBlockName) {
5050
* Applies block markup according to class metadata.
5151
* @param {"Parameters"|"Properties"|"Methods"|"Queries"|"XDatas"|"Indices"} classBlockName
5252
* @param {*} classData - Class metadata.
53+
* @param {*} [serviceData] - Object with additional properties passed through all the members.
5354
* @returns {Element}
5455
*/
55-
export function getMemberSection (classBlockName, classData) {
56+
export function getMemberSection (classBlockName, classData, serviceData) {
5657

5758
let section = block(`div`, `section`), body;
5859

@@ -67,7 +68,9 @@ export function getMemberSection (classBlockName, classData) {
6768
section.appendChild(header);
6869
section.appendChild(body);
6970
for (let classBlockPropName in classData[classBlockName]) {
70-
body.appendChild(getMemberBlock({classData, classBlockName, classBlockPropName}));
71+
body.appendChild(getMemberBlock({
72+
classData, classBlockName, classBlockPropName, serviceData
73+
}));
7174
}
7275

7376
return section;

0 commit comments

Comments
 (0)