api: Move client files and get a basic dashboard working
This commit is contained in:
		
							parent
							
								
									5e3d6d6d3d
								
							
						
					
					
						commit
						619ea9906c
					
				| @ -1,7 +0,0 @@ | ||||
| ul.accounts, ul.accounts ul { | ||||
|   list-style-type: none; | ||||
|   padding-left: 0; | ||||
| } | ||||
| ul.accounts ul { | ||||
|   margin-left: 15px; | ||||
| } | ||||
| @ -1,29 +0,0 @@ | ||||
| <html> | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <title>hledger-api example 01</title> | ||||
|   <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> | ||||
| </head | ||||
| <body> | ||||
| 
 | ||||
| <p> | ||||
| Account names: | ||||
| 
 | ||||
| <pre></pre> | ||||
| 
 | ||||
| <script> | ||||
| $(document).ready( | ||||
| function() { | ||||
|   $.ajax({ | ||||
|     url: "http://localhost:8001/accounts", | ||||
|     context: document.body, | ||||
|     success: function(data){ | ||||
|       $('pre').text(data.join('\n')); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
| ); | ||||
| </script> | ||||
| 
 | ||||
| </body> | ||||
| </html> | ||||
| @ -1,88 +0,0 @@ | ||||
| <html> | ||||
| <head> | ||||
|   <meta charset="utf-8"> | ||||
|   <title>hledger-api example 01</title> | ||||
|   <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> | ||||
| </head | ||||
| 
 | ||||
| <body> | ||||
|   <table border=0 width="100%"> | ||||
|     <tr valign="top"> | ||||
|       <td width="50%"> | ||||
| 
 | ||||
|         <h2>Commodities</h2>  | ||||
|         <pre id="commodities"></pre> | ||||
| 
 | ||||
|         <h2>Market Prices</h2>  | ||||
|         <pre id="prices"></pre> | ||||
| 
 | ||||
|         <h2>Account names</h2>  | ||||
|         <pre id="accounts"></pre> | ||||
| 
 | ||||
|       </td> | ||||
|       <td width="50%"> | ||||
| 
 | ||||
|         <h2>Transactions</h2>  | ||||
|         <pre id="transactions"></pre> | ||||
| 
 | ||||
|       </td> | ||||
|     </tr> | ||||
|   </table> | ||||
| 
 | ||||
| <script> | ||||
| 
 | ||||
| $(document).ready(function(){ | ||||
| 
 | ||||
|   get('commodities', id); | ||||
|   get('prices', showMarketPrice); | ||||
|   get('accounts', id); | ||||
|   get('transactions', showTransaction); | ||||
| 
 | ||||
| }); | ||||
| 
 | ||||
| function get(method, showfn) { | ||||
|   return $.ajax({ | ||||
|     url: "http://localhost:8001/"+method, | ||||
|     context: document.body, | ||||
|     success: function(data){ | ||||
|       $('#'+method).text(data.map(showfn).join('\n')); | ||||
|     }, | ||||
|     error: function(jqXHR, textStatus, errorThrown){ | ||||
|       alert('error'); | ||||
|     } | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| function id(x){ return x; } | ||||
| 
 | ||||
| function showAmount(a) { | ||||
|   return a.acommodity + a.aquantity; | ||||
| } | ||||
| 
 | ||||
| function showMixedAmount(ma) { | ||||
|   return ma.map(showAmount).join(', '); | ||||
| } | ||||
| 
 | ||||
| function showMarketPrice(mp) { | ||||
|   return mp.mpdate + ' ' + mp.mpcommodity + ' ' + showAmount(mp.mpamount); | ||||
| } | ||||
| 
 | ||||
| function showPosting(p) { | ||||
|   return p.paccount + '  ' + showMixedAmount(p.pamount); | ||||
| } | ||||
| 
 | ||||
| function showPostingLine(p) { | ||||
|   return '    ' + showPosting(p) + '\n'; | ||||
| } | ||||
| 
 | ||||
| function showTransaction(t) { | ||||
|   return ( | ||||
|     t.tdate + ' ' + t.tdescription + '\n' | ||||
|     + t.tpostings.map(showPostingLine).join('') | ||||
|   ); | ||||
| } | ||||
| 
 | ||||
| </script> | ||||
| 
 | ||||
| </body> | ||||
| </html> | ||||
| @ -1 +0,0 @@ | ||||
| Files under this directory are served by hledger-api when no other API route is matched. | ||||
							
								
								
									
										22
									
								
								hledger-api/static/hledger-client.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								hledger-api/static/hledger-client.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,22 @@ | ||||
| ul.accounts, ul.accounts ul { | ||||
|   list-style-type: none; | ||||
|   padding-left: 0; | ||||
| } | ||||
| ul.accounts ul { | ||||
|   margin-left: 15px; | ||||
| } | ||||
| ul.accounts li { | ||||
|   clear: both; | ||||
|   border-top: 1px dotted #888; | ||||
| } | ||||
| ul.accounts .balances { | ||||
|   display: block; | ||||
|   float: right; | ||||
|   text-align: right; | ||||
| } | ||||
| ul.accounts .balance { | ||||
|   display: block; | ||||
| } | ||||
| ul.accounts .balance .commodity-side-L { | ||||
|   float: left; | ||||
| } | ||||
| @ -2,12 +2,26 @@ var hledger = angular.module('hledger', [ | ||||
|   'ui.router', | ||||
|   'ngResource' | ||||
| ]) | ||||
| function listToTree(list, id_field, parent_field) { | ||||
|   children = function(list, parent_id) { | ||||
|     return $.grep(list, | ||||
|       function(element) { | ||||
|         return element[parent_field] === parent_id | ||||
|       }); | ||||
|   } | ||||
|   $.map(list, function(element) { | ||||
|     element.children = children(list, element[id_field]) | ||||
|   }); | ||||
|   root = children(list, ''); | ||||
|   return root; | ||||
| } | ||||
| 
 | ||||
| hledger.config(function($stateProvider, $urlRouterProvider) { | ||||
|   $urlRouterProvider.otherwise("/accounts"); | ||||
|   $stateProvider | ||||
|     .state('accounts', { | ||||
|       url: "/accounts", | ||||
|       templateUrl: "accounts/view.html", | ||||
|       templateUrl: "accounts/index.html", | ||||
|       controller: 'AccountsController' | ||||
|     }) | ||||
|     .state('help', { | ||||
| @ -32,6 +46,6 @@ hledger.factory('Account', function($resource) { | ||||
| 
 | ||||
| hledger.controller("AccountsController", function($scope, Account) { | ||||
|   Account.query(function(data) { | ||||
|    $scope.accounts = data; | ||||
|     $scope.accounts = listToTree(data, 'aname', 'aparentname')[0].children; | ||||
|   }); | ||||
| }); | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user