{-# OPTIONS -XCPP #-} module ContentManagement ( textEdit) where import Text.Blaze.Html5 as El import Text.Blaze.Html5.Attributes as At hiding (step) import Data.Monoid import Data.TCache.Memoization -- #define ALONE -- to execute it alone, uncomment this #ifdef ALONE import MFlow.Wai.Blaze.Html.All main= runNavigation "" $ transientNav testEdit #else import MFlow.Wai.Blaze.Html.All hiding(page) import Menu #endif editUser= "edituser" textEdit= do userRegister editUser editUser let first= p << i << (El.span << "this is a page with" <> b << " two " <> El.span << "paragraphs. this is the first") second= p << i << "This is the original of the second paragraph" page $ p << b << "An example of content management" ++> first ++> second ++> wlink () << p << "click here to edit it" page $ p << "Please login with edituser/edituser to edit it" ++> userWidget (Just editUser) userLogin page $ p << "Now you can click the fields and edit them" ++> p << b << "to save an edited field, press the save icon in the left" ++> tFieldEd editUser "first" first **> tFieldEd editUser "second" second **> wlink () << p << "click here to see it as a normal user" logout page $ p << "the user sees the edited content. He can not edit" ++> tFieldEd editUser "first" first **> tFieldEd editUser "second" second **> wlink "a" << p << "click to continue" page $ p << "When texts are fixed,the edit facility and the original texts can be removed. The content is indexed by the field key" ++> tField "first" **> tField "second" **> p << "End of edit field demo" ++> wlink () << p << "click here to go to menu"