Skip to content

Commit

Permalink
move Documentation pages to react-router
Browse files Browse the repository at this point in the history
  • Loading branch information
jpdriver committed Apr 23, 2015
1 parent dbc3f8e commit a8100bc
Show file tree
Hide file tree
Showing 6 changed files with 148 additions and 117 deletions.
8 changes: 7 additions & 1 deletion examples/components/Navbar.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,13 @@ module.exports = React.createClass({
<div className="navbar-collapse collapse">
<ul className="nav navbar-nav pull-right">
<li className="active"><a href="index.html#">Home</a></li>
<li><a href="documentation.html">Documentation</a></li>
<li className="dropdown">
<a href="#" className="dropdown-toggle" data-toggle="dropdown">Documentation <b className="caret"></b></a>
<ul className="dropdown-menu">
<li><a href="documentation.html#/gettingstarted">Getting Started</a></li>
<li><a href="documentation.html#/apireference">API Reference</a></li>
</ul>
</li>
<li className="dropdown">
<a href="#" className="dropdown-toggle" data-toggle="dropdown">Examples <b className="caret"></b></a>
<ul className="dropdown-menu">
Expand Down
133 changes: 18 additions & 115 deletions examples/documentation.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,20 +11,27 @@
<link rel="shortcut icon" href="examples/assets/images/gt_favicon.png">

<link rel="stylesheet" media="screen" href="http://fonts.googleapis.com/css?family=Open+Sans:300,400,700">
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/highlight.min.js"></script>
<script src="https://code.jquery.com/jquery-1.11.2.min.js"/>


<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<script src="assets/js/affix.js"></script>
<script src="assets/js/scrollspy.js"></script>
<script src="assets/js/codeMirror.js"></script>
<script src="assets/js/javascript.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/JSXTransformer.js"></script>
<!-- Custom styles for our template -->here
<link rel="stylesheet" href="assets/css/bootstrap.min.css">
<link rel="stylesheet" href="assets/css/bootstrap-theme.css" media="screen" >
<link rel="stylesheet" href="assets/css/main.css">
<link rel="stylesheet" href="build/react-data-grid.css">


<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/8.4/styles/default.min.css">
<link rel="stylesheet" href="assets/css/codemirror.css">
<link rel="stylesheet" href="assets/css/examples.css">
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="examples/assets/js/html5shiv.js"></script>
Expand All @@ -42,136 +49,32 @@
</div>
<!-- /.navbar -->

<div class="container top-space">
<div class="container-fluid top-space">
<div class="row">
<div class="col-md-3 top-space" role="complementary">
<div class="col-md-2 top-space" role="complementary">
<nav id="sidebar" class="bs-docs-sidebar hidden-print hidden-xs hidden-sm" data-spy="affix" data-offset-top="0" data-offset-bottom="200">
<ul class="nav bs-docs-sidenav">

<li>
<a href="#js-getting-started">Getting Started</a>
<ul class="nav">
<li><a href="#js-installation">Installation</a></li>
<li><a href="#js-basic-example">Basic Example</a></li>
</ul>
<a href="documentation.html#/gettingstarted">Getting Started</a>
</li>
<li>
<a href="#js-getting-started">API Reference</a>
<a href="documentation.html#/apireference">API Reference</a>
</li>
</ul>
</nav>
</div>
<div class="col-md-9">
<h1 id="js-getting-started" class="page-header">Documentation</h1>
<div class="docs-section">
<h2>Getting Started </h2>
<h3 id="js-installation">Installation</h3>
<h4>Using Common JS</h4>
<p>React Grid is available in the npm repository. You can install it from the command line using the following commands</p>
<p><kbd>npm install react --save</kbd></p>
<p><kbd>npm install react-data-grid --save</kbd></p>
<p>Once downloaded, require both React and React Grid and you should be good to go</p>
<div class="code-block js">
<pre>var React = require('react'); </br>var ReactDataGrid = require('react-data-grid');</pre>
</div>
<p>If you want to use extra features such as built in editors, formatters, toolbars and other plugins, you need to require the addons module instead</p>
<div class="code-block js">
<pre>var ReactDataGrid = require('react-data-grid/addons');</pre>
</div>
<br/>
<h4>Using Distribution Scripts</h4>
<p>If you prefer not to use a module system, you can reference the distribution scripts directly in your html pages. First you need to download the scripts. This can be done in 3 ways, either download directly from github source, using npm as above or using bower <br/><kbd>bower install react-data-grid --save</kbd></p>
<div class="code-block js">
<pre>&lt;script src="//fb.me/react-0.12.0.js"&gt;&lt;/script&gt;<br/>&lt;script type="text/javascript" src="react-data-grid/dist/react-data-grid.js"&gt;&lt;/script&gt;</pre>
</div>

Or use react-data-grid-with-addons.js to use advanced features
<div class="code-block js">
<pre>&lt;script type="text/javascript" src="react-data-grid/dist/react-data-grid-with-addons.js"&gt;&lt;/script&gt;"</pre>
</div>
<h3 id="js-basic-example">A Simple Example</h3>
<p>The columns is a column specification, it provides information to grid on how to extract data for each of the column and how column should be represented and its features:</p>
<div class="code-block js">

<pre>var columns = [
{
key: 'id',
name: 'ID',
width: '20%',
resizeable: true
},
{
key: 'title',
name: 'Title'
},
{
key: 'count',
name: 'Count',
width: '20%'
}
]</pre>
</div>
<p>The rows property should be an array of objects whose property names match the key property of each column</p>
<div class="code-block js">
<pre>var rows = function(start, end) {
var result = []
for (var i = start; i < end; i++) {
result.push({
id: i,
title: 'Title ' + i,
count: i * 1000
});
}
return result;
};</pre>
</div>
<p>Now simply invoke React.render(..) on the ReactDataGrid component</p>
<div class="code-block js">
<pre>React.render(&lt;ReactDataGrid columns={columns} rows={rows} /&gt;, document.getElementById('example'))</pre>
</div>
</div>

<div class="docs-section">
<h1 id="js-api-refernce">API Reference</h1>
<h2>Grid Events</h2>
<h3>onRowUpdated</h3>
<div class="code-block function">
<pre><span class="nx">onRowUpdated</span><span class="p">(</span><span class="nx">e</span> <span class="nx">:RowUpdateEvent</span><span class="p">)</span></pre>
</div>

<div class="code-block flow">
<pre>/* @flow */<br/><code>type RowUpdateEvent = {rowIdx: number; updated: object; cellKey: string; keyCode: string};</code></pre>
</div>


<h3>onCellsDragged</h3>
<div class="code-block function">
<pre><span class="nx">onCellsDragged</span><span class="p">(</span><span class="nx">e</span> <span class="nx">:CellDragEvent</span><span class="p">)</span></pre>
</div>

<div class="code-block flow">
<pre>/* @flow */<br/><code>type CellDragEvent = {rowIdx: number; fromRow: number, toRow: number, value: any};</code></pre>
</div>

<h3>onCellCopyPaste</h3>
<div class="code-block function">
<pre><span class="nx">onCellCopyPaste</span><span class="p">(</span><span class="nx">e</span> <span class="nx">:CellCopyPasteEvent</span><span class="p">)</span></pre>
</div>

<div class="code-block flow">
<pre>/* @flow */<br/><code>type CellCopyPasteEvent = {rowIdx: number; value : any; fromRow: number; toRow: number; cellKey: string};</code></pre>
</div>


</div>

</div>
<div class="col-md-10">
<div id="documentation"/>
</div>
</div>
<!-- JavaScript srcs are placed at the end of the document so the pages load faster -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.12.2/react-with-addons.js"></script>
<script src="assets/js/javascript.js"></script>
<!-- JavaScript srcs are placed at the end of the document so the pages load faster -->
<script src="build/react-data-grid-with-addons.js"></script>
<script src="build/shared.js"></script>
<script src="build/index.js"></script>
<script src="build/documentation.js"></script>
<script src="assets/js/dropdown.js"></script>
</body>
</html>
29 changes: 29 additions & 0 deletions examples/documentation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
var React = require('react');
var ReactRouter = require('react-router');

var gettingStarted = require('./scripts/documentation01-gettingstarted');
var apiReference = require('./scripts/documentation02-apireference');

var { Route, RouteHandler, Link } = ReactRouter;

var App = React.createClass({
render: function () {
return (
<div>
<h1 className="page-header">Documentation</h1>
<RouteHandler/>
</div>
);
}
});

var routes = (
<Route handler={App}>
<Route name="gettingstarted" handler={gettingStarted}/>
<Route name="apireference" handler={apiReference}/>
</Route>
);

ReactRouter.run(routes, function (Handler) {
React.render(<Handler/>, document.getElementById('documentation'));
});
39 changes: 39 additions & 0 deletions examples/scripts/documentation01-gettingstarted.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
module.exports = React.createClass({
render: function () {
return (
<div>
<h2>Getting Started </h2>
<h3 id="js-installation">Installation</h3>
<h4>Using Common JS</h4>
<p>React Grid is available in the npm repository. You can install it from the command line using the following commands</p>
<p><kbd>npm install react --save</kbd></p>
<p><kbd>npm install react-data-grid --save</kbd></p>
<p>Once downloaded, require both React and React Grid and you should be good to go</p>
<div className="code-block js">
<pre>
var React = require('react');
<br />
var ReactDataGrid = require('react-data-grid');
</pre>
</div>
<p>If you want to use extra features such as built in editors, formatters, toolbars and other plugins, you need to require the addons module instead</p>
<div className="code-block js">
<pre>var ReactDataGrid = require('react-data-grid/addons');</pre>
</div>
<br/>
<h4>Using Distribution Scripts</h4>
<p>If you prefer not to use a module system, you can reference the distribution scripts directly in your html pages. First you need to download the scripts. This can be done in 3 ways, either download directly from github source, using npm as above or using bower
<br/>
<kbd>bower install react-data-grid --save</kbd>
</p>
<div className="code-block js">
<pre>&lt;script src="//fb.me/react-0.12.0.js"&gt;&lt;/script&gt;<br/>&lt;script type="text/javascript" src="react-data-grid/dist/react-data-grid.js"&gt;&lt;/script&gt;</pre>
</div>
<p>Or use react-data-grid-with-addons.js to use advanced features</p>
<div className="code-block js">
<pre>&lt;script type="text/javascript" src="react-data-grid/dist/react-data-grid-with-addons.js"&gt;&lt;/script&gt;</pre>
</div>
</div>
);
}
});
53 changes: 53 additions & 0 deletions examples/scripts/documentation02-apireference.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
var RowUpdateEventString = "type RowUpdateEvent = {\n\trowIdx: number;\n\tupdated: object;\n\tcellKey: string;\n\tkeyCode: string\n};";
var CellDragEventString = "type CellDragEvent = {\n\trowIdx: number;\n\tfromRow: number,\n\ttoRow: number,\n\tvalue: any\n};";
var CellCopyPasteEventString = "type CellCopyPasteEvent = {\n\trowIdx: number;\n\tvalue : any;\n\tfromRow: number;\n\ttoRow: number;\n\tcellKey: string\n};";

module.exports = React.createClass({
render: function () {
return (
<div>
<h1 id="js-api-refernce">API Reference</h1>
<h2>Grid Events</h2>
<h3>onRowUpdated</h3>
<div className="code-block function">
<pre>
<span className="nx">onRowUpdated</span><span className="p">(</span><span className="nx">e</span> <span className="nx">:RowUpdateEvent</span><span className="p">)</span>
</pre>
</div>
<div className="code-block flow">
<pre>
/* @flow */
<br/>
<code>{RowUpdateEventString}</code>
</pre>
</div>
<h3>onCellsDragged</h3>
<div className="code-block function">
<pre>
<span className="nx">onCellsDragged</span><span className="p">(</span><span className="nx">e</span> <span className="nx">:CellDragEvent</span><span className="p">)</span>
</pre>
</div>
<div className="code-block flow">
<pre>
/* @flow */
<br/>
<code>{CellDragEventString}</code>
</pre>
</div>
<h3>onCellCopyPaste</h3>
<div className="code-block function">
<pre>
<span className="nx">onCellCopyPaste</span><span className="p">(</span><span className="nx">e</span> <span className="nx">:CellCopyPasteEvent</span><span className="p">)</span>
</pre>
</div>
<div className="code-block flow">
<pre>
/* @flow */
<br/>
<code>{CellCopyPasteEventString}</code>
</pre>
</div>
</div>
);
}
});
3 changes: 2 additions & 1 deletion gulp/tasks/examples.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ webpackConfig = {
entry: {
'index' : './examples/index.js',
'shared' : './examples/shared.js',
'examples' : './examples/examples.js'
'examples' : './examples/examples.js',
'documentation' : './examples/documentation.js'
},
output: {
path: path.join(__dirname, "../../examples/build"),
Expand Down

0 comments on commit a8100bc

Please sign in to comment.