diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f3dabe..3aa65d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. Dates are d Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +### [3.0.3](https://github.com/eea/volto-tableau/compare/3.0.2...3.0.3) - 17 January 2023 + +#### :hammer_and_wrench: Others + +- Add volto-embed and volto-block-style addons [dana-cfc4 - [`e557a05`](https://github.com/eea/volto-tableau/commit/e557a0561a46fa7de139d733e72dc17affa8f5e1)] +- Fix default tableau version, add privacy protection, add style wrapper, add title for tableau edit [dana-cfc4 - [`9859224`](https://github.com/eea/volto-tableau/commit/98592247bd58895bd253411cfce981e639093e85)] ### [3.0.2](https://github.com/eea/volto-tableau/compare/3.0.1...3.0.2) - 13 January 2023 #### :hammer_and_wrench: Others diff --git a/package.json b/package.json index 435a7af..6c79c1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eeacms/volto-tableau", - "version": "3.0.2", + "version": "3.0.3", "description": "@eeacms/volto-tableau: Volto add-on", "main": "src/index.js", "author": "European Environment Agency: IDM2 A-Team", @@ -17,10 +17,14 @@ "url": "git@github.com:eea/volto-tableau.git" }, "addons": [ - "@eeacms/volto-resize-helper" + "@eeacms/volto-resize-helper", + "@eeacms/volto-embed", + "@eeacms/volto-block-style" ], "dependencies": { - "@eeacms/volto-resize-helper": "^0.2.4" + "@eeacms/volto-resize-helper": "^0.2.4", + "@eeacms/volto-embed": "5.0.0", + "@eeacms/volto-block-style": "4.1.0" }, "devDependencies": { "@cypress/code-coverage": "^3.9.5", diff --git a/src/Blocks/EmbedEEATableauBlock/Edit.jsx b/src/Blocks/EmbedEEATableauBlock/Edit.jsx index 320cc52..be6df3e 100644 --- a/src/Blocks/EmbedEEATableauBlock/Edit.jsx +++ b/src/Blocks/EmbedEEATableauBlock/Edit.jsx @@ -4,11 +4,16 @@ import { SidebarPortal } from '@plone/volto/components'; import { getContent } from '@plone/volto/actions'; import View from './View'; import Schema from './schema'; + +import { BlockStyleWrapperEdit } from '@eeacms/volto-block-style/BlockStyleWrapper'; +import cx from 'classnames'; + import { connect } from 'react-redux'; import { compose } from 'redux'; const Edit = (props) => { - const { data, block, onChangeBlock, id } = props; + const { block, onChangeBlock, id } = props; + const data = React.useMemo(() => props.data || {}, [props.data]); const schema = React.useMemo(() => Schema(props), [props]); React.useEffect(() => { @@ -21,8 +26,21 @@ const Edit = (props) => { }, [block, data, onChangeBlock]); return ( - <> - + + { formData={data} /> - + ); }; @@ -51,4 +69,4 @@ export default compose( getContent, }, ), -)(Edit); +)(React.memo(Edit)); diff --git a/src/Blocks/EmbedEEATableauBlock/View.jsx b/src/Blocks/EmbedEEATableauBlock/View.jsx index 08defed..c3f8862 100644 --- a/src/Blocks/EmbedEEATableauBlock/View.jsx +++ b/src/Blocks/EmbedEEATableauBlock/View.jsx @@ -1,6 +1,10 @@ import React from 'react'; import ConnectedTableau from '../../ConnectedTableau/ConnectedTableau'; import { Sources } from '../../Sources'; +import { PrivacyProtection } from '@eeacms/volto-embed'; + +import { StyleWrapperView } from '@eeacms/volto-block-style/StyleWrapper'; +import cx from 'classnames'; import { getContent } from '@plone/volto/actions'; @@ -8,7 +12,8 @@ import { connect } from 'react-redux'; import { compose } from 'redux'; const View = (props) => { - const { data, data_provenance, tableau_visualization } = props || {}; + const { data_provenance, tableau_visualization } = props || {}; + const data = React.useMemo(() => props.data || {}, [props.data]); const { vis_url = '' } = data; const show_sources = data?.show_sources ?? false; @@ -20,25 +25,52 @@ const View = (props) => { }, [vis_url]); return ( - <> - {data?.vis_url ? ( - <> - - {show_sources && - data_provenance && - data_provenance?.data?.data_provenance && - tableau_visualization ? ( - - ) : show_sources ? ( -
Data provenance is not set in the visualization
- ) : ( - '' - )} - - ) : ( -
Please select a visualization from block editor.
- )} - + + + {data?.vis_url ? ( + <> +
+ {props.mode === 'edit' ? ( +
+

+ == Tableau{' '} + {tableau_visualization?.general?.version || '2.8.0'} loaded + == +

+
+ ) : ( + '' + )} + +
+ + {show_sources && + data_provenance && + data_provenance?.data?.data_provenance && + tableau_visualization ? ( + + ) : show_sources ? ( +
Data provenance is not set in the visualization
+ ) : ( + '' + )} + + ) : ( +
Please select a visualization from block editor.
+ )} +
+
); }; @@ -53,4 +85,4 @@ export default compose( getContent, }, ), -)(View); +)(React.memo(View)); diff --git a/src/ConnectedTableau/ConnectedTableau.jsx b/src/ConnectedTableau/ConnectedTableau.jsx index f5f581e..1986488 100644 --- a/src/ConnectedTableau/ConnectedTableau.jsx +++ b/src/ConnectedTableau/ConnectedTableau.jsx @@ -14,6 +14,7 @@ const ConnectedTableau = (props) => { data={{ ...props?.general, ...props?.options, ...props?.extraOptions }} url={props?.general?.url} version={props?.general?.version} + {...props} /> ); diff --git a/src/Tableau/View.jsx b/src/Tableau/View.jsx index 80cc48e..47568ac 100644 --- a/src/Tableau/View.jsx +++ b/src/Tableau/View.jsx @@ -212,7 +212,11 @@ const Tableau = (props) => { '' ) : (
- Loading Tableau v{version} + + {mode === 'edit' + ? 'Loading...' + : `Loading Tableau v${version}`} +
)} diff --git a/src/TableauBlock/View.jsx b/src/TableauBlock/View.jsx index f9d4326..e88a141 100644 --- a/src/TableauBlock/View.jsx +++ b/src/TableauBlock/View.jsx @@ -69,7 +69,7 @@ const View = (props) => {
{props.mode === 'edit' ? (
-

== Tableau {version} ==

+

== Tableau {version} loaded ==

{!props.data.url ?

URL required

: ''} {error ?

{error}

: ''}
diff --git a/src/Widgets/VisualizationWidget.jsx b/src/Widgets/VisualizationWidget.jsx index 0148b89..5f16d07 100644 --- a/src/Widgets/VisualizationWidget.jsx +++ b/src/Widgets/VisualizationWidget.jsx @@ -53,6 +53,14 @@ const VisualizationWidget = (props) => { let schema = Schema(config); React.useEffect(() => { + if (!intValue?.general || !intValue?.general?.version) { + setIntValue({ + ...intValue, + general: { + version: '2.8.0', + }, + }); + } if (!intValue?.options) { setIntValue({ ...intValue, @@ -111,18 +119,17 @@ const VisualizationWidget = (props) => { tableauError ? ( ) : ( - '' +
+ +
)} -
- -
@@ -144,15 +151,17 @@ const VisualizationWidget = (props) => { tableauError ? ( ) : ( - '' + )} - - ); }; -export default VisualizationWidget; +export default React.memo(VisualizationWidget); diff --git a/src/less/tableau.less b/src/less/tableau.less index 80f143a..d5c0905 100644 --- a/src/less/tableau.less +++ b/src/less/tableau.less @@ -9,7 +9,11 @@ .tableau-block { .tableau-info { h3.tableau-version { - margin-right: 0.5rem; + display: flex; + height: 75px; + align-items: center; + justify-content: center; + background-color: #f4f4f1; color: @tableauTitleColor; }