1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove list-style: none;
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove #log { margin-top: 1em; }
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove height: 200px;
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove margin-top: 1em;
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove #photos img {
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove margin-right: 10px;
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove max-height: 200px;
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove <li><label><input type="checkbox" id="asparagus">Asparagus</label></li>
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove <li><label><input type="checkbox" id="bluebird">Bluebird</label></li>
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove <li><label><input type="checkbox" id="coffee">Coffee</label></li>
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grovevar Y = YUI({
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove filter: 'raw',
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove history: 'debug'
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove useBrowserConsole: false
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove}).use('console', 'event-delegate', 'history-html5', 'json-stringify', function (Y) {
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove new Y.Console().render('#log');
b316fbcaa55eb30af0758001d1c09fb979710671Ryan Grove var history = new Y.HistoryHTML5({enableSessionFallback: true}),
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove bookmarked = history.get(),
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove asparagus: 'http://farm5.static.flickr.com/4005/4686935131_253e921bf7_m.jpg', // http://www.flickr.com/photos/allenr/4686935131/
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove bluebird : 'http://farm1.static.flickr.com/26/66307916_811efccdfc_m.jpg', // http://www.flickr.com/photos/allenr/66307916/
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove coffee : 'http://farm4.static.flickr.com/3336/4638474362_093edb7565_m.jpg' // http://www.flickr.com/photos/allenr/4638474362/
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove menuNode = Y.one('#menu'),
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove photosNode = Y.one('#photos');
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove function refresh(state) {
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove menuNode.all('input[type="checkbox"]').set('checked', false);
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove Y.Object.each(state, function (value, key) {
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove if (Y.Object.owns(images, key)) {
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove var img = new Image();
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove img.src = images[key];
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove menuNode.one('#' + key).set('checked', true);
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove Y.on('history:change', function (e) {
d7da83936765176d7b96362d930f5ee3577ff4a2Ryan Grove menuNode.delegate('click', function (e) {
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove history.addValue(node.get('id'), node.get('checked') ? '1' : null);
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove }, 'input');
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove // Refresh with the bookmarked state, if any.
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove Y.log('Bookmarked state: ' + Y.JSON.stringify(bookmarked));
8cd254d0dce086b53ca23716e564309f8da89eddRyan Grove refresh(bookmarked);