Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono-tools.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@gnome.org>2013-03-06 06:01:08 +0400
committerMiguel de Icaza <miguel@gnome.org>2013-03-06 06:01:08 +0400
commite1b75a976f8ae56c6777b57502099d0f1f79038c (patch)
treee7ac925f7d61a5719ac68f8b123b169b5a5128fc
parentdfcee14e96544554e5052cffd30dde74751b9b81 (diff)
parent5e63d145c2d4cea8a8ebe0a14fe0d6a54e095251 (diff)
Merge pull request #31 from kallisto/master
Webdoc Refresh 2013
-rw-r--r--webdoc/App_Code/Plugins/Plugin.cs144
-rw-r--r--webdoc/Changelog86
-rw-r--r--webdoc/Global.asax68
-rw-r--r--webdoc/Makefile.am206
-rw-r--r--webdoc/README.md48
-rw-r--r--webdoc/api.master39
-rw-r--r--webdoc/edit.aspx62
-rw-r--r--webdoc/fullsearch.js48
-rw-r--r--webdoc/header.html65
-rw-r--r--webdoc/index.aspx162
-rw-r--r--webdoc/index.html10
-rw-r--r--webdoc/login.aspx68
-rw-r--r--webdoc/logout.aspx12
-rw-r--r--webdoc/main.css165
-rw-r--r--webdoc/mono_logo_g.gifbin1655 -> 0 bytes
-rw-r--r--webdoc/monodoc.ashx245
-rwxr-xr-xwebdoc/monodoc.asmx210
-rw-r--r--webdoc/monodoc.css1
-rwxr-xr-xwebdoc/oldposts.xml3
-rw-r--r--webdoc/plugins.def13
-rw-r--r--webdoc/plugins/iframe-plugin/iframe.js3
-rw-r--r--webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js7
-rw-r--r--webdoc/plugins/search-plugin/fastsearch/fsearch.css45
-rw-r--r--webdoc/plugins/search-plugin/fastsearch/search.js (renamed from webdoc/search.js)17
-rw-r--r--webdoc/plugins/search-plugin/fullsearch/fullsearch.js40
-rw-r--r--webdoc/plugins/search-plugin/fullsearch/search.css (renamed from webdoc/search.css)0
-rw-r--r--webdoc/plugins/search-plugin/fullsearch/search.html (renamed from webdoc/search.html)10
-rw-r--r--webdoc/plugins/search-plugin/images/spinner.gif (renamed from webdoc/images/spinner.gif)bin3208 -> 3208 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/ptree/searching.gif (renamed from webdoc/images/searching.gif)bin551 -> 551 bytes
-rwxr-xr-xwebdoc/plugins/sidebar-plugin/dependencies/ptree/tree.css (renamed from webdoc/ptree/tree.css)24
-rwxr-xr-xwebdoc/plugins/sidebar-plugin/dependencies/ptree/tree.js (renamed from webdoc/ptree/tree.js)44
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/I.png (renamed from webdoc/xtree/images/I.png)bin148 -> 148 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/L.png (renamed from webdoc/xtree/images/L.png)bin153 -> 153 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png (renamed from webdoc/xtree/images/Lminus.png)bin219 -> 219 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png (renamed from webdoc/xtree/images/Lplus.png)bin224 -> 224 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/T.png (renamed from webdoc/xtree/images/T.png)bin152 -> 152 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png (renamed from webdoc/xtree/images/Tminus.png)bin207 -> 207 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png (renamed from webdoc/xtree/images/Tplus.png)bin222 -> 222 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/blank.png (renamed from webdoc/xtree/images/blank.png)bin144 -> 144 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/I.gif (renamed from webdoc/xtree/images/clean/I.gif)bin70 -> 70 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/L.gif (renamed from webdoc/xtree/images/clean/L.gif)bin62 -> 62 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lminus.gif (renamed from webdoc/xtree/images/clean/Lminus.gif)bin337 -> 337 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lplus.gif (renamed from webdoc/xtree/images/clean/Lplus.gif)bin333 -> 333 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/T.gif (renamed from webdoc/xtree/images/clean/T.gif)bin62 -> 62 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tminus.gif (renamed from webdoc/xtree/images/clean/Tminus.gif)bin337 -> 337 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tplus.gif (renamed from webdoc/xtree/images/clean/Tplus.gif)bin333 -> 333 bytes
-rwxr-xr-xwebdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/blank.gif (renamed from webdoc/xtree/images/clean/blank.gif)bin56 -> 56 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/file.png (renamed from webdoc/xtree/images/file.png)bin251 -> 251 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png (renamed from webdoc/xtree/images/foldericon.png)bin229 -> 229 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/I.gif (renamed from webdoc/xtree/images/msdn/I.gif)bin77 -> 77 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/L.gif (renamed from webdoc/xtree/images/msdn/L.gif)bin74 -> 74 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lminus.gif (renamed from webdoc/xtree/images/msdn/Lminus.gif)bin345 -> 345 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lplus.gif (renamed from webdoc/xtree/images/msdn/Lplus.gif)bin342 -> 342 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/T.gif (renamed from webdoc/xtree/images/msdn/T.gif)bin80 -> 80 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tminus.gif (renamed from webdoc/xtree/images/msdn/Tminus.gif)bin349 -> 349 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tplus.gif (renamed from webdoc/xtree/images/msdn/Tplus.gif)bin346 -> 346 bytes
-rwxr-xr-xwebdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/blank.gif (renamed from webdoc/xtree/images/msdn/blank.gif)bin56 -> 56 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_bar.gif (renamed from webdoc/xtree/images/msdn/menu_bar.gif)bin77 -> 77 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner.gif (renamed from webdoc/xtree/images/msdn/menu_corner.gif)bin74 -> 74 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_minus.gif (renamed from webdoc/xtree/images/msdn/menu_corner_minus.gif)bin345 -> 345 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_plus.gif (renamed from webdoc/xtree/images/msdn/menu_corner_plus.gif)bin342 -> 342 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee.gif (renamed from webdoc/xtree/images/msdn/menu_tee.gif)bin80 -> 80 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_minus.gif (renamed from webdoc/xtree/images/msdn/menu_tee_minus.gif)bin349 -> 349 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_plus.gif (renamed from webdoc/xtree/images/msdn/menu_tee_plus.gif)bin346 -> 346 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/I.gif (renamed from webdoc/xtree/images/msdn2/I.gif)bin97 -> 97 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/L.gif (renamed from webdoc/xtree/images/msdn2/L.gif)bin74 -> 74 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gifbin0 -> 1408 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gifbin0 -> 1405 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/T.gif (renamed from webdoc/xtree/images/msdn2/T.gif)bin80 -> 80 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gifbin0 -> 1412 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gifbin0 -> 1409 bytes
-rwxr-xr-xwebdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/blank.gif (renamed from webdoc/xtree/images/msdn2/blank.gif)bin56 -> 56 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png (renamed from webdoc/xtree/images/openfoldericon.png)bin232 -> 232 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/I.png (renamed from webdoc/xtree/images/xp/I.png)bin148 -> 148 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/L.png (renamed from webdoc/xtree/images/xp/L.png)bin153 -> 153 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lminus.png (renamed from webdoc/xtree/images/xp/Lminus.png)bin340 -> 340 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lplus.png (renamed from webdoc/xtree/images/xp/Lplus.png)bin348 -> 348 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/T.png (renamed from webdoc/xtree/images/xp/T.png)bin152 -> 152 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tminus.png (renamed from webdoc/xtree/images/xp/Tminus.png)bin341 -> 341 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tplus.png (renamed from webdoc/xtree/images/xp/Tplus.png)bin348 -> 348 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/file.png (renamed from webdoc/xtree/images/xp/file.png)bin377 -> 377 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/folder.png (renamed from webdoc/xtree/images/xp/folder.png)bin413 -> 413 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/openfolder.png (renamed from webdoc/xtree/images/xp/openfolder.png)bin474 -> 474 bytes
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/xloadtree.js (renamed from webdoc/xtree/xloadtree.js)0
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/xmlextras.js (renamed from webdoc/xtree/xmlextras.js)0
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.css (renamed from webdoc/xtree/xtree.css)10
-rw-r--r--webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.js (renamed from webdoc/xtree/xtree.js)36
-rw-r--r--webdoc/plugins/sidebar-plugin/make-tree.js35
-rw-r--r--webdoc/plugins/sidebar-plugin/sidebar.css (renamed from webdoc/sidebar.css)21
-rw-r--r--webdoc/plugins/sidebar-plugin/sidebar.js (renamed from webdoc/sidebar.js)0
-rw-r--r--webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js276
-rw-r--r--webdoc/robots.txt2
-rw-r--r--webdoc/server.asmx1
-rw-r--r--webdoc/server.cs366
-rw-r--r--webdoc/skins/mono-external/common-extension.css (renamed from webdoc/common.css)129
-rw-r--r--webdoc/skins/mono-external/footer.html1
-rw-r--r--webdoc/skins/mono-external/header.html13
-rw-r--r--webdoc/skins/mono-external/images/link.png (renamed from webdoc/images/link.png)bin1635 -> 1635 bytes
-rw-r--r--webdoc/skins/mono-external/images/mono-logo.png (renamed from webdoc/images/mono-logo.png)bin9916 -> 9916 bytes
-rw-r--r--webdoc/skins/mono-external/images/mono_logo_g.gif (renamed from webdoc/images/mono_logo_g.gif)bin1655 -> 1655 bytes
-rw-r--r--webdoc/skins/mono-external/images/native-browser-icon.png (renamed from webdoc/images/native-browser-icon.png)bin1736 -> 1736 bytes
-rw-r--r--webdoc/skins/mono-external/images/print.png (renamed from webdoc/images/print.png)bin2539 -> 2539 bytes
-rw-r--r--webdoc/skins/mono-external/images/slide-toggle.pngbin0 -> 3034 bytes
-rw-r--r--webdoc/skins/mono-external/images/spinner.gifbin0 -> 3208 bytes
-rw-r--r--webdoc/tables.sql21
-rw-r--r--webdoc/views/common.css38
-rw-r--r--webdoc/views/common.js46
-rw-r--r--webdoc/views/images/favicon.icobin0 -> 1406 bytes
-rw-r--r--webdoc/views/images/native-browser-icon.pngbin0 -> 1736 bytes
-rw-r--r--webdoc/views/reset.css49
-rw-r--r--webdoc/web.config17
-rw-r--r--webdoc/wiki2ecmahelper.xsl70
-rw-r--r--webdoc/xtree/images/msdn2/Lminus.gifbin345 -> 0 bytes
-rw-r--r--webdoc/xtree/images/msdn2/Lplus.gifbin342 -> 0 bytes
-rw-r--r--webdoc/xtree/images/msdn2/Tminus.gifbin349 -> 0 bytes
-rw-r--r--webdoc/xtree/images/msdn2/Tplus.gifbin346 -> 0 bytes
116 files changed, 1321 insertions, 1655 deletions
diff --git a/webdoc/App_Code/Plugins/Plugin.cs b/webdoc/App_Code/Plugins/Plugin.cs
new file mode 100644
index 00000000..93a37e41
--- /dev/null
+++ b/webdoc/App_Code/Plugins/Plugin.cs
@@ -0,0 +1,144 @@
+using System;
+using System.Web.Configuration;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace Mono.Website {
+ public class Plugin {
+
+ static string PluginsDefLocation = WebConfigurationManager.AppSettings["Plugins"];
+
+ public enum PluginContent {
+ Header,
+ Footer,
+ Css,
+ Javascript
+ }
+
+ //generates a list of files of a certain type in the plugins we are including,
+ //and spits out the necessary text to add to index.aspx
+ public static string GetPluginContent (PluginContent type)
+ {
+ var plugins_list_from_def = ParseExternalDefinition(PluginsDefLocation);
+ var paths_to_files = GetFilesTypeX(type, plugins_list_from_def);
+ return GetPluginContent (type, paths_to_files);
+ }
+
+ //Add the actual HTML to include either the reference or the content in index.aspx, for each plugin mentioned
+ //in the .def
+ static string GetPluginContent (PluginContent type, string[] paths_to_files)
+ {
+ if (type == PluginContent.Javascript) {
+ paths_to_files = Array.ConvertAll(paths_to_files, path =>
+ string.Format("{1}script type='text/javascript' src='{0}'{2}{1}/script{2}", path, '<', '>'));
+ //reverse the array so we get all our js dependencies correct :)
+ Array.Reverse(paths_to_files);
+ } else if (type == PluginContent.Css) {
+ paths_to_files = Array.ConvertAll(paths_to_files, path => string.Format("{1}link type='text/css' rel='stylesheet' media='screen' href='{0}'{2}", path, '<', '>'));
+ } else {
+ paths_to_files = Array.ConvertAll(paths_to_files, path => File.ReadAllText(path));
+ }
+
+ var content_to_inject = String.Join(String.Empty, paths_to_files);
+ return content_to_inject;
+ }
+
+ //returns files of a certain type from ALL directories.
+ static string[] GetFilesTypeX (PluginContent type, List<string> directories)
+ {
+ var all_typed_files = new List<string>();
+ foreach(var directory in directories) {
+ var files = GetFilesTypeX(type, directory);
+ all_typed_files.AddRange(files);
+ }
+ return all_typed_files.ToArray();
+ }
+
+ //grab files of type x from a directory
+ static List<string> GetFilesTypeX (PluginContent type, string directory)
+ {
+ try {
+ string criteria;
+ if(type == PluginContent.Javascript) {
+ criteria = "*.js";
+ } else if(type == PluginContent.Css) {
+ criteria = "*.css";
+ } else if(type == PluginContent.Footer) {
+ criteria = "footer.????";
+ } else if (type == PluginContent.Header) {
+ criteria = "header.????";
+ } else {
+ criteria = string.Empty;
+ }
+ var files_arr = GetFilesTypeX(directory, criteria);
+ List<string> files = new List<string>(files_arr);
+
+ var external = Directory.GetFiles(directory, "external.def");
+ if (external.Any()) {
+ try {
+ if (type == PluginContent.Css) {
+ files.AddRange(ParseExternalDefinition(external[0], ".css"));
+ } else if (type == PluginContent.Javascript) {
+ files.AddRange(ParseExternalDefinition(external[0], ".js"));
+ } else {
+ }
+ } catch (Exception ex) {
+ throw ex;
+ }
+ }
+ return files;
+ } catch (Exception ex) {
+ throw ex;
+ }
+ }
+
+ //recursively browse directories for files with a certain extension or file name
+ static List<string> GetFilesTypeX (string directory, string criteria)
+ {
+ try {
+ var filesFound = new List<string>();
+ foreach (string file in Directory.GetFiles(directory, criteria)) {
+ filesFound.Add(file);
+ }
+ foreach (string dir in Directory.GetDirectories(directory)) {
+ filesFound.AddRange(GetFilesTypeX(dir, criteria));
+ }
+ return filesFound;
+ } catch (Exception ex) {
+ throw ex;
+ }
+ }
+
+ static List<string> ParseExternalDefinition (string definitionPath, string criteria)
+ {
+ //if definitionPath is undefined, or def file does not exist, don't bother
+ if (string.IsNullOrEmpty (definitionPath) || !File.Exists (definitionPath))
+ return null;
+ // read out the file
+ var lines = File.ReadAllLines (definitionPath);
+ //build our list
+ var files = lines.Where (line => !string.IsNullOrEmpty (line) && line[0] != '#') // Take non-empty, non-comment lines
+ .Where (file_path => file_path != null && file_path.Length > 2 && file_path.EndsWith(criteria))
+ .ToList ();
+ //returns a list of directories in which to look for plugin resources
+ return files;
+ }
+
+ //eats whatever .def file you feed it
+ static List<string> ParseExternalDefinition (string definitionPath)
+ {
+ //if definitionPath is undefined, or def file does not exist, don't bother
+ if (string.IsNullOrEmpty (definitionPath) || !File.Exists (definitionPath))
+ return null;
+ // read out the file
+ var lines = File.ReadAllLines (definitionPath);
+ //build our list
+ var directories = lines.Where (line => !string.IsNullOrEmpty (line) && line[0] != '#') // Take non-empty, non-comment lines
+ .Where (file_path => file_path != null && file_path.Length > 2)
+ .ToList ();
+ //returns a list of directories in which to look for plugin resources
+ return directories;
+ }
+ }
+}
diff --git a/webdoc/Changelog b/webdoc/Changelog
deleted file mode 100644
index f9e0a4b2..00000000
--- a/webdoc/Changelog
+++ /dev/null
@@ -1,86 +0,0 @@
-2009-09-25 Jonathan Pryor <jpryor@novell.com>
-
- * Global.asax: Move the monodoc.ashx RootTree configuration here.
- * monodoc.ashx: Remove MonodocHandler.help_tree and use
- Global.help_tree instead. This is necessary because of an ordering
- issue: after starting the server, whether you get CSS or not depends
- on the *first* URL you get. If you visit monodoc.ashx first, you'll
- get CSS support (which is the case if you just hit
- http://localhost:8080 w/ xsp and navigate normally). If you instead
- visit a URL directly, e.g.
- http://localhost:8080/index.aspx?link=T:Mono.Options.OptionSet/*
- then you'll invoke index.aspx first, and since index.aspx was using
- Global.help_tree (which didn't enable CSS output), you'd get !CSS
- pages generated.
-
- The perils of avoiding SPOT.
-
-2009-09-25 Jonathan Pryor <jpryor@novell.com>
-
- * monodoc.ashx: Remove tlink support (because tlinks keep potentially
- changing every time we restart mod-mono-server), and instead rely on
- just the existing link support, and use node.PublicUrl instead of
- node.URL. (Relying on n.tree.HelpSource.SourceID is a broken design.)
-
-2009-06-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
-
- * web.config: disable batch compilation to allow the application to
- work even if edits are not possible.
-
-2009-06-08 Jonathan Pryor <jpryor@novell.com>
-
- * Makefile.am (dist-hook): Copy everything in $(web_DATA) to
- $(distdir) (otherwise we'll miss some files).
-
-2008-10-29 Jonathan Pryor <jpryor@novell.com>
-
- * monodoc.ashx: Set HelpSource.UseWebdocCache=true so that we use the
- 'mdoc export-html-webdoc' pre-rendered HTML cache (if present).
- Greatly speeds some pages up.
-
-2008-10-29 Jonathan Pryor <jpryor@novell.com>
-
- * Makefile.am: Get `make dist`, `make install` working... We install
- to $prefix/lib/monodoc/web, which is where Debian's monodoc-http
- package places things...
-
-2008-10-28 Jonathan Pryor <jpryor@novell.com>
-
- * . (svn:ignore): Ignore generated files.
- * common.css: Fix the .code class, lest it make the C# Language Spec
- examples unreadable. (Really, *really*, unreadable.)
- * Makefile.am: Deal with change to mono-tools/webdoc directory...
- * monodoc.ashx: Grab CSS & JavaScript code from the node's
- HelpSource, thus allowing the HelpSource to customize output.
-
-2006-11-19 Miguel de Icaza <miguel@novell.com>
-
- * monodoc.ashx: Do not rewrite target urls that start with '#'
- as those are links inside the current page.
-
-2005-02-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * monodoc.ashx: fixed nullrefs for the 'Various' node.
-
-2003-11-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
-
- * ptree/tree.js: make mouse selection lose the focus when ENTER is
- pressed.
-
-2003-10-14 John Luke <jluke@cfl.rr.com>
-
- * ptree/tree.css: change a.hover to look like ndoc
-
-2003-08-22 Piers Haken <piersh@friskit.com>
-
- * monodoc.ash: PTree cleanup, keyboard support
-
-2003-08-21 Piers Haken <piersh@friskit.com>
-
- * monodoc.ash: add PTree support
-
-2003-08-14 John Luke <jluke@cfl.rr.com>
-
- * monodoc.ashx: do not close the XmlTextWriter in 'void
- HandleTree (HttpContext context, string tree)' (allows the
- tree to work on IE and moz>=1.4)
diff --git a/webdoc/Global.asax b/webdoc/Global.asax
index a29361b3..9540553f 100644
--- a/webdoc/Global.asax
+++ b/webdoc/Global.asax
@@ -7,27 +7,29 @@
<%@ Assembly name="monodoc" %>
<script runat="server" language="c#" >
-
public static RootTree help_tree;
[ThreadStatic]
static SearchableIndex search_index;
public static string ua = null;
-// These are dictionary of path for external couple (html, css, js) files that should get included
-static Dictionary<ExternalResourceType, string> externalHeader = null;
-static Dictionary<ExternalResourceType, string> externalFooter = null;
void Application_Start ()
{
+ HelpSource.use_css = true;
+ HelpSource.FullHtml = false;
+ HelpSource.UseWebdocCache = true;
var rootDir = WebConfigurationManager.AppSettings["MonodocRootDir"];
if (!string.IsNullOrEmpty (rootDir))
help_tree = RootTree.LoadTree (rootDir);
else
help_tree = RootTree.LoadTree ();
+
+ //Google analytics if we want em
ua = WebConfigurationManager.AppSettings["GoogleAnalytics"];
- externalHeader = ParseExternalDefinition (WebConfigurationManager.AppSettings["ExternalHeader"]);
- externalFooter = ParseExternalDefinition (WebConfigurationManager.AppSettings["ExternalFooter"]);
+
+ SettingsHandler.Settings.EnableEditing = false;
}
+/*----------------TREE BUILDING----------------*/
public static readonly string kipunji_root_url = "http://docs.go-mono.com/";
private static readonly string prefixes = "TNCFEMP";
@@ -85,8 +87,8 @@ public static string CreateTreeBootFragment ()
{
var fragment = new System.Text.StringBuilder ();
- for (int i = 0; i < help_tree.RootNode.Nodes.Count; i++){
- Node n = (Node)help_tree.RootNode.Nodes [i];
+ for (int i = 0; i < help_tree.Nodes.Count; i++){
+ Node n = (Node)help_tree.Nodes [i];
string url = n.PublicUrl;
@@ -100,7 +102,7 @@ public static string CreateTreeBootFragment ()
else
fragment.Append ("null");
- if (i == help_tree.RootNode.Nodes.Count-1)
+ if (i == help_tree.Nodes.Count-1)
fragment.Append (", true");
else
fragment.Append (", false");
@@ -112,6 +114,7 @@ public static string CreateTreeBootFragment ()
return fragment.ToString ();
}
+/*------------SEARCH------------*/
public static SearchableIndex GetSearchIndex ()
{
if (search_index != null)
@@ -119,51 +122,4 @@ public static SearchableIndex GetSearchIndex ()
return (search_index = help_tree.GetSearchIndex ());
}
-public enum ExternalResourceType {
- Unknown,
- Html,
- Css,
- Javascript
-}
-
-public static string IncludeExternalHeader (ExternalResourceType type)
-{
- return IncludeExternalFile (type, externalHeader);
-}
-
-public static string IncludeExternalFooter (ExternalResourceType type)
-{
- return IncludeExternalFile (type, externalFooter);
-}
-
-static string IncludeExternalFile (ExternalResourceType type, Dictionary<ExternalResourceType, string> paths)
-{
- string path;
- if (paths == null || !paths.TryGetValue (type, out path) || !File.Exists (path))
- return string.Empty;
- if (type == ExternalResourceType.Javascript) {
- return string.Format ("{1}script type='text/javascript' src='{0}'{2}{1}/script{2}", path, '<', '>');
- } else if (type == ExternalResourceType.Css) {
- return string.Format ("{1}link type='text/css' rel='stylesheet' href='{0}' /{2}", path, '<', '>');
- } else {
- return File.ReadAllText (path);
- }
-}
-
-static Dictionary<ExternalResourceType, string> ParseExternalDefinition (string definitionPath)
-{
- if (string.IsNullOrEmpty (definitionPath) || !File.Exists (definitionPath))
- return null;
- // A definition file is a simple file with a line for each resource type in a key value fashion
- var lines = File.ReadAllLines (definitionPath);
- var result = lines.Where (l => !string.IsNullOrEmpty (l) && l[0] != '#') // Take non-empty, non-comment lines
- .Select (l => l.Split ('='))
- .Where (a => a != null && a.Length == 2)
- .Select (a => { ExternalResourceType t; return Tuple.Create (Enum.TryParse (a[0].Trim (), true, out t) ? t : ExternalResourceType.Unknown, a[1].Trim ()); })
- .Where (t => t.Item1 != ExternalResourceType.Unknown)
- .ToDictionary (t => t.Item1, t => t.Item2);
-
- return result;
-}
-
</script>
diff --git a/webdoc/Makefile.am b/webdoc/Makefile.am
index 0dd97bcb..314cd416 100644
--- a/webdoc/Makefile.am
+++ b/webdoc/Makefile.am
@@ -1,97 +1,167 @@
webdir=$(prefix)/lib/monodoc/web
web_DATA = \
- common.css \
- edit.aspx \
Global.asax \
- header.html \
+ robots.txt \
index.aspx \
- index.html \
- login.aspx \
- logout.aspx \
- mono_logo_g.gif \
monodoc.ashx \
- monodoc.asmx \
- oldposts.xml \
- server.asmx \
- server.cs \
- sidebar.css \
- sidebar.js \
- tables.sql \
+ monodoc.css \
web.config \
- wiki2ecmahelper.xsl
+ api.master \
+ plugins.def \
+ README.md
DISTCLEANFILES =
.PHONY : \
- cleandb \
- db \
dist-hook \
web \
up
EXTRA_DIST = \
- $(wildcard images/*.gif) \
- $(wildcard images/*.png) \
- $(wildcard ptree/tree*) \
- $(wildcard xtree/*.js) \
- $(wildcard xtree/*.css) \
- $(wildcard xtree/images/*.png) \
- $(wildcard xtree/images/*.png) \
- $(wildcard xtree/images/clean/*.gif) \
- $(wildcard xtree/images/msdn/*.gif) \
- $(wildcard xtree/images/msdn2/*.gif)
- $(wildcard xtree/images/xp/*.png)
+ $(wildcard App_Code/Plugins/*.cs) \
+ $(wildcard views/*.css) \
+ $(wildcard views/*.js) \
+ $(wildcard views/*.html) \
+ $(wildcard views/images/*.png) \
+ $(wildcard views/images/*.gif) \
+ $(wildcard skins/mono-external/header*) \
+ $(wildcard skins/mono-external/footer*) \
+ $(wildcard skins/mono-external/*.css) \
+ $(wildcard skins/mono-external/*.js) \
+ $(wildcard skins/mono-external/images/*.png) \
+ $(wildcard skins/mono-external/images/*.gif) \
+ $(wildcard plugins/iframe-plugin/*.js) \
+ $(wildcard plugins/iframe-plugin/*.css) \
+ $(wildcard plugins/iframe-plugin/*.html) \
+ $(wildcard plugins/tooltip-plugin/*.js) \
+ $(wildcard plugins/sidebar-plugin/*.js) \
+ $(wildcard plugins/sidebar-plugin/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.js) \
+ $(wildcard plugins/sidebar-plugin/dependencies/ptree/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/*.css) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/*.js) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/*.png) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/clean/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/msdn/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*.gif) \
+ $(wildcard plugins/sidebar-plugin/dependencies/xtree/images/xp/*.png) \
+ $(wildcard plugins/search_plugin/images/*.gif) \
+ $(wildcard plugins/search-plugin/fullsearch/*.css) \
+ $(wildcard plugins/search-plugin/fullsearch/*.js) \
+ $(wildcard plugins/search-plugin/fullsearch/*.html) \
+ $(wildcard plugins/search-plugin/fastsearch/*.css) \
+ $(wildcard plugins/search-plugin/fastsearch/*.js)
dist-hook:
- mkdir -p $(distdir)/images
- mkdir -p $(distdir)/xtree/images/msdn
- mkdir -p $(distdir)/xtree/images/msdn2
- mkdir -p $(distdir)/xtree/images/xp
- mkdir -p $(distdir)/ptree
+ mkdir -p $(distdir)/App_Code/Plugins
+ mkdir -p $(distdir)/views/images
+ mkdir -p $(distdir)/skins/mono-external/images
+ mkdir -p $(distdir)/plugins/iframe-plugin
+ mkdir -p $(distdir)/plugins/tooltip-plugin
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ mkdir -p $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ mkdir -p $(distdir)/plugins/search-plugin/images
+ mkdir -p $(distdir)/plugins/search-plugin/fastsearch
+ mkdir -p $(distdir)/plugins/search-plugin/fullsearch
for f in $(web_DATA) ; do cp $(srcdir)/$$f $(distdir) ; done
- cp $(srcdir)/images/*gif $(distdir)/images
- cp $(srcdir)/images/*png $(distdir)/images
- cp $(srcdir)/xtree/images/msdn/*gif $(distdir)/xtree/images/msdn
- cp $(srcdir)/xtree/images/msdn2/*gif $(distdir)/xtree/images/msdn2
- cp $(srcdir)/xtree/images/xp/*png $(distdir)/xtree/images/xp
- cp $(srcdir)/xtree/images/*png $(distdir)/xtree/images
- cp $(srcdir)/xtree/*js $(distdir)/xtree
- cp $(srcdir)/xtree/*css $(distdir)/xtree
- cp $(srcdir)/ptree/*css $(distdir)/ptree
- cp $(srcdir)/ptree/*js $(distdir)/ptree
+ cp $(srcdir)/App_Code/Plugins/*cs $(distdir)/App_Code/Plugins
+ cp $(srcdir)/views/*css $(distdir)/views
+ cp $(srcdir)/views/*js $(distdir)/views
+ cp $(srcdir)/views/*html $(distdir)/views
+ cp $(srcdir)/views/images/*png $(distdir)/views/images
+ cp $(srcdir)/views/images/*gif $(distdir)/views/images
+ cp $(srcdir)/skins/mono-external/header* $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/footer* $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/*css $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/*js $(distdir)/skins/mono-external
+ cp $(srcdir)/skins/mono-external/images/*png $(distdir)/skins/mono-external/images
+ cp $(srcdir)/skins/mono-external/images/*gif $(distdir)/skins/mono-external/images
+ cp $(srcdir)/plugins/iframe-plugins/*css $(distdir)/plugins/iframe-plugin
+ cp $(srcdir)/plugins/iframe-plugin/*js $(distdir)/plugins/iframe-plugin
+ cp $(srcdir)/plugins/iframe-plugin/*html $(distdir)/plugins/iframe-plugin
+ cp $(srcdir)/plugins/tooltip-plugin/*js $(distdir)/plugins/tooltip-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/*css $(distdir)/plugins/sidebar-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/*js $(distdir)/plugins/sidebar-plugin
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*css $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*js $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*gif $(distdir)/plugins/sidebar-plugin/dependencies/ptree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*css $(distdir)/plugins/sidebar-plugin/dependencies/xtree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*js $(distdir)/plugins/sidebar-plugin/dependencies/xtree
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*png $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*gif $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ cp $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp/*png $(distdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ cp $(srcdir)/plugins/search_plugin/images/*gif $(distdir)/plugins/search_plugin/images
+ cp $(srcdir)/plugins/search_plugin/fullsearch/*css $(distdir)/plugins/search_plugin/fullsearch
+ cp $(srcdir)/plugins/search_plugin/fullsearch/*js $(distdir)/plugins/search_plugin/fullsearch
+ cp $(srcdir)/plugins/search_plugin/fullsearch/*html $(distdir)/plugins/search_plugin/fullsearch
+ cp $(srcdir)/plugins/search_plugin/fastsearch/*css $(distdir)/plugins/search_plugin/fastsearch
+ cp $(srcdir)/plugins/search_plugin/fastsearch/*js $(distdir)/plugins/search_plugin/fastsearch
install-data-hook:
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/images
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/ptree
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/msdn
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/msdn2
- -$(mkinstalldirs) $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/images/*gif $(DESTDIR)$(webdir)/images
- $(INSTALL_DATA) $(srcdir)/images/*png $(DESTDIR)$(webdir)/images
- $(INSTALL_DATA) $(srcdir)/xtree/images/msdn/*gif $(DESTDIR)$(webdir)/xtree/images/msdn
- $(INSTALL_DATA) $(srcdir)/xtree/images/msdn2/*gif $(DESTDIR)$(webdir)/xtree/images/msdn2
- $(INSTALL_DATA) $(srcdir)/xtree/images/xp/*png $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/xtree/images/*png $(DESTDIR)$(webdir)/xtree/images/xp
- $(INSTALL_DATA) $(srcdir)/xtree/*js $(DESTDIR)$(webdir)/xtree
- $(INSTALL_DATA) $(srcdir)/xtree/*css $(DESTDIR)$(webdir)/xtree
- $(INSTALL_DATA) $(srcdir)/ptree/*css $(DESTDIR)$(webdir)/ptree
- $(INSTALL_DATA) $(srcdir)/ptree/*js $(DESTDIR)$(webdir)/ptree
-
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/App_Code/Plugins
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/views/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/skins/mono-external/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/tooltip-plugin
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/images
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/fastsearch
+ -$(mkinstalldirs) $(DESTDIR)$(webdir)/plugins/search-plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/App_Code/Plugins/*cs $(DESTDIR)$(webdir)/App_Code/Plugins
+ $(INSTALL_DATA) $(srcdir)/views/*css $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/*js $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/*html $(DESTDIR)$(webdir)/views
+ $(INSTALL_DATA) $(srcdir)/views/images/*png $(DESTDIR)$(webdir)/views/images
+ $(INSTALL_DATA) $(srcdir)/views/images/*gif $(DESTDIR)$(webdir)/views/images
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/header* $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/footer* $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/*css $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/*js $(DESTDIR)$(webdir)/skins/mono-external
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/images/*png $(DESTDIR)$(webdir)/skins/mono-external/images
+ $(INSTALL_DATA) $(srcdir)/skins/mono-external/images/*gif $(DESTDIR)$(webdir)/skins/mono-external/images
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugins/*css $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugin/*js $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/iframe-plugin/*html $(DESTDIR)$(webdir)/plugins/iframe-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/tooltip-plugin/*js $(DESTDIR)$(webdir)/plugins/tooltip-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/ptree/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/ptree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*css $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/*js $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*png $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/clean
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/*gif $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/msdn2
+ $(INSTALL_DATA) $(srcdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp/*png $(DESTDIR)$(webdir)/plugins/sidebar-plugin/dependencies/xtree/images/xp
+ $(INSTALL_DATA) $(srcdir)/plugins/search_plugin/images/*gif $(DESTDIR)$(webdir)/plugins/search_plugin/images
+ $(INSTALL_DATA) $(srcdir)/plugins/search_plugin/fullsearch/*css $(DESTDIR)$(webdir)/plugins/search_plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search_plugin/fullsearch/*js $(DESTDIR)$(webdir)/plugins/search_plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search_plugin/fullsearch/*html $(DESTDIR)$(webdir)/plugins/search_plugin/fullsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search_plugin/fastsearch/*css $(DESTDIR)$(webdir)/plugins/search_plugin/fastsearch
+ $(INSTALL_DATA) $(srcdir)/plugins/search_plugin/fastsearch/*js $(DESTDIR)$(webdir)/plugins/search_plugin/fastsearch
+
Monodoc.Contributions.dll: server.cs Makefile.am
mcs -debug+ $< -target:library -out:$@ -r:System.Web -r:System.Web.Services -pkg:monodoc -r:System.Data -r:ByteFX.Data
web: Monodoc.Contributions.dll
xsp
-db:
- mysql -u admin -p
-
-cleandb:
- mysql -u admin -p < tables.sql
-
up:
- scp tables.sql server.cs server.asmx monodoc.dll root@www.go-mono.com:
+ scp monodoc.dll root@www.go-mono.com:
diff --git a/webdoc/README.md b/webdoc/README.md
index 20991ea8..c5182135 100644
--- a/webdoc/README.md
+++ b/webdoc/README.md
@@ -1,21 +1,41 @@
-Configuration options
-=====================
+Webdoc
+======
-Webdoc can be configured with the following variables in the web.config file:
+Webdoc is the web container for monodoc. It normally includes:
- - `MonodocRootDir`: point where you monodoc source root is
- - `GoogleAnalytics`: if you want to register your webdoc instance for analytics, enter your API key in that variable
- - `ExternalHeader`/`ExternalFooter`: path to an external asset definition file for custom header/footer, definition of the file given below
+ - a header
+ - a footer
+ - a navigation tree
+ - the monodoc iframe
-External asset file syntax
---------------------------
+Structure
+---------
-Three types of ressources can be declared: `html`, `css` and `javascript`. You usually wants at least `html` but none of the fields are mandatory. You declare one resource per line in a key-value pair separated by an equal ('=') sign with the right hand-side being the path to the asset.
+Each webdoc instance consists of a skin (theme, chrome) and several plugins.
-An example of such file follows:
+Plugins are located in the plugins directory. The plugins currently available are:
- # Comments begin with a hash
- html=external/header.html
- css=external/header.css
- javascript=external/header.js
+ - iframe: helps size the iframe correctly in your webdoc instance. Recommended unless you want to
+use your own code for that
+ - sidebar: left navigation tree. Again, recommended unless you feel like writign and wiring up your own (good luck!)
+ - fast search: searches while you type
+ - full search: returns a page of search results (`search.html`). Can be styled however you like.
+Skins are located in the skins directory. Each skin consists of:
+
+ - `header.html` (required)
+ - `footer.html` (required)
+ - additional css and js (usually placed in the `common-extension.css`/`common-extension.js` file)
+ - images folder (optional)
+
+How to Use
+----------
+
+Making a new instance of webdoc is easy. First, you need to edit web.config to point
+to the location of your monodoc source root.
+
+`MonodocRootDir` -> monodoc source root
+
+Next, throw your skin into the skins directory (or use one that's already there).
+
+Edit the `plugins.def` file, uncommenting the plugins you want to use, and setting the location of your skin.
diff --git a/webdoc/api.master b/webdoc/api.master
new file mode 100644
index 00000000..be2750c5
--- /dev/null
+++ b/webdoc/api.master
@@ -0,0 +1,39 @@
+<%@ Master Language="C#" %>
+<%@ Import Namespace="System.Web" %>
+<%@ Import Namespace="System.Collections.Specialized" %>
+<%@ Import Namespace="System.Web.Configuration" %>
+<%@ Import Namespace="Mono.Website" %>
+<%@ Assembly name="monodoc" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
+ 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+
+<head runat="server" >
+ <title><% = WebConfigurationManager.AppSettings["Title"] %></title>
+ <link href="views/images/favicon.ico" type="image/png" rel="icon">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" >
+ <link type="text/css" rel="stylesheet" href="/views/reset.css"/>
+ <link type="text/css" rel="stylesheet" href="/views/common.css"/>
+ <% = Plugin.GetPluginContent (Plugin.PluginContent.Css) %>
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
+ <script type="text/javascript" src="http://new.xamarin.com/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript" src="/views/common.js"></script>
+</head>
+
+<body>
+<% = Plugin.GetPluginContent (Plugin.PluginContent.Header) %>
+<form id="application_content" runat="server">
+ <asp:contentplaceholder id="Main" runat="server" />
+ <asp:contentplaceholder id="FastSearch" runat="server" />
+
+ <% = Plugin.GetPluginContent (Plugin.PluginContent.Footer) %>
+ <% = Plugin.GetPluginContent (Plugin.PluginContent.Javascript) %>
+
+ <!--uncomment if you want to use the sidebar plugin-->
+ <asp:contentplaceholder id="CustomTreeGenerator" runat="server" />
+</form>
+</body>
+
+</html>
+
diff --git a/webdoc/edit.aspx b/webdoc/edit.aspx
deleted file mode 100644
index f2ad4dee..00000000
--- a/webdoc/edit.aspx
+++ /dev/null
@@ -1,62 +0,0 @@
-<%@ Assembly name="monodoc" %>
-<%@ Import Namespace="Monodoc" %>
-<%@ Import Namespace="System.Xml" %>
-<%@ Import Namespace="System.IO" %>
-<html>
-<head>
- <script language="C#" runat=server>
- static RootTree help_tree = RootTree.LoadTree ();
-
- void Page_Load (object sender, EventArgs ea)
- {
- HttpWorkerRequest r = (HttpWorkerRequest) ((IServiceProvider)Context).GetService (typeof (HttpWorkerRequest));
- //
- // We need the untouched QueryString, as internally the editor uses the `@' symbol as a separator.
- //
- string q = Request ["link"];
- Console.WriteLine ("QueryString: " + q);
- try {
- XmlNode edit_node = EditingUtils.GetNodeFromUrl ("edit:" + q, help_tree);
- Monodoc2Wiki m2w = new Monodoc2Wiki ();
- Console.WriteLine ("XML TO TEXT: " + edit_node.InnerText);
- EditBuffer.Text = m2w.ProcessNode ((XmlElement) edit_node);
- } catch (Exception e){
- EditBuffer.Text = Request.QueryString.ToString () + e.ToString ();
- }
- }
-
- void Save (object o, EventArgs a)
- {
-
- }
-
- void Preview (object o, EventArgs a)
- {
- WikiStyleDocConverter p = new WikiStyleDocConverter (EditBuffer.Text);
- XmlNode result = p.ParseEntireDoc ();
-
- StringWriter sw = new StringWriter ();
- sw.Write ("YOOHO:" + result.InnerText);
- XmlTextWriter xw = new XmlTextWriter (sw);
- xw.Formatting = Formatting.Indented;
- result.WriteTo (xw);
- xw.Close ();
-
- TextPreview.Text = "Preview<BR>" + sw.ToString ();
- }
- </script>
-</head>
-
-<body>
- <form runat=server>
- <asp:Label id="TextPreview" runat=server/>
- <asp:TextBox id="EditBuffer" Text="multiline" TextMode="MultiLine" runat="server" rows=15 cols=80 />
- <p>
- <asp:Button Text="Save Page" OnClick="Save" runat=server/>
- <asp:Button Text="Show Preview" OnClick="Preview" runat=server/>
- <asp:LinkButton Text="Markup Help" runat=server/>
- <asp:LinkButton Text="Cancel" runat=server/>
- </form>
-</body>
-
-</html> \ No newline at end of file
diff --git a/webdoc/fullsearch.js b/webdoc/fullsearch.js
deleted file mode 100644
index 4d32be54..00000000
--- a/webdoc/fullsearch.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var spinner = $('#s_spinner');
-
-function process_hash () {
- var query = window.location.hash;
- if (query == null || query.length < 2)
- return;
-
- var ul = $('#s_results ul');
- ul.empty ();
-
- var currentNumber = 0;
- var count = 0;
-
- // Remove hash '#' symbol
- query = query.substring(1);
- $('#s_term').text (query);
-
- var fetch_and_add_results = function (url) {
- spinner.toggleClass ('hidden');
- $.getJSON (url, function (data) {
- spinner.toggleClass ('hidden');
- count = data.count;
- currentNumber += data.result.length;
-
- if (data.result.length == 0) {
- $('<div/>', { 'class': 's_message' }).text('No more results').replaceAll($('#s_morebtn')).fadeOut(4000, function () { $(this).remove(); });
- } else {
- var lis = $.map (data.result, function (element) {
- return '<li><a href="/monodoc.ashx?link=' + element.url + '"><span class="name">'
- + element.name + '</span> '
- + (element.fulltitle.length > 0 ? '<span class="fulltitle">(' + element.fulltitle + ')</span>' : '') + '</a></li>';
- });
- ul.append (lis.join (''));
- }
- });
- };
-
- fetch_and_add_results ('/monodoc.ashx?search=' + query);
-
- $('#s_morebtn input').click (function () {
- fetch_and_add_results ('/monodoc.ashx?search=' + query + '&start=' + currentNumber + '&count=' + count);
- });
-}
-
-process_hash ();
-
-window.addEventListener("hashchange", process_hash, false);
-
diff --git a/webdoc/header.html b/webdoc/header.html
deleted file mode 100644
index 73f8d720..00000000
--- a/webdoc/header.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
- <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
- <title>MonoDoc Header</title>
- <meta name="description" content="Mono Documentation header">
- <link rel="stylesheet" type="text/css" href="common.css" media="all"
- title='Default Style'/>
- <style>
-img.toolbarsep {
- border: 0px;
- margin-bottom: 1px;
- margin-top: 1px;
- padding-top: 3px;
- padding-bottom: 3px;
- vertical-align: middle;
-}
-
-img.toolbar {
- border: 0px;
- margin: 1px;
- padding: 3px;
- vertical-align: middle;
-}
-
-img.toolbar:hover {
- border-left: 1px solid white;
- border-right: 1px solid #B1A598;
- border-top: 1px solid white;
- border-bottom: 1px solid #B1A598;
- margin: 0px;
-}
-
-img.toolbar:active {
- border-right: 1px solid white;
- border-left: 1px solid #B1A598;
- border-bottom: 1px solid white;
- border-top: 1px solid #B1A598;
-}
-
-
-#rightSide {
- position: fixed;
- bottom: 0px;
- right: 0px;
- float: right;
- padding: 5px;
-}
- </style>
-</head>
-
-<body
-style="color: rgb(255, 255, 255); background-color: #c0dda2;"
-link="#ffffff" alink="#ffffff" vlink="#ffffff">
-
-<a href="index.aspx" class="headerlink" target="_top"><img
- src="images/mono-logo.png" alt="Mono"
- style="border: 0px solid ; height:75;" /></a>
-
-<div id="rightSide">
- <a href="javascript:parent.content.print();"><img class="toolbar" src="images/print.png" alt="Print" title="Print this document"/></a>
- <a target="_top" id="pageLink" href="/"><img class="toolbar" src="images/link.png" alt="Link to this document" title="Link to this document"/></a>
-</div>
-</body>
-</html>
diff --git a/webdoc/index.aspx b/webdoc/index.aspx
index 28511e4f..772c6bb8 100644
--- a/webdoc/index.aspx
+++ b/webdoc/index.aspx
@@ -1,134 +1,56 @@
-<%@ Page Language="C#" ClassName="Mono.Website.Index" %>
-<%@ Import Namespace="System.Web" %>
-<%@ Import Namespace="System.Collections.Specialized" %>
+<%@ Page Language="C#" ClassName="Mono.Website.Index" MasterPageFile="api.master" %>
<%@ Assembly name="monodoc" %>
-<html>
- <head>
- <meta http-equiv="X-UA-Compatible" content="IE=edge" >
- <title><%=GetTitle ()%></title>
- <link rel="stylesheet" type="text/css" href="common.css" media="all" title="Default Style"/>
- <link rel="stylesheet" type="text/css" href="main.css" media="all" />
- <link type="text/css" rel="stylesheet" href="ptree/tree.css"/>
- <link type="text/css" rel="stylesheet" href="sidebar.css"/>
- <% = Global.IncludeExternalHeader (Global.ExternalResourceType.Css) %>
- <% = Global.IncludeExternalFooter (Global.ExternalResourceType.Css) %>
- </head>
- <body>
- <script language="c#" runat="server">
+<asp:Content ID="Main" ContentPlaceHolderID="Main" Runat="Server">
+<script language="c#" runat="server">
public string GetTitle ()
{
- return "Monodoc";
-// return Global.help_tree.GetTitle (Request.QueryString ["link"]);
+return Global.help_tree.GetTitle (Request.QueryString ["link"]);
}
-
-// Get the path to be shown in the content fram
+// Get the path to be shown in the content frame
string getContentFrame()
{
- // Docs get shown from monodoc.ashx
- string monodocUrl="monodoc.ashx";
- string defaultParams="?link=root:";
- NameValueCollection qStringParams=Request.QueryString;
-
- // If no querystring params, show root link
- if(!qStringParams.HasKeys())
- return(monodocUrl+defaultParams);
- // else, build query for the content frame
- string nQueryString=monodocUrl+"?";
+// Docs get shown from monodoc.ashx
+string monodocUrl="monodoc.ashx";
+string defaultParams="?link=root:";
+NameValueCollection qStringParams=Request.QueryString;
+
+// If no querystring params, show root link
+if(!qStringParams.HasKeys())
+return(monodocUrl+defaultParams);
+// else, build query for the content frame
+string nQueryString=monodocUrl+"?";
foreach(string key in qStringParams)
- nQueryString+=(HttpUtility.UrlEncode(key)+"="+HttpUtility.UrlEncode(qStringParams[key]));
+ nQueryString+=(HttpUtility.UrlEncode(key)+"="+HttpUtility.UrlEncode(qStringParams[key]));
return nQueryString;
}
+</script>
-void Page_Load (object sender, EventArgs e)
-{
- if (User.Identity.IsAuthenticated){
- login.NavigateUrl = "logout.aspx";
- login.Text = "Logged in as " + User.Identity.Name;
- } else {
- login.NavigateUrl = "javascript:parent.content.login (parent.content.window.location)";
- //login.Text = "Sign in / create account";
- }
-}
- </script>
- <% = Global.IncludeExternalHeader (Global.ExternalResourceType.Html) %>
- <div id="banner" style="color: rgb(255, 255, 255);">
- <div id="rightSide">
- <label for="search">Search: </label>
- <input id="fsearch" type="search" placeholder="Enter search request" style="width:19em; margin-right: 10px"/>
- <a href="#" onclick="document.getElementById ('content_frame').contentWindow.print ()"><img class="toolbar" src="images/print.png" width="24" height="24" alt="Print" title="Print this document"/></a>
- <a id="pageLink" href="/">
- <img class="toolbar" src="images/link.png" width="24" height="24" alt="Link to this document" title="Link to this document"/>
- </a>
- </div>
-
- <div id="header">
- <h1>Mono Documentation</h1>
- </div>
- <div id="dlogin">
- <asp:HyperLink id="login" runat="server"/>
- </div>
-
- <div id="fsearch_companion"></div>
- <div id="fsearch_window"></div>
- </div>
- <div id="main_part">
- <div id="side">
- <div id="contents" class="activeTab">
- <div id="contentList"></div>
- </div>
- </div>
- <div id="content_frame_wrapper"><iframe id="content_frame" src="<% =getContentFrame() %>"></iframe></div>
- </div>
- <% = Global.IncludeExternalFooter (Global.ExternalResourceType.Html) %>
+<div id="content_frame_wrapper"><iframe id="content_frame" src="<% =getContentFrame() %>"></iframe></div>
+</asp:Content>
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
-<script src="search.js"></script>
-<script src="xtree/xmlextras.js"></script>
-<script src="ptree/tree.js"></script>
-<script src="sidebar.js"></script>
+<asp:Content ID="fsearch" ContentPlaceHolderID="FastSearch" Runat="Server">
+<div id="fsearch_companion"></div>
+<div id="fsearch_window"></div>
+</asp:Content>
+
+<asp:Content ID="CustomTree" ContentPlaceHolderID="CustomTreeGenerator" Runat="Server">
<script type="text/javascript">
-var tree = new PTree ();
-tree.strSrcBase = 'monodoc.ashx?tree=';
-tree.strActionBase = '?link=';
-tree.strImagesBase = 'xtree/images/msdn2/';
-tree.strImageExt = '.gif';
-tree.onClickCallback = function (url) { change_page (url); };
-var content = document.getElementById ('contentList');
-var root = tree.CreateItem (null, 'Documentation List', 'root:', '', true);
-content.appendChild (root);
-<% = Global.CreateTreeBootFragment () %>
-
-update_tree = function () {
- var tree_path = $('#content_frame').contents ().find ('meta[name=TreePath]');
- if (tree_path.length > 0) {
- var path = tree_path.attr ('value');
- tree.ExpandFromPath (path);
- }
-};
-update_tree ();
-add_native_browser_link = function () {
- var contentDiv = $('#content_frame').contents ().find ('div[class=Content]').first ();
- if (contentDiv.length > 0 && contentDiv.attr ('id')) {
- var id = contentDiv.attr ('id').replace (':Summary', '');
- var h2 = contentDiv.children ('h2').first ();
- if (h2.prev ().attr ('class') != 'native-browser')
- h2.before ('<p><a class="native-browser" href="mdoc://' + encodeURIComponent (id) + '"><span class="native-icon"><img src="images/native-browser-icon.png" /></span>Open in Native Browser</a></p>');
- }
-};
-add_native_browser_link ();
-change_window_title = function () {
- var contentTitle = $('#content_frame').contents ().find ('title').text ();
- var title = contentTitle + "- Monodoc";
- $('title').text (title);
-};
-change_window_title ();
-
-content_frame.load (update_tree);
-content_frame.load (add_native_browser_link);
-content_frame.load (change_window_title);
+ //create a container for the sidebar to sit in
+ var container = $("#sidebar_container");
+ container.append("<div id=\"side\"><div id=\"contents\" class=\"activeTab\"><div id=\"contentList\"></div></div></div>");
+
+ //populate the sidebar with our data
+ var tree = new PTree ();
+ tree.strSrcBase = 'monodoc.ashx?tree=';
+ tree.strActionBase = '?link=';
+ tree.strImagesBase = 'plugins/sidebar-plugin/dependencies/xtree/images/msdn2/';
+ tree.strImageExt = '.gif';
+ tree.onClickCallback = function (url) { change_page (url); };
+ var content = document.getElementById ('contentList');
+ var root = tree.CreateItem (null, '', 'root:', '', true);
+ content.appendChild (root);
+ <% = Global.CreateTreeBootFragment () %>
</script>
-<% = Global.IncludeExternalHeader (Global.ExternalResourceType.Javascript) %>
-<% = Global.IncludeExternalFooter (Global.ExternalResourceType.Javascript) %>
-</body>
-</html>
+</asp:Content>
+
diff --git a/webdoc/index.html b/webdoc/index.html
deleted file mode 100644
index ea7d7ef6..00000000
--- a/webdoc/index.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<html>
- <head>
- <title>Mono Documentation</title>
- </head>
-
- <frameset cols="20%,80%">
- <frame src="monodoc.ashx?tree=boot">
- <frame src="monodoc.ashx?link=root:" name="content">
- </frameset>
-</html> \ No newline at end of file
diff --git a/webdoc/login.aspx b/webdoc/login.aspx
deleted file mode 100644
index c6762214..00000000
--- a/webdoc/login.aspx
+++ /dev/null
@@ -1,68 +0,0 @@
-<%@ Import Namespace="System.Web.Security" %>
-<html>
-<script language="C#" runat=server>
-
- void Allow ()
- {
- FormsAuthentication.RedirectFromLoginPage (UserEmail.Value, false);
- // PersistCookie.Checked);
- }
-
- void Login_Click (object sender, EventArgs e)
- {
- FormsAuthenticationTicket trust = null;
- HttpCookie c;
-
- switch (UserEmail.Value){
- case "miguel":
- trust = new FormsAuthenticationTicket ("high", false, 1);
- c = new HttpCookie ("level", FormsAuthentication.Encrypt (trust));
- Response.AppendCookie (c);
- Allow ();
- break;
- case "guest":
- trust = new FormsAuthenticationTicket ("low", false, 1);
- c = new HttpCookie ("level", FormsAuthentication.Encrypt (trust));
- Response.AppendCookie (c);
- Allow ();
- break;
- default:
- Msg.Text = "Invalid Credentials: Please try again";
- break;
- }
- }
-
- void Page_Load ()
- {
- Msg.Text = ">>> " + Request.QueryString ["ReturnUrl"] + "<<<";
- }
-</script>
-<body>
-<form runat=server>
-
- <h3><font face="Verdana">Login Page</font></h3>
- <table>
- <tr>
- <td>Email:</td>
- <td><input id="UserEmail" type="text" runat=server/></td>
- <td><ASP:RequiredFieldValidator ControlToValidate="UserEmail"
- Display="Static" ErrorMessage="*" runat=server/></td>
- </tr>
- <tr>
- <td>Password:</td>
- <td><input id="UserPass" type=password runat=server/></td>
- <td><ASP:RequiredFieldValidator ControlToValidate="UserPass"
- Display="Static" ErrorMessage="*" runat=server/></td>
- </tr>
- <tr>
- <td>Persistent Cookie:</td>
- <td><ASP:CheckBox id=PersistCookie runat="server" /> </td>
- <td></td>
- </tr>
- </table>
- <asp:button text="Login" OnClick="Login_Click" runat=server/>
- <p>
- <asp:Label id="Msg" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat=server />
-</form>
-</body>
-</html>
diff --git a/webdoc/logout.aspx b/webdoc/logout.aspx
deleted file mode 100644
index af3621be..00000000
--- a/webdoc/logout.aspx
+++ /dev/null
@@ -1,12 +0,0 @@
-<%@ Import Namespace="System.Web.Security" %>
-<html>
-<script language="C#" runat=server>
- void Page_Load (object sender, EventArgs e)
- {
- FormsAuthentication.SignOut ();
- Response.Redirect ("index.aspx");
- }
-</script>
-<body>
-</body>
-</html>
diff --git a/webdoc/main.css b/webdoc/main.css
deleted file mode 100644
index d22a9dc3..00000000
--- a/webdoc/main.css
+++ /dev/null
@@ -1,165 +0,0 @@
-#fsearch_window {
- display: none;
- opacity: 0;
- position: absolute;
- z-index: 60;
- text-align: left;
- width: 25em;
- right: 80px;
- top: 40px;
- border: 1px solid black;
- background: white;
- padding: 5px;
- overflow: hidden;
- -webkit-transition: opacity 200ms linear 0;
- -moz-transition: opacity 200ms linear 0;
- -o-transition: opacity 200ms linear 0;
-}
-
-#fsearch_window a {
- color: blue;
- text-decoration: none;
- font-family: monospace;
-}
-
-#fsearch_window .threedots {
- color: #333;
- font-size: x-small;
- font-family: sans-serif;
-}
-
-#fsearch_window .selected {
- background-color: 679ef1;
- color: white;
-}
-
-#fsearch_companion {
- display:none;
- position: absolute;
- z-index: 60;
- top: 40px;
- right:410px;
- color: grey;
- background-color: white;
-}
-
-iframe {
- margin: 0;
- padding: 0;
- border: 0;
- font-size: 100%;
- font: inherit;
- vertical-align: baseline;
-}
-
-body,div {
- margin: 0;
- padding: 0;
-}
-
-img.toolbarsep {
- border: 0px;
- margin-bottom: 1px;
- margin-top: 1px;
- padding-top: 3px;
- padding-bottom: 3px;
- vertical-align: middle;
-}
-
-img.toolbar {
- border: 0px;
- margin: 1px;
- padding: 3px;
- vertical-align: middle;
-}
-
-img.toolbar:hover {
- border-left: 1px solid white;
- border-right: 1px solid #B1A598;
- border-top: 1px solid white;
- border-bottom: 1px solid #B1A598;
- margin: 0px;
-}
-
-img.toolbar:active {
- border-right: 1px solid white;
- border-left: 1px solid #B1A598;
- border-bottom: 1px solid white;
- border-top: 1px solid #B1A598;
-}
-
-
-#login {
- position: fixed;
- top: 0px;
- right: 0px;
- float: right;
- padding: 5px;
-}
-
-#rightSide {
- position: relative;
- top: 2px;
- right: 0px;
- float: right;
- padding: 5px;
-}
-
-#banner {
- background: #679EF1 url(mdocimages/headerbg.png) no-repeat 100% 50%;
- background-color: #679EF1;
- background-position: 100% 50%;
- background-repeat: no-repeat;
- border-bottom: 1px dotted #3363BD;
-}
-
-#header {
- color: black;
- height: 40px;
- margin-bottom: 0px;
- padding: 0px 0px 0px 15px;
- position: relative;
- width: 50%;
-}
-#header h1 {
- color: white;
- font-family: arial, helvetica, verdana, sans-serif;
- font-size: 22px;
- font-weight: bold;
- line-height: 1.8em;
- margin: 0;
-}
-body,div {
- margin: 0;
- padding: 0;
- border: 0;
- font-size: 100%;
- font: inherit;
- vertical-align: baseline;
-}
-
-html,body {
- height: 100%;
-}
-
-#side {
- width:20%;
- height: 93%;
- float: left;
- border-right: 1px solid black;
- overflow-x: auto;
- overflow-y: auto;
-}
-
-#content_frame {
- width:79.9%;
- height: 94%;
-}
-
-#content_frame_wrapper {
- height: 100%;
-}
-
-#main_part {
- height: 94%;
-}
diff --git a/webdoc/mono_logo_g.gif b/webdoc/mono_logo_g.gif
deleted file mode 100644
index c6fbaf67..00000000
--- a/webdoc/mono_logo_g.gif
+++ /dev/null
Binary files differ
diff --git a/webdoc/monodoc.ashx b/webdoc/monodoc.ashx
index a877ff20..3cc33460 100644
--- a/webdoc/monodoc.ashx
+++ b/webdoc/monodoc.ashx
@@ -24,7 +24,6 @@ using System.Xml;
using System.Xml.Xsl;
using System.Linq;
using Monodoc;
-using Monodoc.Generators;
using System.Text.RegularExpressions;
namespace Mono.Website.Handlers
@@ -32,7 +31,6 @@ namespace Mono.Website.Handlers
public class MonodocHandler : IHttpHandler
{
static DateTime monodoc_timestamp, handler_timestamp;
- HtmlGenerator generator = new HtmlGenerator (null);
static MonodocHandler ()
{
@@ -69,40 +67,43 @@ namespace Mono.Website.Handlers
}
void IHttpHandler.ProcessRequest (HttpContext context)
- {
- string s;
-
- s = (string) context.Request.Params["link"];
- if (s != null){
- HandleMonodocUrl (context, s);
- return;
- }
-
- s = (string) context.Request.Params["tree"];
- Console.WriteLine ("tree request: '{0}'", s);
- if (s != null){
- HandleTree (context, s);
- return;
- }
-
- s = (string) context.Request.Params["fsearch"];
- Console.WriteLine ("Fast search requested for query {0}", s);
- if (s != null) {
- HandleFastSearchRequest (context, s);
- return;
- }
-
- s = (string) context.Request.Params["search"];
- Console.WriteLine ("Full search requested for query {0}", s);
- if (s != null) {
- HandleFullSearchRequest (context, s);
- return;
- }
-
- context.Response.Write ("<html><body>Unknown request</body></html>");
- context.Response.ContentType = "text/html";
- }
-
+ {
+ string s;
+ string callback;
+
+ s = (string) context.Request.Params["link"];
+ if (s != null){
+ HandleMonodocUrl (context, s);
+ return;
+ }
+
+ s = (string) context.Request.Params["tree"];
+ Console.WriteLine ("tree request: '{0}'", s);
+ if (s != null){
+ HandleTree (context, s);
+ return;
+ }
+
+ s = (string) context.Request.Params["fsearch"];
+ callback = (string) context.Request.Params["callback"];
+ Console.WriteLine ("Fast search requested for query {0}", s);
+ if (s != null) {
+ HandleFastSearchRequest (context, s, callback);
+ return;
+ }
+
+ s = (string) context.Request.Params["search"];
+ callback = (string) context.Request.Params["callback"];
+ Console.WriteLine ("Full search requested for query {0}", s);
+ if (s != null) {
+ HandleFullSearchRequest (context, s, callback);
+ return;
+ }
+
+ context.Response.Write ("<html><body>Unknown request</body></html>");
+ context.Response.ContentType = "text/html";
+ }
+
void HandleTree (HttpContext context, string tree)
{
context.Response.ContentType = "text/xml";
@@ -112,7 +113,7 @@ namespace Mono.Website.Handlers
// Walk the url, found what we are supposed to render.
//
string [] nodes = tree.Split (new char [] {'@'});
- Node current_node = Global.help_tree.RootNode;
+ Node current_node = Global.help_tree;
for (int i = 0; i < nodes.Length; i++){
try {
current_node = (Node)current_node.Nodes [int.Parse (nodes [i])];
@@ -131,7 +132,7 @@ namespace Mono.Website.Handlers
w.WriteStartElement ("tree");
w.WriteAttributeString ("text", n.Caption);
- if (n.Tree != null && n.Tree.HelpSource != null)
+ if (n.tree != null && n.tree.HelpSource != null)
w.WriteAttributeString ("action", HttpUtility.UrlEncode (n.PublicUrl));
if (n.Nodes != null){
@@ -220,76 +221,84 @@ namespace Mono.Website.Handlers
return;
Node n;
//Console.WriteLine ("Considering {0}", link);
+ string content = Global.help_tree.RenderUrl (link, out n);
CheckLastModified (context);
if (context.Response.StatusCode == 304){
//Console.WriteLine ("Keeping", link);
return;
}
- string content = Global.help_tree.RenderUrl (link, generator, out n);
PrintDocs (content, n, context, GetHelpSource (n));
}
- void HandleFastSearchRequest (HttpContext context, string request)
- {
- if (string.IsNullOrWhiteSpace (request) || request.Length < 3) {
- // Unprocessable entity
- context.Response.StatusCode = 422;
- return;
- }
- var searchIndex = Global.GetSearchIndex ();
- var result = searchIndex.FastSearch (request, 15);
- // return Json corresponding to the results
- var answer = result == null || result.Count == 0 ? "[]" : "[" +
- Enumerable.Range (0, result.Count)
+ void HandleFastSearchRequest (HttpContext context, string request, string callback)
+ {
+ if (string.IsNullOrWhiteSpace (request) || request.Length < 3) {
+ // Unprocessable entity
+ context.Response.StatusCode = 422;
+ return;
+ }
+
+
+ var searchIndex = Global.GetSearchIndex ();
+ var result = searchIndex.FastSearch (request, 15);
+ // return Json corresponding to the results
+ var answer = result == null || result.Count == 0 ? "[]" : "[" +
+ Enumerable.Range (0, result.Count)
.Select (i => string.Format ("{{ \"name\" : \"{0}\", \"url\" : \"{1}\", \"fulltitle\" : \"{2}\" }}",
result.GetTitle (i), result.GetUrl (i), result.GetFullTitle (i)))
.Aggregate ((e1, e2) => e1 + ", " + e2) + "]";
- Console.WriteLine ("answer is {0}", answer);
-
- context.Response.ContentType = "application/json";
- context.Response.Write (answer);
- }
-
- void HandleFullSearchRequest (HttpContext context, string request)
- {
- if (string.IsNullOrWhiteSpace (request)) {
- // Unprocessable entity
- context.Response.StatusCode = 422;
- return;
- }
- int start = 0, count = 0;
- var searchIndex = Global.GetSearchIndex ();
- Result result = null;
- if (int.TryParse (context.Request.Params["count"], out count)) {
- if (int.TryParse (context.Request.Params["start"], out start))
- result = searchIndex.Search (request, count, start);
- else
- result = searchIndex.Search (request, count);
- } else {
- count = 20;
- result = searchIndex.Search (request, count);
- }
- // return Json corresponding to the results
- var answer = result == null || result.Count == 0 ? "[]" : "[" +
- Enumerable.Range (0, result.Count)
+ if (!string.IsNullOrWhiteSpace (callback))
+ answer = callback + "(" + answer + ")";
+
+ Console.WriteLine ("answer is {0}", answer);
+
+ context.Response.ContentType = "application/json";
+ context.Response.Write (answer);
+ }
+
+ void HandleFullSearchRequest (HttpContext context, string request, string callback)
+ {
+ if (string.IsNullOrWhiteSpace (request)) {
+ // Unprocessable entity
+ context.Response.StatusCode = 422;
+ return;
+ }
+ int start = 0, count = 0;
+ var searchIndex = Global.GetSearchIndex ();
+ Result result = null;
+ if (int.TryParse (context.Request.Params["count"], out count)) {
+ if (int.TryParse (context.Request.Params["start"], out start))
+ result = searchIndex.Search (request, count, start);
+ else
+ result = searchIndex.Search (request, count);
+ } else {
+ count = 20;
+ result = searchIndex.Search (request, count);
+ }
+ // return Json corresponding to the results
+ var answer = result == null || result.Count == 0 ? "[]" : "[" +
+ Enumerable.Range (0, result.Count)
.Select (i => string.Format ("{{ \"name\" : \"{0}\", \"url\" : \"{1}\", \"fulltitle\" : \"{2}\" }}",
result.GetTitle (i), result.GetUrl (i), result.GetFullTitle (i)))
.Aggregate ((e1, e2) => e1 + ", " + e2) + "]";
- answer = string.Format ("{{ \"count\": {0}, \"start\": {1}, \"result\": {2} }}", count, start, answer);
+ if(!string.IsNullOrWhiteSpace (callback)) {
+ answer = string.Format ("{0}({{ \"count\": {1}, \"start\": {2}, \"result\": {3} }})", callback, count, start, answer);
+ }
+
Console.WriteLine ("answer is {0}", answer);
- context.Response.ContentType = "application/json";
- context.Response.Write (answer);
- }
-
+ context.Response.ContentType = "application/json";
+ context.Response.Write (answer);
+ }
+
HelpSource GetHelpSource (Node n)
{
if (n != null)
- return n.Tree.HelpSource;
+ return n.tree.HelpSource;
return null;
}
@@ -311,20 +320,45 @@ namespace Mono.Website.Handlers
ctx.Response.Write (@"
<html>
<head>
- <link type='text/css' rel='stylesheet' href='common.css' media='all' title='Default style' />
- <meta name='TreePath' value='");
- ctx.Response.Write (tree_path);
- ctx.Response.Write (@"' />
-<script type='text/javascript'>
+ <link type='text/css' rel='stylesheet' href='views/monodoc.css' media='all' title='Default style' />
+ <meta name='TreePath' value='");
+ ctx.Response.Write (tree_path);
+ ctx.Response.Write (@"' />
+ <style type='text/css'>
+ body, h1, h2, h3, h4, h5, h6, .named-header {
+ word-wrap: break-word !important;
+ font-family: 'Myriad Pro', 'myriad pro', Helvetica, Verdana, Arial !important;
+ }
+ p, li, span, table, pre, .Content {
+ font-family: Helvetica, Verdana, Arial !important;
+ }
+ .named-header { height: auto !important; padding: 8px 0 20px 10px !important; font-weight: 600 !important; font-size: 2.3em !important; margin: 0.3em 0 0.6em 0 !important; margin-top: 0 !important; font-size: 2.3em !important; }
+ h2 { padding-top: 1em !important; margin-top: 0 !important; font-weight: 600 !important; font-size: 1.8em !important; color: #333 !important; }
+ p { margin: 0 0 1.3em !important; color: #555753 !important; line-height: 1.8 !important; }
+ body, table, pre { line-height: 1.8 !important; color: #55753 !important; }
+ .breadcrumb { font-size: 12px !important; }
+ </style>
+
+ <script src='//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'></script>
-function try_change_page (link, e)
-{
- if (!e)
- e = window.event;
- if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || e.modifiers > 0)
- return;
- window.parent.change_page (link)
-}
+ <script type='text/javascript'>
+
+ function printFrame() {
+ window.print();
+ return false;
+ }
+
+ //pass the function object to parent
+ parent.printFrame = printFrame;
+
+ function try_change_page (link, e)
+ {
+ if (!e)
+ e = window.event;
+ if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || e.modifiers > 0)
+ return;
+ window.parent.change_page (link)
+ }
function login (rurl)
{
@@ -366,9 +400,9 @@ function makeLink (link)
default:
if(document.all) {
- return '/monodoc.ashx?link=' + link.replace(/\+/g, '%2B').replace(/file:\/\/\//, '');
+ return 'monodoc.ashx?link=' + link.replace(/\+/g, '%2B').replace(/file:\/\/\//, '');
}
- return '/monodoc.ashx?link=' + link.replace(/\+/g, '%2B');
+ return 'monodoc.ashx?link=' + link.replace(/\+/g, '%2B');
}
}");
if (!string.IsNullOrEmpty (Global.ua)) {
@@ -391,17 +425,18 @@ s.parentNode.insertBefore(ga, s);
ctx.Response.Write (title);
ctx.Response.Write ("</title>\n");
- if (hs != null && HtmlGenerator.InlineCss != null) {
+ if (hs != null && hs.InlineCss != null) {
ctx.Response.Write ("<style type=\"text/css\">\n");
- ctx.Response.Write (HtmlGenerator.InlineCss);
+ ctx.Response.Write (hs.InlineCss);
ctx.Response.Write ("</style>\n");
}
- /*if (hs != null && hs.InlineJavaScript != null) {
+ if (hs != null && hs.InlineJavaScript != null) {
ctx.Response.Write ("<script type=\"text/JavaScript\">\n");
ctx.Response.Write (hs.InlineJavaScript);
ctx.Response.Write ("</script>\n");
- }*/
- ctx.Response.Write (@"</head><body onLoad='load()'>");
+ }
+ ctx.Response.Write (@"</head><body onload='load()'>");
+ ctx.Response.Write (@"<iframe id='helpframe' src='' height='0' width='0' frameborder='0'></iframe>");
// Set up object variable, as it's required by the MakeLink delegate
requestPath=ctx.Request.Path;
diff --git a/webdoc/monodoc.asmx b/webdoc/monodoc.asmx
deleted file mode 100755
index d8e5fd64..00000000
--- a/webdoc/monodoc.asmx
+++ /dev/null
@@ -1,210 +0,0 @@
-<%@ WebService language="C#" class="Editing" %>
-
-// MonoDoc Editing WebService
-//
-// (C) 2003 by Johannes Roith
-// Author: Johannes Roith
-
-// Client API:
-//
-// Editing edit = new Editing();
-// Response response = edit.Submit("Johannes Roith", "johannes@jroith.de",
-// "This is a change through monodoc editing.", xml);
-
-// response contains:
-// a server status message (response.Message)
-// a statuscode (response.Status)
-
-// Statuscodes:
-//
-// 1 - everything went right
-// 2 - the xml is not well-formed.
-// 3 - some data is missing (email, name, etc.).
-// 4 - the data was already posted
-// 5 - Some internal Server error
-
-
-using System;
-using System.Web.Services;
-using System.Xml.Serialization;
-using System.Xml;
-using System.Text;
-using System.Security.Cryptography;
-
-[WebService(Namespace="http://www.go-mono.org/monodoc")]
-public class Editing {
-
- [WebMethod]
- public Response Submit(string author, string email, string personalmessage, string xmldata) {
-
- Response response;
- string newsum = GetMd5Sum(xmldata);
- XmlElement dataroot;
- XmlDocument oldposts;
- string today = Convert.ToString(DateTime.Now.DayOfYear);
-
- try {
-
-
- oldposts = new XmlDocument();
- oldposts.Load("oldposts.xml");
-
- dataroot = oldposts.DocumentElement;
-
- // Eventually only block in certain time frame?
- // XmlNodeList datanodes = dataroot.SelectNodes("/oldposts/post[@date='" + today + "']");
-
- XmlNodeList datanodes = dataroot.SelectNodes("/oldposts/post");
-
- foreach(XmlNode datanode in datanodes) {
- if (datanode.Attributes["md5"].Value == newsum) {
-
- response = new Response();
- response.Status = 4;
- response.Message = "This was already posted.";
-
- return response;
- }
- }
-
- if (xmldata == "")
- {
-
- response = new Response();
- response.Status = 2;
- response.Message = "Xml not well-formed. No data was posted.";
-
- return response;
- }
-
- XmlDocument doc = new XmlDocument();
- doc.LoadXml(xmldata);
-
- XmlElement root = doc.DocumentElement;
- XmlNodeList nodes = root.SelectNodes("/GlobalChangeset/DocSetChangeset");
-
- // IMO it's best to generate different Mails for
- // different DocSets, so the correct people can get their hands on it.
- // e.g one mail for Gtk#, one for ecma docs.
-
- foreach (XmlNode node in nodes) {
-
- string datastring = "";
-
- XmlNodeList filenodes = node.SelectNodes("FileChangeset");
-
-
- foreach (XmlNode filenode in filenodes) {
- datastring += RenderFileSet(filenode);
- }
-
- string target = node.Attributes["DocSet"].Value;
-
- string header = "---------------------\n"
- + "MonoDoc Change\n"
- + "---------------------\n\n"
- + "This mail was generated by monodoc.\n\n"
- + "--------------------------------------------------\n"
- + "Author: " + author + "\n"
- + "EMail: " + email + "\n"
- + "personal Message: " + personalmessage + "\n\n"
- + "--------------------------------------------------\n\n"
- + "Changes are listed below:\n\n"
- + "*************************************\n\n";
-
- string footer = "\n\n---------------------------------------\n"
- + "Monodoc Editing WebService";
-
- SendMail("Monodoc: " + target, header + datastring + footer);
- }
-
- }
-
- catch {
-
- response = new Response();
- response.Status = 5;
- response.Message = "An unknown error occured.";
-
- return response;
-
- }
-
-
- XmlNode rootnode = dataroot.SelectSingleNode("/oldposts");
-
- XmlElement newentry = oldposts.CreateElement("post");
- newentry.SetAttribute("md5", newsum);
- newentry.SetAttribute("date", today);
- rootnode.AppendChild(newentry);
- oldposts.Save("oldposts.xml");
-
- response = new Response();
- response.Status = 1;
- response.Message = "Your changes were sent to Mono Docs List.\n"
- + "They will be reviewed as soon as possible.";
-
- return response;
-
- }
-
- string RenderFileSet(XmlNode filenode) {
-
- // Rendering should be improved eventually,
- // so no xml remains.
-
- return "FILE: " + filenode.Attributes["RealFile"] + "\n\n"
- + filenode.InnerXml
- + "\n\n*************************************\n\n";
- }
-
- public class Response {
-
- public int Status;
- public string Message;
- }
-
- public void SendMail(string subject, string body) {
-
- System.Web.Mail.MailMessage mailMessage = new System.Web.Mail.MailMessage();
-
- // NOTE: I have made this "groith@tcrz.net",
- // so it won't be blocked.
- // Should be changed later.
-
- mailMessage.From = "groith@tcrz.net";
- mailMessage.To = "mono-docs-list@ximian.com";
- mailMessage.Subject = subject;
- mailMessage.Body = body;
- mailMessage.BodyFormat = System.Web.Mail.MailFormat.Text;
-
- System.Web.Mail.SmtpMail.SmtpServer = "post.tcrz.net";
- System.Web.Mail.SmtpMail.Send(mailMessage);
-
-
- }
-
- // from http://weblog.stevex.org/radio/stories/2002/12/08/
- // cCodeSnippetCreatingAnMd5HashString.html
-
- public string GetMd5Sum(string str)
- {
- Encoder enc = System.Text.Encoding.Unicode.GetEncoder();
-
- byte[] unicodeText = new byte[str.Length * 2];
- enc.GetBytes(str.ToCharArray(), 0, str.Length, unicodeText, 0, true);
-
- MD5 md5 = new MD5CryptoServiceProvider();
- byte[] result = md5.ComputeHash(unicodeText);
-
- StringBuilder sb = new StringBuilder();
- for (int i=0;i<result.Length;i++)
- {
- sb.Append(result[i].ToString("X2"));
- }
-
- return sb.ToString();
-}
-
-
-}
diff --git a/webdoc/monodoc.css b/webdoc/monodoc.css
new file mode 100644
index 00000000..af1c2c7f
--- /dev/null
+++ b/webdoc/monodoc.css
@@ -0,0 +1 @@
+/*This file is referenced in monodoc
diff --git a/webdoc/oldposts.xml b/webdoc/oldposts.xml
deleted file mode 100755
index df6f4bb0..00000000
--- a/webdoc/oldposts.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<oldposts>
-</oldposts> \ No newline at end of file
diff --git a/webdoc/plugins.def b/webdoc/plugins.def
new file mode 100644
index 00000000..f4c60a1c
--- /dev/null
+++ b/webdoc/plugins.def
@@ -0,0 +1,13 @@
+#####SKIN (pick ONE)#####
+<<<<<<< HEAD
+#skins/xamarin-external
+#skins/mono-external
+#skins/xamarin-new
+skins/mono-external
+
+######PLUGINS######
+plugins/search-plugin/fastsearch
+plugins/search-plugin/fullsearch
+plugins/iframe-plugin
+plugins/sidebar-plugin
+#plugins/tooltip-plugin
diff --git a/webdoc/plugins/iframe-plugin/iframe.js b/webdoc/plugins/iframe-plugin/iframe.js
new file mode 100644
index 00000000..7074b03c
--- /dev/null
+++ b/webdoc/plugins/iframe-plugin/iframe.js
@@ -0,0 +1,3 @@
+ $(document).ready(function () {
+ $('iframe').iframeAutoHeight({debug: true});
+ });
diff --git a/webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js b/webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js
new file mode 100644
index 00000000..7aa2143f
--- /dev/null
+++ b/webdoc/plugins/iframe-plugin/jquery.iframe-auto-height-plugin.1.9.0.min.js
@@ -0,0 +1,7 @@
+/*
+ Plugin: iframe autoheight jQuery Plugin
+ Version: 1.9.0
+ Description: when the page loads set the height of an iframe based on the height of its contents
+ see README: http://github.com/house9/jquery-iframe-auto-height
+*/
+(function(a){a.fn.iframeAutoHeight=function(b){function d(a){c.debug&&c.debug===!0&&window.console&&console.log(a)}function e(b,c){d("Diagnostics from '"+c+"'");try{d(" "+a(b,window.top.document).contents().find("body")[0].scrollHeight+" for ...find('body')[0].scrollHeight"),d(" "+a(b.contentWindow.document).height()+" for ...contentWindow.document).height()"),d(" "+a(b.contentWindow.document.body).height()+" for ...contentWindow.document.body).height()")}catch(e){d(" unable to check in this state")}d("End diagnostics -> results vary by browser and when diagnostics are requested")}var c=a.extend({heightOffset:0,minHeight:0,callback:function(a){},animate:!1,debug:!1,diagnostics:!1,resetToMinHeight:!1,triggerFunctions:[],heightCalculationOverrides:[]},b);return d(c),this.each(function(){function g(a){var c=null;return jQuery.each(b,function(b,d){if(a[d])return c=f[d],!1}),c===null&&(c=f["default"]),c}function i(b){c.diagnostics&&e(b,"resizeHeight"),c.resetToMinHeight&&c.resetToMinHeight===!0&&(b.style.height=c.minHeight+"px");var f=a(b,window.top.document).contents().find("body"),h=g(a.browser),i=h(b,f,c,a.browser);d(i),i<c.minHeight&&(d("new height is less than minHeight"),i=c.minHeight+c.heightOffset),d("New Height: "+i),c.animate?a(b).animate({height:i+"px"},{duration:500}):b.style.height=i+"px",c.callback.apply(a(b),[{newFrameHeight:i}])}var b=["webkit","mozilla","msie","opera"],f=[];f["default"]=function(a,b,c,d){return b[0].scrollHeight+c.heightOffset},jQuery.each(b,function(a,b){f[b]=f["default"]}),jQuery.each(c.heightCalculationOverrides,function(a,b){f[b.browser]=b.calculation});var h=0;d(this),c.diagnostics&&e(this,"each iframe");if(c.triggerFunctions.length>0){d(c.triggerFunctions.length+" trigger Functions");for(var j=0;j<c.triggerFunctions.length;j++)c.triggerFunctions[j](i,this)}if(a.browser.webkit||a.browser.opera){d("browser is webkit or opera"),a(this).load(function(){var a=0,b=this,e=function(){i(b)};h===0?a=500:b.style.height=c.minHeight+"px",d("load delay: "+a),setTimeout(e,a),h++});var k=a(this).attr("src");a(this).attr("src",""),a(this).attr("src",k)}else a(this).load(function(){i(this)})})}})(jQuery);
diff --git a/webdoc/plugins/search-plugin/fastsearch/fsearch.css b/webdoc/plugins/search-plugin/fastsearch/fsearch.css
new file mode 100644
index 00000000..ab573bff
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fastsearch/fsearch.css
@@ -0,0 +1,45 @@
+#fsearch_window {
+ display: none;
+ opacity: 0;
+ position: absolute;
+ z-index: 60;
+ text-align: left;
+ width: 25em;
+ right: 80px;
+ top: 40px;
+ border: 1px solid black;
+ background: white;
+ padding: 5px;
+ overflow: hidden;
+ -webkit-transition: opacity 200ms linear 0;
+ -moz-transition: opacity 200ms linear 0;
+ -o-transition: opacity 200ms linear 0;
+}
+
+#fsearch_window a {
+ color: blue;
+ text-decoration: none;
+ font-family: monospace;
+}
+
+#fsearch_window .threedots {
+ color: #333;
+ font-size: x-small;
+ font-family: sans-serif;
+}
+
+#fsearch_window .selected {
+ background-color: 679ef1;
+ color: white;
+}
+
+#fsearch_companion {
+ display:none;
+ position: absolute;
+ z-index: 60;
+ top: 40px;
+ right:410px;
+ color: grey;
+ background-color: white;
+}
+
diff --git a/webdoc/search.js b/webdoc/plugins/search-plugin/fastsearch/search.js
index 47172199..e246efbe 100644
--- a/webdoc/search.js
+++ b/webdoc/plugins/search-plugin/fastsearch/search.js
@@ -1,18 +1,8 @@
var search_input = $('#fsearch');
var search_window = $('#fsearch_window');
-var content_frame = $('#content_frame');
-var page_link = $('#pageLink');
var lis = null;
var page_top_offset = $('#main_part').offset().top;
-change_page = function (pagename) {
- content_frame.attr ('src', 'monodoc.ashx?link=' + pagename);
- page_link.attr ('href', '?link=' + pagename);
- if (window.history && window.history.pushState)
- window.history.pushState (null, '', '/?link=' + pagename);
-};
-page_link.attr ('href', document.location.search);
-
var is_shown = false;
var hide = function () {
if (!is_shown)
@@ -27,6 +17,11 @@ var show = function () {
is_shown = true;
};
+var param = document.URL.split('#')[1];
+if(param) {
+ $('#content_frame').attr('src', '/plugins/search-plugin/fullsearch/search.html#' + param);
+}
+
search_input.blur (function () {
window.setTimeout (hide, 200);
if (search_input.val ().length == 0)
@@ -102,7 +97,7 @@ search_input.keydown (function (event) {
selected.children ('a').click ();
} else {
// Show full search page
- content_frame.attr('src', 'search.html#' + encodeURI(search_input.val ()));
+ $("#content_frame").attr('src', '/plugins/search-plugin/fullsearch/search.html#' + encodeURI(search_input.val ()));
}
hide ();
search_input.blur ();
diff --git a/webdoc/plugins/search-plugin/fullsearch/fullsearch.js b/webdoc/plugins/search-plugin/fullsearch/fullsearch.js
new file mode 100644
index 00000000..07229793
--- /dev/null
+++ b/webdoc/plugins/search-plugin/fullsearch/fullsearch.js
@@ -0,0 +1,40 @@
+//support for a full page of search results /monodoc.ashx?search=
+
+var spinner = $('#s_spinner');
+function process_hash () {
+ var query = window.location.hash;
+ if (query == null || query.length < 2)
+ return;
+ var ul = $('#s_results ul');
+ ul.empty ();
+ var currentNumber = 0;
+ var count = 0;
+ // Remove hash '#' symbol
+ query = query.substring(1);
+ $('#s_term').text (query);
+ var fetch_and_add_results = function (url) {
+ spinner.toggleClass ('hidden');
+ $.getJSON (url, function (data) {
+ spinner.toggleClass ('hidden');
+ count = data.count;
+ currentNumber += data.result.length;
+ if (data.result.length == 0) {
+ $('<div/>', { 'class': 's_message' }).text('No more results').replaceAll($('#s_morebtn')).fadeOut(4000, function () { $(this).remove(); });
+ } else {
+ var lis = $.map (data.result, function (element) {
+ return '<li><a href="/monodoc.ashx?link=' + element.url + '"><span class="name">'
+ + element.name + '</span> '
+ + (element.fulltitle.length > 0 ? '<span class="fulltitle">(' + element.fulltitle + ')</span>' : '') + '</a></li>';
+ });
+ ul.append (lis.join (''));
+ }
+ });
+ };
+ fetch_and_add_results ('/monodoc.ashx?search=' + query + '&callback=?');
+ $('#s_morebtn input').click (function () {
+ fetch_and_add_results ('/monodoc.ashx?search=' + query + '&start=' + currentNumber + '&count=' + count + '&callback=?');
+ });
+}
+
+process_hash ();
+window.addEventListener("hashchange", process_hash, false);
diff --git a/webdoc/search.css b/webdoc/plugins/search-plugin/fullsearch/search.css
index 6e398696..6e398696 100644
--- a/webdoc/search.css
+++ b/webdoc/plugins/search-plugin/fullsearch/search.css
diff --git a/webdoc/search.html b/webdoc/plugins/search-plugin/fullsearch/search.html
index 4754118f..7b9424be 100644
--- a/webdoc/search.html
+++ b/webdoc/plugins/search-plugin/fullsearch/search.html
@@ -3,12 +3,20 @@
<title></title>
<link rel="stylesheet" type="text/css" href="search.css" />
</head>
+ <script type="text/javascript">
+ function printFrame() {
+ window.print();
+ return false;
+ }
+ //pass the function object to parent
+ parent.printFrame = printFrame;
+ </script>
<body>
<div id="search_wrapper">
<div id="s_header"><h1>Search result(s) for '<span id="s_term"></span>'</h1></div>
<div id="s_results"><ul></ul></div>
<div id="s_morebtn"><input type="button" value="Show more results"></div>
- <div id="s_spinner" class="hidden"><img src="/images/spinner.gif" alt="spinner" /></div>
+ <div id="s_spinner" class="hidden"><img src="/plugins/search-plugin/images/spinner.gif" alt="spinner" /></div>
</div>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="fullsearch.js"></script>
diff --git a/webdoc/images/spinner.gif b/webdoc/plugins/search-plugin/images/spinner.gif
index 3288d103..3288d103 100644
--- a/webdoc/images/spinner.gif
+++ b/webdoc/plugins/search-plugin/images/spinner.gif
Binary files differ
diff --git a/webdoc/images/searching.gif b/webdoc/plugins/sidebar-plugin/dependencies/ptree/searching.gif
index 5ca0ab86..5ca0ab86 100644
--- a/webdoc/images/searching.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/ptree/searching.gif
Binary files differ
diff --git a/webdoc/ptree/tree.css b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.css
index fed1384f..a115b541 100755
--- a/webdoc/ptree/tree.css
+++ b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.css
@@ -1,14 +1,3 @@
-body {
- font-family: verdana;
- font-size: 70.5%;
- font-weight: normal;
- background-color: #fff;
- color: Black;
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
- vertical-align: middle;
-}
-
.tree-node,
.tree-node-collapsed
{
@@ -18,13 +7,12 @@ body {
white-space: nowrap;
}
-.tree-label
+.tree-label,
.tree-label-selected
{
margin: 0px;
padding: 0px;
border: 0px;
- white-space: nowrap;
}
.tree-node-collapsed .tree-node,
@@ -37,26 +25,16 @@ body {
.tree-label-selected a:hover
{
text-decoration: none;
- background: highlight;
- color: highlighttext;
}
.tree-label a
{
text-decoration: none;
- background: #fff;
- color: black;
}
.tree-label a:hover
{
- background-image: url('../images/searching.gif');
text-decoration: none;
- background: #dfdfdf;
- color: black;
- border: 1px solid;
- border-color: grey;
- padding: 1px;
}
.tree-node img
diff --git a/webdoc/ptree/tree.js b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.js
index 200c45be..6e1da0d3 100755
--- a/webdoc/ptree/tree.js
+++ b/webdoc/plugins/sidebar-plugin/dependencies/ptree/tree.js
@@ -20,9 +20,19 @@ function PTree ()
this.strImageExt = ".png";
this.eltSelected = null;
this.nImageWidth = 18;
- this.nImageHeight = 18;
+ this.nImageHeight = 23;
this.onClickCallback = null;
+
+ this.Tooltip = function() {
+ if($.isFunction(window.tooltip)) {
+ $('.tree-label').tooltip({
+ selector: 'a[rel=tooltip]',
+ placement: 'right'
+ });
+ }
+ }
+
this.CreateItemFromXML = function (oNode, fLast, eltParent)
{
var strText = oNode.getAttribute ("text");
@@ -95,19 +105,23 @@ function PTree ()
if (strAction)
{
- eltDescription = document.createElement ("a");
+ eltDescription = document.createElement ("span");
+ eltDescription.className = "link";
+ eltD = document.createElement ("a");
if (strAction.indexOf ('http://') === 0)
- eltDescription.href = strAction;
+ eltD.href = strAction;
else
- eltDescription.href = this.strActionBase + strAction;
- eltDescription.title = strText;
+ eltD.href = this.strActionBase + strAction;
+ eltD.title = strText;
+ eltD.rel = "tooltip";
+ //eltD.data-placement = "left";
if (strTarget)
- eltDescription.target = strTarget;
+ eltD.target = strTarget;
else if (this.strTargetDefault)
- eltDescription.target = this.strTargetDefault;
- eltDescription.appendChild (eltText);
+ eltD.target = this.strTargetDefault;
+ eltD.appendChild (eltText);
var parent = this;
- eltDescription.onclick = function (e) {
+ eltD.onclick = function (e) {
if (!e)
e = window.event;
if (e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || e.modifiers > 0)
@@ -123,8 +137,9 @@ function PTree ()
parent.onClickCallback(strAction);
}
}
- eltDescription.onmouseover = function () { this.blur (); }
- eltDescription.onmouseup = function () { this.blur (); }
+ eltD.onmouseover = function () { this.blur (); }
+ eltD.onmouseup = function () { this.blur (); }
+ eltDescription.appendChild(eltD);
}
else
{
@@ -141,7 +156,8 @@ function PTree ()
eltParent.appendChild (eltDiv);
else
this.SelectNode (eltDiv);
-
+
+ _this.Tooltip();
return eltDiv;
}
@@ -168,7 +184,7 @@ function PTree ()
var eltDiv = this.GetDivFromIcon (eltIcon);
eltIcon.onclick = null;
- var eltLoading = this.CreateItem (eltDiv, "<img src=\"../images/searching.gif\"/>Loading...", null, null, true);
+ var eltLoading = this.CreateItem (eltDiv, "<img src=\"plugins/sidebar-plugin/dependencies/ptree/searching.gif\"/>Loading...", null, null, true);
eltLoading.className = '';
var xmlHttp = XmlHttp.create();
@@ -229,7 +245,7 @@ function PTree ()
root = node;
if (i == elements.length - 1) {
thisSave.SelectNode (node[0]);
- var container = $('#contents').parent ();
+ var container = $('#contents').parent().parent();
container.scrollTop (node[0].offsetTop - 100);
}
};
diff --git a/webdoc/xtree/images/I.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/I.png
index e8512fb9..e8512fb9 100644
--- a/webdoc/xtree/images/I.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/I.png
Binary files differ
diff --git a/webdoc/xtree/images/L.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/L.png
index eb334eda..eb334eda 100644
--- a/webdoc/xtree/images/L.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/L.png
Binary files differ
diff --git a/webdoc/xtree/images/Lminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png
index f7c43c0a..f7c43c0a 100644
--- a/webdoc/xtree/images/Lminus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png
Binary files differ
diff --git a/webdoc/xtree/images/Lplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png
index 848ec2fc..848ec2fc 100644
--- a/webdoc/xtree/images/Lplus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png
Binary files differ
diff --git a/webdoc/xtree/images/T.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/T.png
index 30173254..30173254 100644
--- a/webdoc/xtree/images/T.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/T.png
Binary files differ
diff --git a/webdoc/xtree/images/Tminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png
index 2260e424..2260e424 100644
--- a/webdoc/xtree/images/Tminus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png
Binary files differ
diff --git a/webdoc/xtree/images/Tplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png
index 2c8d8f4f..2c8d8f4f 100644
--- a/webdoc/xtree/images/Tplus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png
Binary files differ
diff --git a/webdoc/xtree/images/blank.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/blank.png
index cee9cd37..cee9cd37 100644
--- a/webdoc/xtree/images/blank.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/blank.png
Binary files differ
diff --git a/webdoc/xtree/images/clean/I.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/I.gif
index b2d86c54..b2d86c54 100644
--- a/webdoc/xtree/images/clean/I.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/I.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/L.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/L.gif
index b58e9378..b58e9378 100644
--- a/webdoc/xtree/images/clean/L.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/L.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/Lminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lminus.gif
index 33c49d13..33c49d13 100644
--- a/webdoc/xtree/images/clean/Lminus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lminus.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/Lplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lplus.gif
index 9d2a2ac5..9d2a2ac5 100644
--- a/webdoc/xtree/images/clean/Lplus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Lplus.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/T.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/T.gif
index b58e9378..b58e9378 100644
--- a/webdoc/xtree/images/clean/T.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/T.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/Tminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tminus.gif
index 33c49d13..33c49d13 100644
--- a/webdoc/xtree/images/clean/Tminus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tminus.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/Tplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tplus.gif
index 9d2a2ac5..9d2a2ac5 100644
--- a/webdoc/xtree/images/clean/Tplus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/Tplus.gif
Binary files differ
diff --git a/webdoc/xtree/images/clean/blank.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/blank.gif
index c23b58ca..c23b58ca 100755
--- a/webdoc/xtree/images/clean/blank.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/clean/blank.gif
Binary files differ
diff --git a/webdoc/xtree/images/file.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/file.png
index a20c6fa0..a20c6fa0 100644
--- a/webdoc/xtree/images/file.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/file.png
Binary files differ
diff --git a/webdoc/xtree/images/foldericon.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png
index 2684748b..2684748b 100644
--- a/webdoc/xtree/images/foldericon.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png
Binary files differ
diff --git a/webdoc/xtree/images/msdn/I.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/I.gif
index f9b3f272..f9b3f272 100644
--- a/webdoc/xtree/images/msdn/I.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/I.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/L.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/L.gif
index 29f21fd2..29f21fd2 100644
--- a/webdoc/xtree/images/msdn/L.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/L.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/Lminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lminus.gif
index 0fae6aca..0fae6aca 100644
--- a/webdoc/xtree/images/msdn/Lminus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lminus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/Lplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lplus.gif
index 092e97e1..092e97e1 100644
--- a/webdoc/xtree/images/msdn/Lplus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Lplus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/T.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/T.gif
index 9e02eb26..9e02eb26 100644
--- a/webdoc/xtree/images/msdn/T.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/T.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/Tminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tminus.gif
index 3f191949..3f191949 100644
--- a/webdoc/xtree/images/msdn/Tminus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tminus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/Tplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tplus.gif
index 7a7af256..7a7af256 100644
--- a/webdoc/xtree/images/msdn/Tplus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/Tplus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/blank.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/blank.gif
index c23b58ca..c23b58ca 100755
--- a/webdoc/xtree/images/msdn/blank.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/blank.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_bar.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_bar.gif
index f9b3f272..f9b3f272 100644
--- a/webdoc/xtree/images/msdn/menu_bar.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_bar.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_corner.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner.gif
index 29f21fd2..29f21fd2 100644
--- a/webdoc/xtree/images/msdn/menu_corner.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_corner_minus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_minus.gif
index 0fae6aca..0fae6aca 100644
--- a/webdoc/xtree/images/msdn/menu_corner_minus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_minus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_corner_plus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_plus.gif
index 092e97e1..092e97e1 100644
--- a/webdoc/xtree/images/msdn/menu_corner_plus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_corner_plus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_tee.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee.gif
index 9e02eb26..9e02eb26 100644
--- a/webdoc/xtree/images/msdn/menu_tee.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_tee_minus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_minus.gif
index 3f191949..3f191949 100644
--- a/webdoc/xtree/images/msdn/menu_tee_minus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_minus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn/menu_tee_plus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_plus.gif
index 7a7af256..7a7af256 100644
--- a/webdoc/xtree/images/msdn/menu_tee_plus.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn/menu_tee_plus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/I.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/I.gif
index 4784a029..4784a029 100644
--- a/webdoc/xtree/images/msdn2/I.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/I.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/L.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/L.gif
index 29f21fd2..29f21fd2 100644
--- a/webdoc/xtree/images/msdn2/L.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/L.gif
Binary files differ
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gif
new file mode 100644
index 00000000..4f5afece
--- /dev/null
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lminus.gif
Binary files differ
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gif
new file mode 100644
index 00000000..c7a12abe
--- /dev/null
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Lplus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/T.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/T.gif
index 9e02eb26..9e02eb26 100644
--- a/webdoc/xtree/images/msdn2/T.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/T.gif
Binary files differ
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gif
new file mode 100644
index 00000000..2c60466b
--- /dev/null
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tminus.gif
Binary files differ
diff --git a/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gif
new file mode 100644
index 00000000..e444a44e
--- /dev/null
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/Tplus.gif
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/blank.gif b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/blank.gif
index c23b58ca..c23b58ca 100755
--- a/webdoc/xtree/images/msdn2/blank.gif
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/msdn2/blank.gif
Binary files differ
diff --git a/webdoc/xtree/images/openfoldericon.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png
index 15fcd567..15fcd567 100644
--- a/webdoc/xtree/images/openfoldericon.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/I.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/I.png
index e8512fb9..e8512fb9 100644
--- a/webdoc/xtree/images/xp/I.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/I.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/L.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/L.png
index eb334eda..eb334eda 100644
--- a/webdoc/xtree/images/xp/L.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/L.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/Lminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lminus.png
index bba1a318..bba1a318 100644
--- a/webdoc/xtree/images/xp/Lminus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lminus.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/Lplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lplus.png
index 727889b2..727889b2 100644
--- a/webdoc/xtree/images/xp/Lplus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Lplus.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/T.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/T.png
index 30173254..30173254 100644
--- a/webdoc/xtree/images/xp/T.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/T.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/Tminus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tminus.png
index ca8745a3..ca8745a3 100644
--- a/webdoc/xtree/images/xp/Tminus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tminus.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/Tplus.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tplus.png
index 64bc9daf..64bc9daf 100644
--- a/webdoc/xtree/images/xp/Tplus.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/Tplus.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/file.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/file.png
index a723c74f..a723c74f 100644
--- a/webdoc/xtree/images/xp/file.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/file.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/folder.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/folder.png
index 7b6835d0..7b6835d0 100644
--- a/webdoc/xtree/images/xp/folder.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/folder.png
Binary files differ
diff --git a/webdoc/xtree/images/xp/openfolder.png b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/openfolder.png
index c8292f43..c8292f43 100644
--- a/webdoc/xtree/images/xp/openfolder.png
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/images/xp/openfolder.png
Binary files differ
diff --git a/webdoc/xtree/xloadtree.js b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xloadtree.js
index 24ad21b9..24ad21b9 100644
--- a/webdoc/xtree/xloadtree.js
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xloadtree.js
diff --git a/webdoc/xtree/xmlextras.js b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xmlextras.js
index 70806c28..70806c28 100644
--- a/webdoc/xtree/xmlextras.js
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xmlextras.js
diff --git a/webdoc/xtree/xtree.css b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.css
index 3630da97..44d7324d 100644
--- a/webdoc/xtree/xtree.css
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.css
@@ -1,13 +1,3 @@
-body {
- font-family: verdana;
- font-size: 70.5%;
- font-weight: normal;
- background-color: #f1f1f1;
- color: Black;
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 0px;
-}
-
.webfx-tree-container {
margin: 0px;
padding: 0px;
diff --git a/webdoc/xtree/xtree.js b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.js
index 19362e10..25654607 100644
--- a/webdoc/xtree/xtree.js
+++ b/webdoc/plugins/sidebar-plugin/dependencies/xtree/xtree.js
@@ -66,19 +66,19 @@
\----------------------------------------------------------------------------*/
var webFXTreeConfig = {
- rootIcon : 'xtree/images/foldericon.png',
- openRootIcon : 'xtree/images/openfoldericon.png',
- folderIcon : 'xtree/images/foldericon.png',
- openFolderIcon : 'xtree/images/openfoldericon.png',
- fileIcon : 'xtree/images/file.png',
- iIcon : 'xtree/images/I.png',
- lIcon : 'xtree/images/L.png',
- lMinusIcon : 'xtree/images/Lminus.png',
- lPlusIcon : 'xtree/images/Lplus.png',
- tIcon : 'xtree/images/T.png',
- tMinusIcon : 'xtree/images/Tminus.png',
- tPlusIcon : 'xtree/images/Tplus.png',
- blankIcon : 'xtree/images/blank.png',
+ rootIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png',
+ openRootIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png',
+ folderIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/foldericon.png',
+ openFolderIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/openfoldericon.png',
+ fileIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/file.png',
+ iIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/I.png',
+ lIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/L.png',
+ lMinusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Lminus.png',
+ lPlusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Lplus.png',
+ tIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/T.png',
+ tMinusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Tminus.png',
+ tPlusIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/Tplus.png',
+ blankIcon : 'plugins/sidebar-plugin/dependencies/xtree/images/blank.png',
defaultText : 'Tree Item',
defaultAction : 'javascript:void(0);',
defaultBehavior : 'classic',
@@ -363,9 +363,9 @@ WebFXTree.prototype.keydown = function(key) {
WebFXTree.prototype.toString = function() {
var str = "<div id=\"" + this.id + "\" ondblclick=\"webFXTreeHandler.toggle(this);\" class=\"webfx-tree-item\" onkeydown=\"return webFXTreeHandler.keydown(this, event)\">" +
"<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
- "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
+ "<p><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
(this.target ? " target=\"" + this.target + "\"" : "") +
- ">" + this.text + "</a></div>" +
+ ">" + this.text + "</a></p></div>" +
"<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
var sb = [];
for (var i = 0; i < this.childNodes.length; i++) {
@@ -527,9 +527,9 @@ WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
indent +
"<img id=\"" + this.id + "-plus\" src=\"" + ((this.folder)?((this.open)?((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon):((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon)):((this.parentNode._last)?webFXTreeConfig.lIcon:webFXTreeConfig.tIcon)) + "\" onclick=\"webFXTreeHandler.toggle(this);\">" +
"<img id=\"" + this.id + "-icon\" class=\"webfx-tree-icon\" src=\"" + ((webFXTreeHandler.behavior == 'classic' && this.open)?this.openIcon:this.icon) + "\" onclick=\"webFXTreeHandler.select(this);\">" +
- "<a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
+ "<p><a href=\"" + this.action + "\" id=\"" + this.id + "-anchor\" onfocus=\"webFXTreeHandler.focus(this);\" onblur=\"webFXTreeHandler.blur(this);\"" +
(this.target ? " target=\"" + this.target + "\"" : "") +
- ">" + label + "</a></div>" +
+ ">" + label + "</a></p></div>" +
"<div id=\"" + this.id + "-cont\" class=\"webfx-tree-container\" style=\"display: " + ((this.open)?'block':'none') + ";\">";
var sb = [];
for (var i = 0; i < this.childNodes.length; i++) {
@@ -538,4 +538,4 @@ WebFXTreeItem.prototype.toString = function (nItem, nItemCount) {
this.plusIcon = ((this.parentNode._last)?webFXTreeConfig.lPlusIcon:webFXTreeConfig.tPlusIcon);
this.minusIcon = ((this.parentNode._last)?webFXTreeConfig.lMinusIcon:webFXTreeConfig.tMinusIcon);
return str + sb.join("") + "</div>";
-} \ No newline at end of file
+}
diff --git a/webdoc/plugins/sidebar-plugin/make-tree.js b/webdoc/plugins/sidebar-plugin/make-tree.js
new file mode 100644
index 00000000..47ce72a3
--- /dev/null
+++ b/webdoc/plugins/sidebar-plugin/make-tree.js
@@ -0,0 +1,35 @@
+$(document).ready(function() {
+ var content_frame = $('#content_frame');
+ var page_link = $('#pageLink');
+
+ change_page = function (pagename) {
+ content_frame.attr ('src', 'monodoc.ashx?link=' + pagename);
+ page_link.attr ('href', '?link=' + pagename);
+ if (window.history && window.history.pushState) {
+ window.history.pushState (null, '', '/?link=' + pagename);
+ }
+ };
+
+ update_tree = function () {
+ var tree_path = $('#content_frame').contents ().find ('meta[name=TreePath]');
+ if (tree_path.length > 0) {
+ var path = tree_path.attr ('value');
+ tree.ExpandFromPath (path);
+ }
+ };
+
+ update_tree ();
+ add_native_browser_link = function () {
+ var contentDiv = $('#content_frame').contents ().find ('div[class=Content]').first ();
+ if (contentDiv.length > 0 && contentDiv.attr ('id')) {
+ var id = contentDiv.attr ('id').replace (':Summary', '');
+ var h2 = contentDiv.children ('h2').first ();
+ if (h2.prev ().attr ('class') != 'native-browser')
+ h2.before ('<p><a class="native-browser" href="mdoc://' + encodeURIComponent (id) + '"><span class="native-icon"><img src="/views/images/native-browser-icon.png" /></span>Open in Native Browser</a></p>');
+ }
+ };
+ add_native_browser_link ();
+
+ content_frame.load (update_tree);
+ content_frame.load (add_native_browser_link);
+});
diff --git a/webdoc/sidebar.css b/webdoc/plugins/sidebar-plugin/sidebar.css
index 46106254..5cb10ba3 100644
--- a/webdoc/sidebar.css
+++ b/webdoc/plugins/sidebar-plugin/sidebar.css
@@ -1,30 +1,25 @@
-body {
- font-family: Verdana;
- margin: 0px !important;
- padding: 0px !important;
- font-size: 8pt;
- background-color: white;
- white-space: nowrap;
+#side {
+ float: left;
}
-
.tab {
display: none !important;
}
.activeTab {
- padding-top: 15px;
padding-left: 10px;
padding-right: 10px;
display: block !important;
+ overflow-x: hidden;
+ overflow-y: visible;
}
-
+/*
input[type=text] {
border: 1px solid #B1A598;
padding: 2px;
}
input[type=text]:focus {
-}
+}*/
.error {
color: red;
@@ -128,7 +123,3 @@ a.selected {
margin-top: 10px;
}
-#contentList > div.tree-node:first-child > span {
- font-size: 130%;
- line-height: 200%;
-}
diff --git a/webdoc/sidebar.js b/webdoc/plugins/sidebar-plugin/sidebar.js
index f62b1770..f62b1770 100644
--- a/webdoc/sidebar.js
+++ b/webdoc/plugins/sidebar-plugin/sidebar.js
diff --git a/webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js b/webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js
new file mode 100644
index 00000000..3c2d4de9
--- /dev/null
+++ b/webdoc/plugins/tooltip-plugin/bootstrap.tooltip.js
@@ -0,0 +1,276 @@
+/* ===========================================================
+ * bootstrap-tooltip.js v2.1.1
+ * http://twitter.github.com/bootstrap/javascript.html#tooltips
+ * Inspired by the original jQuery.tipsy by Jason Frame
+ * ===========================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
+
+!function ($) {
+
+ "use strict"; // jshint ;_;
+
+
+ /* TOOLTIP PUBLIC CLASS DEFINITION
+ * =============================== */
+
+ var Tooltip = function (element, options) {
+ this.init('tooltip', element, options)
+ }
+
+ Tooltip.prototype = {
+
+ constructor: Tooltip
+
+ , init: function (type, element, options) {
+ var eventIn
+ , eventOut
+
+ this.type = type
+ this.$element = $(element)
+ this.options = this.getOptions(options)
+ this.enabled = true
+
+ if (this.options.trigger == 'click') {
+ this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
+ } else if (this.options.trigger != 'manual') {
+ eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
+ eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
+ this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
+ this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
+ }
+
+ this.options.selector ?
+ (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
+ this.fixTitle()
+ }
+
+ , getOptions: function (options) {
+ options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data())
+
+ if (options.delay && typeof options.delay == 'number') {
+ options.delay = {
+ show: options.delay
+ , hide: options.delay
+ }
+ }
+
+ return options
+ }
+
+ , enter: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (!self.options.delay || !self.options.delay.show) return self.show()
+
+ clearTimeout(this.timeout)
+ self.hoverState = 'in'
+ this.timeout = setTimeout(function() {
+ if (self.hoverState == 'in') self.show()
+ }, self.options.delay.show)
+ }
+
+ , leave: function (e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type)
+
+ if (this.timeout) clearTimeout(this.timeout)
+ if (!self.options.delay || !self.options.delay.hide) return self.hide()
+
+ self.hoverState = 'out'
+ this.timeout = setTimeout(function() {
+ if (self.hoverState == 'out') self.hide()
+ }, self.options.delay.hide)
+ }
+
+ , show: function () {
+ var $tip
+ , inside
+ , pos
+ , actualWidth
+ , actualHeight
+ , placement
+ , tp
+
+ if (this.hasContent() && this.enabled) {
+ $tip = this.tip()
+ this.setContent()
+
+ if (this.options.animation) {
+ $tip.addClass('fade')
+ }
+
+ placement = typeof this.options.placement == 'function' ?
+ this.options.placement.call(this, $tip[0], this.$element[0]) :
+ this.options.placement
+
+ inside = /in/.test(placement)
+
+ $tip
+ .remove()
+ .css({ top: 0, left: 0, display: 'block' })
+ .appendTo(inside ? this.$element : document.body)
+
+ pos = this.getPosition(inside)
+
+ actualWidth = $tip[0].offsetWidth
+ actualHeight = $tip[0].offsetHeight
+
+ switch (inside ? placement.split(' ')[1] : placement) {
+ case 'bottom':
+ tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
+ break
+ case 'top':
+ tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
+ break
+ case 'left':
+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - 50}
+ break
+ case 'right':
+ tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + 50}
+ break
+ }
+
+ $tip
+ .css(tp)
+ .addClass(placement)
+ .addClass('in')
+ }
+ }
+
+ , setContent: function () {
+ var $tip = this.tip()
+ , title = this.getTitle()
+
+ $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
+ $tip.removeClass('fade in top bottom left right')
+ }
+
+ , hide: function () {
+ var that = this
+ , $tip = this.tip()
+
+ $tip.removeClass('in')
+
+ function removeWithAnimation() {
+ var timeout = setTimeout(function () {
+ $tip.off($.support.transition.end).remove()
+ }, 500)
+
+ $tip.one($.support.transition.end, function () {
+ clearTimeout(timeout)
+ $tip.remove()
+ })
+ }
+
+ $.support.transition && this.$tip.hasClass('fade') ?
+ removeWithAnimation() :
+ $tip.remove()
+
+ return this
+ }
+
+ , fixTitle: function () {
+ var $e = this.$element
+ if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
+ $e.attr('data-original-title', $e.attr('title') || '').removeAttr('title')
+ }
+ }
+
+ , hasContent: function () {
+ return this.getTitle()
+ }
+
+ , getPosition: function (inside) {
+ return $.extend({}, (inside ? {top: 0, left: 0} : this.$element.offset()), {
+ width: this.$element[0].offsetWidth
+ , height: this.$element[0].offsetHeight
+ })
+ }
+
+ , getTitle: function () {
+ var title
+ , $e = this.$element
+ , o = this.options
+
+ title = $e.attr('data-original-title')
+ || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
+
+ return title
+ }
+
+ , tip: function () {
+ return this.$tip = this.$tip || $(this.options.template)
+ }
+
+ , validate: function () {
+ if (!this.$element[0].parentNode) {
+ this.hide()
+ this.$element = null
+ this.options = null
+ }
+ }
+
+ , enable: function () {
+ this.enabled = true
+ }
+
+ , disable: function () {
+ this.enabled = false
+ }
+
+ , toggleEnabled: function () {
+ this.enabled = !this.enabled
+ }
+
+ , toggle: function () {
+ this[this.tip().hasClass('in') ? 'hide' : 'show']()
+ }
+
+ , destroy: function () {
+ this.hide().$element.off('.' + this.type).removeData(this.type)
+ }
+
+ }
+
+
+ /* TOOLTIP PLUGIN DEFINITION
+ * ========================= */
+
+ $.fn.tooltip = function ( option ) {
+ return this.each(function () {
+ var $this = $(this)
+ , data = $this.data('tooltip')
+ , options = typeof option == 'object' && option
+ if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ $.fn.tooltip.Constructor = Tooltip
+
+ $.fn.tooltip.defaults = {
+ animation: true
+ , placement: 'top'
+ , selector: false
+ , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
+ , trigger: 'hover'
+ , title: ''
+ , delay: 0
+ , html: true
+ }
+
+}(window.jQuery);
+
diff --git a/webdoc/robots.txt b/webdoc/robots.txt
new file mode 100644
index 00000000..9662fc46
--- /dev/null
+++ b/webdoc/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /
diff --git a/webdoc/server.asmx b/webdoc/server.asmx
deleted file mode 100644
index 1967a4ba..00000000
--- a/webdoc/server.asmx
+++ /dev/null
@@ -1 +0,0 @@
-<%@ WebService Language="c#" Codebehind="server.cs" Class="Monodoc.Contributions" %>
diff --git a/webdoc/server.cs b/webdoc/server.cs
deleted file mode 100644
index d026cb22..00000000
--- a/webdoc/server.cs
+++ /dev/null
@@ -1,366 +0,0 @@
-//
-// Monodoc server
-//
-// Author:
-// Miguel de Icaza (miguel@ximian.com)
-//
-
-using System;
-using System.Collections;
-using System.IO;
-using System.Web.Mail;
-using System.Web.Services;
-using System.Web.Services.Protocols;
-using System.Data;
-using ByteFX.Data.MySqlClient;
-using System.Xml;
-
-namespace Monodoc {
- [WebServiceAttribute (Description="Web service for the MonoDoc contribution system")]
- public class Contributions : System.Web.Services.WebService
- {
- const string basedir = "/home/contributions/";
- //const string basedir = "/tmp/contributions/";
- static string connection_string;
-
- static Contributions ()
- {
- using (StreamReader sr = new StreamReader (File.OpenRead ("connection.string"))){
- connection_string = sr.ReadLine ();
- Console.WriteLine ("Connection: " + connection_string);
- }
- }
-
- private IDbConnection GetConnection()
- {
- return new MySqlConnection(connection_string);
- }
-
- private MySqlParameter CreateParameter(string name, object value)
- {
- return new MySqlParameter (name, value);
- }
-
- static void mail (string recipient, string body)
- {
- MailMessage m = new MailMessage ();
- m.From = "mono-docs-list@ximian.com";
- m.To = recipient;
- m.Subject = "Your Monodoc passkey";
- m.Body = String.Format ("\n\nWelcome to the Mono Documentation Effort,\n\n" +
- "This is your passkey for contributing to the Mono Documentation effort:\n " +
- " {0}\n\n" +
- "The Mono Documentation Team (mono-docs-list@ximian.com)", body);
-
- SmtpMail.SmtpServer = "localhost";
- SmtpMail.Send (m);
- }
-
- //
- // 0 => OK to send contributions.
- // -1 => Invalid version
- //
- [WebMethod(Description="Check the client/server version; 0 means that the server can consume your data")]
- public int CheckVersion (int version)
- {
- if (version == 1)
- return 0;
- return -1;
- }
-
- //
- // Return codes:
- // -3 invalid characters in login
- // -2 Login already registered, password resent.
- // -1 Generic error
- // 0 password mailed
- //
- [WebMethod(Description="Requests a registration for a login")]
- public int Register (string login)
- {
- if (login.IndexOf ("'") != -1)
- return -3;
-
- IDbConnection conn = GetConnection();
- conn.Open();
- try
- {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select password from person where name=@login";
- cmd.Parameters.Add( CreateParameter("@login", login));
- IDataReader reader = cmd.ExecuteReader ();
-
- if (reader.Read ()){
- string password = (string) reader ["password"];
- mail (login, password);
- reader.Close ();
- return -2;
- }
- reader.Close ();
- Random rnd = new Random ();
- int pass = rnd.Next ();
- cmd.CommandText = "INSERT INTO person (name, password, last_serial) VALUES " +
- "(@name, @password, 0)";
- cmd.Parameters.Add( CreateParameter("@name",login));
- cmd.Parameters.Add( CreateParameter("@password",pass));
-
- cmd.ExecuteNonQuery ();
- mail (login, pass.ToString ());
-
- return 0;
- } catch (Exception e) {
- Console.Error.WriteLine (e);
- } finally {
- conn.Close ();
- }
- return -1;
- }
-
- [WebMethod (Description="Returns the latest serial number used for a change on the server")]
- public int GetSerial (string login, string password)
- {
- IDbConnection conn = GetConnection();
- conn.Open();
- try
- {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select last_serial from person where name=@login and password=@password";
- cmd.Parameters.Add( CreateParameter("@login", login));
- cmd.Parameters.Add( CreateParameter("@password", password));
-
- object r = cmd.ExecuteScalar();
- if (r != null){
- Console.Error.WriteLine (r);
- return (int) r;
- }
- return -1;
- } catch (Exception e){
- Console.Error.WriteLine ("Exception" + e);
- } finally {
- conn.Close();
- }
- return -1;
- }
-
- // -1 Generic error.
- // -2 Erroneous XML
- int a=1;
- [WebMethod (Description="Submits a GlobalChangeSet as a contribution")]
- public int Submit (string login, string password, XmlNode node)
- {
- IDbConnection conn = GetConnection();
- conn.Open();
- try {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select * from person where name=@login and password=@password";
- cmd.Parameters.Add( CreateParameter("@login", login));
- cmd.Parameters.Add( CreateParameter("@password", password));
-
- IDataReader reader = cmd.ExecuteReader ();
-
- int ret_val = -1;
-
- if (reader.Read()){
- int id = (int)reader["person_id"];
- int serial = (int)reader["last_serial"];
- reader.Close ();
-
- //
- // Validate the XML
- //
- XmlDocument d = new XmlDocument ();
- d.AppendChild (d.ImportNode (node, true));
- XmlNodeReader r = new XmlNodeReader (d);
- try {
- object rr = GlobalChangeset.serializer.Deserialize (r);
- } catch {
- return -2;
- }
-
- string dudebase = basedir + id;
- Directory.CreateDirectory (dudebase);
-
- d.Save (dudebase + "/" + serial + ".xml");
- IDbTransaction txn = conn.BeginTransaction();
- try {
- cmd.CommandText = "UPDATE person SET last_serial=@last_serial WHERE name=@name AND password=@pwd";
- cmd.Parameters.Add( CreateParameter("@last_serial", serial+1));
- cmd.Parameters.Add( CreateParameter("@name", login));
- cmd.Parameters.Add( CreateParameter("@pwd", password));
- cmd.ExecuteNonQuery ();
-
-
- cmd.CommandText = "INSERT INTO status (person_id, serial, status) VALUES (@id, @serial, 0)";
- cmd.Parameters.Add( CreateParameter("@id",id));
- cmd.Parameters.Add( CreateParameter("@serial",serial));
- cmd.ExecuteNonQuery ();
-
- txn.Commit();
- } catch (Exception e) {
- Console.Error.WriteLine ("E: " + e);
- }
-
- ret_val = serial+1;
- return ret_val;
- }
- Console.Error.WriteLine ("Error, going: 4");
- return -4;
- } catch (Exception e) {
- Console.Error.WriteLine ("Failure in Submit: " + e);
- return -3;
- } finally {
- conn.Close ();
- }
- }
-
- bool IsAdmin (IDbConnection conn, string login, string password)
- {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select person_id,is_admin from person where name=@name and password=@pass";
- cmd.Parameters.Add( CreateParameter("@name",login));
- cmd.Parameters.Add( CreateParameter("@pass",password));
-
- int person_id = -1;
- bool is_admin = false;
- using (IDataReader reader = cmd.ExecuteReader ()){
- if (reader.Read ()){
- person_id = (int) reader ["person_id"];
- is_admin = ((int) reader ["is_admin"]) == 1;
- } else
- return false;
- }
- if (person_id == -1 || is_admin == false)
- return false;
-
- return true;
- }
-
- [WebMethod (Description="Obtains the list of pending contributions")]
- public PendingChange [] GetPendingChanges (string login, string password)
- {
- IDbConnection conn = GetConnection();
- conn.Open ();
-
- try {
- if (!IsAdmin (conn, login, password)){
- return new PendingChange [0];
- }
-
- IDbCommand cmd = conn.CreateCommand();
- ArrayList results = new ArrayList ();
- cmd.CommandText = "select status.person_id, serial, person.name from status, person where status=0 and person.person_id = status.person_id";
- using (IDataReader reader = cmd.ExecuteReader ()){
- while (reader.Read ()){
- results.Add (new PendingChange ((string) reader ["name"], (int) reader ["person_id"], (int) reader ["serial"]));
- }
- }
-
- PendingChange [] ret = new PendingChange [results.Count];
- results.CopyTo (ret);
- return ret;
- } catch (Exception e){
- Console.Error.WriteLine (e);
- return null;
- } finally {
- conn.Close ();
- }
- }
-
- [WebMethod (Description="Obtains a change set for a user")]
- public XmlNode FetchContribution (string login, string password, int person_id, int serial)
- {
- IDbConnection conn = GetConnection ();
- conn.Open ();
- try {
- if (!IsAdmin (conn, login, password))
- return null;
-
- XmlDocument d = new XmlDocument ();
- string fname = basedir + person_id + "/" + serial + ".xml";
- d.Load (fname);
- return d.FirstChild;
- } finally {
- conn.Close ();
- }
- }
-
- [WebMethod (Description="ADMIN: Obtains the number of pending commits")]
- public Status GetStatus (string login, string password)
- {
- IDbConnection conn = GetConnection ();
- conn.Open ();
- try {
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "select * from person where name=@name and password=@pass";
- cmd.Parameters.Add( CreateParameter("@name",login));
- cmd.Parameters.Add( CreateParameter("@pass",password));
-
- IDataReader reader = cmd.ExecuteReader ();
- int id = -1;
-
- if (reader.Read())
- id = (int)reader["person_id"];
- reader.Close ();
- if (id == -1)
- return null;
-
- Status s = new Status ();
-
- cmd.CommandText = String.Format ("select count(*) from status where person_id='{0}'", id);
- s.Contributions = (int) cmd.ExecuteScalar ();
- cmd.CommandText = String.Format ("select count(*) from status where person_id='{0}' and status='0'", id);
- s.Pending = (int) cmd.ExecuteScalar ();
- cmd.CommandText = String.Format ("select count(*) from status where person_id='{0}' and status='1'", id);
- s.Commited = (int) cmd.ExecuteScalar ();
-
- return s;
- } finally {
- conn.Close ();
- }
- }
-
- [WebMethod (Description="ADMIN: Updates the status of a contribution")]
- public void UpdateStatus (string login, string password, int person_id, int contrib_id, int status)
- {
- IDbConnection conn = GetConnection();
- conn.Open ();
-
- try {
- if (!IsAdmin (conn, login, password))
- return;
-
- IDbCommand cmd = conn.CreateCommand();
- cmd.CommandText = "update status set status=@status WHERE person_id=@PID AND serial=@ser";
- cmd.Parameters.Add (CreateParameter ("@status", status));
- cmd.Parameters.Add (CreateParameter ("@PID", person_id));
- cmd.Parameters.Add (CreateParameter ("@ser", contrib_id));
- cmd.ExecuteNonQuery ();
- } finally {
- conn.Close ();
- }
- }
- }
-
- public class Status {
- public int Contributions;
- public int Commited;
- public int Pending;
- }
-
- public class PendingChange {
- public string Login;
- public int ID;
- public int Serial;
-
- public PendingChange (string login, int person_id, int serial)
- {
- Login = login;
- ID = person_id;
- Serial = serial;
- }
-
- public PendingChange ()
- {
- }
- }
-}
diff --git a/webdoc/common.css b/webdoc/skins/mono-external/common-extension.css
index 25ba3848..00f8b94d 100644
--- a/webdoc/common.css
+++ b/webdoc/skins/mono-external/common-extension.css
@@ -2,6 +2,8 @@ body {
background-color: #ffffff;
margin: 0px;
padding: 0px;
+ font-family: Verdana, sans-serif !important;
+ overflow-x: hidden;
}
.HeaderTable {
@@ -203,4 +205,129 @@ div.related ul {
.native-browser img {
vertical-align: center;
margin-right: 3px;
-} \ No newline at end of file
+}
+
+body, div {
+ margin: 0;
+ padding: 0;
+}
+img.toolbarsep {
+ border: 0 none;
+ margin-bottom: 1px;
+ margin-top: 1px;
+ padding-bottom: 3px;
+ padding-top: 3px;
+ vertical-align: middle;
+}
+img.toolbar {
+ border: 0 none;
+ margin: 1px;
+ padding: 3px;
+ vertical-align: middle;
+}
+img.toolbar:hover {
+ border-color: white #B1A598 #B1A598 white;
+ border-left: 1px solid white;
+ border-right: 1px solid #B1A598;
+ border-style: solid;
+ border-width: 1px;
+ margin: 0;
+}
+img.toolbar:active {
+ border-color: #B1A598 white white #B1A598;
+ border-left: 1px solid #B1A598;
+ border-right: 1px solid white;
+ border-style: solid;
+ border-width: 1px;
+}
+#login {
+ float: right;
+ padding: 5px;
+ position: fixed;
+ right: 0;
+ top: 0;
+}
+#rightSide {
+ float: right;
+ padding: 5px;
+ position: relative;
+ right: 0;
+}
+#banner {
+ background: url("/mdocimages/headerbg.png") no-repeat scroll 100% 50% #679EF1;
+ border-bottom: 1px dotted #3363BD;
+ height: 40px;
+}
+#header {
+ color: black;
+ height: 40px;
+ margin-bottom: 0;
+ padding: 0 0 0 15px;
+ position: relative;
+ width: 50%;
+}
+#header h1 {
+ color: white;
+ font-family: arial,helvetica,verdana,sans-serif;
+ font-size: 22px;
+ font-weight: bold;
+ line-height: 1.8em;
+ margin: 0;
+}
+body, div {
+ border: 0 none;
+ font: inherit;
+ margin: 0;
+ padding: 0;
+ vertical-align: baseline;
+}
+html, body {
+ height: 100%;
+}
+#side {
+ border-right: 1px solid black;
+ float: left;
+ height: 93%;
+ overflow: auto;
+ width: 20%;
+}
+#main_part {
+ height: 100%;
+}
+#content_frame {
+ height: 94%;
+ width: 99.8%;
+}
+#content_frame_wrapper {
+ float: right;
+ height: 100%;
+ margin-right: 5px;
+ margin-top: 10px;
+ width: 79%;
+}
+#sidebar_container {
+ margin-top: 10px;
+ font-size: 8pt !important;
+}
+.tree-label a {
+ color: black !important;
+}
+.tree-label a:hover {
+ background: none repeat scroll 0 0 #DFDFDF !important;
+ border: 1px solid grey !important;
+ color: black !important;
+ padding: 1px !important;
+}
+.tree-label-selected a, .tree-label-selected a:hover {
+ background: none repeat scroll 0 0 highlight !important;
+ color: highlighttext !important;
+}
+#rightSide {
+ font-size: 8pt;
+}
+#fsearch_companion {
+ font-size: 8pt;
+}
+#fsearch_window {
+ font-size: 8pt;
+}
diff --git a/webdoc/skins/mono-external/footer.html b/webdoc/skins/mono-external/footer.html
new file mode 100644
index 00000000..04f5b844
--- /dev/null
+++ b/webdoc/skins/mono-external/footer.html
@@ -0,0 +1 @@
+</div>
diff --git a/webdoc/skins/mono-external/header.html b/webdoc/skins/mono-external/header.html
new file mode 100644
index 00000000..018532aa
--- /dev/null
+++ b/webdoc/skins/mono-external/header.html
@@ -0,0 +1,13 @@
+<div id="banner" style="color: rgb(255, 255, 255);">
+<div id="rightSide">
+ <label for="search">Search: </label>
+ <input id="fsearch" type="search" style="width: 19em; margin-right: 10px;" placeholder="Enter search request">
+ <a onclick="document.getElementById ('content_frame').contentWindow.print ()" href="#">
+ <img class="toolbar" width="24" height="24" title="Print this document" alt="Print" src="/skins/mono-external/images/print.png">
+ </a>
+</div>
+ <div id="header">
+ <h1>Mono Documentation</h1>
+ </div>
+<div id="main_part">
+ <div id ="sidebar_container"></div>
diff --git a/webdoc/images/link.png b/webdoc/skins/mono-external/images/link.png
index a5beda8b..a5beda8b 100644
--- a/webdoc/images/link.png
+++ b/webdoc/skins/mono-external/images/link.png
Binary files differ
diff --git a/webdoc/images/mono-logo.png b/webdoc/skins/mono-external/images/mono-logo.png
index 11437273..11437273 100644
--- a/webdoc/images/mono-logo.png
+++ b/webdoc/skins/mono-external/images/mono-logo.png
Binary files differ
diff --git a/webdoc/images/mono_logo_g.gif b/webdoc/skins/mono-external/images/mono_logo_g.gif
index c6fbaf67..c6fbaf67 100644
--- a/webdoc/images/mono_logo_g.gif
+++ b/webdoc/skins/mono-external/images/mono_logo_g.gif
Binary files differ
diff --git a/webdoc/images/native-browser-icon.png b/webdoc/skins/mono-external/images/native-browser-icon.png
index e0375054..e0375054 100644
--- a/webdoc/images/native-browser-icon.png
+++ b/webdoc/skins/mono-external/images/native-browser-icon.png
Binary files differ
diff --git a/webdoc/images/print.png b/webdoc/skins/mono-external/images/print.png
index 08aecc81..08aecc81 100644
--- a/webdoc/images/print.png
+++ b/webdoc/skins/mono-external/images/print.png
Binary files differ
diff --git a/webdoc/skins/mono-external/images/slide-toggle.png b/webdoc/skins/mono-external/images/slide-toggle.png
new file mode 100644
index 00000000..2fc9d0f8
--- /dev/null
+++ b/webdoc/skins/mono-external/images/slide-toggle.png
Binary files differ
diff --git a/webdoc/skins/mono-external/images/spinner.gif b/webdoc/skins/mono-external/images/spinner.gif
new file mode 100644
index 00000000..3288d103
--- /dev/null
+++ b/webdoc/skins/mono-external/images/spinner.gif
Binary files differ
diff --git a/webdoc/tables.sql b/webdoc/tables.sql
deleted file mode 100644
index 2e951946..00000000
--- a/webdoc/tables.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-use monodoc;
-drop table person;
-drop table status;
-create table person (
- name varchar (80) not null,
- password varchar (20) not null,
- person_id int not null primary key auto_increment,
- last_serial int not null,
- last_update int not null,
- is_admin int not null
-);
-
-create table status (
- person_id int not null,
- serial int not null,
- status int not null
-);
-
-insert into person (name, password, last_serial, is_admin) values ('miguel@ximian.com', 'login1', 0, 1);
-insert into person (name, password, last_serial) values ('nat@nat.org', 'login2', 0);
-
diff --git a/webdoc/views/common.css b/webdoc/views/common.css
new file mode 100644
index 00000000..d7abcff9
--- /dev/null
+++ b/webdoc/views/common.css
@@ -0,0 +1,38 @@
+/*****Common.css*****/
+/*bare-bones css for most layouts*/
+body {
+ padding: 0;
+ height: 100%;
+}
+html {
+ padding: 0;
+ margin: 0 auto;
+ height: 100%;
+}
+.code {
+ font-family: "Courier New", Courier;
+}
+.table {
+ padding-left:2px;
+ padding-right:2px;
+ padding-top:0px;
+ padding-bottom:0px;
+}
+div.Content {
+ margin-right: 1em;
+}
+iframe {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+}
+#content_frame {
+ width: 100%;
+ height: 100%;
+}
+#main_part {
+ height: 100%;
+}
diff --git a/webdoc/views/common.js b/webdoc/views/common.js
new file mode 100644
index 00000000..887b731f
--- /dev/null
+++ b/webdoc/views/common.js
@@ -0,0 +1,46 @@
+$(function () {
+//a hack for sizing our iframe correctly
+/* var getHeight = function () {
+ <!--
+ var viewportwidth;
+ var viewportheight;
+ // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight
+ if (typeof window.innerWidth != 'undefined')
+ {
+ viewportwidth = window.innerWidth,
+ viewportheight = window.innerHeight
+ }
+ // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)
+ else if (typeof document.documentElement != 'undefined'
+ && typeof document.documentElement.clientWidth !=
+ 'undefined' && document.documentElement.clientWidth != 0)
+ {
+ viewportwidth = document.documentElement.clientWidth,
+ viewportheight = document.documentElement.clientHeight
+ }
+ // older versions of IE
+ else
+ {
+ viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
+ viewportheight = document.getElementsByTagName('body')[0].clientHeight
+ }
+ return viewportheight;
+ //-->
+ }
+
+ var main_part = $('#main_part');
+ var content_frame = main_part.find('#content_frame');
+ var resize_mainpart = function () {
+// main_part.height (getHeight() - 75);
+// main_part.children('#side').css ('height', '100%');
+ content_frame.css ('height', '97.5%');
+ }
+
+ var resizeTimer;
+ $(window).resize(function() {
+ clearTimeout(resizeTimer);
+ resizeTimer = setTimeout(resize_mainpart, 100);
+ });
+
+ resize_mainpart ();*/
+});
diff --git a/webdoc/views/images/favicon.ico b/webdoc/views/images/favicon.ico
new file mode 100644
index 00000000..d18044a6
--- /dev/null
+++ b/webdoc/views/images/favicon.ico
Binary files differ
diff --git a/webdoc/views/images/native-browser-icon.png b/webdoc/views/images/native-browser-icon.png
new file mode 100644
index 00000000..e0375054
--- /dev/null
+++ b/webdoc/views/images/native-browser-icon.png
Binary files differ
diff --git a/webdoc/views/reset.css b/webdoc/views/reset.css
new file mode 100644
index 00000000..f1603186
--- /dev/null
+++ b/webdoc/views/reset.css
@@ -0,0 +1,49 @@
+
+
+ /**
+ * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/)
+ * http://cssreset.com
+ */
+ html, body, div, span, applet, object, iframe,
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+ a, abbr, acronym, address, big, cite, code,
+ del, dfn, em, img, ins, kbd, q, s, samp,
+ small, strike, strong, sub, sup, tt, var,
+ b, u, i, center,
+ dl, dt, dd, ol, ul, li,
+ fieldset, form, label, legend,
+ table, caption, tbody, tfoot, thead, tr, th, td,
+ article, aside, canvas, details, embed,
+ figure, figcaption, footer, header, hgroup,
+ menu, nav, output, ruby, section, summary,
+ time, mark, audio, video {
+ margin: 0;
+ padding: 0;
+ border: 0;
+ font-size: 100%;
+ font: inherit;
+ vertical-align: baseline;
+ }
+ /* HTML5 display-role reset for older browsers */
+ article, aside, details, figcaption, figure,
+ footer, header, hgroup, menu, nav, section {
+ display: block;
+ }
+ body {
+ line-height: 1;
+ }
+ ol, ul {
+ list-style: none;
+ }
+ blockquote, q {
+ quotes: none;
+ }
+ blockquote:before, blockquote:after,
+ q:before, q:after {
+ content: '';
+ content: none;
+ }
+ table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ }
diff --git a/webdoc/web.config b/webdoc/web.config
index 5a50857b..0951f119 100644
--- a/webdoc/web.config
+++ b/webdoc/web.config
@@ -24,18 +24,11 @@
</mono.aspnet>
<appSettings>
- <add key="MonoServerDefaultIndexFiles"
- value="index.aspx, Default.aspx, default.aspx, index.html, index.htm" />
+ <add key="Title" value="Xamarin API Documentation" />
+ <add key="MonoServerDefaultIndexFiles" value="index.aspx, Default.aspx, default.aspx, index.html, index.htm" />
+ <add key="MonodocRootDir" value="/mono/lib/monodoc-ios/" />
+ <add key="Plugins" value="plugins.def" />
</appSettings>
- <location path="edit.aspx">
- <system.web>
- <authentication mode="Forms">
- <forms name=".MONOAUTH" loginUrl="login.aspx"/>
- </authentication>
- <authorization>
- <deny users="?" />
- </authorization>
- </system.web>
- </location>
+
</configuration>
diff --git a/webdoc/wiki2ecmahelper.xsl b/webdoc/wiki2ecmahelper.xsl
deleted file mode 100644
index 4039cd9e..00000000
--- a/webdoc/wiki2ecmahelper.xsl
+++ /dev/null
@@ -1,70 +0,0 @@
-<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-
- <!-- default rule -->
- <xsl:template match="*">
- <xsl:copy>
- <xsl:copy-of select="@*" />
- <xsl:apply-templates />
- </xsl:copy>
- </xsl:template>
-
- <xsl:template match="code">
- <xsl:element name="c"><xsl:apply-templates /></xsl:element>
- </xsl:template>
-
- <xsl:template match="div">
- <xsl:choose>
- <xsl:when test="@class = 'example'">
- <example><xsl:apply-templates /></example>
- </xsl:when>
- <xsl:when test="@class = 'behavior'">
- <block type="behavior"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'default'">
- <block type="default"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'example-block'">
- <block type="example"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'overrides'">
- <block type="overrides"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:when test="@class = 'usage'">
- <block type="usage"><xsl:apply-templates /></block>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="." />
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="table">
- <list type="table">
- <xsl:if test="tr[1]/th">
- <listheader><item>
- <term>
- <xsl:apply-templates select="tr[1]/th[1]" />
- </term>
- <xsl:for-each select="tr[1]/th[position() > 1]">
- <description>
- <xsl:apply-templates />
- </description>
- </xsl:for-each>
- </item></listheader>
- </xsl:if>
- <xsl:for-each select="tr">
- <item>
- <term>
- <xsl:apply-templates select="td[1]" />
- </term>
- <xsl:for-each select="td[position() > 1]">
- <description>
- <xsl:apply-templates />
- </description>
- </xsl:for-each>
- </item>
- </xsl:for-each>
- </list>
- </xsl:template>
-
-</xsl:transform>
diff --git a/webdoc/xtree/images/msdn2/Lminus.gif b/webdoc/xtree/images/msdn2/Lminus.gif
deleted file mode 100644
index 0fae6aca..00000000
--- a/webdoc/xtree/images/msdn2/Lminus.gif
+++ /dev/null
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/Lplus.gif b/webdoc/xtree/images/msdn2/Lplus.gif
deleted file mode 100644
index 092e97e1..00000000
--- a/webdoc/xtree/images/msdn2/Lplus.gif
+++ /dev/null
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/Tminus.gif b/webdoc/xtree/images/msdn2/Tminus.gif
deleted file mode 100644
index 3f191949..00000000
--- a/webdoc/xtree/images/msdn2/Tminus.gif
+++ /dev/null
Binary files differ
diff --git a/webdoc/xtree/images/msdn2/Tplus.gif b/webdoc/xtree/images/msdn2/Tplus.gif
deleted file mode 100644
index 7a7af256..00000000
--- a/webdoc/xtree/images/msdn2/Tplus.gif
+++ /dev/null
Binary files differ