module IHP.IDE.SchemaDesigner.View.Columns.EditForeignKey where
import IHP.ViewPrelude
import IHP.IDE.SchemaDesigner.Types
import IHP.IDE.ToolServer.Types
import IHP.IDE.SchemaDesigner.View.Layout
data EditForeignKeyView = EditForeignKeyView
{ statements :: [Statement]
, tableName :: Text
, columnName :: Text
, tableNames :: [Text]
, referenceTable :: Text
, constraintName :: Text
, onDelete :: Text
}
instance View EditForeignKeyView where
html EditForeignKeyView { .. } = [hsx|
{renderObjectSelector (zip [0..] statements) (Just tableName)}
{renderColumnSelector tableName (zip [0..] columns) statements}
{migrationStatus}
{renderModal modal}
|]
where
table = findStatementByName tableName statements
columns = maybe [] ((.columns) . unsafeGetCreateTable) table
modalContent = [hsx|
{select2}
|]
where
renderTableNameSelector tableName = if tableName == referenceTable
then preEscapedToHtml [plain||]
else preEscapedToHtml [plain||]
onDeleteSelector option = if option == onDelete
then preEscapedToHtml [plain||]
else preEscapedToHtml [plain||]
select2 = preEscapedToHtml [plain|
|]
modalFooter = mempty
modalCloseUrl = pathTo ShowTableAction { tableName }
modalTitle = "Edit Foreign Key Constraint"
modal = Modal { modalContent, modalFooter, modalCloseUrl, modalTitle }