Skip to content

Commit 9c7bcf6

Browse files
committed
Show component hierarchy.
1 parent 37c3ea0 commit 9c7bcf6

File tree

2 files changed

+13
-90
lines changed

2 files changed

+13
-90
lines changed

viewstate.html

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,23 @@
22
<html>
33
<head>
44
<meta charset="UTF-8">
5-
<!-- Copyright 2011-2013, Mike Shema <mike@deadliestwebattacks.com> -->
6-
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.9.0/build/fonts/fonts-min.css" />
7-
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.9.0/build/treeview/assets/skins/sam/treeview.css" />
8-
<script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js"></script>
9-
<script type="text/javascript" src="http://yui.yahooapis.com/2.9.0/build/treeview/treeview-min.js"></script>
10-
<script src="Editor.js"></script>
5+
<!--
6+
Copyright 2011-2013, Mike Shema <mike@deadliestwebattacks.com>
7+
Source code at https://github.com/mutantzombie/JavaScript-ViewState-Parser
8+
-->
9+
<script src="http://yui.yahooapis.com/3.14.1/build/yui/yui-min.js"></script>
10+
<!-- <script src="Editor.js"></script> -->
1111
<script src="Parser.js"></script>
1212
<script src="viewstate.js"></script>
1313
</head>
1414
<body>
15-
<form action="javascript:void(0)" onSubmit="deserialize(this.vs.value); return false;">
16-
<textarea name="vs" cols="80" rows="7"></textarea>
17-
<br><input type="submit"><input type="reset" onclick="c()">
15+
<form action="javascript:void(0)" onSubmit="return false;">
16+
<textarea id="vs" name="vs" cols="80" rows="7">/wEPDwUENTM4MWRkhsjF+62gWnhYUcEyuRwTHxGDVzA=</textarea>
17+
<div id="decode">Decode</div>
1818
</form>
19-
<pre>
2019
<div id="results"></div>
21-
<div id="expandcontractdiv"><a id="expand" href="#">Expand all</a>&nbsp;<a id="collapse" href="#">Collapse all</a></div>
20+
<pre>
2221
<div id="resultTree"></div>
2322
</pre>
24-
<script>
25-
//test2()
26-
</script>
2723
</body>
2824
</html>

viewstate.js

Lines changed: 3 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@ YUI().use('event', 'node', 'tree', function (Y) {
88
var div = Y.one('#resultTree'),
99
item = null,
1010
tree = new Y.Tree(),
11-
node = tree.rootNode;
11+
node = tree.rootNode,
12+
spaces = '....................';
1213

1314
data.forEach(function(d) {
1415
node.append({id: d.str()});
15-
item = Y.Node.create(d.str() + '<br>');
16+
item = Y.Node.create(spaces.substring(0, d.depth()) + ' ' + d.str() + '<br>');
1617
div.append(item);
1718
});
1819
// console.log(tree);
@@ -35,77 +36,3 @@ YUI().use('event', 'node', 'tree', function (Y) {
3536
Y.one('#decode').on('click', decode);
3637

3738
});
38-
39-
function c() {
40-
document.getElementById("results").innerHTML = "";
41-
}
42-
43-
function deserialize(o) {
44-
var e = document.getElementById("results");
45-
var s = "invalid";
46-
47-
if(!capabilityChecks()) {
48-
s = "browser does not support Typed Array Specification (http://www.khronos.org/registry/typedarray/specs/latest/)";
49-
}
50-
else if(undefined != o && "" !== o) {
51-
var vs = new ViewState(o);
52-
if(vs.isValid()) {
53-
vs.consume();
54-
var c = vs.components();
55-
populateTree(c);
56-
s = "";
57-
}
58-
}
59-
e.innerHTML = s;
60-
}
61-
62-
function populateTree(c) {
63-
var tree = new YAHOO.widget.TreeView("resultTree");
64-
var rootNode = tree.getRoot();
65-
66-
var node = rootNode;
67-
var parentNode = rootNode;
68-
var nodes = [];
69-
nodes[0] = rootNode;
70-
nodes[1] = rootNode;
71-
72-
var e = c[0];
73-
var prevDepth = 0;
74-
var i = 0;
75-
while(i < c.length) {
76-
e = c[i];
77-
78-
if(e.depth() > prevDepth) {
79-
parentNode = nodes[prevDepth];
80-
}
81-
else if(e.depth() < prevDepth) {
82-
if(undefined == nodes[e.depth()])
83-
nodes[e.depth()] = rootNode;
84-
85-
parentNode = nodes[e.depth()].parent;
86-
}
87-
88-
if(undefined == parentNode)
89-
parentNode = rootNode;
90-
91-
node = new YAHOO.widget.TextNode(e.str(), parentNode, false);
92-
93-
nodes[e.depth()] = node;
94-
prevDepth = e.depth();
95-
++i;
96-
}
97-
98-
YAHOO.util.Event.on("expand", "click", function(e) {
99-
YAHOO.log("Expanding all TreeView nodes.", "info", "example");
100-
tree.expandAll();
101-
YAHOO.util.Event.preventDefault(e);
102-
});
103-
104-
YAHOO.util.Event.on("collapse", "click", function(e) {
105-
YAHOO.log("Collapsing all TreeView nodes.", "info", "example");
106-
tree.collapseAll();
107-
YAHOO.util.Event.preventDefault(e);
108-
});
109-
110-
tree.draw();
111-
}

0 commit comments

Comments
 (0)