diff of d12660a5a3fe15cb19703bda8c6552d4aa749848
d12660a5a3fe15cb19703bda8c6552d4aa749848
diff --git a/elm-frontti/src/FeedView.elm b/elm-frontti/src/FeedView.elm
index 469adb0..074dc85 100644
--- a/elm-frontti/src/FeedView.elm
+++ b/elm-frontti/src/FeedView.elm
@@ -16,27 +16,54 @@ import Tab exposing (tabs)
import Random
feed_item time_format zone item =
- li [] [ h1 [] [ text item.title]
- , h4 [] [ text (formatDateTime time_format zone item.pubdate)]
+ li [] [ h1 [] [ a [ href item.link ] [ text item.title] ]
+ , (if item.title == "" then
+ h4 [] [ a [ href item.link] [ text (formatDateTime time_format zone item.pubdate) ]]
+ else
+ h4 [] [ text (formatDateTime time_format zone item.pubdate)])
, div [ class "feed-author"] [ text <| "By " ++ item.author]
, div [ class "feed-item"
, dangerouslySetInnerHTML item.description] []]
+correctlySortedFeedItemList settings zone items =
+ ( items
+ |> List.sortBy (Time.posixToMillis << .pubdate)
+ |> List.reverse
+ |> List.map (feed_item settings.time_format zone))
+
+-- fs = feeds, elm sucks balls at shadowing
perFeedView settings zone fs new_feed_state =
- div []
- [ ul [ class "feed-list" ]
- (List.map (\feed ->
- li [ class "feed" ]
- [ header [] [ text feed.name ]
- , a [ href feed.url ] [ text feed.url ]
- , ul [ class "feed-items" ]
- (feed.items
- |> List.sortBy (Time.posixToMillis << .pubdate)
- |> List.reverse
- |> List.map (feed_item settings.time_format zone))]) fs)
- , h3 [] [ text "Add new feed?"]
- , div []
- [ label [ for "name" ] [ text "Feed name" ]
+ ul [ class "feed-list" ]
+ (List.map (\feed ->
+ li [ class "feed" ]
+ [ header [] [ text feed.name ]
+ , a [ href feed.url ] [ text feed.url ]
+ , ul [ class "feed-items" ]
+ (correctlySortedFeedItemList settings zone feed.items)]) fs)
+
+singleFeedView settings zone fs =
+ let feed = List.concatMap .items fs in
+ ul [ class "feed-items" ]
+ (correctlySortedFeedItemList settings zone feed)
+
+
+readerState_str state =
+ case state of
+ PerFeed -> "PerFeed"
+ SingleFeed -> "SingleFeed"
+
+feeds feedReaderState settings zone fs new_feed =
+ let new_feed_state = Maybe.withDefault (NewFeed "" "") new_feed
+ in
+ div [ id "feeds" ]
+ [ tabs "rss-feed-tab" (readerState_str feedReaderState)
+ (Dict.fromList [ ("PerFeed", "Group by feed")
+ , ("SingleFeed", "Show all in a feed")])
+ (Dict.fromList [ ("PerFeed", perFeedView settings zone fs new_feed_state)
+ , ("SingleFeed", singleFeedView settings zone fs)])
+
+ , h3 [] [ text "Add new feed?"]
+ , label [ for "name" ] [ text "Feed name" ]
, input [ id "name"
, onInput SetFeedName
, value new_feed_state.name
@@ -47,18 +74,4 @@ perFeedView settings zone fs new_feed_state =
, onInput SetFeedUrl
, value new_feed_state.url
, type_ "text"] []
- , murja_button [ onClick (AddFeed new_feed_state)] [ text "Add a feed"]]]
-
-readerState_str state =
- case state of
- PerFeed -> "PerFeed"
- SingleFeed -> "SingleFeed"
-
-feeds feedReaderState settings zone fs new_feed =
- let new_feed_state = Maybe.withDefault (NewFeed "" "") new_feed
- in
- tabs "rss-feed-tab" (readerState_str feedReaderState)
- (Dict.fromList [ ("PerFeed", "Group by feed")
- , ("SingleFeed", "Show all in a feed")])
- (Dict.fromList [ ("PerFeed", perFeedView settings zone fs new_feed_state)
- , ("SingleFeed", div [] [ text "NotImplemented" ])])
+ , murja_button [ onClick (AddFeed new_feed_state)] [ text "Add a feed"]]
diff --git a/resources/css/murja.css b/resources/css/murja.css
index 5f1d7bc..d9eda7f 100644
--- a/resources/css/murja.css
+++ b/resources/css/murja.css
@@ -335,6 +335,10 @@ header {
border-bottom: 2px solid #00F;
}
+#feeds {
+ width: 100%;
+}
+
@media only screen and (max-device-width:480px)
{
body {