Compare commits
2 commits
73ad2f0eb3
...
1931098ee9
Author | SHA1 | Date | |
---|---|---|---|
1931098ee9 | |||
f8fa5a005a |
2 changed files with 64 additions and 15 deletions
|
@ -50,7 +50,13 @@ import Zenith.Core
|
|||
import Zenith.DB
|
||||
import Zenith.GUI.Theme
|
||||
import Zenith.Scanner (processTx, updateConfs)
|
||||
import Zenith.Types hiding (ZcashAddress(..))
|
||||
import Zenith.Types
|
||||
( ZcashNetDB
|
||||
)
|
||||
import Zenith.Types
|
||||
hiding
|
||||
( ZcashAddress(..)
|
||||
)
|
||||
import Zenith.Utils
|
||||
( displayAmount
|
||||
, isRecipientValid
|
||||
|
@ -61,6 +67,8 @@ import Zenith.Utils
|
|||
, validateAddressBool
|
||||
, isValidString
|
||||
, padWithZero
|
||||
, getZenithPath
|
||||
, isEmpty
|
||||
)
|
||||
|
||||
data AppEvent
|
||||
|
@ -115,6 +123,9 @@ data AppEvent
|
|||
| CloseMsgAB
|
||||
| CheckValidAddress !T.Text
|
||||
| CheckValidDescrip !T.Text
|
||||
| SaveNewABEntry
|
||||
| ShowMessage !T.Text
|
||||
|
||||
deriving (Eq, Show)
|
||||
|
||||
data AppModel = AppModel
|
||||
|
@ -807,7 +818,7 @@ buildUI wenv model = widgetTree
|
|||
(hstack
|
||||
[
|
||||
label
|
||||
(T.pack $
|
||||
(T.pack $
|
||||
padWithZero 3 $
|
||||
show (fromSqlKey (entityKey ab))) `styleBasic` [textFont "Bold"]
|
||||
, spacer
|
||||
|
@ -847,9 +858,11 @@ buildUI wenv model = widgetTree
|
|||
]
|
||||
]
|
||||
, spacer
|
||||
, hstack [
|
||||
button "Save" NotImplemented `nodeEnabled`
|
||||
, hstack
|
||||
[ button "Save" SaveNewABEntry `nodeEnabled`
|
||||
((model ^. abAddressValid) && (model ^. abDescripValid))
|
||||
, spacer
|
||||
, button "Cancel" CloseNewAdrBook `nodeEnabled` True
|
||||
]
|
||||
]
|
||||
msgAdrBookOverlay=
|
||||
|
@ -1175,14 +1188,22 @@ handleEvent wenv node model evt =
|
|||
(i < (fromIntegral (model ^. balance) / 100000000.0))
|
||||
]
|
||||
ShowTxId tx -> [Model $ model & showId ?~ tx & modalMsg .~ Nothing]
|
||||
-- |
|
||||
-- | Address Book Events
|
||||
-- |
|
||||
CheckValidAddress a -> [Model $ model & abAddressValid .~ isRecipientValid a]
|
||||
CheckValidDescrip a -> [Model $ model & abDescripValid .~ isValidString a]
|
||||
ShowAdrBook -> [Model $ model & showAdrBook .~ True & menuPopup .~ False]
|
||||
CloseAdrBook -> [Model $ model & showAdrBook .~ False]
|
||||
NewAdrBkEntry -> [Model $ model & newAdrBkEntry .~ True & menuPopup .~ False]
|
||||
CloseNewAdrBook -> [Model $ model & newAdrBkEntry .~ False]
|
||||
CloseNewAdrBook -> do
|
||||
[Model $ model & newAdrBkEntry .~ False]
|
||||
SaveNewABEntry ->
|
||||
[ Task $ saveAddrBook (model ^. configuration) (ZcashNetDB (model ^. network)) (model ^. abdescrip) (model ^. abaddress)
|
||||
]
|
||||
NotImplemented -> [Model $ model & msgAB ?~ "Function not implemented..." & menuPopup .~ False]
|
||||
CloseMsgAB -> [Model $ model & msgAB .~ Nothing & inError .~ False]
|
||||
ShowMessage a -> [Model $ model & msgAB ?~ a & menuPopup .~ False]
|
||||
where
|
||||
currentWallet =
|
||||
if null (model ^. wallets)
|
||||
|
@ -1270,6 +1291,36 @@ handleEvent wenv node model evt =
|
|||
Just _ -> do
|
||||
wL <- getWallets pool (model ^. network)
|
||||
return $ LoadWallets wL
|
||||
-- |
|
||||
-- | Address Book -> save new entry into database
|
||||
-- |
|
||||
saveAddrBook :: Config -> ZcashNetDB -> T.Text -> T.Text -> IO AppEvent
|
||||
saveAddrBook config n d a = do
|
||||
let dbPath = c_dbPath config
|
||||
pool <- runNoLoggingT $ initPool dbPath
|
||||
res <-
|
||||
liftIO $
|
||||
saveAdrsInAdrBook pool $
|
||||
AddressBook
|
||||
n
|
||||
d
|
||||
a
|
||||
case res of
|
||||
Nothing -> return $ ShowMessage "Error saving the AddressBook entry..."
|
||||
Just _ -> loadABList config (model ^. network)
|
||||
-- |
|
||||
-- |
|
||||
-- |
|
||||
loadABList :: Config -> ZcashNet -> IO AppEvent
|
||||
loadABList config n = do
|
||||
let dbPath = c_dbPath config
|
||||
pool <- runNoLoggingT $ initPool dbPath
|
||||
abList <- getAdrBook pool n
|
||||
if isEmpty abList
|
||||
then return $ ShowMessage "Error loading the AddressBook list..."
|
||||
else do
|
||||
model & abaddressList ?~ abList
|
||||
return $ ShowMessage "AddressBook loaded successfully!!!"
|
||||
|
||||
scanZebra :: T.Text -> T.Text -> Int -> (AppEvent -> IO ()) -> IO ()
|
||||
scanZebra dbPath zHost zPort sendMsg = do
|
||||
|
@ -1436,9 +1487,7 @@ runZenithGUI config = do
|
|||
Nothing
|
||||
True
|
||||
bal
|
||||
(if unconfBal == 0
|
||||
then Nothing
|
||||
else Just unconfBal)
|
||||
(if unconfBal == 0 then Nothing else Just unconfBal)
|
||||
Orchard
|
||||
qr
|
||||
False
|
||||
|
@ -1449,9 +1498,7 @@ runZenithGUI config = do
|
|||
Nothing
|
||||
""
|
||||
""
|
||||
(SaveAddress (if not (null accList)
|
||||
then Just (head accList)
|
||||
else Nothing ) )
|
||||
(SaveAddress (if not (null accList) then Just (head accList) else Nothing ) )
|
||||
False
|
||||
False
|
||||
Nothing
|
||||
|
@ -1465,7 +1512,7 @@ runZenithGUI config = do
|
|||
False
|
||||
False
|
||||
Nothing
|
||||
""
|
||||
hD
|
||||
False
|
||||
False
|
||||
""
|
||||
|
@ -1474,7 +1521,6 @@ runZenithGUI config = do
|
|||
False
|
||||
abList
|
||||
Nothing
|
||||
-- hD
|
||||
startApp model handleEvent buildUI (params hD)
|
||||
Left e -> do
|
||||
initDb dbFilePath
|
||||
|
@ -1520,7 +1566,7 @@ runZenithGUI config = do
|
|||
False
|
||||
False
|
||||
Nothing
|
||||
""
|
||||
hD
|
||||
False
|
||||
False
|
||||
""
|
||||
|
@ -1529,7 +1575,6 @@ runZenithGUI config = do
|
|||
False
|
||||
[]
|
||||
Nothing
|
||||
-- hD
|
||||
startApp model handleEvent buildUI (params hD)
|
||||
where
|
||||
params hd =
|
||||
|
|
|
@ -157,4 +157,8 @@ padWithZero :: Int -> String -> String
|
|||
padWithZero n s
|
||||
| (length s) >= n = s
|
||||
| otherwise = padWithZero n ("0" ++ s)
|
||||
|
||||
isEmpty :: [a] -> Bool
|
||||
isEmpty [] = True
|
||||
isEmpty _ = False
|
||||
|
||||
|
|
Loading…
Reference in a new issue