From 1970e42bd044d095f63545e472ad6c8158b8ca7b Mon Sep 17 00:00:00 2001 From: KIANLAU Date: Mon, 29 Mar 2021 15:04:13 +0530 Subject: [PATCH 01/24] [KianYee] #452 Edit Metadata --- content/pages/edit.json | 7 +++++++ src/@types/MetaData.d.ts | 1 + .../AssetActions/Edit/FormEditMetadata.tsx | 8 ++++---- .../organisms/AssetActions/Edit/index.tsx | 3 ++- src/models/FormEditMetadata.ts | 13 ++++++++----- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index 13d6089c5e..51ec6e4126 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -35,6 +35,13 @@ "options": ["Forever", "1 day", "1 week", "1 month", "1 year"], "sortOptions": false, "required": true + }, + { + "name": "isDatasetConsumable", + "label": "Disable Consumption", + "help": "Disable dataset being consume when dataset undergoing maintenance", + "type": "checkbox", + "options": ["Disable"] } ] } diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index 7b8a85ab33..2d1e4daee5 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -30,6 +30,7 @@ export interface MetadataEditForm { description: string timeout: string links?: string | EditableMetadataLinks[] + isDatasetConsumable: boolean } export interface MetadataPublishForm { diff --git a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx index cf4b5794cc..e68c361e6c 100644 --- a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx +++ b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx @@ -4,14 +4,14 @@ import { Field, Form, FormikContextType, useFormikContext } from 'formik' import Button from '../../../atoms/Button' import Input from '../../../atoms/Input' import { FormFieldProps } from '../../../../@types/Form' -import { MetadataPublishForm } from '../../../../@types/MetaData' +import { MetadataEditForm } from '../../../../@types/MetaData' import { checkIfTimeoutInPredefinedValues } from '../../../../utils/metadata' import { useOcean } from '../../../../providers/Ocean' import { useWeb3 } from '../../../../providers/Web3' function handleTimeoutCustomOption( data: FormFieldProps[], - values: Partial + values: Partial ) { const timeoutFieldContent = data.filter( (field) => field.name === 'timeout' @@ -52,7 +52,7 @@ export default function FormEditMetadata({ data: FormFieldProps[] setShowEdit: (show: boolean) => void setTimeoutStringValue: (value: string) => void - values: Partial + values: Partial }): ReactElement { const { accountId } = useWeb3() const { ocean } = useOcean() @@ -60,7 +60,7 @@ export default function FormEditMetadata({ isValid, validateField, setFieldValue - }: FormikContextType> = useFormikContext() + }: FormikContextType> = useFormikContext() // Manually handle change events instead of using `handleChange` from Formik. // Workaround for default `validateOnChange` not kicking in diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 6bfc8ab341..75f3a19575 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -124,7 +124,8 @@ export default function Edit({ { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 065b1b669a..870c5f18bb 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -1,4 +1,4 @@ -import { MetadataMarket, MetadataPublishForm } from '../@types/MetaData' +import { MetadataEditForm, MetadataMarket } from '../@types/MetaData' import { secondsToString } from '../utils/metadata' import { EditableMetadataLinks } from '@oceanprotocol/lib' import * as Yup from 'yup' @@ -9,17 +9,20 @@ export const validationSchema = Yup.object().shape({ .required('Required'), description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), - timeout: Yup.string().required('Required') + timeout: Yup.string().required('Required'), + isDatasetConsumable: Yup.array().nullable() }) export function getInitialValues( metadata: MetadataMarket, - timeout: number -): Partial { + timeout: number, + isDatasetConsumable: boolean +): Partial { return { name: metadata.main.name, description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, - timeout: secondsToString(timeout) + timeout: secondsToString(timeout), + isDatasetConsumable: isDatasetConsumable } } From 66388104117a80008e3fd7906a8b07c96e880475 Mon Sep 17 00:00:00 2001 From: KIANLAU Date: Tue, 30 Mar 2021 07:22:25 +0530 Subject: [PATCH 02/24] [KianYee] #issue-452 Minor fix --- content/pages/edit.json | 2 +- src/models/FormEditMetadata.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index 51ec6e4126..9ade1c604d 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -39,7 +39,7 @@ { "name": "isDatasetConsumable", "label": "Disable Consumption", - "help": "Disable dataset being consume when dataset undergoing maintenance", + "help": "Disable dataset being consume when dataset undergoing maintenance.", "type": "checkbox", "options": ["Disable"] } diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 870c5f18bb..21ebf89ffd 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,7 +10,7 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isDatasetConsumable: Yup.array().nullable() + isDatasetConsumable: Yup.boolean().nullable() }) export function getInitialValues( From 843ca6f2b26bd02e2d41ec43b90193a02b1c85f7 Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Tue, 30 Mar 2021 12:42:03 +0800 Subject: [PATCH 03/24] add toggle consume var 'isDatasetConsumable' --- src/components/organisms/AssetActions/Consume.tsx | 14 +++++++++++--- .../AssetActions/Edit/FormEditMetadata.tsx | 4 +++- .../organisms/AssetActions/Edit/index.tsx | 2 +- src/models/FormEditMetadata.ts | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index a5256ca68f..ed23c153a6 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -37,13 +37,16 @@ function getHelpText( dtBalance: string dtSymbol: string }, + isDatasetConsumable: boolean, hasDatatoken: boolean, hasPreviousOrder: boolean, timeout: string ) { const { dtBalance, dtSymbol } = token const assetTimeout = timeout === 'Forever' ? '' : ` for ${timeout}` - const text = hasPreviousOrder + const text = !isDatasetConsumable + ? `The data set owner has set this data set to be temporary unavailable for consume.` + : hasPreviousOrder ? `You bought this data set already allowing you to download it without paying again${assetTimeout}.` : hasDatatoken ? `You own ${dtBalance} ${dtSymbol} allowing you to use this data set by spending 1 ${dtSymbol}, but without paying OCEAN again.` @@ -77,6 +80,7 @@ export default function Consume({ const [hasDatatoken, setHasDatatoken] = useState(false) const [isConsumable, setIsConsumable] = useState(true) const [assetTimeout, setAssetTimeout] = useState('') + const [isDatasetConsumable, setIsDatasetConsumable] = useState(true) const { data } = useQuery(previousOrderQuery, { variables: { @@ -109,6 +113,7 @@ export default function Consume({ useEffect(() => { const { timeout } = ddo.findServiceByType('access').attributes.main setAssetTimeout(secondsToString(timeout)) + if (ddo.isDatasetConsumable === false) setIsDatasetConsumable(false) }, [ddo]) useEffect(() => { @@ -125,13 +130,14 @@ export default function Consume({ useEffect(() => { setIsDisabled( - (!ocean || + ((!ocean || !isBalanceSufficient || typeof consumeStepText !== 'undefined' || pricingIsLoading || !isConsumable) && !hasPreviousOrder && - !hasDatatoken + !hasDatatoken) || + !isDatasetConsumable ) }, [ ocean, @@ -140,6 +146,7 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, + isDatasetConsumable, hasDatatoken ]) @@ -177,6 +184,7 @@ export default function Consume({
{getHelpText( { dtBalance, dtSymbol: ddo.dataTokenInfo.symbol }, + isDatasetConsumable, hasDatatoken, hasPreviousOrder, assetTimeout diff --git a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx index e68c361e6c..de197061fc 100644 --- a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx +++ b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx @@ -69,7 +69,9 @@ export default function FormEditMetadata({ field: FormFieldProps ) { validateField(field.name) - setFieldValue(field.name, e.target.value) + if (e.target.type === 'checkbox') + setFieldValue(field.name, e.target.checked) + else setFieldValue(field.name, e.target.value) } // This component is handled by Formik so it's not rendered like a "normal" react component, diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 75f3a19575..48897ddcaa 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -125,7 +125,7 @@ export default function Edit({ initialValues={getInitialValues( metadata, ddo.findServiceByType('access').attributes.main.timeout, - false // TODO : Get it from DDO.isDatasetConsumable + ddo.isDatasetConsumable === undefined ? true : ddo.isDatasetConsumable )} validationSchema={validationSchema} onSubmit={async (values, { resetForm }) => { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 21ebf89ffd..d8e173178e 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,7 +10,7 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isDatasetConsumable: Yup.boolean().nullable() + isDatasetConsumable: Yup.boolean() }) export function getInitialValues( @@ -23,6 +23,6 @@ export function getInitialValues( description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, timeout: secondsToString(timeout), - isDatasetConsumable: isDatasetConsumable + isDatasetConsumable: !isDatasetConsumable } } From 8253cf9a797037086f8b8c1bde59ee766a8d1038 Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Tue, 30 Mar 2021 15:35:46 +0800 Subject: [PATCH 04/24] Rename toggle consume var to 'isConsumeDisable' --- content/pages/edit.json | 2 +- src/@types/MetaData.d.ts | 2 +- src/components/organisms/AssetActions/Consume.tsx | 14 +++++++------- .../organisms/AssetActions/Edit/index.tsx | 5 +++-- src/models/FormEditMetadata.ts | 6 +++--- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index 9ade1c604d..ce80e1efc7 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -37,7 +37,7 @@ "required": true }, { - "name": "isDatasetConsumable", + "name": "isConsumeDisable", "label": "Disable Consumption", "help": "Disable dataset being consume when dataset undergoing maintenance.", "type": "checkbox", diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index 2d1e4daee5..e4ac694191 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -30,7 +30,7 @@ export interface MetadataEditForm { description: string timeout: string links?: string | EditableMetadataLinks[] - isDatasetConsumable: boolean + isConsumeDisable: boolean } export interface MetadataPublishForm { diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index ed23c153a6..7eb04c6357 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -37,14 +37,14 @@ function getHelpText( dtBalance: string dtSymbol: string }, - isDatasetConsumable: boolean, + isConsumeDisable: boolean, hasDatatoken: boolean, hasPreviousOrder: boolean, timeout: string ) { const { dtBalance, dtSymbol } = token const assetTimeout = timeout === 'Forever' ? '' : ` for ${timeout}` - const text = !isDatasetConsumable + const text = isConsumeDisable ? `The data set owner has set this data set to be temporary unavailable for consume.` : hasPreviousOrder ? `You bought this data set already allowing you to download it without paying again${assetTimeout}.` @@ -80,7 +80,7 @@ export default function Consume({ const [hasDatatoken, setHasDatatoken] = useState(false) const [isConsumable, setIsConsumable] = useState(true) const [assetTimeout, setAssetTimeout] = useState('') - const [isDatasetConsumable, setIsDatasetConsumable] = useState(true) + const [isConsumeDisable, setIsConsumeDisable] = useState(false) const { data } = useQuery(previousOrderQuery, { variables: { @@ -113,7 +113,7 @@ export default function Consume({ useEffect(() => { const { timeout } = ddo.findServiceByType('access').attributes.main setAssetTimeout(secondsToString(timeout)) - if (ddo.isDatasetConsumable === false) setIsDatasetConsumable(false) + if (ddo.isConsumeDisable === true) setIsConsumeDisable(true) }, [ddo]) useEffect(() => { @@ -137,7 +137,7 @@ export default function Consume({ !isConsumable) && !hasPreviousOrder && !hasDatatoken) || - !isDatasetConsumable + isConsumeDisable ) }, [ ocean, @@ -146,7 +146,7 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, - isDatasetConsumable, + isConsumeDisable, hasDatatoken ]) @@ -184,7 +184,7 @@ export default function Consume({
{getHelpText( { dtBalance, dtSymbol: ddo.dataTokenInfo.symbol }, - isDatasetConsumable, + isConsumeDisable, hasDatatoken, hasPreviousOrder, assetTimeout diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 48897ddcaa..cdfab40082 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -76,7 +76,8 @@ export default function Edit({ const ddoEditedMetdata = await ocean.assets.editMetadata(ddo, { title: values.name, description: values.description, - links: typeof values.links !== 'string' ? values.links : [] + links: typeof values.links !== 'string' ? values.links : [], + isConsumeDisable: values.isConsumeDisable }) if (!ddoEditedMetdata) { @@ -125,7 +126,7 @@ export default function Edit({ initialValues={getInitialValues( metadata, ddo.findServiceByType('access').attributes.main.timeout, - ddo.isDatasetConsumable === undefined ? true : ddo.isDatasetConsumable + ddo.isConsumeDisable === undefined ? false : ddo.isConsumeDisable )} validationSchema={validationSchema} onSubmit={async (values, { resetForm }) => { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index d8e173178e..5d4fdabb90 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,19 +10,19 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isDatasetConsumable: Yup.boolean() + isConsumeDisable: Yup.boolean() }) export function getInitialValues( metadata: MetadataMarket, timeout: number, - isDatasetConsumable: boolean + isConsumeDisable: boolean ): Partial { return { name: metadata.main.name, description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, timeout: secondsToString(timeout), - isDatasetConsumable: !isDatasetConsumable + isConsumeDisable: isConsumeDisable } } From e95de4dc86b8a9efcec33883a7142062fb1f9e84 Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Tue, 30 Mar 2021 16:20:23 +0800 Subject: [PATCH 05/24] Minor fix on metadata preview --- src/components/molecules/MetadataPreview.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/molecules/MetadataPreview.tsx b/src/components/molecules/MetadataPreview.tsx index cf448987e1..54854e4795 100644 --- a/src/components/molecules/MetadataPreview.tsx +++ b/src/components/molecules/MetadataPreview.tsx @@ -61,7 +61,11 @@ function MetaFull({ values }: { values: Partial }) { ) ) .map(([key, value]) => ( - + ))}
) From 0008b2d393dd86c43891e671ed9c57688f75f363 Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Thu, 15 Apr 2021 15:12:09 +0800 Subject: [PATCH 06/24] Rename to isDisable --- content/pages/edit.json | 2 +- src/@types/MetaData.d.ts | 2 +- src/components/molecules/MetadataPreview.tsx | 2 +- src/components/organisms/AssetActions/Consume.tsx | 12 +++++------- src/components/organisms/AssetActions/Edit/index.tsx | 4 ++-- src/models/FormEditMetadata.ts | 6 +++--- 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index ce80e1efc7..4ed6135d96 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -37,7 +37,7 @@ "required": true }, { - "name": "isConsumeDisable", + "name": "isDisable", "label": "Disable Consumption", "help": "Disable dataset being consume when dataset undergoing maintenance.", "type": "checkbox", diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index e4ac694191..4d21fc3029 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -30,7 +30,7 @@ export interface MetadataEditForm { description: string timeout: string links?: string | EditableMetadataLinks[] - isConsumeDisable: boolean + isDisable: boolean } export interface MetadataPublishForm { diff --git a/src/components/molecules/MetadataPreview.tsx b/src/components/molecules/MetadataPreview.tsx index 54854e4795..f3a7277fde 100644 --- a/src/components/molecules/MetadataPreview.tsx +++ b/src/components/molecules/MetadataPreview.tsx @@ -64,7 +64,7 @@ function MetaFull({ values }: { values: Partial }) { ))}
diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index 7eb04c6357..a1a6cc912a 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -37,14 +37,14 @@ function getHelpText( dtBalance: string dtSymbol: string }, - isConsumeDisable: boolean, + isDisable: boolean, hasDatatoken: boolean, hasPreviousOrder: boolean, timeout: string ) { const { dtBalance, dtSymbol } = token const assetTimeout = timeout === 'Forever' ? '' : ` for ${timeout}` - const text = isConsumeDisable + const text = isDisable ? `The data set owner has set this data set to be temporary unavailable for consume.` : hasPreviousOrder ? `You bought this data set already allowing you to download it without paying again${assetTimeout}.` @@ -80,7 +80,6 @@ export default function Consume({ const [hasDatatoken, setHasDatatoken] = useState(false) const [isConsumable, setIsConsumable] = useState(true) const [assetTimeout, setAssetTimeout] = useState('') - const [isConsumeDisable, setIsConsumeDisable] = useState(false) const { data } = useQuery(previousOrderQuery, { variables: { @@ -113,7 +112,6 @@ export default function Consume({ useEffect(() => { const { timeout } = ddo.findServiceByType('access').attributes.main setAssetTimeout(secondsToString(timeout)) - if (ddo.isConsumeDisable === true) setIsConsumeDisable(true) }, [ddo]) useEffect(() => { @@ -137,7 +135,7 @@ export default function Consume({ !isConsumable) && !hasPreviousOrder && !hasDatatoken) || - isConsumeDisable + ddo.isDisable ) }, [ ocean, @@ -146,7 +144,7 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, - isConsumeDisable, + ddo.isDisable, hasDatatoken ]) @@ -184,7 +182,7 @@ export default function Consume({
{getHelpText( { dtBalance, dtSymbol: ddo.dataTokenInfo.symbol }, - isConsumeDisable, + ddo.isDisable, hasDatatoken, hasPreviousOrder, assetTimeout diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index cdfab40082..ca835e18d6 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -77,7 +77,7 @@ export default function Edit({ title: values.name, description: values.description, links: typeof values.links !== 'string' ? values.links : [], - isConsumeDisable: values.isConsumeDisable + isDisable: values.isDisable }) if (!ddoEditedMetdata) { @@ -126,7 +126,7 @@ export default function Edit({ initialValues={getInitialValues( metadata, ddo.findServiceByType('access').attributes.main.timeout, - ddo.isConsumeDisable === undefined ? false : ddo.isConsumeDisable + ddo.isDisable === undefined ? false : ddo.isDisable )} validationSchema={validationSchema} onSubmit={async (values, { resetForm }) => { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 5d4fdabb90..4ef9eb9c6a 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,19 +10,19 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isConsumeDisable: Yup.boolean() + isDisable: Yup.boolean() }) export function getInitialValues( metadata: MetadataMarket, timeout: number, - isConsumeDisable: boolean + isDisable: boolean ): Partial { return { name: metadata.main.name, description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, timeout: secondsToString(timeout), - isConsumeDisable: isConsumeDisable + isDisable: isDisable } } From 7d9915654f842a7f47b752be840dd6425d300fbf Mon Sep 17 00:00:00 2001 From: KIANLAU Date: Mon, 29 Mar 2021 15:04:13 +0530 Subject: [PATCH 07/24] [KianYee] #452 Edit Metadata --- content/pages/edit.json | 7 +++++++ src/@types/MetaData.d.ts | 1 + .../AssetActions/Edit/FormEditMetadata.tsx | 8 ++++---- .../organisms/AssetActions/Edit/index.tsx | 3 ++- src/models/FormEditMetadata.ts | 13 ++++++++----- 5 files changed, 22 insertions(+), 10 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index 13d6089c5e..51ec6e4126 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -35,6 +35,13 @@ "options": ["Forever", "1 day", "1 week", "1 month", "1 year"], "sortOptions": false, "required": true + }, + { + "name": "isDatasetConsumable", + "label": "Disable Consumption", + "help": "Disable dataset being consume when dataset undergoing maintenance", + "type": "checkbox", + "options": ["Disable"] } ] } diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index 7b8a85ab33..2d1e4daee5 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -30,6 +30,7 @@ export interface MetadataEditForm { description: string timeout: string links?: string | EditableMetadataLinks[] + isDatasetConsumable: boolean } export interface MetadataPublishForm { diff --git a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx index cf4b5794cc..e68c361e6c 100644 --- a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx +++ b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx @@ -4,14 +4,14 @@ import { Field, Form, FormikContextType, useFormikContext } from 'formik' import Button from '../../../atoms/Button' import Input from '../../../atoms/Input' import { FormFieldProps } from '../../../../@types/Form' -import { MetadataPublishForm } from '../../../../@types/MetaData' +import { MetadataEditForm } from '../../../../@types/MetaData' import { checkIfTimeoutInPredefinedValues } from '../../../../utils/metadata' import { useOcean } from '../../../../providers/Ocean' import { useWeb3 } from '../../../../providers/Web3' function handleTimeoutCustomOption( data: FormFieldProps[], - values: Partial + values: Partial ) { const timeoutFieldContent = data.filter( (field) => field.name === 'timeout' @@ -52,7 +52,7 @@ export default function FormEditMetadata({ data: FormFieldProps[] setShowEdit: (show: boolean) => void setTimeoutStringValue: (value: string) => void - values: Partial + values: Partial }): ReactElement { const { accountId } = useWeb3() const { ocean } = useOcean() @@ -60,7 +60,7 @@ export default function FormEditMetadata({ isValid, validateField, setFieldValue - }: FormikContextType> = useFormikContext() + }: FormikContextType> = useFormikContext() // Manually handle change events instead of using `handleChange` from Formik. // Workaround for default `validateOnChange` not kicking in diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 6bfc8ab341..75f3a19575 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -124,7 +124,8 @@ export default function Edit({ { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 065b1b669a..870c5f18bb 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -1,4 +1,4 @@ -import { MetadataMarket, MetadataPublishForm } from '../@types/MetaData' +import { MetadataEditForm, MetadataMarket } from '../@types/MetaData' import { secondsToString } from '../utils/metadata' import { EditableMetadataLinks } from '@oceanprotocol/lib' import * as Yup from 'yup' @@ -9,17 +9,20 @@ export const validationSchema = Yup.object().shape({ .required('Required'), description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), - timeout: Yup.string().required('Required') + timeout: Yup.string().required('Required'), + isDatasetConsumable: Yup.array().nullable() }) export function getInitialValues( metadata: MetadataMarket, - timeout: number -): Partial { + timeout: number, + isDatasetConsumable: boolean +): Partial { return { name: metadata.main.name, description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, - timeout: secondsToString(timeout) + timeout: secondsToString(timeout), + isDatasetConsumable: isDatasetConsumable } } From 5f401dd104c5d20e8017a600ec49104cb29bff75 Mon Sep 17 00:00:00 2001 From: KIANLAU Date: Tue, 30 Mar 2021 07:22:25 +0530 Subject: [PATCH 08/24] [KianYee] #issue-452 Minor fix --- content/pages/edit.json | 2 +- src/models/FormEditMetadata.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index 51ec6e4126..9ade1c604d 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -39,7 +39,7 @@ { "name": "isDatasetConsumable", "label": "Disable Consumption", - "help": "Disable dataset being consume when dataset undergoing maintenance", + "help": "Disable dataset being consume when dataset undergoing maintenance.", "type": "checkbox", "options": ["Disable"] } diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 870c5f18bb..21ebf89ffd 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,7 +10,7 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isDatasetConsumable: Yup.array().nullable() + isDatasetConsumable: Yup.boolean().nullable() }) export function getInitialValues( From 9874da8b07182eed042de4439cbe088f91e2bcae Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Tue, 30 Mar 2021 12:42:03 +0800 Subject: [PATCH 09/24] add toggle consume var 'isDatasetConsumable' --- src/components/organisms/AssetActions/Consume.tsx | 14 +++++++++++--- .../AssetActions/Edit/FormEditMetadata.tsx | 4 +++- .../organisms/AssetActions/Edit/index.tsx | 2 +- src/models/FormEditMetadata.ts | 4 ++-- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index a5256ca68f..ed23c153a6 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -37,13 +37,16 @@ function getHelpText( dtBalance: string dtSymbol: string }, + isDatasetConsumable: boolean, hasDatatoken: boolean, hasPreviousOrder: boolean, timeout: string ) { const { dtBalance, dtSymbol } = token const assetTimeout = timeout === 'Forever' ? '' : ` for ${timeout}` - const text = hasPreviousOrder + const text = !isDatasetConsumable + ? `The data set owner has set this data set to be temporary unavailable for consume.` + : hasPreviousOrder ? `You bought this data set already allowing you to download it without paying again${assetTimeout}.` : hasDatatoken ? `You own ${dtBalance} ${dtSymbol} allowing you to use this data set by spending 1 ${dtSymbol}, but without paying OCEAN again.` @@ -77,6 +80,7 @@ export default function Consume({ const [hasDatatoken, setHasDatatoken] = useState(false) const [isConsumable, setIsConsumable] = useState(true) const [assetTimeout, setAssetTimeout] = useState('') + const [isDatasetConsumable, setIsDatasetConsumable] = useState(true) const { data } = useQuery(previousOrderQuery, { variables: { @@ -109,6 +113,7 @@ export default function Consume({ useEffect(() => { const { timeout } = ddo.findServiceByType('access').attributes.main setAssetTimeout(secondsToString(timeout)) + if (ddo.isDatasetConsumable === false) setIsDatasetConsumable(false) }, [ddo]) useEffect(() => { @@ -125,13 +130,14 @@ export default function Consume({ useEffect(() => { setIsDisabled( - (!ocean || + ((!ocean || !isBalanceSufficient || typeof consumeStepText !== 'undefined' || pricingIsLoading || !isConsumable) && !hasPreviousOrder && - !hasDatatoken + !hasDatatoken) || + !isDatasetConsumable ) }, [ ocean, @@ -140,6 +146,7 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, + isDatasetConsumable, hasDatatoken ]) @@ -177,6 +184,7 @@ export default function Consume({
{getHelpText( { dtBalance, dtSymbol: ddo.dataTokenInfo.symbol }, + isDatasetConsumable, hasDatatoken, hasPreviousOrder, assetTimeout diff --git a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx index e68c361e6c..de197061fc 100644 --- a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx +++ b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx @@ -69,7 +69,9 @@ export default function FormEditMetadata({ field: FormFieldProps ) { validateField(field.name) - setFieldValue(field.name, e.target.value) + if (e.target.type === 'checkbox') + setFieldValue(field.name, e.target.checked) + else setFieldValue(field.name, e.target.value) } // This component is handled by Formik so it's not rendered like a "normal" react component, diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 75f3a19575..48897ddcaa 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -125,7 +125,7 @@ export default function Edit({ initialValues={getInitialValues( metadata, ddo.findServiceByType('access').attributes.main.timeout, - false // TODO : Get it from DDO.isDatasetConsumable + ddo.isDatasetConsumable === undefined ? true : ddo.isDatasetConsumable )} validationSchema={validationSchema} onSubmit={async (values, { resetForm }) => { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 21ebf89ffd..d8e173178e 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,7 +10,7 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isDatasetConsumable: Yup.boolean().nullable() + isDatasetConsumable: Yup.boolean() }) export function getInitialValues( @@ -23,6 +23,6 @@ export function getInitialValues( description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, timeout: secondsToString(timeout), - isDatasetConsumable: isDatasetConsumable + isDatasetConsumable: !isDatasetConsumable } } From 1e49fcba8c0c4863ae3c2d474ada3762acb21c07 Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Tue, 30 Mar 2021 15:35:46 +0800 Subject: [PATCH 10/24] Rename toggle consume var to 'isConsumeDisable' --- content/pages/edit.json | 2 +- src/@types/MetaData.d.ts | 2 +- src/components/organisms/AssetActions/Consume.tsx | 14 +++++++------- .../organisms/AssetActions/Edit/index.tsx | 5 +++-- src/models/FormEditMetadata.ts | 6 +++--- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index 9ade1c604d..ce80e1efc7 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -37,7 +37,7 @@ "required": true }, { - "name": "isDatasetConsumable", + "name": "isConsumeDisable", "label": "Disable Consumption", "help": "Disable dataset being consume when dataset undergoing maintenance.", "type": "checkbox", diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index 2d1e4daee5..e4ac694191 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -30,7 +30,7 @@ export interface MetadataEditForm { description: string timeout: string links?: string | EditableMetadataLinks[] - isDatasetConsumable: boolean + isConsumeDisable: boolean } export interface MetadataPublishForm { diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index ed23c153a6..7eb04c6357 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -37,14 +37,14 @@ function getHelpText( dtBalance: string dtSymbol: string }, - isDatasetConsumable: boolean, + isConsumeDisable: boolean, hasDatatoken: boolean, hasPreviousOrder: boolean, timeout: string ) { const { dtBalance, dtSymbol } = token const assetTimeout = timeout === 'Forever' ? '' : ` for ${timeout}` - const text = !isDatasetConsumable + const text = isConsumeDisable ? `The data set owner has set this data set to be temporary unavailable for consume.` : hasPreviousOrder ? `You bought this data set already allowing you to download it without paying again${assetTimeout}.` @@ -80,7 +80,7 @@ export default function Consume({ const [hasDatatoken, setHasDatatoken] = useState(false) const [isConsumable, setIsConsumable] = useState(true) const [assetTimeout, setAssetTimeout] = useState('') - const [isDatasetConsumable, setIsDatasetConsumable] = useState(true) + const [isConsumeDisable, setIsConsumeDisable] = useState(false) const { data } = useQuery(previousOrderQuery, { variables: { @@ -113,7 +113,7 @@ export default function Consume({ useEffect(() => { const { timeout } = ddo.findServiceByType('access').attributes.main setAssetTimeout(secondsToString(timeout)) - if (ddo.isDatasetConsumable === false) setIsDatasetConsumable(false) + if (ddo.isConsumeDisable === true) setIsConsumeDisable(true) }, [ddo]) useEffect(() => { @@ -137,7 +137,7 @@ export default function Consume({ !isConsumable) && !hasPreviousOrder && !hasDatatoken) || - !isDatasetConsumable + isConsumeDisable ) }, [ ocean, @@ -146,7 +146,7 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, - isDatasetConsumable, + isConsumeDisable, hasDatatoken ]) @@ -184,7 +184,7 @@ export default function Consume({
{getHelpText( { dtBalance, dtSymbol: ddo.dataTokenInfo.symbol }, - isDatasetConsumable, + isConsumeDisable, hasDatatoken, hasPreviousOrder, assetTimeout diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 48897ddcaa..cdfab40082 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -76,7 +76,8 @@ export default function Edit({ const ddoEditedMetdata = await ocean.assets.editMetadata(ddo, { title: values.name, description: values.description, - links: typeof values.links !== 'string' ? values.links : [] + links: typeof values.links !== 'string' ? values.links : [], + isConsumeDisable: values.isConsumeDisable }) if (!ddoEditedMetdata) { @@ -125,7 +126,7 @@ export default function Edit({ initialValues={getInitialValues( metadata, ddo.findServiceByType('access').attributes.main.timeout, - ddo.isDatasetConsumable === undefined ? true : ddo.isDatasetConsumable + ddo.isConsumeDisable === undefined ? false : ddo.isConsumeDisable )} validationSchema={validationSchema} onSubmit={async (values, { resetForm }) => { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index d8e173178e..5d4fdabb90 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,19 +10,19 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isDatasetConsumable: Yup.boolean() + isConsumeDisable: Yup.boolean() }) export function getInitialValues( metadata: MetadataMarket, timeout: number, - isDatasetConsumable: boolean + isConsumeDisable: boolean ): Partial { return { name: metadata.main.name, description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, timeout: secondsToString(timeout), - isDatasetConsumable: !isDatasetConsumable + isConsumeDisable: isConsumeDisable } } From ef41e6ccfd64611fedfaaf83b7e0b82aebf9b379 Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Tue, 30 Mar 2021 16:20:23 +0800 Subject: [PATCH 11/24] Minor fix on metadata preview --- src/components/molecules/MetadataPreview.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/molecules/MetadataPreview.tsx b/src/components/molecules/MetadataPreview.tsx index cf448987e1..54854e4795 100644 --- a/src/components/molecules/MetadataPreview.tsx +++ b/src/components/molecules/MetadataPreview.tsx @@ -61,7 +61,11 @@ function MetaFull({ values }: { values: Partial }) { ) ) .map(([key, value]) => ( - + ))}
) From 1f34e0ac1c564eedaa9b3993a701baa45053fcce Mon Sep 17 00:00:00 2001 From: Kris Liew <39853992+krisliew@users.noreply.github.com> Date: Thu, 15 Apr 2021 15:12:09 +0800 Subject: [PATCH 12/24] Rename to isDisable --- content/pages/edit.json | 2 +- src/@types/MetaData.d.ts | 2 +- src/components/molecules/MetadataPreview.tsx | 2 +- src/components/organisms/AssetActions/Consume.tsx | 12 +++++------- src/components/organisms/AssetActions/Edit/index.tsx | 4 ++-- src/models/FormEditMetadata.ts | 6 +++--- 6 files changed, 13 insertions(+), 15 deletions(-) diff --git a/content/pages/edit.json b/content/pages/edit.json index ce80e1efc7..4ed6135d96 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -37,7 +37,7 @@ "required": true }, { - "name": "isConsumeDisable", + "name": "isDisable", "label": "Disable Consumption", "help": "Disable dataset being consume when dataset undergoing maintenance.", "type": "checkbox", diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index e4ac694191..4d21fc3029 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -30,7 +30,7 @@ export interface MetadataEditForm { description: string timeout: string links?: string | EditableMetadataLinks[] - isConsumeDisable: boolean + isDisable: boolean } export interface MetadataPublishForm { diff --git a/src/components/molecules/MetadataPreview.tsx b/src/components/molecules/MetadataPreview.tsx index 54854e4795..f3a7277fde 100644 --- a/src/components/molecules/MetadataPreview.tsx +++ b/src/components/molecules/MetadataPreview.tsx @@ -64,7 +64,7 @@ function MetaFull({ values }: { values: Partial }) { ))}
diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index 7eb04c6357..a1a6cc912a 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -37,14 +37,14 @@ function getHelpText( dtBalance: string dtSymbol: string }, - isConsumeDisable: boolean, + isDisable: boolean, hasDatatoken: boolean, hasPreviousOrder: boolean, timeout: string ) { const { dtBalance, dtSymbol } = token const assetTimeout = timeout === 'Forever' ? '' : ` for ${timeout}` - const text = isConsumeDisable + const text = isDisable ? `The data set owner has set this data set to be temporary unavailable for consume.` : hasPreviousOrder ? `You bought this data set already allowing you to download it without paying again${assetTimeout}.` @@ -80,7 +80,6 @@ export default function Consume({ const [hasDatatoken, setHasDatatoken] = useState(false) const [isConsumable, setIsConsumable] = useState(true) const [assetTimeout, setAssetTimeout] = useState('') - const [isConsumeDisable, setIsConsumeDisable] = useState(false) const { data } = useQuery(previousOrderQuery, { variables: { @@ -113,7 +112,6 @@ export default function Consume({ useEffect(() => { const { timeout } = ddo.findServiceByType('access').attributes.main setAssetTimeout(secondsToString(timeout)) - if (ddo.isConsumeDisable === true) setIsConsumeDisable(true) }, [ddo]) useEffect(() => { @@ -137,7 +135,7 @@ export default function Consume({ !isConsumable) && !hasPreviousOrder && !hasDatatoken) || - isConsumeDisable + ddo.isDisable ) }, [ ocean, @@ -146,7 +144,7 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, - isConsumeDisable, + ddo.isDisable, hasDatatoken ]) @@ -184,7 +182,7 @@ export default function Consume({
{getHelpText( { dtBalance, dtSymbol: ddo.dataTokenInfo.symbol }, - isConsumeDisable, + ddo.isDisable, hasDatatoken, hasPreviousOrder, assetTimeout diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index cdfab40082..ca835e18d6 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -77,7 +77,7 @@ export default function Edit({ title: values.name, description: values.description, links: typeof values.links !== 'string' ? values.links : [], - isConsumeDisable: values.isConsumeDisable + isDisable: values.isDisable }) if (!ddoEditedMetdata) { @@ -126,7 +126,7 @@ export default function Edit({ initialValues={getInitialValues( metadata, ddo.findServiceByType('access').attributes.main.timeout, - ddo.isConsumeDisable === undefined ? false : ddo.isConsumeDisable + ddo.isDisable === undefined ? false : ddo.isDisable )} validationSchema={validationSchema} onSubmit={async (values, { resetForm }) => { diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 5d4fdabb90..4ef9eb9c6a 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,19 +10,19 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), links: Yup.array().nullable(), timeout: Yup.string().required('Required'), - isConsumeDisable: Yup.boolean() + isDisable: Yup.boolean() }) export function getInitialValues( metadata: MetadataMarket, timeout: number, - isConsumeDisable: boolean + isDisable: boolean ): Partial { return { name: metadata.main.name, description: metadata.additionalInformation.description, links: metadata.additionalInformation.links, timeout: secondsToString(timeout), - isConsumeDisable: isConsumeDisable + isDisable: isDisable } } From b3195e7e5935b7bb57c8349b4d3055b39b568f3e Mon Sep 17 00:00:00 2001 From: KRIS LIEW <39853992+krisliew@users.noreply.github.com> Date: Wed, 16 Jun 2021 14:31:25 +0800 Subject: [PATCH 13/24] Remove old code, add status component --- content/pages/edit.json | 7 ----- src/@types/MetaData.d.ts | 1 - .../molecules/AssetStatus.module.css | 19 +++++++++++++ src/components/molecules/AssetStatus.tsx | 27 +++++++++++++++++++ .../organisms/AssetActions/Consume.tsx | 6 ++--- .../AssetActions/Edit/FormEditMetadata.tsx | 4 +-- .../organisms/AssetActions/Edit/index.tsx | 10 ++----- src/models/FormEditMetadata.ts | 7 ++--- 8 files changed, 53 insertions(+), 28 deletions(-) create mode 100644 src/components/molecules/AssetStatus.module.css create mode 100644 src/components/molecules/AssetStatus.tsx diff --git a/content/pages/edit.json b/content/pages/edit.json index 832e884a6f..ac8e21e0d5 100644 --- a/content/pages/edit.json +++ b/content/pages/edit.json @@ -44,13 +44,6 @@ "options": ["Forever", "1 day", "1 week", "1 month", "1 year"], "sortOptions": false, "required": true - }, - { - "name": "isDisable", - "label": "Disable Consumption", - "help": "Disable dataset being consume when dataset undergoing maintenance.", - "type": "checkbox", - "options": ["Disable"] } ] } diff --git a/src/@types/MetaData.d.ts b/src/@types/MetaData.d.ts index f2af07faf4..2481338b52 100644 --- a/src/@types/MetaData.d.ts +++ b/src/@types/MetaData.d.ts @@ -38,7 +38,6 @@ export interface MetadataPublishFormDataset { // ---- optional fields ---- tags?: string links?: string | EditableMetadataLinks[] - isDisable: boolean } export interface MetadataPublishFormAlgorithm { diff --git a/src/components/molecules/AssetStatus.module.css b/src/components/molecules/AssetStatus.module.css new file mode 100644 index 0000000000..73dddc9677 --- /dev/null +++ b/src/components/molecules/AssetStatus.module.css @@ -0,0 +1,19 @@ +.wrapper { + display: inline-block; + font-size: var(--font-size-mini); +} + +.text { + margin-left: calc(var(--spacer) / 12); + color: var(--brand-alert-red); +} + +.status, +.info { + transform: scale(0.7); + transform-origin: bottom; +} + +.info svg { + margin-left: calc(var(--spacer) / 12); +} diff --git a/src/components/molecules/AssetStatus.tsx b/src/components/molecules/AssetStatus.tsx new file mode 100644 index 0000000000..3836c72849 --- /dev/null +++ b/src/components/molecules/AssetStatus.tsx @@ -0,0 +1,27 @@ +import React, { ReactElement, useEffect, useState } from 'react' +import Status from '../atoms/Status' +import Tooltip from '../atoms/Tooltip' +import styles from './AssetStatus.module.css' + +export default function AssetStatus({ + isDisable +}: { + isDisable?: boolean +}): ReactElement { + const [status, setStatus] = useState('') + + useEffect(() => { + isDisable === true && setStatus('Disabled') + }, [isDisable]) + + return isDisable ? ( +
+ + {status} + +
+ ) : null +} diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index 8e32f04d58..2918d1bdf2 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -105,14 +105,13 @@ export default function Consume({ useEffect(() => { setIsDisabled( - ((!ocean || + (!ocean || !isBalanceSufficient || typeof consumeStepText !== 'undefined' || pricingIsLoading || !isConsumable) && !hasPreviousOrder && - !hasDatatoken) || - ddo.isDisable + !hasDatatoken ) }, [ ocean, @@ -121,7 +120,6 @@ export default function Consume({ consumeStepText, pricingIsLoading, isConsumable, - ddo.isDisable, hasDatatoken ]) diff --git a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx index 5af6393c08..1c8d477ac6 100644 --- a/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx +++ b/src/components/organisms/AssetActions/Edit/FormEditMetadata.tsx @@ -71,9 +71,7 @@ export default function FormEditMetadata({ field: FormFieldProps ) { validateField(field.name) - if (e.target.type === 'checkbox') - setFieldValue(field.name, e.target.checked) - else setFieldValue(field.name, e.target.value) + setFieldValue(field.name, e.target.value) } // This component is handled by Formik so it's not rendered like a "normal" react component, diff --git a/src/components/organisms/AssetActions/Edit/index.tsx b/src/components/organisms/AssetActions/Edit/index.tsx index 3d182e332d..dfafa3a6f3 100644 --- a/src/components/organisms/AssetActions/Edit/index.tsx +++ b/src/components/organisms/AssetActions/Edit/index.tsx @@ -92,8 +92,7 @@ export default function Edit({ const ddoEditedMetdata = await ocean.assets.editMetadata(ddo, { title: values.name, description: values.description, - links: typeof values.links !== 'string' ? values.links : [], - isDisable: values.isDisable + links: typeof values.links !== 'string' ? values.links : [] }) price.type === 'exchange' && @@ -145,12 +144,7 @@ export default function Edit({ return ( { // move user's focus to top of screen diff --git a/src/models/FormEditMetadata.ts b/src/models/FormEditMetadata.ts index 6d40abe4d4..0df3831d79 100644 --- a/src/models/FormEditMetadata.ts +++ b/src/models/FormEditMetadata.ts @@ -10,14 +10,12 @@ export const validationSchema = Yup.object().shape({ description: Yup.string().required('Required').min(10), price: Yup.number().required('Required'), links: Yup.array().nullable(), - timeout: Yup.string().required('Required'), - isDisable: Yup.boolean() + timeout: Yup.string().required('Required') }) export function getInitialValues( metadata: MetadataMarket, timeout: number, - isDisable: boolean price: number ): Partial { return { @@ -25,7 +23,6 @@ export function getInitialValues( description: metadata.additionalInformation.description, price, links: metadata.additionalInformation.links, - timeout: secondsToString(timeout), - isDisable: isDisable + timeout: secondsToString(timeout) } } From 590aa27277d764b41c615cd63daa42ac5cf2aa5f Mon Sep 17 00:00:00 2001 From: KRIS LIEW <39853992+krisliew@users.noreply.github.com> Date: Wed, 16 Jun 2021 14:33:08 +0800 Subject: [PATCH 14/24] remove old code --- src/components/molecules/MetadataPreview.tsx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/components/molecules/MetadataPreview.tsx b/src/components/molecules/MetadataPreview.tsx index 8dd88399e7..a1a85c1260 100644 --- a/src/components/molecules/MetadataPreview.tsx +++ b/src/components/molecules/MetadataPreview.tsx @@ -66,11 +66,7 @@ function MetaFull({ values }: { values: Partial }) { ) ) .map(([key, value]) => ( - + ))}
) From 321554d3315894fe0d6ed1e812a602e010639516 Mon Sep 17 00:00:00 2001 From: KRIS LIEW <39853992+krisliew@users.noreply.github.com> Date: Wed, 16 Jun 2021 16:51:04 +0800 Subject: [PATCH 15/24] use Consumable interface --- src/components/molecules/AssetStatus.tsx | 22 ++++++------------- .../organisms/AssetActions/Consume.tsx | 12 ++++++++++ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/components/molecules/AssetStatus.tsx b/src/components/molecules/AssetStatus.tsx index 3836c72849..78ce6f9e4c 100644 --- a/src/components/molecules/AssetStatus.tsx +++ b/src/components/molecules/AssetStatus.tsx @@ -1,27 +1,19 @@ -import React, { ReactElement, useEffect, useState } from 'react' +import { Consumable } from '@oceanprotocol/lib/dist/node/ddo/interfaces/Consumable' +import React, { ReactElement } from 'react' import Status from '../atoms/Status' import Tooltip from '../atoms/Tooltip' import styles from './AssetStatus.module.css' export default function AssetStatus({ - isDisable + consumable }: { - isDisable?: boolean + consumable: Consumable }): ReactElement { - const [status, setStatus] = useState('') - - useEffect(() => { - isDisable === true && setStatus('Disabled') - }, [isDisable]) - - return isDisable ? ( + return consumable?.status > 0 ? (
- {status} - + Disabled +
) : null } diff --git a/src/components/organisms/AssetActions/Consume.tsx b/src/components/organisms/AssetActions/Consume.tsx index 73055be6cb..973ab6781a 100644 --- a/src/components/organisms/AssetActions/Consume.tsx +++ b/src/components/organisms/AssetActions/Consume.tsx @@ -17,6 +17,8 @@ import { usePricing } from '../../../hooks/usePricing' import { useConsume } from '../../../hooks/useConsume' import ButtonBuy from '../../atoms/ButtonBuy' import AlgorithmDatasetsListForCompute from '../AssetContent/AlgorithmDatasetsListForCompute' +import AssetStatus from '../../molecules/AssetStatus' +import { Consumable } from '@oceanprotocol/lib/dist/node/ddo/interfaces/Consumable' const previousOrderQuery = gql` query PreviousOrder($id: String!, $account: String!) { @@ -65,6 +67,7 @@ export default function Consume({ }, pollInterval: 5000 }) + const [consumable, setConsumable] = useState() useEffect(() => { if (!data || !assetTimeout || data.tokenOrders.length === 0) return @@ -103,6 +106,14 @@ export default function Consume({ setHasDatatoken(Number(dtBalance) >= 1) }, [dtBalance]) + useEffect(() => { + async function checkConsumable() { + const consumable = await ocean.assets.isConsumable(ddo, accountId) + setConsumable(consumable) + } + checkConsumable() + }, [ddo, accountId]) + useEffect(() => { setIsDisabled( (!ocean || @@ -169,6 +180,7 @@ export default function Consume({
+
From 72c7d42d4c5b30f79b7ce48245500ffdbf38ab10 Mon Sep 17 00:00:00 2001 From: KRIS LIEW <39853992+krisliew@users.noreply.github.com> Date: Mon, 21 Jun 2021 09:31:53 +0800 Subject: [PATCH 16/24] feedback change --- src/components/molecules/AssetStatus.tsx | 12 +++++++----- .../molecules/FormFields/AssetSelection.tsx | 4 ++++ .../organisms/AssetActions/Compute/index.tsx | 16 +++++++++++++++- .../organisms/AssetActions/Consume.tsx | 6 +++--- src/utils/aquarius.ts | 9 +++++++-- 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/src/components/molecules/AssetStatus.tsx b/src/components/molecules/AssetStatus.tsx index 78ce6f9e4c..6e5d1f99b8 100644 --- a/src/components/molecules/AssetStatus.tsx +++ b/src/components/molecules/AssetStatus.tsx @@ -1,19 +1,21 @@ -import { Consumable } from '@oceanprotocol/lib/dist/node/ddo/interfaces/Consumable' import React, { ReactElement } from 'react' import Status from '../atoms/Status' import Tooltip from '../atoms/Tooltip' import styles from './AssetStatus.module.css' export default function AssetStatus({ - consumable + isOrderDisabled }: { - consumable: Consumable + isOrderDisabled: boolean }): ReactElement { - return consumable?.status > 0 ? ( + return isOrderDisabled === true ? (
Disabled - +
) : null } diff --git a/src/components/molecules/FormFields/AssetSelection.tsx b/src/components/molecules/FormFields/AssetSelection.tsx index b66fe41044..fa951f8a30 100644 --- a/src/components/molecules/FormFields/AssetSelection.tsx +++ b/src/components/molecules/FormFields/AssetSelection.tsx @@ -7,6 +7,7 @@ import { ReactComponent as External } from '../../../images/external.svg' import InputElement from '../../atoms/Input/InputElement' import Loader from '../../atoms/Loader' import styles from './AssetSelection.module.css' +import AssetStatus from '../AssetStatus' const cx = classNames.bind(styles) @@ -16,6 +17,7 @@ export interface AssetSelectionAsset { price: string checked: boolean symbol: string + isOrderDisabled?: boolean } function Empty() { @@ -31,6 +33,7 @@ export default function AssetSelection({ assets: AssetSelectionAsset[] multiple?: boolean disabled?: boolean + isOrderDisabled?: boolean }): JSX.Element { const [searchValue, setSearchValue] = useState('') @@ -105,6 +108,7 @@ export default function AssetSelection({ {asset.symbol} | {asset.did} + (