@@ -3,21 +3,24 @@ import path from "path";
3
3
const { dialog} = require ( '@electron/remote' ) ;
4
4
import versions from '../versions' ;
5
5
import { listEMMEPythonPaths } from './search_emme_pythonpath' ;
6
+ import classNames from 'classnames' ;
6
7
7
8
const EnvironmentOption = ( {
8
9
envPath, isSelected, setPath, removePath,
9
10
} ) => {
10
11
return (
11
12
< div className = "Settings__environment_option" >
12
13
< p > { envPath } </ p >
13
- < button className = " Settings__env_option_btn" disabled = { isSelected } onClick = { ( ) => setPath ( envPath ) } > Valitse</ button >
14
+ < button className = { classNames ( ' Settings__env_option_btn' , { 'Settings__env_btn_disabled' : isSelected } ) } disabled = { isSelected } onClick = { ( ) => setPath ( envPath ) } > { isSelected ? 'Käytössä' : ' Valitse' } </ button >
14
15
< button className = "Settings__env_option_btn" onClick = { ( ) => removePath ( envPath ) } > Poista</ button >
15
16
</ div >
16
17
)
17
18
}
18
19
20
+ const PathOptionDivider = ( ) => < div className = 'Settings__env_option_divider' />
21
+
19
22
const Settings = ( {
20
- emmePythonPath, emmePythonEnvs, setEMMEPythonPath, setEMMEPythonEnvs, removeFromEMMEPythonEnvs,
23
+ emmePythonPath, emmePythonEnvs, setEMMEPythonPath, setEMMEPythonEnvs, addToEMMEPythonEnvs , removeFromEMMEPythonEnvs,
21
24
helmetScriptsPath, setHelmetScriptsPath, dlHelmetScriptsVersion, isDownloadingHelmetScripts,
22
25
projectPath, setProjectPath,
23
26
basedataPath, setBasedataPath,
@@ -36,34 +39,32 @@ const Settings = ({
36
39
37
40
< div className = "Settings__dialog-heading" > Projektin asetukset</ div >
38
41
< div className = "Settings__dialog-input-group" >
39
- < span className = "Settings__pseudo-label" > Valittu Python-ympäristö: { emmePythonPath } </ span >
40
42
< span className = "Settings__pseudo-label" > Käytettävät Python-ympäristöt:</ span >
41
- { emmePythonEnvs . map ( env => { return < EnvironmentOption envPath = { env } isSelected = { emmePythonPath === env }
43
+ { emmePythonEnvs . map ( ( env , index ) => { return (
44
+ < div >
45
+ < EnvironmentOption envPath = { env } isSelected = { emmePythonPath === env }
42
46
setPath = { setEMMEPythonPath }
43
- removePath = { removeFromEMMEPythonEnvs } /> } ) }
44
- < br />
45
- < label className = "Settings__pseudo-file-select" htmlFor = "hidden-input-emme-python-path" title = { emmePythonPath } >
46
- { emmePythonPath ? path . basename ( emmePythonPath ) : "Valitse.." }
47
- </ label >
48
- < input className = "Settings__hidden-input"
49
- id = "hidden-input-emme-python-path"
50
- type = "text"
51
- onClick = { ( ) => {
52
- dialog . showOpenDialog ( {
53
- defaultPath : emmePythonPath ? emmePythonPath : path . resolve ( '/' ) ,
54
- filters : [
55
- { name : 'Executable' , extensions : [ 'exe' ] } ,
56
- { name : 'All Files' , extensions : [ '*' ] }
57
- ] ,
58
- properties : [ 'openFile' ]
59
- } ) . then ( ( e ) => {
60
- if ( ! e . canceled ) {
61
- setEMMEPythonPath ( e . filePaths [ 0 ] ) ;
62
- }
63
- } )
64
- } }
65
- />
66
-
47
+ removePath = { removeFromEMMEPythonEnvs } />
48
+ { index < emmePythonEnvs . length && < PathOptionDivider /> }
49
+ </ div > ) } ) }
50
+ < button className = "Settings__input-btn"
51
+ onClick = { ( ) => {
52
+ dialog . showOpenDialog ( {
53
+ defaultPath : emmePythonPath ? emmePythonPath : path . resolve ( '/' ) ,
54
+ filters : [
55
+ { name : 'Executable' , extensions : [ 'exe' ] } ,
56
+ { name : 'All Files' , extensions : [ '*' ] }
57
+ ] ,
58
+ properties : [ 'openFile' ]
59
+ } ) . then ( ( e ) => {
60
+ if ( ! e . canceled ) {
61
+ addToEMMEPythonEnvs ( e . filePaths [ 0 ] ) ;
62
+ }
63
+ } )
64
+ } }
65
+ >
66
+ Lisää Python-ympäristö
67
+ </ button >
67
68
< button className = "Settings__input-btn"
68
69
onClick = { ( e ) => {
69
70
const [ found , pythonPaths ] = listEMMEPythonPaths ( ) ;
@@ -77,6 +78,7 @@ const Settings = ({
77
78
Etsi Python-ympäristöjä
78
79
</ button >
79
80
</ div >
81
+ < br />
80
82
< div className = "Settings__dialog-input-group" >
81
83
< span className = "Settings__pseudo-label" > Helmet-model-system</ span >
82
84
{ isDownloadingHelmetScripts ?
0 commit comments