diff --git a/app/Providers/ConfigServiceProvider.php b/app/Providers/ConfigServiceProvider.php index c2cfad8399..c7ebe0e489 100644 --- a/app/Providers/ConfigServiceProvider.php +++ b/app/Providers/ConfigServiceProvider.php @@ -108,7 +108,7 @@ class ConfigServiceProvider extends ServiceProvider | `Twig_Extension_Debug` is enabled automatically if twig.debug is TRUE. | */ - 'enabled' => [ + 'enabled' => [ 'TwigBridge\Extension\Loader\Facades', 'TwigBridge\Extension\Loader\Filters', 'TwigBridge\Extension\Loader\Functions', @@ -154,7 +154,7 @@ class ConfigServiceProvider extends ServiceProvider | in order to be marked as safe. | */ - 'facades' => [ + 'facades' => [ 'Breadcrumbs' => [ 'is_safe' => [ 'renderIfExists' @@ -166,12 +166,12 @@ class ConfigServiceProvider extends ServiceProvider 'Config', 'ExpandedForm' => [ 'is_safe' => [ - 'date','text','select','balance','optionsList','checkbox' + 'date', 'text', 'select', 'balance', 'optionsList', 'checkbox', 'amount' ] ], - 'Form' => [ + 'Form' => [ 'is_safe' => [ - 'input','select','checkbox','model','open' + 'input', 'select', 'checkbox', 'model', 'open' ] ], ], @@ -205,10 +205,10 @@ class ConfigServiceProvider extends ServiceProvider | */ 'functions' => [ - 'elixir', - 'head', - 'last', - ], + 'elixir', + 'head', + 'last', + ], /* |-------------------------------------------------------------------------- diff --git a/app/Providers/FireflyServiceProvider.php b/app/Providers/FireflyServiceProvider.php index b2a298caf4..eaecd56528 100644 --- a/app/Providers/FireflyServiceProvider.php +++ b/app/Providers/FireflyServiceProvider.php @@ -11,7 +11,8 @@ use FireflyIII\Support\Preferences; use FireflyIII\Support\Steam; use FireflyIII\Support\Twig\Budget; use FireflyIII\Support\Twig\General; -use FireflyIII\Support\Twig\Journals; +use FireflyIII\Support\Twig\Journal; +use FireflyIII\Support\Twig\PiggyBank; use FireflyIII\Validation\FireflyValidator; use Illuminate\Support\ServiceProvider; use Twig; @@ -38,8 +39,9 @@ class FireflyServiceProvider extends ServiceProvider $config = App::make('config'); Twig::addExtension(new Functions($config)); + Twig::addExtension(new PiggyBank); Twig::addExtension(new General); - Twig::addExtension(new Journals); + Twig::addExtension(new Journal); Twig::addExtension(new Budget); } diff --git a/app/Support/Twig/Journals.php b/app/Support/Twig/Journal.php similarity index 97% rename from app/Support/Twig/Journals.php rename to app/Support/Twig/Journal.php index a8c2105832..2b1be12e9f 100644 --- a/app/Support/Twig/Journals.php +++ b/app/Support/Twig/Journal.php @@ -9,11 +9,11 @@ use Twig_SimpleFilter; use Twig_SimpleFunction; /** - * Class Journals + * Class Journal * * @package FireflyIII\Support\Twig */ -class Journals extends Twig_Extension +class Journal extends Twig_Extension { public function getFilters() diff --git a/app/Support/Twig/PiggyBank.php b/app/Support/Twig/PiggyBank.php new file mode 100644 index 0000000000..4d289a4b43 --- /dev/null +++ b/app/Support/Twig/PiggyBank.php @@ -0,0 +1,41 @@ +currentRelevantRep()->currentamount; + } + ); + return $functions; + } + + /** + * Returns the name of the extension. + * + * @return string The extension name + */ + public function getName() + { + return 'FireflyIII\Support\Twig\PiggyBank'; + } +} \ No newline at end of file diff --git a/resources/twig/form/amount.twig b/resources/twig/form/amount.twig new file mode 100644 index 0000000000..cc0ff82ae1 --- /dev/null +++ b/resources/twig/form/amount.twig @@ -0,0 +1,23 @@ +
+ +
+
+
+ + +
+ {{ Form.input('number', name, value, options) }} + + +
+ + {% include 'form/feedback.twig' %} +
+ +
diff --git a/resources/twig/list/piggy-bank-events.twig b/resources/twig/list/piggy-bank-events.twig new file mode 100644 index 0000000000..d685e73612 --- /dev/null +++ b/resources/twig/list/piggy-bank-events.twig @@ -0,0 +1,33 @@ + + + {% if showPiggyBank %} + + {% endif %} + + + + {% for event in events %} + + {% if showPiggyBank %} + + {% endif %} + + + + + {% endfor %} +
Piggy bankDateAmount
+ {{ event.piggyBank.name }} + + {% if event.transaction_journal_id %} + {{ event.date.format('j F Y') }} + {% else %} + {{ event.date.format('j F Y') }} + {% endif %} + + {% if event.amount < 0 %} + Removed {{ event.amount*-1|formatAmountPlain }} + {% else %} + Added {{ event.amount|formatAmountPlain }} + {% endif %} +
diff --git a/resources/twig/piggy-banks/add.twig b/resources/twig/piggy-banks/add.twig new file mode 100644 index 0000000000..85535a4297 --- /dev/null +++ b/resources/twig/piggy-banks/add.twig @@ -0,0 +1,27 @@ + + + diff --git a/resources/twig/piggy-banks/create.twig b/resources/twig/piggy-banks/create.twig new file mode 100644 index 0000000000..3c67f3ad8a --- /dev/null +++ b/resources/twig/piggy-banks/create.twig @@ -0,0 +1,57 @@ +{% extends "./layout/default.twig" %} +{% block content %} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName) }} + {{ Form.open({'class' : 'form-horizontal','id' : 'store','url' : route('piggy-banks.store')}) }} + + +
+
+
+
+ Mandatory fields +
+
+ + {{ ExpandedForm.text('name') }} + {{ ExpandedForm.select('account_id',accounts,null,{'label' : 'Save on account'}) }} + {{ ExpandedForm.amount('targetamount') }} + +
+
+
+
+ +
+
+ Optional fields +
+
+ {{ ExpandedForm.date('targetdate') }} + {{ ExpandedForm.checkbox('remind_me','1',false,{'label' : 'Remind me'}) }} + {{ ExpandedForm.select('reminder',periods,'month',{'label' : 'Remind every'}) }} +
+
+ + +
+
+ Options +
+
+ {{ ExpandedForm.optionsList('create','piggy bank') }} +
+
+ +
+
+
+
+

