Adds License and LicenseUrl to AssetInfo and Publish/Edit Forms #935

Merged
jessopb merged 3 commits from licenseDev2 into master 2019-02-26 09:44:03 +01:00
14 changed files with 56 additions and 44 deletions
Showing only changes of commit 7b7a0339b8 - Show all commits

View file

@ -1,6 +1,7 @@
select {
margin: 0;
display: inline-block;
background: $base-color;
background: $background-color;
border: 0;
color: $text-color;
}

View file

@ -7,9 +7,6 @@ const ChannelSelectDropdown = ({ selectedChannel, handleSelection, loggedInChann
id='channel-name-select'
value={selectedChannel}
onChange={handleSelection}>
{ loggedInChannelName && (
<option value={loggedInChannelName} >{loggedInChannelName}</option>
)}
<option value={LOGIN}>Existing</option>
<option value={CREATE}>New</option>
</select>

View file

@ -1,9 +1,9 @@
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
import React from 'react';
import RowLabeled from '@components/RowLabeled';
import Label from '@components/Label';
import { LICENSES } from '../../constants/publish_license_urls';
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
import { LICENSES } from '@clientConstants/publish_license_urls';
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
const PublishLicenseInput = ({ handleSelect }) => {
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
const PublishLicenseInput = ({ handleSelect, license }) => {
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
return (
<RowLabeled
label={
@ -14,6 +14,7 @@ const PublishLicenseInput = ({ handleSelect }) => {
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
type='text'
name='license'
id='publish-license'
value={license}
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
onChange={handleSelect}
>
<option value=''>Unspecified</option>

skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`
skhameneh commented 2019-02-26 06:50:18 +01:00 (Migrated from github.com)
Review

We should have a more suitable alias to use instead of the ../../

We should have a more suitable alias to use instead of the `../../`

View file

@ -1,9 +1,9 @@
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
import React from 'react';
import RowLabeled from '@components/RowLabeled';
import Label from '@components/Label';
import { CC_LICENSES } from '../../constants/publish_license_urls';
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
import { CC_LICENSES } from '@clientConstants/publish_license_urls';
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
const PublishLicenseUrlInput = ({ handleSelect }) => {
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
const PublishLicenseUrlInput = ({ handleSelect, licenseUrl }) => {
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
return (
<RowLabeled
label={
@ -14,6 +14,7 @@ const PublishLicenseUrlInput = ({ handleSelect }) => {
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
type='text'
name='licenseUrl'
id='publish-license-url'
value={licenseUrl}
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
onChange={handleSelect}
>
<option value=''>Unspecified</option>

skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias
skhameneh commented 2019-02-26 06:50:29 +01:00 (Migrated from github.com)
Review

alias

alias

View file

@ -7,7 +7,7 @@ import AssetShareButtons from '@components/AssetShareButtons';
import ClickToCopy from '@components/ClickToCopy';
import siteConfig from '@config/siteConfig.json';
import createCanonicalLink from '@globalutils/createCanonicalLink';
import AssetInfoFooter from '../../components/AssetInfoFooter/index';
import AssetInfoFooter from '@components/AssetInfoFooter/index';
import { createPermanentURI } from '@clientutils/createPermanentURI';
import ReactMarkdown from 'react-markdown';
@ -18,7 +18,20 @@ class AssetInfo extends React.Component {
render () {
const { editable, asset } = this.props;
const { claimViews, claimData } = asset;
const { channelName, claimId, channelShortId, description, name, fileExt, contentType, host, certificateId, license, licenseUrl, transactionTime } = claimData;
const {
channelName,
claimId,
channelShortId,
description,
name,
fileExt,
contentType,
host,
certificateId,
license,
licenseUrl,
transactionTime
} = claimData;
const canonicalUrl = createCanonicalLink({ asset: { ...claimData, shortId: asset.shortId }});
const assetCanonicalUrl = `${host}${canonicalUrl}`;
@ -55,7 +68,7 @@ class AssetInfo extends React.Component {
{editable && (
<RowLabeled
label={<Label value={'Edit'} />}
content={<Link to={`/edit${canonicalUrl}`}>{name}</Link>}
content={<Link className='link--primary' to={`/edit${canonicalUrl}`}>{name}</Link>}
/>
)}
{channelName && (
@ -72,22 +85,6 @@ class AssetInfo extends React.Component {
/>
)}
<SpaceBetween>
{license && (
<RowLabeled
label={
<Label value={'License'} />
}
content={
<div className='text'>
{licenseUrl ? (
<a className={'link--primary'} href={licenseUrl} target={'_blank'}>{license}</a>
) : (
<span>{license}</span> )}
</div>
}
/>
)}
{claimViews ? (
<RowLabeled
label={
@ -100,6 +97,21 @@ class AssetInfo extends React.Component {
}
/>
) : null}
{license && (
<RowLabeled
label={
<Label value={'License'} />
}
content={
<div className='text'>
{licenseUrl ? (
<a className={'link--primary'} href={licenseUrl} target={'_blank'}>{license}</a>
) : (
<span>{license}</span> )}
</div>
}
/>
)}
</SpaceBetween>
<RowLabeled
label={

View file

@ -18,10 +18,10 @@ class ChannelSelect extends React.Component {
componentWillMount () {
const { loggedInChannelName, onChannelSelect, publishOnlyApproved, onPublishInChannelChange } = this.props;
if (loggedInChannelName) {
this.props.onPublishInChannelChange(true);
onChannelSelect(loggedInChannelName);
}
if (publishOnlyApproved) {
this.props.onPublishInChannelChange(true);
onPublishInChannelChange(true);
}
}
toggleAnonymousPublish (event) {
@ -37,10 +37,7 @@ class ChannelSelect extends React.Component {
this.props.onChannelSelect(selectedOption);
}
render () {
let { publishInChannel, channelError, selectedChannel, loggedInChannelName, publishOnlyApproved } = this.props;
if (loggedInChannelName) {
publishInChannel = 'checked';
}
const { publishInChannel, channelError, selectedChannel, loggedInChannelName, publishOnlyApproved } = this.props;
if (publishOnlyApproved) {
return (
<React.Fragment>

View file

@ -30,25 +30,27 @@ class PublishMetadataInputs extends React.Component {
}
}
render () {
const { showMetadataInputs, description, isUpdate, nsfw } = this.props;
const { showMetadataInputs, description, isUpdate, nsfw, license, licenseUrl } = this.props;
return (
<div>
{(showMetadataInputs || isUpdate) && (
<React.Fragment>
<PublishDescriptionInput
description={this.props.description}
description={description}
handleInput={this.handleInput}
/>
<PublishLicenseInput
handleSelect={this.handleSelect}
license={license}
/>
{ (this.props.license === 'Creative Commons') && (
<PublishLicenseUrlInput
handleSelect={this.handleSelect}
licenseUrl={licenseUrl}
/>
)}
<PublishNsfwInput
nsfw={this.props.nsfw}
nsfw={nsfw}
handleInput={this.handleInput}
/>
</React.Fragment>

View file

@ -6,7 +6,7 @@ const {
const getterMethods = {
generated_extension() {
logger.info('trying to generate extension', this.content_type);
logger.debug('trying to generate extension', this.content_type);
if (customFileExtensions.hasOwnProperty(this.content_type)) {
return customFileExtensions[this.content_type];
} else {

View file

@ -51,7 +51,7 @@ export default (db, table, sequelize) => ({
},
getShortClaimIdFromLongClaimId: async (claimId, claimName, pendingClaim) => {
logger.info(`claim.getShortClaimIdFromLongClaimId for ${claimName}#${claimId}`);
logger.debug(`claim.getShortClaimIdFromLongClaimId for ${claimName}#${claimId}`);
return await table
.findAll({
where: { name: claimName },

View file

@ -4,7 +4,7 @@ const getClaimData = require('server/utils/getClaimData');
const { returnPaginatedChannelClaims } = require('./channelPagination.js');
const getChannelClaims = async (channelName, channelLongId, page) => {
logger.info(`getChannelClaims: ${channelName}, ${channelLongId}, ${page}`);
logger.debug(`getChannelClaims: ${channelName}, ${channelLongId}, ${page}`);
let channelShortId = await chainquery.claim.queries.getShortClaimIdFromLongClaimId(
channelLongId,
channelName

View file

@ -5,7 +5,7 @@ const {
skhameneh commented 2019-02-26 06:53:38 +01:00 (Migrated from github.com)
Review

Would you mind cleaning up this path while you're here?

Would you mind cleaning up this path while you're here?
skhameneh commented 2019-02-26 06:53:38 +01:00 (Migrated from github.com)
Review

Would you mind cleaning up this path while you're here?

Would you mind cleaning up this path while you're here?
publishing: { disabled, disabledMessage },
} = require('@config/siteConfig');
const { sendGATimingEvent } = require('../../../../utils/googleAnalytics.js');
skhameneh commented 2019-02-26 06:53:38 +01:00 (Migrated from github.com)
Review

Would you mind cleaning up this path while you're here?

Would you mind cleaning up this path while you're here?
const { sendGATimingEvent } = require('server/utils/googleAnalytics.js');
skhameneh commented 2019-02-26 06:53:38 +01:00 (Migrated from github.com)
Review

Would you mind cleaning up this path while you're here?

Would you mind cleaning up this path while you're here?
const isApprovedChannel = require('@globalutils/isApprovedChannel');
const {
publishing: { publishOnlyApproved, approvedChannels },

skhameneh commented 2019-02-26 06:53:38 +01:00 (Migrated from github.com)
Review

Would you mind cleaning up this path while you're here?

Would you mind cleaning up this path while you're here?
skhameneh commented 2019-02-26 06:53:38 +01:00 (Migrated from github.com)
Review

Would you mind cleaning up this path while you're here?

Would you mind cleaning up this path while you're here?

View file

@ -129,7 +129,7 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res)
description: claimRecord.description,
nsfw: claimRecord.nsfw,
license: claimRecord.license,
license_url: claimRecord.license_url,
licenseUrl: claimRecord.license_url,
language: 'en',
author: details.title,
},
@ -170,12 +170,10 @@ const claimUpdate = ({ body, files, headers, ip, originalUrl, user, tor }, res)
}
const fp = files && files.file && files.file.path ? files.file.path : undefined;
logger.info(`before updatepublish`);
return publish(publishParams, fileName, fileType, fp);
})
.then(result => {
publishResult = result;
logger.info(`after updatepublish then`, result);
if (channelName) {
return chainquery.claim.queries.getShortClaimIdFromLongClaimId(

View file

@ -1,5 +1,6 @@
const logger = require('winston');
const transformImage = require('./transformImage');
const serveFile = async ({ filePath, fileType }, res, originalUrl) => {
const queryObject = {};
// TODO: replace quick/dirty try catch with better practice

View file

@ -39,6 +39,9 @@ module.exports = () => {
moduleAliases['@clientutils'] = resolve(`${DEFAULT_ROOT}/utils`);
// moduleAliases['@serverutils'] = resolve('server/utils');
// aliases for constants
moduleAliases['@clientConstants'] = resolve(`${DEFAULT_ROOT}/constants`);
// create specific aliases for locally defined components in the following folders
moduleAliases = addAliasesForCustomComponentFolder('containers', moduleAliases);
moduleAliases = addAliasesForCustomComponentFolder('components', moduleAliases);
@ -53,7 +56,6 @@ module.exports = () => {
moduleAliases['@sagas'] = resolve(`${DEFAULT_ROOT}/sagas`);
moduleAliases['@app'] = resolve(`${DEFAULT_ROOT}/app.js`);
// return finished aliases
return moduleAliases;
};