mirror of
https://github.com/ascribe/onion.git
synced 2025-02-14 21:10:27 +01:00
Merge branch 'AD-697-update-title-in-the-browser'
This commit is contained in:
commit
e220ee6fbb
@ -9,6 +9,8 @@ import Edition from './edition';
|
||||
|
||||
import AppConstants from '../../constants/application_constants';
|
||||
|
||||
import { setDocumentTitle } from '../../utils/dom_utils';
|
||||
|
||||
|
||||
/**
|
||||
* This is the component that implements resource/data specific functionality
|
||||
@ -65,6 +67,8 @@ let EditionContainer = React.createClass({
|
||||
|
||||
render() {
|
||||
if(this.state.edition && this.state.edition.title) {
|
||||
setDocumentTitle([this.state.edition.artist_name, this.state.edition.title].join(', '));
|
||||
|
||||
return (
|
||||
<Edition
|
||||
edition={this.state.edition}
|
||||
|
@ -38,6 +38,7 @@ import ApiUrls from '../../constants/api_urls';
|
||||
import AppConstants from '../../constants/application_constants';
|
||||
import { mergeOptions } from '../../utils/general_utils';
|
||||
import { getLangText } from '../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../utils/dom_utils';
|
||||
|
||||
/**
|
||||
* This is the component that implements resource/data specific functionality
|
||||
@ -210,6 +211,8 @@ let PieceContainer = React.createClass({
|
||||
|
||||
render() {
|
||||
if(this.state.piece && this.state.piece.title) {
|
||||
setDocumentTitle([this.state.piece.artist_name, this.state.piece.title].join(', '));
|
||||
|
||||
return (
|
||||
<Piece
|
||||
piece={this.state.piece}
|
||||
|
@ -107,4 +107,4 @@ let AccountSettings = React.createClass({
|
||||
}
|
||||
});
|
||||
|
||||
export default AccountSettings;
|
||||
export default AccountSettings;
|
||||
|
@ -23,6 +23,7 @@ import GlobalNotificationActions from '../../actions/global_notification_actions
|
||||
import AclProxy from '../acl_proxy';
|
||||
|
||||
import { getLangText } from '../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../utils/dom_utils';
|
||||
import { mergeOptions, truncateTextAtCharIndex } from '../../utils/general_utils';
|
||||
|
||||
|
||||
@ -86,6 +87,8 @@ let ContractSettings = React.createClass({
|
||||
let privateContracts = this.getPrivateContracts();
|
||||
let createPublicContractForm = null;
|
||||
|
||||
setDocumentTitle(getLangText('Contracts settings'));
|
||||
|
||||
if(publicContracts.length === 0) {
|
||||
createPublicContractForm = (
|
||||
<CreateContractForm
|
||||
@ -193,4 +196,4 @@ let ContractSettings = React.createClass({
|
||||
}
|
||||
});
|
||||
|
||||
export default ContractSettings;
|
||||
export default ContractSettings;
|
||||
|
@ -15,6 +15,8 @@ import APISettings from './api_settings';
|
||||
import AclProxy from '../acl_proxy';
|
||||
|
||||
import { mergeOptions } from '../../utils/general_utils';
|
||||
import { getLangText } from '../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../utils/dom_utils';
|
||||
|
||||
|
||||
let SettingsContainer = React.createClass({
|
||||
@ -53,6 +55,8 @@ let SettingsContainer = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Account settings'));
|
||||
|
||||
if (this.state.currentUser && this.state.currentUser.username) {
|
||||
return (
|
||||
<div className="settings-container">
|
||||
|
@ -11,10 +11,13 @@ import InputTextAreaToggable from './ascribe_forms/input_textarea_toggable';
|
||||
|
||||
import ApiUrls from '../constants/api_urls';
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let CoaVerifyContainer = React.createClass({
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Verify your Certificate of Authenticity'));
|
||||
|
||||
return (
|
||||
<div className="ascribe-login-wrapper">
|
||||
<br/>
|
||||
|
@ -6,6 +6,7 @@ import { Link } from 'react-router';
|
||||
import LoginForm from './ascribe_forms/form_login';
|
||||
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let LoginContainer = React.createClass({
|
||||
@ -26,6 +27,8 @@ let LoginContainer = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Log in'));
|
||||
|
||||
return (
|
||||
<div className="ascribe-login-wrapper">
|
||||
<LoginForm
|
||||
|
@ -6,6 +6,9 @@ import { History } from 'react-router';
|
||||
import UserActions from '../actions/user_actions';
|
||||
import { alt, altWhitelabel, altUser, altThirdParty } from '../alt';
|
||||
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let LogoutContainer = React.createClass({
|
||||
mixins: [History],
|
||||
@ -21,6 +24,8 @@ let LogoutContainer = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Log out'));
|
||||
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
@ -10,6 +10,7 @@ import ApiUrls from '../constants/api_urls';
|
||||
import GlobalNotificationModel from '../models/global_notification_model';
|
||||
import GlobalNotificationActions from '../actions/global_notification_actions';
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let PasswordResetContainer = React.createClass({
|
||||
@ -75,6 +76,8 @@ let PasswordRequestResetForm = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Reset your password'));
|
||||
|
||||
return (
|
||||
<Form
|
||||
ref="form"
|
||||
|
@ -24,6 +24,7 @@ import AppConstants from '../constants/application_constants';
|
||||
|
||||
import { mergeOptions } from '../utils/general_utils';
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let PieceList = React.createClass({
|
||||
@ -153,6 +154,8 @@ let PieceList = React.createClass({
|
||||
let loadingElement = (<img src={AppConstants.baseUrl + 'static/img/ascribe_animated_medium.gif'} />);
|
||||
let AccordionListItemType = this.props.accordionListItemType;
|
||||
|
||||
setDocumentTitle(getLangText('Collection'));
|
||||
|
||||
return (
|
||||
<div>
|
||||
<PieceListToolbar
|
||||
|
@ -22,6 +22,7 @@ import RegisterPieceForm from './ascribe_forms/form_register_piece';
|
||||
|
||||
import { mergeOptions } from '../utils/general_utils';
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let RegisterPiece = React.createClass( {
|
||||
@ -115,6 +116,8 @@ let RegisterPiece = React.createClass( {
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Register a new piece'));
|
||||
|
||||
return (
|
||||
<Row className="no-margin">
|
||||
<Col xs={12} sm={10} md={8} smOffset={1} mdOffset={2}>
|
||||
|
@ -6,6 +6,7 @@ import { Link } from 'react-router';
|
||||
import SignupForm from './ascribe_forms/form_signup';
|
||||
|
||||
import { getLangText } from '../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../utils/dom_utils';
|
||||
|
||||
|
||||
let SignupContainer = React.createClass({
|
||||
@ -28,6 +29,8 @@ let SignupContainer = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Sign up'));
|
||||
|
||||
if (this.state.submitted){
|
||||
return (
|
||||
<div className="ascribe-login-wrapper">
|
||||
|
@ -40,6 +40,7 @@ import DetailProperty from '../../../../ascribe_detail/detail_property';
|
||||
import ApiUrls from '../../../../../constants/api_urls';
|
||||
import { mergeOptions } from '../../../../../utils/general_utils';
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
|
||||
|
||||
/**
|
||||
@ -112,12 +113,22 @@ let PieceContainer = React.createClass({
|
||||
// Only show the artist name if you are the participant or if you are a judge and the piece is shortlisted
|
||||
let artistName = ((this.state.currentUser.is_jury && !this.state.currentUser.is_judge) ||
|
||||
(this.state.currentUser.is_judge && !this.state.piece.selected )) ?
|
||||
<span className="glyphicon glyphicon-eye-close" aria-hidden="true"/> : this.state.piece.artist_name;
|
||||
null : this.state.piece.artist_name;
|
||||
|
||||
// Only show the artist email if you are a judge and the piece is shortlisted
|
||||
let artistEmail = (this.state.currentUser.is_judge && this.state.piece.selected ) ?
|
||||
<DetailProperty label={getLangText('REGISTREE')} value={ this.state.piece.user_registered } /> : null;
|
||||
|
||||
if (artistName === null) {
|
||||
setDocumentTitle(this.state.piece.title);
|
||||
} else {
|
||||
setDocumentTitle([artistName, this.state.piece.title].join(', '));
|
||||
}
|
||||
|
||||
if (artistName === null) {
|
||||
artistName = <span className="glyphicon glyphicon-eye-close" aria-hidden="true"/>;
|
||||
}
|
||||
|
||||
return (
|
||||
<Piece
|
||||
piece={this.state.piece}
|
||||
|
@ -6,6 +6,7 @@ import { Link } from 'react-router';
|
||||
import LoginForm from '../../../ascribe_forms/form_login';
|
||||
|
||||
import { getLangText } from '../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../utils/dom_utils';
|
||||
|
||||
|
||||
let LoginContainer = React.createClass({
|
||||
@ -14,6 +15,8 @@ let LoginContainer = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Log in'));
|
||||
|
||||
return (
|
||||
<div className="ascribe-login-wrapper">
|
||||
<LoginForm
|
||||
|
@ -17,6 +17,7 @@ import AccordionListItemPrize from './ascribe_accordion_list/accordion_list_item
|
||||
|
||||
import { mergeOptions } from '../../../../utils/general_utils';
|
||||
import { getLangText } from '../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../utils/dom_utils';
|
||||
|
||||
let PrizePieceList = React.createClass({
|
||||
propTypes: {
|
||||
@ -63,6 +64,8 @@ let PrizePieceList = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Collection'));
|
||||
|
||||
let orderParams = ['artist_name', 'title'];
|
||||
if (this.state.currentUser.is_jury) {
|
||||
orderParams = ['rating', 'title'];
|
||||
|
@ -11,6 +11,7 @@ import InputTextAreaToggable from '../../../ascribe_forms/input_textarea_toggabl
|
||||
import InputCheckbox from '../../../ascribe_forms/input_checkbox';
|
||||
|
||||
import { getLangText } from '../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../utils/dom_utils';
|
||||
|
||||
|
||||
let PrizeRegisterPiece = React.createClass({
|
||||
@ -32,6 +33,8 @@ let PrizeRegisterPiece = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Submit to the prize'));
|
||||
|
||||
if(this.state.prize && this.state.prize.active){
|
||||
return (
|
||||
<RegisterPiece
|
||||
|
@ -24,6 +24,7 @@ import AppConstants from '../../../../constants/application_constants';
|
||||
import ApiUrls from '../../../../constants/api_urls';
|
||||
|
||||
import { getLangText } from '../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../utils/dom_utils';
|
||||
|
||||
|
||||
let Settings = React.createClass({
|
||||
@ -45,6 +46,8 @@ let Settings = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Account settings'));
|
||||
|
||||
let prizeSettings = null;
|
||||
if (this.state.currentUser.is_admin){
|
||||
prizeSettings = <PrizeSettings />;
|
||||
|
@ -4,6 +4,7 @@ import React from 'react';
|
||||
import SignupForm from '../../../ascribe_forms/form_signup';
|
||||
|
||||
import { getLangText } from '../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../utils/dom_utils';
|
||||
|
||||
let SignupContainer = React.createClass({
|
||||
propTypes: {
|
||||
@ -25,6 +26,8 @@ let SignupContainer = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Sign up'));
|
||||
|
||||
if (this.state.submitted){
|
||||
return (
|
||||
<div className="ascribe-login-wrapper">
|
||||
|
@ -8,6 +8,7 @@ import LicenseActions from '../../../../../actions/license_actions';
|
||||
import LicenseStore from '../../../../../stores/license_store';
|
||||
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
import { mergeOptions } from '../../../../../utils/general_utils';
|
||||
|
||||
let CCRegisterPiece = React.createClass({
|
||||
@ -81,6 +82,7 @@ let CCRegisterPiece = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Register a new piece'));
|
||||
return (
|
||||
<RegisterPiece
|
||||
enableLocalHashing={false}
|
||||
|
@ -18,6 +18,7 @@ import WalletPieceContainer from '../../ascribe_detail/wallet_piece_container';
|
||||
import AppConstants from '../../../../../../constants/application_constants';
|
||||
|
||||
import { getLangText } from '../../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../../utils/dom_utils';
|
||||
import { mergeOptions } from '../../../../../../utils/general_utils';
|
||||
|
||||
let CylandPieceContainer = React.createClass({
|
||||
@ -61,6 +62,8 @@ let CylandPieceContainer = React.createClass({
|
||||
|
||||
render() {
|
||||
if(this.state.piece && this.state.piece.title) {
|
||||
setDocumentTitle([this.state.piece.artist_name, this.state.piece.title].join(', '));
|
||||
|
||||
return (
|
||||
<WalletPieceContainer
|
||||
piece={this.state.piece}
|
||||
|
@ -16,6 +16,7 @@ import UserActions from '../../../../../actions/user_actions';
|
||||
|
||||
import { mergeOptions } from '../../../../../utils/general_utils';
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
|
||||
let CylandLanding = React.createClass({
|
||||
|
||||
@ -51,6 +52,8 @@ let CylandLanding = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle('CYLAND MediaArtLab');
|
||||
|
||||
return (
|
||||
<div className="container ascribe-form-wrapper">
|
||||
<div className="row">
|
||||
|
@ -9,6 +9,7 @@ import UserStore from '../../../../../stores/user_store';
|
||||
import CylandAccordionListItem from './cyland_accordion_list/cyland_accordion_list_item';
|
||||
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
|
||||
|
||||
let CylandPieceList = React.createClass({
|
||||
@ -34,6 +35,8 @@ let CylandPieceList = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Collection'));
|
||||
|
||||
return (
|
||||
<div>
|
||||
<PieceList
|
||||
|
@ -34,6 +34,7 @@ import SlidesContainer from '../../../../ascribe_slides_container/slides_contain
|
||||
import ApiUrls from '../../../../../constants/api_urls';
|
||||
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
import { mergeOptions } from '../../../../../utils/general_utils';
|
||||
import { getAclFormMessage } from '../../../../../utils/form_utils';
|
||||
|
||||
@ -177,6 +178,8 @@ let CylandRegisterPiece = React.createClass({
|
||||
let datetimeWhenWeAllWillBeFlyingCoolHoverboardsAndDinosaursWillLiveAgain = new Moment();
|
||||
datetimeWhenWeAllWillBeFlyingCoolHoverboardsAndDinosaursWillLiveAgain.add(1000, 'years');
|
||||
|
||||
setDocumentTitle(getLangText('Register a new piece'));
|
||||
|
||||
return (
|
||||
<SlidesContainer
|
||||
ref="slidesContainer"
|
||||
|
@ -27,6 +27,7 @@ import Property from '../../../../ascribe_forms/property';
|
||||
import AppConstants from '../../../../../constants/application_constants';
|
||||
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
import { mergeOptions } from '../../../../../utils/general_utils';
|
||||
|
||||
|
||||
@ -148,6 +149,8 @@ let IkonotvContractNotifications = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Contacts notifications'));
|
||||
|
||||
if (this.state.contractAgreementListNotifications &&
|
||||
this.state.contractAgreementListNotifications.length > 0) {
|
||||
|
||||
@ -192,4 +195,4 @@ let IkonotvContractNotifications = React.createClass({
|
||||
}
|
||||
});
|
||||
|
||||
export default IkonotvContractNotifications;
|
||||
export default IkonotvContractNotifications;
|
||||
|
@ -19,6 +19,7 @@ import WalletPieceContainer from '../../ascribe_detail/wallet_piece_container';
|
||||
import AppConstants from '../../../../../../constants/application_constants';
|
||||
|
||||
import { getLangText } from '../../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../../utils/dom_utils';
|
||||
import { mergeOptions } from '../../../../../../utils/general_utils';
|
||||
|
||||
|
||||
@ -95,6 +96,7 @@ let IkonotvPieceContainer = React.createClass({
|
||||
}
|
||||
|
||||
if(this.state.piece && this.state.piece.title) {
|
||||
setDocumentTitle([this.state.piece.artist_name, this.state.piece.title].join(', '));
|
||||
return (
|
||||
<WalletPieceContainer
|
||||
piece={this.state.piece}
|
||||
|
@ -10,6 +10,7 @@ import UserStore from '../../../../../stores/user_store';
|
||||
import UserActions from '../../../../../actions/user_actions';
|
||||
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
|
||||
|
||||
let IkonotvLanding = React.createClass({
|
||||
@ -54,6 +55,8 @@ let IkonotvLanding = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle('ikonoTV');
|
||||
|
||||
return (
|
||||
<div className="ikonotv-landing">
|
||||
<header>
|
||||
|
@ -9,6 +9,7 @@ import UserStore from '../../../../../stores/user_store';
|
||||
import IkonotvAccordionListItem from './ikonotv_accordion_list/ikonotv_accordion_list_item';
|
||||
|
||||
import { getLangText } from '../../../../../utils/lang_utils';
|
||||
import { setDocumentTitle } from '../../../../../utils/dom_utils';
|
||||
|
||||
|
||||
let IkonotvPieceList = React.createClass({
|
||||
@ -34,6 +35,8 @@ let IkonotvPieceList = React.createClass({
|
||||
},
|
||||
|
||||
render() {
|
||||
setDocumentTitle(getLangText('Register a new piece'));
|
||||
|
||||
return (
|
||||
<div>
|
||||
<PieceList
|
||||
|
9
js/utils/dom_utils.js
Normal file
9
js/utils/dom_utils.js
Normal file
@ -0,0 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
|
||||
/**
|
||||
* Set the title in the browser window.
|
||||
*/
|
||||
export function setDocumentTitle(title) {
|
||||
document.title = title;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user