@@ -42,9 +42,25 @@ const settings = (() => {
4242 el . attr ( {
4343 id : key ,
4444 } ) ;
45- el . on ( 'change.script' , ( e ) => {
45+ function callChange ( e ) {
4646 setting . onChange ( $ ( e . target ) ) ;
47- } ) ;
47+ }
48+ switch ( setting . type ) {
49+ default : break ;
50+ case 'boolean' :
51+ case 'select' :
52+ case 'remove' :
53+ el . on ( 'change.script' , callChange ) ;
54+ break ;
55+ case 'input' :
56+ case 'array' :
57+ el . on ( 'keydown.script' , ( e ) => {
58+ if ( e . which !== 13 ) return ;
59+ e . preventDefault ( ) ;
60+ callChange ( e ) ;
61+ e . val ( '' ) ;
62+ } ) ;
63+ }
4864 const label = $ ( `<label for="${ key } ">` ) . html ( setting . name ) ;
4965 const disabled = ( typeof setting . disabled === 'function' ? setting . disabled ( ) : setting . disabled ) === true ;
5066 if ( disabled ) {
@@ -68,8 +84,33 @@ const settings = (() => {
6884 const page = d . getData ( 'page' ) ;
6985 const container = $ ( '<div>' ) ;
7086 const pageSettings = configs [ page ] . settings ;
87+ const categories = { } ;
88+ function createCategory ( name ) {
89+ const set = $ ( '<fieldset>' ) . css ( {
90+ padding : '.35em .625em .75em' ,
91+ margin : '0 2px' ,
92+ border : '1px solid silver' ,
93+ } ) ;
94+ categories [ name ] = set ;
95+ if ( name !== 'N/A' ) {
96+ set . append ( $ ( '<legend>' ) . css ( {
97+ padding : 0 ,
98+ border : 0 ,
99+ width : 'auto' ,
100+ margin : 0 ,
101+ 'font-family' : 'DTM-Mono' ,
102+ color : 'white' ,
103+ } ) . html ( name ) )
104+ }
105+ container . append ( set ) ;
106+ return set ;
107+ }
108+ function category ( name = 'N/A' ) {
109+ return categories [ name ] || createCategory ( name ) ;
110+ }
111+ category ( ) ;
71112 fn . each ( pageSettings , ( data ) => {
72- container . append ( createSetting ( data ) ) ;
113+ category ( data . category ) . append ( createSetting ( data ) ) ;
73114 } ) ;
74115 return container ;
75116 }
@@ -105,6 +146,9 @@ const settings = (() => {
105146 } else if ( setting . type === 'remove' ) {
106147 val = false ;
107148 removeSetting ( setting , el ) ;
149+ } else if ( setting . type === 'array' ) {
150+ // Holy crap
151+ return ;
108152 } else {
109153 debug ( `Unknown Setting Type: ${ setting . type } ` ) ;
110154 return ;
0 commit comments