diff --git a/js/components/whitelabel/wallet/components/artcity/artcity_landing.js b/js/components/whitelabel/wallet/components/artcity/artcity_landing.js new file mode 100644 index 00000000..c3fbfca4 --- /dev/null +++ b/js/components/whitelabel/wallet/components/artcity/artcity_landing.js @@ -0,0 +1,78 @@ +'use strict'; + +import React from 'react'; + +import Button from 'react-bootstrap/lib/Button'; +import LinkContainer from 'react-router-bootstrap/lib/LinkContainer'; + +import WhitelabelActions from '../../../../../actions/whitelabel_actions'; +import WhitelabelStore from '../../../../../stores/whitelabel_store'; + +import { getLangText } from '../../../../../utils/lang_utils'; +import { setDocumentTitle } from '../../../../../utils/dom_utils'; + + +let ArtcityLanding = React.createClass({ + getInitialState() { + return WhitelabelStore.getState(); + }, + + componentWillMount() { + setDocumentTitle('Artcity Marketplace'); + }, + + componentDidMount() { + WhitelabelStore.listen(this.onChange); + WhitelabelActions.fetchWhitelabel(); + }, + + componentWillUnmount() { + WhitelabelStore.unlisten(this.onChange); + }, + + onChange(state) { + this.setState(state); + }, + + render() { + return ( +
+
+
+
+ +
+ {getLangText('Artcity Marketplace is powered by') + ' '} + +
+
+
+
+

+ {getLangText('Existing ascribe user?')} +

+ + + +
+
+

+ {getLangText('Do you need an account?')} +

+ + + +
+
+
+
+
+ ); + } +}); + +export default ArtcityLanding; diff --git a/js/components/whitelabel/wallet/wallet_app.js b/js/components/whitelabel/wallet/wallet_app.js index 1740c999..86d2b7cb 100644 --- a/js/components/whitelabel/wallet/wallet_app.js +++ b/js/components/whitelabel/wallet/wallet_app.js @@ -32,7 +32,7 @@ let WalletApp = React.createClass({ // if the path of the current activeRoute is not defined, then this is the IndexRoute if ((!path || history.isActive('/login') || history.isActive('/signup') || history.isActive('/contract_notifications')) - && (['cyland', 'ikonotv', 'lumenus', '23vivi', 'polline']).indexOf(subdomain) > -1) { + && (['cyland', 'ikonotv', 'lumenus', '23vivi', 'polline', 'artcity']).indexOf(subdomain) > -1) { header = (
); } else { header =
; diff --git a/js/components/whitelabel/wallet/wallet_routes.js b/js/components/whitelabel/wallet/wallet_routes.js index 963107bd..c205f3b3 100644 --- a/js/components/whitelabel/wallet/wallet_routes.js +++ b/js/components/whitelabel/wallet/wallet_routes.js @@ -42,6 +42,8 @@ import Vivi23PieceList from './components/23vivi/23vivi_piece_list'; import PollineLanding from './components/polline/polline_landing'; +import ArtcityLanding from './components/artcity/artcity_landing'; + import { ProxyHandler, AuthRedirect } from '../../../components/ascribe_routes/proxy_handler'; import WalletApp from './wallet_app'; @@ -275,6 +277,43 @@ let ROUTES = { + ), + 'artcity': ( + + + + + + + + + + + + + + + ) }; diff --git a/js/constants/application_constants.js b/js/constants/application_constants.js index dd27484b..b4fb7531 100644 --- a/js/constants/application_constants.js +++ b/js/constants/application_constants.js @@ -58,6 +58,11 @@ const constants = { 'name': 'Polline Art', 'type': 'wallet' }, + { + 'subdomain': 'artcity', + 'name': 'Artcity', + 'type': 'wallet' + }, { 'subdomain': 'portfolioreview', 'name': 'Portfolio Review', diff --git a/sass/whitelabel/wallet/artcity/artcity_custom_style.scss b/sass/whitelabel/wallet/artcity/artcity_custom_style.scss new file mode 100644 index 00000000..ac8811b7 --- /dev/null +++ b/sass/whitelabel/wallet/artcity/artcity_custom_style.scss @@ -0,0 +1,381 @@ +/** Sass cannot use a number as the first character of a variable, so we'll have to settle with artcity **/ +$artcity--fg-color: black; +$artcity--bg-color: #FBFBFB; +$artcity--nav-fg-prim-color: $artcity--fg-color; +$artcity--nav-fg-sec-color: #3a3a3a; +$artcity--nav-bg-color: $artcity--bg-color; +$artcity--nav-highlight-color: #f8f8f8; +$artcity--button-default-color: $artcity--fg-color; +$artcity--highlight-color: #38BFC3; + + +.client--artcity { + /** Landing page **/ + .route--landing { + display: table; + + > .container { + display: table-cell; + padding-bottom: 100px; + vertical-align: middle; + } + + .artcity-landing { + font-weight: normal; + text-align: center; + } + + .artcity-landing--header { + background-color: $artcity--bg-color; + border: 1px solid darken($artcity--bg-color, 20%); + color: $artcity--fg-color; + padding: 2em; + + .artcity-landing--header-logo { + margin: 1em 0 2em 0; + height: 175px; + } + } + + .artcity-landing--content { + background-color: $artcity--bg-color; + border: 1px solid darken($artcity--bg-color, 20%); + border-top: none; + padding: 2em; + } + } + + /** Navbar **/ + .navbar-default { + background-color: $artcity--bg-color; + + .navbar-brand .img-brand { + height: 115%; + } + + .navbar-brand .icon-ascribe-logo { + color: $artcity--nav-fg-prim-color; + &:hover { + color: darken($artcity--nav-fg-prim-color, 20%); + } + } + + } + + .navbar-nav > li > a, + .navbar-nav > li > a:focus, + .navbar-nav > li > .active a, + .navbar-nav > li > .active a:focus { + color: $artcity--nav-fg-prim-color; + } + + .navbar-nav > li > a:hover { + color: darken($artcity--nav-fg-prim-color, 20%); + } + + .navbar-nav > .active a, + .navbar-nav > .active a:hover, + .navbar-nav > .active a:focus { + background-color: $artcity--nav-bg-color; + border-bottom-color: $artcity--nav-fg-prim-color; + color: $artcity--nav-fg-prim-color; + } + + .navbar-nav > .open > a, + .dropdown-menu > .active > a, + .dropdown-menu > li > a { + color: $artcity--nav-fg-prim-color; + background-color: $artcity--nav-bg-color; + } + + .navbar-nav > .open > a:hover, + .navbar-nav > .open > a:focus, + .dropdown-menu > .active > a:hover, + .dropdown-menu > .active > a:focus, + .dropdown-menu > li > a:hover, + .dropdown-menu > li > a:focus { + color: lighten($artcity--nav-fg-prim-color, 20%); + background-color: $artcity--nav-highlight-color; + } + + .navbar-collapse.collapsing, + .navbar-collapse.collapse.in { + background-color: $artcity--nav-bg-color; + + .navbar-nav > .open > a, + .navbar-nav > .active > a { + background-color: $artcity--nav-highlight-color; + } + } + + .navbar-collapse.collapsing li a, + .navbar-collapse.collapse.in li a { + color: $artcity--nav-fg-prim-color; + } + .navbar-collapse.collapse.in li a:not(.ascribe-powered-by):hover { + color: lighten($artcity--nav-fg-prim-color, 20%); + background-color: $artcity--nav-highlight-color; + } + + .navbar-toggle { + border-color: $artcity--highlight-color; + + .icon-bar { + background-color: $artcity--highlight-color; + } + } + + .navbar-toggle:hover, + .navbar-toggle:focus { + border-color: lighten($artcity--highlight-color, 10%); + background-color: $artcity--nav-fg-prim-color; + + .icon-bar { + background-color: lighten($artcity--highlight-color, 10%); + } + } + + .notification-menu { + .dropdown-menu { + background-color: $artcity--nav-bg-color; + } + + .notification-header { + background-color: $artcity--nav-fg-sec-color; + border-top-width: 0; + color: $artcity--nav-bg-color; + } + + .notification-action { + color: $artcity--highlight-color; + } + } + + /** Buttons **/ + // reset disabled button styling for btn-default + .btn-default.disabled, + .btn-default.disabled:hover, + .btn-default.disabled:focus, + .btn-default.disabled.focus, + .btn-default.disabled:active, + .btn-default.disabled.active, + .btn-default[disabled], + .btn-default[disabled]:hover, + .btn-default[disabled]:focus, + .btn-default[disabled].focus, + .btn-default[disabled]:active, + .btn-default[disabled].active, + fieldset[disabled] .btn-default, + fieldset[disabled] .btn-default:hover, + fieldset[disabled] .btn-default:focus, + fieldset[disabled] .btn-default.focus, + fieldset[disabled] .btn-default:active, + fieldset[disabled] .btn-default.active { + background-color: lighten($artcity--highlight-color, 30%); + border-color: lighten($artcity--highlight-color, 30%); + } + + .btn-default { + background-color: $artcity--highlight-color; + border-color: $artcity--highlight-color; + + &:hover, + &:active, + &:focus, + &:active:hover, + &:active:focus, + &:active.focus, + &.active:hover, + &.active:focus, + &.active.focus { + background-color: lighten($artcity--highlight-color, 30%); + border-color: lighten($artcity--highlight-color, 30%); + } + } + + // disabled buttons + .btn-secondary.disabled, + .btn-secondary.disabled:hover, + .btn-secondary.disabled:focus, + .btn-secondary.disabled.focus, + .btn-secondary.disabled:active, + .btn-secondary.disabled.active, + .btn-secondary[disabled], + .btn-secondary[disabled]:hover, + .btn-secondary[disabled]:focus, + .btn-secondary[disabled].focus, + .btn-secondary[disabled]:active, + .btn-secondary[disabled].active, + fieldset[disabled] .btn-secondary, + fieldset[disabled] .btn-secondary:hover, + fieldset[disabled] .btn-secondary:focus, + fieldset[disabled] .btn-secondary.focus, + fieldset[disabled] .btn-secondary:active, + fieldset[disabled] .btn-secondary.active { + background-color: darken($artcity--bg-color, 20%); + border-color: $artcity--button-default-color; + } + + .btn-secondary { + border-color: $artcity--button-default-color; + color: $artcity--button-default-color; + + &:hover, + &:active, + &:focus, + &:active:hover, + &:active:focus, + &:active.focus, + &.active:hover, + &.active:focus, + &.active.focus { + background-color: $artcity--button-default-color; + border-color: $artcity--button-default-color; + color: $artcity--bg-color; + } + } + + .btn-tertiary { + &:hover, + &:active, + &ctive:hover, + &.active:hover{ + background-color: $artcity--highlight-color; + border-color: $artcity--highlight-color; + color: $artcity--bg-color; + } + } + + /** Other components **/ + .ascribe-piece-list-toolbar .btn-ascribe-add { + display: none; + } + + .ascribe-footer { + display: none; + } + + .ascribe-accordion-list-table-toggle:hover { + color: $artcity--fg-color; + } + + .request-action-badge { + color: $artcity--fg-color; + } + + .acl-information-dropdown-list .title { + color: $artcity--fg-color; + } + + // filter widget + .ascribe-piece-list-toolbar-filter-widget button { + background-color: transparent !important; + border-color: transparent !important; + color: $artcity--button-default-color !important; + + &:hover, + &:active { + background-color: $artcity--button-default-color !important; + border-color: $artcity--button-default-color !important; + color: $artcity--bg-color !important; + } + } + + .icon-ascribe-search { + color: $artcity--fg-color; + } + + // forms + .ascribe-property-wrapper:hover { + border-left-color: rgba($artcity--fg-color, 0.5); + } + + .ascribe-property textarea, + .ascribe-property input, + .search-bar > .form-group > .input-group input { + &::-webkit-input-placeholder { + color: rgba($artcity--fg-color, 0.5); + } + &::-moz-placeholder { + color: rgba($artcity--fg-color, 0.5); + } + &:-ms-input-placeholder { + color: rgba($artcity--fg-color, 0.5); + } + &:-moz-placeholder { + color: rgba($artcity--fg-color, 0.5); + } + } + + .ascribe-property { + > div, + > input, + > pre, + > select, + > span:not(.glyphicon), + > p, + > p > span, + > textarea { + color: $artcity--fg-color; + } + } + + // global notification + .ascribe-global-notification-success { + background-color: lighten($artcity--fg-color, 20%); + } + + // uploader progress + .ascribe-progress-bar > .progress-bar { + background-color: lighten($artcity--fg-color, 20%); + } + + .ascribe-progress-bar span { + text-shadow: -1px 0 lighten($artcity--fg-color, 20%), + 0 1px lighten($artcity--fg-color, 20%), + 1px 0 lighten($artcity--fg-color, 20%), + 0 -1px lighten($artcity--fg-color, 20%); + } + + .action-file.icon-ascribe-ok, + .action-file.icon-ascribe-ok:hover { + color: lighten($artcity--fg-color, 20%); + } + + // spinner + .spinner-circle { + border-color: $artcity--fg-color; + } + .spinner-inner { + display: none; + } + .btn-secondary .spinner-circle { + border-color: $artcity--bg-color; + } + + // video player + .ascribe-media-player .vjs-default-skin { + .vjs-play-progress, + .vjs-volume-level { + background-color: $artcity--highlight-color; + } + } + + // pager + .pager li > a, + .pager li > span { + background-color: $artcity--fg-color; + border-color: $artcity--fg-color; + } + .pager .disabled > a, + .pager .disabled > span { + background-color: $artcity--fg-color !important; + border-color: $artcity--fg-color; + } + + // intercom + #intercom-container .intercom-launcher-button { + background-color: $artcity--button-default-color !important; + border-color: $artcity--button-default-color !important; + } +} diff --git a/sass/whitelabel/wallet/index.scss b/sass/whitelabel/wallet/index.scss index 4e3d2a9a..3d739bce 100644 --- a/sass/whitelabel/wallet/index.scss +++ b/sass/whitelabel/wallet/index.scss @@ -3,6 +3,7 @@ @import 'ikonotv/ikonotv_custom_style'; @import '23vivi/23vivi_custom_style'; @import 'polline/polline_custom_style'; +@import 'artcity/artcity_custom_style'; .ascribe-wallet-app { border-radius: 0;