Skip to content

Commit

Permalink
brought back the settings views
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremydmiller committed Mar 17, 2015
1 parent 40cc260 commit 06ca1ea
Show file tree
Hide file tree
Showing 5 changed files with 1,115 additions and 997 deletions.
2 changes: 0 additions & 2 deletions javascript/fubu-diagnostics-section.jsx
Expand Up @@ -95,8 +95,6 @@ class FubuDiagnosticsSection {
}

toRoutes(){


var routes = this.views.map(view => view.route);
if (this.component){
var sectionRoute = (<Route name={this.key} path={this.url} handler={this.component} />);
Expand Down
2 changes: 2 additions & 0 deletions javascript/root.jsx
Expand Up @@ -73,6 +73,8 @@ require('./request-table.jsx');
require('./request-details.jsx');
require('./packaging');

// TEMP
require('./settings');



Expand Down
108 changes: 108 additions & 0 deletions javascript/settings.jsx
@@ -0,0 +1,108 @@
/** @jsx React.DOM */

var React = require('react');
var Router = require('react-router');

var SettingsTable = React.createClass({
getInitialState: function(){
return {
loading: true
}
},

componentDidMount: function(){
FubuDiagnostics.get('Settings:settings', {}, data => {
_.assign(data, {loading: false});

this.setState(data);
});
},

render: function(){
if (this.state.loading){
return (<p>Loading...</p>);
}

var rows = this.state.settings.map(function(s, i){
var url = "#settings/setting-details/" + encodeURIComponent(s.type);

return (
<tr>
<td title={s.type}><a href={url}>{s.name}</a></td>
<td>{s.description}</td>
</tr>
);
});

return (
<table className="table table-striped">
<tr>
<th>Type</th>
<th>Description</th>
</tr>
{rows}
</table>
);
}
});

var SettingsDetail = React.createClass({
mixins: [Router.State],

getInitialState: function(){
return {
loading: true
}
},

componentDidMount: function(){
var params = this.getParams();
FubuDiagnostics.get('Settings:setting_Name', params, data => {
this.setState({data: data, loading: false});
});
},


render: function(){
if (this.state.loading){
return (<p>Loading...</p>);
}


if (this.state.data.type == 'json'){
var json = JSON.stringify(this.state.data.body, null, 4);

return (
<div>
<h3>{this.state.data.title}</h3>
<pre>{json}</pre>
</div>
);
}
else{
return (
<div>
<h3>{this.state.data.title}</h3>
<div dangerouslySetInnerHTML={{
__html: this.state.data.body
}}></div>
</div>
);
}
}
});

FubuDiagnostics.addSection({
title: 'Settings',
description: "All known 'Settings' types",
key: 'settings',
component: SettingsTable
})
.add({
title: 'Setting Details',
description: '',
key: 'setting-details',
route: 'Settings:setting_Name',
component: SettingsDetail
});

0 comments on commit 06ca1ea

Please sign in to comment.