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-host: "_env:EKG_HOST:0.0.0.0"
|
||||||
ekg-port: "_env:EKG_PORT:8000"
|
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.Aff as HA
|
||||||
import Halogen.VDom.Driver (runUI)
|
import Halogen.VDom.Driver (runUI)
|
||||||
import Model (Bookmark, Note, AccountSettings)
|
import Model (Bookmark, Note, AccountSettings)
|
||||||
import Web.DOM.Element (removeAttribute)
|
import Web.DOM.Element (setAttribute)
|
||||||
import Web.DOM.ParentNode (QuerySelector(..))
|
import Web.DOM.ParentNode (QuerySelector(..))
|
||||||
import Web.Event.Event (Event, preventDefault)
|
import Web.Event.Event (Event, preventDefault)
|
||||||
import Web.HTML.HTMLElement (toElement)
|
import Web.HTML.HTMLElement (toElement)
|
||||||
|
@ -33,33 +33,36 @@ renderBookmarks renderElSelector bmarks = do
|
||||||
HA.runHalogenAff do
|
HA.runHalogenAff do
|
||||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||||
void $ runUI (blist bmarks) unit el
|
void $ runUI (blist bmarks) unit el
|
||||||
showFooter
|
viewRendered
|
||||||
|
|
||||||
renderAddForm :: String -> Bookmark -> Effect Unit
|
renderAddForm :: String -> Bookmark -> Effect Unit
|
||||||
renderAddForm renderElSelector bmark = do
|
renderAddForm renderElSelector bmark = do
|
||||||
HA.runHalogenAff do
|
HA.runHalogenAff do
|
||||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> 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 :: String -> Array Note -> Effect Unit
|
||||||
renderNotes renderElSelector notes = do
|
renderNotes renderElSelector notes = do
|
||||||
HA.runHalogenAff do
|
HA.runHalogenAff do
|
||||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||||
void $ runUI (nlist notes) unit el
|
void $ runUI (nlist notes) unit el
|
||||||
showFooter
|
viewRendered
|
||||||
|
|
||||||
renderNote :: String -> Note -> Effect Unit
|
renderNote :: String -> Note -> Effect Unit
|
||||||
renderNote renderElSelector note = do
|
renderNote renderElSelector note = do
|
||||||
HA.runHalogenAff do
|
HA.runHalogenAff do
|
||||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||||
void $ runUI (nnote note) unit el
|
void $ runUI (nnote note) unit el
|
||||||
|
viewRendered
|
||||||
|
|
||||||
renderAccountSettings :: String -> AccountSettings -> Effect Unit
|
renderAccountSettings :: String -> AccountSettings -> Effect Unit
|
||||||
renderAccountSettings renderElSelector accountSettings = do
|
renderAccountSettings renderElSelector accountSettings = do
|
||||||
HA.runHalogenAff do
|
HA.runHalogenAff do
|
||||||
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
HA.selectElement (QuerySelector renderElSelector) >>= traverse_ \el -> do
|
||||||
void $ runUI (usetting accountSettings) unit el
|
void $ runUI (usetting accountSettings) unit el
|
||||||
|
viewRendered
|
||||||
|
|
||||||
showFooter :: Aff Unit
|
viewRendered :: Aff Unit
|
||||||
showFooter = HA.selectElement (QuerySelector ".user_footer") >>= traverse_ \el ->
|
viewRendered = HA.selectElement (QuerySelector "#content") >>= traverse_ \el ->
|
||||||
liftEffect $ removeAttribute "hidden" (toElement el)
|
liftEffect $ setAttribute "view-rendered" "" (toElement el)
|
||||||
|
|
|
@ -69,6 +69,7 @@ instance Yesod App where
|
||||||
muser <- (fmap.fmap) snd maybeAuthPair
|
muser <- (fmap.fmap) snd maybeAuthPair
|
||||||
mcurrentRoute <- getCurrentRoute
|
mcurrentRoute <- getCurrentRoute
|
||||||
void $ mapM (incrementRouteEKG req) mcurrentRoute
|
void $ mapM (incrementRouteEKG req) mcurrentRoute
|
||||||
|
let msourceCodeUri = appSourceCodeUri (appSettings master)
|
||||||
pc <- widgetToPageContent $ do
|
pc <- widgetToPageContent $ do
|
||||||
setTitle "Espial"
|
setTitle "Espial"
|
||||||
addAppScripts
|
addAppScripts
|
||||||
|
@ -129,6 +130,7 @@ popupLayout widget = do
|
||||||
master <- getYesod
|
master <- getYesod
|
||||||
mmsg <- getMessage
|
mmsg <- getMessage
|
||||||
musername <- maybeAuthUsername
|
musername <- maybeAuthUsername
|
||||||
|
let msourceCodeUri = appSourceCodeUri (appSettings master)
|
||||||
pc <- widgetToPageContent $ do
|
pc <- widgetToPageContent $ do
|
||||||
addAppScripts
|
addAppScripts
|
||||||
addStylesheet (StaticR css_tachyons_min_css)
|
addStylesheet (StaticR css_tachyons_min_css)
|
||||||
|
|
|
@ -381,7 +381,7 @@ allUserBookmarks user = do
|
||||||
bmarks <- bquery
|
bmarks <- bquery
|
||||||
tags <- tquery
|
tags <- tquery
|
||||||
let tagmap = MS.fromList tags
|
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
|
where
|
||||||
bquery :: DB [Entity Bookmark]
|
bquery :: DB [Entity Bookmark]
|
||||||
bquery =
|
bquery =
|
||||||
|
|
|
@ -60,6 +60,8 @@ data AppSettings = AppSettings
|
||||||
-- ^ Host/interface the ekg server should bind to.
|
-- ^ Host/interface the ekg server should bind to.
|
||||||
, appEkgPort :: Maybe Int
|
, appEkgPort :: Maybe Int
|
||||||
-- ^ Port to listen on
|
-- ^ Port to listen on
|
||||||
|
, appSourceCodeUri :: Maybe Text
|
||||||
|
-- ^ Uri to app source code
|
||||||
}
|
}
|
||||||
|
|
||||||
instance FromJSON AppSettings where
|
instance FromJSON AppSettings where
|
||||||
|
@ -92,6 +94,7 @@ instance FromJSON AppSettings where
|
||||||
|
|
||||||
appEkgHost <- o .:? "ekg-host"
|
appEkgHost <- o .:? "ekg-host"
|
||||||
appEkgPort <- o .:? "ekg-port"
|
appEkgPort <- o .:? "ekg-port"
|
||||||
|
appSourceCodeUri <- o .:? "source-code-uri"
|
||||||
|
|
||||||
return AppSettings {..}
|
return AppSettings {..}
|
||||||
|
|
||||||
|
|
|
@ -188,3 +188,7 @@ label {
|
||||||
code, pre {
|
code, pre {
|
||||||
font-size:13px;
|
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">
|
<meta charset="UTF-8">
|
||||||
|
|
||||||
<title>#{pageTitle pc}
|
<title>#{pageTitle pc}
|
||||||
<meta name="description" content="">
|
<meta name="description" content="Espial is an open-source, web-based bookmarking server.">
|
||||||
<meta name="author" content="">
|
<meta name="robots" content="noindex, nofollow, noodp, noydir">
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
$maybe sourceCodeUri <- msourceCodeUri
|
||||||
|
<meta name="source" content="#{ sourceCodeUri }">
|
||||||
|
|
||||||
^{pageHead pc}
|
^{pageHead pc}
|
||||||
|
|
||||||
|
|
|
@ -32,3 +32,10 @@
|
||||||
#{preEscapedToMarkup msg}
|
#{preEscapedToMarkup msg}
|
||||||
|
|
||||||
^{widget}
|
^{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 .cf>
|
||||||
|
|
||||||
<div .user_footer hidden>
|
<div .user_footer.view-delay>
|
||||||
^{pager}
|
^{pager}
|
||||||
|
|
||||||
$if (fromIntegral bcount >= limit) || (page > 1)
|
$if (fromIntegral bcount >= limit) || (page > 1)
|
||||||
|
|
Loading…
Reference in a new issue