@@ -31,7 +31,21 @@ class ConfigContent extends React.Component {
3131 var change = this . state . serverSettings ;
3232
3333 if ( e . target . value === "true" || e . target . value === "false" ) {
34+ // Ensure Boolean type is used if required
35+ if ( e . target . id === "lan" || e . target . id === "public" ) {
36+ if ( e . target . value == "true" ) {
37+ fieldValue = true
38+ } else {
39+ fieldValue = false
40+ }
41+ change [ "visibility" ] [ e . target . id ] = fieldValue
42+ this . setState ( { serverSettings : change } ) ;
43+ return ;
44+ }
3445 fieldValue = Boolean ( e . target . value )
46+ } else if ( e . target . id === "admins" || e . target . id === "tags" ) {
47+ // Split settings values that are stored as arrays
48+ fieldValue = e . target . value . split ( "," )
3549 } else {
3650 fieldValue = e . target . value
3751 }
@@ -105,66 +119,78 @@ class ConfigContent extends React.Component {
105119 switch ( typeof setting ) {
106120 case "number" :
107121 return (
108- < input
109- key = { key }
110- ref = { key }
111- id = { key }
112- className = "form-control"
113- defaultValue = { setting }
114- type = "number"
115- onChange = { this . handleServerSettingsChange . bind ( this , key ) }
116- />
122+ < input
123+ key = { key }
124+ ref = { key }
125+ id = { key }
126+ className = "form-control"
127+ defaultValue = { setting }
128+ type = "number"
129+ onChange = { this . handleServerSettingsChange . bind ( this , key ) }
130+ />
117131 )
118132 case "string" :
119133 if ( key . includes ( "password" ) ) {
120134 return (
121- < input
122- key = { key }
123- ref = { key }
124- id = { key }
125- className = "form-control"
126- defaultValue = { setting }
127- type = "password"
128- onChange = { this . handleServerSettingsChange . bind ( this , key ) }
129- />
135+ < input
136+ key = { key }
137+ ref = { key }
138+ id = { key }
139+ className = "form-control"
140+ defaultValue = { setting }
141+ type = "password"
142+ onChange = { this . handleServerSettingsChange . bind ( this , key ) }
143+ />
130144 )
131145 } else {
132146 return (
133- < input
134- key = { key }
135- ref = { key }
136- id = { key }
137- className = "form-control"
138- defaultValue = { setting }
139- type = "text"
140- onChange = { this . handleServerSettingsChange . bind ( this , key ) }
141- />
147+ < input
148+ key = { key }
149+ ref = { key }
150+ id = { key }
151+ className = "form-control"
152+ defaultValue = { setting }
153+ type = "text"
154+ onChange = { this . handleServerSettingsChange . bind ( this , key ) }
155+ />
142156 )
143157 }
144158 case "boolean" :
145- console . log ( key )
146159 return (
147- < select key = { key } ref = { key } id = { key } className = "form-control" onChange = { this . handleServerSettingsChange . bind ( this , key ) } >
148- < option value = { true } > True</ option >
149- < option value = { false } > False</ option >
150- </ select >
160+ < select key = { key } ref = { key } id = { key } className = "form-control" onChange = { this . handleServerSettingsChange . bind ( this , key ) } >
161+ < option value = { true } > True</ option >
162+ < option value = { false } > False</ option >
163+ </ select >
151164 )
152165 case "object" :
153166 if ( Array . isArray ( setting ) ) {
154167 return (
155- < input
156- key = { key }
157- ref = { key }
158- id = { key }
159- className = "form-control"
160- defaultValue = { setting }
161- type = "text"
162- onChange = { this . handleServerSettingsChange . bind ( this , key ) }
163- />
168+ < input
169+ key = { key }
170+ ref = { key }
171+ id = { key }
172+ className = "form-control"
173+ defaultValue = { setting }
174+ type = "text"
175+ onChange = { this . handleServerSettingsChange . bind ( this , key ) }
176+ />
164177 )
165178 } else {
166- if ( Object . keys ( setting ) . length > 0 ) {
167- //this.formTypeField(key, setting);
179+ if ( key . includes ( "visibility" ) ) {
180+ let vis_fields = [ ]
181+ for ( const key in setting ) {
182+ const field =
183+ < div >
184+ < p > { key } </ p >
185+ < select label = { key } key = { key } ref = { key } id = { key } className = "form-control" onChange = { this . handleServerSettingsChange . bind ( this , key ) } >
186+ < option selected = { setting [ key ] ? "selected" : "" } value = { true } > True</ option >
187+ < option selected = { ! setting [ key ] ? "selected" : "" } value = { false } > False</ option >
188+ </ select >
189+ </ div >
190+ vis_fields . push ( field )
191+ }
192+
193+ return vis_fields
168194 }
169195 }
170196 default :
0 commit comments