From 50d5c3c2f10725af8ebb6db47c209f7000abc8f4 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sat, 20 Mar 2021 19:24:13 +0100 Subject: remove foreignkey constraint on target_page_id. toggle popups. show list of popups, if a tile link is open/close popup --- frontend/app/views/tile/components/tile.form.js | 34 ++++++++++++++++++++----- 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'frontend/app/views/tile/components/tile.form.js') diff --git a/frontend/app/views/tile/components/tile.form.js b/frontend/app/views/tile/components/tile.form.js index 728bc05..b33f7b8 100644 --- a/frontend/app/views/tile/components/tile.form.js +++ b/frontend/app/views/tile/components/tile.form.js @@ -76,6 +76,12 @@ const PAGE_LIST_TOP_OPTIONS = [ { name: -99, label: '──────────', disabled: true }, ] +const NO_POPUP = 0 +const POPUP_LIST_TOP_OPTIONS = [ + { name: NO_POPUP, label: 'Select a popup group' }, + { name: -99, label: '──────────', disabled: true }, +] + // target_page_id = Column(Integer, ForeignKey('page.id'), nullable=True) // https://s3.amazonaws.com/i.asdf.us/im/1c/gradient_gold1-SpringGreen1_1321159749.jpg @@ -181,6 +187,7 @@ class TileForm extends Component { errorFields: new Set([]), modified: false, pageList: [], + popupList: [], } constructor(props){ @@ -211,7 +218,11 @@ class TileForm extends Component { ...PAGE_LIST_TOP_OPTIONS, ...linkPages.map(page => ({ name: page.id, label: page.path })) ] - this.setState({ pageList }) + let popupList = [ + ...POPUP_LIST_TOP_OPTIONS, + ...Object.keys(page.editor.popups).map(popup_group => ({ name: popup_group, label: popup_group })) + ] + this.setState({ pageList, popupList }) if (isNew) { const newTile = newImage({ id: "new", @@ -760,7 +771,7 @@ class TileForm extends Component { renderHyperlinkForm() { const { temporaryTile } = this.props - const { pageList } = this.state + const { pageList, popupList } = this.state const isExternalLink = temporaryTile.target_page_id === EXTERNAL_LINK const isPopupLink = ( temporaryTile.target_page_id === OPEN_POPUP_LINK || @@ -785,8 +796,8 @@ class TileForm extends Component { onChange={this.handleSettingsSelect} /> -
- {isExternalLink && + {isExternalLink && ( +
- } -
+
+ )} + {(temporaryTile.target_page_id === OPEN_POPUP_LINK || temporaryTile.target_page_id === CLOSE_POPUP_LINK) && ( +
+