utopia 2.5.5 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -2
  3. data/Gemfile +1 -0
  4. data/Rakefile +2 -0
  5. data/docs/code/Utopia.html +439 -433
  6. data/docs/code/Utopia/Command.html +201 -195
  7. data/docs/code/Utopia/Command/Environment.html +244 -244
  8. data/docs/code/Utopia/Command/Server.html +202 -202
  9. data/docs/code/Utopia/Command/Server/Create.html +192 -192
  10. data/docs/code/Utopia/Command/Server/Update.html +235 -235
  11. data/docs/code/Utopia/Command/Site.html +269 -263
  12. data/docs/code/Utopia/Command/Site/Create.html +192 -192
  13. data/docs/code/Utopia/Command/Site/Update.html +246 -246
  14. data/docs/code/Utopia/Command/Top.html +244 -244
  15. data/docs/code/Utopia/Content.html +636 -630
  16. data/docs/code/Utopia/Content/Document.html +1411 -1407
  17. data/docs/code/Utopia/Content/Document/State.html +1048 -1048
  18. data/docs/code/Utopia/Content/Link.html +1023 -1023
  19. data/docs/code/Utopia/Content/Links.html +629 -623
  20. data/docs/code/Utopia/Content/MarkupParser.html +702 -702
  21. data/docs/code/Utopia/Content/MarkupParser/ParsedTag.html +375 -375
  22. data/docs/code/Utopia/Content/MarkupParser/UnbalancedTagError.html +523 -523
  23. data/docs/code/Utopia/Content/Namespace.html +416 -416
  24. data/docs/code/Utopia/Content/Node.html +952 -952
  25. data/docs/code/Utopia/Content/Node/Context.html +790 -790
  26. data/docs/code/Utopia/Content/Response.html +686 -686
  27. data/docs/code/Utopia/Content/SymbolicHash.html +365 -365
  28. data/docs/code/Utopia/Content/Tags.html +134 -134
  29. data/docs/code/Utopia/Content/UnbalancedTagError.html +270 -270
  30. data/docs/code/Utopia/ContentLength.html +298 -294
  31. data/docs/code/Utopia/Controller.html +657 -651
  32. data/docs/code/Utopia/Controller/Actions.html +260 -260
  33. data/docs/code/Utopia/Controller/Actions/Action.html +785 -779
  34. data/docs/code/Utopia/Controller/Actions/ClassMethods.html +360 -360
  35. data/docs/code/Utopia/Controller/Base.html +989 -989
  36. data/docs/code/Utopia/Controller/Respond.html +264 -254
  37. data/docs/code/Utopia/Controller/Respond/ClassMethods.html +207 -207
  38. data/docs/code/Utopia/Controller/Respond/Converter.html +219 -219
  39. data/docs/code/Utopia/Controller/Respond/Converter/Callback.html +425 -425
  40. data/docs/code/Utopia/Controller/Respond/Converter/ToJSON.html +323 -317
  41. data/docs/code/Utopia/Controller/Respond/Passthrough.html +266 -260
  42. data/docs/code/Utopia/Controller/Respond/Responder.html +449 -443
  43. data/docs/code/Utopia/Controller/Rewrite.html +260 -260
  44. data/docs/code/Utopia/Controller/Rewrite/ClassMethods.html +216 -216
  45. data/docs/code/Utopia/Controller/Rewrite/ExtractPrefixRule.html +303 -303
  46. data/docs/code/Utopia/Controller/Rewrite/Rewriter.html +402 -402
  47. data/docs/code/Utopia/Controller/Rewrite/Rule.html +193 -193
  48. data/docs/code/Utopia/Controller/Variables.html +428 -428
  49. data/docs/code/Utopia/Controllers.html +216 -216
  50. data/docs/code/Utopia/Exceptions.html +125 -125
  51. data/docs/code/Utopia/Exceptions/Handler.html +405 -405
  52. data/docs/code/Utopia/Exceptions/Mailer.html +400 -394
  53. data/docs/code/Utopia/Extensions.html +116 -116
  54. data/docs/code/Utopia/Extensions/ArraySplit.html +164 -164
  55. data/docs/code/Utopia/Extensions/DateTimeComparison.html +173 -173
  56. data/docs/code/Utopia/Extensions/TimeDateComparison.html +173 -173
  57. data/docs/code/Utopia/HTTP.html +193 -187
  58. data/docs/code/Utopia/HTTP/Status.html +355 -355
  59. data/docs/code/Utopia/Locale.html +522 -522
  60. data/docs/code/Utopia/Localization.html +886 -880
  61. data/docs/code/Utopia/Localization/Wrapper.html +403 -403
  62. data/docs/code/Utopia/Logger.html +185 -185
  63. data/docs/code/Utopia/Logger/CompactFormatter.html +290 -290
  64. data/docs/code/Utopia/Path.html +2562 -2556
  65. data/docs/code/Utopia/Path/Matcher.html +395 -395
  66. data/docs/code/Utopia/Path/Matcher/MatchData.html +418 -418
  67. data/docs/code/Utopia/Redirection.html +148 -142
  68. data/docs/code/Utopia/Redirection/ClientRedirect.html +594 -594
  69. data/docs/code/Utopia/Redirection/DirectoryIndex.html +265 -265
  70. data/docs/code/Utopia/Redirection/Errors.html +391 -385
  71. data/docs/code/Utopia/Redirection/Moved.html +265 -265
  72. data/docs/code/Utopia/Redirection/RequestFailure.html +201 -201
  73. data/docs/code/Utopia/Redirection/Rewrite.html +265 -265
  74. data/docs/code/Utopia/Session.html +723 -717
  75. data/docs/code/Utopia/Session/LazyHash.html +709 -709
  76. data/docs/code/Utopia/Setup.html +783 -777
  77. data/docs/code/Utopia/Static.html +516 -510
  78. data/docs/code/Utopia/Static/LocalFile.html +875 -869
  79. data/docs/code/Utopia/Static/MimeTypeLoader.html +427 -427
  80. data/docs/code/Utopia/Static/MimeTypeLoader/ExpansionError.html +123 -123
  81. data/docs/code/_index.html +757 -757
  82. data/docs/code/class_list.html +51 -51
  83. data/docs/code/css/full_list.css +58 -58
  84. data/docs/code/css/style.css +496 -499
  85. data/docs/code/file.README.html +72 -70
  86. data/docs/code/file_list.html +56 -56
  87. data/docs/code/frames.html +17 -17
  88. data/docs/code/index.html +72 -70
  89. data/docs/code/js/app.js +292 -248
  90. data/docs/code/js/full_list.js +216 -216
  91. data/docs/code/js/jquery.js +3 -3
  92. data/docs/code/method_list.html +3443 -3443
  93. data/docs/code/top-level-namespace.html +109 -109
  94. data/docs/index.html +2 -2
  95. data/docs/wiki.html +2 -2
  96. data/docs/wiki/edit.html +1 -1
  97. data/docs/wiki/javascript.html +153 -0
  98. data/docs/wiki/javascript/index.html +153 -0
  99. data/documentation/.yarnrc +1 -0
  100. data/documentation/Gemfile +1 -0
  101. data/documentation/config/environment.rb +1 -0
  102. data/documentation/pages/wiki/content.md +1 -1
  103. data/documentation/pages/wiki/javascript/content.md +75 -0
  104. data/documentation/pages/wiki/links.yaml +3 -1
  105. data/lib/utopia/command/site.rb +4 -4
  106. data/lib/utopia/version.rb +1 -1
  107. data/setup/site/.yarnrc +1 -0
  108. data/setup/site/tasks/yarn.rake +32 -0
  109. data/spec/utopia/command_spec.rb +2 -2
  110. metadata +8 -9
  111. data/docs/wiki/bower-integration.html +0 -74
  112. data/docs/wiki/bower-integration/index.html +0 -74
  113. data/documentation/.bowerrc +0 -4
  114. data/documentation/pages/wiki/bower-integration/content.md +0 -25
  115. data/setup/.bowerrc +0 -3
  116. data/setup/site/.bowerrc +0 -4
  117. data/setup/site/tasks/bower.rake +0 -45
