Merge pull request #1569 from amitnndn/master
Adding ability to view logs and open log directory
This commit is contained in:
commit
02a9139ddd
5 changed files with 84 additions and 9 deletions
|
@ -20,5 +20,6 @@ module.name_mapper='^lbry\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/lbry\1'
|
||||||
module.name_mapper='^rewards\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/rewards\1'
|
module.name_mapper='^rewards\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/rewards\1'
|
||||||
module.name_mapper='^modal\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/modal\1'
|
module.name_mapper='^modal\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/modal\1'
|
||||||
module.name_mapper='^app\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/app\1'
|
module.name_mapper='^app\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/app\1'
|
||||||
|
module.name_mapper='^native\(.*\)$' -> '<PROJECT_ROOT>/src/renderer/native\1'
|
||||||
|
|
||||||
[strict]
|
[strict]
|
||||||
|
|
|
@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
* Add ability to open log file and log directory in the help page ([#1556](https://github.com/lbryio/lbry-app/issues/1556))
|
||||||
* Add ability to resend verification email ([#1492](https://github.com/lbryio/lbry-app/issues/1492))
|
* Add ability to resend verification email ([#1492](https://github.com/lbryio/lbry-app/issues/1492))
|
||||||
* Add Narrative about Feature Request on Help Page and Report Page ([#1551](https://github.com/lbryio/lbry-app/pull/1551))
|
* Add Narrative about Feature Request on Help Page and Report Page ([#1551](https://github.com/lbryio/lbry-app/pull/1551))
|
||||||
* Add keyboard shortcut to quit the app on Windows ([#1202](https://github.com/lbryio/lbry-app/pull/1202))
|
* Add keyboard shortcut to quit the app on Windows ([#1202](https://github.com/lbryio/lbry-app/pull/1202))
|
||||||
|
@ -27,6 +28,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
|
||||||
* Move rewards logic to interal api ([#1509](https://github.com/lbryio/lbry-app/pull/1509))
|
* Move rewards logic to interal api ([#1509](https://github.com/lbryio/lbry-app/pull/1509))
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
* Fixing content address extending outside of visible area. ([#741](https://github.com/lbryio/lbry-app/issues/741))
|
||||||
* Fix content-type not shown correctly in file description ([#863](https://github.com/lbryio/lbry-app/pull/863))
|
* Fix content-type not shown correctly in file description ([#863](https://github.com/lbryio/lbry-app/pull/863))
|
||||||
* Fix [Flow](https://flow.org/) ([#1197](https://github.com/lbryio/lbry-app/pull/1197))
|
* Fix [Flow](https://flow.org/) ([#1197](https://github.com/lbryio/lbry-app/pull/1197))
|
||||||
* Fix black screen on macOS after maximizing LBRY and then closing ([#1235](https://github.com/lbryio/lbry-app/pull/1235))
|
* Fix black screen on macOS after maximizing LBRY and then closing ([#1235](https://github.com/lbryio/lbry-app/pull/1235))
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import { doAuthNavigate } from 'redux/actions/navigation';
|
import { doAuthNavigate } from 'redux/actions/navigation';
|
||||||
import { doFetchAccessToken } from 'redux/actions/user';
|
import { doFetchAccessToken } from 'redux/actions/user';
|
||||||
|
import { selectDaemonSettings } from 'redux/selectors/settings';
|
||||||
import { selectAccessToken, selectUser } from 'redux/selectors/user';
|
import { selectAccessToken, selectUser } from 'redux/selectors/user';
|
||||||
import HelpPage from './view';
|
import HelpPage from './view';
|
||||||
|
|
||||||
const select = state => ({
|
const select = state => ({
|
||||||
user: selectUser(state),
|
user: selectUser(state),
|
||||||
accessToken: selectAccessToken(state),
|
accessToken: selectAccessToken(state),
|
||||||
|
deamonSettings: selectDaemonSettings(state),
|
||||||
});
|
});
|
||||||
|
|
||||||
const perform = dispatch => ({
|
const perform = dispatch => ({
|
||||||
|
@ -14,4 +16,7 @@ const perform = dispatch => ({
|
||||||
fetchAccessToken: () => dispatch(doFetchAccessToken()),
|
fetchAccessToken: () => dispatch(doFetchAccessToken()),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(select, perform)(HelpPage);
|
export default connect(
|
||||||
|
select,
|
||||||
|
perform
|
||||||
|
)(HelpPage);
|
||||||
|
|
|
@ -1,15 +1,44 @@
|
||||||
// @TODO: Customize advice based on OS
|
// @TODO: Customize advice based on OS
|
||||||
import React from 'react';
|
// @flow
|
||||||
|
import * as React from 'react';
|
||||||
|
import { shell } from 'electron';
|
||||||
import { Lbry } from 'lbry-redux';
|
import { Lbry } from 'lbry-redux';
|
||||||
import Native from 'native';
|
import Native from 'native';
|
||||||
import Button from 'component/button';
|
import Button from 'component/button';
|
||||||
import BusyIndicator from 'component/common/busy-indicator';
|
import BusyIndicator from 'component/common/busy-indicator';
|
||||||
import Icon from 'component/common/icon';
|
|
||||||
import Page from 'component/page';
|
import Page from 'component/page';
|
||||||
import * as icons from 'constants/icons';
|
import * as icons from 'constants/icons';
|
||||||
|
|
||||||
class HelpPage extends React.PureComponent {
|
type DeamonSettings = {
|
||||||
constructor(props) {
|
data_dir: string | any,
|
||||||
|
};
|
||||||
|
|
||||||
|
type Props = {
|
||||||
|
deamonSettings: DeamonSettings,
|
||||||
|
accessToken: string,
|
||||||
|
fetchAccessToken: () => void,
|
||||||
|
doAuth: () => void,
|
||||||
|
user: any,
|
||||||
|
};
|
||||||
|
|
||||||
|
type VersionInfo = {
|
||||||
|
os_system: string,
|
||||||
|
os_release: string,
|
||||||
|
platform: string,
|
||||||
|
lbrynet_version: string,
|
||||||
|
lbryum_version: string,
|
||||||
|
};
|
||||||
|
|
||||||
|
type State = {
|
||||||
|
versionInfo: VersionInfo | any,
|
||||||
|
lbryId: String | any,
|
||||||
|
uiVersion: ?string,
|
||||||
|
upgradeAvailable: ?boolean,
|
||||||
|
accessTokenHidden: ?boolean,
|
||||||
|
};
|
||||||
|
|
||||||
|
class HelpPage extends React.PureComponent<Props, State> {
|
||||||
|
constructor(props: Props) {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
|
@ -20,11 +49,12 @@ class HelpPage extends React.PureComponent {
|
||||||
accessTokenHidden: true,
|
accessTokenHidden: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
this.showAccessToken = this.showAccessToken.bind(this);
|
(this: any).showAccessToken = this.showAccessToken.bind(this);
|
||||||
|
(this: any).openLogFile = this.openLogFile.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
Native.getAppVersionInfo().then(({ remoteVersion, localVersion, upgradeAvailable }) => {
|
Native.getAppVersionInfo().then(({ localVersion, upgradeAvailable }) => {
|
||||||
this.setState({
|
this.setState({
|
||||||
uiVersion: localVersion,
|
uiVersion: localVersion,
|
||||||
upgradeAvailable,
|
upgradeAvailable,
|
||||||
|
@ -50,13 +80,24 @@ class HelpPage extends React.PureComponent {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
openLogFile(userHomeDirectory: string) {
|
||||||
|
const logFileName = 'lbrynet.log';
|
||||||
|
const os = this.state.versionInfo.os_system;
|
||||||
|
if (os === 'Darwin' || os === 'Linux') {
|
||||||
|
shell.openItem(`${userHomeDirectory}/${logFileName}`);
|
||||||
|
} else {
|
||||||
|
shell.openItem(`${userHomeDirectory}\\${logFileName}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let ver;
|
let ver;
|
||||||
let osName;
|
let osName;
|
||||||
let platform;
|
let platform;
|
||||||
let newVerLink;
|
let newVerLink;
|
||||||
|
|
||||||
const { accessToken, doAuth, user } = this.props;
|
const { accessToken, doAuth, user, deamonSettings } = this.props;
|
||||||
|
const { data_dir: dataDirectory } = deamonSettings;
|
||||||
|
|
||||||
if (this.state.versionInfo) {
|
if (this.state.versionInfo) {
|
||||||
ver = this.state.versionInfo;
|
ver = this.state.versionInfo;
|
||||||
|
@ -108,12 +149,34 @@ class HelpPage extends React.PureComponent {
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section className="card card--section">
|
||||||
|
<div className="card__title">{__('View your Log')}</div>
|
||||||
|
<p className="card__subtitle">
|
||||||
|
{__(
|
||||||
|
'Do you find something wrong? Have a look in your log, or send your log to support for some help.'
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
<div className="card__actions">
|
||||||
|
<Button
|
||||||
|
button="primary"
|
||||||
|
label={__('Open Log')}
|
||||||
|
icon={icons.REPORT}
|
||||||
|
onClick={() => this.openLogFile(dataDirectory)}
|
||||||
|
/>
|
||||||
|
<Button
|
||||||
|
button="primary"
|
||||||
|
label={__('Open Log Folder')}
|
||||||
|
icon={icons.REPORT}
|
||||||
|
onClick={() => shell.showItemInFolder(dataDirectory)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section className="card card--section">
|
<section className="card card--section">
|
||||||
<div className="card__title">{__('Report a Bug or Suggest a New Feature')}</div>
|
<div className="card__title">{__('Report a Bug or Suggest a New Feature')}</div>
|
||||||
<p className="card__subtitle">
|
<p className="card__subtitle">
|
||||||
{__('Did you find something wrong? Think LBRY could add something useful and cool?')}
|
{__('Did you find something wrong? Think LBRY could add something useful and cool?')}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div className="card__actions">
|
<div className="card__actions">
|
||||||
<Button
|
<Button
|
||||||
navigate="/report"
|
navigate="/report"
|
||||||
|
|
|
@ -8,6 +8,10 @@
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.card > h1 {
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
.card--section {
|
.card--section {
|
||||||
background-color: var(--card-bg);
|
background-color: var(--card-bg);
|
||||||
padding: $spacing-vertical;
|
padding: $spacing-vertical;
|
||||||
|
|
Loading…
Reference in a new issue