+ +

+
+
+ +{% endblock %} diff --git a/resources/twig/piggy-banks/delete.twig b/resources/twig/piggy-banks/delete.twig new file mode 100644 index 0000000000..bc369b1b38 --- /dev/null +++ b/resources/twig/piggy-banks/delete.twig @@ -0,0 +1,26 @@ +{% extends "./layout/default.twig" %} +{% block content %} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, piggyBank) }} + {{ Form.open({'class' : 'form-horizontal','id' : 'destroy','url' : route('piggy-banks.destroy',piggyBank.id)}) }} +
+
+
+
+ Delete piggy bank "{{ piggyBank.name }}" +
+
+

+ Are you sure? +

+ +

+ + Cancel +

+
+
+
+
+ + +{% endblock %} diff --git a/resources/twig/piggy-banks/edit.twig b/resources/twig/piggy-banks/edit.twig new file mode 100644 index 0000000000..a14bd2112a --- /dev/null +++ b/resources/twig/piggy-banks/edit.twig @@ -0,0 +1,61 @@ +{% extends "./layout/default.twig" %} +{% block content %} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, piggyBank) }} + {{ Form.model(piggyBank, {'class' : 'form-horizontal','id' : 'update','url' : route('piggy-banks.update',piggyBank.id)}) }} + + + + +
+
+
+
+ Mandatory fields +
+
+ + {{ ExpandedForm.text('name') }} + {{ ExpandedForm.select('account_id',accounts,null,{'label' : 'Save on account'}) }} + {{ ExpandedForm.amount('targetamount') }} + +
+
+ +
+
+ +
+
+ Optional fields +
+
+ {{ ExpandedForm.date('targetdate') }} + {{ ExpandedForm.checkbox('remind_me','1',preFilled.remind_me,{'label' : 'Remind me'}) }} + {{ ExpandedForm.select('reminder',periods,preFilled.reminder,{'label' : 'Remind every'}) }} +
+
+ + +
+
+ Options +
+
+ {{ ExpandedForm.optionsList('update','piggy bank') }} +
+
+ +
+
+
+
+

+ +

+
+
+ + +{% endblock %} diff --git a/resources/twig/piggy-banks/index.twig b/resources/twig/piggy-banks/index.twig index 62c3e1254f..d0d2563fb6 100644 --- a/resources/twig/piggy-banks/index.twig +++ b/resources/twig/piggy-banks/index.twig @@ -4,7 +4,7 @@

- Create new piggy bank + Create new piggy bank

diff --git a/resources/twig/piggy-banks/remove.twig b/resources/twig/piggy-banks/remove.twig new file mode 100644 index 0000000000..657ce02431 --- /dev/null +++ b/resources/twig/piggy-banks/remove.twig @@ -0,0 +1,26 @@ + \ No newline at end of file diff --git a/resources/twig/piggy-banks/show.twig b/resources/twig/piggy-banks/show.twig new file mode 100644 index 0000000000..9c27bdc27c --- /dev/null +++ b/resources/twig/piggy-banks/show.twig @@ -0,0 +1,120 @@ +{% extends "./layout/default.twig" %} +{% block content %} + {{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, piggyBank) }} +
+
+
+
+ Events +
+
+
+
+
+
+
+
+
+ Details + + +
+
+ + +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + {% if piggyBank.reminder %} + + + + + {% endif %} + + + + + + + + +
Account{{ piggyBank.account.name }}
Target amount{{ piggyBank.targetAmount|formatAmount }}
Saved so far{{ currentRelevantRepAmount(piggyBank)|formatAmount }}
Left to save{{ piggyBank.targetamount - currentRelevantRepAmount(piggyBank)|formatAmount }}
Start date + {% if piggyBank.startdate %} + {{ piggyBank.startdate.format('jS F Y')}} + {% else %} + No start date + {% endif %} +
Target date + {% if piggyBank.targetdate %} + {{ piggyBank.targetdate.format('jS F Y') }} + {% else %} + No start date + {% endif %} +
Reminder + {% if piggyBank.remind_me == 0 %} + (no reminder) + {% else %} + Every + {% if piggyBank.reminder_skip != 0 %} + {{ piggyBank.reminder_skip }} + {% else %} + {{ piggyBank.reminder }}(s) + {% endif %} + {% endif %} +
Reminders left(in progress...)
Expected amount per reminder(in progress...)
+
+
+
+ Table +
+ {% include 'list/piggy-bank-events' %} +
+
+ +
+{% endblock %} + +{% block scripts %} + + + + + + + +{% endblock %}