Merge branch 'release/4.6.1'

This commit is contained in:
James Cole 2017-07-02 09:36:20 +02:00
commit fcc9b3a588
50 changed files with 387 additions and 340 deletions

View File

@ -21,47 +21,3 @@ When contributing to Firefly III, please first discuss the change you wish to ma
## Translations :us: :fr: :de:
If you see a spelling error, grammatical error or a weird translation in your language, please join [our CrowdIn](https://crowdin.com/project/firefly-iii) project. There, you can submit your translations and fixes. The GitHub repository will download these automatically and they will be included in the next release.
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at thegrumpydictator@gmail.com. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.4, available at [http://contributor-covenant.org/version/1/4](http://contributor-covenant.org/version/1/4).

View File

@ -2,6 +2,11 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [4.6.1] - 2017-07-02
### Fixed
- Fixed several small issues all around.
## [4.6.0] - 2017-06-28
### Changed
@ -16,9 +21,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
- Fix a bug where the balance routine forgot to account for accounts without a currency preference.
- Various other bugfixes.
### Security
- Initial release.
## [4.5.0] - 2017-06-07
### Added

46
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at thegrumpydictator@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View File

@ -35,7 +35,7 @@ Firefly is pretty awesome. [You can read more about Firefly III, and its feature
### Contributing
Please read [CONTRIBUTING.md](https://github.com/firefly-iii/firefly-iii/blob/master/.github/CONTRIBUTING.md) for details on the code of conduct, and the process for submitting pull requests.
Please read [CONTRIBUTING.md](https://github.com/firefly-iii/firefly-iii/blob/master/.github/CONTRIBUTING.md) for details on contributing, and the process for submitting pull requests. Please check out the [code of conduct](https://github.com/firefly-iii/firefly-iii/blob/master/CODE_OF_CONDUCT.md) as well.
### Versioning

View File

@ -308,7 +308,7 @@ class AccountController extends Controller
$journals = $collector->getPaginatedJournals();
$journals->setPath('accounts/show/' . $account->id . '/' . $moment);
$count = $journals->getCollection()->count();
if ($count === 0) {
if ($count === 0 && $loop < 3) {
$start->subDay();
$start = Navigation::startOfPeriod($start, $range);
$end = Navigation::endOfPeriod($start, $range);

View File

@ -302,7 +302,7 @@ class BudgetController extends Controller
Log::info('Now at no-budget loop start.');
while ($count === 0 && $loop < 3) {
$loop++;
Log::info('Count is zero, search for journals.');
Log::info(sprintf('Count is zero, search for journals between %s and %s.', $start->format('Y-m-d'), $end->format('Y-m-d')));
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector->setAllAssetAccounts()->setRange($start, $end)->setTypes([TransactionType::WITHDRAWAL])->setLimit($pageSize)->setPage($page)
@ -310,7 +310,7 @@ class BudgetController extends Controller
$journals = $collector->getPaginatedJournals();
$journals->setPath('/budgets/list/no-budget');
$count = $journals->getCollection()->count();
if ($count === 0) {
if ($count === 0 && $loop < 3) {
$start->subDay();
$start = Navigation::startOfPeriod($start, $range);
$end = Navigation::endOfPeriod($start, $range);

View File

@ -216,7 +216,7 @@ class CategoryController extends Controller
$journals = $collector->getPaginatedJournals();
$journals->setPath('/categories/list/no-category');
$count = $journals->getCollection()->count();
if ($count === 0) {
if ($count === 0 && $loop < 3) {
$start->subDay();
$start = Navigation::startOfPeriod($start, $range);
$end = Navigation::endOfPeriod($start, $range);
@ -300,7 +300,7 @@ class CategoryController extends Controller
$journals = $collector->getPaginatedJournals();
$journals->setPath('categories/show/' . $category->id);
$count = $journals->getCollection()->count();
if ($count === 0) {
if ($count === 0 && $loop < 3) {
$start->subDay();
$start = Navigation::startOfPeriod($start, $range);
$end = Navigation::endOfPeriod($start, $range);

View File

@ -293,7 +293,7 @@ class TagController extends Controller
$journals = $collector->getPaginatedJournals();
$journals->setPath($path);
$count = $journals->getCollection()->count();
if ($count === 0) {
if ($count === 0 && $loop < 3) {
$start->subDay();
$start = Navigation::startOfPeriod($start, $range);
$end = Navigation::endOfPeriod($start, $range);

View File

@ -122,7 +122,7 @@ class TransactionController extends Controller
$journals = $collector->getPaginatedJournals();
$journals->setPath($path);
$count = $journals->getCollection()->count();
if ($count === 0) {
if ($count === 0 && $loop < 3) {
$start->subDay();
$start = Navigation::startOfPeriod($start, $range);
$end = Navigation::endOfPeriod($start, $range);

View File

@ -78,7 +78,7 @@ Breadcrumbs::register(
$breadcrumbs->push(trans('firefly.everything'), route('accounts.show', [$account->id, 'all']));
}
// when is specific period or when empty:
if ($moment !== 'all') {
if ($moment !== 'all' && $moment !== '(nothing)') {
$title = trans(
'firefly.between_dates_breadcrumb', ['start' => $start->formatLocalized(strval(trans('config.month_and_day'))),
'end' => $end->formatLocalized(strval(trans('config.month_and_day')))]
@ -91,7 +91,7 @@ Breadcrumbs::register(
Breadcrumbs::register(
'accounts.delete', function (BreadCrumbGenerator $breadcrumbs, Account $account) {
$breadcrumbs->parent('accounts.show', $account, '', new Carbon, new Carbon);
$breadcrumbs->parent('accounts.show', $account, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('firefly.delete_account', ['name' => e($account->name)]), route('accounts.delete', [$account->id]));
}
);
@ -99,7 +99,7 @@ Breadcrumbs::register(
Breadcrumbs::register(
'accounts.edit', function (BreadCrumbGenerator $breadcrumbs, Account $account) {
$breadcrumbs->parent('accounts.show', $account, '', new Carbon, new Carbon);
$breadcrumbs->parent('accounts.show', $account, '(nothing)', new Carbon, new Carbon);
$what = config('firefly.shortNamesByFullName.' . $account->accountType->type);
$breadcrumbs->push(trans('firefly.edit_' . $what . '_account', ['name' => e($account->name)]), route('accounts.edit', [$account->id]));
@ -257,8 +257,8 @@ Breadcrumbs::register(
if ($moment === 'all') {
$breadcrumbs->push(trans('firefly.everything'), route('budgets.no-budget', ['all']));
}
// when is specific period:
if ($moment !== 'all') {
// when is specific period or when empty:
if ($moment !== 'all' && $moment !== '(nothing)') {
$title = trans(
'firefly.between_dates_breadcrumb', ['start' => $start->formatLocalized(strval(trans('config.month_and_day'))),
'end' => $end->formatLocalized(strval(trans('config.month_and_day')))]
@ -312,13 +312,13 @@ Breadcrumbs::register(
Breadcrumbs::register(
'categories.edit', function (BreadCrumbGenerator $breadcrumbs, Category $category) {
$breadcrumbs->parent('categories.show', $category, '', new Carbon, new Carbon);
$breadcrumbs->parent('categories.show', $category, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('firefly.edit_category', ['name' => e($category->name)]), route('categories.edit', [$category->id]));
}
);
Breadcrumbs::register(
'categories.delete', function (BreadCrumbGenerator $breadcrumbs, Category $category) {
$breadcrumbs->parent('categories.show', $category, '', new Carbon, new Carbon);
$breadcrumbs->parent('categories.show', $category, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('firefly.delete_category', ['name' => e($category->name)]), route('categories.delete', [$category->id]));
}
);
@ -333,8 +333,8 @@ Breadcrumbs::register(
if ($moment === 'all') {
$breadcrumbs->push(trans('firefly.everything'), route('categories.show', [$category->id, 'all']));
}
// when is specific period:
if ($moment !== 'all') {
// when is specific period or when empty:
if ($moment !== 'all' && $moment !== '(nothing)') {
$title = trans(
'firefly.between_dates_breadcrumb', ['start' => $start->formatLocalized(strval(trans('config.month_and_day'))),
'end' => $end->formatLocalized(strval(trans('config.month_and_day')))]
@ -354,8 +354,8 @@ Breadcrumbs::register(
if ($moment === 'all') {
$breadcrumbs->push(trans('firefly.everything'), route('categories.no-category', ['all']));
}
// when is specific period:
if ($moment !== 'all') {
// when is specific period or when empty:
if ($moment !== 'all' && $moment !== '(nothing)') {
$title = trans(
'firefly.between_dates_breadcrumb', ['start' => $start->formatLocalized(strval(trans('config.month_and_day'))),
'end' => $end->formatLocalized(strval(trans('config.month_and_day')))]
@ -704,14 +704,14 @@ Breadcrumbs::register(
Breadcrumbs::register(
'tags.edit', function (BreadCrumbGenerator $breadcrumbs, Tag $tag) {
$breadcrumbs->parent('tags.show', $tag, '', new Carbon, new Carbon);
$breadcrumbs->parent('tags.show', $tag, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('breadcrumbs.edit_tag', ['tag' => e($tag->tag)]), route('tags.edit', [$tag->id]));
}
);
Breadcrumbs::register(
'tags.delete', function (BreadCrumbGenerator $breadcrumbs, Tag $tag) {
$breadcrumbs->parent('tags.show', $tag, '', new Carbon, new Carbon);
$breadcrumbs->parent('tags.show', $tag, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('breadcrumbs.delete_tag', ['tag' => e($tag->tag)]), route('tags.delete', [$tag->id]));
}
);
@ -724,7 +724,8 @@ Breadcrumbs::register(
if ($moment === 'all') {
$breadcrumbs->push(trans('firefly.everything'), route('tags.show', [$tag->id, $moment]));
}
if ($moment !== 'all') {
// when is specific period or when empty:
if ($moment !== 'all' && $moment !== '(nothing)') {
$title = trans(
'firefly.between_dates_breadcrumb', ['start' => $start->formatLocalized(strval(trans('config.month_and_day'))),
'end' => $end->formatLocalized(strval(trans('config.month_and_day')))]
@ -747,8 +748,8 @@ Breadcrumbs::register(
$breadcrumbs->push(trans('firefly.everything'), route('transactions.index', [$what, 'all']));
}
// when is specific period:
if ($moment !== 'all') {
// when is specific period or when empty:
if ($moment !== 'all' && $moment !== '(nothing)') {
$title = trans(
'firefly.between_dates_breadcrumb', ['start' => $start->formatLocalized(strval(trans('config.month_and_day'))),
'end' => $end->formatLocalized(strval(trans('config.month_and_day')))]
@ -761,7 +762,7 @@ Breadcrumbs::register(
Breadcrumbs::register(
'transactions.create', function (BreadCrumbGenerator $breadcrumbs, string $what) {
$breadcrumbs->parent('transactions.index', $what, '', new Carbon, new Carbon);
$breadcrumbs->parent('transactions.index', $what, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('breadcrumbs.create_' . e($what)), route('transactions.create', [$what]));
}
);
@ -783,7 +784,7 @@ Breadcrumbs::register(
'transactions.show', function (BreadCrumbGenerator $breadcrumbs, TransactionJournal $journal) {
$what = strtolower($journal->transactionType->type);
$breadcrumbs->parent('transactions.index', $what, '', new Carbon, new Carbon);
$breadcrumbs->parent('transactions.index', $what, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push($journal->description, route('transactions.show', [$journal->id]));
}
);
@ -808,7 +809,7 @@ Breadcrumbs::register(
if ($journals->count() > 0) {
$journalIds = $journals->pluck('id')->toArray();
$what = strtolower($journals->first()->transactionType->type);
$breadcrumbs->parent('transactions.index', $what, '', new Carbon, new Carbon);
$breadcrumbs->parent('transactions.index', $what, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('firefly.mass_edit_journals'), route('transactions.mass.edit', $journalIds));
return;
@ -823,7 +824,7 @@ Breadcrumbs::register(
$journalIds = $journals->pluck('id')->toArray();
$what = strtolower($journals->first()->transactionType->type);
$breadcrumbs->parent('transactions.index', $what, '', new Carbon, new Carbon);
$breadcrumbs->parent('transactions.index', $what, '(nothing)', new Carbon, new Carbon);
$breadcrumbs->push(trans('firefly.mass_edit_journals'), route('transactions.mass.delete', $journalIds));
}
);

View File

@ -309,7 +309,6 @@ class ImportStorage
$journal->date = $date->format('Y-m-d');
$journal->order = 0;
$journal->tag_count = 0;
$journal->encrypted = 0;
$journal->completed = false;
if (!$journal->save()) {

View File

@ -33,8 +33,6 @@ use FireflyIII\Helpers\Report\PopupReport;
use FireflyIII\Helpers\Report\PopupReportInterface;
use FireflyIII\Helpers\Report\ReportHelper;
use FireflyIII\Helpers\Report\ReportHelperInterface;
use FireflyIII\Import\ImportProcedure;
use FireflyIII\Import\ImportProcedureInterface;
use FireflyIII\Repositories\User\UserRepository;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\Support\Amount;
@ -43,7 +41,6 @@ use FireflyIII\Support\FireflyConfig;
use FireflyIII\Support\Navigation;
use FireflyIII\Support\Preferences;
use FireflyIII\Support\Steam;
use FireflyIII\Support\Twig\Account;
use FireflyIII\Support\Twig\AmountFormat;
use FireflyIII\Support\Twig\General;
use FireflyIII\Support\Twig\Journal;
@ -140,7 +137,6 @@ class FireflyServiceProvider extends ServiceProvider
// other generators
$this->app->bind(ProcessorInterface::class, Processor::class);
$this->app->bind(ImportProcedureInterface::class, ImportProcedure::class);
$this->app->bind(UserRepositoryInterface::class, UserRepository::class);
$this->app->bind(AttachmentHelperInterface::class, AttachmentHelper::class);

20
composer.lock generated
View File

@ -664,16 +664,16 @@
},
{
"name": "laravel/framework",
"version": "v5.4.27",
"version": "v5.4.28",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
"reference": "66f5e1b37cbd66e730ea18850ded6dc0ad570404"
"reference": "442511fc62121085d184355e4f964c88942bbecb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/laravel/framework/zipball/66f5e1b37cbd66e730ea18850ded6dc0ad570404",
"reference": "66f5e1b37cbd66e730ea18850ded6dc0ad570404",
"url": "https://api.github.com/repos/laravel/framework/zipball/442511fc62121085d184355e4f964c88942bbecb",
"reference": "442511fc62121085d184355e4f964c88942bbecb",
"shasum": ""
},
"require": {
@ -789,7 +789,7 @@
"framework",
"laravel"
],
"time": "2017-06-15T19:08:25+00:00"
"time": "2017-06-30T13:43:07+00:00"
},
{
"name": "laravelcollective/html",
@ -2698,16 +2698,16 @@
"packages-dev": [
{
"name": "barryvdh/laravel-debugbar",
"version": "v2.4.0",
"version": "v2.4.1",
"source": {
"type": "git",
"url": "https://github.com/barryvdh/laravel-debugbar.git",
"reference": "de15d00a74696db62e1b4782474c27ed0c4fc763"
"reference": "af98b3a4ccac9364f2145fae974ff3392ec402b1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/de15d00a74696db62e1b4782474c27ed0c4fc763",
"reference": "de15d00a74696db62e1b4782474c27ed0c4fc763",
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/af98b3a4ccac9364f2145fae974ff3392ec402b1",
"reference": "af98b3a4ccac9364f2145fae974ff3392ec402b1",
"shasum": ""
},
"require": {
@ -2756,7 +2756,7 @@
"profiler",
"webprofiler"
],
"time": "2017-06-01T17:46:08+00:00"
"time": "2017-06-14T07:44:44+00:00"
},
{
"name": "barryvdh/laravel-ide-helper",

View File

@ -23,7 +23,7 @@ return [
'is_demo_site' => false,
],
'encryption' => (is_null(env('USE_ENCRYPTION')) || env('USE_ENCRYPTION') === true),
'version' => '4.6.0',
'version' => '4.6.1',
'maxUploadSize' => 15242880,
'allowedMimes' => ['image/png', 'image/jpeg', 'application/pdf'],
'list_length' => 10,

View File

@ -16,8 +16,8 @@ var descriptions = {};
$(document).ready(function () {
"use strict";
$('.btn-do-split').click(cloneRow);
$('.remove-current-split').click(removeRow);
$('.btn-do-split').click(cloneDivRow);
$('.remove-current-split').click(removeDivRow);
$.getJSON('json/expense-accounts').done(function (data) {
destAccounts = data;
@ -67,28 +67,36 @@ $(document).ready(function () {
}
});
function removeRow(e) {
/**
* New and cool
* @param e
* @returns {boolean}
*/
function removeDivRow(e) {
"use strict";
var rows = $('table.split-table tbody tr');
var rows = $('div.split_row');
if (rows.length === 1) {
return false;
}
var row = $(e.target);
var index = row.data('split');
$('table.split-table tbody tr[data-split="' + index + '"]').remove();
$('div.split_row[data-split="' + index + '"]').remove();
resetSplits();
resetDivSplits();
return false;
}
function cloneRow() {
/**
* New and cool
* @returns {boolean}
*/
function cloneDivRow() {
"use strict";
var source = $('.table.split-table tbody tr').last().clone();
var count = $('.split-table tbody tr').length + 1;
var source = $('div.split_row').last().clone();
var count = $('div.split_row').length + 1;
source.removeClass('initial-row');
source.find('.count').text('#' + count);
@ -107,26 +115,37 @@ function cloneRow() {
source.find('input[name$="description]"]').typeahead({source: descriptions});
}
$('.split-table tbody').append(source);
$('div.split_row_holder').append(source);
// remove original click things, add them again:
$('.remove-current-split').unbind('click').click(removeRow);
$('.remove-current-split').unbind('click').click(removeDivRow);
calculateSum();
resetSplits();
resetDivSplits();
return false;
}
function resetSplits() {
/**
* New and hip
*/
function resetDivSplits() {
"use strict";
// loop rows, reset numbers:
// update the row split number:
$.each($('table.split-table tbody tr'), function (i, v) {
$.each($('div.split_row'), function (i, v) {
var row = $(v);
row.attr('data-split', i);
// add or remove class with bg thing
if(i % 2 === 0) {
row.removeClass('bg-gray-light');
}
if(i % 2 === 1) {
row.addClass('bg-gray-light');
}
});
// loop each remove button, update the index
@ -198,6 +217,7 @@ function resetSplits() {
});
}
function calculateSum() {
"use strict";
var sum = 0;

File diff suppressed because one or more lines are too long

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'Die Funktionen, auf welche sie zugreifen wollen, steht Demo-Benutzer nicht zur Verfügung.',
'exchange_rate_instructions' => 'Das Girokonto "@name" akzeptiert nur Transaktionen in @native_currency. Wenn Sie stattdessen @foreign_currency verwenden wollen, sollten Sie sicherstellen, dass der Betrag auch in @native_currency angengeben ist:',
'transfer_exchange_rate_instructions' => 'Das Quellkonto "@source_name" akzeptiert nur Transaktionen in @source_currency. Das Zielkonto "@dest_name" akzeptiert nur Transaktionen in @dest_currency. Sie müssen den Betrag in beiden Währungen korrenkt angeben.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'Jährlich',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Asset account "@name" only accepts transactions in @native_currency. If you wish to use @foreign_currency instead, make sure that the amount in @native_currency is known as well:',
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'yearly',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Asset account "@name" only accepts transactions in @native_currency. If you wish to use @foreign_currency instead, make sure that the amount in @native_currency is known as well:',
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'yearly',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Asset account "@name" only accepts transactions in @native_currency. If you wish to use @foreign_currency instead, make sure that the amount in @native_currency is known as well:',
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'yearly',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'De functie die je probeert te gebruiken is niet beschikbaar voor gebruikers van de demo.',
'exchange_rate_instructions' => 'Betaalrekening "@naam" accepteert alleen boekingen in @native_currency. Als je @foreign_currency wilt gebruiken moet je ook het bedrag in @native_currency opgeven:',
'transfer_exchange_rate_instructions' => 'Bronbetaalrekening "@source_name" accepteert alleen overschrijvingen in @source_currency. Doelbetaalrekening "@dest_name: accepteert alleen overschrijvingen in @dest_currency. Je moet het juiste bedrag in beide valuta opgeven.',
'transaction_data' => 'Transactiegegevens',
// repeat frequencies:
'repeat_freq_yearly' => 'jaarlijks',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Asset account "@name" only accepts transactions in @native_currency. If you wish to use @foreign_currency instead, make sure that the amount in @native_currency is known as well:',
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'rocznie',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Asset account "@name" only accepts transactions in @native_currency. If you wish to use @foreign_currency instead, make sure that the amount in @native_currency is known as well:',
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'anual',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Premoženjski račun "@name" sprejema samo transakcije v @native_currency. Če želite namesto tega uporabiti @foreign_currency, morate podati tudi znesek v @native_currency:',
'transfer_exchange_rate_instructions' => 'Izvorni premoženjski račun "@source_name" sprejema samo transakcije v @source_currency. Ciljni premoženjski račun "@dest_name" sprejema samo transakcije v @dest_currency. Podati morate znesek v obeh valutah.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'yearly',

View File

@ -150,6 +150,7 @@ return [
'not_available_demo_user' => 'The feature you try to access is not available to demo users.',
'exchange_rate_instructions' => 'Asset account "@name" only accepts transactions in @native_currency. If you wish to use @foreign_currency instead, make sure that the amount in @native_currency is known as well:',
'transfer_exchange_rate_instructions' => 'Source asset account "@source_name" only accepts transactions in @source_currency. Destination asset account "@dest_name" only accepts transactions in @dest_currency. You must provide the transferred amount correctly in both currencies.',
'transaction_data' => 'Transaction data',
// repeat frequencies:
'repeat_freq_yearly' => 'yearly',

View File

@ -10,7 +10,7 @@
<input type="hidden" name="id" value="{{ account.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -25,7 +25,7 @@
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@ -6,7 +6,7 @@
{% block content %}
<div class="row">
<div class="col-lg-12 col-md-10 col-sm-12">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
@ -16,7 +16,6 @@
{{ trans('firefly.chart_account_in_period', {name: account.name, start: start.formatLocalized(monthAndDayFormat), end: end.formatLocalized(monthAndDayFormat) }) }}
{% endif %}
</h3>
<!-- ACTIONS MENU -->
<div class="box-tools pull-right">
<div class="btn-group">
<button class="btn btn-box-tool dropdown-toggle" data-toggle="dropdown"><i class="fa fa-ellipsis-v"></i></button>
@ -73,14 +72,14 @@
</div>
{% if periods.count > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-10 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-8 col-md-4 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('accounts.show',[account.id, 'all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if periods.count > 0 %}col-lg-10 col-md-10 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="{% if periods.count > 0 %}col-lg-10 col-md-8 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
@ -106,7 +105,7 @@
</div>
</div>
{% if periods.count > 0 %}
<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12">
{% for period in periods %}
{% if (period.spent != 0 or period.earned != 0) %}
<div class="box {% if period.date == start %}box-solid box-primary{% endif %}">

View File

@ -10,7 +10,7 @@
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -26,7 +26,7 @@
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@ -11,7 +11,7 @@
<input type="hidden" name="id" value="{{ bill.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -28,7 +28,7 @@
</div>
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@ -11,7 +11,7 @@
<input name="active" type="hidden" value="1">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -21,7 +21,7 @@
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<!-- panel for options -->
<div class="box">
<div class="box-header with-border">

View File

@ -8,7 +8,7 @@
{{ Form.model(budget, {'class' : 'form-horizontal','id' : 'update','url' : route('budgets.update',budget.id) } ) }}
<input type="hidden" name="id" value="{{ budget.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -20,7 +20,7 @@
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<!-- panel for options -->
<div class="box">
<div class="box-header with-border">

View File

@ -6,17 +6,17 @@
{% block content %}
<div class="row">
<div class="col-lg-9 col-sm-8 col-md-8">
<div class="col-lg-9 col-md-8 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ periodStart }} &mdash; {{ periodEnd }}</h3>
</div>
<div class="box-body">
<div class="row">
<div class="col-lg-6 col-md-4 col-sm-3">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<small>{{ 'budgeted'|_ }}: <span id="budgetedAmount" class="text-success">{{ budgeted|formatAmountPlain }}</span></small>
</div>
<div class="col-lg-6 col-md-4 col-sm-3" style="text-align:right;">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6" style="text-align:right;">
<small>{{ trans('firefly.available_between',{start : periodStart, end: periodEnd }) }}:
<a href="#" class="updateIncome"><span id="available"
data-value="{{ available }}">{{ available|formatAmountPlain }}</span></a>
@ -25,7 +25,7 @@
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="progress budgetedBar">
<div class="progress-bar progress-bar-danger" id="progress-bar-danger" role="progressbar" aria-valuenow="0" aria-valuemin="0"
aria-valuemax="100" style="width: 0;"></div>
@ -37,12 +37,12 @@
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-4 col-sm-3">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<small>{{ trans('firefly.spent_between', {start: periodStart, end: periodEnd}) }}: {{ spent|formatAmount }}</small>
</div>
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="progress spentBar">
<div class="progress-bar progress-bar-warning" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0;"></div>
@ -57,8 +57,7 @@
</div>
</div>
</div>
<div class="col-lg-3 col-sm-4 col-md-4">
<div class="col-lg-3 col-md-4 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transactionsWithoutBudget'|_ }}</h3>
@ -81,7 +80,6 @@
</div>
</div>
{% endif %}
</div>
</div>
{% if budgets.count == 0 and inactive.count == 0 %}
@ -97,7 +95,7 @@
</div>
<div class="box-body">
<div class="row">
<div class="col-lg-2">
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12">
<select class="form-control selectPeriod" name="previous">
<option label="{{ 'select_date'|_ }}" value="x">{{ 'select_date'|_ }}</option>
{% for format, previousLabel in previousLoop %}
@ -105,14 +103,14 @@
{% endfor %}
</select>
</div>
<div class="col-lg-8 text-center">
<div class="col-lg-8 col-md-4 col-sm-12 col-xs-12 text-center">
<div class="btn btn-group btn-group-lg" style="padding-top:0;">
<a href="{{ route('budgets.index', [prev.format('Y-m-d')]) }}" class="btn btn-default" title="{{ prevText }}">&larr;</a>
<a href="{{ route('budgets.index', [start.format('Y-m-d')]) }}" class="btn btn-default">{{ currentMonth }}</a>
<a href="{{ route('budgets.index', [next.format('Y-m-d')]) }}" class="btn btn-default" title="{{ nextText }}">&rarr;</a>
</div>
</div>
<div class="col-lg-2 text-right">
<div class="col-lg-2 col-md-4 col-sm-12 col-xs-12 text-right">
<select class="form-control selectPeriod" name="next">
<option label="{{ 'select_date'|_ }}" value="x">{{ 'select_date'|_ }}</option>
{% for format, nextLabel in nextLoop %}
@ -136,18 +134,18 @@
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width:10%;">&nbsp;</th>
<th class="hidden-sm hidden-xs" style="width:10%;">&nbsp;</th>
<th>{{ 'budget'|_ }}</th>
<th style="width:25%;">{{ 'budgeted'|_ }}</th>
<th>{{ 'spent'|_ }}</th>
<th>{{ 'left'|_ }}</th>
<th class="hidden-sm hidden-xs">{{ 'spent'|_ }}</th>
<th class="hidden-sm hidden-xs">{{ 'left'|_ }}</th>
</tr>
</thead>
<tbody>
<tr>
{% for budget in budgets %}
<tr>
<td>
<td class="hidden-sm hidden-xs">
<div class="btn-group btn-group-xs">
<a href="{{ route('budgets.edit',budget.id) }}" class="btn btn-xs btn-default"><i class="fa fa-fw fa-pencil"></i></a>
<a href="{{ route('budgets.delete',budget.id) }}" class="btn btn-xs btn-danger"><i class="fa fa-fw fa-trash-o"></i></a>
@ -176,10 +174,10 @@
step="1" min="0" name="amount" type="number">
</div>
</td>
<td class="spent" data-id="{{ budget.id }}" data-spent="{{ budgetInformation[budget.id]['spent'] }}">
<td class="hidden-sm hidden-xs spent" data-id="{{ budget.id }}" data-spent="{{ budgetInformation[budget.id]['spent'] }}">
{{ budgetInformation[budget.id]['spent']|formatAmount }}
</td>
<td class="left" data-id="{{ budget.id }}">
<td class="hidden-sm hidden-xs left" data-id="{{ budget.id }}">
{{ (repAmount + budgetInformation[budget.id]['spent'])|formatAmount }}
</td>
</tr>

View File

@ -9,14 +9,14 @@
{# upper show-all instruction #}
{% if periods.count > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-10 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-offset-9 col-lg-3 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('budgets.no-budget',['all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if periods.count > 0 %}col-lg-10 col-md-10 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="{% if periods.count > 0 %}col-lg-9 col-md-9 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ subTitle }}</h3>
@ -39,7 +39,7 @@
</div>
{% if periods.count > 0 %}
<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-3 col-md-3 col-sm-12 col-xs-12">
{% for period in periods %}
{% if period.count > 0 %}
<div class="box {% if period.date == start %}box-solid box-primary{% endif %}">
@ -70,7 +70,7 @@
{# lower show-all instruction #}
{% if periods.count > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-10 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-offset-9 col-lg-3 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('budgets.no-budget',['all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>

View File

@ -9,7 +9,7 @@
<form method="POST" action="{{ route('categories.store') }}" accept-charset="UTF-8" class="form-horizontal" id="store">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -20,7 +20,7 @@
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<!-- panel for options -->
<div class="box">

View File

@ -9,14 +9,14 @@
{# upper show-all instruction #}
{% if periods.count > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-10 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('categories.no-category',['all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>
{% endif %}
<div class="row">
<div class="{% if periods.count > 0 %}col-lg-10 col-md-10 col-sm-12{% else %}col-lg-12 col-md-12 col-sm-12{% endif %}">
<div class="{% if periods.count > 0 %}col-lg-10 col-md-9 col-sm-12 col-xs-12{% else %}col-lg-12 col-md-12 col-sm-12 col-xs-12{% endif %}">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ subTitle }}</h3>
@ -39,7 +39,7 @@
</div>
{% if periods.count > 0 %}
<div class="col-lg-2 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-2 col-md-3 col-sm-12 col-xs-12">
{% for period in periods %}
{% if period.count > 0 %}
<div class="box {% if period.date == start %}box-solid box-primary{% endif %}">
@ -84,7 +84,7 @@
{# lower show-all instruction #}
{% if periods.count > 0 %}
<div class="row">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-10 col-md-2 col-sm-12 col-xs-12">
<div class="col-lg-offset-10 col-lg-2 col-md-offset-9 col-md-3 col-sm-12 col-xs-12">
<p class="small text-center"><a href="{{ route('categories.no-category',['all']) }}">{{ 'showEverything'|_ }}</a></p>
</div>
</div>

View File

@ -8,7 +8,7 @@
<div class="row">
{% if moment != 'all' %}
{# both charts #}
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
@ -20,7 +20,7 @@
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-12 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">
@ -65,7 +65,7 @@
<h3 class="box-title">{{ 'transactions'|_ }}</h3>
</div>
<div class="box-body">
{% include 'list.journals' with {hideCategories: true} %}
{% include 'list.journals' with {hideCategories: true, hideBills: true} %}
{% if periods.count > 0 %}
<p>
<i class="fa fa-calendar" aria-hidden="true"></i>

View File

@ -8,7 +8,7 @@
<form method="POST" action="{{ route('currencies.store') }}" accept-charset="UTF-8" class="form-horizontal" id="store">
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -23,7 +23,7 @@
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<!-- panel for options -->
<div class="box">

View File

@ -9,7 +9,7 @@
<input type="hidden" name="id" value="{{ currency.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -23,7 +23,7 @@
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<!-- panel for options -->
<div class="box">

View File

@ -4,14 +4,14 @@
<th class="hidden-sm hidden-xs" data-defaultsort="disabled">&nbsp;</th>
<th data-defaultsign="az">{{ trans('list.name') }}</th>
{% if what == 'asset' %}
<th data-defaultsign="az" class="hidden-sm hidden-xs">{{ trans('list.role') }}</th>
<th data-defaultsign="az" class="hidden-sm hidden-xs hidden-md">{{ trans('list.role') }}</th>
{% endif %}
<th data-defaultsign="az" class="hidden-sm hidden-xs">{{ trans('list.iban') }}</th>
<th data-defaultsign="_19">{{ trans('list.currentBalance') }}</th>
<th class="hidden-sm hidden-xs">{{ trans('list.active') }}</th>
<th data-defaultsign="month" class="hidden-sm hidden-xs">{{ trans('list.lastActivity') }}</th>
<th data-defaultsign="month" class="hidden-sm hidden-xs hidden-md">{{ trans('list.lastActivity') }}</th>
<th data-defaultsign="_19"
class="hidden-sm hidden-xs">{{ trans('list.balanceDiff', {'start' : Session.get('start').formatLocalized(monthAndDayFormat),'end' : Session.get('end').formatLocalized(monthAndDayFormat)}) }}</th>
class="hidden-sm hidden-xs hidden-md">{{ trans('list.balanceDiff', {'start' : Session.get('start').formatLocalized(monthAndDayFormat),'end' : Session.get('end').formatLocalized(monthAndDayFormat)}) }}</th>
</tr>
</thead>
<tbody>
@ -25,7 +25,7 @@
</td>
<td data-value="{{ account.name }}"><a href="{{ route('accounts.show',account.id) }}">{{ account.name }}</a></td>
{% if what == "asset" %}
<td class="hidden-sm hidden-xs">
<td class="hidden-sm hidden-xs hidden-md">
{% for entry in account.accountmeta %}
{% if entry.name == 'accountRole' %}
{{ ('account_role_'~entry.data)|_ }}
@ -47,15 +47,15 @@
{% endif %}
</td>
{% if account.lastActivityDate %}
<td class="hidden-sm hidden-xs" data-value="{{ account.lastActivityDate.format('Y-m-d H-i-s') }} ">
<td class="hidden-sm hidden-xs hidden-md" data-value="{{ account.lastActivityDate.format('Y-m-d H-i-s') }} ">
{{ account.lastActivityDate.formatLocalized(monthAndDayFormat) }}
</td>
{% else %}
<td class="hidden-sm hidden-xs" data-value="0000-00-00 00-00-00">
<td class="hidden-sm hidden-xs hidden-md" data-value="0000-00-00 00-00-00">
<em>{{ 'never'|_ }}</em>
</td>
{% endif %}
<td class="hidden-sm hidden-xs" data-value="{{ account.difference }}" style="text-align: right;">
<td class="hidden-sm hidden-xs hidden-md" data-value="{{ account.difference }}" style="text-align: right;">
<span style="margin-right:5px;">
{{ formatAmountByAccount(account, account.difference) }}
</span>

View File

@ -3,12 +3,12 @@
<tr>
<th class="hidden-sm hidden-xs" data-defaultsort="disabled">&nbsp;</th>
<th>{{ trans('list.name') }}</th>
<th data-defaultsign="az" class="hidden-sm hidden-xs">{{ trans('list.matchesOn') }}</th>
<th data-defaultsign="az" class="hidden-sm hidden-md hidden-xs">{{ trans('list.matchesOn') }}</th>
<th data-defaultsign="_19" colspan="2">{{ trans('list.matchingAmount') }}</th>
<th data-defaultsign="month" class="hidden-sm hidden-xs">{{ trans('list.paid_current_period') }}</th>
<th data-defaultsign="month" class="hidden-sm hidden-xs">{{ trans('list.next_expected_match') }}</th>
<th class="hidden-sm hidden-xs">{{ trans('list.active') }}</th>
<th class="hidden-sm hidden-xs">{{ trans('list.automatch') }}</th>
<th class="hidden-sm hidden-xs hidden-md">{{ trans('list.active') }}</th>
<th class="hidden-sm hidden-xs hidden-md">{{ trans('list.automatch') }}</th>
<th data-defaultsign="az" class="hidden-sm hidden-xs">{{ trans('list.repeat_freq') }}</th>
</tr>
</thead>
@ -24,7 +24,7 @@
<td data-value="{{ entry.name }}">
<a href="{{ route('bills.show',entry.id) }}" title="{{ entry.name }}">{{ entry.name }}</a>
</td>
<td class="hidden-sm hidden-xs" data-value="{{ entry.match }}">
<td class="hidden-sm hidden-md hidden-xs" data-value="{{ entry.match }}">
{% for match in entry.match|split(',') %}
<span class="label label-info">{{ match }}</span>
{% endfor %}
@ -40,37 +40,33 @@
</span>
</td>
{#
Terms:
paidDates: journals linked to the bill between $start and $end.
payDates: dates in this period ($start and $end) system thinks bill should be paid.
Possible situations:
<!--
Some debug data:
entry.paidDates.count(): {{ entry.paidDates.count() }}
entry.paidDates set:
entry.payDates.count(): {{ entry.payDates.count() }}
active: {% if entry.active %}true{% else %}false{% endif %}
-->
1:
{#
paidDates = 0 (bill not paid in period)
payDates = 0 (bill not expected to be paid in this period)
bill is active.
2:
paidDates = 0 (bill not paid in period)
payDates = 0 (bill IS expected to be paid in this period)
bill is active
3:
paidDates >= payDates (bill is paid as many times or more than the amount of times expected).
4:
bill is not active
#}
{% if entry.paidDates.count() == 0 and entry.payDates.count() == 0 and entry.active %}
<td class="text-muted" data-value="0001-00-00 00-00-00">
{{ 'not_expected_period'|_ }}
</td>
<td class=" hidden-sm hidden-xs" data-value="{{ entry.nextExpectedMatch.format('Y-m-d H-i-s') }}">
<td class="hidden-sm hidden-xs" data-value="{{ entry.nextExpectedMatch.format('Y-m-d H-i-s') }}">
{{ entry.nextExpectedMatch.formatLocalized(monthAndDayFormat) }}
</td>
{% endif %}
{#
paidDates = 0 (bill not paid in period)
payDates > 0 (bill IS expected to be paid in this period)
bill is active
#}
{% if entry.paidDates.count() == 0 and entry.payDates.count() > 0 and entry.active %}
<td class="text-danger" data-value="0002-00-00 00-00-00">
{{ 'not_or_not_yet'|_ }}
@ -79,7 +75,12 @@
{{ entry.nextExpectedMatch.formatLocalized(monthAndDayFormat) }}
</td>
{% endif %}
{% if entry.paidDates.count() >= entry.payDates.count() and entry.payDates.count() > 0 and entry.active %}
{#
paidDates >= 0 (bill is paid X times).
Don't care about payDates.
#}
{% if entry.paidDates.count() > 0 and entry.active %}
<td class="text-success" data-value="{{ entry.paidDates.first.format('Y-m-d H-i-s') }}">
{% for date in entry.paidDates %}
{{ date.formatLocalized(monthAndDayFormat) }}<br/>
@ -89,6 +90,7 @@
{{ entry.nextExpectedMatch.formatLocalized(monthAndDayFormat) }}
</td>
{% endif %}
{# bill is not active #}
{% if not entry.active %}
<td class="text-muted" data-value="0000-00-00 00-00-00">
~
@ -97,14 +99,14 @@
~
</td>
{% endif %}
<td class="hidden-sm hidden-xs" data-value="{{ entry.active }}">
<td class="hidden-sm hidden-xs hidden-md" data-value="{{ entry.active }}">
{% if entry.active %}
<i class="fa fa-fw fa-check"></i>
{% else %}
<i class="fa fa-fw fa-ban"></i>
{% endif %}
</td>
<td class="hidden-sm hidden-xs" data-value="{{ entry.automatch }}">
<td class="hidden-sm hidden-xs hidden-md" data-value="{{ entry.automatch }}">
{% if entry.automatch %}
<i class="fa fa-fw fa-check"></i>
{% else %}

View File

@ -7,9 +7,9 @@
<th class="hidden-xs select_boxes" colspan="2" style="display: none;"><input name="select_all" class="select_all" type="checkbox"/></th>
<th>{{ trans('list.description') }}</th>
<th>{{ trans('list.amount') }}</th>
<th class="hidden-sm hidden-xs">{{ trans('list.date') }}</th>
<th class="hidden-xs">{{ trans('list.from') }}</th>
<th class="hidden-xs">{{ trans('list.to') }}</th>
<th class="hidden-xs hidden-sm">{{ trans('list.date') }}</th>
<th class="hidden-xs hidden-sm hidden-md">{{ trans('list.from') }}</th>
<th class="hidden-xs hidden-sm hidden-md">{{ trans('list.to') }}</th>
<!-- Hide budgets? -->
{% if not hideBudgets %}
<th class="hidden-xs"><i class="fa fa-tasks fa-fw" title="{{ trans('list.budget') }}"></i></th>
@ -69,10 +69,10 @@
<td class="hidden-sm hidden-xs">
{{ transaction.date.formatLocalized(monthAndDayFormat) }}
</td>
<td class="hidden-xs">
<td class="hidden-xs hidden-sm hidden-md">
{{ transactionSourceAccount(transaction) }}
</td>
<td class="hidden-xs">
<td class="hidden-xs hidden-sm hidden-md">
{{ transactionDestinationAccount(transaction) }}
</td>

View File

@ -10,7 +10,7 @@
<input name="_token" type="hidden" value="{{ csrf_token() }}">
<input type="hidden" name="repeats" value="0"/>
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -24,7 +24,7 @@
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@ -11,7 +11,7 @@
<input type="hidden" name="id" value="{{ piggyBank.id }}"/>
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -26,7 +26,7 @@
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@ -6,6 +6,7 @@
{% block content %}
{# chart #}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">
@ -19,6 +20,7 @@
</div>
</div>
{# account balances and income vs. expense #}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="box">
@ -32,10 +34,25 @@
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
</div>
<div class="box-body table-responsive no-padding" id="incomeVsExpenseReport">
</div>
{# loading indicator #}
<div class="overlay">
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>
</div>
</div>
{# in and out #}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'income'|_ }}</h3>
@ -48,7 +65,7 @@
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses'|_ }}</h3>
@ -62,22 +79,7 @@
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
</div>
<div class="box-body table-responsive no-padding" id="incomeVsExpenseReport">
</div>
{# loading indicator #}
<div class="overlay">
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8 col-md-8 col-sm-12">
<div class="box">

View File

@ -6,6 +6,7 @@
{% block content %}
{# charts #}
<div class="row">
<div class="col-lg-8 col-md-8 col-sm-12">
<div class="box">
@ -29,9 +30,9 @@
</div>
</div>
{# balances and income vs. expense. #}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'accountBalances'|_ }}</h3>
@ -44,7 +45,24 @@
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
</div>
<div class="box-body table-responsive no-padding" id="incomeVsExpenseReport">
</div>
{# loading indicator #}
<div class="overlay">
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'income'|_ }}</h3>
@ -57,7 +75,7 @@
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses'|_ }}</h3>
@ -71,22 +89,8 @@
</div>
</div>
</div>
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
</div>
<div class="box-body table-responsive no-padding" id="incomeVsExpenseReport">
</div>
{# loading indicator #}
<div class="overlay">
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>
</div>
</div>
{# net worth #}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">

View File

@ -6,6 +6,7 @@
{% block content %}
{# charts #}
<div class="row">
<div class="col-lg-8 col-md-8 col-sm-12">
<div class="box" id="year-inc-exp">
@ -28,9 +29,9 @@
</div>
</div>
</div>
{# balances and inc vs exp #}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'accountBalances'|_ }}</h3>
@ -42,6 +43,8 @@
<i class="fa fa-refresh fa-spin"></i>
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'incomeVsExpenses'|_ }}</h3>
@ -54,7 +57,11 @@
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
</div>
{# income and expenses. #}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'income'|_ }}</h3>
@ -67,7 +74,7 @@
</div>
</div>
</div>
<div class="col-lg-3 col-md-3 col-sm-3">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'expenses'|_ }}</h3>
@ -81,6 +88,8 @@
</div>
</div>
</div>
{# net worth #}
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12">
<div class="box">

View File

@ -10,7 +10,7 @@
<input type="hidden" name="what" value="{{ what }}"/>
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -66,7 +66,7 @@
</div>
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optional_field_meta_data'|_ }}</h3>

View File

@ -27,7 +27,7 @@
<div class="row">
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{{ 'mandatoryFields'|_ }}</h3>
@ -74,7 +74,7 @@
</div>
</div>
<div class="col-lg-6 col-md-12 col-sm-12">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optionalFields'|_ }}</h3>

View File

@ -30,7 +30,7 @@
</div>
{% endif %}
<div class="row">
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'transaction_data'|_ }}</h3>
@ -65,7 +65,7 @@
</div>
</div>
</div>
<div class="col-lg-6 col-md-6 col-sm-6">
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
<div class="box">
<div class="box-header with-border">
<h3 class="box-title">{{ 'optional_field_meta_data'|_ }}</h3>
@ -185,105 +185,108 @@
<h3 class="box-title">{{ 'splits'|_ }}</h3>
</div>
<div class="box-body">
<table class="table table-bordered table-condensed table-striped split-table">
<thead>
<tr>
<th>&nbsp;</th>
<th>{{ trans('list.split_number') }}</th>
<th>{{ trans('list.description') }}</th>
<div class="container-fluid split_row_holder">
<div class="row bg-gray-light" style="padding-bottom:3px;">
<div class="col-lg-1 col-md-1 col-sm-6 col-xs-6">&nbsp;</div>
<div class="col-lg-1 col-md-1 col-sm-6 col-xs-6"><strong>{{ trans('list.split_number') }}</strong></div>
<div class="col-lg-3 col-md-5 col-sm-12 col-xs-12"><strong>{{ trans('list.description') }}</strong></div>
{# withdrawal and deposit have a destination. #}
{% if preFilled.what == 'withdrawal' %}
<th>{{ trans('list.destination') }}</th>
<div class="col-lg-2 col-md-5 col-sm-12 col-xs-12"><strong>{{ trans('list.destination') }}</strong></div>
{% endif %}
{# DEPOSIT HAS A SOURCE #}
{# Deposit has a source #}
{% if preFilled.what == 'deposit' %}
<th>{{ trans('list.source') }}</th>
<div class="col-lg-2 col-md-5 col-sm-12 col-xs-12"><strong>{{ trans('list.source') }}</strong></div>
{% endif %}
<div class="col-lg-1 col-md-5 col-sm-12 col-xs-12"><strong>{{ trans('list.amount') }}</strong></div>
{% if transaction.foreign_amount != null %}
<div class="col-lg-1 col-md-7 col-sm-12 col-xs-12">&nbsp;</div>
{% endif %}
<th colspan="2">{{ trans('list.amount') }}</th>
{# only withdrawal has budget #}
{% if preFilled.what == 'withdrawal' %}
<th>{{ trans('list.budget') }}</th>
<div class="col-lg-1 col-md-6 col-sm-12 col-xs-12"><strong>{{ trans('list.budget') }}</strong></div>
{% endif %}
<div class="col-lg-2 col-md-6 col-sm-12 col-xs-12"><strong>{{ trans('list.category') }}</strong></div>
</div>
{% for index, transaction in preFilled.transactions %}
<div class="row {% if loop.index0 % 2 == 1 %}bg-gray-light{% endif %} split_row" data-split="{{ loop.index0 }}">
{# button #}
<div class="col-lg-1 col-md-1 col-sm-6 col-xs-6">
<a href="#" class="btn btn-xs btn-danger remove-current-split" data-split="{{ loop.index0 }}">
<i class="fa fa-trash" data-split="{{ loop.index0 }}"></i></a>
</div>
{# index #}
<div class="col-lg-1 col-md-1 col-sm-6 col-xs-6 count">#{{ loop.index }}</div>
{# description #}
<div class="col-lg-3 col-md-5 col-sm-12 col-xs-12">
<input type="text" name="transactions[{{ loop.index0 }}][description]" value="{{ transaction.description }}"
class="form-control"/>
</div>
{# destination for withdrawals: #}
{% if preFilled.what == 'withdrawal' %}
<div class="col-lg-2 col-md-5 col-sm-12 col-xs-12">
<input type="text" name="transactions[{{ loop.index0 }}][destination_account_name]"
value="{{ transaction.destination_account_name }}" class="form-control"/>
</div>
{% endif %}
<th>{{ trans('list.category') }}</th>
</tr>
</thead>
<tbody>
{% for index, transaction in preFilled.transactions %}
<tr data-split="{{ loop.index0 }}">
<td><a href="#" class="btn btn-xs btn-danger remove-current-split" data-split="{{ loop.index0 }}"><i
class="fa fa-trash" data-split="{{ loop.index0 }}"></i></a></td>
<td class="count">#{{ loop.index }}</td>
<td>
<input type="text" name="transactions[{{ loop.index0 }}][description]" value="{{ transaction.description }}"
class="form-control"/>
</td>
{# source for deposits #}
{% if preFilled.what == 'deposit' %}
<div class="col-lg-2 col-md-5 col-sm-12 col-xs-12">
<input type="text" name="transactions[{{ loop.index0 }}][source_account_name]"
value="{{ transaction.source_account_name }}" class="form-control"/>
</div>
{% endif %}
<!-- withdrawal has several destination names. -->
{% if preFilled.what == 'withdrawal' %}
<td>
<input type="text" name="transactions[{{ loop.index0 }}][destination_account_name]"
value="{{ transaction.destination_account_name }}"
class="form-control"/>
</td>
{% endif %}
{# amount#}
<div class="col-lg-1 col-md-5 col-sm-12 col-xs-12">
<div class="input-group">
<div class="input-group-addon">{{ transaction.transaction_currency_symbol }}</div>
<input type="number" name="transactions[{{ loop.index0 }}][amount]" value="{{ transaction.amount }}"
class="form-control" autocomplete="off" step="any" min="0.01">
</div>
<input type="hidden" name="transactions[{{ loop.index0 }}][transaction_currency_id]"
value="{{ transaction.transaction_currency_id }}">
</div>
{# deposit has several source names #}
{% if preFilled.what == 'deposit' %}
<td>
<input type="text" name="transactions[{{ loop.index0 }}][source_account_name]"
value="{{ transaction.source_account_name }}"
class="form-control"/>
</td>
{% endif %}
{# two fields for amount #}
<td style="width:10%;">
{# foreign amount #}
{% if transaction.foreign_amount != null %}
<div class="col-lg-1 col-md-7 col-sm-12 col-xs-12">
<div class="input-group">
<div class="input-group-addon">{{ transaction.transaction_currency_symbol }}</div>
<input type="number" name="transactions[{{ loop.index0 }}][amount]" value="{{ transaction.amount }}"
<div class="input-group-addon">{{ transaction.foreign_currency_symbol }}</div>
<input type="number" name="transactions[{{ loop.index0 }}][foreign_amount]" value="{{ transaction.foreign_amount }}"
class="form-control" autocomplete="off" step="any" min="0.01">
</div>
<input type="hidden" name="transactions[{{ loop.index0 }}][transaction_currency_id]" value="{{ transaction.transaction_currency_id }}">
</td>
{# foreign amount #}
<td style="width:10%;">
{% if transaction.foreign_amount != null %}
<div class="input-group">
<div class="input-group-addon">{{ transaction.foreign_currency_symbol }}</div>
<input type="number" name="transactions[{{ loop.index0 }}][foreign_amount]"
value="{{ transaction.foreign_amount }}"
class="form-control" autocomplete="off" step="any" min="0.01">
</div>
<input type="hidden" name="transactions[{{ loop.index0 }}][foreign_currency_id]" value="{{ transaction.foreign_currency_id }}">
{% endif %}
</td>
<input type="hidden"
name="transactions[{{ loop.index0 }}][foreign_currency_id]"
value="{{ transaction.foreign_currency_id }}">
</div>
{% endif %}
{% if preFilled.what == 'withdrawal' %}
<td>
<select class="form-control" name="transactions[{{ loop.index0 }}][budget_id]">
{% for key, budget in budgets %}
<option label="{{ budget }}" value="{{ key }}"
{% if transaction.budget_id == key %}
selected="selected"
{% endif %}
>{{ budget }}</option>
{% endfor %}
</select>
</td>
{% endif %}
<td>
<input type="text" name="transactions[{{ loop.index0 }}][category]" value="{{ transaction.category }}"
class="form-control"/>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{# budget #}
{% if preFilled.what == 'withdrawal' %}
<div class="col-lg-1 col-md-6 col-sm-12 col-xs-12">
<select class="form-control" name="transactions[{{ loop.index0 }}][budget_id]">
{% for key, budget in budgets %}
<option label="{{ budget }}" value="{{ key }}"
{% if transaction.budget_id == key %} selected="selected"{% endif %}>{{ budget }}</option>
{% endfor %}
</select>
</div>
{% endif %}
{# category #}
<div class="col-lg-2 col-md-6 col-sm-12 col-xs-12">
<input type="text" name="transactions[{{ loop.index0 }}][category]" value="{{ transaction.category }}"
class="form-control"/>
</div>
</div>
{% endfor %}
</div>
<p>
<br/>
<a href="#" class="btn btn-default btn-do-split"><i class="fa fa-plus-circle"></i> {{ 'add_another_split'|_ }}</a>

View File

@ -76,6 +76,7 @@ Route::group(
}
);
/**
* Account Controller
*/
@ -121,8 +122,8 @@ Route::group(
Route::get('edit/{bill}', ['uses' => 'BillController@edit', 'as' => 'edit']);
Route::get('delete/{bill}', ['uses' => 'BillController@delete', 'as' => 'delete']);
Route::get('show/{bill}', ['uses' => 'BillController@show', 'as' => 'show']);
Route::post('store', ['uses' => 'BillController@store', 'as' => 'store']);
Route::post('store', ['uses' => 'BillController@store', 'as' => 'store']);
Route::post('update/{bill}', ['uses' => 'BillController@update', 'as' => 'update']);
Route::post('destroy/{bill}', ['uses' => 'BillController@destroy', 'as' => 'destroy']);
}