@@ -15,7 +15,7 @@ var http = require('http');
1515var  https  =  require ( 'https' ) ; 
1616var  ua  =  require ( 'universal-analytics' ) ; 
1717const  { promisify,  atob,  walk,  unique}  =  require ( './helpers' ) ; 
18- const  { seek4File,  copyFile,  uploadFiles ,  configFiles,  getBoards,  getThermistors}  =  require ( './common' ) ; 
18+ const  { seek4File,  copyFile,  uploadCopyFiles ,  configFilesList ,  configFiles,  getBoards,  getThermistors}  =  require ( './common' ) ; 
1919var  qr  =  require ( 'qr-image' ) ; 
2020var  machineId  =  require ( 'node-machine-id' ) . machineId ; 
2121
@@ -73,6 +73,8 @@ var get_cfg=()=>{
7373
7474var  ex_dir  =  ( rel )  =>  seek4File ( '' ,  [ path . join ( 'Marlin' ,  'example_configurations' ) ,  path . join ( 'Marlin' ,  'src' ,  'config' ,  'examples' ) ] ,  rel ) 
7575
76+ const  sortNCS  =  ( a ,  b )  =>  a . toLowerCase ( ) . localeCompare ( b . toLowerCase ( ) ) ; 
77+ 
7678app . get ( '/examples' ,  function  ( req ,  res )  { 
7779    var  ex ; 
7880    return  ex_dir ( ) 
@@ -81,6 +83,7 @@ app.get('/examples', function (req, res) {
8183    . then ( a => a . filter ( i => / C o n f i g u r a t i o n ( _ a d v ) ? \. h / . test ( i ) ) ) 
8284    . then ( a => a . map ( i => path . parse ( path . relative ( ex , i ) ) . dir ) ) 
8385    . then ( unique ) 
86+     . then ( a  =>  a . sort ( sortNCS ) ) 
8487    . catch ( e  =>  [ ] ) 
8588    . then ( a => ( a . unshift ( 'Marlin' ) , a ) ) 
8689    . then ( a  =>  res . send ( { current : store . vars . baseCfg ,  list : a } ) ) 
@@ -196,19 +199,16 @@ app.post('/upload', function(req, res){
196199      done ( files ) ; 
197200    } ) 
198201  } ) 
199-   . then ( files => { 
200-     files . map ( file => { 
201-       if  ( [ 'Configuration.h' , 'Configuration_adv.h' ] . indexOf ( file . name ) < 0 ) 
202-         throw  'Wrong file name! Allowed only Configuration.h and Configuration_adv.h' ; 
203-     } ) 
204-     return  files ; 
205-   } ) 
202+   . then ( files  =>  Promise . all ( files . map ( file  => 
203+       configFilesList . indexOf ( file . name )  >=  0  ? file  : Promise . reject ( 'Wrong file name! Allowed only files '  +  configFilesList ) 
204+   ) ) ) 
206205//  .then(a=>(console.log(a),a)) 
207206//process 
208-   . then ( uploadFiles ) 
207+   . then ( uploadCopyFiles ) 
209208  . then ( a => res . send ( a ) ) 
210209  . catch ( e => res . status ( 403 ) . send ( e ) ) 
211210} ) ; 
211+ 
212212app . post ( '/set/:file/:name/:prop/:value' ,  function  ( req ,  res )  { 
213213  var  ip  =  req . headers [ 'x-forwarded-for' ]  ||  req . connection . remoteAddress ; 
214214  var  name  =  req . params . name . split ( '.' ) ; 
0 commit comments