summaryrefslogtreecommitdiff
path: root/Handler
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2017-03-15 21:39:15 +0100
committerGregor Kleen <gkleen@yggdrasil.li>2017-03-15 21:39:15 +0100
commit3d828feba67f21ae62d1e6eb598a22ffaebf1174 (patch)
treef81437dab5090906362404b5df61aa5ab1f5203a /Handler
parent299731a0cef7462dd8c17bde7ba1a4aeb6f211cd (diff)
downloadbar-3d828feba67f21ae62d1e6eb598a22ffaebf1174.tar
bar-3d828feba67f21ae62d1e6eb598a22ffaebf1174.tar.gz
bar-3d828feba67f21ae62d1e6eb598a22ffaebf1174.tar.bz2
bar-3d828feba67f21ae62d1e6eb598a22ffaebf1174.tar.xz
bar-3d828feba67f21ae62d1e6eb598a22ffaebf1174.zip
Better ids & warnings
Diffstat (limited to 'Handler')
-rw-r--r--Handler/Common.hs12
-rw-r--r--Handler/InventoryListing.hs15
-rw-r--r--Handler/List.hs2
3 files changed, 23 insertions, 6 deletions
diff --git a/Handler/Common.hs b/Handler/Common.hs
index aacab92..c2788e8 100644
--- a/Handler/Common.hs
+++ b/Handler/Common.hs
@@ -14,11 +14,12 @@ module Handler.Common
14 , humanId 14 , humanId
15 ) where 15 ) where
16 16
17import Import 17import Import hiding ((\\))
18 18
19import Data.Unique 19import Data.Unique
20 20
21import qualified Data.Text as Text 21import qualified Data.Text as Text
22import qualified Data.ByteString.Char8 as CBS
22 23
23import Data.Set (Set) 24import Data.Set (Set)
24import qualified Data.Set as Set 25import qualified Data.Set as Set
@@ -29,11 +30,14 @@ import Handler.Common.Types
29 30
30import Text.Julius (RawJS(..)) 31import Text.Julius (RawJS(..))
31 32
32import qualified Codec.Crockford as Crockford (encode)
33import Database.Persist.Sql (fromSqlKey) 33import Database.Persist.Sql (fromSqlKey)
34import qualified Web.Hashids as HID
35import Data.List ((\\))
34 36
35humanId :: ItemId -> String 37humanId :: ItemId -> Text
36humanId = Crockford.encode . fromSqlKey 38humanId = Text.pack . CBS.unpack . HID.encode ctx . fromIntegral . fromSqlKey
39 where
40 ctx = HID.createHashidsContext "ItemId" 3 $ (['0'..'9'] ++ ['a'..'z']) \\ ['0', 'l', 'v', '2']
37 41
38dayFormat :: Day -> String 42dayFormat :: Day -> String
39dayFormat = formatTime defaultTimeLocale "%e. %b %y" 43dayFormat = formatTime defaultTimeLocale "%e. %b %y"
diff --git a/Handler/InventoryListing.hs b/Handler/InventoryListing.hs
index d5252a1..d87512a 100644
--- a/Handler/InventoryListing.hs
+++ b/Handler/InventoryListing.hs
@@ -12,7 +12,20 @@ postInventoryListingR = do
12 FormSuccess (Item{..} `WithType` t) -> runDB $ do 12 FormSuccess (Item{..} `WithType` t) -> runDB $ do
13 upsertBy (UniqueKind itemNormKind) (Kind itemNormKind t) [ KindType =. t ] 13 upsertBy (UniqueKind itemNormKind) (Kind itemNormKind t) [ KindType =. t ]
14 newItem <- insert Item{..} 14 newItem <- insert Item{..}
15 addMessage "insertSuccess" [hamlet|Inserted new item as #{humanId newItem}|] 15 otherItems <- selectKeysList [ ItemNormKind ==. itemNormKind, ItemId !=. newItem ] []
16 when (not $ null otherItems) . addMessage "insertAmbiguous" $
17 [shamlet|
18 $newline never
19 There are other items of the same kind.
20 <ul>
21 $forall other <- otherItems
22 <li .itemId>#{humanId other}
23 |]
24 addMessage "insertSuccess" [shamlet|
25 $newline never
26 Inserted new item as #
27 <span .itemId>#{humanId newItem}
28 |]
16 FormFailure errors -> mapM_ (addMessage "formError" . toHtml) errors 29 FormFailure errors -> mapM_ (addMessage "formError" . toHtml) errors
17 _ -> return () 30 _ -> return ()
18 31
diff --git a/Handler/List.hs b/Handler/List.hs
index 70f323a..21b735b 100644
--- a/Handler/List.hs
+++ b/Handler/List.hs
@@ -50,7 +50,7 @@ postListR = do
50 case printResult of 50 case printResult of
51 FormSuccess pId -> do 51 FormSuccess pId -> do
52 (JobId jId) <- jobCreate (Just pId) $ mkPrintout list 52 (JobId jId) <- jobCreate (Just pId) $ mkPrintout list
53 addMessage "printSuccess" . toHtml $ "List is printing as job #" <> tshow jId 53 addMessage "printSuccess" [shamlet|List is printing as job ##{jId}|]
54 FormFailure errors -> mapM_ (addMessage "formError" . toHtml) errors 54 FormFailure errors -> mapM_ (addMessage "formError" . toHtml) errors
55 _ -> return () 55 _ -> return ()
56 56