diff --git a/Application.hs b/Application.hs
index e3e25b5..ea65e10 100644
--- a/Application.hs
+++ b/Application.hs
@@ -45,6 +45,7 @@ import Handler.Admin
import Handler.AdminProfileSettings
import Handler.AdminAlbumSettings
import Handler.AdminMediumSettings
+import Handler.Tag
-- This line actually creates our YesodDispatch instance. It is the second half
-- of the call to mkYesodData which occurs in Foundation.hs. Please see the
diff --git a/Handler/Tag.hs b/Handler/Tag.hs
new file mode 100644
index 0000000..962fd7b
--- /dev/null
+++ b/Handler/Tag.hs
@@ -0,0 +1,16 @@
+module Handler.Tag where
+
+import Import
+import Data.Maybe
+
+getTagR :: Text -> Handler Html
+getTagR tag = do
+ tempMedia <- runDB $ selectList [] [Desc MediumTitle]
+ almostMedia <- mapM (\a -> do
+ case tag `elem` (mediumTags $ entityVal a) of
+ True -> return (Just a)
+ False -> return Nothing
+ ) tempMedia
+ media <- return $ removeItem Nothing almostMedia
+ defaultLayout $ do
+ $(widgetFile "tagMedia")
diff --git a/config/routes b/config/routes
index fae32bc..cfb8ade 100644
--- a/config/routes
+++ b/config/routes
@@ -36,3 +36,4 @@
/admin/medium AdminMediaR GET
/admin/medium/#MediumId AdminMediumSettingsR GET POST
/admin/meidum/#MediumId/delete AdminMediumDeleteR GET
+/tag/#Text TagR GET
diff --git a/eidolon.cabal b/eidolon.cabal
index 31d7d1d..489cfe7 100644
--- a/eidolon.cabal
+++ b/eidolon.cabal
@@ -38,6 +38,7 @@ library
Handler.AdminProfileSettings
Handler.AdminAlbumSettings
Handler.AdminMediumSettings
+ Handler.Tag
if flag(dev) || flag(library-only)
cpp-options: -DDEVELOPMENT
diff --git a/templates/medium.hamlet b/templates/medium.hamlet
index 5549dd5..01f0d4f 100644
--- a/templates/medium.hamlet
+++ b/templates/medium.hamlet
@@ -13,5 +13,14 @@ by #{ownerName} from album
#{mediumDescription medium}
+