Files
firefly-iii/app/Support/Twig/Journal.php

87 lines
2.1 KiB
PHP
Raw Normal View History

2015-05-01 22:44:35 +02:00
<?php
namespace FireflyIII\Support\Twig;
use FireflyIII\Models\TransactionJournal;
use Twig_Extension;
use Twig_SimpleFilter;
use Twig_SimpleFunction;
2015-05-02 22:05:18 +02:00
use App;
2015-05-01 22:44:35 +02:00
/**
2015-05-02 11:32:45 +02:00
* Class Journal
2015-05-01 22:44:35 +02:00
*
* @package FireflyIII\Support\Twig
*/
2015-05-02 11:32:45 +02:00
class Journal extends Twig_Extension
2015-05-01 22:44:35 +02:00
{
2015-05-02 22:05:18 +02:00
/**
* @return array
*/
2015-05-01 22:44:35 +02:00
public function getFilters()
{
$filters = [];
$filters[] = new Twig_SimpleFilter(
'typeIcon', function (TransactionJournal $journal) {
$type = $journal->transactionType->type;
if ($type == 'Withdrawal') {
return '<span class="glyphicon glyphicon-arrow-left" title="Withdrawal"></span>';
}
if ($type == 'Deposit') {
return '<span class="glyphicon glyphicon-arrow-right" title="Deposit"></span>';
}
if ($type == 'Transfer') {
return '<i class="fa fa-fw fa-exchange" title="Transfer"></i>';
}
if ($type == 'Opening balance') {
return '<span class="glyphicon glyphicon-ban-circle" title="Opening balance"></span>';
}
}, ['is_safe' => ['html']]
);
return $filters;
}
2015-05-02 22:05:18 +02:00
/**
* @return array
*/
2015-05-01 22:44:35 +02:00
public function getFunctions()
{
$functions = [];
$functions[] = new Twig_SimpleFunction(
'invalidJournal', function (TransactionJournal $journal) {
if (!isset($journal->transactions[1]) || !isset($journal->transactions[0])) {
return true;
}
return false;
}
);
$functions[] = new Twig_SimpleFunction(
'relevantTags', function (TransactionJournal $journal) {
2015-05-02 22:05:18 +02:00
if($journal->tags->count() == 0) {
return App::make('amount')->formatJournal($journal);
}
return 'TODO: '.$journal->amount;
2015-05-01 22:44:35 +02:00
}
);
return $functions;
}
/**
* Returns the name of the extension.
*
* @return string The extension name
*/
public function getName()
{
return 'FireflyIII\Support\Twig\Journals';
}
}