data/docs/code/js/app.js CHANGED
@@ -1,248 +1,292 @@
1
- (function() {
2
-
3
- var localStorage = {}, sessionStorage = {};
4
- try { localStorage = window.localStorage; } catch (e) { }
5
- try { sessionStorage = window.sessionStorage; } catch (e) { }
6
-
7
- function createSourceLinks() {
8
- $('.method_details_list .source_code').
9
- before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
10
- $('.toggleSource').toggle(function() {
11
- $(this).parent().nextAll('.source_code').slideDown(100);
12
- $(this).text("Hide source");
13
- },
14
- function() {
15
- $(this).parent().nextAll('.source_code').slideUp(100);
16
- $(this).text("View source");
17
- });
18
- }
19
-
20
- function createDefineLinks() {
21
- var tHeight = 0;
22
- $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
23
- $('.toggleDefines').toggle(function() {
24
- tHeight = $(this).parent().prev().height();
25
- $(this).prev().css('display', 'inline');
26
- $(this).parent().prev().height($(this).parent().height());
27
- $(this).text("(less)");
28
- },
29
- function() {
30
- $(this).prev().hide();
31
- $(this).parent().prev().height(tHeight);
32
- $(this).text("more...");
33
- });
34
- }
35
-
36
- function createFullTreeLinks() {
37
- var tHeight = 0;
38
- $('.inheritanceTree').toggle(function() {
39
- tHeight = $(this).parent().prev().height();
40
- $(this).parent().toggleClass('showAll');
41
- $(this).text("(hide)");
42
- $(this).parent().prev().height($(this).parent().height());
43
- },
44
- function() {
45
- $(this).parent().toggleClass('showAll');
46
- $(this).parent().prev().height(tHeight);
47
- $(this).text("show all");
48
- });
49
- }
50
-
51
- function searchFrameButtons() {
52
- $('.full_list_link').click(function() {
53
- toggleSearchFrame(this, $(this).attr('href'));
54
- return false;
55
- });
56
- window.addEventListener('message', function(e) {
57
- if (e.data === 'navEscape') {
58
- $('#nav').slideUp(100);
59
- $('#search a').removeClass('active inactive');
60
- $(window).focus();
61
- }
62
- });
63
-
64
- $(window).resize(function() {
65
- if ($('#search:visible').length === 0) {
66
- $('#nav').removeAttr('style');
67
- $('#search a').removeClass('active inactive');
68
- $(window).focus();
69
- }
70
- });
71
- }
72
-
73
- function toggleSearchFrame(id, link) {
74
- var frame = $('#nav');
75
- $('#search a').removeClass('active').addClass('inactive');
76
- if (frame.attr('src') === link && frame.css('display') !== "none") {
77
- frame.slideUp(100);
78
- $('#search a').removeClass('active inactive');
79
- }
80
- else {
81
- $(id).addClass('active').removeClass('inactive');
82
- if (frame.attr('src') !== link) frame.attr('src', link);
83
- frame.slideDown(100);
84
- }
85
- }
86
-
87
- function linkSummaries() {
88
- $('.summary_signature').click(function() {
89
- document.location = $(this).find('a').attr('href');
90
- });
91
- }
92
-
93
- function summaryToggle() {
94
- $('.summary_toggle').click(function(e) {
95
- e.preventDefault();
96
- localStorage.summaryCollapsed = $(this).text();
97
- $('.summary_toggle').each(function() {
98
- $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
99
- var next = $(this).parent().parent().nextAll('ul.summary').first();
100
- if (next.hasClass('compact')) {
101
- next.toggle();
102
- next.nextAll('ul.summary').first().toggle();
103
- }
104
- else if (next.hasClass('summary')) {
105
- var list = $('<ul class="summary compact" />');
106
- list.html(next.html());
107
- list.find('.summary_desc, .note').remove();
108
- list.find('a').each(function() {
109
- $(this).html($(this).find('strong').html());
110
- $(this).parent().html($(this)[0].outerHTML);
111
- });
112
- next.before(list);
113
- next.toggle();
114
- }
115
- });
116
- return false;
117
- });
118
- if (localStorage.summaryCollapsed == "collapse") {
119
- $('.summary_toggle').first().click();
120
- } else { localStorage.summaryCollapsed = "expand"; }
121
- }
122
-
123
- function generateTOC() {
124
- if ($('#filecontents').length === 0) return;
125
- var _toc = $('<ol class="top"></ol>');
126
- var show = false;
127
- var toc = _toc;
128
- var counter = 0;
129
- var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
130
- var i;
131
- if ($('#filecontents h1').length > 1) tags.unshift('h1');
132
- for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
133
- var lastTag = parseInt(tags[0][1], 10);
134
- $(tags.join(', ')).each(function() {
135
- if ($(this).parents('.method_details .docstring').length != 0) return;
136
- if (this.id == "filecontents") return;
137
- show = true;
138
- var thisTag = parseInt(this.tagName[1], 10);
139
- if (this.id.length === 0) {
140
- var proposedId = $(this).attr('toc-id');
141
- if (typeof(proposedId) != "undefined") this.id = proposedId;
142
- else {
143
- var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
144
- if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
145
- this.id = proposedId;
146
- }
147
- }
148
- if (thisTag > lastTag) {
149
- for (i = 0; i < thisTag - lastTag; i++) {
150
- var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
151
- }
152
- }
153
- if (thisTag < lastTag) {
154
- for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
155
- }
156
- var title = $(this).attr('toc-title');
157
- if (typeof(title) == "undefined") title = $(this).text();
158
- toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
159
- lastTag = thisTag;
160
- });
161
- if (!show) return;
162
- html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></p></div>';
163
- $('#content').prepend(html);
164
- $('#toc').append(_toc);
165
- $('#toc .hide_toc').toggle(function() {
166
- $('#toc .top').slideUp('fast');
167
- $('#toc').toggleClass('hidden');
168
- $('#toc .title small').toggle();
169
- }, function() {
170
- $('#toc .top').slideDown('fast');
171
- $('#toc').toggleClass('hidden');
172
- $('#toc .title small').toggle();
173
- });
174
- }
175
-
176
- function navResizeFn(e) {
177
- if (e.which !== 1) {
178
- navResizeFnStop();
179
- return;
180
- }
181
-
182
- sessionStorage.navWidth = e.pageX.toString();
183
- $('.nav_wrap').css('width', e.pageX);
184
- $('.nav_wrap').css('-ms-flex', 'inherit');
185
- }
186
-
187
- function navResizeFnStop() {
188
- $(window).unbind('mousemove', navResizeFn);
189
- window.removeEventListener('message', navMessageFn, false);
190
- }
191
-
192
- function navMessageFn(e) {
193
- if (e.data.action === 'mousemove') navResizeFn(e.data.event);
194
- if (e.data.action === 'mouseup') navResizeFnStop();
195
- }
196
-
197
- function navResizer() {
198
- $('#resizer').mousedown(function(e) {
199
- e.preventDefault();
200
- $(window).mousemove(navResizeFn);
201
- window.addEventListener('message', navMessageFn, false);
202
- });
203
- $(window).mouseup(navResizeFnStop);
204
-
205
- if (sessionStorage.navWidth) {
206
- navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
207
- }
208
- }
209
-
210
- function navExpander() {
211
- var done = false, timer = setTimeout(postMessage, 500);
212
- function postMessage() {
213
- if (done) return;
214
- clearTimeout(timer);
215
- var opts = { action: 'expand', path: pathId };
216
- document.getElementById('nav').contentWindow.postMessage(opts, '*');
217
- done = true;
218
- }
219
-
220
- window.addEventListener('message', function(event) {
221
- if (event.data === 'navReady') postMessage();
222
- return false;
223
- }, false);
224
- }
225
-
226
- function mainFocus() {
227
- var hash = window.location.hash;
228
- if (hash !== '' && $(hash)[0]) {
229
- $(hash)[0].scrollIntoView();
230
- }
231
-
232
- setTimeout(function() { $('#main').focus(); }, 10);
233
- }
234
-
235
- $(document).ready(function() {
236
- navResizer();
237
- navExpander();
238
- createSourceLinks();
239
- createDefineLinks();
240
- createFullTreeLinks();
241
- searchFrameButtons();
242
- linkSummaries();
243
- summaryToggle();
244
- generateTOC();
245
- mainFocus();
246
- });
247
-
248
- })();
1
+ (function() {
2
+
3
+ var localStorage = {}, sessionStorage = {};
4
+ try { localStorage = window.localStorage; } catch (e) { }
5
+ try { sessionStorage = window.sessionStorage; } catch (e) { }
6
+
7
+ function createSourceLinks() {
8
+ $('.method_details_list .source_code').
9
+ before("<span class='showSource'>[<a href='#' class='toggleSource'>View source</a>]</span>");
10
+ $('.toggleSource').toggle(function() {
11
+ $(this).parent().nextAll('.source_code').slideDown(100);
12
+ $(this).text("Hide source");
13
+ },
14
+ function() {
15
+ $(this).parent().nextAll('.source_code').slideUp(100);
16
+ $(this).text("View source");
17
+ });
18
+ }
19
+
20
+ function createDefineLinks() {
21
+ var tHeight = 0;
22
+ $('.defines').after(" <a href='#' class='toggleDefines'>more...</a>");
23
+ $('.toggleDefines').toggle(function() {
24
+ tHeight = $(this).parent().prev().height();
25
+ $(this).prev().css('display', 'inline');
26
+ $(this).parent().prev().height($(this).parent().height());
27
+ $(this).text("(less)");
28
+ },
29
+ function() {
30
+ $(this).prev().hide();
31
+ $(this).parent().prev().height(tHeight);
32
+ $(this).text("more...");
33
+ });
34
+ }
35
+
36
+ function createFullTreeLinks() {
37
+ var tHeight = 0;
38
+ $('.inheritanceTree').toggle(function() {
39
+ tHeight = $(this).parent().prev().height();
40
+ $(this).parent().toggleClass('showAll');
41
+ $(this).text("(hide)");
42
+ $(this).parent().prev().height($(this).parent().height());
43
+ },
44
+ function() {
45
+ $(this).parent().toggleClass('showAll');
46
+ $(this).parent().prev().height(tHeight);
47
+ $(this).text("show all");
48
+ });
49
+ }
50
+
51
+ function searchFrameButtons() {
52
+ $('.full_list_link').click(function() {
53
+ toggleSearchFrame(this, $(this).attr('href'));
54
+ return false;
55
+ });
56
+ window.addEventListener('message', function(e) {
57
+ if (e.data === 'navEscape') {
58
+ $('#nav').slideUp(100);
59
+ $('#search a').removeClass('active inactive');
60
+ $(window).focus();
61
+ }
62
+ });
63
+
64
+ $(window).resize(function() {
65
+ if ($('#search:visible').length === 0) {
66
+ $('#nav').removeAttr('style');
67
+ $('#search a').removeClass('active inactive');
68
+ $(window).focus();
69
+ }
70
+ });
71
+ }
72
+
73
+ function toggleSearchFrame(id, link) {
74
+ var frame = $('#nav');
75
+ $('#search a').removeClass('active').addClass('inactive');
76
+ if (frame.attr('src') === link && frame.css('display') !== "none") {
77
+ frame.slideUp(100);
78
+ $('#search a').removeClass('active inactive');
79
+ }
80
+ else {
81
+ $(id).addClass('active').removeClass('inactive');
82
+ if (frame.attr('src') !== link) frame.attr('src', link);
83
+ frame.slideDown(100);
84
+ }
85
+ }
86
+
87
+ function linkSummaries() {
88
+ $('.summary_signature').click(function() {
89
+ document.location = $(this).find('a').attr('href');
90
+ });
91
+ }
92
+
93
+ function summaryToggle() {
94
+ $('.summary_toggle').click(function(e) {
95
+ e.preventDefault();
96
+ localStorage.summaryCollapsed = $(this).text();
97
+ $('.summary_toggle').each(function() {
98
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
99
+ var next = $(this).parent().parent().nextAll('ul.summary').first();
100
+ if (next.hasClass('compact')) {
101
+ next.toggle();
102
+ next.nextAll('ul.summary').first().toggle();
103
+ }
104
+ else if (next.hasClass('summary')) {
105
+ var list = $('<ul class="summary compact" />');
106
+ list.html(next.html());
107
+ list.find('.summary_desc, .note').remove();
108
+ list.find('a').each(function() {
109
+ $(this).html($(this).find('strong').html());
110
+ $(this).parent().html($(this)[0].outerHTML);
111
+ });
112
+ next.before(list);
113
+ next.toggle();
114
+ }
115
+ });
116
+ return false;
117
+ });
118
+ if (localStorage.summaryCollapsed == "collapse") {
119
+ $('.summary_toggle').first().click();
120
+ } else { localStorage.summaryCollapsed = "expand"; }
121
+ }
122
+
123
+ function constantSummaryToggle() {
124
+ $('.constants_summary_toggle').click(function(e) {
125
+ e.preventDefault();
126
+ localStorage.summaryCollapsed = $(this).text();
127
+ $('.constants_summary_toggle').each(function() {
128
+ $(this).text($(this).text() == "collapse" ? "expand" : "collapse");
129
+ var next = $(this).parent().parent().nextAll('dl.constants').first();
130
+ if (next.hasClass('compact')) {
131
+ next.toggle();
132
+ next.nextAll('dl.constants').first().toggle();
133
+ }
134
+ else if (next.hasClass('constants')) {
135
+ var list = $('<dl class="constants compact" />');
136
+ list.html(next.html());
137
+ list.find('dt').each(function() {
138
+ $(this).addClass('summary_signature');
139
+ $(this).text( $(this).text().split('=')[0]);
140
+ if ($(this).has(".deprecated").length) {
141
+ $(this).addClass('deprecated');
142
+ };
143
+ });
144
+ // Add the value of the constant as "Tooltip" to the summary object
145
+ list.find('pre.code').each(function() {
146
+ console.log($(this).parent());
147
+ var dt_element = $(this).parent().prev();
148
+ var tooltip = $(this).text();
149
+ if (dt_element.hasClass("deprecated")) {
150
+ tooltip = 'Deprecated. ' + tooltip;
151
+ };
152
+ dt_element.attr('title', tooltip);
153
+ });
154
+ list.find('.docstring, .tags, dd').remove();
155
+ next.before(list);
156
+ next.toggle();
157
+ }
158
+ });
159
+ return false;
160
+ });
161
+ if (localStorage.summaryCollapsed == "collapse") {
162
+ $('.constants_summary_toggle').first().click();
163
+ } else { localStorage.summaryCollapsed = "expand"; }
164
+ }
165
+
166
+ function generateTOC() {
167
+ if ($('#filecontents').length === 0) return;
168
+ var _toc = $('<ol class="top"></ol>');
169
+ var show = false;
170
+ var toc = _toc;
171
+ var counter = 0;
172
+ var tags = ['h2', 'h3', 'h4', 'h5', 'h6'];
173
+ var i;
174
+ if ($('#filecontents h1').length > 1) tags.unshift('h1');
175
+ for (i = 0; i < tags.length; i++) { tags[i] = '#filecontents ' + tags[i]; }
176
+ var lastTag = parseInt(tags[0][1], 10);
177
+ $(tags.join(', ')).each(function() {
178
+ if ($(this).parents('.method_details .docstring').length != 0) return;
179
+ if (this.id == "filecontents") return;
180
+ show = true;
181
+ var thisTag = parseInt(this.tagName[1], 10);
182
+ if (this.id.length === 0) {
183
+ var proposedId = $(this).attr('toc-id');
184
+ if (typeof(proposedId) != "undefined") this.id = proposedId;
185
+ else {
186
+ var proposedId = $(this).text().replace(/[^a-z0-9-]/ig, '_');
187
+ if ($('#' + proposedId).length > 0) { proposedId += counter; counter++; }
188
+ this.id = proposedId;
189
+ }
190
+ }
191
+ if (thisTag > lastTag) {
192
+ for (i = 0; i < thisTag - lastTag; i++) {
193
+ var tmp = $('<ol/>'); toc.append(tmp); toc = tmp;
194
+ }
195
+ }
196
+ if (thisTag < lastTag) {
197
+ for (i = 0; i < lastTag - thisTag; i++) toc = toc.parent();
198
+ }
199
+ var title = $(this).attr('toc-title');
200
+ if (typeof(title) == "undefined") title = $(this).text();
201
+ toc.append('<li><a href="#' + this.id + '">' + title + '</a></li>');
202
+ lastTag = thisTag;
203
+ });
204
+ if (!show) return;
205
+ html = '<div id="toc"><p class="title hide_toc"><a href="#"><strong>Table of Contents</strong></a></p></div>';
206
+ $('#content').prepend(html);
207
+ $('#toc').append(_toc);
208
+ $('#toc .hide_toc').toggle(function() {
209
+ $('#toc .top').slideUp('fast');
210
+ $('#toc').toggleClass('hidden');
211
+ $('#toc .title small').toggle();
212
+ }, function() {
213
+ $('#toc .top').slideDown('fast');
214
+ $('#toc').toggleClass('hidden');
215
+ $('#toc .title small').toggle();
216
+ });
217
+ }
218
+
219
+ function navResizeFn(e) {
220
+ if (e.which !== 1) {
221
+ navResizeFnStop();
222
+ return;
223
+ }
224
+
225
+ sessionStorage.navWidth = e.pageX.toString();
226
+ $('.nav_wrap').css('width', e.pageX);
227
+ $('.nav_wrap').css('-ms-flex', 'inherit');
228
+ }
229
+
230
+ function navResizeFnStop() {
231
+ $(window).unbind('mousemove', navResizeFn);
232
+ window.removeEventListener('message', navMessageFn, false);
233
+ }
234
+
235
+ function navMessageFn(e) {
236
+ if (e.data.action === 'mousemove') navResizeFn(e.data.event);
237
+ if (e.data.action === 'mouseup') navResizeFnStop();
238
+ }
239
+
240
+ function navResizer() {
241
+ $('#resizer').mousedown(function(e) {
242
+ e.preventDefault();
243
+ $(window).mousemove(navResizeFn);
244
+ window.addEventListener('message', navMessageFn, false);
245
+ });
246
+ $(window).mouseup(navResizeFnStop);
247
+
248
+ if (sessionStorage.navWidth) {
249
+ navResizeFn({which: 1, pageX: parseInt(sessionStorage.navWidth, 10)});
250
+ }
251
+ }
252
+
253
+ function navExpander() {
254
+ var done = false, timer = setTimeout(postMessage, 500);
255
+ function postMessage() {
256
+ if (done) return;
257
+ clearTimeout(timer);
258
+ var opts = { action: 'expand', path: pathId };
259
+ document.getElementById('nav').contentWindow.postMessage(opts, '*');
260
+ done = true;
261
+ }
262
+
263
+ window.addEventListener('message', function(event) {
264
+ if (event.data === 'navReady') postMessage();
265
+ return false;
266
+ }, false);
267
+ }
268
+
269
+ function mainFocus() {
270
+ var hash = window.location.hash;
271
+ if (hash !== '' && $(hash)[0]) {
272
+ $(hash)[0].scrollIntoView();
273
+ }
274
+
275
+ setTimeout(function() { $('#main').focus(); }, 10);
276
+ }
277
+
278
+ $(document).ready(function() {
279
+ navResizer();
280
+ navExpander();
281
+ createSourceLinks();
282
+ createDefineLinks();
283
+ createFullTreeLinks();
284
+ searchFrameButtons();
285
+ linkSummaries();
286
+ summaryToggle();
287
+ constantSummaryToggle();
288
+ generateTOC();
289
+ mainFocus();
290
+ });
291
+
292
+ })();