diff options
author | mikl <> | 2008-05-06 07:53:08 +0000 |
---|---|---|
committer | mikl <> | 2008-05-06 07:53:08 +0000 |
commit | dca8960e21273ed8100fa1fdaeab99ccf141a1f3 (patch) | |
tree | 0ae31ef7461dd60686d7e23dcb64ff68bb11ed14 /buildscripts/jGrouseDoc/skins/common/js/jgindex.js | |
parent | d48e9af1650df7cc17db5042c0b9dc1a3bcf213b (diff) |
Imported JS documentor jGrouseDoc-2.0
Diffstat (limited to 'buildscripts/jGrouseDoc/skins/common/js/jgindex.js')
-rw-r--r-- | buildscripts/jGrouseDoc/skins/common/js/jgindex.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/buildscripts/jGrouseDoc/skins/common/js/jgindex.js b/buildscripts/jGrouseDoc/skins/common/js/jgindex.js new file mode 100644 index 00000000..5a0bf2de --- /dev/null +++ b/buildscripts/jGrouseDoc/skins/common/js/jgindex.js @@ -0,0 +1,96 @@ +/**
+ * Script that builds jGrouseDoc Index Page
+ * Copyright (c) 2007 by Robert Kieffer and jGrouseDoc contributors
+ * $Id: jgindex.js 303 2007-12-24 22:52:30Z denis.riabtchik $
+ */
+
+var jgindex = {
+ load: function() {
+ // Sort data by localName
+ jgindex.data.sort(function(a,b) {
+ var c = (a.localName || a.fullName).toLowerCase();
+ var d = (b.localName || b.fullName).toLowerCase();
+ return c < d ? -1 : (c > d ? 1 : 0);
+ });
+
+ // Now render the index
+ jgindex.renderEntries();
+ },
+
+ renderEntries: function() {
+ var h = [];
+
+ // Use a DL, since this is the most semantically correct structure
+ h.push('<dl>');
+
+ // Hash to track which letters have entries
+ var letters = {};
+
+ // Loop through each entry
+ for (var i = 0; i < jgindex.data.length; i++) {
+ var entry = jgindex.data[i];
+
+ // Get name/url for the entry's namespace
+ var srcName = entry.parent;
+ var srcLink = entry.ref.replace(/#.*/, '');
+
+ // Apply odd/even classname (makes styling even/odd rows easy)
+ var cn = [(i % 2) ? 'odd' : 'even'];
+ cn.push(/^(class|interface|struct|object)/.test(entry.summary) ? 'is_namespace' : 'is_not_namespace');
+
+ // Get the entry's first letter
+ var ln = entry.localName || entry.fullName || '_unnamed';
+ var letter = ln.charAt(0).toUpperCase();
+
+ // ... and see if it's the first one for that letter
+ if (!letters[letter]) {
+ letters[letter] = true;
+ } else {
+ letter = null;
+ }
+
+ // ... and if it is, render the section header
+ if (letter) {
+ h.push('<h3 class="letter_section"><a name="' + letter + '">' + letter + '</a></h3>');
+ }
+
+ // Render the entry's HTML
+ cn = cn.join(' ');
+ h.push(
+ '<dt title="' + entry.summary + '" class="' + cn + '">' +
+ '<a href="' + entry.ref + '">' + ln + '</a>' +
+ '</dt>' +
+ '<dd class="' + cn + '">' +
+ '<a href="' + srcLink + '">' + srcName + '</a>' +
+ '</dd>'
+ );
+ }
+ h.push('</dl>');
+
+ // Stick it all into the element
+ document.getElementById('index').innerHTML = h.join('\n');
+
+ // Render the letters table-of-contents at the top
+ h = [];
+ var toc = '$_ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ for (var i = 0; i < toc.length; i++) {
+ var letter = toc.charAt(i);
+ h.push(letters[letter] ?
+ '<span class="has_entries"><a href="#' + letter + '">' + letter + '</a></span>' :
+ '<span class="no_entries">' + letter + '</span>'
+ );
+ }
+ document.getElementById('toc').innerHTML = h.join('\n');
+ }
+}
+
+
+// Hack so we can get access to the index data
+var jgdoc = {
+ Searcher: {
+ setData: function(data) {
+ jgindex.data = data;
+ jgindex.load();
+ }
+ }
+}
|