mirror of
https://github.com/ascribe/onion.git
synced 2025-02-14 21:10:27 +01:00
Merge remote-tracking branch 'origin/master' into AD-499-whitelabel-prize-with-sluice-as-k
This commit is contained in:
commit
725e79bc4f
10
index.html
10
index.html
@ -41,6 +41,16 @@
|
||||
<body>
|
||||
<div id="main"></div>
|
||||
|
||||
<!-- Google Analytics tracking code -->
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', 'UA-60614729-2', 'auto');
|
||||
</script>
|
||||
|
||||
<!-- Intercom library -->
|
||||
<script>
|
||||
(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;
|
||||
|
@ -52,7 +52,10 @@ class AppGateway {
|
||||
}
|
||||
|
||||
load(type) {
|
||||
Router.run(getRoutes(type), Router.HistoryLocation, (App) => {
|
||||
Router.run(getRoutes(type), Router.HistoryLocation, (App, state) => {
|
||||
if (window.ga) {
|
||||
window.ga('send', 'pageview');
|
||||
}
|
||||
React.render(
|
||||
<App />,
|
||||
document.getElementById('main')
|
||||
|
@ -63,11 +63,11 @@ let AccordionListItem = React.createClass({
|
||||
},
|
||||
|
||||
getGlyphicon(){
|
||||
if (this.props.content.requestAction){
|
||||
if (this.props.content.requestAction) {
|
||||
return (
|
||||
<OverlayTrigger delay={500} placement="left"
|
||||
overlay={<Tooltip>{getLangText('You have actions pending in one of your editions')}</Tooltip>}>
|
||||
<Glyphicon glyph='bell' />
|
||||
overlay={<Tooltip>{getLangText('You have actions pending in one of your editions')}</Tooltip>}>
|
||||
<Glyphicon glyph='bell'/>
|
||||
</OverlayTrigger>);
|
||||
}
|
||||
return null;
|
||||
@ -87,7 +87,7 @@ let AccordionListItem = React.createClass({
|
||||
|
||||
handleSubmitPrizeSuccess(response) {
|
||||
PieceListActions.fetchPieceList(this.state.page, this.state.pageSize, this.state.search, this.state.orderBy, this.state.orderAsc);
|
||||
|
||||
|
||||
let notification = new GlobalNotificationModel(response.notification, 'success', 10000);
|
||||
GlobalNotificationActions.appendGlobalNotification(notification);
|
||||
},
|
||||
@ -106,12 +106,13 @@ let AccordionListItem = React.createClass({
|
||||
},
|
||||
|
||||
getCreateEditionsDialog() {
|
||||
if(this.props.content.num_editions < 1 && this.state.showCreateEditionsDialog) {
|
||||
if (this.props.content.num_editions < 1 && this.state.showCreateEditionsDialog) {
|
||||
return (
|
||||
<div className="ascribe-accordion-list-item-table col-xs-12 col-sm-10 col-md-8 col-lg-8 col-sm-offset-1 col-md-offset-2 col-lg-offset-2">
|
||||
<div
|
||||
className="ascribe-accordion-list-item-table col-xs-12 col-sm-10 col-md-8 col-lg-8 col-sm-offset-1 col-md-offset-2 col-lg-offset-2">
|
||||
<CreateEditionsForm
|
||||
pieceId={this.props.content.id}
|
||||
handleSuccess={this.handleEditionCreationSuccess} />
|
||||
handleSuccess={this.handleEditionCreationSuccess}/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -119,11 +120,14 @@ let AccordionListItem = React.createClass({
|
||||
|
||||
getLicences() {
|
||||
// convert this to acl_view_licences later
|
||||
if(this.state.whitelabel.name === 'Creative Commons France') {
|
||||
if (this.state.whitelabel.name === 'Creative Commons France') {
|
||||
return (
|
||||
<a href={this.props.content.license_type.url} target="_blank" className="pull-right">
|
||||
{getLangText('%s license', this.props.content.license_type.code)}
|
||||
</a>
|
||||
<span>
|
||||
<span>, </span>
|
||||
<a href={this.props.content.license_type.url} target="_blank">
|
||||
{getLangText('%s license', this.props.content.license_type.code)}
|
||||
</a>
|
||||
</span>
|
||||
);
|
||||
}
|
||||
},
|
||||
@ -131,7 +135,7 @@ let AccordionListItem = React.createClass({
|
||||
render() {
|
||||
let linkData;
|
||||
|
||||
if(this.props.content.num_editions < 1 || !this.props.content.first_edition) {
|
||||
if (this.props.content.num_editions < 1 || !this.props.content.first_edition) {
|
||||
linkData = {
|
||||
to: 'piece',
|
||||
params: {
|
||||
@ -154,18 +158,21 @@ let AccordionListItem = React.createClass({
|
||||
<div className="col-xs-4 col-sm-3 col-md-2 col-lg-2 clear-paddings">
|
||||
<div className="thumbnail-wrapper">
|
||||
<Link {...linkData}>
|
||||
<img src={this.props.content.thumbnail} />
|
||||
<img src={this.props.content.thumbnail}/>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
<div className="col-xs-8 col-sm-9 col-md-9 col-lg-9 col-md-offset-1 col-lg-offset-1 accordion-list-item-header">
|
||||
<div
|
||||
className="col-xs-8 col-sm-9 col-md-9 col-lg-9 col-md-offset-1 col-lg-offset-1 accordion-list-item-header">
|
||||
<Link {...linkData}>
|
||||
<h1 className="truncate">{this.props.content.title}</h1>
|
||||
</Link>
|
||||
|
||||
<h3>{getLangText('by %s', this.props.content.artist_name)}</h3>
|
||||
|
||||
<div>
|
||||
<span className="pull-left">{this.props.content.date_created.split('-')[0]}</span>
|
||||
|
||||
|
||||
<AclProxy
|
||||
aclObject={this.props.content.acl}
|
||||
aclName="acl_view_editions">
|
||||
@ -187,19 +194,21 @@ let AccordionListItem = React.createClass({
|
||||
<button
|
||||
disabled
|
||||
className="btn btn-default btn-xs pull-right">
|
||||
{getLangText('Submitted to prize')} <span className="glyphicon glyphicon-ok" aria-hidden="true"></span>
|
||||
{getLangText('Submitted to prize')} <span className="glyphicon glyphicon-ok"
|
||||
aria-hidden="true"></span>
|
||||
</button>
|
||||
</AclProxy>
|
||||
{this.getLicences()}
|
||||
</div>
|
||||
</div>
|
||||
<span style={{'clear': 'both'}}></span>
|
||||
|
||||
<div className="request-action-batch">
|
||||
{this.getGlyphicon()}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{this.getCreateEditionsDialog()}
|
||||
|
||||
{/* this.props.children is AccordionListItemTableEditions */}
|
||||
|
@ -6,12 +6,8 @@ import Router from 'react-router';
|
||||
import Row from 'react-bootstrap/lib/Row';
|
||||
import Col from 'react-bootstrap/lib/Col';
|
||||
|
||||
import CollapsibleParagraph from './../ascribe_collapsible/collapsible_paragraph';
|
||||
|
||||
import DetailProperty from './detail_property';
|
||||
|
||||
import FurtherDetails from './further_details';
|
||||
|
||||
import UserActions from '../../actions/user_actions';
|
||||
import UserStore from '../../stores/user_store';
|
||||
|
||||
@ -37,13 +33,15 @@ import GlobalNotificationActions from '../../actions/global_notification_actions
|
||||
import { getLangText } from '../../utils/lang_utils';
|
||||
import { mergeOptions } from '../../utils/general_utils';
|
||||
|
||||
|
||||
/**
|
||||
* This is the component that implements display-specific functionality
|
||||
*/
|
||||
let Piece = React.createClass({
|
||||
propTypes: {
|
||||
piece: React.PropTypes.object,
|
||||
loadPiece: React.PropTypes.func
|
||||
loadPiece: React.PropTypes.func,
|
||||
children: React.PropTypes.object
|
||||
},
|
||||
|
||||
mixins: [Router.Navigation],
|
||||
@ -159,20 +157,8 @@ let Piece = React.createClass({
|
||||
</AclButtonList>
|
||||
|
||||
{this.getCreateEditionsDialog()}
|
||||
{this.props.children}
|
||||
|
||||
<CollapsibleParagraph
|
||||
title="Further Details"
|
||||
show={this.props.piece.acl.acl_edit
|
||||
|| Object.keys(this.props.piece.extra_data).length > 0
|
||||
|| this.props.piece.other_data !== null}
|
||||
defaultExpanded={true}>
|
||||
<FurtherDetails
|
||||
editable={this.props.piece.acl.acl_edit}
|
||||
pieceId={this.props.piece.id}
|
||||
extraData={this.props.piece.extra_data}
|
||||
otherData={this.props.piece.other_data}
|
||||
handleSuccess={this.props.loadPiece}/>
|
||||
</CollapsibleParagraph>
|
||||
</Col>
|
||||
</Row>
|
||||
);
|
||||
|
@ -71,25 +71,31 @@ let PrizePieceDetails = React.createClass({
|
||||
piece: React.PropTypes.object
|
||||
},
|
||||
render() {
|
||||
if (this.props.piece.prize && this.props.piece.prize.name){
|
||||
if (this.props.piece.prize
|
||||
&& this.props.piece.prize.name
|
||||
&& Object.keys(this.props.piece.extra_data).length !== 0){
|
||||
return (
|
||||
<CollapsibleParagraph
|
||||
title="Prize Details"
|
||||
show={true}
|
||||
defaultExpanded={true}>
|
||||
<Form
|
||||
ref='form'>
|
||||
<Property
|
||||
name='test'
|
||||
label='test'
|
||||
editable={false}>
|
||||
<InputTextAreaToggable
|
||||
rows={1}
|
||||
editable={false}
|
||||
defaultValue='test'/>
|
||||
</Property>
|
||||
<hr />
|
||||
</Form>
|
||||
title="Prize Details"
|
||||
show={true}
|
||||
defaultExpanded={true}>
|
||||
<Form ref='form'>
|
||||
{Object.keys(this.props.piece.extra_data).map((data) => {
|
||||
let label = data.replace('_', ' ');
|
||||
return (
|
||||
<Property
|
||||
name={data}
|
||||
label={label}
|
||||
editable={false}>
|
||||
<InputTextAreaToggable
|
||||
rows={1}
|
||||
editable={false}
|
||||
defaultValue={this.props.piece.extra_data[data]}/>
|
||||
</Property>);
|
||||
}
|
||||
)}
|
||||
<hr />
|
||||
</Form>
|
||||
</CollapsibleParagraph>
|
||||
);
|
||||
}
|
||||
|
@ -28,12 +28,11 @@ export function getLangText(s, ...args) {
|
||||
return formatText(languages['en-US'][s], args);
|
||||
}
|
||||
} catch(err) {
|
||||
if(!(s in languages[lang])) {
|
||||
console.warn('Language-string is not in constants file. Add: "' + s + '" to the "' + lang + '" language file. Defaulting to keyname');
|
||||
return s;
|
||||
} else {
|
||||
console.error(err);
|
||||
}
|
||||
|
||||
//if(!(s in languages[lang])) {
|
||||
console.warn('Language-string is not in constants file. Add: "' + s + '" to the "' + lang + '" language file. Defaulting to keyname');
|
||||
return s;
|
||||
//} else {
|
||||
// console.error(err);
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user