summaryrefslogtreecommitdiff
path: root/frontend/app/views/tile/components/tile.form.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-03-20 19:24:13 +0100
committerJules Laplace <julescarbon@gmail.com>2021-03-20 19:24:13 +0100
commit50d5c3c2f10725af8ebb6db47c209f7000abc8f4 (patch)
tree3324d485ef7684189c50cfeb6e05ee0c7397601f /frontend/app/views/tile/components/tile.form.js
parentd9ee2c97882ea5ace9c28ac6560ffa240daf9345 (diff)
remove foreignkey constraint on target_page_id. toggle popups. show list of popups, if a tile link is open/close popup
Diffstat (limited to 'frontend/app/views/tile/components/tile.form.js')
-rw-r--r--frontend/app/views/tile/components/tile.form.js34
1 files changed, 28 insertions, 6 deletions
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}
/>
</div>
- <div>
- {isExternalLink &&
+ {isExternalLink && (
+ <div>
<TextInput
title=""
placeholder='http://'
@@ -795,8 +806,19 @@ class TileForm extends Component {
onChange={this.handleSettingsChange}
autoComplete="off"
/>
- }
- </div>
+ </div>
+ )}
+ {(temporaryTile.target_page_id === OPEN_POPUP_LINK || temporaryTile.target_page_id === CLOSE_POPUP_LINK) && (
+ <div>
+ <Select
+ title="Popup"
+ name='target_popup'
+ selected={temporaryTile.settings.target_popup || NO_POPUP}
+ options={popupList}
+ onChange={this.handleSettingsSelect}
+ />
+ </div>
+ )}
</div>
)
}