Skip to content

Commit 76d46b8

Browse files
Local storing method enhance, inheritance level fix
1 parent deb3baf commit 76d46b8

File tree

3 files changed

+38
-51
lines changed

3 files changed

+38
-51
lines changed

cache/projectTemplate.xml

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<Description>
55
Cache Class Explorer vX.X.X/*build.replace:pkg.version*/
66
Class contains methods that return structured classes/packages data.</Description>
7-
<TimeChanged>63928,63957.580821</TimeChanged>
7+
<TimeChanged>63934,52160.80625</TimeChanged>
88
<TimeCreated>63653,67019.989197</TimeCreated>
99

1010
<Method name="getAllNamespacesList">
@@ -87,8 +87,8 @@ Return structured data about class.</Description>
8787
<Private>1</Private>
8888
<ReturnType>%ZEN.proxyObject</ReturnType>
8989
<Implementation><![CDATA[
90-
if ((level'="")&&(+currLevel>+level)) quit ""
91-
set currLevel=$increment(currLevel)
90+
if ((level'="")&&(+currLevel>+level)) quit ""
91+
set currLevel=$increment(currLevel)
9292
set classDefinition = ##class(%Dictionary.ClassDefinition).%OpenId(className)
9393
set compiledClassDefinition = ##class(%Dictionary.CompiledClass).%OpenId(className)
9494
if (classDefinition = "") || (oData.classes.%DispatchGetProperty(classDefinition.Name) '= "") quit ""
@@ -213,7 +213,7 @@ Return structured data about class.</Description>
213213
do oIndices.%DispatchSetProperty(ind.Name, oProp)
214214
}
215215
216-
do ..collectInheritance(oData, oClass.Super)
216+
do ..collectInheritance(oData, oClass.Super, level, currLevel)
217217
218218
quit oClass
219219
]]></Implementation>
@@ -305,13 +305,13 @@ Return extended inheritance names</Description>
305305
Fill inheritance data
306306
Returns new (correct) super</Description>
307307
<ClassMethod>1</ClassMethod>
308-
<FormalSpec>oData:%ZEN.proxyObject,super:%String</FormalSpec>
308+
<FormalSpec>oData:%ZEN.proxyObject,super:%String,level:%String="",currLevel:%Integer=0</FormalSpec>
309309
<Private>1</Private>
310310
<ReturnType>%Status</ReturnType>
311311
<Implementation><![CDATA[
312312
set superParts = $LISTFROMSTRING(super, ",")
313313
for i=1:1:$LISTLENGTH(superParts) {
314-
do ..fillClassData(oData, $LISTGET(superParts, i))
314+
do ..fillClassData(oData, $LISTGET(superParts, i), level, currLevel)
315315
}
316316
quit $$$OK
317317
]]></Implementation>

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "CacheClassExplorer",
3-
"version": "1.13.4",
3+
"version": "1.14.0",
44
"description": "Class Explorer for InterSystems Caché",
55
"directories": {
66
"test": "test"

web/js/CacheClassExplorer.js

+31-44
Original file line numberDiff line numberDiff line change
@@ -54,34 +54,27 @@ var CacheClassExplorer = function (treeViewContainer, classViewContainer) {
5454
dependencyLevel: id("setting.dependencyLevel")
5555
}
5656
};
57-
var selfAux = this;
58-
var settingsValue = function (name, defaultVal) {
59-
try{
60-
if (selfAux.elements.settings[name].type=="checkbox") {
61-
return localStorage.getItem(name) === null ? (defaultVal || false)
62-
: localStorage.getItem(name) === "true"
63-
}
64-
if (["text", "number"].indexOf(selfAux.elements.settings[name].type) >= 0) {
65-
var ret = localStorage.getItem(name);
66-
if (ret === null) ret = defaultVal;
67-
return ret;
68-
}
69-
} catch (error) {
70-
return localStorage.getItem(name) === null ? (defaultVal || false)
71-
: localStorage.getItem(name) === "true" }
57+
58+
var getSettingsValue = function (name, defaultVal) {
59+
var item = localStorage.getItem(name);
60+
try {
61+
return item ? JSON.parse(item).data : defaultVal;
62+
} catch (e) { // non-parsable data
63+
return defaultVal;
64+
}
7265
};
7366

7467
// note: this.elements is required to be modified with the same name as settings keys
7568
this.settings = {
76-
showDataTypesOnDiagram: settingsValue("showDataTypesOnDiagram"),
77-
showClassIcons: settingsValue("showClassIcons", true),
78-
showPropertyIcons: settingsValue("showPropertyIcons", true),
79-
showParameters: settingsValue("showParameters", true),
80-
showProperties: settingsValue("showProperties", true),
81-
showMethods: settingsValue("showMethods", true),
82-
showQueries: settingsValue("showQueries", true),
83-
showXDatas: settingsValue("showXDatas", true),
84-
dependencyLevel: settingsValue("dependencyLevel", "")
69+
showDataTypesOnDiagram: getSettingsValue("showDataTypesOnDiagram"),
70+
showClassIcons: getSettingsValue("showClassIcons", true),
71+
showPropertyIcons: getSettingsValue("showPropertyIcons", true),
72+
showParameters: getSettingsValue("showParameters", true),
73+
showProperties: getSettingsValue("showProperties", true),
74+
showMethods: getSettingsValue("showMethods", true),
75+
showQueries: getSettingsValue("showQueries", true),
76+
showXDatas: getSettingsValue("showXDatas", true),
77+
dependencyLevel: getSettingsValue("dependencyLevel", "")
8578
};
8679

8780
this.UI = new UI(this);
@@ -103,28 +96,22 @@ var CacheClassExplorer = function (treeViewContainer, classViewContainer) {
10396
CacheClassExplorer.prototype.initSettings = function () {
10497

10598
var self = this,
106-
textChanged = "Please, re-render diagram to make changes apply.";
99+
TEXT_CHANGED = "Please, re-render diagram to make changes apply.";
107100

108101
for (var st in this.elements.settings) {
109-
if (!this.elements.settings[st]) {
110-
console.warn(st, "is Bred Sivoi Cobyly.");
111-
continue;
112-
}
113-
114-
if (["text", "number"].indexOf(this.elements.settings[st].type) >= 0) this.elements.settings[st].value = this.settings[st];
115-
if (this.elements.settings[st].type == "checkbox") this.elements.settings[st].checked = this.settings[st];
102+
103+
var element = this.elements.settings[st];
104+
105+
// dropdown ("select") support is not predicted
106+
element[element.type === "checkbox" ? "checked" : "value"] = this.settings[st];
116107

117-
this.elements.settings[st].addEventListener("change", (function (st) {
118-
return function (e) {
119-
self.elements.settingsExtraText.innerHTML = textChanged;
120-
if (["text", "number"].indexOf((e.target || e.srcElement).type) >= 0) self.settings[st] = (e.target || e.srcElement).value
121-
if ((e.target || e.srcElement).type == "checkbox") self.settings[st] = (e.target || e.srcElement).checked
122-
localStorage.setItem(
123-
st,
124-
self.settings[st]
125-
);
126-
};
127-
})(st));
108+
element.addEventListener("change", (function (st, element) { return function () {
109+
self.elements.settingsExtraText.innerHTML = TEXT_CHANGED;
110+
localStorage.setItem(st, self.settings[st] = JSON.stringify({
111+
data: element[element.type === "checkbox" ? "checked" : "value"]
112+
}));
113+
}; })(st, element));
114+
128115
}
129116

130117
};
@@ -172,7 +159,7 @@ CacheClassExplorer.prototype.updateURL = function () {
172159
var obj = {
173160
name: this.classTree.SELECTED_NAME,
174161
type: this.classTree.SELECTED_TYPE,
175-
level: this.classTree.SELECTED_LEVEL,
162+
level: this.classTree.SELECTED_LEVEL
176163
};
177164

178165
if (this.NAMESPACE) obj["namespace"] = this.NAMESPACE;

0 commit comments

Comments
 (0)