|
1 | 1 | import React from 'react'; |
2 | | -import { getSetting, registerComponent } from 'meteor/nova:core'; |
| 2 | +import { FormattedMessage } from 'react-intl'; |
| 3 | +import { getSetting, registerComponent, Components } from 'meteor/nova:core'; |
3 | 4 |
|
4 | | -const renderSetting = (field, key) => { |
5 | | - return ( |
6 | | - <tr key={key}> |
7 | | - <td><code>{key}</code></td> |
8 | | - <td>{field.type && field.type.name}</td> |
9 | | - <td>{field.private ? <span className="private">private</span> : getSetting(key)}</td> |
10 | | - <td>{field.defaultValue && field.defaultValue.toString()}</td> |
11 | | - <td>{field.form && field.form.instructions}</td> |
12 | | - </tr> |
13 | | - ) |
14 | | -} |
| 5 | +const renderSetting = key => ( |
| 6 | + <tr key={key}> |
| 7 | + <td><code>{key}</code></td> |
| 8 | + <td>{JSON.stringify(getSetting(key))}</td> |
| 9 | + </tr> |
| 10 | +); |
15 | 11 |
|
16 | 12 | const Settings = props => { |
| 13 | + |
| 14 | + const publicSettings = Meteor.settings.public; |
| 15 | + |
17 | 16 | return ( |
18 | | - <div className="settings"> |
19 | | - <h1>Settings</h1> |
20 | | - |
21 | | - <div className="settings-wrapper"> |
| 17 | + <Components.ShowIf check={user => user && user.isAdmin} failureComponent={<FormattedMessage id="app.noPermission" />}> |
| 18 | + <div className="settings"> |
| 19 | + |
| 20 | + <h1>Public settings</h1> |
| 21 | + |
| 22 | + <div>To access your private settings, have a look at your <code>settings.json</code> file.</div> |
| 23 | + |
| 24 | + <div>More info about settings <a href="http://nova-docs.telescopeapp.org/settings.html">in the docs</a></div> |
| 25 | + |
| 26 | + <div className="settings-wrapper"> |
22 | 27 |
|
23 | | - <table className="table"> |
24 | | - <thead> |
25 | | - <tr> |
26 | | - <td>Name</td> |
27 | | - <td>Type</td> |
28 | | - <td>Value</td> |
29 | | - <td>Default</td> |
30 | | - <td>Description</td> |
31 | | - </tr> |
32 | | - </thead> |
33 | | - <tbody> |
34 | | - {_.map(_.omit(Meteor.settings, (value, key) => key.indexOf("$") >= 0), renderSetting)} |
35 | | - </tbody> |
36 | | - </table> |
| 28 | + <table className="table"> |
| 29 | + <thead> |
| 30 | + <tr> |
| 31 | + <td>Name</td> |
| 32 | + <td>Value</td> |
| 33 | + </tr> |
| 34 | + </thead> |
| 35 | + <tbody> |
| 36 | + {Object.keys(publicSettings).filter(key => !Array.isArray(publicSettings[key])).map(renderSetting)} |
| 37 | + </tbody> |
| 38 | + </table> |
37 | 39 |
|
| 40 | + </div> |
38 | 41 | </div> |
39 | | - |
40 | | - </div> |
41 | | - ) |
| 42 | + </Components.ShowIf> |
| 43 | + ); |
42 | 44 | } |
43 | 45 |
|
44 | 46 | registerComponent('Settings', Settings); |
0 commit comments