Browse Source

32/64 bit os switch

v0.25
pbca26 7 years ago
parent
commit
535c42f728
  1. 31
      assets/mainWindow/js/loading.js
  2. 28
      react/src/components/addcoin/addcoin.render.js
  3. 7
      react/src/components/addcoin/addcoinOptionsAC.js
  4. 11
      react/src/components/addcoin/addcoinOptionsCrypto.js
  5. 71
      react/src/components/addcoin/coin-selectors.render.js
  6. 41
      react/src/components/dashboard/settings/settings.appInfoPanel.js
  7. 16
      react/src/components/dashboard/settings/settings.appSettingsPanel.js
  8. 111
      react/src/components/dashboard/settings/settings.render.js
  9. 3
      react/src/components/dashboard/settings/settings.scss
  10. 2
      react/src/components/main/main.js

31
assets/mainWindow/js/loading.js

@ -288,15 +288,26 @@ function init() {
const remote = require('electron').remote;
var window = remote.getCurrentWindow();
var appConf = remote.getCurrentWindow().appConfig;
if (!appConf.experimentalFeatures) {
$('#kmdPassiveMode').hide();
$('#spvBtn').hide();
$('#spvBtnCarret').hide();
$('.dropdown-menu.native').css('right', '165px');
$('#nativeOnlyBtnCarret').css('margin-right', '0');
$('#settingsBtn').css('margin', '0');
$('.mode-desc.spv').hide();
$('.mode-desc.native').css('left', '180px');
var arch = remote.getCurrentWindow().arch;
if (arch !== 'x64') {
$('.settings-help').hide();
$('#agamaModeStatusText').html('Choose a shortcut or custom selection');
$('#settingsBtn').hide();
$('.mode-desc.native').hide();
$('#nativeOnlyBtn').hide();
$('#nativeOnlyBtnCarret').hide();
$('.mode-desc.spv').css('left', '200px');
$('.dropdown-menu.lite').css('left', '180px');
} else {
if (!appConf.experimentalFeatures) {
$('#spvBtn').hide();
$('#spvBtnCarret').hide();
$('.dropdown-menu.native').css('right', '165px');
$('#nativeOnlyBtnCarret').css('margin-right', '0');
$('#settingsBtn').css('margin', '0');
$('.mode-desc.spv').hide();
$('.mode-desc.native').css('left', '180px');
}
}
}

28
react/src/components/addcoin/addcoin.render.js

@ -1,6 +1,6 @@
import React from 'react';
import { translate } from '../../translate/translate';
import mainWindow from '../../util/mainWindow';
// TODO: add modal close on modal overlay click evt
const AddCoinRender = function() {
@ -50,19 +50,21 @@ const AddCoinRender = function() {
{ translate('ADD_COIN.ACTIVATE_ALL') }
</button>
</div>
<div className="col-sm-12">
<p>
<strong>{ translate('INDEX.NATIVE_MODE') }:</strong> { translate('INDEX.NATIVE_MODE_DESC1') }&nbsp;
<strong>Komodo Daemon</strong> { translate('INDEX.NATIVE_MODE_DESC2') }&nbsp;
<i>Iguana Daemon</i> { translate('INDEX.NATIVE_MODE_DESC3') }.
</p>
<div className="alert alert-icon alert-primary margin-top-20">
<i className="icon md-info-outline"></i>
<strong>{ translate('INDEX.NATIVE_MODE') }</strong> { translate('INDEX.NATIVE_MODE_DESC4') }&nbsp;
<strong>{ translate('INDEX.NATIVE_MODE_DESC5') }</strong>,&nbsp;
<i>{ translate('INDEX.NATIVE_MODE_DESC5') }</i>.
{ mainWindow.arch === 'x64' &&
<div className="col-sm-12">
<p>
<strong>{ translate('INDEX.NATIVE_MODE') }:</strong> { translate('INDEX.NATIVE_MODE_DESC1') }&nbsp;
<strong>Komodo Daemon</strong> { translate('INDEX.NATIVE_MODE_DESC2') }&nbsp;
<i>Iguana Daemon</i> { translate('INDEX.NATIVE_MODE_DESC3') }.
</p>
<div className="alert alert-icon alert-primary margin-top-20">
<i className="icon md-info-outline"></i>
<strong>{ translate('INDEX.NATIVE_MODE') }</strong> { translate('INDEX.NATIVE_MODE_DESC4') }&nbsp;
<strong>{ translate('INDEX.NATIVE_MODE_DESC5') }</strong>,&nbsp;
<i>{ translate('INDEX.NATIVE_MODE_DESC5') }</i>.
</div>
</div>
</div>
}
</div>
</div>
</div>

7
react/src/components/addcoin/addcoinOptionsAC.js

@ -1,5 +1,6 @@
import React from 'react';
import { translate } from '../../translate/translate';
import mainWindow from '../../util/mainWindow';
class AddCoinOptionsAC extends React.Component {
render() {
@ -25,7 +26,11 @@ class AddCoinOptionsAC extends React.Component {
let _items = [];
for (let i = 0; i < _assetChains.length; i++) {
const availableModes = _assetChains[i] !== 'kv' && _assetChains[i] !== 'mgw' ? 'native|spv' : 'native';
let availableModes = _assetChains[i] !== 'kv' && _assetChains[i] !== 'mgw' ? 'native|spv' : 'native';
if (mainWindow.arch !== 'x64') {
availableModes = 'spv';
}
_items.push(
<option

11
react/src/components/addcoin/addcoinOptionsCrypto.js

@ -1,5 +1,6 @@
import React from 'react';
import { translate } from '../../translate/translate';
import mainWindow from '../../util/mainWindow';
class AddCoinOptionsCrypto extends React.Component {
constructor() {
@ -10,11 +11,7 @@ class AddCoinOptionsCrypto extends React.Component {
}
componentWillMount() {
let appConfig;
try {
appConfig = window.require('electron').remote.getCurrentWindow().appConfig;
} catch (e) {}
const appConfig = mainWindow.appConfig;
this.setState({
isExperimentalOn: appConfig.experimentalFeatures,
@ -22,9 +19,11 @@ class AddCoinOptionsCrypto extends React.Component {
}
render() {
let availableKMDModes = mainWindow.arch === 'x64' ? 'native|spv' : 'spv';
return (
<optgroup label={ translate('ADD_COIN.CRYPTO_CURRENCIES') }>
<option value="KMD|native|spv">Komodo (KMD)</option>
<option value={ `KMD|${availableKMDModes}` }>Komodo (KMD)</option>
<option
value="CHIPS|spv"
className={ this.state.isExperimentalOn ? '' : 'hide' }>Chips (CHIPS)</option>

71
react/src/components/addcoin/coin-selectors.render.js

@ -3,6 +3,7 @@ import { translate } from '../../translate/translate';
import AddCoinOptionsCrypto from '../addcoin/addcoinOptionsCrypto';
import AddCoinOptionsAC from '../addcoin/addcoinOptionsAC';
import AddCoinOptionsACFiat from '../addcoin/addcoinOptionsACFiat';
import mainWindow from '../../util/mainWindow';
const CoinSelectorsRender = function(item, coin, i) {
return (
@ -24,7 +25,9 @@ const CoinSelectorsRender = function(item, coin, i) {
<option>{ translate('INDEX.SELECT') }</option>
<AddCoinOptionsCrypto appSettings={ this.props.Settings } />
<AddCoinOptionsAC appSettings={ this.props.Settings } />
<AddCoinOptionsACFiat appSettings={ this.props.Settings } />
{ mainWindow.arch === 'x64' &&
<AddCoinOptionsACFiat appSettings={ this.props.Settings } />
}
</select>
</div>
<div className={ this.hasMoreThanOneCoin() && (item.mode === '-1' || item.mode === -1) ? 'col-sm-6' : 'hide' }>
@ -82,38 +85,40 @@ const CoinSelectorsRender = function(item, coin, i) {
</span>
</label>
</div>
<div
className="form-group col-lg-4 col-md-4 col-sm-6 col-xs-6"
style={{ paddingLeft: '0' }}>
<input
type="radio"
className="to-labelauty labelauty"
name={ `mode-${i}` }
id={ `addcoin_mdl_native_mode_login-${i}` }
disabled={ item.nativeMode.disabled }
checked={ item.nativeMode.checked } />
<label
htmlFor={ `addcoin_mdl_native_mode_login-${i}` }
onClick={ () => this.updateSelectedMode('-1', i) }
style={{ pointerEvents: item.nativeMode.disabled ? 'none' : 'all' }}>
<span
className="labelauty-unchecked-image"
style={{ display: item.nativeMode.checked ? 'none' : 'inline-block' }}></span>
<span
className="labelauty-unchecked"
style={{ display: item.nativeMode.checked ? 'none' : 'inline-block' }}>
{ translate('INDEX.NATIVE_MODE') }
</span>
<span
className="labelauty-checked-image"
style={{ display: item.nativeMode.checked ? 'inline-block' : 'none' }}></span>
<span
className="labelauty-checked"
style={{ display: item.nativeMode.checked ? 'inline-block' : 'none' }}>
{ translate('INDEX.NATIVE_MODE') }
</span>
</label>
</div>
{ mainWindow.arch === 'x64' &&
<div
className="form-group col-lg-4 col-md-4 col-sm-6 col-xs-6"
style={{ paddingLeft: '0' }}>
<input
type="radio"
className="to-labelauty labelauty"
name={ `mode-${i}` }
id={ `addcoin_mdl_native_mode_login-${i}` }
disabled={ item.nativeMode.disabled }
checked={ item.nativeMode.checked } />
<label
htmlFor={ `addcoin_mdl_native_mode_login-${i}` }
onClick={ () => this.updateSelectedMode('-1', i) }
style={{ pointerEvents: item.nativeMode.disabled ? 'none' : 'all' }}>
<span
className="labelauty-unchecked-image"
style={{ display: item.nativeMode.checked ? 'none' : 'inline-block' }}></span>
<span
className="labelauty-unchecked"
style={{ display: item.nativeMode.checked ? 'none' : 'inline-block' }}>
{ translate('INDEX.NATIVE_MODE') }
</span>
<span
className="labelauty-checked-image"
style={{ display: item.nativeMode.checked ? 'inline-block' : 'none' }}></span>
<span
className="labelauty-checked"
style={{ display: item.nativeMode.checked ? 'inline-block' : 'none' }}>
{ translate('INDEX.NATIVE_MODE') }
</span>
</label>
</div>
}
</div>
<div className={ this.hasMoreThanOneCoin() && i !== 0 ? 'col-sm-1' : 'hide' }>
<button

41
react/src/components/dashboard/settings/settings.appInfoPanel.js

@ -1,6 +1,7 @@
import React from 'react';
import { translate } from '../../../translate/translate';
import { connect } from 'react-redux';
import mainWindow from '../../../util/mainWindow';
class AppInfoPanel extends React.Component {
constructor() {
@ -9,7 +10,7 @@ class AppInfoPanel extends React.Component {
render() {
const releaseInfo = this.props.Settings.appInfo && this.props.Settings.appInfo.releaseInfo;
if (!releaseInfo) {
return null
} else {
@ -20,7 +21,7 @@ class AppInfoPanel extends React.Component {
<p>
{ translate('SETTINGS.NAME') }: { this.props.Settings.appInfo.releaseInfo.name }
<br />
{ translate('SETTINGS.VERSION') }: { `${this.props.Settings.appInfo.releaseInfo.version.replace('version=', '')}-beta` }
{ translate('SETTINGS.VERSION') }: { `${this.props.Settings.appInfo.releaseInfo.version.replace('version=', '')}${mainWindow.arch === 'x64' ? '' : '-32bit'}-beta` }
<br />
{ translate('SETTINGS.APP_SESSION') }: { this.props.Settings.appInfo.appSession }
</p>
@ -40,22 +41,26 @@ class AppInfoPanel extends React.Component {
<br />
{ translate('SETTINGS.MEM') }: { this.props.Settings.appInfo.sysInfo.totalmem_readable }
</p>
<h5>{ translate('SETTINGS.LOCATIONS') }</h5>
<p>
{ translate('SETTINGS.CACHE') }: { this.props.Settings.appInfo.dirs.cacheLocation }
<br />
{ translate('SETTINGS.CONFIG') }: { this.props.Settings.appInfo.dirs.configLocation }
<br />
Iguana { translate('SETTINGS.BIN') }: { this.props.Settings.appInfo.dirs.iguanaBin }
<br />
Iguana { translate('SETTINGS.DIR') }: { this.props.Settings.appInfo.dirs.iguanaDir }
<br />
Komodo { translate('SETTINGS.BIN') }: { this.props.Settings.appInfo.dirs.komododBin }
<br />
Komodo { translate('SETTINGS.DIR') }: { this.props.Settings.appInfo.dirs.komodoDir }
<br />
Komodo wallet.dat: { this.props.Settings.appInfo.dirs.komodoDir }
</p>
{ mainWindow.arch === 'x64' &&
<h5>{ translate('SETTINGS.LOCATIONS') }</h5>
}
{ mainWindow.arch === 'x64' &&
<p>
{ translate('SETTINGS.CACHE') }: { this.props.Settings.appInfo.dirs.cacheLocation }
<br />
{ translate('SETTINGS.CONFIG') }: { this.props.Settings.appInfo.dirs.configLocation }
<br />
Iguana { translate('SETTINGS.BIN') }: { this.props.Settings.appInfo.dirs.iguanaBin }
<br />
Iguana { translate('SETTINGS.DIR') }: { this.props.Settings.appInfo.dirs.iguanaDir }
<br />
Komodo { translate('SETTINGS.BIN') }: { this.props.Settings.appInfo.dirs.komododBin }
<br />
Komodo { translate('SETTINGS.DIR') }: { this.props.Settings.appInfo.dirs.komodoDir }
<br />
Komodo wallet.dat: { this.props.Settings.appInfo.dirs.komodoDir }
</p>
}
</div>
</div>
);

16
react/src/components/dashboard/settings/settings.appSettingsPanel.js

@ -11,6 +11,7 @@ import {
triggerToaster,
} from '../../../actions/actionCreators';
import Store from '../../../store';
import mainWindow from '../../../util/mainWindow';
class AppSettingsPanel extends React.Component {
constructor() {
@ -26,15 +27,13 @@ class AppSettingsPanel extends React.Component {
}
componentWillMount() {
try {
const _appConfigSchema = window.require('electron').remote.getCurrentWindow().appConfigSchema;
const _appSettings = this.props.Settings.appSettings ? this.props.Settings.appSettings : Object.assign({}, window.require('electron').remote.getCurrentWindow().appConfig);
const _appConfigSchema = mainWindow.appConfigSchema;
const _appSettings = this.props.Settings.appSettings ? this.props.Settings.appSettings : Object.assign({}, mainWindow.appConfig);
this.setState(Object.assign({}, this.state, {
appConfigSchema: _appConfigSchema,
appSettings: _appSettings,
}));
} catch(e) {}
this.setState(Object.assign({}, this.state, {
appConfigSchema: _appConfigSchema,
appSettings: _appSettings,
}));
}
componentDidMount(props) {
@ -119,6 +118,7 @@ class AppSettingsPanel extends React.Component {
renderConfigEditForm() {
let items = [];
const _appConfig = this.state.appSettings;
for (let key in _appConfig) {
if (this.state.appConfigSchema[key] && typeof _appConfig[key] === 'object') {
if (this.state.appConfigSchema[key].display) {

111
react/src/components/dashboard/settings/settings.render.js

@ -17,6 +17,7 @@ import SPVServersPanel from './settings.spvServersPanel';
import DaemonStdoutPanel from './settings.daemonStdoutPanel';
import NativeWalletDatKeysPanel from './settings.nativeWalletDatKeysPanel';
import CoindClearDataDirPanel from './settings.coindClearDataDirPanel';
import mainWindow from '../../../util/mainWindow';
// import WalletInfoPanel from './settings.walletInfoPanel';
// import WalletBackupPanel from './settings.walletBackupPanel';
@ -71,82 +72,90 @@ export const SettingsRender = function() {
<Panel
uniqId={'SettingsAccordion'}
singleOpen={true}>
{ mainWindow.arch === 'x64' &&
<PanelSection
title={ translate('INDEX.DEBUG_LOG') }
icon="icon fa-bug"
openByDefault={this.props.disableWalletSpecificUI}>
<DebugLogPanel />
</PanelSection>
{ this.props.Main.coins &&
this.props.Main.coins.native &&
Object.keys(this.props.Main.coins.native).length > 0 &&
<PanelSection
title={ 'Komodod stdout' }
icon="icon fa-bug">
<DaemonStdoutPanel />
</PanelSection>
}
}
{ this.props.Main.coins &&
this.props.Main.coins.native &&
Object.keys(this.props.Main.coins.native).length > 0 &&
<PanelSection
title={ 'Komodod stdout' }
icon="icon fa-bug">
<DaemonStdoutPanel />
</PanelSection>
}
{ mainWindow.arch === 'x64' &&
<PanelSection
title={ translate('SETTINGS.APP_CONFIG') + ' (config.json)' }
icon="icon fa-wrench">
<AppSettingsPanel />
</PanelSection>
}
<PanelSection
title={ translate('SETTINGS.APP_INFO') }
icon="icon md-info">
<AppInfoPanel />
</PanelSection>
{ this.props.Main.coins &&
this.props.Main.coins.spv &&
Object.keys(this.props.Main.coins.spv).length &&
this.props.Main.isLoggedIn &&
<PanelSection
title={ translate('SETTINGS.APP_INFO') }
icon="icon md-info">
<AppInfoPanel />
title={ translate('INDEX.EXPORT_KEYS') }
icon="icon md-key">
<ExportKeysPanel />
</PanelSection>
{ this.props.Main.coins &&
this.props.Main.coins.spv &&
Object.keys(this.props.Main.coins.spv).length &&
this.props.Main.isLoggedIn &&
<PanelSection
title={ translate('INDEX.EXPORT_KEYS') }
icon="icon md-key">
<ExportKeysPanel />
</PanelSection>
}
}
{ mainWindow.arch === 'x64' &&
<PanelSection
title={ 'Wallet.dat keys' }
icon="icon md-key">
<NativeWalletDatKeysPanel />
</PanelSection>
}
{ mainWindow.arch === 'x64' &&
<PanelSection
title={ 'Clear native coin data dir' }
icon="icon fa-trash">
<CoindClearDataDirPanel />
</PanelSection>
{ this.props.Main.coins &&
this.props.Main.coins.spv &&
Object.keys(this.props.Main.coins.spv).length &&
this.displaySPVServerListTab() &&
<PanelSection
title={ translate('SETTINGS.SPV_SERVERS') }
icon="icon fa-server">
<SPVServersPanel />
</PanelSection>
}
{ this.props.Main.coins &&
this.props.Main.coins.native &&
Object.keys(this.props.Main.coins.native).length > 0 &&
<PanelSection
title="CLI"
icon="icon fa-code">
<CliPanel />
</PanelSection>
}
{ this.state.isExperimentalOn &&
<PanelSection
title={ translate('INDEX.UPDATE') }
icon="icon fa fa-cloud-download">
<AppUpdatePanel />
</PanelSection>
}
}
{ this.props.Main.coins &&
this.props.Main.coins.spv &&
Object.keys(this.props.Main.coins.spv).length &&
this.displaySPVServerListTab() &&
<PanelSection
title={ translate('SETTINGS.SPV_SERVERS') }
icon="icon fa-server">
<SPVServersPanel />
</PanelSection>
}
{ this.props.Main.coins &&
this.props.Main.coins.native &&
Object.keys(this.props.Main.coins.native).length > 0 &&
<PanelSection
title={ translate('SETTINGS.SUPPORT') }
icon="icon fa fa-life-ring">
<SupportPanel />
title="CLI"
icon="icon fa-code">
<CliPanel />
</PanelSection>
}
{ this.state.isExperimentalOn &&
<PanelSection
title={ translate('INDEX.UPDATE') }
icon="icon fa fa-cloud-download">
<AppUpdatePanel />
</PanelSection>
}
<PanelSection
title={ translate('SETTINGS.SUPPORT') }
icon="icon fa fa-life-ring">
<SupportPanel />
</PanelSection>
</Panel>
</div>
</div>

3
react/src/components/dashboard/settings/settings.scss

@ -93,7 +93,7 @@
#SettingsAccordion {
.panel {
.panel-collapse {
&.collapse {
max-height: 0;
overflow: hidden;
@ -111,6 +111,7 @@
#section-iguana-wallet-settings {
background: #f3f4f5;
height: 100%;
.panel-title {
cursor: pointer;

2
react/src/components/main/main.js

@ -21,7 +21,7 @@ class Main extends React.Component {
const appConfig = mainWindow.appConfig;
if (appVersion) {
document.title = `${appVersion.name} (v${appVersion.version.replace('version=', '')}-beta)`;
document.title = `${appVersion.name} (v${appVersion.version.replace('version=', '')}${mainWindow.arch === 'x64' ? '' : '-32bit'}-beta)`;
}
}

Loading…
Cancel
Save