'use strict'; import React from 'react'; import CollapsibleParagraph from '../ascribe_collapsible/collapsible_paragraph'; import CreateContractForm from '../ascribe_forms/form_create_contract'; import ContractListStore from '../../stores/contract_list_store'; import ContractListActions from '../../actions/contract_list_actions'; import UserStore from '../../stores/user_store'; import UserActions from '../../actions/user_actions'; import WhitelabelStore from '../../stores/whitelabel_store'; import WhitelabelActions from '../../actions/whitelabel_actions'; import ActionPanel from '../ascribe_panel/action_panel'; import ContractSettingsUpdateButton from './contract_settings_update_button'; import GlobalNotificationModel from '../../models/global_notification_model'; import GlobalNotificationActions from '../../actions/global_notification_actions'; import AclProxy from '../acl_proxy'; import { getLangText } from '../../utils/lang_utils'; import { mergeOptions, truncateTextAtCharIndex } from '../../utils/general_utils'; let ContractSettings = React.createClass({ getInitialState(){ return mergeOptions( ContractListStore.getState(), UserStore.getState() ); }, componentDidMount() { ContractListStore.listen(this.onChange); UserStore.listen(this.onChange); WhitelabelStore.listen(this.onChange); WhitelabelActions.fetchWhitelabel(); UserActions.fetchCurrentUser(); ContractListActions.fetchContractList(true); }, componentWillUnmount() { WhitelabelStore.unlisten(this.onChange); UserStore.unlisten(this.onChange); ContractListStore.unlisten(this.onChange); }, onChange(state) { this.setState(state); }, removeContract(contract) { return () => { ContractListActions.removeContract(contract.id) .then((response) => { ContractListActions.fetchContractList(true); let notification = new GlobalNotificationModel(response.notification, 'success', 4000); GlobalNotificationActions.appendGlobalNotification(notification); }) .catch((err) => { let notification = new GlobalNotificationModel(err, 'danger', 10000); GlobalNotificationActions.appendGlobalNotification(notification); }); }; }, getPublicContracts(){ return this.state.contractList.filter((contract) => contract.is_public); }, getPrivateContracts(){ return this.state.contractList.filter((contract) => !contract.is_public); }, render() { let publicContracts = this.getPublicContracts(); let privateContracts = this.getPrivateContracts(); let createPublicContractForm = null; if(publicContracts.length === 0) { createPublicContractForm = ( ); } return (
{createPublicContractForm} {publicContracts.map((contract, i) => { return ( {getLangText('PREVIEW')}
} leftColumnWidth="40%" rightColumnWidth="60%"/> ); })}
{privateContracts.map((contract, i) => { return ( {getLangText('PREVIEW')}
} leftColumnWidth="60%" rightColumnWidth="40%"/> ); })}
); } }); export default ContractSettings;