add source code link
This commit is contained in:
parent
68b8c7ac88
commit
a82f0fa510
|
@ -39,3 +39,5 @@ copyright: Insert copyright statement here
|
|||
|
||||
ekg-host: "_env:EKG_HOST:0.0.0.0"
|
||||
ekg-port: "_env:EKG_PORT:8000"
|
||||
|
||||
source-code-uri: "https://github.com/jonschoning/espial"
|
||||
|
|
|
@ -15,7 +15,7 @@ import Effect.Class (liftEffect)
|
|||
import Halogen.Aff as HA
|
||||
import Halogen.VDom.Driver (runUI)
|
||||
import Model (Bookmark, Note, AccountSettings)
|
||||
import Web.DOM.Element (removeAttribute)
|
||||
import Web.DOM.Element (setAttribute)
|
||||
import Web.DOM.ParentNode (QuerySelector(..))
|
||||
import Web.Event.Event (Event, preventDefault)
|
||||
import Web.HTML.HTMLElement (toElement)
|
||||
|
@ -33,33 +33,36 @@ renderBookmarks renderElSelector bmarks = do
|
|||
HA.runHalogenAff do
|
||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||
void $ runUI (blist bmarks) unit el
|
||||
showFooter
|
||||
viewRendered
|
||||
|
||||
renderAddForm :: String -> Bookmark -> Effect Unit
|
||||
renderAddForm renderElSelector bmark = do
|
||||
HA.runHalogenAff do
|
||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||
runUI (addbmark bmark) unit el
|
||||
void $ runUI (addbmark bmark) unit el
|
||||
viewRendered
|
||||
|
||||
renderNotes :: String -> Array Note -> Effect Unit
|
||||
renderNotes renderElSelector notes = do
|
||||
HA.runHalogenAff do
|
||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||
void $ runUI (nlist notes) unit el
|
||||
showFooter
|
||||
viewRendered
|
||||
|
||||
renderNote :: String -> Note -> Effect Unit
|
||||
renderNote renderElSelector note = do
|
||||
HA.runHalogenAff do
|
||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||
void $ runUI (nnote note) unit el
|
||||
viewRendered
|
||||
|
||||
renderAccountSettings :: String -> AccountSettings -> Effect Unit
|
||||
renderAccountSettings renderElSelector accountSettings = do
|
||||
HA.runHalogenAff do
|
||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||
void $ runUI (usetting accountSettings) unit el
|
||||
viewRendered
|
||||
|
||||
showFooter :: Aff Unit
|
||||
showFooter = HA.selectElement (QuerySelector ".user_footer") >>= traverse_ \el ->
|
||||
liftEffect $ removeAttribute "hidden" (toElement el)
|
||||
viewRendered :: Aff Unit
|
||||
viewRendered = HA.selectElement (QuerySelector "#content") >>= traverse_ \el ->
|
||||
liftEffect $ setAttribute "view-rendered" "" (toElement el)
|
||||
|
|
|
@ -69,6 +69,7 @@ instance Yesod App where
|
|||
muser <- (fmap.fmap) snd maybeAuthPair
|
||||
mcurrentRoute <- getCurrentRoute
|
||||
void $ mapM (incrementRouteEKG req) mcurrentRoute
|
||||
let msourceCodeUri = appSourceCodeUri (appSettings master)
|
||||
pc <- widgetToPageContent $ do
|
||||
setTitle "Espial"
|
||||
addAppScripts
|
||||
|
@ -129,6 +130,7 @@ popupLayout widget = do
|
|||
master <- getYesod
|
||||
mmsg <- getMessage
|
||||
musername <- maybeAuthUsername
|
||||
let msourceCodeUri = appSourceCodeUri (appSettings master)
|
||||
pc <- widgetToPageContent $ do
|
||||
addAppScripts
|
||||
addStylesheet (StaticR css_tachyons_min_css)
|
||||
|
|
|
@ -381,7 +381,7 @@ allUserBookmarks user = do
|
|||
bmarks <- bquery
|
||||
tags <- tquery
|
||||
let tagmap = MS.fromList tags
|
||||
pure $ fmap (\bm@(Entity bid _) -> (bm, findWithDefault mempty bid tagmap)) bmarks
|
||||
pure $ (\bm@(Entity bid _) -> (bm, findWithDefault mempty bid tagmap)) <$> bmarks
|
||||
where
|
||||
bquery :: DB [Entity Bookmark]
|
||||
bquery =
|
||||
|
|
|
@ -60,6 +60,8 @@ data AppSettings = AppSettings
|
|||
-- ^ Host/interface the ekg server should bind to.
|
||||
, appEkgPort :: Maybe Int
|
||||
-- ^ Port to listen on
|
||||
, appSourceCodeUri :: Maybe Text
|
||||
-- ^ Uri to app source code
|
||||
}
|
||||
|
||||
instance FromJSON AppSettings where
|
||||
|
@ -92,6 +94,7 @@ instance FromJSON AppSettings where
|
|||
|
||||
appEkgHost <- o .:? "ekg-host"
|
||||
appEkgPort <- o .:? "ekg-port"
|
||||
appSourceCodeUri <- o .:? "source-code-uri"
|
||||
|
||||
return AppSettings {..}
|
||||
|
||||
|
|
|
@ -188,3 +188,7 @@ label {
|
|||
code, pre {
|
||||
font-size:13px;
|
||||
}
|
||||
|
||||
#content:not([view-rendered]) .view-delay {
|
||||
display: none !important
|
||||
}
|
||||
|
|
2
static/js/app.min.js
vendored
2
static/js/app.min.js
vendored
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
|
@ -9,10 +9,11 @@ $newline never
|
|||
<meta charset="UTF-8">
|
||||
|
||||
<title>#{pageTitle pc}
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<meta name="description" content="Espial is an open-source, web-based bookmarking server.">
|
||||
<meta name="robots" content="noindex, nofollow, noodp, noydir">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
$maybe sourceCodeUri <- msourceCodeUri
|
||||
<meta name="source" content="#{ sourceCodeUri }">
|
||||
|
||||
^{pageHead pc}
|
||||
|
||||
|
|
|
@ -32,3 +32,10 @@
|
|||
#{preEscapedToMarkup msg}
|
||||
|
||||
^{widget}
|
||||
|
||||
<footer .view-delay>
|
||||
<div .w-100.mw8.center>
|
||||
<div .footer-links.fr.pv2.ph3.mh1.b>
|
||||
$maybe sourceCodeUri <- msourceCodeUri
|
||||
<a .link title="Source Code" href="#{ sourceCodeUri }" target=_blank></>
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ $maybe route <- mroute
|
|||
|
||||
<div .cf>
|
||||
|
||||
<div .user_footer hidden>
|
||||
<div .user_footer.view-delay>
|
||||
^{pager}
|
||||
|
||||
$if (fromIntegral bcount >= limit) || (page > 1)
|
||||
|
|
Loading…
Reference in a new issue