web: add closing angle brackets which yesod 1.0 requires
This commit is contained in:
		
							parent
							
								
									396f8cfa9b
								
							
						
					
					
						commit
						bb131f1b8c
					
				| @ -71,20 +71,20 @@ instance Yesod App where | ||||
|           widget | ||||
|         hamletToRepHtml [hamlet| | ||||
| $doctype 5 | ||||
| <html | ||||
|  <head | ||||
| <html> | ||||
|  <head> | ||||
|   <title>#{pageTitle pc} | ||||
|   ^{pageHead pc} | ||||
|   <meta http-equiv=Content-Type content="text/html; charset=utf-8" | ||||
|   <script type=text/javascript src=@{StaticR jquery_js} | ||||
|   <script type=text/javascript src=@{StaticR jquery_url_js} | ||||
|   <script type=text/javascript src=@{StaticR jquery_flot_js} | ||||
|   <meta http-equiv=Content-Type content="text/html; charset=utf-8"> | ||||
|   <script type=text/javascript src=@{StaticR jquery_js}> | ||||
|   <script type=text/javascript src=@{StaticR jquery_url_js}> | ||||
|   <script type=text/javascript src=@{StaticR jquery_flot_js}> | ||||
|   <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]--> | ||||
|   <script type=text/javascript src=@{StaticR dhtmlxcommon_js} | ||||
|   <script type=text/javascript src=@{StaticR dhtmlxcombo_js} | ||||
|   <script type=text/javascript src=@{StaticR hledger_js} | ||||
|   <link rel=stylesheet type=text/css media=all href=@{StaticR style_css} | ||||
|  <body | ||||
|   <script type=text/javascript src=@{StaticR dhtmlxcommon_js}> | ||||
|   <script type=text/javascript src=@{StaticR dhtmlxcombo_js}> | ||||
|   <script type=text/javascript src=@{StaticR hledger_js}> | ||||
|   <link rel=stylesheet type=text/css media=all href=@{StaticR style_css}> | ||||
|  <body> | ||||
|   ^{pageBody pc} | ||||
| |] | ||||
| 
 | ||||
