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 (
@@ -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 (
-//
-//
-//
-//
-//
-//
-//
-//
-//
-//
-// SHARE
-// CLOSE
-//
-//
-//
-//
-// );
-// }
-//});
+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 (