Made it almost to the accounts.

This commit is contained in:
James Cole
2015-05-01 22:44:35 +02:00
parent bda18f296d
commit 3e5e5b376f
15 changed files with 633 additions and 71 deletions

View File

@@ -1,8 +1,9 @@
<?php
namespace FireflyIII\Support;
namespace FireflyIII\Support\Twig;
use App;
use Config;
use FireflyIII\Models\Account;
use Route;
use Twig_Extension;
@@ -14,10 +15,13 @@ use Twig_SimpleFunction;
*
* @package FireflyIII\Support
*/
class TwigSupport extends Twig_Extension
class General extends Twig_Extension
{
/**
* @return array
*/
public function getFilters()
{
$filters = [];
@@ -40,18 +44,17 @@ class TwigSupport extends Twig_Extension
return 'NULL';
}
return App::make('amount')->format(App::make('steam')->balance($account));
}, ['is_safe' => ['html']]
);
$filters[] = new Twig_SimpleFilter(
'activeRoute', function ($string) {
if (Route::getCurrentRoute()->getName() == $string) {
return 'active';
}
return '';
return App::make('steam')->balance($account);
}
);
// should be a function but OK
$filters[] = new Twig_SimpleFilter(
'getAccountRole', function ($name) {
return Config::get('firefly.accountRoles.' . $name);
}
);
return $filters;
}
@@ -68,12 +71,34 @@ class TwigSupport extends Twig_Extension
}
);
$functions[] = new Twig_SimpleFunction(
'env', function ($name, $default) {
return env($name, $default);
}
);
$functions[] = new Twig_SimpleFunction(
'activeRoute', function ($context) {
$args = func_get_args();
$route = $args[1];
$what = isset($args[2]) ? $args[2] : false;
$activeWhat = isset($context['what']) ? $context['what'] : false;
// activeRoute
if (!($what === false)) {
if ($what == $activeWhat && Route::getCurrentRoute()->getName() == $route) {
return 'active because-active-what';
}
} else {
if (Route::getCurrentRoute()->getName() == $route) {
return 'active because-route-matches';
}
}
return 'not-xxx-at-all';
}, ['needs_context' => true]
);
return $functions;
@@ -84,7 +109,7 @@ class TwigSupport extends Twig_Extension
*/
public function getName()
{
return 'FireflyIII\Support\TwigSupport';
return 'FireflyIII\Support\Twig\General';
}
}

View File

@@ -0,0 +1,78 @@
<?php
namespace FireflyIII\Support\Twig;
use FireflyIII\Models\TransactionJournal;
use Twig_Extension;
use Twig_SimpleFilter;
use Twig_SimpleFunction;
/**
* Class Journals
*
* @package FireflyIII\Support\Twig
*/
class Journals extends Twig_Extension
{
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;
}
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) {
return 'TODO'.$journal->amount;
}
);
return $functions;
}
/**
* Returns the name of the extension.
*
* @return string The extension name
*/
public function getName()
{
return 'FireflyIII\Support\Twig\Journals';
}
}