|  | ||||
| @ -103,11 +103,11 @@ getJournalR = do | ||||
|       setTitle "hledger-web journal" | ||||
|       addWidget $ toWidget [hamlet| | ||||
| ^{topbar vd} | ||||
| <div#content | ||||
|  <div#sidebar | ||||
| <div#content> | ||||
|  <div#sidebar> | ||||
|   ^{sidecontent} | ||||
|  <div#main.register | ||||
|   <div#maincontent | ||||
|  <div#main.register> | ||||
|   <div#maincontent> | ||||
|    <h2#contenttitle>#{title} | ||||
|    ^{searchform vd} | ||||
|    ^{maincontent} | ||||
| @ -128,11 +128,11 @@ getJournalEntriesR = do | ||||
|       setTitle "hledger-web journal" | ||||
|       addWidget $ toWidget [hamlet| | ||||
| ^{topbar vd} | ||||
| <div#content | ||||
|  <div#sidebar | ||||
| <div#content> | ||||
|  <div#sidebar> | ||||
|   ^{sidecontent} | ||||
|  <div#main.journal | ||||
|   <div#maincontent | ||||
|  <div#main.journal> | ||||
|   <div#maincontent> | ||||
|    <h2#contenttitle>#{title} | ||||
|    ^{searchform vd} | ||||
|    ^{maincontent} | ||||
| @ -174,11 +174,11 @@ getRegisterR = do | ||||
|       setTitle "hledger-web register" | ||||
|       addWidget $ toWidget [hamlet| | ||||
| ^{topbar vd} | ||||
| <div#content | ||||
|  <div#sidebar | ||||
| <div#content> | ||||
|  <div#sidebar> | ||||
|   ^{sidecontent} | ||||
|  <div#main.register | ||||
|   <div#maincontent | ||||
|  <div#main.register> | ||||
|   <div#maincontent> | ||||
|    <h2#contenttitle>#{title} | ||||
|    ^{searchform vd} | ||||
|    ^{maincontent} | ||||
| @ -228,28 +228,28 @@ sidebar vd@VD{..} = accountsReportAsHtml opts vd $ accountsReport (reportopts_ $ | ||||
| accountsReportAsHtml :: WebOpts -> ViewData -> AccountsReport -> HtmlUrl AppRoute | ||||
| accountsReportAsHtml _ vd@VD{..} (items',total) = | ||||
|  [hamlet| | ||||
| <div#accountsheading | ||||
| <div#accountsheading> | ||||
|  <a#accounts-toggle-link.togglelink href="#" title="Toggle sidebar">[+] | ||||
| <div#accounts | ||||
| <div#accounts> | ||||
|  <table.balancereport> | ||||
|   <tr | ||||
|    <td.add colspan=3 | ||||
|   <tr> | ||||
|    <td.add colspan=3> | ||||
|     <br> | ||||
|     <a#addformlink href="#" onclick="return addformToggle(event)" title="Add a new transaction to the journal">Add a transaction.. | ||||
| 
 | ||||
|   <tr.item :allaccts:.inacct | ||||
|    <td.journal colspan=3 | ||||
|   <tr.item :allaccts:.inacct> | ||||
|    <td.journal colspan=3> | ||||
|     <br> | ||||
|     <a href=@{JournalR} title="Show all transactions in journal format">Journal | ||||
|     <span.hoverlinks | ||||
|     <span.hoverlinks> | ||||
|        | ||||
|      <a href=@{JournalEntriesR} title="Show journal entries">entries | ||||
|        | ||||
|      <a#editformlink href="#" onclick="return editformToggle(event)" title="Edit the journal"> | ||||
|       edit | ||||
| 
 | ||||
|   <tr | ||||
|    <td colspan=3 | ||||
|   <tr> | ||||
|    <td colspan=3> | ||||
|     <br> | ||||
|     Accounts | ||||
| 
 | ||||
| @ -270,11 +270,11 @@ accountsReportAsHtml _ vd@VD{..} (items',total) = | ||||
|    items = items' -- maybe items' (\m -> filter (matchesAccount m . \(a,_,_,_)->a) items') showacctmatcher | ||||
|    itemAsHtml :: ViewData -> AccountsReportItem -> HtmlUrl AppRoute | ||||
|    itemAsHtml _ (acct, adisplay, aindent, abal) = [hamlet| | ||||
| <tr.item.#{inacctclass} | ||||
|  <td.account.#{depthclass} | ||||
| <tr.item.#{inacctclass}> | ||||
|  <td.account.#{depthclass}> | ||||
|   #{indent} | ||||
|   <a href="@?{acctquery}" title="Show transactions in this account, including subaccounts">#{adisplay} | ||||
|   <span.hoverlinks | ||||
|   <span.hoverlinks> | ||||
|    $if hassubs | ||||
|       | ||||
|     <a href="@?{acctonlyquery}" title="Show transactions in this account only">only | ||||
| @ -326,8 +326,8 @@ entriesReportAsHtml _ vd items = [hamlet| | ||||
| -- | Render a "TransactionsReport" as html for the formatted journal view. | ||||
| journalTransactionsReportAsHtml :: WebOpts -> ViewData -> TransactionsReport -> HtmlUrl AppRoute | ||||
| journalTransactionsReportAsHtml _ vd (_,items) = [hamlet| | ||||
| <table.journalreport | ||||
|  <tr.headings | ||||
| <table.journalreport> | ||||
|  <tr.headings> | ||||
|   <th.date align=left>Date | ||||
|   <th.description align=left>Description | ||||
|   <th.account align=left>Accounts | ||||
| @ -339,16 +339,16 @@ journalTransactionsReportAsHtml _ vd (_,items) = [hamlet| | ||||
| -- .#{datetransition} | ||||
|    itemAsHtml :: ViewData -> (Int, Bool, Bool, Bool, TransactionsReportItem) -> HtmlUrl AppRoute | ||||
|    itemAsHtml VD{..} (n, _, _, _, (t, _, split, _, amt, _)) = [hamlet| | ||||
| <tr.item.#{evenodd}.#{firstposting} | ||||
| <tr.item.#{evenodd}.#{firstposting}> | ||||
|  <td.date>#{date} | ||||
|  <td.description colspan=2 title="#{show t}">#{elideRight 60 desc} | ||||
|  <td.amount align=right> | ||||
|   $if showamt | ||||
|    #{mixedAmountAsHtml amt} | ||||
| $forall p' <- tpostings t | ||||
|   <tr.item.#{evenodd}.posting | ||||
|    <td.date | ||||
|    <td.description | ||||
|   <tr.item.#{evenodd}.posting> | ||||
|    <td.date> | ||||
|    <td.description> | ||||
|    <td.account> <a href="@?{accountUrl here $ paccount p'}" title="Show transactions in #{paccount p'}">#{elideRight 40 $ paccount p'} | ||||
|    <td.amount align=right>#{mixedAmountAsHtml $ pamount p'} | ||||
| |] | ||||
| @ -371,8 +371,8 @@ registerReportHtml opts vd r@(_,items) = [hamlet| | ||||
| -- Generate html for a transaction list from an "TransactionsReport". | ||||
| registerItemsHtml :: WebOpts -> ViewData -> TransactionsReport -> HtmlUrl AppRoute | ||||
| registerItemsHtml _ vd (balancelabel,items) = [hamlet| | ||||
| <table.registerreport | ||||
|  <tr.headings | ||||
| <table.registerreport> | ||||
|  <tr.headings> | ||||
|   <th.date align=left>Date | ||||
|   <th.description align=left>Description | ||||
|   <th.account align=left>To/From Account | ||||
| @ -389,23 +389,23 @@ registerItemsHtml _ vd (balancelabel,items) = [hamlet| | ||||
|    -- filtering = m /= Any | ||||
|    itemAsHtml :: ViewData -> (Int, Bool, Bool, Bool, TransactionsReportItem) -> HtmlUrl AppRoute | ||||
|    itemAsHtml VD{..} (n, newd, newm, _, (t, _, split, acct, amt, bal)) = [hamlet| | ||||
| <tr.item.#{evenodd}.#{firstposting}.#{datetransition} | ||||
| <tr.item.#{evenodd}.#{firstposting}.#{datetransition}> | ||||
|  <td.date>#{date} | ||||
|  <td.description title="#{show t}">#{elideRight 30 desc} | ||||
|  <td.account title="#{show t}" | ||||
|   <a | ||||
|  <td.account title="#{show t}"> | ||||
|   <a> | ||||
|    #{elideRight 40 acct} | ||||
|     | ||||
|   <a.postings-toggle-link.togglelink href="#" title="Toggle all postings" | ||||
|   <a.postings-toggle-link.togglelink href="#" title="Toggle all postings"> | ||||
|    [+] | ||||
|  <td.amount align=right> | ||||
|   $if showamt | ||||
|    #{mixedAmountAsHtml amt} | ||||
|  <td.balance align=right>#{mixedAmountAsHtml bal} | ||||
| $forall p' <- tpostings t | ||||
|  <tr.item.#{evenodd}.posting style=#{postingsdisplaystyle} | ||||
|    <td.date | ||||
|    <td.description | ||||
|  <tr.item.#{evenodd}.posting style=#{postingsdisplaystyle}> | ||||
|    <td.date> | ||||
|    <td.description> | ||||
|    <td.account> <a href="@?{accountUrl here $ paccount p'}" title="Show transactions in #{paccount p'}">#{elideRight 40 $ paccount p'} | ||||
|    <td.amount align=right>#{mixedAmountAsHtml $ pamount p'} | ||||
|    <td.balance align=right> | ||||
| @ -450,7 +450,7 @@ registerChartHtml items = | ||||
|              } | ||||
|              ); | ||||
|   }); | ||||
| <div#register-chart style="width:600px;height:100px; margin-bottom:1em;" | ||||
| <div#register-chart style="width:600px;height:100px; margin-bottom:1em;"> | ||||
| |] | ||||
| 
 | ||||
| -- stringIfLongerThan :: Int -> String -> String | ||||
| @ -635,8 +635,8 @@ handleImport = do | ||||
| -- | Global toolbar/heading area. | ||||
| topbar :: ViewData -> HtmlUrl AppRoute | ||||
| topbar VD{..} = [hamlet| | ||||
| <div#topbar | ||||
|  <a.topleftlink href=#{hledgerorgurl} title="More about hledger" | ||||
| <div#topbar> | ||||
|  <a.topleftlink href=#{hledgerorgurl} title="More about hledger"> | ||||
|   hledger-web | ||||
|   <br /> | ||||
|   #{version} | ||||
| @ -676,26 +676,26 @@ helplink topic label = [hamlet| | ||||
| -- | Search form for entering custom queries to filter journal data. | ||||
| searchform :: ViewData -> HtmlUrl AppRoute | ||||
| searchform VD{..} = [hamlet| | ||||
| <div#searchformdiv | ||||
|  <form#searchform.form method=GET | ||||
|   <table | ||||
|    <tr | ||||
|     <td | ||||
| <div#searchformdiv> | ||||
|  <form#searchform.form method=GET> | ||||
|   <table> | ||||
|    <tr> | ||||
|     <td> | ||||
|      Search: | ||||
|      \ # | ||||
|     <td | ||||
|      <input name=q size=70 value=#{q} | ||||
|      <input type=submit value="Search" | ||||
|     <td> | ||||
|      <input name=q size=70 value=#{q}> | ||||
|      <input type=submit value="Search"> | ||||
|      $if filtering | ||||
|       \ # | ||||
|       <span.showall | ||||
|       <span.showall> | ||||
|        <a href=@{here}>clear search | ||||
|      \ # | ||||
|      <a#search-help-link href="#" title="Toggle search help">help | ||||
|    <tr | ||||
|     <td | ||||
|     <td | ||||
|      <div#search-help.help style="display:none;" | ||||
|    <tr> | ||||
|     <td> | ||||
|     <td> | ||||
|      <div#search-help.help style="display:none;"> | ||||
|       Leave blank to see journal (all transactions), or click account links to see transactions under that account. | ||||
|       <br> | ||||
|       Transactions/postings may additionally be filtered by: | ||||
| @ -734,37 +734,37 @@ addform vd@VD{..} = [hamlet| | ||||
|     /* desccombo.setOptionHeight(200); */ | ||||
|  }); | ||||
| 
 | ||||
| <form#addform method=POST style=display:none; | ||||
| <form#addform method=POST style=display:none;> | ||||
|   <h2#contenttitle>#{title} | ||||
|   <table.form | ||||
|    <tr | ||||
|     <td colspan=4 | ||||
|      <table | ||||
|       <tr#descriptionrow | ||||
|        <td | ||||
|   <table.form> | ||||
|    <tr> | ||||
|     <td colspan=4> | ||||
|      <table> | ||||
|       <tr#descriptionrow> | ||||
|        <td> | ||||
|         Date: | ||||
|        <td | ||||
|         <input.textinput size=15 name=date value=#{date} | ||||
|        <td style=padding-left:1em; | ||||
|        <td> | ||||
|         <input.textinput size=15 name=date value=#{date}> | ||||
|        <td style=padding-left:1em;> | ||||
|         Description: | ||||
|        <td | ||||
|         <select id=description name=description | ||||
|          <option | ||||
|        <td> | ||||
|         <select id=description name=description> | ||||
|          <option> | ||||
|          $forall d <- descriptions | ||||
|           <option value=#{d}>#{d} | ||||
|       <tr.helprow | ||||
|        <td | ||||
|        <td | ||||
|       <tr.helprow> | ||||
|        <td> | ||||
|        <td> | ||||
|         <span.help>#{datehelp} # | ||||
|        <td | ||||
|        <td | ||||
|        <td> | ||||
|        <td> | ||||
|         <span.help>#{deschelp} | ||||
|    ^{postingfields vd 1} | ||||
|    ^{postingfields vd 2} | ||||
|    <tr#addbuttonrow | ||||
|     <td colspan=4 | ||||
|      <input type=hidden name=action value=add | ||||
|      <input type=submit name=submit value="add transaction" | ||||
|    <tr#addbuttonrow> | ||||
|     <td colspan=4> | ||||
|      <input type=hidden name=action value=add> | ||||
|      <input type=submit name=submit value="add transaction"> | ||||
|      $if manyfiles | ||||
|       \ to: ^{journalselect $ files j} | ||||
|      \ or # | ||||
| @ -779,20 +779,20 @@ addform vd@VD{..} = [hamlet| | ||||
|   manyfiles = (length $ files j) > 1 | ||||
|   postingfields :: ViewData -> Int -> HtmlUrl AppRoute | ||||
|   postingfields _ n = [hamlet| | ||||
| <tr#postingrow | ||||
| <tr#postingrow> | ||||
|  <td align=right>#{acctlabel}: | ||||
|  <td | ||||
|   <select id=#{acctvar} name=#{acctvar} | ||||
|    <option | ||||
|  <td> | ||||
|   <select id=#{acctvar} name=#{acctvar}> | ||||
|    <option> | ||||
|    $forall a <- acctnames | ||||
|     <option value=#{a} :shouldselect a:selected>#{a} | ||||
|     <option value=#{a} :shouldselect a:selected>#{a}> | ||||
|  ^{amtfield} | ||||
| <tr.helprow | ||||
|  <td | ||||
|  <td | ||||
| <tr.helprow> | ||||
|  <td> | ||||
|  <td> | ||||
|   <span.help>#{accthelp} | ||||
|  <td | ||||
|  <td | ||||
|  <td> | ||||
|  <td> | ||||
|   <span.help>#{amthelp} | ||||
| |] | ||||
|    where | ||||
| @ -805,10 +805,10 @@ addform vd@VD{..} = [hamlet| | ||||
|        | n == 1     = ("To account" | ||||
|                      ,"eg: expenses:food" | ||||
|                      ,[hamlet| | ||||
| <td style=padding-left:1em; | ||||
| <td style=padding-left:1em;> | ||||
|  Amount: | ||||
| <td | ||||
|  <input.textinput size=15 name=#{amtvar} value="" | ||||
| <td> | ||||
|  <input.textinput size=15 name=#{amtvar} value=""> | ||||
| |] | ||||
|                      ,"eg: $6" | ||||
|                      ) | ||||
| @ -821,27 +821,27 @@ addform vd@VD{..} = [hamlet| | ||||
| -- | Edit journal form. | ||||
| editform :: ViewData -> HtmlUrl AppRoute | ||||
| editform VD{..} = [hamlet| | ||||
| <form#editform method=POST style=display:none; | ||||
|  <h2#contenttitle>#{title} | ||||
|  <table.form | ||||
| <form#editform method=POST style=display:none;> | ||||
|  <h2#contenttitle>#{title}> | ||||
|  <table.form> | ||||
|   $if manyfiles | ||||
|    <tr | ||||
|     <td colspan=2 | ||||
|    <tr> | ||||
|     <td colspan=2> | ||||
|      Editing ^{journalselect $ files j} | ||||
|   <tr | ||||
|    <td colspan=2 | ||||
|   <tr> | ||||
|    <td colspan=2> | ||||
|     <!-- XXX textarea ids are unquoted journal file paths here, not valid html --> | ||||
|     $forall f <- files j | ||||
|      <textarea id=#{fst f}_textarea name=text rows=25 cols=80 style=display:none; disabled=disabled | ||||
|      <textarea id=#{fst f}_textarea name=text rows=25 cols=80 style=display:none; disabled=disabled> | ||||
|       #{snd f} | ||||
|   <tr#addbuttonrow | ||||
|    <td | ||||
|   <tr#addbuttonrow> | ||||
|    <td> | ||||
|     <span.help>^{formathelp} | ||||
|    <td align=right | ||||
|     <span.help | ||||
|    <td align=right> | ||||
|     <span.help> | ||||
|      Are you sure ? This will overwrite the journal. # | ||||
|     <input type=hidden name=action value=edit | ||||
|     <input type=submit name=submit value="save journal" | ||||
|     <input type=hidden name=action value=edit> | ||||
|     <input type=submit name=submit value="save journal"> | ||||
|     \ or # | ||||
|     <a href="#" onclick="return editformToggle(event)">cancel | ||||
| |] | ||||
| @ -853,20 +853,20 @@ editform VD{..} = [hamlet| | ||||
| -- | Import journal form. | ||||
| importform :: HtmlUrl AppRoute | ||||
| importform = [hamlet| | ||||
| <form#importform method=POST style=display:none; | ||||
|  <table.form | ||||
|   <tr | ||||
|    <td | ||||
|     <input type=file name=file | ||||
|     <input type=hidden name=action value=import | ||||
|     <input type=submit name=submit value="import from file" | ||||
| <form#importform method=POST style=display:none;> | ||||
|  <table.form> | ||||
|   <tr> | ||||
|    <td> | ||||
|     <input type=file name=file> | ||||
|     <input type=hidden name=action value=import> | ||||
|     <input type=submit name=submit value="import from file"> | ||||
|     \ or # | ||||
|     <a href="#" onclick="return importformToggle(event)" cancel | ||||
|     <a href="#" onclick="return importformToggle(event)">cancel | ||||
| |] | ||||
| 
 | ||||
| journalselect :: [(FilePath,String)] -> HtmlUrl AppRoute | ||||
| journalselect journalfiles = [hamlet| | ||||
| <select id=journalselect name=journal onchange="editformJournalSelect(event)" | ||||
| <select id=journalselect name=journal onchange="editformJournalSelect(event)"> | ||||
|  $forall f <- journalfiles | ||||
|   <option value=#{fst f}>#{fst f} | ||||
| |] | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user