accountant-ui/src/html/index.html

278 lines
12 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<!-- Title -->
<title>Entries</title>
<!-- Bootstrap CSS -->
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
<!-- Bootstrap datepicker plugin CSS -->
<link href="datepicker/css/datepicker.css" rel="stylesheet" media="screen">
<!-- JQPlot CSS -->
<link href="jqplot/jquery.jqplot.min.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container-fluid">
<div class="row-fluid">
<div class="span12">
<!-- Navbar with accounts -->
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<!-- Title -->
<a class="brand" href="#">&nbsp;Comptes</a>
<!-- Account list -->
<div class="nav" data-bind="foreach: accounts, value: account">
<div class="btn-group">
<!-- Account button -->
<button class="btn btn-nav" data-bind="css: { active: $data === $root.account() }, click: $parent.selectAccount"><span data-bind="text: name"></span>&nbsp;(<span data-bind="text: current, css: {'text-warning': $data.current < 0 && $data.current >= $data.authorized_overdraft, 'text-error': $data.current < $data.authorized_overdraft }"></span>&nbsp;/&nbsp;<span data-bind="text: pointed"></span>)</button>
<!-- Dropdown button -->
<button class="btn btn-nav dropdown-toggle" data-toggle="dropdown"><b class="caret"></b></button>
<!-- Dropdown menu -->
<ul class="dropdown-menu">
<li><a href="#" data-bind="click: $root.editAccount">Modifier</a></li>
<li><a href="#" data-bind="click: $root.removeAccount">Supprimer</a></li>
</ul>
</div>
</div>
<!-- New account button -->
<div class="btn btn-nav">
<a data-bind="click: $root.addAccount" href="#"><i class="icon-plus"></i></a>
</div>
</div>
</div>
<!-- Navbar with the months of the selected account -->
<div class="navbar navbar-fixed-bottom">
<div class="navbar-inner">
<ul data-bind="foreach: months()" class="nav">
<li data-bind="css: {'active': $data == $root.month()}"><a href="#" data-bind="click: $parent.selectMonth"><span data-bind="text: $data.year"></span>-<span data-bind="text: $data.month"></span></a></li>
</ul>
</div>
</div>
<!-- Emtpy row with top margin to avoid data under the fixed top navbar -->
<div class="row-fluid" style="margin-top: 46px"></div>
<!-- Chart row -->
<div class="row-fluid">
<!-- Sold evolution chart placeholder -->
<div class="span8">
<div id="entries-chart-placeholder" data-bind="chart: $root.entriesChart"></div>
</div>
<!-- Expense category piechart -->
<div class="span4">
<div id="expense-categories-chart-placeholder" data-bind="pieChart: $root.expenseCategoriesChart"></div>
</div>
</div>
<!-- Message placeholder -->
<div class="row-fluid">
<div id="message-placeholder"></div>
</div>
<!-- Row with entry table -->
<div class="row-fluid">
<table class="table table-striped table-condensed table-hover">
<!-- Head of the table containing column headers and size -->
<thead>
<tr>
<th style="width: 100px">Date de valeur</th>
<!--<th style="width: 100px">Date de l'op.</th>-->
<th>Libell&eacute; de l'op&eacute;ration</th>
<th style="width: 50px">Montant</th>
<th style="width: 50px">Solde</th>
<th style="width: 100px">Cat&eacute;gorie</th>
<th style="width: 60px">Actions</th>
</tr>
</thead>
<!-- Body of the table containing the entries -->
<tbody data-bind="template:{name: templateToUse, foreach: entries}"></tbody>
</table>
</div>
<!-- Emtpy row with bottom margin to avoid data undur the fixed bottom navbar -->
<div class="row-fluid" style="margin-bottom: 21px"></div>
</div>
</div>
</div>
<!-- Confirm entry removal modal dialog -->
<div id="remove-confirm" class="modal hide fade">
<!-- Dialog header with title -->
<div class="modal-header">
<h3>Confirmer la suppression</h3>
</div>
<!-- Dialog body -->
<div class="modal-body">
<p>Confirmez-vous la suppression de cette entr&eacute;e ?</p>
</div>
<!-- Dialog footer with buttons -->
<div class="modal-footer">
<a href="#" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Non</a>
<a href="#" class="btn" data-bind="click: confirmRemove">Oui</a>
</div>
</div>
<!-- Confirm account removal modal dialog -->
<div id="remove-account-confirm" class="modal hide fade">
<!-- Dialog header with title -->
<div class="modal-header">
<h3>Confirmer la suppression</h3>
</div>
<!-- Dialog body -->
<div class="modal-body">
<p>Confirmez-vous la suppression de ce compte ?</p>
</div>
<!-- Dialog footer with buttons -->
<div class="modal-footer">
<a href="#" class="btn btn-primary" data-dismiss="modal" aria-hidden="true">Non</a>
<a href="#" class="btn" data-bind="click: confirmAccountRemove">Oui</a>
</div>
</div>
<!-- Account edit modal dialog -->
<div id="edit-account" class="modal hide fade">
<!-- Dialog header with title -->
<div class="modal-header">
<h3>&Eacute;diter le compte</h3>
</div>
<!-- Dialog body -->
<div class="modal-body">
<form class="form-horizontal" data-bind="with: editingAccount">
<div class="control-group">
<!-- Account name field -->
<label class="control-label" for="inputName">Nom du compte</label>
<div class="controls">
<input type="text" id="inputName" data-bind="value: name"></input>
</div>
<!-- Authorized overdraft field -->
<label class="control-label" for="inputAuthorizedOverdraft">D&eacute;couvert authoris&eacute;</label>
<div class="controls">
<input type="text" id="inputAuthorizedOverdraft" data-bind="value: authorized_overdraft"></input>
</div>
</div>
</form>
</div>
<!-- Dialog footer with buttons -->
<div class="modal-footer">
<a href="#" class="btn btn-primary" data-bind="click: saveAccount">OK</a>
<a href="#" class="btn" data-bind="click: cancelEditAccount">Annuler</a>
</div>
</div>
<!-- Displayed item template -->
<script id="itemsTmpl" type="text/html">
<tr data-bind="css: { 'warning': sold() < 0 && sold() >= $root.account().authorized_overdraft(), 'error': sold() < $root.account().authorized_overdraft() }">
<td data-bind="text: operation_date"></td>
<td data-bind="text: label"></td>
<td data-bind="text: value, css: {'text-error': value() < 0 }"></td>
<td data-bind="text: sold, css: {'text-warning': sold() < 0 && sold() >= $root.account().authorized_overdraft(), 'text-error': sold() < $root.account().authorized_overdraft() }"></td>
<td data-bind="text: category"></td>
<td>
<div class="btn-group">
<a class="btn btn-mini" data-bind="click: $root.edit" href="#" title="edit"><i class="icon-edit"></i></a>
<a class="btn btn-mini" data-bind="click: $root.remove" href="#" title="remove"><i class="icon-trash"></i></a>
<a class="btn btn-mini" data-bind="css: {'active': pointed}, click: $root.pointEntry" href="#" title="point"><i class="icon-pencil"></i></a>
</div>
</td>
</tr>
</script>
<!-- New item template -->
<script id="newTmpl" type="text/html">
<tr class="form-inline">
<td><input type="text" class="input-small" data-bind="value: operation_date" data-date-format="yyyy-mm-dd" id="new_operation_date" /></td>
<td><input type="text" class="input-xxlarge" data-bind="value: label"/></td>
<td><input type="text" class="input-mini" data-bind="value: value"/></td>
<td></td>
<td><input type="text" class="input-small" data-bind="value: category, typeahead: {source: $root.categories }"/></td>
<td>
<div class="btn-group">
<a class="btn btn-mini btn-success" data-bind="click: $root.save" href="#" title="Add"><i class="icon-plus"></i></a>
<a class="btn btn-mini" data-bind="click: $root.cancel" href="#" title="Clear"><i class="icon-remove"></i></a>
<a class="btn btn-mini" data-bind="css: {'active': pointed}, click: $root.pointEntry" href="#" title="point"><i class="icon-pencil"></i></a>
</div>
</td>
</tr>
</script>
<!-- Edit item template -->
<script id="editTmpl" type="text/html">
<tr class="form-inline" data-bind="css: { 'warning': sold() < 0 && sold() >= $root.account().authorized_overdraft(), 'error': sold() < $root.account().authorized_overdraft() }">
<td><input type="text" class="input-small" data-bind="value: operation_date" data-date-format="yyyy-mm-dd" id="operation_date" /></td>
<td><input type="text" class="input-xxlarge" data-bind="value: label"/></td>
<td><input type="text" class="input-mini" data-bind="value: value"/></td>
<td data-bind="text: sold, css: {'text-warning': sold() < 0 && sold() >= $root.account().authorized_overdraft(), 'text-error': sold() < $root.account().authorized_overdraft() }"></td>
<td><input type="text" class="input-small" data-bind="value: category, typeahead: {source: $root.categories }" /></td>
<td>
<div class="btn-group">
<a class="btn btn-mini btn-success" data-bind="click: $root.save" href="#" title="Save"><i class="icon-ok"></i></a>
<a class="btn btn-mini" data-bind="click: $root.cancel" href="#" title="Cancel"><i class="icon-ban-circle"></i></a>
<a class="btn btn-mini" data-bind="css: {'active': pointed}, click: $root.pointEntry" href="#" title="point"><i class="icon-pencil"></i></a>
</div>
</td>
</tr>
</script>
<!-- JQuery Javascript library -->
<script type="text/javascript" src="jquery/jquery.min.js"></script>
<script type="text/javascript" src="jquery/jquery-migrate.min.js"></script>
<!-- Bootstrap Javascript library -->
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
<!-- Bootstrap datepicker module -->
<script type="text/javascript" src="datepicker/js/bootstrap-datepicker.js"></script>
<!-- Knockoutjs.com Javascript library -->
<script type="text/javascript" src="knockout/knockout.min.js"></script>
<script type="text/javascript" src="knockout/knockout-mapping.min.js"></script>
<!-- JQPlot Javascript library and needed modules -->
<script type="text/javascript" src="jqplot/jquery.jqplot.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.dateAxisRenderer.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.canvasAxisTickRenderer.min.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.pieRenderer.min.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.highlighter.min.js"></script>
<script type="text/javascript" src="jqplot/plugins/jqplot.canvasOverlay.min.js"></script>
<!-- Custom Javascript library for date manipulation -->
<script type="text/javascript" src="js/date.js"></script>
<!-- Custom Javascript library for entries -->
<script type="text/javascript" src="js/entries.js"></script>
</body>
</html>