diff options
| author | adamhrv <adam@ahprojects.com> | 2019-03-27 17:40:12 +0100 |
|---|---|---|
| committer | adamhrv <adam@ahprojects.com> | 2019-03-27 17:40:12 +0100 |
| commit | b2c61d7ebc142b41f8cb15b00764319801d1bf5d (patch) | |
| tree | 3bb32bbf01bc029753d649058916f3da3c678b4d /scraper/client/paper | |
| parent | 5eb9597489da8c689266489788719111b3490076 (diff) | |
| parent | 1c25e681184dd3c61a6296d5cebb4e5883b072f0 (diff) | |
Merge branch 'master' of github.com:adamhrv/megapixels_dev
Diffstat (limited to 'scraper/client/paper')
| -rw-r--r-- | scraper/client/paper/paper.citations.js | 22 | ||||
| -rw-r--r-- | scraper/client/paper/paper.css | 26 | ||||
| -rw-r--r-- | scraper/client/paper/paper.random.js | 2 | ||||
| -rw-r--r-- | scraper/client/paper/paper.verify.js | 181 |
4 files changed, 167 insertions, 64 deletions
diff --git a/scraper/client/paper/paper.citations.js b/scraper/client/paper/paper.citations.js index 53923c6e..5c8e0e0c 100644 --- a/scraper/client/paper/paper.citations.js +++ b/scraper/client/paper/paper.citations.js @@ -6,6 +6,7 @@ import { Link } from 'react-router-dom' import * as actions from '../actions' import { TableObject } from '../common' +import { USES_DATASET } from '../types' class PaperCitations extends Component { componentDidMount() { @@ -36,10 +37,11 @@ class PaperCitations extends Component { cite.s2 = { _raw: true, value: <a - href={'https://www.semanticscholar.org/paper/' + citation.id} - target="_blank" - className={'pdfLink'} - >{'[semantic scholar]'}</a> + href={'https://www.semanticscholar.org/paper/' + citation.id} + target="_blank" + rel="noopener noreferrer" + className={'pdfLink'} + >{'[semantic scholar]'}</a> } cite.addresses = { _raw: true, @@ -47,11 +49,19 @@ class PaperCitations extends Component { <div key={j}>{address.name}{', '}<span className='type'>{address.type}</span></div> )) } - if (citation.id in verifications) { + if (citation.id in verifications && verifications[citation.id].dataset === dataset.key) { const verification = verifications[citation.id] cite.verified = { _raw: true, - value: verification['uses_dataset'] === 'TRUE' ? <span className='verified'>uses dataset</span> : <span className='unverified'>doesn't use dataset</span> + value: verification.uses_dataset === USES_DATASET.YES + ? <span className='verified'>uses dataset</span> + : verification.uses_dataset === USES_DATASET.NO + ? <span className='unverified'>{"doesn't use dataset"}</span> + : verification.uses_dataset === 'TRUE' + ? <span className='verified'>uses dataset</span> + : verification.uses_dataset === 'FALSE' + ? <span className='unverified'>{"doesn't use dataset"}</span> + : <span className='unknown'>{"not enough information"}</span> } } else { diff --git a/scraper/client/paper/paper.css b/scraper/client/paper/paper.css index 4f437e76..ac711559 100644 --- a/scraper/client/paper/paper.css +++ b/scraper/client/paper/paper.css @@ -1,3 +1,12 @@ +.row { + display: flex; + flex-direction: row; + padding: 4px; +} +.rowHeading { + display: block; + width: 194px; +} .form, .paperInfo { padding: 10px; width: 100%; @@ -75,9 +84,16 @@ input.notes { .param .btn { margin-top: 5px; } -.vetting { - width: 250px; - margin-right: 10px; +.row.disabled { opacity: 0.5; pointer-events: none;} + +.vettingRow label { + display: flex; + justify-content: center; + align-items: center; + padding: 0 10px 0 0; +} +.vettingRow input { + margin-right: 6px; } .param label { display: block; @@ -87,7 +103,11 @@ input.notes { .param input[type=checkbox] { margin: 6px 0; } +input[type=text] { + margin-bottom: 2px; +} textarea { + margin-bottom: 2px; padding: 4px; font-size: 14px; } diff --git a/scraper/client/paper/paper.random.js b/scraper/client/paper/paper.random.js index aab22172..c7476332 100644 --- a/scraper/client/paper/paper.random.js +++ b/scraper/client/paper/paper.random.js @@ -15,7 +15,7 @@ class PaperRandom extends Component { const citation = choice(citations) console.log(citation) if (citation.id) { - history.push('/paper/' + this.props.match.params.key + '/address/' + citation.id) + history.push('/paper/' + this.props.match.params.key + '/verify/' + citation.id) } } diff --git a/scraper/client/paper/paper.verify.js b/scraper/client/paper/paper.verify.js index 9e1a2ad4..65342adf 100644 --- a/scraper/client/paper/paper.verify.js +++ b/scraper/client/paper/paper.verify.js @@ -3,16 +3,15 @@ import { bindActionCreators } from 'redux' import { connect } from 'react-redux' import * as actions from '../actions' - import { history } from '../store' - -import { Loader, Autocomplete } from '../common' +import { Loader } from '../common' +import { USES_DATASET } from '../types' const initialState = { citation: null, - verifiable: false, - uses_dataset: false, - images_in_paper: false, + uses_dataset: USES_DATASET.UNKNOWN, + images_in_paper: "FALSE", + used_as_model: "FALSE", verified_by: localStorage.getItem('verify.username') || '', reference: '', notes: '', @@ -63,7 +62,6 @@ class PaperVerify extends Component { const citationState = this.getCitationState(sha256) this.setState({ ...citationState, - verifiable: paper.verifiable === "TRUE", uses_dataset: paper.uses_dataset === "TRUE", images_in_paper: paper.images_in_paper === "TRUE", verified_by: paper.verified_by, @@ -102,9 +100,9 @@ class PaperVerify extends Component { paper_id: this.state.citation.id, title: this.state.citation.title, dataset: this.props.api.paperInfo.dataset.key, - verifiable: this.state.verifiable, uses_dataset: this.state.uses_dataset, images_in_paper: this.state.images_in_paper, + used_as_model: this.state.used_as_model, verified_by: this.state.verified_by, reference: this.state.reference, notes: this.state.notes, @@ -169,6 +167,7 @@ class PaperVerify extends Component { return ( <a key={i} + href={pdf} onClick={() => this.setState({ pdf_index: i })} className={i === this.state.pdf_index ? 'selected pdfLink' : 'pdfLink'} > @@ -186,56 +185,115 @@ class PaperVerify extends Component { </a> </div> - <div className='param'> - <label>{"Verifiable"}</label> - <input - className='vetting' - type='checkbox' - name='verifiable' - checked={!!this.state.verifiable} - onChange={e => this.setState({ - verifiable: e.target.checked, - })} - /> - </div> + <div className='row vettingRow'> + <div className='rowHeading'> + {'Uses dataset'} + </div> + <label> + <input + className='vetting' + type='radio' + name='uses_dataset' + checked={this.state.uses_dataset === USES_DATASET.YES || this.state.uses_dataset === "FALSE"} + onChange={e => this.setState({ + uses_dataset: USES_DATASET.YES, + })} + /> + <div>{"Yes"}</div> + </label> - <div className='param'> - <label>Uses the dataset?</label> - <input - className='vetting' - type='radio' - name='uses_dataset' - checked={!!this.state.uses_dataset} - onChange={e => this.setState({ - uses_dataset: e.target.checked, - })} - /> + <label> + <input + className='vetting' + type='radio' + name='uses_dataset' + checked={this.state.uses_dataset === USES_DATASET.NO || this.state.uses_dataset === "FALSE"} + onChange={e => this.setState({ + uses_dataset: USES_DATASET.NO, + })} + /> + <div>{"No"}</div> + </label> + + <label> + <input + className='vetting' + type='radio' + name='uses_dataset' + checked={this.state.uses_dataset === USES_DATASET.UNKNOWN || this.state.uses_dataset === "FALSE"} + onChange={e => this.setState({ + uses_dataset: USES_DATASET.UNKNOWN, + })} + /> + <div>{"Not enough information"}</div> + </label> </div> - <div className='param'> - <label>{"Doesn't use dataset"}</label> - <input - className='vetting' - type='radio' - name='uses_dataset' - checked={!this.state.uses_dataset} - onChange={e => this.setState({ - uses_dataset: !e.target.checked, - })} - /> + <div + className={this.state.uses_dataset === USES_DATASET.YES ? 'row vettingRow' : 'row vettingRow disabled'} + disabled={this.state.uses_dataset === USES_DATASET.YES ? false : true} + > + <div className='rowHeading'> + {'Paper shows images'} + </div> + + <label> + <input + className='vetting' + type='radio' + name='images_in_paper' + checked={this.state.images_in_paper === "TRUE"} + onChange={e => this.setState({ + images_in_paper: "TRUE", + })} + /> + <div>{"Yes"}</div> + </label> + + <label> + <input + className='vetting' + type='radio' + name='images_in_paper' + checked={this.state.images_in_paper === "FALSE"} + onChange={e => this.setState({ + images_in_paper: "FALSE", + })} + /> + <div>{"No"}</div> + </label> </div> - <div className='param'> - <label>{"Uses images from dataset"}</label> - <input - className='vetting' - type='checkbox' - name='images_in_paper' - checked={!!this.state.images_in_paper} - onChange={e => this.setState({ - images_in_paper: e.target.checked, - })} - /> + <div className='row vettingRow'> + <div className='rowHeading'> + {'Used as model'} + </div> + + <label> + <input + className='vetting' + type='radio' + name='used_as_model' + checked={this.state.used_as_model === "TRUE"} + onChange={e => this.setState({ + used_as_model: "TRUE", + })} + /> + <div>{"Yes"}</div> + </label> + + <label> + <input + className='vetting' + type='radio' + name='used_as_model' + checked={this.state.used_as_model === "FALSE"} + onChange={e => this.setState({ + used_as_model: "FALSE", + })} + /> + <div>{"No"}</div> + </label> </div> <div className='param'> @@ -285,7 +343,7 @@ class PaperVerify extends Component { <button className='btn' onClick={this.prev.bind(this)} - >{'Prev >'}</button> + >{'< Prev'}</button> <button className='btn' @@ -299,6 +357,21 @@ class PaperVerify extends Component { } } +/* + <div className='param'> + <label>{"Verifiable"}</label> + <input + className='vetting' + type='checkbox' + name='verifiable' + checked={!!this.state.verifiable} + onChange={e => this.setState({ + verifiable: e.target.checked, + })} + /> + </div> +*/ + const mapStateToProps = state => ({ api: state.api, }) |
