'use strict'; import React from 'react'; import GlobalNotificationModel from '../models/global_notification_model'; import GlobalNotificationActions from '../actions/global_notification_actions'; import Form from './ascribe_forms/form'; import Property from './ascribe_forms/property'; import InputTextAreaToggable from './ascribe_forms/input_textarea_toggable'; import AscribeSpinner from './ascribe_spinner'; import ApiUrls from '../constants/api_urls'; import { getLangText } from '../utils/lang_utils'; import { setDocumentTitle } from '../utils/dom_utils'; let CoaVerifyContainer = React.createClass({ propTypes: { location: React.PropTypes.object }, render() { const { message, signature } = this.props.location.query; setDocumentTitle(getLangText('Verify your Certificate of Authenticity')); return ( <div className="ascribe-login-wrapper"> <br /> <div className="ascribe-login-text ascribe-login-header"> {getLangText('Verify your Certificate of Authenticity')} </div> <CoaVerifyForm message={message} signature={signature}/> <br /> <br /> {getLangText('ascribe is using the following public key for verification')}: <br /> <pre> -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDddadqY31kKPFYk8PQA8BWSTbm gaGf9KEYBALp2nWAJcwq80qBzGF+gfi0Z+yb4ooeKHl27GnuxZYValE1Z5ZujfeJ TgO4li59ZMYiah8oXZp/OysrBwCvWw0PtWd8/D9Nc4PqyOz5gzEh6kFah5VsuAke Znu2w7KmeLZ85SmwEQIDAQAB -----END PUBLIC KEY----- </pre> </div> ); } }); let CoaVerifyForm = React.createClass({ propTypes: { message: React.PropTypes.string, signature: React.PropTypes.string }, handleSuccess(response){ if (response.verdict) { const notification = new GlobalNotificationModel(getLangText('Certificate of Authenticity successfully verified'), 'success'); GlobalNotificationActions.appendGlobalNotification(notification); } }, render() { const { message, signature } = this.props; return ( <Form url={ApiUrls.coa_verify} handleSuccess={this.handleSuccess} buttons={ <button type="submit" className="btn btn-default btn-wide"> {getLangText('Verify your Certificate of Authenticity')} </button> } spinner={ <span className="btn btn-default btn-wide btn-spinner"> <AscribeSpinner color="dark-blue" size="md" /> </span> }> <Property name='message' label={getLangText('Message')}> <input type="text" placeholder={getLangText('Copy paste the message on the bottom of your Certificate of Authenticity')} autoComplete="on" defaultValue={message} required /> </Property> <Property name='signature' label="Signature" editable={true} overrideForm={true}> <InputTextAreaToggable rows={3} placeholder={getLangText('Copy paste the signature on the bottom of your Certificate of Authenticity')} defaultValue={signature} required /> </Property> <hr /> </Form> ); } }); export default CoaVerifyContainer;