forked from cartoon-battle/cartoon-battle.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.html
More file actions
62 lines (55 loc) · 2.19 KB
/
Copy pathsettings.html
File metadata and controls
62 lines (55 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
---
---
<form name="settings">
<p class="alert alert-warning">Settings take no effect currently</p>
<fieldset/>
</form>
<script type="text/javascript">
/* global require */
require(['react', 'react-dom', 'settings'], function (React, ReactDOM, Settings) {
var fieldset = document.forms.settings.querySelector('fieldset');
var $ = React.createElement;
var settingsItem = React.createClass({
"propTypes": {
"setting": React.PropTypes.object.isRequired
},
"getInitialState": function() {
return { "setting": this.props.setting };
},
"onChange": function (event) {
var setting = this.state.setting;
"function" === typeof ga && ga('send', 'event', 'setting', setting.getName(), event.target.checked ? "enabled" : "disabled");
setting.setValue(!!event.target.checked);
this.setState({"setting": setting});
},
render: function () {
return (
$('div', {"className": "checkbox", "key": this.props.setting.getName()},
$('label', {},
$('input', {
"type": "checkbox",
"checked": !!this.props.setting.getValue(),
"onChange": this.onChange
}),
this.props.setting.getLabel()
)
)
);
}
});
var settingsList = React.createClass({
"propTypes": {
"settings": React.PropTypes.arrayOf(React.PropTypes.object).isRequired
},
render: function () {
return $('fieldset', {}, this.props.settings.map(function (setting) {
return $(settingsItem, {
"setting": setting,
"key": setting.getName()
})
}));
}
});
ReactDOM.render(React.createElement(settingsList, {"settings": Settings.all()}), fieldset);
});
</script>