module IHP.IDE.SchemaDesigner.View.Columns.New where import IHP.ViewPrelude import IHP.IDE.SchemaDesigner.Types import IHP.IDE.ToolServer.Types import IHP.IDE.ToolServer.Routes () import IHP.IDE.SchemaDesigner.View.Layout import IHP.IDE.SchemaDesigner.View.Columns.Edit (typeSelector) import Text.Countable (singularize) data NewColumnView = NewColumnView { statements :: [Statement] , tableName :: Text , tableNames :: [Text] , enumNames :: [Text] } instance View NewColumnView where html NewColumnView { .. } = [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| {renderFlashMessages}
{typeSelector Nothing enumNames}
{generateReferenceCheckboxes}
{defaultSelector}
|] where generateReferenceCheckboxes = forEach tableNames checkbox where checkbox tableName = [hsx|
|] defaultSelector = [hsx| |] modalFooter = mempty modalCloseUrl = pathTo ShowTableAction { tableName } modalTitle = "New Column" modal = Modal { modalContent, modalFooter, modalCloseUrl, modalTitle }