module IHP.IDE.Data.View.EditValue where
import IHP.ViewPrelude
import IHP.IDE.ToolServer.Types
import IHP.IDE.Data.View.ShowDatabase
import IHP.IDE.Data.View.Layout
import Data.Maybe
data EditValueView = EditValueView
{ tableNames :: [Text]
, tableName :: Text
, rows :: [[DynamicField]]
, targetName :: Text
, targetId :: Text
}
instance View EditValueView where
html EditValueView { .. } = [hsx|
{headerNav}
{renderTableSelector tableNames tableName}
{renderRows rows tableBody tableName}
{script}
|]
where
tableBody = [hsx|{forEach rows renderRow}|]
renderRow fields = [hsx| contextMenuId <> "');"}>{forEach fields (renderField id)}
|]
where
contextMenuId = "context-menu-column-" <> tshow id
id = (cs (fromMaybe "" ((fromJust (headMay fields)).fieldValue)))
renderField id DynamicField { .. } | (tshow targetName) == (tshow fieldName) && targetId == id = [hsx|
| |]
renderField id DynamicField { .. } | fieldName == "id" = [hsx|{renderId (sqlValueToText fieldValue)} | |]
renderField id DynamicField { .. } = [hsx|{sqlValueToText fieldValue} | |]
script = preEscapedToHtml [plain|
|]