diff --git a/css/ascribe-fonts/style.css b/css/ascribe-fonts/style.css index c4ecbdc8..eaab4bca 100644 --- a/css/ascribe-fonts/style.css +++ b/css/ascribe-fonts/style.css @@ -1,10 +1,10 @@ @font-face { font-family: 'ascribe'; - src:url('fonts/ascribe.eot?-6bb2dq'); - src:url('fonts/ascribe.eot?#iefix-6bb2dq') format('embedded-opentype'), - url('fonts/ascribe.woff?-6bb2dq') format('woff'), - url('fonts/ascribe.ttf?-6bb2dq') format('truetype'), - url('fonts/ascribe.svg?-6bb2dq#ascribe') format('svg'); + src:url('ascribe.eot?-6bb2dq'); + src:url('ascribe.eot?#iefix-6bb2dq') format('embedded-opentype'), + url('ascribe.woff?-6bb2dq') format('woff'), + url('ascribe.ttf?-6bb2dq') format('truetype'), + url('ascribe.svg?-6bb2dq#ascribe') format('svg'); font-weight: normal; font-style: normal; } @@ -187,3 +187,7 @@ content: "\eae9"; } +.btn-glyph-ascribe{ + font-size: 18px; + padding: 4px 12px 0 10px +} \ No newline at end of file diff --git a/css/main.css b/css/main.css index 4ecb7e62..7ccd50a8 100644 --- a/css/main.css +++ b/css/main.css @@ -52,28 +52,94 @@ vertical-align: middle; } -.btn-ascribe, .btn-ascribe:hover, .btn-ascribe:active, .btn-ascribe:focus { - background-color: rgba(2, 182, 163, 0.5); - border-color: rgba(2, 182, 163, 0.5); +/*.btn-ascribe, .btn-ascribe:hover, .btn-ascribe:active, .btn-ascribe:focus {*/ +/*background-color: rgba(2, 182, 163, 0.5);*/ +/*border-color: rgba(2, 182, 163, 0.5);*/ +/*}*/ + +.btn-ascribe, .btn-ascribe-inv { + border: 1px solid #444; + line-height: 2em; + margin-right: 1px; + margin-left: 0 !important; + font-family: sans-serif !important; + border-radius: 0 !important; + } -.ascribe-detail-header{ +.btn-ascribe, .btn-ascribe-inv:active, .btn-ascribe-inv:hover { + color: #222 !important; + background-color: #FFF; +} + +.btn-ascribe:active, .btn-ascribe:hover, .btn-ascribe-inv { + color: #FFF !important; + background-color: #444; +} + +.btn-ascribe-inv:disabled, .btn-ascribe-inv:focus { + color: #444 !important; + background-color: #BBB !important; + border: 1px solid #444 !important; +} + +.btn-ascribe-sm { + font-size: 12px; + line-height: 1.3em; +} + +.btn-ascribe-green, .btn-ascribe-green-inv { + border: 1px solid #48DACB; + line-height: 2em; + margin-left: 0 !important; + font-family: sans-serif !important; + border-radius: 0 !important; + +} + +.btn-ascribe-green, .btn-ascribe-green-inv:active, .btn-ascribe-green-inv:hover { + background-color: #FFF; + border: 1px solid rgba(2, 182, 163, 0.5); + color: rgba(2, 182, 163, 0.5); +} + +.btn-ascribe-green:active, .btn-ascribe-green:hover, .btn-ascribe-green-inv { + border: 1px solid rgba(2, 182, 163, 0.5); + color: white; + background-color: rgba(2, 182, 163, 0.5); +} + +.ascribe-detail-header { margin-top: 2em; } -.ascribe-detail-header > div{ - padding-bottom: 0.4em; -} .ascribe-detail-title { font-size: 2em; margin-bottom: -0.2em; } +.ascribe-detail-property { + padding-bottom: 0.4em; +} .ascribe-detail-property > .row-same-height > .col-xs-2 { text-transform: uppercase; } +.input-text-ascribe { + border-bottom: 1px solid black; + border-top: 0; + border-left: 0; + border-right: 0; + background: transparent; + border-radius: 0 !important; + box-shadow: none; +} + +.textarea-ascribe-message { + height: 13em !important; +} + /* columns of same height styles */ /* http://www.minimit.com/articles/solutions-tutorials/bootstrap-3-responsive-columns-of-same-height */ .row-full-height { diff --git a/index.html b/index.html index 95b1c72b..21dac715 100644 --- a/index.html +++ b/index.html @@ -5,9 +5,10 @@ ascribe - - - + + + + diff --git a/js/components/ascribe_modal/modal_share.js b/js/components/ascribe_modal/modal_share.js new file mode 100644 index 00000000..ca148fa2 --- /dev/null +++ b/js/components/ascribe_modal/modal_share.js @@ -0,0 +1,51 @@ +import React from 'react'; +import Modal from 'react-bootstrap/lib/Modal'; +import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger'; +import ModalTrigger from 'react-bootstrap/lib/ModalTrigger'; +import Tooltip from 'react-bootstrap/lib/Tooltip'; + + +let ShareModalButton = React.createClass({ + render() { + return ( + Share the artwork}> + }> +
+ +
+
+
+ ) + } +}); + +let ShareModal = React.createClass({ + render() { + var content = "Hi,\n\nI am sharing \"" + this.props.edition.title + + "\" with you.\n\nTruly yours,\n" + this.props.currentUser.username; + return ( + +
+
+
+ +
+
+ +
+
+ + +
+
+
+
+ ); + } +}); + +export default ShareModalButton; \ No newline at end of file diff --git a/js/components/edition.js b/js/components/edition.js index 69a2fbee..b64ccc3b 100644 --- a/js/components/edition.js +++ b/js/components/edition.js @@ -1,26 +1,21 @@ import React from 'react'; + import ImageViewer from './ascribe_media/image_viewer'; -import OverlayTrigger from 'react-bootstrap/lib/OverlayTrigger'; -import OverlayMixin from 'react-bootstrap/lib/OverlayMixin'; -import Modal from 'react-bootstrap/lib/Modal'; -import ModalTrigger from 'react-bootstrap/lib/ModalTrigger'; +import ShareModalButton from './ascribe_modal/modal_share'; /** * This is the component that implements display-specific functionality */ let Edition = React.createClass({ render() { - var modal = ; return (
- {modal}
- - +
@@ -43,6 +38,7 @@ let EditionHeader = React.createClass({ }); let EditionDetails = React.createClass({ + render() { return (
@@ -50,9 +46,11 @@ let EditionDetails = React.createClass({ value={this.props.edition.edition_number + " of " + this.props.edition.num_editions} /> +
); + } }); @@ -73,69 +71,6 @@ let EditionDetailProperty = React.createClass({ } }); -let ShareModal = React.createClass({ - mixins: [OverlayMixin], - getInitialState: function() { - return { - isOpen: true - }; - }, - hide: function(){ - this.setState({isOpen: false}) - }, - renderOverlay: function() { - if (!this.state.isOpen) { - return ; - } - }, - render: function() { - return ( - - - ); - } -}); -//let ShareModal = React.createClass({ -// mixins: [OverlayMixin], -// -// getInitialState: function() { -// return { -// isModalOpen: true -// }; -// }, -// renderOverlay: function() { -// if (!this.state.isModalOpen) { -// return ; -// } -// }, -// hide: function(){ -// this.setState({isModalOpen: false}); -// }, -// render: function() { -// var content = "Hi,\n\nI am sharing \"" + this.props.edition.title + -// "\" with you.\n\nTruly yours,\n"; -// return ( -// -//
-//
-//
-// -//
-//
-// -//
-//
-// -// -//
-//
-//
-//
-// ); -// } -//}); +export default Edition; -export default Edition; \ No newline at end of file diff --git a/js/components/edition_container.js b/js/components/edition_container.js index 83a8579b..77d28962 100644 --- a/js/components/edition_container.js +++ b/js/components/edition_container.js @@ -2,6 +2,8 @@ import React from 'react'; import EditionActions from '../actions/edition_actions'; import EditionStore from '../stores/edition_store'; +import UserActions from '../actions/user_actions'; +import UserStore from '../stores/user_store'; import Edition from './edition'; @@ -11,7 +13,8 @@ import Edition from './edition'; let EditionContainer = React.createClass({ getInitialState() { - return EditionStore.getState(); + return {'user': UserStore.getState(), + 'edition': EditionStore.getState()} }, onChange(state) { @@ -21,17 +24,20 @@ let EditionContainer = React.createClass({ componentDidMount() { EditionActions.fetchOne(this.props.params.editionId); EditionStore.listen(this.onChange); + UserActions.fetchCurrentUser(); + UserStore.listen(this.onChange); }, componentDidUnmount() { EditionStore.unlisten(this.onChange); + UserStore.unlisten(this.onChange); }, render() { if('title' in this.state.edition) { return ( - + ); } else { return (