From 5f459aa139b6275eaff34e35f5ea82b21370f501 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Daubensch=C3=BCtz?= Date: Thu, 9 Jul 2015 17:28:21 +0200 Subject: [PATCH] add dynamic links to piece list item depending on wether editions exist or not --- .../accordion_list_item.js | 34 +++++++++++++++---- .../accordion_list_item_edition_widget.js | 2 -- sass/ascribe_accordion_list.scss | 4 +++ 3 files changed, 31 insertions(+), 9 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index 1694b171..2311be58 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -3,7 +3,6 @@ import React from 'react'; import Router from 'react-router'; -import PieceListStore from '../../stores/piece_list_store'; import PieceListActions from '../../actions/piece_list_actions'; import Glyphicon from 'react-bootstrap/lib/Glyphicon'; @@ -14,6 +13,8 @@ import AccordionListItemEditionWidget from './accordion_list_item_edition_widget import { getLangText } from '../../utils/lang_utils'; +let Link = Router.Link; + let AccordionListItem = React.createClass({ propTypes: { className: React.PropTypes.string, @@ -45,20 +46,39 @@ let AccordionListItem = React.createClass({ }, render() { + let linkData; + + if(this.props.content.num_editions === 0) { + linkData = { + to: 'piece', + params: { + pieceId: this.props.content.id + } + }; + } else { + linkData = { + to: 'edition', + params: { + editionId: this.props.content.firstEdition ? this.props.content.firstEdition.bitcoin_id : 0 + } + }; + } + return (
-
- +
+ + +
- {this.props.content.title}}> -

{this.props.content.title}

-
+ +

{this.props.content.title}

+

{getLangText('by %s', this.props.content.artist_name)}

{this.props.content.date_created.split('-')[0]} diff --git a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js index 08a676b3..723f9cc8 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js +++ b/js/components/ascribe_accordion_list/accordion_list_item_edition_widget.js @@ -6,7 +6,6 @@ import EditionListActions from '../../actions/edition_list_actions'; import EditionListStore from '../../stores/edition_list_store'; import { getLangText } from '../../utils/lang_utils'; -import { mergeOptions } from '../../utils/general_utils'; let AccordionListItemEditionWidget = React.createClass({ propTypes: { @@ -75,7 +74,6 @@ let AccordionListItemEditionWidget = React.createClass({ let numEditions = piece.num_editions; if(numEditions === 1) { - //let firstEditionId = piece && piece.firstEdition ? ', ' + piece.firstEdition.bitcoin_id : ''; let editionMapping = piece && piece.firstEdition ? piece.firstEdition.edition_number + '/' + piece.num_editions : ''; return ( diff --git a/sass/ascribe_accordion_list.scss b/sass/ascribe_accordion_list.scss index dad5bb2d..879d2937 100644 --- a/sass/ascribe_accordion_list.scss +++ b/sass/ascribe_accordion_list.scss @@ -58,6 +58,10 @@ $ascribe-accordion-list-font: 'Source Sans Pro'; } } +.accordion-list-item-header > a { + text-decoration: none; +} + .ascribe-accordion-list-loading { padding-top: 30%; padding-bottom: 30%;