mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-11-21 09:00:07 +00:00
Merge branch 'develop' into issues/509
# Conflicts: # public/js/ff/transactions/list.js
This commit is contained in:
@@ -1,5 +1,24 @@
|
|||||||
# 4.6.1.1
|
|
||||||
|
|
||||||
|
# 4.6.12
|
||||||
|
- Support for Indonesian.
|
||||||
|
- New report, see [issue 384](https://github.com/firefly-iii/firefly-iii/issues/384)
|
||||||
|
- [Issue 964](https://github.com/firefly-iii/firefly-iii/issues/964) as suggested by [gavu](https://github.com/gavu)
|
||||||
|
- Greatly improved Docker support and documentation.
|
||||||
|
- [Issue 1046](https://github.com/firefly-iii/firefly-iii/issues/1046), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1047](https://github.com/firefly-iii/firefly-iii/issues/1047), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1048](https://github.com/firefly-iii/firefly-iii/issues/1048), as reported by [webence](https://github.com/webence)
|
||||||
|
- [Issue 1049](https://github.com/firefly-iii/firefly-iii/issues/1049), as reported by [nicoschreiner](https://github.com/nicoschreiner)
|
||||||
|
- [Issue 1015](https://github.com/firefly-iii/firefly-iii/issues/1015), as reporterd by a user on Tweakers.net
|
||||||
|
- [Issue 1056](https://github.com/firefly-iii/firefly-iii/issues/1056), as reported by [repercussion](https://github.com/repercussion)
|
||||||
|
- [Issue 1061](https://github.com/firefly-iii/firefly-iii/issues/1061), as reported by [Meizikyn](https://github.com/Meizikyn)
|
||||||
|
- [Issue 1045](https://github.com/firefly-iii/firefly-iii/issues/1045), as reported by [gavu](https://github.com/gavu)
|
||||||
|
- First code for [issue 1040](https://github.com/firefly-iii/firefly-iii/issues/1040) ([simonsmiley](https://github.com/simonsmiley))
|
||||||
|
- [Issue 1059](https://github.com/firefly-iii/firefly-iii/issues/1059), as reported by [4oo4](https://github.com/4oo4)
|
||||||
|
- [Issue 1063](https://github.com/firefly-iii/firefly-iii/issues/1063), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1064](https://github.com/firefly-iii/firefly-iii/issues/1064), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1066](https://github.com/firefly-iii/firefly-iii/issues/1066), reported by [wtercato](https://github.com/wtercato)
|
||||||
|
|
||||||
|
# 4.6.1.1
|
||||||
- Import routine can scan for matching bills, [issue 956](https://github.com/firefly-iii/firefly-iii/issues/956)
|
- Import routine can scan for matching bills, [issue 956](https://github.com/firefly-iii/firefly-iii/issues/956)
|
||||||
- Import will no longer scan for rules, this has become optional. Originally suggested in [issue 956](https://github.com/firefly-iii/firefly-iii/issues/956) by [gavu](https://github.com/gavu)
|
- Import will no longer scan for rules, this has become optional. Originally suggested in [issue 956](https://github.com/firefly-iii/firefly-iii/issues/956) by [gavu](https://github.com/gavu)
|
||||||
- [Issue 1033](https://github.com/firefly-iii/firefly-iii/issues/1033), as reported by [Jumanjii](https://github.com/Jumanjii)
|
- [Issue 1033](https://github.com/firefly-iii/firefly-iii/issues/1033), as reported by [Jumanjii](https://github.com/Jumanjii)
|
||||||
|
|||||||
@@ -208,14 +208,6 @@ opt/app/.env.heroku
|
|||||||
opt/app/.env.sandstorm
|
opt/app/.env.sandstorm
|
||||||
opt/app/.gitattributes
|
opt/app/.gitattributes
|
||||||
opt/app/.sandstorm/.gitattributes
|
opt/app/.sandstorm/.gitattributes
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/action_provision
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/action_set_name
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/creator_uid
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/id
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/index_uuid
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/private_key
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/synced_folders
|
|
||||||
opt/app/.sandstorm/.vagrant/machines/default/virtualbox/vagrant_cwd
|
|
||||||
opt/app/.sandstorm/Vagrantfile
|
opt/app/.sandstorm/Vagrantfile
|
||||||
opt/app/.sandstorm/app-graphics/firefly-iii-128.png
|
opt/app/.sandstorm/app-graphics/firefly-iii-128.png
|
||||||
opt/app/.sandstorm/app-graphics/firefly-iii-150.png
|
opt/app/.sandstorm/app-graphics/firefly-iii-150.png
|
||||||
@@ -260,6 +252,7 @@ opt/app/app/Events/AdminRequestedTestMessage.php
|
|||||||
opt/app/app/Events/Event.php
|
opt/app/app/Events/Event.php
|
||||||
opt/app/app/Events/RegisteredUser.php
|
opt/app/app/Events/RegisteredUser.php
|
||||||
opt/app/app/Events/RequestedNewPassword.php
|
opt/app/app/Events/RequestedNewPassword.php
|
||||||
|
opt/app/app/Events/RequestedVersionCheckStatus.php
|
||||||
opt/app/app/Events/StoredTransactionJournal.php
|
opt/app/app/Events/StoredTransactionJournal.php
|
||||||
opt/app/app/Events/UpdatedTransactionJournal.php
|
opt/app/app/Events/UpdatedTransactionJournal.php
|
||||||
opt/app/app/Events/UserChangedEmail.php
|
opt/app/app/Events/UserChangedEmail.php
|
||||||
@@ -279,6 +272,9 @@ opt/app/app/Export/Exporter/ExporterInterface.php
|
|||||||
opt/app/app/Export/ProcessorInterface.php
|
opt/app/app/Export/ProcessorInterface.php
|
||||||
opt/app/app/Generator/Chart/Basic/ChartJsGenerator.php
|
opt/app/app/Generator/Chart/Basic/ChartJsGenerator.php
|
||||||
opt/app/app/Generator/Chart/Basic/GeneratorInterface.php
|
opt/app/app/Generator/Chart/Basic/GeneratorInterface.php
|
||||||
|
opt/app/app/Generator/Report/Account/MonthReportGenerator.php
|
||||||
|
opt/app/app/Generator/Report/Account/MultiYearReportGenerator.php
|
||||||
|
opt/app/app/Generator/Report/Account/YearReportGenerator.php
|
||||||
opt/app/app/Generator/Report/Audit/MonthReportGenerator.php
|
opt/app/app/Generator/Report/Audit/MonthReportGenerator.php
|
||||||
opt/app/app/Generator/Report/Audit/MultiYearReportGenerator.php
|
opt/app/app/Generator/Report/Audit/MultiYearReportGenerator.php
|
||||||
opt/app/app/Generator/Report/Audit/YearReportGenerator.php
|
opt/app/app/Generator/Report/Audit/YearReportGenerator.php
|
||||||
@@ -301,6 +297,7 @@ opt/app/app/Handlers/Events/AdminEventHandler.php
|
|||||||
opt/app/app/Handlers/Events/StoredJournalEventHandler.php
|
opt/app/app/Handlers/Events/StoredJournalEventHandler.php
|
||||||
opt/app/app/Handlers/Events/UpdatedJournalEventHandler.php
|
opt/app/app/Handlers/Events/UpdatedJournalEventHandler.php
|
||||||
opt/app/app/Handlers/Events/UserEventHandler.php
|
opt/app/app/Handlers/Events/UserEventHandler.php
|
||||||
|
opt/app/app/Handlers/Events/VersionCheckEventHandler.php
|
||||||
opt/app/app/Helpers/Attachments/AttachmentHelper.php
|
opt/app/app/Helpers/Attachments/AttachmentHelper.php
|
||||||
opt/app/app/Helpers/Attachments/AttachmentHelperInterface.php
|
opt/app/app/Helpers/Attachments/AttachmentHelperInterface.php
|
||||||
opt/app/app/Helpers/Chart/MetaPieChart.php
|
opt/app/app/Helpers/Chart/MetaPieChart.php
|
||||||
@@ -339,6 +336,7 @@ opt/app/app/Http/Controllers/AccountController.php
|
|||||||
opt/app/app/Http/Controllers/Admin/ConfigurationController.php
|
opt/app/app/Http/Controllers/Admin/ConfigurationController.php
|
||||||
opt/app/app/Http/Controllers/Admin/HomeController.php
|
opt/app/app/Http/Controllers/Admin/HomeController.php
|
||||||
opt/app/app/Http/Controllers/Admin/LinkController.php
|
opt/app/app/Http/Controllers/Admin/LinkController.php
|
||||||
|
opt/app/app/Http/Controllers/Admin/UpdateController.php
|
||||||
opt/app/app/Http/Controllers/Admin/UserController.php
|
opt/app/app/Http/Controllers/Admin/UserController.php
|
||||||
opt/app/app/Http/Controllers/AttachmentController.php
|
opt/app/app/Http/Controllers/AttachmentController.php
|
||||||
opt/app/app/Http/Controllers/Auth/ForgotPasswordController.php
|
opt/app/app/Http/Controllers/Auth/ForgotPasswordController.php
|
||||||
@@ -355,6 +353,7 @@ opt/app/app/Http/Controllers/Chart/BudgetController.php
|
|||||||
opt/app/app/Http/Controllers/Chart/BudgetReportController.php
|
opt/app/app/Http/Controllers/Chart/BudgetReportController.php
|
||||||
opt/app/app/Http/Controllers/Chart/CategoryController.php
|
opt/app/app/Http/Controllers/Chart/CategoryController.php
|
||||||
opt/app/app/Http/Controllers/Chart/CategoryReportController.php
|
opt/app/app/Http/Controllers/Chart/CategoryReportController.php
|
||||||
|
opt/app/app/Http/Controllers/Chart/ExpenseReportController.php
|
||||||
opt/app/app/Http/Controllers/Chart/PiggyBankController.php
|
opt/app/app/Http/Controllers/Chart/PiggyBankController.php
|
||||||
opt/app/app/Http/Controllers/Chart/ReportController.php
|
opt/app/app/Http/Controllers/Chart/ReportController.php
|
||||||
opt/app/app/Http/Controllers/Chart/TagReportController.php
|
opt/app/app/Http/Controllers/Chart/TagReportController.php
|
||||||
@@ -363,9 +362,10 @@ opt/app/app/Http/Controllers/CurrencyController.php
|
|||||||
opt/app/app/Http/Controllers/ExportController.php
|
opt/app/app/Http/Controllers/ExportController.php
|
||||||
opt/app/app/Http/Controllers/HelpController.php
|
opt/app/app/Http/Controllers/HelpController.php
|
||||||
opt/app/app/Http/Controllers/HomeController.php
|
opt/app/app/Http/Controllers/HomeController.php
|
||||||
opt/app/app/Http/Controllers/Import/BankController.php
|
opt/app/app/Http/Controllers/Import/ConfigurationController.php
|
||||||
opt/app/app/Http/Controllers/Import/FileController.php
|
opt/app/app/Http/Controllers/Import/IndexController.php
|
||||||
opt/app/app/Http/Controllers/ImportController.php
|
opt/app/app/Http/Controllers/Import/PrerequisitesController.php
|
||||||
|
opt/app/app/Http/Controllers/Import/StatusController.php
|
||||||
opt/app/app/Http/Controllers/JavascriptController.php
|
opt/app/app/Http/Controllers/JavascriptController.php
|
||||||
opt/app/app/Http/Controllers/Json/AutoCompleteController.php
|
opt/app/app/Http/Controllers/Json/AutoCompleteController.php
|
||||||
opt/app/app/Http/Controllers/Json/BoxController.php
|
opt/app/app/Http/Controllers/Json/BoxController.php
|
||||||
@@ -382,6 +382,7 @@ opt/app/app/Http/Controllers/Report/AccountController.php
|
|||||||
opt/app/app/Http/Controllers/Report/BalanceController.php
|
opt/app/app/Http/Controllers/Report/BalanceController.php
|
||||||
opt/app/app/Http/Controllers/Report/BudgetController.php
|
opt/app/app/Http/Controllers/Report/BudgetController.php
|
||||||
opt/app/app/Http/Controllers/Report/CategoryController.php
|
opt/app/app/Http/Controllers/Report/CategoryController.php
|
||||||
|
opt/app/app/Http/Controllers/Report/ExpenseController.php
|
||||||
opt/app/app/Http/Controllers/Report/OperationsController.php
|
opt/app/app/Http/Controllers/Report/OperationsController.php
|
||||||
opt/app/app/Http/Controllers/ReportController.php
|
opt/app/app/Http/Controllers/ReportController.php
|
||||||
opt/app/app/Http/Controllers/RuleController.php
|
opt/app/app/Http/Controllers/RuleController.php
|
||||||
@@ -400,7 +401,8 @@ opt/app/app/Http/Middleware/AuthenticateTwoFactor.php
|
|||||||
opt/app/app/Http/Middleware/Binder.php
|
opt/app/app/Http/Middleware/Binder.php
|
||||||
opt/app/app/Http/Middleware/EncryptCookies.php
|
opt/app/app/Http/Middleware/EncryptCookies.php
|
||||||
opt/app/app/Http/Middleware/IsAdmin.php
|
opt/app/app/Http/Middleware/IsAdmin.php
|
||||||
opt/app/app/Http/Middleware/IsLimitedUser.php
|
opt/app/app/Http/Middleware/IsDemoUser.php
|
||||||
|
opt/app/app/Http/Middleware/IsSandStormUser.php
|
||||||
opt/app/app/Http/Middleware/Range.php
|
opt/app/app/Http/Middleware/Range.php
|
||||||
opt/app/app/Http/Middleware/RedirectIfAuthenticated.php
|
opt/app/app/Http/Middleware/RedirectIfAuthenticated.php
|
||||||
opt/app/app/Http/Middleware/RedirectIfTwoFactorAuthenticated.php
|
opt/app/app/Http/Middleware/RedirectIfTwoFactorAuthenticated.php
|
||||||
@@ -420,7 +422,6 @@ opt/app/app/Http/Requests/CurrencyFormRequest.php
|
|||||||
opt/app/app/Http/Requests/DeleteAccountFormRequest.php
|
opt/app/app/Http/Requests/DeleteAccountFormRequest.php
|
||||||
opt/app/app/Http/Requests/EmailFormRequest.php
|
opt/app/app/Http/Requests/EmailFormRequest.php
|
||||||
opt/app/app/Http/Requests/ExportFormRequest.php
|
opt/app/app/Http/Requests/ExportFormRequest.php
|
||||||
opt/app/app/Http/Requests/ImportUploadRequest.php
|
|
||||||
opt/app/app/Http/Requests/JournalFormRequest.php
|
opt/app/app/Http/Requests/JournalFormRequest.php
|
||||||
opt/app/app/Http/Requests/JournalLinkRequest.php
|
opt/app/app/Http/Requests/JournalLinkRequest.php
|
||||||
opt/app/app/Http/Requests/LinkTypeFormRequest.php
|
opt/app/app/Http/Requests/LinkTypeFormRequest.php
|
||||||
@@ -441,15 +442,15 @@ opt/app/app/Http/Requests/TestRuleFormRequest.php
|
|||||||
opt/app/app/Http/Requests/TokenFormRequest.php
|
opt/app/app/Http/Requests/TokenFormRequest.php
|
||||||
opt/app/app/Http/Requests/UserFormRequest.php
|
opt/app/app/Http/Requests/UserFormRequest.php
|
||||||
opt/app/app/Http/Requests/UserRegistrationRequest.php
|
opt/app/app/Http/Requests/UserRegistrationRequest.php
|
||||||
opt/app/app/Http/breadcrumbs.php
|
opt/app/app/Import/Configuration/ConfiguratorInterface.php
|
||||||
opt/app/app/Import/Configurator/ConfiguratorInterface.php
|
opt/app/app/Import/Configuration/FileConfigurator.php
|
||||||
opt/app/app/Import/Configurator/CsvConfigurator.php
|
opt/app/app/Import/Configuration/SpectreConfigurator.php
|
||||||
opt/app/app/Import/Converter/Amount.php
|
opt/app/app/Import/Converter/Amount.php
|
||||||
opt/app/app/Import/Converter/AmountCredit.php
|
opt/app/app/Import/Converter/AmountCredit.php
|
||||||
opt/app/app/Import/Converter/AmountDebet.php
|
opt/app/app/Import/Converter/AmountDebit.php
|
||||||
opt/app/app/Import/Converter/ConverterInterface.php
|
opt/app/app/Import/Converter/ConverterInterface.php
|
||||||
opt/app/app/Import/Converter/INGDebetCredit.php
|
opt/app/app/Import/Converter/INGDebitCredit.php
|
||||||
opt/app/app/Import/Converter/RabobankDebetCredit.php
|
opt/app/app/Import/Converter/RabobankDebitCredit.php
|
||||||
opt/app/app/Import/FileProcessor/CsvProcessor.php
|
opt/app/app/Import/FileProcessor/CsvProcessor.php
|
||||||
opt/app/app/Import/FileProcessor/FileProcessorInterface.php
|
opt/app/app/Import/FileProcessor/FileProcessorInterface.php
|
||||||
opt/app/app/Import/Logging/CommandHandler.php
|
opt/app/app/Import/Logging/CommandHandler.php
|
||||||
@@ -472,7 +473,13 @@ opt/app/app/Import/Object/ImportBudget.php
|
|||||||
opt/app/app/Import/Object/ImportCategory.php
|
opt/app/app/Import/Object/ImportCategory.php
|
||||||
opt/app/app/Import/Object/ImportCurrency.php
|
opt/app/app/Import/Object/ImportCurrency.php
|
||||||
opt/app/app/Import/Object/ImportJournal.php
|
opt/app/app/Import/Object/ImportJournal.php
|
||||||
opt/app/app/Import/Routine/ImportRoutine.php
|
opt/app/app/Import/Prerequisites/BunqPrerequisites.php
|
||||||
|
opt/app/app/Import/Prerequisites/FilePrerequisites.php
|
||||||
|
opt/app/app/Import/Prerequisites/PrerequisitesInterface.php
|
||||||
|
opt/app/app/Import/Prerequisites/SpectrePrerequisites.php
|
||||||
|
opt/app/app/Import/Routine/FileRoutine.php
|
||||||
|
opt/app/app/Import/Routine/RoutineInterface.php
|
||||||
|
opt/app/app/Import/Routine/SpectreRoutine.php
|
||||||
opt/app/app/Import/Specifics/AbnAmroDescription.php
|
opt/app/app/Import/Specifics/AbnAmroDescription.php
|
||||||
opt/app/app/Import/Specifics/IngDescription.php
|
opt/app/app/Import/Specifics/IngDescription.php
|
||||||
opt/app/app/Import/Specifics/PresidentsChoice.php
|
opt/app/app/Import/Specifics/PresidentsChoice.php
|
||||||
@@ -612,8 +619,18 @@ opt/app/app/Services/Bunq/Token/InstallationToken.php
|
|||||||
opt/app/app/Services/Bunq/Token/SessionToken.php
|
opt/app/app/Services/Bunq/Token/SessionToken.php
|
||||||
opt/app/app/Services/Currency/ExchangeRateInterface.php
|
opt/app/app/Services/Currency/ExchangeRateInterface.php
|
||||||
opt/app/app/Services/Currency/FixerIO.php
|
opt/app/app/Services/Currency/FixerIO.php
|
||||||
|
opt/app/app/Services/Github/Object/GithubObject.php
|
||||||
|
opt/app/app/Services/Github/Object/Release.php
|
||||||
|
opt/app/app/Services/Github/Request/GithubRequest.php
|
||||||
|
opt/app/app/Services/Github/Request/UpdateRequest.php
|
||||||
opt/app/app/Services/Password/PwndVerifier.php
|
opt/app/app/Services/Password/PwndVerifier.php
|
||||||
opt/app/app/Services/Password/Verifier.php
|
opt/app/app/Services/Password/Verifier.php
|
||||||
|
opt/app/app/Services/Spectre/Object/Customer.php
|
||||||
|
opt/app/app/Services/Spectre/Object/SpectreObject.php
|
||||||
|
opt/app/app/Services/Spectre/Object/Token.php
|
||||||
|
opt/app/app/Services/Spectre/Request/CreateTokenRequest.php
|
||||||
|
opt/app/app/Services/Spectre/Request/NewCustomerRequest.php
|
||||||
|
opt/app/app/Services/Spectre/Request/SpectreRequest.php
|
||||||
opt/app/app/Support/Amount.php
|
opt/app/app/Support/Amount.php
|
||||||
opt/app/app/Support/Binder/AccountList.php
|
opt/app/app/Support/Binder/AccountList.php
|
||||||
opt/app/app/Support/Binder/BinderInterface.php
|
opt/app/app/Support/Binder/BinderInterface.php
|
||||||
@@ -637,13 +654,12 @@ opt/app/app/Support/Facades/Preferences.php
|
|||||||
opt/app/app/Support/Facades/Steam.php
|
opt/app/app/Support/Facades/Steam.php
|
||||||
opt/app/app/Support/FireflyConfig.php
|
opt/app/app/Support/FireflyConfig.php
|
||||||
opt/app/app/Support/Import/Configuration/ConfigurationInterface.php
|
opt/app/app/Support/Import/Configuration/ConfigurationInterface.php
|
||||||
opt/app/app/Support/Import/Configuration/Csv/Initial.php
|
opt/app/app/Support/Import/Configuration/File/Initial.php
|
||||||
opt/app/app/Support/Import/Configuration/Csv/Map.php
|
opt/app/app/Support/Import/Configuration/File/Map.php
|
||||||
opt/app/app/Support/Import/Configuration/Csv/Roles.php
|
opt/app/app/Support/Import/Configuration/File/Roles.php
|
||||||
|
opt/app/app/Support/Import/Configuration/File/Upload.php
|
||||||
opt/app/app/Support/Import/Information/BunqInformation.php
|
opt/app/app/Support/Import/Information/BunqInformation.php
|
||||||
opt/app/app/Support/Import/Information/InformationInterface.php
|
opt/app/app/Support/Import/Information/InformationInterface.php
|
||||||
opt/app/app/Support/Import/Prerequisites/BunqPrerequisites.php
|
|
||||||
opt/app/app/Support/Import/Prerequisites/PrerequisitesInterface.php
|
|
||||||
opt/app/app/Support/Models/TransactionJournalTrait.php
|
opt/app/app/Support/Models/TransactionJournalTrait.php
|
||||||
opt/app/app/Support/Navigation.php
|
opt/app/app/Support/Navigation.php
|
||||||
opt/app/app/Support/Preferences.php
|
opt/app/app/Support/Preferences.php
|
||||||
@@ -730,12 +746,15 @@ opt/app/composer.lock
|
|||||||
opt/app/composer.phar
|
opt/app/composer.phar
|
||||||
opt/app/config/app.php
|
opt/app/config/app.php
|
||||||
opt/app/config/auth.php
|
opt/app/config/auth.php
|
||||||
|
opt/app/config/breadcrumbs.php
|
||||||
opt/app/config/broadcasting.php
|
opt/app/config/broadcasting.php
|
||||||
opt/app/config/cache.php
|
opt/app/config/cache.php
|
||||||
opt/app/config/csv.php
|
opt/app/config/csv.php
|
||||||
opt/app/config/database.php
|
opt/app/config/database.php
|
||||||
opt/app/config/filesystems.php
|
opt/app/config/filesystems.php
|
||||||
opt/app/config/firefly.php
|
opt/app/config/firefly.php
|
||||||
|
opt/app/config/google2fa.php
|
||||||
|
opt/app/config/import.php
|
||||||
opt/app/config/intro.php
|
opt/app/config/intro.php
|
||||||
opt/app/config/mail.php
|
opt/app/config/mail.php
|
||||||
opt/app/config/queue.php
|
opt/app/config/queue.php
|
||||||
@@ -766,9 +785,6 @@ opt/app/database/seeds/LinkTypeSeeder.php
|
|||||||
opt/app/database/seeds/PermissionSeeder.php
|
opt/app/database/seeds/PermissionSeeder.php
|
||||||
opt/app/database/seeds/TransactionCurrencySeeder.php
|
opt/app/database/seeds/TransactionCurrencySeeder.php
|
||||||
opt/app/database/seeds/TransactionTypeSeeder.php
|
opt/app/database/seeds/TransactionTypeSeeder.php
|
||||||
opt/app/docker-compose.dockerhub.yml
|
|
||||||
opt/app/docker-compose.override.yml
|
|
||||||
opt/app/docker-compose.prod.yml
|
|
||||||
opt/app/docker-compose.yml
|
opt/app/docker-compose.yml
|
||||||
opt/app/nginx_app.conf
|
opt/app/nginx_app.conf
|
||||||
opt/app/phpunit.coverage.xml
|
opt/app/phpunit.coverage.xml
|
||||||
@@ -850,6 +866,10 @@ opt/app/public/images/image.png
|
|||||||
opt/app/public/images/loading-small.gif
|
opt/app/public/images/loading-small.gif
|
||||||
opt/app/public/images/loading-wide.gif
|
opt/app/public/images/loading-wide.gif
|
||||||
opt/app/public/images/logos/bunq.png
|
opt/app/public/images/logos/bunq.png
|
||||||
|
opt/app/public/images/logos/csv.png
|
||||||
|
opt/app/public/images/logos/file.png
|
||||||
|
opt/app/public/images/logos/plaid.png
|
||||||
|
opt/app/public/images/logos/spectre.png
|
||||||
opt/app/public/images/page_green.png
|
opt/app/public/images/page_green.png
|
||||||
opt/app/public/images/page_white_acrobat.png
|
opt/app/public/images/page_white_acrobat.png
|
||||||
opt/app/public/index.php
|
opt/app/public/index.php
|
||||||
@@ -858,6 +878,7 @@ opt/app/public/js/ff/accounts/edit-reconciliation.js
|
|||||||
opt/app/public/js/ff/accounts/edit.js
|
opt/app/public/js/ff/accounts/edit.js
|
||||||
opt/app/public/js/ff/accounts/reconcile.js
|
opt/app/public/js/ff/accounts/reconcile.js
|
||||||
opt/app/public/js/ff/accounts/show.js
|
opt/app/public/js/ff/accounts/show.js
|
||||||
|
opt/app/public/js/ff/admin/update/index.js
|
||||||
opt/app/public/js/ff/bills/create.js
|
opt/app/public/js/ff/bills/create.js
|
||||||
opt/app/public/js/ff/bills/edit.js
|
opt/app/public/js/ff/bills/edit.js
|
||||||
opt/app/public/js/ff/bills/show.js
|
opt/app/public/js/ff/bills/show.js
|
||||||
@@ -880,17 +901,16 @@ opt/app/public/js/ff/piggy-banks/edit.js
|
|||||||
opt/app/public/js/ff/piggy-banks/index.js
|
opt/app/public/js/ff/piggy-banks/index.js
|
||||||
opt/app/public/js/ff/piggy-banks/show.js
|
opt/app/public/js/ff/piggy-banks/show.js
|
||||||
opt/app/public/js/ff/preferences/index.js
|
opt/app/public/js/ff/preferences/index.js
|
||||||
|
opt/app/public/js/ff/reports/account/month.js
|
||||||
|
opt/app/public/js/ff/reports/all.js
|
||||||
opt/app/public/js/ff/reports/audit/all.js
|
opt/app/public/js/ff/reports/audit/all.js
|
||||||
opt/app/public/js/ff/reports/budget/all.js
|
|
||||||
opt/app/public/js/ff/reports/budget/month.js
|
opt/app/public/js/ff/reports/budget/month.js
|
||||||
opt/app/public/js/ff/reports/category/all.js
|
|
||||||
opt/app/public/js/ff/reports/category/month.js
|
opt/app/public/js/ff/reports/category/month.js
|
||||||
opt/app/public/js/ff/reports/default/all.js
|
opt/app/public/js/ff/reports/default/all.js
|
||||||
opt/app/public/js/ff/reports/default/month.js
|
opt/app/public/js/ff/reports/default/month.js
|
||||||
opt/app/public/js/ff/reports/default/multi-year.js
|
opt/app/public/js/ff/reports/default/multi-year.js
|
||||||
opt/app/public/js/ff/reports/default/year.js
|
opt/app/public/js/ff/reports/default/year.js
|
||||||
opt/app/public/js/ff/reports/index.js
|
opt/app/public/js/ff/reports/index.js
|
||||||
opt/app/public/js/ff/reports/tag/all.js
|
|
||||||
opt/app/public/js/ff/reports/tag/month.js
|
opt/app/public/js/ff/reports/tag/month.js
|
||||||
opt/app/public/js/ff/rules/create-edit.js
|
opt/app/public/js/ff/rules/create-edit.js
|
||||||
opt/app/public/js/ff/rules/index.js
|
opt/app/public/js/ff/rules/index.js
|
||||||
@@ -975,6 +995,7 @@ opt/app/resources/lang/de_DE/demo.php
|
|||||||
opt/app/resources/lang/de_DE/firefly.php
|
opt/app/resources/lang/de_DE/firefly.php
|
||||||
opt/app/resources/lang/de_DE/form.php
|
opt/app/resources/lang/de_DE/form.php
|
||||||
opt/app/resources/lang/de_DE/help.php
|
opt/app/resources/lang/de_DE/help.php
|
||||||
|
opt/app/resources/lang/de_DE/import.php
|
||||||
opt/app/resources/lang/de_DE/intro.php
|
opt/app/resources/lang/de_DE/intro.php
|
||||||
opt/app/resources/lang/de_DE/list.php
|
opt/app/resources/lang/de_DE/list.php
|
||||||
opt/app/resources/lang/de_DE/pagination.php
|
opt/app/resources/lang/de_DE/pagination.php
|
||||||
@@ -988,6 +1009,7 @@ opt/app/resources/lang/en_US/csv.php
|
|||||||
opt/app/resources/lang/en_US/demo.php
|
opt/app/resources/lang/en_US/demo.php
|
||||||
opt/app/resources/lang/en_US/firefly.php
|
opt/app/resources/lang/en_US/firefly.php
|
||||||
opt/app/resources/lang/en_US/form.php
|
opt/app/resources/lang/en_US/form.php
|
||||||
|
opt/app/resources/lang/en_US/import.php
|
||||||
opt/app/resources/lang/en_US/intro.php
|
opt/app/resources/lang/en_US/intro.php
|
||||||
opt/app/resources/lang/en_US/list.php
|
opt/app/resources/lang/en_US/list.php
|
||||||
opt/app/resources/lang/en_US/pagination.php
|
opt/app/resources/lang/en_US/pagination.php
|
||||||
@@ -1002,11 +1024,26 @@ opt/app/resources/lang/fr_FR/demo.php
|
|||||||
opt/app/resources/lang/fr_FR/firefly.php
|
opt/app/resources/lang/fr_FR/firefly.php
|
||||||
opt/app/resources/lang/fr_FR/form.php
|
opt/app/resources/lang/fr_FR/form.php
|
||||||
opt/app/resources/lang/fr_FR/help.php
|
opt/app/resources/lang/fr_FR/help.php
|
||||||
|
opt/app/resources/lang/fr_FR/import.php
|
||||||
opt/app/resources/lang/fr_FR/intro.php
|
opt/app/resources/lang/fr_FR/intro.php
|
||||||
opt/app/resources/lang/fr_FR/list.php
|
opt/app/resources/lang/fr_FR/list.php
|
||||||
opt/app/resources/lang/fr_FR/pagination.php
|
opt/app/resources/lang/fr_FR/pagination.php
|
||||||
opt/app/resources/lang/fr_FR/passwords.php
|
opt/app/resources/lang/fr_FR/passwords.php
|
||||||
opt/app/resources/lang/fr_FR/validation.php
|
opt/app/resources/lang/fr_FR/validation.php
|
||||||
|
opt/app/resources/lang/id_ID/auth.php
|
||||||
|
opt/app/resources/lang/id_ID/bank.php
|
||||||
|
opt/app/resources/lang/id_ID/breadcrumbs.php
|
||||||
|
opt/app/resources/lang/id_ID/config.php
|
||||||
|
opt/app/resources/lang/id_ID/csv.php
|
||||||
|
opt/app/resources/lang/id_ID/demo.php
|
||||||
|
opt/app/resources/lang/id_ID/firefly.php
|
||||||
|
opt/app/resources/lang/id_ID/form.php
|
||||||
|
opt/app/resources/lang/id_ID/import.php
|
||||||
|
opt/app/resources/lang/id_ID/intro.php
|
||||||
|
opt/app/resources/lang/id_ID/list.php
|
||||||
|
opt/app/resources/lang/id_ID/pagination.php
|
||||||
|
opt/app/resources/lang/id_ID/passwords.php
|
||||||
|
opt/app/resources/lang/id_ID/validation.php
|
||||||
opt/app/resources/lang/nl_NL/auth.php
|
opt/app/resources/lang/nl_NL/auth.php
|
||||||
opt/app/resources/lang/nl_NL/bank.php
|
opt/app/resources/lang/nl_NL/bank.php
|
||||||
opt/app/resources/lang/nl_NL/breadcrumbs.php
|
opt/app/resources/lang/nl_NL/breadcrumbs.php
|
||||||
@@ -1016,6 +1053,7 @@ opt/app/resources/lang/nl_NL/demo.php
|
|||||||
opt/app/resources/lang/nl_NL/firefly.php
|
opt/app/resources/lang/nl_NL/firefly.php
|
||||||
opt/app/resources/lang/nl_NL/form.php
|
opt/app/resources/lang/nl_NL/form.php
|
||||||
opt/app/resources/lang/nl_NL/help.php
|
opt/app/resources/lang/nl_NL/help.php
|
||||||
|
opt/app/resources/lang/nl_NL/import.php
|
||||||
opt/app/resources/lang/nl_NL/intro.php
|
opt/app/resources/lang/nl_NL/intro.php
|
||||||
opt/app/resources/lang/nl_NL/list.php
|
opt/app/resources/lang/nl_NL/list.php
|
||||||
opt/app/resources/lang/nl_NL/pagination.php
|
opt/app/resources/lang/nl_NL/pagination.php
|
||||||
@@ -1030,6 +1068,7 @@ opt/app/resources/lang/pl_PL/demo.php
|
|||||||
opt/app/resources/lang/pl_PL/firefly.php
|
opt/app/resources/lang/pl_PL/firefly.php
|
||||||
opt/app/resources/lang/pl_PL/form.php
|
opt/app/resources/lang/pl_PL/form.php
|
||||||
opt/app/resources/lang/pl_PL/help.php
|
opt/app/resources/lang/pl_PL/help.php
|
||||||
|
opt/app/resources/lang/pl_PL/import.php
|
||||||
opt/app/resources/lang/pl_PL/intro.php
|
opt/app/resources/lang/pl_PL/intro.php
|
||||||
opt/app/resources/lang/pl_PL/list.php
|
opt/app/resources/lang/pl_PL/list.php
|
||||||
opt/app/resources/lang/pl_PL/pagination.php
|
opt/app/resources/lang/pl_PL/pagination.php
|
||||||
@@ -1057,6 +1096,7 @@ opt/app/resources/views/admin/link/delete.twig
|
|||||||
opt/app/resources/views/admin/link/edit.twig
|
opt/app/resources/views/admin/link/edit.twig
|
||||||
opt/app/resources/views/admin/link/index.twig
|
opt/app/resources/views/admin/link/index.twig
|
||||||
opt/app/resources/views/admin/link/show.twig
|
opt/app/resources/views/admin/link/show.twig
|
||||||
|
opt/app/resources/views/admin/update/index.twig
|
||||||
opt/app/resources/views/admin/users/delete.twig
|
opt/app/resources/views/admin/users/delete.twig
|
||||||
opt/app/resources/views/admin/users/edit.twig
|
opt/app/resources/views/admin/users/edit.twig
|
||||||
opt/app/resources/views/admin/users/index.twig
|
opt/app/resources/views/admin/users/index.twig
|
||||||
@@ -1151,13 +1191,17 @@ opt/app/resources/views/form/text.twig
|
|||||||
opt/app/resources/views/form/textarea.twig
|
opt/app/resources/views/form/textarea.twig
|
||||||
opt/app/resources/views/import/bank/form.twig
|
opt/app/resources/views/import/bank/form.twig
|
||||||
opt/app/resources/views/import/bunq/prerequisites.twig
|
opt/app/resources/views/import/bunq/prerequisites.twig
|
||||||
opt/app/resources/views/import/csv/initial.twig
|
opt/app/resources/views/import/file/initial.twig
|
||||||
opt/app/resources/views/import/csv/map.twig
|
opt/app/resources/views/import/file/map.twig
|
||||||
opt/app/resources/views/import/csv/roles.twig
|
opt/app/resources/views/import/file/roles.twig
|
||||||
opt/app/resources/views/import/file/finished.twig
|
opt/app/resources/views/import/file/upload.twig
|
||||||
opt/app/resources/views/import/file/index.twig
|
|
||||||
opt/app/resources/views/import/file/status.twig
|
|
||||||
opt/app/resources/views/import/index.twig
|
opt/app/resources/views/import/index.twig
|
||||||
|
opt/app/resources/views/import/spectre/input-fields.twig
|
||||||
|
opt/app/resources/views/import/spectre/prerequisites.twig
|
||||||
|
opt/app/resources/views/import/spectre/redirect.twig
|
||||||
|
opt/app/resources/views/import/spectre/select-country.twig
|
||||||
|
opt/app/resources/views/import/spectre/select-provider.twig
|
||||||
|
opt/app/resources/views/import/status.twig
|
||||||
opt/app/resources/views/index.twig
|
opt/app/resources/views/index.twig
|
||||||
opt/app/resources/views/javascript/accounts.twig
|
opt/app/resources/views/javascript/accounts.twig
|
||||||
opt/app/resources/views/javascript/currencies.twig
|
opt/app/resources/views/javascript/currencies.twig
|
||||||
@@ -1204,6 +1248,7 @@ opt/app/resources/views/profile/change-email.twig
|
|||||||
opt/app/resources/views/profile/change-password.twig
|
opt/app/resources/views/profile/change-password.twig
|
||||||
opt/app/resources/views/profile/delete-account.twig
|
opt/app/resources/views/profile/delete-account.twig
|
||||||
opt/app/resources/views/profile/index.twig
|
opt/app/resources/views/profile/index.twig
|
||||||
|
opt/app/resources/views/reports/account/report.twig
|
||||||
opt/app/resources/views/reports/audit/report.twig
|
opt/app/resources/views/reports/audit/report.twig
|
||||||
opt/app/resources/views/reports/budget/month.twig
|
opt/app/resources/views/reports/budget/month.twig
|
||||||
opt/app/resources/views/reports/category/month.twig
|
opt/app/resources/views/reports/category/month.twig
|
||||||
@@ -1211,6 +1256,7 @@ opt/app/resources/views/reports/default/month.twig
|
|||||||
opt/app/resources/views/reports/default/multi-year.twig
|
opt/app/resources/views/reports/default/multi-year.twig
|
||||||
opt/app/resources/views/reports/default/year.twig
|
opt/app/resources/views/reports/default/year.twig
|
||||||
opt/app/resources/views/reports/index.twig
|
opt/app/resources/views/reports/index.twig
|
||||||
|
opt/app/resources/views/reports/options/account.twig
|
||||||
opt/app/resources/views/reports/options/budget.twig
|
opt/app/resources/views/reports/options/budget.twig
|
||||||
opt/app/resources/views/reports/options/category.twig
|
opt/app/resources/views/reports/options/category.twig
|
||||||
opt/app/resources/views/reports/options/no-options.twig
|
opt/app/resources/views/reports/options/no-options.twig
|
||||||
@@ -1222,10 +1268,14 @@ opt/app/resources/views/reports/partials/budget-period.twig
|
|||||||
opt/app/resources/views/reports/partials/budgets.twig
|
opt/app/resources/views/reports/partials/budgets.twig
|
||||||
opt/app/resources/views/reports/partials/categories.twig
|
opt/app/resources/views/reports/partials/categories.twig
|
||||||
opt/app/resources/views/reports/partials/category-period.twig
|
opt/app/resources/views/reports/partials/category-period.twig
|
||||||
|
opt/app/resources/views/reports/partials/exp-budgets.twig
|
||||||
|
opt/app/resources/views/reports/partials/exp-categories.twig
|
||||||
|
opt/app/resources/views/reports/partials/exp-not-grouped.twig
|
||||||
opt/app/resources/views/reports/partials/income-expenses.twig
|
opt/app/resources/views/reports/partials/income-expenses.twig
|
||||||
opt/app/resources/views/reports/partials/journals-audit.twig
|
opt/app/resources/views/reports/partials/journals-audit.twig
|
||||||
opt/app/resources/views/reports/partials/operations.twig
|
opt/app/resources/views/reports/partials/operations.twig
|
||||||
opt/app/resources/views/reports/partials/tags.twig
|
opt/app/resources/views/reports/partials/tags.twig
|
||||||
|
opt/app/resources/views/reports/partials/top-transactions.twig
|
||||||
opt/app/resources/views/reports/tag/month.twig
|
opt/app/resources/views/reports/tag/month.twig
|
||||||
opt/app/resources/views/rules/index.twig
|
opt/app/resources/views/rules/index.twig
|
||||||
opt/app/resources/views/rules/partials/action.twig
|
opt/app/resources/views/rules/partials/action.twig
|
||||||
@@ -1246,6 +1296,7 @@ opt/app/resources/views/tags/delete.twig
|
|||||||
opt/app/resources/views/tags/edit.twig
|
opt/app/resources/views/tags/edit.twig
|
||||||
opt/app/resources/views/tags/index.twig
|
opt/app/resources/views/tags/index.twig
|
||||||
opt/app/resources/views/tags/show.twig
|
opt/app/resources/views/tags/show.twig
|
||||||
|
opt/app/resources/views/test/test.twig
|
||||||
opt/app/resources/views/transactions/convert.twig
|
opt/app/resources/views/transactions/convert.twig
|
||||||
opt/app/resources/views/transactions/index.twig
|
opt/app/resources/views/transactions/index.twig
|
||||||
opt/app/resources/views/transactions/links/delete.twig
|
opt/app/resources/views/transactions/links/delete.twig
|
||||||
@@ -1257,6 +1308,7 @@ opt/app/resources/views/transactions/single/delete.twig
|
|||||||
opt/app/resources/views/transactions/single/edit.twig
|
opt/app/resources/views/transactions/single/edit.twig
|
||||||
opt/app/resources/views/transactions/split/edit.twig
|
opt/app/resources/views/transactions/split/edit.twig
|
||||||
opt/app/routes/api.php
|
opt/app/routes/api.php
|
||||||
|
opt/app/routes/breadcrumbs.php
|
||||||
opt/app/routes/channels.php
|
opt/app/routes/channels.php
|
||||||
opt/app/routes/console.php
|
opt/app/routes/console.php
|
||||||
opt/app/routes/web.php
|
opt/app/routes/web.php
|
||||||
@@ -1325,14 +1377,6 @@ opt/app/vendor/bacon/bacon-qr-code/tests/BaconQrCode/Renderer/Text/TextTest.php
|
|||||||
opt/app/vendor/bacon/bacon-qr-code/tests/bootstrap.php
|
opt/app/vendor/bacon/bacon-qr-code/tests/bootstrap.php
|
||||||
opt/app/vendor/bin/commonmark
|
opt/app/vendor/bin/commonmark
|
||||||
opt/app/vendor/bin/doctrine-dbal
|
opt/app/vendor/bin/doctrine-dbal
|
||||||
opt/app/vendor/christian-riesen/base32/LICENSE
|
|
||||||
opt/app/vendor/christian-riesen/base32/README.md
|
|
||||||
opt/app/vendor/christian-riesen/base32/build.xml
|
|
||||||
opt/app/vendor/christian-riesen/base32/composer.json
|
|
||||||
opt/app/vendor/christian-riesen/base32/phpunit.xml.dist
|
|
||||||
opt/app/vendor/christian-riesen/base32/src/Base32.php
|
|
||||||
opt/app/vendor/christian-riesen/base32/tests/Base32Test.php
|
|
||||||
opt/app/vendor/christian-riesen/base32/tests/bootstrap.php
|
|
||||||
opt/app/vendor/composer/ClassLoader.php
|
opt/app/vendor/composer/ClassLoader.php
|
||||||
opt/app/vendor/composer/LICENSE
|
opt/app/vendor/composer/LICENSE
|
||||||
opt/app/vendor/composer/autoload_classmap.php
|
opt/app/vendor/composer/autoload_classmap.php
|
||||||
@@ -1342,37 +1386,24 @@ opt/app/vendor/composer/autoload_psr4.php
|
|||||||
opt/app/vendor/composer/autoload_real.php
|
opt/app/vendor/composer/autoload_real.php
|
||||||
opt/app/vendor/composer/autoload_static.php
|
opt/app/vendor/composer/autoload_static.php
|
||||||
opt/app/vendor/composer/installed.json
|
opt/app/vendor/composer/installed.json
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/.editorconfig
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/README.md
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/RELEASE-CHECKLIST.md
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/composer.json
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/composer.json
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/config/breadcrumbs.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/config/breadcrumbs.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/scripts/test-coverage.sh
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/BreadcrumbsException.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/CurrentRoute.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/BreadcrumbsGenerator.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Exception.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/BreadcrumbsManager.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Facade.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/BreadcrumbsServiceProvider.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Generator.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Exceptions/DuplicateBreadcrumbException.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Manager.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Exceptions/InvalidBreadcrumbException.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/ServiceProvider.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Exceptions/UnnamedRouteException.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/View.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Exceptions/ViewNotSetException.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/TestCase.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/src/Facades/Breadcrumbs.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/bootstrap.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/fixtures/CustomServiceProvider.html
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/fixtures/DependantServiceProvider.html
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/fixtures/bootstrap2.html
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/fixtures/bootstrap3.html
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/fixtures/integration.html
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/integration/CustomServiceProviderTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/integration/DependantServiceProviderErrorTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/integration/DependantServiceProviderTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/integration/IntegrationTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/CurrentRouteTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/FacadeTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/GeneratorTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/ManagerTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/tests/unit/ViewTest.php
|
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bootstrap2.blade.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bootstrap2.blade.php
|
||||||
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bootstrap3.blade.php
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bootstrap3.blade.php
|
||||||
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bootstrap4.blade.php
|
||||||
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/bulma.blade.php
|
||||||
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/foundation6.blade.php
|
||||||
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/json-ld.php
|
||||||
|
opt/app/vendor/davejamesmiller/laravel-breadcrumbs/views/materialize.blade.php
|
||||||
opt/app/vendor/doctrine/annotations/CHANGELOG.md
|
opt/app/vendor/doctrine/annotations/CHANGELOG.md
|
||||||
opt/app/vendor/doctrine/annotations/LICENSE
|
opt/app/vendor/doctrine/annotations/LICENSE
|
||||||
opt/app/vendor/doctrine/annotations/README.md
|
opt/app/vendor/doctrine/annotations/README.md
|
||||||
@@ -2188,6 +2219,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Events/CallQueuedListener.php
|
|||||||
opt/app/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Events/Dispatcher.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Events/EventServiceProvider.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Events/composer.json
|
opt/app/vendor/laravel/framework/src/Illuminate/Events/composer.json
|
||||||
|
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/Cache.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemManager.php
|
||||||
@@ -2663,6 +2695,7 @@ opt/app/vendor/laravel/framework/src/Illuminate/Support/MessageBag.php
|
|||||||
opt/app/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/NamespacedItemResolver.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Support/Optional.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/Optional.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/Pluralizer.php
|
||||||
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/ProcessUtils.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/ServiceProvider.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Support/Str.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/Str.php
|
||||||
opt/app/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php
|
opt/app/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/BusFake.php
|
||||||
@@ -2865,23 +2898,29 @@ opt/app/vendor/league/commonmark/src/Util/Html5Entities.php
|
|||||||
opt/app/vendor/league/commonmark/src/Util/LinkParserHelper.php
|
opt/app/vendor/league/commonmark/src/Util/LinkParserHelper.php
|
||||||
opt/app/vendor/league/commonmark/src/Util/RegexHelper.php
|
opt/app/vendor/league/commonmark/src/Util/RegexHelper.php
|
||||||
opt/app/vendor/league/commonmark/src/Util/UrlEncoder.php
|
opt/app/vendor/league/commonmark/src/Util/UrlEncoder.php
|
||||||
|
opt/app/vendor/league/commonmark/src/Util/Xml.php
|
||||||
opt/app/vendor/league/csv/LICENSE
|
opt/app/vendor/league/csv/LICENSE
|
||||||
opt/app/vendor/league/csv/autoload.php
|
opt/app/vendor/league/csv/autoload.php
|
||||||
opt/app/vendor/league/csv/composer.json
|
opt/app/vendor/league/csv/composer.json
|
||||||
opt/app/vendor/league/csv/src/AbstractCsv.php
|
opt/app/vendor/league/csv/src/AbstractCsv.php
|
||||||
opt/app/vendor/league/csv/src/Config/Controls.php
|
opt/app/vendor/league/csv/src/ByteSequence.php
|
||||||
opt/app/vendor/league/csv/src/Config/Output.php
|
opt/app/vendor/league/csv/src/CannotInsertRecord.php
|
||||||
opt/app/vendor/league/csv/src/Exception/InvalidRowException.php
|
opt/app/vendor/league/csv/src/CharsetConverter.php
|
||||||
opt/app/vendor/league/csv/src/Modifier/MapIterator.php
|
opt/app/vendor/league/csv/src/ColumnConsistency.php
|
||||||
opt/app/vendor/league/csv/src/Modifier/QueryFilter.php
|
opt/app/vendor/league/csv/src/EncloseField.php
|
||||||
opt/app/vendor/league/csv/src/Modifier/RowFilter.php
|
opt/app/vendor/league/csv/src/EscapeFormula.php
|
||||||
opt/app/vendor/league/csv/src/Modifier/StreamFilter.php
|
opt/app/vendor/league/csv/src/Exception.php
|
||||||
opt/app/vendor/league/csv/src/Modifier/StreamIterator.php
|
opt/app/vendor/league/csv/src/HTMLConverter.php
|
||||||
opt/app/vendor/league/csv/src/Plugin/ColumnConsistencyValidator.php
|
opt/app/vendor/league/csv/src/MapIterator.php
|
||||||
opt/app/vendor/league/csv/src/Plugin/ForbiddenNullValuesValidator.php
|
opt/app/vendor/league/csv/src/RFC4180Field.php
|
||||||
opt/app/vendor/league/csv/src/Plugin/SkipNullValuesFormatter.php
|
|
||||||
opt/app/vendor/league/csv/src/Reader.php
|
opt/app/vendor/league/csv/src/Reader.php
|
||||||
|
opt/app/vendor/league/csv/src/ResultSet.php
|
||||||
|
opt/app/vendor/league/csv/src/Statement.php
|
||||||
|
opt/app/vendor/league/csv/src/Stream.php
|
||||||
opt/app/vendor/league/csv/src/Writer.php
|
opt/app/vendor/league/csv/src/Writer.php
|
||||||
|
opt/app/vendor/league/csv/src/XMLConverter.php
|
||||||
|
opt/app/vendor/league/csv/src/functions.php
|
||||||
|
opt/app/vendor/league/csv/src/functions_include.php
|
||||||
opt/app/vendor/league/flysystem/LICENSE
|
opt/app/vendor/league/flysystem/LICENSE
|
||||||
opt/app/vendor/league/flysystem/composer.json
|
opt/app/vendor/league/flysystem/composer.json
|
||||||
opt/app/vendor/league/flysystem/docs/CNAME
|
opt/app/vendor/league/flysystem/docs/CNAME
|
||||||
@@ -3229,6 +3268,31 @@ opt/app/vendor/nesbot/carbon/src/Carbon/Lang/uz.php
|
|||||||
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/vi.php
|
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/vi.php
|
||||||
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/zh.php
|
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/zh.php
|
||||||
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php
|
opt/app/vendor/nesbot/carbon/src/Carbon/Lang/zh_TW.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/LICENSE.txt
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/README.md
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/composer.json
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/phpunit.xml.dist
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/psalm.xml
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Base32.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Base32Hex.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Base64.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Base64DotSlash.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Base64DotSlashOrdered.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Base64UrlSafe.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Binary.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/EncoderInterface.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Encoding.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/Hex.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/src/RFC4648.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/Base32HexTest.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/Base32Test.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashOrderedTest.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/Base64DotSlashTest.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/Base64Test.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/Base64UrlSafeTest.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/EncodingTest.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/HexTest.php
|
||||||
|
opt/app/vendor/paragonie/constant_time_encoding/tests/RFC4648Test.php
|
||||||
opt/app/vendor/paragonie/random_compat/LICENSE
|
opt/app/vendor/paragonie/random_compat/LICENSE
|
||||||
opt/app/vendor/paragonie/random_compat/build-phar.sh
|
opt/app/vendor/paragonie/random_compat/build-phar.sh
|
||||||
opt/app/vendor/paragonie/random_compat/composer.json
|
opt/app/vendor/paragonie/random_compat/composer.json
|
||||||
@@ -3247,19 +3311,45 @@ opt/app/vendor/paragonie/random_compat/lib/random_int.php
|
|||||||
opt/app/vendor/paragonie/random_compat/other/build_phar.php
|
opt/app/vendor/paragonie/random_compat/other/build_phar.php
|
||||||
opt/app/vendor/paragonie/random_compat/psalm-autoload.php
|
opt/app/vendor/paragonie/random_compat/psalm-autoload.php
|
||||||
opt/app/vendor/paragonie/random_compat/psalm.xml
|
opt/app/vendor/paragonie/random_compat/psalm.xml
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/LICENSE
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/changelog.md
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/composer.json
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/docs/middleware.jpg
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/phpspec.yml
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/readme.md
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Events/OneTimePasswordRequested.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Exceptions/InvalidOneTimePassword.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Exceptions/InvalidSecretKey.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Facade.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Middleware.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/ServiceProvider.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Auth.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Authenticator.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Config.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Constants.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/ErrorBag.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Input.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Request.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Response.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/Support/Session.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/src/config/config.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/tests/spec/Support/AuthenticatorSpec.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa-laravel/upgrading.md
|
||||||
opt/app/vendor/pragmarx/google2fa/LICENSE
|
opt/app/vendor/pragmarx/google2fa/LICENSE
|
||||||
opt/app/vendor/pragmarx/google2fa/changelog.md
|
opt/app/vendor/pragmarx/google2fa/changelog.md
|
||||||
opt/app/vendor/pragmarx/google2fa/composer.json
|
opt/app/vendor/pragmarx/google2fa/composer.json
|
||||||
opt/app/vendor/pragmarx/google2fa/phpspec.yml
|
opt/app/vendor/pragmarx/google2fa/docs/playground.jpg
|
||||||
opt/app/vendor/pragmarx/google2fa/readme.md
|
opt/app/vendor/pragmarx/google2fa/readme.md
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Contracts/Google2FA.php
|
opt/app/vendor/pragmarx/google2fa/src/Exceptions/IncompatibleWithGoogleAuthenticatorException.php
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Exceptions/InvalidCharactersException.php
|
opt/app/vendor/pragmarx/google2fa/src/Exceptions/InvalidCharactersException.php
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Exceptions/SecretKeyTooShortException.php
|
opt/app/vendor/pragmarx/google2fa/src/Exceptions/SecretKeyTooShortException.php
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Google2FA.php
|
opt/app/vendor/pragmarx/google2fa/src/Google2FA.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa/src/Support/Base32.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa/src/Support/Constants.php
|
||||||
|
opt/app/vendor/pragmarx/google2fa/src/Support/QRCode.php
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Support/Url.php
|
opt/app/vendor/pragmarx/google2fa/src/Support/Url.php
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Vendor/Laravel/Facade.php
|
opt/app/vendor/pragmarx/google2fa/tests/Google2FATest.php
|
||||||
opt/app/vendor/pragmarx/google2fa/src/Vendor/Laravel/ServiceProvider.php
|
opt/app/vendor/pragmarx/google2fa/tests/bootstrap.php
|
||||||
opt/app/vendor/pragmarx/google2fa/tests/spec/Google2FASpec.php
|
|
||||||
opt/app/vendor/pragmarx/google2fa/upgrading.md
|
opt/app/vendor/pragmarx/google2fa/upgrading.md
|
||||||
opt/app/vendor/psr/container/LICENSE
|
opt/app/vendor/psr/container/LICENSE
|
||||||
opt/app/vendor/psr/container/README.md
|
opt/app/vendor/psr/container/README.md
|
||||||
@@ -4245,10 +4335,11 @@ opt/app/vendor/symfony/debug/Tests/Fixtures/reallyNotPsr0.php
|
|||||||
opt/app/vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php
|
opt/app/vendor/symfony/debug/Tests/Fixtures2/RequiredTwice.php
|
||||||
opt/app/vendor/symfony/debug/Tests/HeaderMock.php
|
opt/app/vendor/symfony/debug/Tests/HeaderMock.php
|
||||||
opt/app/vendor/symfony/debug/Tests/MockExceptionHandler.php
|
opt/app/vendor/symfony/debug/Tests/MockExceptionHandler.php
|
||||||
|
opt/app/vendor/symfony/debug/Tests/phpt/exception_rethrown.phpt
|
||||||
|
opt/app/vendor/symfony/debug/Tests/phpt/fatal_with_nested_handlers.phpt
|
||||||
opt/app/vendor/symfony/debug/composer.json
|
opt/app/vendor/symfony/debug/composer.json
|
||||||
opt/app/vendor/symfony/debug/phpunit.xml.dist
|
opt/app/vendor/symfony/debug/phpunit.xml.dist
|
||||||
opt/app/vendor/symfony/event-dispatcher/CHANGELOG.md
|
opt/app/vendor/symfony/event-dispatcher/CHANGELOG.md
|
||||||
opt/app/vendor/symfony/event-dispatcher/ContainerAwareEventDispatcher.php
|
|
||||||
opt/app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
|
opt/app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php
|
||||||
opt/app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php
|
opt/app/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcherInterface.php
|
||||||
opt/app/vendor/symfony/event-dispatcher/Debug/WrappedListener.php
|
opt/app/vendor/symfony/event-dispatcher/Debug/WrappedListener.php
|
||||||
@@ -4262,7 +4353,6 @@ opt/app/vendor/symfony/event-dispatcher/ImmutableEventDispatcher.php
|
|||||||
opt/app/vendor/symfony/event-dispatcher/LICENSE
|
opt/app/vendor/symfony/event-dispatcher/LICENSE
|
||||||
opt/app/vendor/symfony/event-dispatcher/README.md
|
opt/app/vendor/symfony/event-dispatcher/README.md
|
||||||
opt/app/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php
|
opt/app/vendor/symfony/event-dispatcher/Tests/AbstractEventDispatcherTest.php
|
||||||
opt/app/vendor/symfony/event-dispatcher/Tests/ContainerAwareEventDispatcherTest.php
|
|
||||||
opt/app/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php
|
opt/app/vendor/symfony/event-dispatcher/Tests/Debug/TraceableEventDispatcherTest.php
|
||||||
opt/app/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
|
opt/app/vendor/symfony/event-dispatcher/Tests/DependencyInjection/RegisterListenersPassTest.php
|
||||||
opt/app/vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php
|
opt/app/vendor/symfony/event-dispatcher/Tests/EventDispatcherTest.php
|
||||||
@@ -4453,6 +4543,8 @@ opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/st
|
|||||||
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.php
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/storage.php
|
||||||
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.expected
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.expected
|
||||||
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.php
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie.php
|
||||||
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.expected
|
||||||
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/Fixtures/with_cookie_and_session.php
|
||||||
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcacheSessionHandlerTest.php
|
||||||
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MemcachedSessionHandlerTest.php
|
||||||
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
|
opt/app/vendor/symfony/http-foundation/Tests/Session/Storage/Handler/MongoDbSessionHandlerTest.php
|
||||||
@@ -4529,9 +4621,12 @@ opt/app/vendor/symfony/http-kernel/DependencyInjection/ControllerArgumentValueRe
|
|||||||
opt/app/vendor/symfony/http-kernel/DependencyInjection/Extension.php
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/Extension.php
|
||||||
opt/app/vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/FragmentRendererPass.php
|
||||||
opt/app/vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/LazyLoadingFragmentHandler.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/LoggerPass.php
|
||||||
opt/app/vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php
|
||||||
opt/app/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/RegisterControllerArgumentLocatorsPass.php
|
||||||
opt/app/vendor/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPass.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/ResettableServicePass.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/DependencyInjection/ServicesResetter.php
|
||||||
opt/app/vendor/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php
|
opt/app/vendor/symfony/http-kernel/Event/FilterControllerArgumentsEvent.php
|
||||||
opt/app/vendor/symfony/http-kernel/Event/FilterControllerEvent.php
|
opt/app/vendor/symfony/http-kernel/Event/FilterControllerEvent.php
|
||||||
opt/app/vendor/symfony/http-kernel/Event/FilterResponseEvent.php
|
opt/app/vendor/symfony/http-kernel/Event/FilterResponseEvent.php
|
||||||
@@ -4600,11 +4695,14 @@ opt/app/vendor/symfony/http-kernel/KernelEvents.php
|
|||||||
opt/app/vendor/symfony/http-kernel/KernelInterface.php
|
opt/app/vendor/symfony/http-kernel/KernelInterface.php
|
||||||
opt/app/vendor/symfony/http-kernel/LICENSE
|
opt/app/vendor/symfony/http-kernel/LICENSE
|
||||||
opt/app/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php
|
opt/app/vendor/symfony/http-kernel/Log/DebugLoggerInterface.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Log/Logger.php
|
||||||
opt/app/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php
|
opt/app/vendor/symfony/http-kernel/Profiler/FileProfilerStorage.php
|
||||||
opt/app/vendor/symfony/http-kernel/Profiler/Profile.php
|
opt/app/vendor/symfony/http-kernel/Profiler/Profile.php
|
||||||
opt/app/vendor/symfony/http-kernel/Profiler/Profiler.php
|
opt/app/vendor/symfony/http-kernel/Profiler/Profiler.php
|
||||||
opt/app/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php
|
opt/app/vendor/symfony/http-kernel/Profiler/ProfilerStorageInterface.php
|
||||||
opt/app/vendor/symfony/http-kernel/README.md
|
opt/app/vendor/symfony/http-kernel/README.md
|
||||||
|
opt/app/vendor/symfony/http-kernel/RebootableInterface.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Resources/welcome.html.php
|
||||||
opt/app/vendor/symfony/http-kernel/TerminableInterface.php
|
opt/app/vendor/symfony/http-kernel/TerminableInterface.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Bundle/BundleTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/CacheClearer/ChainCacheClearerTest.php
|
||||||
@@ -4614,11 +4712,13 @@ opt/app/vendor/symfony/http-kernel/Tests/CacheWarmer/CacheWarmerTest.php
|
|||||||
opt/app/vendor/symfony/http-kernel/Tests/ClientTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/ClientTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Config/EnvParametersResourceTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Config/EnvParametersResourceTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Config/FileLocatorTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/Controller/ArgumentResolver/ServiceValueResolverTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Controller/ArgumentResolverTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Controller/ArgumentResolverTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Controller/ContainerControllerResolverTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Controller/ContainerControllerResolverTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Controller/ControllerResolverTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataFactoryTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataFactoryTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/ControllerMetadata/ArgumentMetadataTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/Compiler.log
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/ConfigDataCollectorTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/DataCollectorTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/DataCollectorTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DataCollector/DumpDataCollectorTest.php
|
||||||
@@ -4634,9 +4734,13 @@ opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/AddAnnotatedClasses
|
|||||||
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/ControllerArgumentValueResolverPassTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/ControllerArgumentValueResolverPassTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/FragmentRendererPassTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/LazyLoadingFragmentHandlerTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/LoggerPassTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/MergeExtensionConfigurationPassTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/RegisterControllerArgumentLocatorsPassTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPassTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/RemoveEmptyControllerArgumentLocatorsPassTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/ResettableServicePassTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/DependencyInjection/ServicesResetterTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/Event/FilterControllerArgumentsEventTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Event/GetResponseForExceptionEventTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Event/GetResponseForExceptionEventTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/EventListener/AddRequestFormatsListenerTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/EventListener/DebugHandlersListenerTest.php
|
||||||
@@ -4676,6 +4780,7 @@ opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Bundle1Bundle/foo.txt
|
|||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Bundle2Bundle/foo.txt
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Bundle2Bundle/foo.txt
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/foo.txt
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/foo.txt
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/hide.txt
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ChildBundle/Resources/hide.txt
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ClearableService.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Controller/BasicTypesController.php
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Controller/BasicTypesController.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingRequest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingRequest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingSession.php
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Controller/ExtendingSession.php
|
||||||
@@ -4694,6 +4799,7 @@ opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ExtensionPresentBundle/Extensi
|
|||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/KernelForOverrideName.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/KernelForTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/KernelWithoutBundles.php
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/KernelWithoutBundles.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/ResettableService.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Resources/BaseBundle/hide.txt
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Resources/BaseBundle/hide.txt
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Resources/Bundle1Bundle/foo.txt
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Resources/ChildBundle/foo.txt
|
opt/app/vendor/symfony/http-kernel/Tests/Fixtures/Resources/ChildBundle/foo.txt
|
||||||
@@ -4716,6 +4822,7 @@ opt/app/vendor/symfony/http-kernel/Tests/HttpCache/TestHttpKernel.php
|
|||||||
opt/app/vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php
|
opt/app/vendor/symfony/http-kernel/Tests/HttpCache/TestMultipleHttpKernel.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/HttpKernelTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/HttpKernelTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/KernelTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/KernelTest.php
|
||||||
|
opt/app/vendor/symfony/http-kernel/Tests/Log/LoggerTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Logger.php
|
opt/app/vendor/symfony/http-kernel/Tests/Logger.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Profiler/FileProfilerStorageTest.php
|
||||||
opt/app/vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php
|
opt/app/vendor/symfony/http-kernel/Tests/Profiler/ProfilerTest.php
|
||||||
@@ -5297,6 +5404,7 @@ opt/app/vendor/twig/twig/lib/Twig/Cache/Null.php
|
|||||||
opt/app/vendor/twig/twig/lib/Twig/CacheInterface.php
|
opt/app/vendor/twig/twig/lib/Twig/CacheInterface.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Compiler.php
|
opt/app/vendor/twig/twig/lib/Twig/Compiler.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/CompilerInterface.php
|
opt/app/vendor/twig/twig/lib/Twig/CompilerInterface.php
|
||||||
|
opt/app/vendor/twig/twig/lib/Twig/ContainerRuntimeLoader.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Environment.php
|
opt/app/vendor/twig/twig/lib/Twig/Environment.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Error.php
|
opt/app/vendor/twig/twig/lib/Twig/Error.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Error/Loader.php
|
opt/app/vendor/twig/twig/lib/Twig/Error/Loader.php
|
||||||
@@ -5417,6 +5525,7 @@ opt/app/vendor/twig/twig/lib/Twig/Node/SetTemp.php
|
|||||||
opt/app/vendor/twig/twig/lib/Twig/Node/Spaceless.php
|
opt/app/vendor/twig/twig/lib/Twig/Node/Spaceless.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Node/Text.php
|
opt/app/vendor/twig/twig/lib/Twig/Node/Text.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Node/With.php
|
opt/app/vendor/twig/twig/lib/Twig/Node/With.php
|
||||||
|
opt/app/vendor/twig/twig/lib/Twig/NodeCaptureInterface.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/NodeInterface.php
|
opt/app/vendor/twig/twig/lib/Twig/NodeInterface.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
|
opt/app/vendor/twig/twig/lib/Twig/NodeOutputInterface.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php
|
opt/app/vendor/twig/twig/lib/Twig/NodeTraverser.php
|
||||||
@@ -5427,6 +5536,7 @@ opt/app/vendor/twig/twig/lib/Twig/NodeVisitor/Sandbox.php
|
|||||||
opt/app/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
|
opt/app/vendor/twig/twig/lib/Twig/NodeVisitorInterface.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Parser.php
|
opt/app/vendor/twig/twig/lib/Twig/Parser.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/ParserInterface.php
|
opt/app/vendor/twig/twig/lib/Twig/ParserInterface.php
|
||||||
|
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Base.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php
|
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Blackfire.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php
|
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Html.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php
|
opt/app/vendor/twig/twig/lib/Twig/Profiler/Dumper/Text.php
|
||||||
@@ -5486,15 +5596,188 @@ opt/app/vendor/twig/twig/lib/Twig/TokenStream.php
|
|||||||
opt/app/vendor/twig/twig/lib/Twig/Util/DeprecationCollector.php
|
opt/app/vendor/twig/twig/lib/Twig/Util/DeprecationCollector.php
|
||||||
opt/app/vendor/twig/twig/lib/Twig/Util/TemplateDirIterator.php
|
opt/app/vendor/twig/twig/lib/Twig/Util/TemplateDirIterator.php
|
||||||
opt/app/vendor/twig/twig/phpunit.xml.dist
|
opt/app/vendor/twig/twig/phpunit.xml.dist
|
||||||
|
opt/app/vendor/twig/twig/src/Cache/CacheInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Cache/FilesystemCache.php
|
||||||
|
opt/app/vendor/twig/twig/src/Cache/NullCache.php
|
||||||
|
opt/app/vendor/twig/twig/src/Compiler.php
|
||||||
|
opt/app/vendor/twig/twig/src/Environment.php
|
||||||
|
opt/app/vendor/twig/twig/src/Error/Error.php
|
||||||
|
opt/app/vendor/twig/twig/src/Error/LoaderError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Error/RuntimeError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Error/SyntaxError.php
|
||||||
|
opt/app/vendor/twig/twig/src/ExpressionParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/AbstractExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/CoreExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/DebugExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/EscaperExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/ExtensionInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/GlobalsInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/InitRuntimeInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/OptimizerExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/ProfilerExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/RuntimeExtensionInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/SandboxExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/StagingExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/Extension/StringLoaderExtension.php
|
||||||
|
opt/app/vendor/twig/twig/src/FileExtensionEscapingStrategy.php
|
||||||
|
opt/app/vendor/twig/twig/src/Lexer.php
|
||||||
|
opt/app/vendor/twig/twig/src/Loader/ArrayLoader.php
|
||||||
|
opt/app/vendor/twig/twig/src/Loader/ChainLoader.php
|
||||||
|
opt/app/vendor/twig/twig/src/Loader/ExistsLoaderInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Loader/FilesystemLoader.php
|
||||||
|
opt/app/vendor/twig/twig/src/Loader/LoaderInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Loader/SourceContextLoaderInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Markup.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/AutoEscapeNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/BlockNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/BlockReferenceNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/BodyNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/CheckSecurityNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/DoNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/EmbedNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/AbstractExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/ArrayExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/AssignNameExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/AbstractBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/AddBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/AndBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/BitwiseAndBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/BitwiseOrBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/BitwiseXorBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/ConcatBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/DivBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/EndsWithBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/EqualBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/FloorDivBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/GreaterBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/GreaterEqualBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/InBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/LessBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/LessEqualBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/MatchesBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/ModBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/MulBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/NotEqualBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/NotInBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/OrBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/PowerBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/RangeBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/StartsWithBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Binary/SubBinary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/BlockReferenceExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/CallExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/ConditionalExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/ConstantExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Filter/DefaultFilter.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/FilterExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/FunctionExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/GetAttrExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/MethodCallExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/NameExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/NullCoalesceExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/ParentExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/TempNameExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/ConstantTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/DefinedTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/DivisiblebyTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/EvenTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/NullTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/OddTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Test/SameasTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/TestExpression.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Unary/AbstractUnary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Unary/NegUnary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Unary/NotUnary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Expression/Unary/PosUnary.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/FlushNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/ForLoopNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/ForNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/IfNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/ImportNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/IncludeNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/MacroNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/ModuleNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/Node.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/NodeCaptureInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/NodeOutputInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/PrintNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/SandboxNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/SandboxedPrintNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/SetNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/SetTempNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/SpacelessNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/TextNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Node/WithNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeTraverser.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeVisitor/AbstractNodeVisitor.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeVisitor/EscaperNodeVisitor.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeVisitor/NodeVisitorInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeVisitor/OptimizerNodeVisitor.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeVisitor/SafeAnalysisNodeVisitor.php
|
||||||
|
opt/app/vendor/twig/twig/src/NodeVisitor/SandboxNodeVisitor.php
|
||||||
|
opt/app/vendor/twig/twig/src/Parser.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Dumper/BaseDumper.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Dumper/BlackfireDumper.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Dumper/HtmlDumper.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Dumper/TextDumper.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Node/EnterProfileNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Node/LeaveProfileNode.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/NodeVisitor/ProfilerNodeVisitor.php
|
||||||
|
opt/app/vendor/twig/twig/src/Profiler/Profile.php
|
||||||
|
opt/app/vendor/twig/twig/src/RuntimeLoader/ContainerRuntimeLoader.php
|
||||||
|
opt/app/vendor/twig/twig/src/RuntimeLoader/FactoryRuntimeLoader.php
|
||||||
|
opt/app/vendor/twig/twig/src/RuntimeLoader/RuntimeLoaderInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFilterError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityNotAllowedFunctionError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityNotAllowedMethodError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityNotAllowedPropertyError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityNotAllowedTagError.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityPolicy.php
|
||||||
|
opt/app/vendor/twig/twig/src/Sandbox/SecurityPolicyInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/Source.php
|
||||||
|
opt/app/vendor/twig/twig/src/Template.php
|
||||||
|
opt/app/vendor/twig/twig/src/TemplateWrapper.php
|
||||||
|
opt/app/vendor/twig/twig/src/Test/IntegrationTestCase.php
|
||||||
|
opt/app/vendor/twig/twig/src/Test/NodeTestCase.php
|
||||||
|
opt/app/vendor/twig/twig/src/Token.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/AbstractTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/AutoEscapeTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/BlockTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/DoTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/EmbedTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/ExtendsTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/FilterTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/FlushTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/ForTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/FromTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/IfTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/ImportTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/IncludeTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/MacroTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/SandboxTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/SetTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/SpacelessTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/TokenParserInterface.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/UseTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenParser/WithTokenParser.php
|
||||||
|
opt/app/vendor/twig/twig/src/TokenStream.php
|
||||||
|
opt/app/vendor/twig/twig/src/TwigFilter.php
|
||||||
|
opt/app/vendor/twig/twig/src/TwigFunction.php
|
||||||
|
opt/app/vendor/twig/twig/src/TwigTest.php
|
||||||
|
opt/app/vendor/twig/twig/src/Util/DeprecationCollector.php
|
||||||
|
opt/app/vendor/twig/twig/src/Util/TemplateDirIterator.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/AutoloaderTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/AutoloaderTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Cache/FilesystemTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/Cache/FilesystemTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/CompilerTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/CompilerTest.php
|
||||||
|
opt/app/vendor/twig/twig/test/Twig/Tests/ContainerRuntimeLoaderTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/CustomExtensionTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/CustomExtensionTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/EnvironmentTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/ErrorTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/ErrorTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/ExpressionParserTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/Extension/CoreTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/Extension/SandboxTest.php
|
||||||
|
opt/app/vendor/twig/twig/test/Twig/Tests/FactoryRuntimeLoaderTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/FileCachingTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/FileExtensionEscapingStrategyTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/FileExtensionEscapingStrategyTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/FilesystemHelper.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/FilesystemHelper.php
|
||||||
@@ -5561,6 +5844,7 @@ opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/default.test
|
|||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/dynamic_filter.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/dynamic_filter.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_html_attr.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_html_attr.test
|
||||||
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_javascript.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_non_supported_charset.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/escape_non_supported_charset.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/first.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/force_escape.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/filters/force_escape.test
|
||||||
@@ -5751,6 +6035,7 @@ opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/multiple_aliases.test
|
|||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block2.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block2.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block3.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/parent_block3.test
|
||||||
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/use/use_with_parent.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/basic.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/basic.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/mixed_usage_with_raw.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/mixed_usage_with_raw.test
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test
|
opt/app/vendor/twig/twig/test/Twig/Tests/Fixtures/tags/verbatim/whitespace_control.test
|
||||||
@@ -5851,12 +6136,11 @@ opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/BlackfireTest.php
|
|||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/HtmlTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/HtmlTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/TextTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/Dumper/TextTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/ProfileTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/Profiler/ProfileTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/RuntimeFactoryLoaderTest.php
|
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/TemplateTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/TemplateWrapperTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/TemplateWrapperTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/TokenStreamTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/TokenStreamTest.php
|
||||||
|
opt/app/vendor/twig/twig/test/Twig/Tests/Util/DeprecationCollectorTest.php
|
||||||
opt/app/vendor/twig/twig/test/Twig/Tests/escapingTest.php
|
opt/app/vendor/twig/twig/test/Twig/Tests/escapingTest.php
|
||||||
opt/app/vendor/twig/twig/test/bootstrap.php
|
|
||||||
opt/app/vendor/vlucas/phpdotenv/LICENSE.txt
|
opt/app/vendor/vlucas/phpdotenv/LICENSE.txt
|
||||||
opt/app/vendor/vlucas/phpdotenv/composer.json
|
opt/app/vendor/vlucas/phpdotenv/composer.json
|
||||||
opt/app/vendor/vlucas/phpdotenv/src/Dotenv.php
|
opt/app/vendor/vlucas/phpdotenv/src/Dotenv.php
|
||||||
@@ -6010,6 +6294,8 @@ usr/lib/x86_64-linux-gnu/libxml2.so.2
|
|||||||
usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1
|
usr/lib/x86_64-linux-gnu/libxml2.so.2.9.1
|
||||||
usr/lib/x86_64-linux-gnu/libxslt.so.1
|
usr/lib/x86_64-linux-gnu/libxslt.so.1
|
||||||
usr/lib/x86_64-linux-gnu/libxslt.so.1.1.28
|
usr/lib/x86_64-linux-gnu/libxslt.so.1.1.28
|
||||||
|
usr/lib/x86_64-linux-gnu/libzip.so.5
|
||||||
|
usr/lib/x86_64-linux-gnu/libzip.so.5.0.0
|
||||||
usr/sbin/mysqld
|
usr/sbin/mysqld
|
||||||
usr/sbin/nginx
|
usr/sbin/nginx
|
||||||
usr/sbin/php-fpm7.1
|
usr/sbin/php-fpm7.1
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ const pkgdef :Spk.PackageDefinition = (
|
|||||||
|
|
||||||
manifest = (
|
manifest = (
|
||||||
appTitle = (defaultText = "Firefly III"),
|
appTitle = (defaultText = "Firefly III"),
|
||||||
appVersion = 5,
|
appVersion = 6,
|
||||||
appMarketingVersion = (defaultText = "4.6.11.1"),
|
appMarketingVersion = (defaultText = "4.6.12"),
|
||||||
|
|
||||||
actions = [
|
actions = [
|
||||||
# Define your "new document" handlers here.
|
# Define your "new document" handlers here.
|
||||||
|
|||||||
25
CHANGELOG.md
25
CHANGELOG.md
@@ -2,6 +2,31 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||||
|
|
||||||
|
## [4.6.12] - 2017-12-31
|
||||||
|
### Added
|
||||||
|
- Support for Indonesian.
|
||||||
|
- New report, see [issue 384](https://github.com/firefly-iii/firefly-iii/issues/384)
|
||||||
|
- [Issue 964](https://github.com/firefly-iii/firefly-iii/issues/964) as suggested by [gavu](https://github.com/gavu)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- Greatly improved Docker support and documentation.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- [Issue 1046](https://github.com/firefly-iii/firefly-iii/issues/1046), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1047](https://github.com/firefly-iii/firefly-iii/issues/1047), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1048](https://github.com/firefly-iii/firefly-iii/issues/1048), as reported by [webence](https://github.com/webence)
|
||||||
|
- [Issue 1049](https://github.com/firefly-iii/firefly-iii/issues/1049), as reported by [nicoschreiner](https://github.com/nicoschreiner)
|
||||||
|
- [Issue 1015](https://github.com/firefly-iii/firefly-iii/issues/1015), as reporterd by a user on Tweakers.net
|
||||||
|
- [Issue 1056](https://github.com/firefly-iii/firefly-iii/issues/1056), as reported by [repercussion](https://github.com/repercussion)
|
||||||
|
- [Issue 1061](https://github.com/firefly-iii/firefly-iii/issues/1061), as reported by [Meizikyn](https://github.com/Meizikyn)
|
||||||
|
- [Issue 1045](https://github.com/firefly-iii/firefly-iii/issues/1045), as reported by [gavu](https://github.com/gavu)
|
||||||
|
- First code for [issue 1040](https://github.com/firefly-iii/firefly-iii/issues/1040) ([simonsmiley](https://github.com/simonsmiley))
|
||||||
|
- [Issue 1059](https://github.com/firefly-iii/firefly-iii/issues/1059), as reported by [4oo4](https://github.com/4oo4)
|
||||||
|
- [Issue 1063](https://github.com/firefly-iii/firefly-iii/issues/1063), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1064](https://github.com/firefly-iii/firefly-iii/issues/1064), as reported by [pkoziol](https://github.com/pkoziol)
|
||||||
|
- [Issue 1066](https://github.com/firefly-iii/firefly-iii/issues/1066), reported by [wtercato](https://github.com/wtercato)
|
||||||
|
|
||||||
|
|
||||||
## [4.6.11.1] - 2017-12-08
|
## [4.6.11.1] - 2017-12-08
|
||||||
### Added
|
### Added
|
||||||
- Import routine can scan for matching bills, [issue 956](https://github.com/firefly-iii/firefly-iii/issues/956)
|
- Import routine can scan for matching bills, [issue 956](https://github.com/firefly-iii/firefly-iii/issues/956)
|
||||||
|
|||||||
@@ -150,7 +150,9 @@ class CreateImport extends Command
|
|||||||
$this->error(sprintf('Error importing line #%d: %s', $index, $error));
|
$this->error(sprintf('Error importing line #%d: %s', $index, $error));
|
||||||
}
|
}
|
||||||
$this->line(
|
$this->line(
|
||||||
sprintf('The import has finished. %d transactions have been imported out of %d records.', $routine->getJournals()->count(), $routine->lines)
|
sprintf(
|
||||||
|
'The import has finished. %d transactions have been imported out of %d records.', $routine->getJournals()->count(), $routine->getLines()
|
||||||
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,11 +98,13 @@ class Import extends Command
|
|||||||
$routine->run();
|
$routine->run();
|
||||||
|
|
||||||
/** @var MessageBag $error */
|
/** @var MessageBag $error */
|
||||||
foreach ($routine->errors as $index => $error) {
|
foreach ($routine->getErrors() as $index => $error) {
|
||||||
$this->error(sprintf('Error importing line #%d: %s', $index, $error));
|
$this->error(sprintf('Error importing line #%d: %s', $index, $error));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->line(sprintf('The import has finished. %d transactions have been imported out of %d records.', $routine->journals->count(), $routine->lines));
|
$this->line(
|
||||||
|
sprintf('The import has finished. %d transactions have been imported out of %d records.', $routine->getJournals()->count(), $routine->getLines())
|
||||||
|
);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,6 +57,12 @@ class UseEncryption extends Command
|
|||||||
*/
|
*/
|
||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
|
if (config('firefly.encryption') === true) {
|
||||||
|
$this->info('Firefly III configuration calls for encrypted data.');
|
||||||
|
}
|
||||||
|
if (config('firefly.encryption') === false) {
|
||||||
|
$this->info('Firefly III configuration calls for unencrypted data.');
|
||||||
|
}
|
||||||
$this->handleObjects('Account', 'name', 'encrypted');
|
$this->handleObjects('Account', 'name', 'encrypted');
|
||||||
$this->handleObjects('Bill', 'name', 'name_encrypted');
|
$this->handleObjects('Bill', 'name', 'name_encrypted');
|
||||||
$this->handleObjects('Bill', 'match', 'match_encrypted');
|
$this->handleObjects('Bill', 'match', 'match_encrypted');
|
||||||
@@ -76,7 +82,7 @@ class UseEncryption extends Command
|
|||||||
public function handleObjects(string $class, string $field, string $indicator)
|
public function handleObjects(string $class, string $field, string $indicator)
|
||||||
{
|
{
|
||||||
$fqn = sprintf('FireflyIII\Models\%s', $class);
|
$fqn = sprintf('FireflyIII\Models\%s', $class);
|
||||||
$encrypt = config('firefly.encryption') ? 0 : 1;
|
$encrypt = config('firefly.encryption') === true ? 0 : 1;
|
||||||
$set = $fqn::where($indicator, $encrypt)->get();
|
$set = $fqn::where($indicator, $encrypt)->get();
|
||||||
|
|
||||||
foreach ($set as $entry) {
|
foreach ($set as $entry) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* Login.php
|
* RequestedVersionCheckStatus.php
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||||
*
|
*
|
||||||
* This file is part of Firefly III.
|
* This file is part of Firefly III.
|
||||||
@@ -21,12 +21,32 @@
|
|||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
namespace FireflyIII\Services\Spectre\Object;
|
namespace FireflyIII\Events;
|
||||||
|
|
||||||
|
use FireflyIII\User;
|
||||||
|
use Illuminate\Queue\SerializesModels;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Login
|
* Class RequestedVersionCheckStatus
|
||||||
*/
|
*/
|
||||||
class Login extends SpectreObject
|
class RequestedVersionCheckStatus extends Event
|
||||||
{
|
{
|
||||||
|
use SerializesModels;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var User
|
||||||
|
*/
|
||||||
|
public $user;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new event instance. This event is triggered when Firefly III wants to know
|
||||||
|
* what the deal is with the version checker.
|
||||||
|
*
|
||||||
|
* @param User $user
|
||||||
|
*/
|
||||||
|
public function __construct(User $user)
|
||||||
|
{
|
||||||
|
$this->user = $user;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -203,7 +203,7 @@ final class Entry
|
|||||||
$entry->description = $transaction->transaction_description . '(' . $transaction->description . ')';
|
$entry->description = $transaction->transaction_description . '(' . $transaction->description . ')';
|
||||||
}
|
}
|
||||||
$entry->currency_code = $transaction->transactionCurrency->code;
|
$entry->currency_code = $transaction->transactionCurrency->code;
|
||||||
$entry->amount = round($transaction->transaction_amount, $transaction->transactionCurrency->decimal_places);
|
$entry->amount = strval(round($transaction->transaction_amount, $transaction->transactionCurrency->decimal_places));
|
||||||
|
|
||||||
$entry->foreign_currency_code = null === $transaction->foreign_currency_id ? null : $transaction->foreignCurrency->code;
|
$entry->foreign_currency_code = null === $transaction->foreign_currency_id ? null : $transaction->foreignCurrency->code;
|
||||||
$entry->foreign_amount = null === $transaction->foreign_currency_id
|
$entry->foreign_amount = null === $transaction->foreign_currency_id
|
||||||
@@ -216,14 +216,14 @@ final class Entry
|
|||||||
);
|
);
|
||||||
|
|
||||||
$entry->transaction_type = $transaction->transaction_type_type;
|
$entry->transaction_type = $transaction->transaction_type_type;
|
||||||
$entry->asset_account_id = $transaction->account_id;
|
$entry->asset_account_id = strval($transaction->account_id);
|
||||||
$entry->asset_account_name = app('steam')->tryDecrypt($transaction->account_name);
|
$entry->asset_account_name = app('steam')->tryDecrypt($transaction->account_name);
|
||||||
$entry->asset_account_iban = $transaction->account_iban;
|
$entry->asset_account_iban = $transaction->account_iban;
|
||||||
$entry->asset_account_number = $transaction->account_number;
|
$entry->asset_account_number = $transaction->account_number;
|
||||||
$entry->asset_account_bic = $transaction->account_bic;
|
$entry->asset_account_bic = $transaction->account_bic;
|
||||||
$entry->asset_currency_code = $transaction->account_currency_code;
|
$entry->asset_currency_code = $transaction->account_currency_code;
|
||||||
|
|
||||||
$entry->opposing_account_id = $transaction->opposing_account_id;
|
$entry->opposing_account_id = strval($transaction->opposing_account_id);
|
||||||
$entry->opposing_account_name = app('steam')->tryDecrypt($transaction->opposing_account_name);
|
$entry->opposing_account_name = app('steam')->tryDecrypt($transaction->opposing_account_name);
|
||||||
$entry->opposing_account_iban = $transaction->opposing_account_iban;
|
$entry->opposing_account_iban = $transaction->opposing_account_iban;
|
||||||
$entry->opposing_account_number = $transaction->opposing_account_number;
|
$entry->opposing_account_number = $transaction->opposing_account_number;
|
||||||
@@ -231,7 +231,7 @@ final class Entry
|
|||||||
$entry->opposing_currency_code = $transaction->opposing_currency_code;
|
$entry->opposing_currency_code = $transaction->opposing_currency_code;
|
||||||
|
|
||||||
// budget
|
// budget
|
||||||
$entry->budget_id = $transaction->transaction_budget_id;
|
$entry->budget_id = strval($transaction->transaction_budget_id);
|
||||||
$entry->budget_name = app('steam')->tryDecrypt($transaction->transaction_budget_name);
|
$entry->budget_name = app('steam')->tryDecrypt($transaction->transaction_budget_name);
|
||||||
if (null === $transaction->transaction_budget_id) {
|
if (null === $transaction->transaction_budget_id) {
|
||||||
$entry->budget_id = $transaction->transaction_journal_budget_id;
|
$entry->budget_id = $transaction->transaction_journal_budget_id;
|
||||||
@@ -239,7 +239,7 @@ final class Entry
|
|||||||
}
|
}
|
||||||
|
|
||||||
// category
|
// category
|
||||||
$entry->category_id = $transaction->transaction_category_id;
|
$entry->category_id = strval($transaction->transaction_category_id);
|
||||||
$entry->category_name = app('steam')->tryDecrypt($transaction->transaction_category_name);
|
$entry->category_name = app('steam')->tryDecrypt($transaction->transaction_category_name);
|
||||||
if (null === $transaction->transaction_category_id) {
|
if (null === $transaction->transaction_category_id) {
|
||||||
$entry->category_id = $transaction->transaction_journal_category_id;
|
$entry->category_id = $transaction->transaction_journal_category_id;
|
||||||
@@ -247,7 +247,7 @@ final class Entry
|
|||||||
}
|
}
|
||||||
|
|
||||||
// budget
|
// budget
|
||||||
$entry->bill_id = $transaction->bill_id;
|
$entry->bill_id = strval($transaction->bill_id);
|
||||||
$entry->bill_name = app('steam')->tryDecrypt($transaction->bill_name);
|
$entry->bill_name = app('steam')->tryDecrypt($transaction->bill_name);
|
||||||
|
|
||||||
$entry->tags = $transaction->tags;
|
$entry->tags = $transaction->tags;
|
||||||
|
|||||||
@@ -24,8 +24,6 @@ namespace FireflyIII\Export\Exporter;
|
|||||||
|
|
||||||
use FireflyIII\Export\Entry\Entry;
|
use FireflyIII\Export\Entry\Entry;
|
||||||
use League\Csv\Writer;
|
use League\Csv\Writer;
|
||||||
use SplFileObject;
|
|
||||||
use SplTempFileObject;
|
|
||||||
use Storage;
|
use Storage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -66,11 +64,8 @@ class CsvExporter extends BasicExporter implements ExporterInterface
|
|||||||
$fullPath = storage_path('export') . DIRECTORY_SEPARATOR . $this->fileName;
|
$fullPath = storage_path('export') . DIRECTORY_SEPARATOR . $this->fileName;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//we create the CSV into memory
|
//we create the CSV into memory
|
||||||
//$writer = Writer::createFromFileObject(new SplTempFileObject());
|
|
||||||
$writer = Writer::createFromPath($fullPath);
|
$writer = Writer::createFromPath($fullPath);
|
||||||
//$writer = Writer::createFromPath(new SplFileObject($fullPath, 'a+'), 'w');
|
|
||||||
$rows = [];
|
$rows = [];
|
||||||
|
|
||||||
// get field names for header row:
|
// get field names for header row:
|
||||||
@@ -91,8 +86,6 @@ class CsvExporter extends BasicExporter implements ExporterInterface
|
|||||||
$rows[] = $line;
|
$rows[] = $line;
|
||||||
}
|
}
|
||||||
$writer->insertAll($rows);
|
$writer->insertAll($rows);
|
||||||
//$writer->output($fullPath);
|
|
||||||
//$writer->
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws \Throwable
|
||||||
*/
|
*/
|
||||||
public function generate(): string
|
public function generate(): string
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ class UserEventHandler
|
|||||||
{
|
{
|
||||||
Log::debug('In checkSingleUserIsAdmin');
|
Log::debug('In checkSingleUserIsAdmin');
|
||||||
|
|
||||||
|
/** @var User $user */
|
||||||
$user = $event->user;
|
$user = $event->user;
|
||||||
$count = User::count();
|
$count = User::count();
|
||||||
|
|
||||||
|
|||||||
@@ -23,20 +23,21 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Handlers\Events;
|
namespace FireflyIII\Handlers\Events;
|
||||||
|
|
||||||
|
use FireflyConfig;
|
||||||
|
use FireflyIII\Events\RequestedVersionCheckStatus;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Auth\Events\Login;
|
|
||||||
use Log;
|
use Log;
|
||||||
use Preferences;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class VersionCheckEventHandler
|
* Class VersionCheckEventHandler
|
||||||
*/
|
*/
|
||||||
class VersionCheckEventHandler
|
class VersionCheckEventHandler
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Login $event
|
* @param RequestedVersionCheckStatus $event
|
||||||
*/
|
*/
|
||||||
public function checkForUpdates(Login $event)
|
public function checkForUpdates(RequestedVersionCheckStatus $event)
|
||||||
{
|
{
|
||||||
// in Sandstorm, cannot check for updates:
|
// in Sandstorm, cannot check for updates:
|
||||||
$sandstorm = 1 === intval(getenv('SANDSTORM'));
|
$sandstorm = 1 === intval(getenv('SANDSTORM'));
|
||||||
@@ -46,8 +47,12 @@ class VersionCheckEventHandler
|
|||||||
|
|
||||||
/** @var User $user */
|
/** @var User $user */
|
||||||
$user = $event->user;
|
$user = $event->user;
|
||||||
$permission = Preferences::getForUser($user, 'permission_update_check', -1);
|
if (!$user->hasRole('owner')) {
|
||||||
$lastCheckTime = Preferences::getForUser($user, 'last_update_check', time());
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$permission = FireflyConfig::get('permission_update_check', -1);
|
||||||
|
$lastCheckTime = FireflyConfig::get('last_update_check', time());
|
||||||
$now = time();
|
$now = time();
|
||||||
if ($now - $lastCheckTime->data < 604800) {
|
if ($now - $lastCheckTime->data < 604800) {
|
||||||
Log::debug('Checked for updates less than a week ago.');
|
Log::debug('Checked for updates less than a week ago.');
|
||||||
@@ -66,6 +71,8 @@ class VersionCheckEventHandler
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// actually check for update and inform the user.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -101,13 +101,12 @@ class AccountController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
|
||||||
* @param AccountRepositoryInterface $repository
|
* @param AccountRepositoryInterface $repository
|
||||||
* @param Account $account
|
* @param Account $account
|
||||||
*
|
*
|
||||||
* @return View
|
* @return View
|
||||||
*/
|
*/
|
||||||
public function delete(Request $request, AccountRepositoryInterface $repository, Account $account)
|
public function delete(AccountRepositoryInterface $repository, Account $account)
|
||||||
{
|
{
|
||||||
$typeName = config('firefly.shortNamesByFullName.' . $account->accountType->type);
|
$typeName = config('firefly.shortNamesByFullName.' . $account->accountType->type);
|
||||||
$subTitle = trans('firefly.delete_' . $typeName . '_account', ['name' => $account->name]);
|
$subTitle = trans('firefly.delete_' . $typeName . '_account', ['name' => $account->name]);
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Http\Controllers\Admin;
|
namespace FireflyIII\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use FireflyConfig;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Http\Controllers\Controller;
|
use FireflyIII\Http\Controllers\Controller;
|
||||||
use FireflyIII\Http\Middleware\IsDemoUser;
|
use FireflyIII\Http\Middleware\IsDemoUser;
|
||||||
@@ -30,7 +31,6 @@ use FireflyIII\Services\Github\Object\Release;
|
|||||||
use FireflyIII\Services\Github\Request\UpdateRequest;
|
use FireflyIII\Services\Github\Request\UpdateRequest;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Log;
|
use Log;
|
||||||
use Preferences;
|
|
||||||
use Response;
|
use Response;
|
||||||
use Session;
|
use Session;
|
||||||
|
|
||||||
@@ -67,7 +67,7 @@ class UpdateController extends Controller
|
|||||||
{
|
{
|
||||||
$subTitle = trans('firefly.update_check_title');
|
$subTitle = trans('firefly.update_check_title');
|
||||||
$subTitleIcon = 'fa-star';
|
$subTitleIcon = 'fa-star';
|
||||||
$permission = app('preferences')->get('permission_update_check', -1);
|
$permission = app('fireflyconfig')->get('permission_update_check', -1);
|
||||||
$selected = $permission->data;
|
$selected = $permission->data;
|
||||||
$options = [
|
$options = [
|
||||||
'-1' => trans('firefly.updates_ask_me_later'),
|
'-1' => trans('firefly.updates_ask_me_later'),
|
||||||
@@ -86,9 +86,9 @@ class UpdateController extends Controller
|
|||||||
public function post(Request $request)
|
public function post(Request $request)
|
||||||
{
|
{
|
||||||
$checkForUpdates = intval($request->get('check_for_updates'));
|
$checkForUpdates = intval($request->get('check_for_updates'));
|
||||||
Preferences::set('permission_update_check', $checkForUpdates);
|
FireflyConfig::set('permission_update_check', $checkForUpdates);
|
||||||
|
FireflyConfig::set('last_update_check', time());
|
||||||
Session::flash('success', strval(trans('firefly.configuration_updated')));
|
Session::flash('success', strval(trans('firefly.configuration_updated')));
|
||||||
Preferences::mark();
|
|
||||||
|
|
||||||
return redirect(route('admin.update-check'));
|
return redirect(route('admin.update-check'));
|
||||||
}
|
}
|
||||||
@@ -99,17 +99,19 @@ class UpdateController extends Controller
|
|||||||
public function updateCheck()
|
public function updateCheck()
|
||||||
{
|
{
|
||||||
$current = config('firefly.version');
|
$current = config('firefly.version');
|
||||||
$request = new UpdateRequest();
|
/** @var UpdateRequest $request */
|
||||||
|
$request = app(UpdateRequest::class);
|
||||||
$check = -2;
|
$check = -2;
|
||||||
|
$first = new Release(['id' => '0', 'title' => '0', 'updated' => '2017-01-01', 'content' => '']);
|
||||||
|
$string = '';
|
||||||
try {
|
try {
|
||||||
$request->call();
|
$request->call();
|
||||||
$releases = $request->getReleases();
|
$releases = $request->getReleases();
|
||||||
// first entry should be the latest entry:
|
// first entry should be the latest entry:
|
||||||
/** @var Release $first */
|
/** @var Release $first */
|
||||||
$first = reset($releases);
|
$first = reset($releases);
|
||||||
$string = '';
|
|
||||||
$check = version_compare($current, $first->getTitle());
|
$check = version_compare($current, $first->getTitle());
|
||||||
Preferences::set('last_update_check', time());
|
FireflyConfig::set('last_update_check', time());
|
||||||
} catch (FireflyException $e) {
|
} catch (FireflyException $e) {
|
||||||
Log::error(sprintf('Could not check for updates: %s', $e->getMessage()));
|
Log::error(sprintf('Could not check for updates: %s', $e->getMessage()));
|
||||||
}
|
}
|
||||||
@@ -119,7 +121,12 @@ class UpdateController extends Controller
|
|||||||
|
|
||||||
if ($check === -1) {
|
if ($check === -1) {
|
||||||
// there is a new FF version!
|
// there is a new FF version!
|
||||||
$string = strval(trans('firefly.update_new_version_alert', ['your_version' => $current, 'new_version' => $first->getTitle()]));
|
$string = strval(
|
||||||
|
trans(
|
||||||
|
'firefly.update_new_version_alert',
|
||||||
|
['your_version' => $current, 'new_version' => $first->getTitle(), 'date' => $first->getUpdated()->formatLocalized($this->monthAndDayFormat)]
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if ($check === 0) {
|
if ($check === 0) {
|
||||||
// you are running the current version!
|
// you are running the current version!
|
||||||
|
|||||||
@@ -59,12 +59,11 @@ class AttachmentController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
|
||||||
* @param Attachment $attachment
|
* @param Attachment $attachment
|
||||||
*
|
*
|
||||||
* @return View
|
* @return View
|
||||||
*/
|
*/
|
||||||
public function delete(Request $request, Attachment $attachment)
|
public function delete(Attachment $attachment)
|
||||||
{
|
{
|
||||||
$subTitle = trans('firefly.delete_attachment', ['name' => $attachment->filename]);
|
$subTitle = trans('firefly.delete_attachment', ['name' => $attachment->filename]);
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class LoginController extends Controller
|
|||||||
*
|
*
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\Response|void
|
* @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\Response
|
||||||
*
|
*
|
||||||
* @throws \Illuminate\Validation\ValidationException
|
* @throws \Illuminate\Validation\ValidationException
|
||||||
*/
|
*/
|
||||||
@@ -102,7 +102,7 @@ class LoginController extends Controller
|
|||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @param CookieJar $cookieJar
|
* @param CookieJar $cookieJar
|
||||||
*
|
*
|
||||||
* @return $this
|
* @return $this|\Illuminate\Http\RedirectResponse
|
||||||
*/
|
*/
|
||||||
public function logout(Request $request, CookieJar $cookieJar)
|
public function logout(Request $request, CookieJar $cookieJar)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -91,12 +91,11 @@ class BillController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
|
||||||
* @param Bill $bill
|
* @param Bill $bill
|
||||||
*
|
*
|
||||||
* @return View
|
* @return View
|
||||||
*/
|
*/
|
||||||
public function delete(Request $request, Bill $bill)
|
public function delete(Bill $bill)
|
||||||
{
|
{
|
||||||
// put previous url in session
|
// put previous url in session
|
||||||
$this->rememberPreviousUri('bills.delete.uri');
|
$this->rememberPreviousUri('bills.delete.uri');
|
||||||
|
|||||||
@@ -118,12 +118,11 @@ class BudgetController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
|
||||||
* @param Budget $budget
|
* @param Budget $budget
|
||||||
*
|
*
|
||||||
* @return View
|
* @return View
|
||||||
*/
|
*/
|
||||||
public function delete(Request $request, Budget $budget)
|
public function delete(Budget $budget)
|
||||||
{
|
{
|
||||||
$subTitle = trans('firefly.delete_budget', ['name' => $budget->name]);
|
$subTitle = trans('firefly.delete_budget', ['name' => $budget->name]);
|
||||||
|
|
||||||
|
|||||||
@@ -80,12 +80,11 @@ class CategoryController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
|
||||||
* @param Category $category
|
* @param Category $category
|
||||||
*
|
*
|
||||||
* @return View
|
* @return View
|
||||||
*/
|
*/
|
||||||
public function delete(Request $request, Category $category)
|
public function delete(Category $category)
|
||||||
{
|
{
|
||||||
$subTitle = trans('firefly.delete_category', ['name' => $category->name]);
|
$subTitle = trans('firefly.delete_category', ['name' => $category->name]);
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ namespace FireflyIII\Http\Controllers;
|
|||||||
use Artisan;
|
use Artisan;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use DB;
|
use DB;
|
||||||
|
use Exception;
|
||||||
|
use FireflyIII\Events\RequestedVersionCheckStatus;
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Helpers\Collector\JournalCollectorInterface;
|
use FireflyIII\Helpers\Collector\JournalCollectorInterface;
|
||||||
use FireflyIII\Http\Middleware\IsDemoUser;
|
use FireflyIII\Http\Middleware\IsDemoUser;
|
||||||
@@ -38,7 +40,6 @@ use Illuminate\Support\Collection;
|
|||||||
use Log;
|
use Log;
|
||||||
use Monolog\Handler\RotatingFileHandler;
|
use Monolog\Handler\RotatingFileHandler;
|
||||||
use Preferences;
|
use Preferences;
|
||||||
use ReflectionException;
|
|
||||||
use Response;
|
use Response;
|
||||||
use Route as RouteFacade;
|
use Route as RouteFacade;
|
||||||
use View;
|
use View;
|
||||||
@@ -185,7 +186,7 @@ class HomeController extends Controller
|
|||||||
Log::debug('Call twig:clean...');
|
Log::debug('Call twig:clean...');
|
||||||
try {
|
try {
|
||||||
Artisan::call('twig:clean');
|
Artisan::call('twig:clean');
|
||||||
} catch (ReflectionException $e) {
|
} catch (Exception $e) {
|
||||||
// dont care
|
// dont care
|
||||||
}
|
}
|
||||||
Log::debug('Call view:clear...');
|
Log::debug('Call view:clear...');
|
||||||
@@ -234,6 +235,9 @@ class HomeController extends Controller
|
|||||||
$transactions[] = [$set, $account];
|
$transactions[] = [$set, $account];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fire check update event:
|
||||||
|
event(new RequestedVersionCheckStatus(auth()->user()));
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'index',
|
'index',
|
||||||
compact('count', 'subTitle', 'transactions', 'showDeps', 'billCount', 'start', 'end', 'today')
|
compact('count', 'subTitle', 'transactions', 'showDeps', 'billCount', 'start', 'end', 'today')
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class PrerequisitesController extends Controller
|
|||||||
*
|
*
|
||||||
* @param string $bank
|
* @param string $bank
|
||||||
*
|
*
|
||||||
* @return \Illuminate\Http\RedirectResponse|null
|
* @return \Illuminate\View\View|\Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse
|
||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -108,8 +108,6 @@ class StatusController extends Controller
|
|||||||
$result['running'] = true;
|
$result['running'] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO cannot handle 'error'
|
|
||||||
|
|
||||||
return Response::json($result);
|
return Response::json($result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ use FireflyIII\Models\AccountType;
|
|||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Support\CacheProperties;
|
use FireflyIII\Support\CacheProperties;
|
||||||
use Log;
|
|
||||||
use Response;
|
use Response;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ class IntroController
|
|||||||
$specificSteps = $this->getSpecificSteps($route, $specificPage);
|
$specificSteps = $this->getSpecificSteps($route, $specificPage);
|
||||||
if (0 === count($specificSteps)) {
|
if (0 === count($specificSteps)) {
|
||||||
Log::debug(sprintf('No specific steps for route "%s" and page "%s"', $route, $specificPage));
|
Log::debug(sprintf('No specific steps for route "%s" and page "%s"', $route, $specificPage));
|
||||||
|
|
||||||
return Response::json($steps);
|
return Response::json($steps);
|
||||||
}
|
}
|
||||||
if ($this->hasOutroStep($route)) {
|
if ($this->hasOutroStep($route)) {
|
||||||
|
|||||||
@@ -26,8 +26,8 @@ use FireflyIII\Http\Requests\TokenFormRequest;
|
|||||||
use FireflyIII\Models\AccountType;
|
use FireflyIII\Models\AccountType;
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Google2FA;
|
use Google2FA;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
use Preferences;
|
use Preferences;
|
||||||
use Session;
|
use Session;
|
||||||
use View;
|
use View;
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ class ExpenseController extends Controller
|
|||||||
$cache->addProperty($accounts->pluck('id')->toArray());
|
$cache->addProperty($accounts->pluck('id')->toArray());
|
||||||
$cache->addProperty($expense->pluck('id')->toArray());
|
$cache->addProperty($expense->pluck('id')->toArray());
|
||||||
if ($cache->has()) {
|
if ($cache->has()) {
|
||||||
//return $cache->get(); // @codeCoverageIgnore
|
return $cache->get(); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
$combined = $this->combineAccounts($expense);
|
$combined = $this->combineAccounts($expense);
|
||||||
$all = new Collection;
|
$all = new Collection;
|
||||||
|
|||||||
@@ -59,12 +59,10 @@ class SplitController extends Controller
|
|||||||
|
|
||||||
/** @var CurrencyRepositoryInterface */
|
/** @var CurrencyRepositoryInterface */
|
||||||
private $currencies;
|
private $currencies;
|
||||||
|
|
||||||
/** @var JournalTaskerInterface */
|
|
||||||
private $tasker;
|
|
||||||
|
|
||||||
/** @var JournalRepositoryInterface */
|
/** @var JournalRepositoryInterface */
|
||||||
private $repository;
|
private $repository;
|
||||||
|
/** @var JournalTaskerInterface */
|
||||||
|
private $tasker;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -22,13 +22,7 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Import\Configuration;
|
namespace FireflyIII\Import\Configuration;
|
||||||
|
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
|
||||||
use FireflyIII\Models\ImportJob;
|
use FireflyIII\Models\ImportJob;
|
||||||
use FireflyIII\Support\Import\Configuration\ConfigurationInterface;
|
|
||||||
use FireflyIII\Support\Import\Configuration\Spectre\InputMandatory;
|
|
||||||
use FireflyIII\Support\Import\Configuration\Spectre\SelectCountry;
|
|
||||||
use FireflyIII\Support\Import\Configuration\Spectre\SelectProvider;
|
|
||||||
use Log;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SpectreConfigurator.
|
* Class SpectreConfigurator.
|
||||||
@@ -54,58 +48,35 @@ class SpectreConfigurator implements ConfiguratorInterface
|
|||||||
* @param array $data
|
* @param array $data
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
*/
|
||||||
public function configureJob(array $data): bool
|
public function configureJob(array $data): bool
|
||||||
{
|
{
|
||||||
$class = $this->getConfigurationClass();
|
die('cannot store config');
|
||||||
$job = $this->job;
|
|
||||||
/** @var ConfigurationInterface $object */
|
|
||||||
$object = new $class($this->job);
|
|
||||||
$object->setJob($job);
|
|
||||||
$result = $object->storeConfiguration($data);
|
|
||||||
$this->warning = $object->getWarningMessage();
|
|
||||||
|
|
||||||
return $result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the data required for the next step in the job configuration.
|
* Return the data required for the next step in the job configuration.
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
*/
|
||||||
public function getNextData(): array
|
public function getNextData(): array
|
||||||
{
|
{
|
||||||
$class = $this->getConfigurationClass();
|
// update config to tell Firefly we've redirected the user.
|
||||||
$job = $this->job;
|
$config = $this->job->configuration;
|
||||||
/** @var ConfigurationInterface $object */
|
$config['is-redirected'] = true;
|
||||||
$object = app($class);
|
$this->job->configuration = $config;
|
||||||
$object->setJob($job);
|
$this->job->status = 'configured';
|
||||||
|
$this->job->save();
|
||||||
|
|
||||||
return $object->getData();
|
return $this->job->configuration;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
*/
|
||||||
public function getNextView(): string
|
public function getNextView(): string
|
||||||
{
|
{
|
||||||
if (!$this->job->configuration['selected-country']) {
|
return 'import.spectre.redirect';
|
||||||
return 'import.spectre.select-country';
|
|
||||||
}
|
|
||||||
if (!$this->job->configuration['selected-provider']) {
|
|
||||||
return 'import.spectre.select-provider';
|
|
||||||
}
|
|
||||||
if (!$this->job->configuration['has-input-mandatory']) {
|
|
||||||
return 'import.spectre.input-fields';
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new FireflyException('No view for state');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -123,16 +94,9 @@ class SpectreConfigurator implements ConfiguratorInterface
|
|||||||
*/
|
*/
|
||||||
public function isJobConfigured(): bool
|
public function isJobConfigured(): bool
|
||||||
{
|
{
|
||||||
|
// job is configured (and can start) when token is empty:
|
||||||
$config = $this->job->configuration;
|
$config = $this->job->configuration;
|
||||||
$config['selected-country'] = $config['selected-country'] ?? false;
|
if ($config['has-token'] === false) {
|
||||||
$config['selected-provider'] = $config['selected-provider'] ?? false;
|
|
||||||
$config['has-input-mandatory'] = $config['has-input-mandatory'] ?? false;
|
|
||||||
$config['has-input-interactive'] = $config['has-input-interactive'] ?? true; // defaults to true.
|
|
||||||
$this->job->configuration = $config;
|
|
||||||
$this->job->save();
|
|
||||||
|
|
||||||
if ($config['selected-country'] && $config['selected-provider'] && $config['has-input-mandatory'] && $config['has-input-interactive']) {
|
|
||||||
// give job another status
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,45 +108,19 @@ class SpectreConfigurator implements ConfiguratorInterface
|
|||||||
*/
|
*/
|
||||||
public function setJob(ImportJob $job)
|
public function setJob(ImportJob $job)
|
||||||
{
|
{
|
||||||
$this->job = $job;
|
$defaultConfig = [
|
||||||
if (null === $this->job->configuration || 0 === count($this->job->configuration)) {
|
'has-token' => false,
|
||||||
Log::debug(sprintf('Gave import job %s initial configuration.', $this->job->key));
|
'token' => '',
|
||||||
$this->job->configuration = [
|
'token-expires' => 0,
|
||||||
'selected-country' => false,
|
'token-url' => '',
|
||||||
|
'is-redirected' => false,
|
||||||
|
|
||||||
];
|
];
|
||||||
$this->job->save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
$config = $job->configuration;
|
||||||
* @return string
|
$finalConfig = array_merge($defaultConfig, $config);
|
||||||
*
|
$job->configuration = $finalConfig;
|
||||||
* @throws FireflyException
|
$job->save();
|
||||||
*/
|
$this->job = $job;
|
||||||
private function getConfigurationClass(): string
|
|
||||||
{
|
|
||||||
$class = false;
|
|
||||||
switch (true) {
|
|
||||||
case !$this->job->configuration['selected-country']:
|
|
||||||
$class = SelectCountry::class;
|
|
||||||
break;
|
|
||||||
case !$this->job->configuration['selected-provider']:
|
|
||||||
$class = SelectProvider::class;
|
|
||||||
break;
|
|
||||||
case !$this->job->configuration['has-input-mandatory']:
|
|
||||||
$class = InputMandatory::class;
|
|
||||||
// no break
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (false === $class || 0 === strlen($class)) {
|
|
||||||
throw new FireflyException('Cannot handle current job state in getConfigurationClass().');
|
|
||||||
}
|
|
||||||
if (!class_exists($class)) {
|
|
||||||
throw new FireflyException(sprintf('Class %s does not exist in getConfigurationClass().', $class));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $class;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ class CsvProcessor implements FileProcessorInterface
|
|||||||
* @return bool
|
* @return bool
|
||||||
*
|
*
|
||||||
* @throws \League\Csv\Exception
|
* @throws \League\Csv\Exception
|
||||||
|
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||||
*/
|
*/
|
||||||
public function run(): bool
|
public function run(): bool
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -359,7 +359,7 @@ class ImportAccount
|
|||||||
'name' => $this->accountName['value'] ?? '(no name)',
|
'name' => $this->accountName['value'] ?? '(no name)',
|
||||||
'iban' => $this->accountIban['value'] ?? null,
|
'iban' => $this->accountIban['value'] ?? null,
|
||||||
'active' => true,
|
'active' => true,
|
||||||
'virtualBalance' => null,
|
'virtualBalance' => '0',
|
||||||
];
|
];
|
||||||
|
|
||||||
$this->account = $this->repository->store($data);
|
$this->account = $this->repository->store($data);
|
||||||
|
|||||||
@@ -330,6 +330,7 @@ class ImportJournal
|
|||||||
*/
|
*/
|
||||||
private function selectAmountInput()
|
private function selectAmountInput()
|
||||||
{
|
{
|
||||||
|
$info = [];
|
||||||
$converterClass = '';
|
$converterClass = '';
|
||||||
if (!is_null($this->amount)) {
|
if (!is_null($this->amount)) {
|
||||||
Log::debug('Amount value is not NULL, assume this is the correct value.');
|
Log::debug('Amount value is not NULL, assume this is the correct value.');
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Import\Prerequisites;
|
namespace FireflyIII\Import\Prerequisites;
|
||||||
|
|
||||||
use FireflyIII\Jobs\GetSpectreProviders;
|
|
||||||
use FireflyIII\Models\Preference;
|
use FireflyIII\Models\Preference;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
@@ -86,10 +85,6 @@ class SpectrePrerequisites implements PrerequisitesInterface
|
|||||||
}
|
}
|
||||||
Log::debug('All prerequisites are here!');
|
Log::debug('All prerequisites are here!');
|
||||||
|
|
||||||
// at this point, check if all providers are present. Providers are shared amongst
|
|
||||||
// users in a multi-user environment.
|
|
||||||
GetSpectreProviders::dispatch($this->user);
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,11 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace FireflyIII\Import\Routine;
|
namespace FireflyIII\Import\Routine;
|
||||||
|
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use FireflyIII\Models\ImportJob;
|
use FireflyIII\Models\ImportJob;
|
||||||
use FireflyIII\Models\SpectreProvider;
|
|
||||||
use FireflyIII\Services\Spectre\Object\Customer;
|
use FireflyIII\Services\Spectre\Object\Customer;
|
||||||
use FireflyIII\Services\Spectre\Request\CreateLoginRequest;
|
use FireflyIII\Services\Spectre\Object\Token;
|
||||||
use FireflyIII\Services\Spectre\Request\ListLoginsRequest;
|
use FireflyIII\Services\Spectre\Request\CreateTokenRequest;
|
||||||
use FireflyIII\Services\Spectre\Request\NewCustomerRequest;
|
use FireflyIII\Services\Spectre\Request\NewCustomerRequest;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Log;
|
use Log;
|
||||||
@@ -90,32 +90,49 @@ class SpectreRoutine implements RoutineInterface
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
set_time_limit(0);
|
|
||||||
Log::info(sprintf('Start with import job %s using Spectre.', $this->job->key));
|
Log::info(sprintf('Start with import job %s using Spectre.', $this->job->key));
|
||||||
|
set_time_limit(0);
|
||||||
|
|
||||||
|
// check if job has token first!
|
||||||
|
$config = $this->job->configuration;
|
||||||
|
$hasToken = $config['has-token'] ?? false;
|
||||||
|
if ($hasToken === false) {
|
||||||
|
Log::debug('Job has no token');
|
||||||
// create customer if user does not have one:
|
// create customer if user does not have one:
|
||||||
$customer = $this->getCustomer();
|
$customer = $this->getCustomer();
|
||||||
|
Log::debug(sprintf('Customer ID is %s', $customer->getId()));
|
||||||
|
// use customer to request a token:
|
||||||
|
$uri = route('import.status', [$this->job->key]);
|
||||||
|
$token = $this->getToken($customer, $uri);
|
||||||
|
Log::debug(sprintf('Token is %s', $token->getToken()));
|
||||||
|
|
||||||
// list all logins present at Spectre
|
// update job, give it the token:
|
||||||
$logins = $this->listLogins($customer);
|
$config = $this->job->configuration;
|
||||||
|
$config['has-token'] = true;
|
||||||
|
$config['token'] = $token->getToken();
|
||||||
|
$config['token-expires'] = $token->getExpiresAt()->format('U');
|
||||||
|
$config['token-url'] = $token->getConnectUrl();
|
||||||
|
$this->job->configuration = $config;
|
||||||
|
|
||||||
// use latest (depending on status, and if login exists for selected country + provider)
|
Log::debug('Job config is now', $config);
|
||||||
$country = $this->job->configuration['country'];
|
|
||||||
$providerId = $this->job->configuration['provider'];
|
|
||||||
$login = $this->filterLogins($logins, $country, $providerId);
|
|
||||||
|
|
||||||
// create new login if list is empty or no login exists.
|
// update job, set status to "configuring".
|
||||||
if (is_null($login)) {
|
$this->job->status = 'configuring';
|
||||||
$login = $this->createLogin($customer);
|
$this->job->save();
|
||||||
var_dump($login);
|
Log::debug(sprintf('Job status is now %s', $this->job->status));
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
echo '<pre>';
|
|
||||||
print_r($logins);
|
|
||||||
exit;
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
$isRedirected = $config['is-redirected'] ?? false;
|
||||||
|
if ($isRedirected === true) {
|
||||||
|
// assume user has "used" the token.
|
||||||
|
// ...
|
||||||
|
// now what?
|
||||||
|
throw new FireflyException('Application cannot handle this.');
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new FireflyException('Application cannot handle this.');
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ImportJob $job
|
* @param ImportJob $job
|
||||||
@@ -135,49 +152,12 @@ class SpectreRoutine implements RoutineInterface
|
|||||||
$newCustomerRequest->call();
|
$newCustomerRequest->call();
|
||||||
$customer = $newCustomerRequest->getCustomer();
|
$customer = $newCustomerRequest->getCustomer();
|
||||||
|
|
||||||
// store customer. Not sure where. User preference? TODO
|
Preferences::setForUser($this->job->user, 'spectre_customer', $customer->toArray());
|
||||||
|
|
||||||
return $customer;
|
return $customer;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Customer $customer
|
|
||||||
*/
|
|
||||||
protected function createLogin(Customer $customer)
|
|
||||||
{
|
|
||||||
|
|
||||||
$providerId = intval($this->job->configuration['provider']);
|
|
||||||
$provider = $this->findProvider($providerId);
|
|
||||||
|
|
||||||
|
|
||||||
$createLoginRequest = new CreateLoginRequest($this->job->user);
|
|
||||||
$createLoginRequest->setCustomer($customer);
|
|
||||||
$createLoginRequest->setProvider($provider);
|
|
||||||
$createLoginRequest->setMandatoryFields($this->decrypt($this->job->configuration['mandatory-fields']));
|
|
||||||
$createLoginRequest->call();
|
|
||||||
echo '123';
|
|
||||||
// country code, provider code (find by spectre ID)
|
|
||||||
// credentials
|
|
||||||
// daily_refresh=true
|
|
||||||
// fetch_type=recent
|
|
||||||
// include_fake_providers=true
|
|
||||||
// store_credentials=true
|
|
||||||
|
|
||||||
|
|
||||||
var_dump($this->job->configuration);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int $providerId
|
|
||||||
*
|
|
||||||
* @return SpectreProvider|null
|
|
||||||
*/
|
|
||||||
protected function findProvider(int $providerId): ?SpectreProvider
|
|
||||||
{
|
|
||||||
return SpectreProvider::where('spectre_id', $providerId)->first();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Customer
|
* @return Customer
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
@@ -188,61 +168,27 @@ class SpectreRoutine implements RoutineInterface
|
|||||||
if (is_null($preference)) {
|
if (is_null($preference)) {
|
||||||
return $this->createCustomer();
|
return $this->createCustomer();
|
||||||
}
|
}
|
||||||
var_dump($preference->data);
|
$customer = new Customer($preference->data);
|
||||||
exit;
|
|
||||||
|
return $customer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Customer $customer
|
* @param Customer $customer
|
||||||
|
* @param string $returnUri
|
||||||
*
|
*
|
||||||
* @return array
|
* @return Token
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
*/
|
*/
|
||||||
protected function listLogins(Customer $customer): array
|
protected function getToken(Customer $customer, string $returnUri): Token
|
||||||
{
|
{
|
||||||
$listLoginRequest = new ListLoginsRequest($this->job->user);
|
$request = new CreateTokenRequest($this->job->user);
|
||||||
$listLoginRequest->setCustomer($customer);
|
$request->setUri($returnUri);
|
||||||
$listLoginRequest->call();
|
$request->setCustomer($customer);
|
||||||
|
$request->call();
|
||||||
|
Log::debug('Call to get token is finished');
|
||||||
|
|
||||||
$logins = $listLoginRequest->getLogins();
|
return $request->getToken();
|
||||||
|
|
||||||
return $logins;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $configuration
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
private function decrypt(array $configuration): array
|
|
||||||
{
|
|
||||||
$new = [];
|
|
||||||
foreach ($configuration as $key => $value) {
|
|
||||||
$new[$key] = app('steam')->tryDecrypt($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $new;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return login belonging to country and provider
|
|
||||||
* TODO must return Login object, not array
|
|
||||||
*
|
|
||||||
* @param array $logins
|
|
||||||
* @param string $country
|
|
||||||
* @param int $providerId
|
|
||||||
*
|
|
||||||
* @return array|null
|
|
||||||
*/
|
|
||||||
private function filterLogins(array $logins, string $country, int $providerId): ?array
|
|
||||||
{
|
|
||||||
if (count($logins) === 0) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
foreach ($logins as $login) {
|
|
||||||
die('do some filter');
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -236,7 +236,6 @@ class ImportStorage
|
|||||||
|
|
||||||
// match bills if config calls for it.
|
// match bills if config calls for it.
|
||||||
if (true === $this->matchBills) {
|
if (true === $this->matchBills) {
|
||||||
//$this->/applyRules($journal);
|
|
||||||
Log::info('Cannot match bills (yet).');
|
Log::info('Cannot match bills (yet).');
|
||||||
$this->matchBills($journal);
|
$this->matchBills($journal);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,109 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
/**
|
|
||||||
* GetSpectreProviders.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace FireflyIII\Jobs;
|
|
||||||
|
|
||||||
use FireflyIII\Models\Configuration;
|
|
||||||
use FireflyIII\Models\SpectreProvider;
|
|
||||||
use FireflyIII\Services\Spectre\Request\ListProvidersRequest;
|
|
||||||
use FireflyIII\User;
|
|
||||||
use Illuminate\Bus\Queueable;
|
|
||||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
|
||||||
use Illuminate\Foundation\Bus\Dispatchable;
|
|
||||||
use Illuminate\Queue\InteractsWithQueue;
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
use Log;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class GetSpectreProviders
|
|
||||||
*/
|
|
||||||
class GetSpectreProviders implements ShouldQueue
|
|
||||||
{
|
|
||||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var User
|
|
||||||
*/
|
|
||||||
protected $user;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new job instance.
|
|
||||||
*
|
|
||||||
* @param User $user
|
|
||||||
*/
|
|
||||||
public function __construct(User $user)
|
|
||||||
{
|
|
||||||
$this->user = $user;
|
|
||||||
Log::debug('Constructed job GetSpectreProviders');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Execute the job.
|
|
||||||
*
|
|
||||||
* @throws \Illuminate\Container\EntryNotFoundException
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function handle()
|
|
||||||
{
|
|
||||||
/** @var Configuration $configValue */
|
|
||||||
$configValue = app('fireflyconfig')->get('spectre_provider_download', 0);
|
|
||||||
$now = time();
|
|
||||||
if ($now - intval($configValue->data) < 86400) {
|
|
||||||
Log::debug(sprintf('Difference is %d, so will NOT execute job.', ($now - intval($configValue->data))));
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Log::debug(sprintf('Difference is %d, so will execute job.', ($now - intval($configValue->data))));
|
|
||||||
|
|
||||||
// get user
|
|
||||||
|
|
||||||
// fire away!
|
|
||||||
$request = new ListProvidersRequest($this->user);
|
|
||||||
$request->call();
|
|
||||||
|
|
||||||
// store all providers:
|
|
||||||
$providers = $request->getProviders();
|
|
||||||
foreach ($providers as $provider) {
|
|
||||||
// find provider?
|
|
||||||
$dbProvider = SpectreProvider::where('spectre_id', $provider['id'])->first();
|
|
||||||
if (is_null($dbProvider)) {
|
|
||||||
$dbProvider = new SpectreProvider;
|
|
||||||
}
|
|
||||||
// update fields:
|
|
||||||
$dbProvider->spectre_id = $provider['id'];
|
|
||||||
$dbProvider->code = $provider['code'];
|
|
||||||
$dbProvider->mode = $provider['mode'];
|
|
||||||
$dbProvider->status = $provider['status'];
|
|
||||||
$dbProvider->interactive = 1 === $provider['interactive'];
|
|
||||||
$dbProvider->automatic_fetch = 1 === $provider['automatic_fetch'];
|
|
||||||
$dbProvider->country_code = $provider['country_code'];
|
|
||||||
$dbProvider->data = $provider;
|
|
||||||
$dbProvider->save();
|
|
||||||
Log::debug(sprintf('Stored provider #%d under ID #%d', $provider['id'], $dbProvider->id));
|
|
||||||
}
|
|
||||||
|
|
||||||
app('fireflyconfig')->set('spectre_provider_download', time());
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -189,6 +189,7 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $fieldName
|
* @param string $fieldName
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -206,6 +207,7 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -299,6 +301,7 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param array $types
|
* @param array $types
|
||||||
*/
|
*/
|
||||||
@@ -313,6 +316,7 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param string $value
|
* @param string $value
|
||||||
@@ -331,7 +335,9 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function setIbanAttribute($value)
|
public function setIbanAttribute($value)
|
||||||
@@ -341,6 +347,7 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setNameAttribute($value)
|
public function setNameAttribute($value)
|
||||||
@@ -352,7 +359,9 @@ class Account extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function setVirtualBalanceAttribute($value)
|
public function setVirtualBalanceAttribute($value)
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ class AccountMeta extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function setDataAttribute($value)
|
public function setDataAttribute($value)
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all of the owning attachable models.
|
* Get all of the owning attachable models.
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*
|
*
|
||||||
* @return MorphTo
|
* @return MorphTo
|
||||||
@@ -81,6 +82,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the expected filename for this attachment.
|
* Returns the expected filename for this attachment.
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
@@ -91,6 +93,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return null|string
|
* @return null|string
|
||||||
*/
|
*/
|
||||||
@@ -105,6 +108,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return null|string
|
* @return null|string
|
||||||
*/
|
*/
|
||||||
@@ -119,6 +123,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return null|string
|
* @return null|string
|
||||||
*/
|
*/
|
||||||
@@ -133,6 +138,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return null|string
|
* @return null|string
|
||||||
*/
|
*/
|
||||||
@@ -147,6 +153,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
* @return null|string
|
* @return null|string
|
||||||
*/
|
*/
|
||||||
@@ -161,6 +168,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setDescriptionAttribute(string $value)
|
public function setDescriptionAttribute(string $value)
|
||||||
@@ -170,6 +178,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setFilenameAttribute(string $value)
|
public function setFilenameAttribute(string $value)
|
||||||
@@ -179,6 +188,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setMimeAttribute(string $value)
|
public function setMimeAttribute(string $value)
|
||||||
@@ -188,6 +198,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setNotesAttribute(string $value)
|
public function setNotesAttribute(string $value)
|
||||||
@@ -197,6 +208,7 @@ class Attachment extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $value
|
* @param string $value
|
||||||
*/
|
*/
|
||||||
public function setTitleAttribute(string $value)
|
public function setTitleAttribute(string $value)
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ class Bill extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -111,6 +112,7 @@ class Bill extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -135,6 +137,7 @@ class Bill extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setAmountMaxAttribute($value)
|
public function setAmountMaxAttribute($value)
|
||||||
@@ -144,6 +147,7 @@ class Bill extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function setAmountMinAttribute($value)
|
public function setAmountMinAttribute($value)
|
||||||
@@ -153,6 +157,7 @@ class Bill extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function setMatchAttribute($value)
|
public function setMatchAttribute($value)
|
||||||
@@ -164,6 +169,7 @@ class Bill extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
|
*
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
*/
|
*/
|
||||||
public function setNameAttribute($value)
|
public function setNameAttribute($value)
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ class Budget extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Budget $value
|
* @param string $value
|
||||||
*
|
*
|
||||||
* @return Budget
|
* @return Budget
|
||||||
*/
|
*/
|
||||||
@@ -111,6 +111,7 @@ class Budget extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -126,6 +127,7 @@ class Budget extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setNameAttribute($value)
|
public function setNameAttribute($value)
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ class BudgetLimit extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setAmountAttribute($value)
|
public function setAmountAttribute($value)
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class Category extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Category $value
|
* @param string $value
|
||||||
*
|
*
|
||||||
* @return Category
|
* @return Category
|
||||||
*/
|
*/
|
||||||
@@ -101,6 +101,7 @@ class Category extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -116,6 +117,7 @@ class Category extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setNameAttribute($value)
|
public function setNameAttribute($value)
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ class Configuration extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
@@ -60,6 +61,7 @@ class Configuration extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setDataAttribute($value)
|
public function setDataAttribute($value)
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class ExportJob extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $status
|
* @param $status
|
||||||
*/
|
*/
|
||||||
public function change($status)
|
public function change($status)
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ class ImportJob extends Model
|
|||||||
public function change(string $status): void
|
public function change(string $status): void
|
||||||
{
|
{
|
||||||
if (in_array($status, $this->validStatus)) {
|
if (in_array($status, $this->validStatus)) {
|
||||||
|
Log::debug(sprintf('Job status set (in model) to "%s"', $status));
|
||||||
$this->status = $status;
|
$this->status = $status;
|
||||||
$this->save();
|
$this->save();
|
||||||
|
|
||||||
@@ -169,6 +170,7 @@ class ImportJob extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setConfigurationAttribute($value)
|
public function setConfigurationAttribute($value)
|
||||||
@@ -178,6 +180,7 @@ class ImportJob extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setExtendedStatusAttribute($value)
|
public function setExtendedStatusAttribute($value)
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ class PiggyBank extends Model
|
|||||||
{
|
{
|
||||||
if (auth()->check()) {
|
if (auth()->check()) {
|
||||||
$piggyBankId = intval($value);
|
$piggyBankId = intval($value);
|
||||||
$piggyBank = PiggyBank::where('piggy_banks.id', $piggyBankId)
|
$piggyBank = self::where('piggy_banks.id', $piggyBankId)
|
||||||
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')
|
->leftJoin('accounts', 'accounts.id', '=', 'piggy_banks.account_id')
|
||||||
->where('accounts.user_id', auth()->user()->id)->first(['piggy_banks.*']);
|
->where('accounts.user_id', auth()->user()->id)->first(['piggy_banks.*']);
|
||||||
if (!is_null($piggyBank)) {
|
if (!is_null($piggyBank)) {
|
||||||
@@ -111,6 +111,7 @@ class PiggyBank extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -196,6 +197,7 @@ class PiggyBank extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setNameAttribute($value)
|
public function setNameAttribute($value)
|
||||||
@@ -207,6 +209,7 @@ class PiggyBank extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setTargetamountAttribute($value)
|
public function setTargetamountAttribute($value)
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ class PiggyBankEvent extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setAmountAttribute($value)
|
public function setAmountAttribute($value)
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ class PiggyBankRepetition extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param Carbon $start
|
* @param Carbon $start
|
||||||
* @param Carbon $target
|
* @param Carbon $target
|
||||||
@@ -73,6 +74,7 @@ class PiggyBankRepetition extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param Carbon $date
|
* @param Carbon $date
|
||||||
*
|
*
|
||||||
@@ -96,6 +98,7 @@ class PiggyBankRepetition extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setCurrentamountAttribute($value)
|
public function setCurrentamountAttribute($value)
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ class Preference extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setDataAttribute($value)
|
public function setDataAttribute($value)
|
||||||
|
|||||||
@@ -1,52 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* SpectreProvider.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Models;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class SpectreProvider
|
|
||||||
*/
|
|
||||||
class SpectreProvider extends Model
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* The attributes that should be casted to native types.
|
|
||||||
*
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $casts
|
|
||||||
= [
|
|
||||||
'spectre_id' => 'int',
|
|
||||||
'created_at' => 'datetime',
|
|
||||||
'updated_at' => 'datetime',
|
|
||||||
'deleted_at' => 'datetime',
|
|
||||||
'interactive' => 'boolean',
|
|
||||||
'automatic_fetch' => 'boolean',
|
|
||||||
'data' => 'array',
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $fillable = ['spectre_id', 'code', 'mode', 'name', 'status', 'interactive', 'automatic_fetch', 'country_code', 'data'];
|
|
||||||
}
|
|
||||||
@@ -123,6 +123,7 @@ class Tag extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -138,6 +139,7 @@ class Tag extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -171,6 +173,7 @@ class Tag extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setDescriptionAttribute($value)
|
public function setDescriptionAttribute($value)
|
||||||
@@ -180,6 +183,7 @@ class Tag extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setTagAttribute($value)
|
public function setTagAttribute($value)
|
||||||
|
|||||||
@@ -108,6 +108,7 @@ class Transaction extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param Builder $query
|
* @param Builder $query
|
||||||
* @param string $table
|
* @param string $table
|
||||||
*
|
*
|
||||||
@@ -168,6 +169,7 @@ class Transaction extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return float|int
|
* @return float|int
|
||||||
@@ -179,6 +181,7 @@ class Transaction extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param Builder $query
|
* @param Builder $query
|
||||||
* @param Carbon $date
|
* @param Carbon $date
|
||||||
*/
|
*/
|
||||||
@@ -192,6 +195,7 @@ class Transaction extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param Builder $query
|
* @param Builder $query
|
||||||
* @param Carbon $date
|
* @param Carbon $date
|
||||||
*/
|
*/
|
||||||
@@ -205,6 +209,7 @@ class Transaction extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param Builder $query
|
* @param Builder $query
|
||||||
* @param array $types
|
* @param array $types
|
||||||
*/
|
*/
|
||||||
@@ -222,6 +227,7 @@ class Transaction extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setAmountAttribute($value)
|
public function setAmountAttribute($value)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class TransactionCurrency extends Model
|
|||||||
{
|
{
|
||||||
if (auth()->check()) {
|
if (auth()->check()) {
|
||||||
$currencyId = intval($value);
|
$currencyId = intval($value);
|
||||||
$currency = TransactionCurrency::find($currencyId);
|
$currency = self::find($currencyId);
|
||||||
if (!is_null($currency)) {
|
if (!is_null($currency)) {
|
||||||
return $currency;
|
return $currency;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
@@ -163,6 +164,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
@@ -214,6 +216,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param string $name
|
* @param string $name
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
@@ -311,6 +314,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param Carbon $date
|
* @param Carbon $date
|
||||||
*
|
*
|
||||||
@@ -323,6 +327,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param Carbon $date
|
* @param Carbon $date
|
||||||
*
|
*
|
||||||
@@ -335,6 +340,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
*/
|
*/
|
||||||
public function scopeSortCorrectly(EloquentBuilder $query)
|
public function scopeSortCorrectly(EloquentBuilder $query)
|
||||||
@@ -346,6 +352,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param EloquentBuilder $query
|
* @param EloquentBuilder $query
|
||||||
* @param array $types
|
* @param array $types
|
||||||
*/
|
*/
|
||||||
@@ -361,6 +368,7 @@ class TransactionJournal extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setDescriptionAttribute($value)
|
public function setDescriptionAttribute($value)
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ class TransactionJournalLink extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return null|string
|
* @return null|string
|
||||||
@@ -96,6 +97,7 @@ class TransactionJournalLink extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setCommentAttribute($value): void
|
public function setCommentAttribute($value): void
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ class TransactionJournalMeta extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
@@ -61,6 +62,7 @@ class TransactionJournalMeta extends Model
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @codeCoverageIgnore
|
* @codeCoverageIgnore
|
||||||
|
*
|
||||||
* @param $value
|
* @param $value
|
||||||
*/
|
*/
|
||||||
public function setDataAttribute($value)
|
public function setDataAttribute($value)
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Providers;
|
namespace FireflyIII\Providers;
|
||||||
|
|
||||||
use FireflyIII\Events\RegisteredUser;
|
use FireflyIII\Events\RegisteredUser;
|
||||||
|
use FireflyIII\Events\RequestedVersionCheckStatus;
|
||||||
use FireflyIII\Models\Account;
|
use FireflyIII\Models\Account;
|
||||||
use FireflyIII\Models\PiggyBank;
|
use FireflyIII\Models\PiggyBank;
|
||||||
use FireflyIII\Models\PiggyBankRepetition;
|
use FireflyIII\Models\PiggyBankRepetition;
|
||||||
@@ -54,6 +55,9 @@ class EventServiceProvider extends ServiceProvider
|
|||||||
// is a User related event.
|
// is a User related event.
|
||||||
Login::class => [
|
Login::class => [
|
||||||
'FireflyIII\Handlers\Events\UserEventHandler@checkSingleUserIsAdmin',
|
'FireflyIII\Handlers\Events\UserEventHandler@checkSingleUserIsAdmin',
|
||||||
|
|
||||||
|
],
|
||||||
|
RequestedVersionCheckStatus::class => [
|
||||||
'FireflyIII\Handlers\Events\VersionCheckEventHandler@checkForUpdates',
|
'FireflyIII\Handlers\Events\VersionCheckEventHandler@checkForUpdates',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ class AccountRepository implements AccountRepositoryInterface
|
|||||||
// update the account:
|
// update the account:
|
||||||
$account->name = $data['name'];
|
$account->name = $data['name'];
|
||||||
$account->active = $data['active'];
|
$account->active = $data['active'];
|
||||||
$account->virtual_balance = $data['virtualBalance'];
|
$account->virtual_balance = trim($data['virtualBalance']) === '' ? '0' : $data['virtualBalance'];
|
||||||
$account->iban = $data['iban'];
|
$account->iban = $data['iban'];
|
||||||
$account->save();
|
$account->save();
|
||||||
|
|
||||||
@@ -424,7 +424,7 @@ class AccountRepository implements AccountRepositoryInterface
|
|||||||
'name' => $name . ' initial balance',
|
'name' => $name . ' initial balance',
|
||||||
'active' => false,
|
'active' => false,
|
||||||
'iban' => '',
|
'iban' => '',
|
||||||
'virtualBalance' => 0,
|
'virtualBalance' => '0',
|
||||||
];
|
];
|
||||||
Log::debug('Going to create an opening balance opposing account.');
|
Log::debug('Going to create an opening balance opposing account.');
|
||||||
|
|
||||||
|
|||||||
@@ -252,7 +252,7 @@ trait FindAccountsTrait
|
|||||||
'accountType' => 'reconcile',
|
'accountType' => 'reconcile',
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'iban' => null,
|
'iban' => null,
|
||||||
'virtualBalance' => null,
|
'virtualBalance' => '0',
|
||||||
'active' => true,
|
'active' => true,
|
||||||
];
|
];
|
||||||
$account = $this->storeAccount($data);
|
$account = $this->storeAccount($data);
|
||||||
|
|||||||
@@ -26,7 +26,6 @@ use FireflyIII\Models\Account;
|
|||||||
use FireflyIII\Models\Note;
|
use FireflyIII\Models\Note;
|
||||||
use FireflyIII\Models\Transaction;
|
use FireflyIII\Models\Transaction;
|
||||||
use FireflyIII\Models\TransactionJournal;
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Models\TransactionJournalLink;
|
|
||||||
use FireflyIII\Models\TransactionType;
|
use FireflyIII\Models\TransactionType;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
@@ -54,13 +53,6 @@ interface JournalRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function countTransactions(TransactionJournal $journal): int;
|
public function countTransactions(TransactionJournal $journal): int;
|
||||||
|
|
||||||
/**
|
|
||||||
* @param TransactionJournal $journal
|
|
||||||
*
|
|
||||||
* @return Note|null
|
|
||||||
*/
|
|
||||||
public function getNote(TransactionJournal $journal): ?Note;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Deletes a journal.
|
* Deletes a journal.
|
||||||
*
|
*
|
||||||
@@ -107,6 +99,13 @@ interface JournalRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function getAssetTransaction(TransactionJournal $journal): ?Transaction;
|
public function getAssetTransaction(TransactionJournal $journal): ?Transaction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param TransactionJournal $journal
|
||||||
|
*
|
||||||
|
* @return Note|null
|
||||||
|
*/
|
||||||
|
public function getNote(TransactionJournal $journal): ?Note;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Collection
|
* @return Collection
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -37,20 +37,6 @@ interface UserRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function all(): Collection;
|
public function all(): Collection;
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the first user in the DB. Generally only works when there is just one.
|
|
||||||
*
|
|
||||||
* @return null|User
|
|
||||||
*/
|
|
||||||
public function first(): ?User;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $data
|
|
||||||
*
|
|
||||||
* @return User
|
|
||||||
*/
|
|
||||||
public function store(array $data): User;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gives a user a role.
|
* Gives a user a role.
|
||||||
*
|
*
|
||||||
@@ -119,6 +105,13 @@ interface UserRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function findByEmail(string $email): ?User;
|
public function findByEmail(string $email): ?User;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the first user in the DB. Generally only works when there is just one.
|
||||||
|
*
|
||||||
|
* @return null|User
|
||||||
|
*/
|
||||||
|
public function first(): ?User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return basic user information.
|
* Return basic user information.
|
||||||
*
|
*
|
||||||
@@ -136,6 +129,13 @@ interface UserRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function hasRole(User $user, string $role): bool;
|
public function hasRole(User $user, string $role): bool;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $data
|
||||||
|
*
|
||||||
|
* @return User
|
||||||
|
*/
|
||||||
|
public function store(array $data): User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param User $user
|
* @param User $user
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -93,4 +93,16 @@ class Customer extends SpectreObject
|
|||||||
{
|
{
|
||||||
$this->secret = $secret;
|
$this->secret = $secret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function toArray(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'id' => $this->id,
|
||||||
|
'identifier' => $this->identifier,
|
||||||
|
'secret' => $this->secret,
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
76
app/Services/Spectre/Object/Token.php
Normal file
76
app/Services/Spectre/Object/Token.php
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Token.php
|
||||||
|
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III.
|
||||||
|
*
|
||||||
|
* Firefly III is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Firefly III is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Services\Spectre\Object;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Token
|
||||||
|
*/
|
||||||
|
class Token extends SpectreObject
|
||||||
|
{
|
||||||
|
/** @var string */
|
||||||
|
private $connectUrl;
|
||||||
|
/** @var Carbon */
|
||||||
|
private $expiresAt;
|
||||||
|
/** @var string */
|
||||||
|
private $token;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Token constructor.
|
||||||
|
*
|
||||||
|
* @param array $data
|
||||||
|
*/
|
||||||
|
public function __construct(array $data)
|
||||||
|
{
|
||||||
|
$this->token = $data['token'];
|
||||||
|
$this->expiresAt = new Carbon($data['expires_at']);
|
||||||
|
$this->connectUrl = $data['connect_url'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getConnectUrl(): string
|
||||||
|
{
|
||||||
|
return $this->connectUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Carbon
|
||||||
|
*/
|
||||||
|
public function getExpiresAt(): Carbon
|
||||||
|
{
|
||||||
|
return $this->expiresAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getToken(): string
|
||||||
|
{
|
||||||
|
return $this->token;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* CreateLoginRequest.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Services\Spectre\Request;
|
|
||||||
|
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
|
||||||
use FireflyIII\Models\SpectreProvider;
|
|
||||||
use FireflyIII\Services\Spectre\Object\Customer;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class CreateLoginRequest
|
|
||||||
*/
|
|
||||||
class CreateLoginRequest extends SpectreRequest
|
|
||||||
{
|
|
||||||
/** @var Customer */
|
|
||||||
private $customer;
|
|
||||||
/** @var array */
|
|
||||||
private $mandatoryFields = [];
|
|
||||||
/** @var SpectreProvider */
|
|
||||||
private $provider;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
|
||||||
public function call(): void
|
|
||||||
{
|
|
||||||
// add mandatory fields to login object
|
|
||||||
$data = [
|
|
||||||
'customer_id' => $this->customer->getId(),
|
|
||||||
'country_code' => $this->provider->country_code,
|
|
||||||
'provider_code' => $this->provider->code,
|
|
||||||
'credentials' => $this->buildCredentials(),
|
|
||||||
'daily_refresh' => true,
|
|
||||||
'fetch_type' => 'recent',
|
|
||||||
'include_fake_providers' => true,
|
|
||||||
];
|
|
||||||
$uri = '/api/v3/logins';
|
|
||||||
$response = $this->sendSignedSpectrePost($uri, $data);
|
|
||||||
echo '<pre>';
|
|
||||||
print_r($response);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Customer $customer
|
|
||||||
*/
|
|
||||||
public function setCustomer(Customer $customer): void
|
|
||||||
{
|
|
||||||
$this->customer = $customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param array $mandatoryFields
|
|
||||||
*/
|
|
||||||
public function setMandatoryFields(array $mandatoryFields): void
|
|
||||||
{
|
|
||||||
$this->mandatoryFields = $mandatoryFields;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param SpectreProvider $provider
|
|
||||||
*/
|
|
||||||
public function setProvider(SpectreProvider $provider): void
|
|
||||||
{
|
|
||||||
$this->provider = $provider;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
|
||||||
private function buildCredentials(): array
|
|
||||||
{
|
|
||||||
$return = [];
|
|
||||||
/** @var array $requiredField */
|
|
||||||
foreach ($this->provider->data['required_fields'] as $requiredField) {
|
|
||||||
$fieldName = $requiredField['name'];
|
|
||||||
if (!isset($this->mandatoryFields[$fieldName])) {
|
|
||||||
throw new FireflyException(sprintf('Mandatory field "%s" is missing from job.', $fieldName));
|
|
||||||
}
|
|
||||||
$return[$fieldName] = $this->mandatoryFields[$fieldName];
|
|
||||||
}
|
|
||||||
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
94
app/Services/Spectre/Request/CreateTokenRequest.php
Normal file
94
app/Services/Spectre/Request/CreateTokenRequest.php
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* CreateTokenRequest.php
|
||||||
|
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||||
|
*
|
||||||
|
* This file is part of Firefly III.
|
||||||
|
*
|
||||||
|
* Firefly III is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* Firefly III is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace FireflyIII\Services\Spectre\Request;
|
||||||
|
|
||||||
|
use FireflyIII\Services\Spectre\Object\Customer;
|
||||||
|
use FireflyIII\Services\Spectre\Object\Token;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class CreateTokenRequest
|
||||||
|
*/
|
||||||
|
class CreateTokenRequest extends SpectreRequest
|
||||||
|
{
|
||||||
|
/** @var Customer */
|
||||||
|
private $customer;
|
||||||
|
|
||||||
|
/** @var Token */
|
||||||
|
private $token;
|
||||||
|
|
||||||
|
/** @var string */
|
||||||
|
private $uri;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
*/
|
||||||
|
public function call(): void
|
||||||
|
{
|
||||||
|
// add mandatory fields to login object
|
||||||
|
$data = [
|
||||||
|
'data' => [
|
||||||
|
'customer_id' => $this->customer->getId(),
|
||||||
|
'fetch_type' => 'recent',
|
||||||
|
'daily_refresh' => true,
|
||||||
|
'include_fake_providers' => true,
|
||||||
|
'show_consent_confirmation' => true,
|
||||||
|
'credentials_strategy' => 'ask',
|
||||||
|
'return_to' => $this->uri,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
$uri = '/api/v3/tokens/create';
|
||||||
|
$response = $this->sendSignedSpectrePost($uri, $data);
|
||||||
|
$this->token = new Token($response['data']);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Token
|
||||||
|
*/
|
||||||
|
public function getToken(): Token
|
||||||
|
{
|
||||||
|
return $this->token;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Customer $customer
|
||||||
|
*/
|
||||||
|
public function setCustomer(Customer $customer): void
|
||||||
|
{
|
||||||
|
$this->customer = $customer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $uri
|
||||||
|
*/
|
||||||
|
public function setUri(string $uri): void
|
||||||
|
{
|
||||||
|
$this->uri = $uri;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,101 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* ListLoginsRequest.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Services\Spectre\Request;
|
|
||||||
|
|
||||||
use FireflyIII\Services\Spectre\Object\Customer;
|
|
||||||
use Log;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class ListLoginsRequest
|
|
||||||
*/
|
|
||||||
class ListLoginsRequest extends SpectreRequest
|
|
||||||
{
|
|
||||||
/** @var Customer */
|
|
||||||
protected $customer;
|
|
||||||
|
|
||||||
/** @var array */
|
|
||||||
protected $logins = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @throws \FireflyIII\Exceptions\FireflyException
|
|
||||||
*/
|
|
||||||
public function call(): void
|
|
||||||
{
|
|
||||||
$hasNextPage = true;
|
|
||||||
$nextId = 0;
|
|
||||||
while ($hasNextPage) {
|
|
||||||
Log::debug(sprintf('Now calling list-logins for next_id %d', $nextId));
|
|
||||||
$parameters = ['customer_id' => $this->customer->getId(), 'from_id' => $nextId];
|
|
||||||
$uri = '/api/v3/logins?' . http_build_query($parameters);
|
|
||||||
$response = $this->sendSignedSpectreGet($uri, []);
|
|
||||||
|
|
||||||
// count entries:
|
|
||||||
Log::debug(sprintf('Found %d entries in data-array', count($response['data'])));
|
|
||||||
|
|
||||||
// extract next ID
|
|
||||||
$hasNextPage = false;
|
|
||||||
if (isset($response['meta']['next_id']) && intval($response['meta']['next_id']) > $nextId) {
|
|
||||||
$hasNextPage = true;
|
|
||||||
$nextId = $response['meta']['next_id'];
|
|
||||||
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
|
||||||
} else {
|
|
||||||
Log::debug('No next page.');
|
|
||||||
}
|
|
||||||
|
|
||||||
// store providers:
|
|
||||||
foreach ($response['data'] as $loginArray) {
|
|
||||||
var_dump($loginArray);
|
|
||||||
exit;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return Customer
|
|
||||||
*/
|
|
||||||
public function getCustomer(): Customer
|
|
||||||
{
|
|
||||||
return $this->customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Customer $customer
|
|
||||||
*/
|
|
||||||
public function setCustomer(Customer $customer): void
|
|
||||||
{
|
|
||||||
$this->customer = $customer;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function getLogins(): array
|
|
||||||
{
|
|
||||||
return $this->logins;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* ListProvidersRequest.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Services\Spectre\Request;
|
|
||||||
|
|
||||||
use Log;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class ListProvidersRequest
|
|
||||||
*/
|
|
||||||
class ListProvidersRequest extends SpectreRequest
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
protected $providers = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function call(): void
|
|
||||||
{
|
|
||||||
$hasNextPage = true;
|
|
||||||
$nextId = 0;
|
|
||||||
while ($hasNextPage) {
|
|
||||||
Log::debug(sprintf('Now calling for next_id %d', $nextId));
|
|
||||||
$parameters = ['include_fake_providers' => 'true', 'include_provider_fields' => 'true', 'from_id' => $nextId];
|
|
||||||
$uri = '/api/v3/providers?' . http_build_query($parameters);
|
|
||||||
$response = $this->sendSignedSpectreGet($uri, []);
|
|
||||||
|
|
||||||
// count entries:
|
|
||||||
Log::debug(sprintf('Found %d entries in data-array', count($response['data'])));
|
|
||||||
|
|
||||||
// extract next ID
|
|
||||||
$hasNextPage = false;
|
|
||||||
if (isset($response['meta']['next_id']) && intval($response['meta']['next_id']) > $nextId) {
|
|
||||||
$hasNextPage = true;
|
|
||||||
$nextId = $response['meta']['next_id'];
|
|
||||||
Log::debug(sprintf('Next ID is now %d.', $nextId));
|
|
||||||
} else {
|
|
||||||
Log::debug('No next page.');
|
|
||||||
}
|
|
||||||
|
|
||||||
// store providers:
|
|
||||||
foreach ($response['data'] as $providerArray) {
|
|
||||||
$providerId = $providerArray['id'];
|
|
||||||
$this->providers[$providerId] = $providerArray;
|
|
||||||
Log::debug(sprintf('Stored provider #%d', $providerId));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function getProviders(): array
|
|
||||||
{
|
|
||||||
return $this->providers;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -43,13 +43,7 @@ class NewCustomerRequest extends SpectreRequest
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
$uri = '/api/v3/customers/';
|
$uri = '/api/v3/customers/';
|
||||||
//$response = $this->sendSignedSpectrePost($uri, $data);
|
$response = $this->sendSignedSpectrePost($uri, $data);
|
||||||
$response = ['data' => [
|
|
||||||
'id' => 527858,
|
|
||||||
'identifier' => 'default_ff3_customer',
|
|
||||||
'secret' => 'qpZjRPJRTb6mMcQgwDkssZ3fQVVDPIH04zBlkKC6MvI',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
// create customer:
|
// create customer:
|
||||||
$this->customer = new Customer($response['data']);
|
$this->customer = new Customer($response['data']);
|
||||||
|
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ abstract class SpectreRequest
|
|||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
protected $expiresAt = 0;
|
protected $expiresAt = 0;
|
||||||
/** @var ServerPublicKey */
|
|
||||||
protected $serverPublicKey;
|
|
||||||
/** @var string */
|
/** @var string */
|
||||||
protected $serviceSecret = '';
|
protected $serviceSecret = '';
|
||||||
/** @var string */
|
/** @var string */
|
||||||
@@ -104,22 +102,6 @@ abstract class SpectreRequest
|
|||||||
return $this->server;
|
return $this->server;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @return ServerPublicKey
|
|
||||||
*/
|
|
||||||
public function getServerPublicKey(): ServerPublicKey
|
|
||||||
{
|
|
||||||
return $this->serverPublicKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ServerPublicKey $serverPublicKey
|
|
||||||
*/
|
|
||||||
public function setServerPublicKey(ServerPublicKey $serverPublicKey)
|
|
||||||
{
|
|
||||||
$this->serverPublicKey = $serverPublicKey;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
@@ -144,14 +126,6 @@ abstract class SpectreRequest
|
|||||||
$this->privateKey = $privateKey;
|
$this->privateKey = $privateKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param string $secret
|
|
||||||
*/
|
|
||||||
public function setSecret(string $secret)
|
|
||||||
{
|
|
||||||
$this->secret = $secret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $method
|
* @param string $method
|
||||||
* @param string $uri
|
* @param string $uri
|
||||||
@@ -169,8 +143,6 @@ abstract class SpectreRequest
|
|||||||
if ('get' === strtolower($method) || 'delete' === strtolower($method)) {
|
if ('get' === strtolower($method) || 'delete' === strtolower($method)) {
|
||||||
$data = '';
|
$data = '';
|
||||||
}
|
}
|
||||||
// base64(sha1_signature(private_key, "Expires-at|request_method|original_url|post_body|md5_of_uploaded_file|")))
|
|
||||||
// Prepare the signature
|
|
||||||
$toSign = $this->expiresAt . '|' . strtoupper($method) . '|' . $uri . '|' . $data . ''; // no file so no content there.
|
$toSign = $this->expiresAt . '|' . strtoupper($method) . '|' . $uri . '|' . $data . ''; // no file so no content there.
|
||||||
Log::debug(sprintf('String to sign: "%s"', $toSign));
|
Log::debug(sprintf('String to sign: "%s"', $toSign));
|
||||||
$signature = '';
|
$signature = '';
|
||||||
|
|||||||
@@ -202,7 +202,7 @@ class Amount
|
|||||||
/**
|
/**
|
||||||
* @return \FireflyIII\Models\TransactionCurrency
|
* @return \FireflyIII\Models\TransactionCurrency
|
||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
*/
|
*/
|
||||||
public function getDefaultCurrency(): TransactionCurrency
|
public function getDefaultCurrency(): TransactionCurrency
|
||||||
{
|
{
|
||||||
@@ -216,7 +216,7 @@ class Amount
|
|||||||
*
|
*
|
||||||
* @return \FireflyIII\Models\TransactionCurrency
|
* @return \FireflyIII\Models\TransactionCurrency
|
||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
*/
|
*/
|
||||||
public function getDefaultCurrencyByUser(User $user): TransactionCurrency
|
public function getDefaultCurrencyByUser(User $user): TransactionCurrency
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ namespace FireflyIII\Support\Binder;
|
|||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Exception;
|
use Exception;
|
||||||
use FireflyIII\Helpers\FiscalHelper;
|
|
||||||
use FireflyIII\Helpers\FiscalHelperInterface;
|
use FireflyIII\Helpers\FiscalHelperInterface;
|
||||||
use Illuminate\Routing\Route;
|
use Illuminate\Routing\Route;
|
||||||
use Log;
|
use Log;
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ namespace FireflyIII\Support;
|
|||||||
use Amount as Amt;
|
use Amount as Amt;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Eloquent;
|
use Eloquent;
|
||||||
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Illuminate\Support\MessageBag;
|
use Illuminate\Support\MessageBag;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
@@ -36,11 +37,12 @@ use Session;
|
|||||||
class ExpandedForm
|
class ExpandedForm
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @param $name
|
* @param string $name
|
||||||
* @param null $value
|
* @param null $value
|
||||||
* @param array $options
|
* @param array $options
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
*/
|
*/
|
||||||
public function amount(string $name, $value = null, array $options = []): string
|
public function amount(string $name, $value = null, array $options = []): string
|
||||||
{
|
{
|
||||||
@@ -53,6 +55,7 @@ class ExpandedForm
|
|||||||
* @param array $options
|
* @param array $options
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
*/
|
*/
|
||||||
public function amountSmall(string $name, $value = null, array $options = []): string
|
public function amountSmall(string $name, $value = null, array $options = []): string
|
||||||
{
|
{
|
||||||
@@ -65,6 +68,8 @@ class ExpandedForm
|
|||||||
* @param array $options
|
* @param array $options
|
||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public function balance(string $name, $value = null, array $options = []): string
|
public function balance(string $name, $value = null, array $options = []): string
|
||||||
{
|
{
|
||||||
@@ -594,8 +599,7 @@ class ExpandedForm
|
|||||||
*
|
*
|
||||||
* @return string
|
* @return string
|
||||||
*
|
*
|
||||||
* @throws \Throwable
|
* @throws \FireflyIII\Exceptions\FireflyException
|
||||||
* @throws Facades\FireflyException
|
|
||||||
*/
|
*/
|
||||||
private function currencyField(string $name, string $view, $value = null, array $options = []): string
|
private function currencyField(string $name, string $view, $value = null, array $options = []): string
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,121 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* InputMandatory.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Support\Import\Configuration\Spectre;
|
|
||||||
|
|
||||||
use Crypt;
|
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
|
||||||
use FireflyIII\Models\ImportJob;
|
|
||||||
use FireflyIII\Models\SpectreProvider;
|
|
||||||
use FireflyIII\Support\Import\Configuration\ConfigurationInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class InputMandatory
|
|
||||||
*/
|
|
||||||
class InputMandatory implements ConfigurationInterface
|
|
||||||
{
|
|
||||||
/** @var ImportJob */
|
|
||||||
private $job;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the data necessary to show the configuration screen.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
|
||||||
public function getData(): array
|
|
||||||
{
|
|
||||||
$config = $this->job->configuration;
|
|
||||||
$providerId = $config['provider'];
|
|
||||||
$provider = SpectreProvider::where('spectre_id', $providerId)->first();
|
|
||||||
if (is_null($provider)) {
|
|
||||||
throw new FireflyException(sprintf('Cannot find Spectre provider with ID #%d', $providerId));
|
|
||||||
}
|
|
||||||
$fields = $provider->data['required_fields'] ?? [];
|
|
||||||
$positions = [];
|
|
||||||
// Obtain a list of columns
|
|
||||||
foreach ($fields as $key => $row) {
|
|
||||||
$positions[$key] = $row['position'];
|
|
||||||
}
|
|
||||||
array_multisort($positions, SORT_ASC, $fields);
|
|
||||||
$country = SelectCountry::$allCountries[$config['country']] ?? $config['country'];
|
|
||||||
|
|
||||||
return compact('provider', 'country', 'fields');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return possible warning to user.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getWarningMessage(): string
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ImportJob $job
|
|
||||||
*/
|
|
||||||
public function setJob(ImportJob $job)
|
|
||||||
{
|
|
||||||
$this->job = $job;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store the result.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
*/
|
|
||||||
public function storeConfiguration(array $data): bool
|
|
||||||
{
|
|
||||||
$config = $this->job->configuration;
|
|
||||||
$providerId = $config['provider'];
|
|
||||||
$provider = SpectreProvider::where('spectre_id', $providerId)->first();
|
|
||||||
if (is_null($provider)) {
|
|
||||||
throw new FireflyException(sprintf('Cannot find Spectre provider with ID #%d', $providerId));
|
|
||||||
}
|
|
||||||
$mandatory = [];
|
|
||||||
$fields = $provider->data['required_fields'] ?? [];
|
|
||||||
foreach ($fields as $field) {
|
|
||||||
$name = $field['name'];
|
|
||||||
$mandatory[$name] = Crypt::encrypt($data[$name]) ?? null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// store in config of job:
|
|
||||||
$config['mandatory-fields'] = $mandatory;
|
|
||||||
$config['has-input-mandatory'] = true;
|
|
||||||
$this->job->configuration = $config;
|
|
||||||
$this->job->save();
|
|
||||||
|
|
||||||
// try to grab login for this job. See what happens?
|
|
||||||
// fire job that creates login object. user is redirected to "wait here" page (status page). Page should
|
|
||||||
// refresh and go back to interactive when user is supposed to enter SMS code or something.
|
|
||||||
// otherwise start downloading stuff
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,348 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* SelectCountry.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Support\Import\Configuration\Spectre;
|
|
||||||
|
|
||||||
use FireflyIII\Models\ImportJob;
|
|
||||||
use FireflyIII\Models\SpectreProvider;
|
|
||||||
use FireflyIII\Support\Import\Configuration\ConfigurationInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class SelectCountry
|
|
||||||
*/
|
|
||||||
class SelectCountry implements ConfigurationInterface
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
public static $allCountries
|
|
||||||
= [
|
|
||||||
'AF' => 'Afghanistan',
|
|
||||||
'AX' => 'Aland Islands',
|
|
||||||
'AL' => 'Albania',
|
|
||||||
'DZ' => 'Algeria',
|
|
||||||
'AS' => 'American Samoa',
|
|
||||||
'AD' => 'Andorra',
|
|
||||||
'AO' => 'Angola',
|
|
||||||
'AI' => 'Anguilla',
|
|
||||||
'AQ' => 'Antarctica',
|
|
||||||
'AG' => 'Antigua and Barbuda',
|
|
||||||
'AR' => 'Argentina',
|
|
||||||
'AM' => 'Armenia',
|
|
||||||
'AW' => 'Aruba',
|
|
||||||
'AU' => 'Australia',
|
|
||||||
'AT' => 'Austria',
|
|
||||||
'AZ' => 'Azerbaijan',
|
|
||||||
'BS' => 'Bahamas',
|
|
||||||
'BH' => 'Bahrain',
|
|
||||||
'BD' => 'Bangladesh',
|
|
||||||
'BB' => 'Barbados',
|
|
||||||
'BY' => 'Belarus',
|
|
||||||
'BE' => 'Belgium',
|
|
||||||
'BZ' => 'Belize',
|
|
||||||
'BJ' => 'Benin',
|
|
||||||
'BM' => 'Bermuda',
|
|
||||||
'BT' => 'Bhutan',
|
|
||||||
'BO' => 'Bolivia',
|
|
||||||
'BQ' => 'Bonaire, Saint Eustatius and Saba',
|
|
||||||
'BA' => 'Bosnia and Herzegovina',
|
|
||||||
'BW' => 'Botswana',
|
|
||||||
'BV' => 'Bouvet Island',
|
|
||||||
'BR' => 'Brazil',
|
|
||||||
'IO' => 'British Indian Ocean Territory',
|
|
||||||
'VG' => 'British Virgin Islands',
|
|
||||||
'BN' => 'Brunei',
|
|
||||||
'BG' => 'Bulgaria',
|
|
||||||
'BF' => 'Burkina Faso',
|
|
||||||
'BI' => 'Burundi',
|
|
||||||
'KH' => 'Cambodia',
|
|
||||||
'CM' => 'Cameroon',
|
|
||||||
'CA' => 'Canada',
|
|
||||||
'CV' => 'Cape Verde',
|
|
||||||
'KY' => 'Cayman Islands',
|
|
||||||
'CF' => 'Central African Republic',
|
|
||||||
'TD' => 'Chad',
|
|
||||||
'CL' => 'Chile',
|
|
||||||
'CN' => 'China',
|
|
||||||
'CX' => 'Christmas Island',
|
|
||||||
'CC' => 'Cocos Islands',
|
|
||||||
'CO' => 'Colombia',
|
|
||||||
'KM' => 'Comoros',
|
|
||||||
'CK' => 'Cook Islands',
|
|
||||||
'CR' => 'Costa Rica',
|
|
||||||
'HR' => 'Croatia',
|
|
||||||
'CU' => 'Cuba',
|
|
||||||
'CW' => 'Curacao',
|
|
||||||
'CY' => 'Cyprus',
|
|
||||||
'CZ' => 'Czech Republic',
|
|
||||||
'CD' => 'Democratic Republic of the Congo',
|
|
||||||
'DK' => 'Denmark',
|
|
||||||
'DJ' => 'Djibouti',
|
|
||||||
'DM' => 'Dominica',
|
|
||||||
'DO' => 'Dominican Republic',
|
|
||||||
'TL' => 'East Timor',
|
|
||||||
'EC' => 'Ecuador',
|
|
||||||
'EG' => 'Egypt',
|
|
||||||
'SV' => 'El Salvador',
|
|
||||||
'GQ' => 'Equatorial Guinea',
|
|
||||||
'ER' => 'Eritrea',
|
|
||||||
'EE' => 'Estonia',
|
|
||||||
'ET' => 'Ethiopia',
|
|
||||||
'FK' => 'Falkland Islands',
|
|
||||||
'FO' => 'Faroe Islands',
|
|
||||||
'FJ' => 'Fiji',
|
|
||||||
'FI' => 'Finland',
|
|
||||||
'FR' => 'France',
|
|
||||||
'GF' => 'French Guiana',
|
|
||||||
'PF' => 'French Polynesia',
|
|
||||||
'TF' => 'French Southern Territories',
|
|
||||||
'GA' => 'Gabon',
|
|
||||||
'GM' => 'Gambia',
|
|
||||||
'GE' => 'Georgia',
|
|
||||||
'DE' => 'Germany',
|
|
||||||
'GH' => 'Ghana',
|
|
||||||
'GI' => 'Gibraltar',
|
|
||||||
'GR' => 'Greece',
|
|
||||||
'GL' => 'Greenland',
|
|
||||||
'GD' => 'Grenada',
|
|
||||||
'GP' => 'Guadeloupe',
|
|
||||||
'GU' => 'Guam',
|
|
||||||
'GT' => 'Guatemala',
|
|
||||||
'GG' => 'Guernsey',
|
|
||||||
'GN' => 'Guinea',
|
|
||||||
'GW' => 'Guinea-Bissau',
|
|
||||||
'GY' => 'Guyana',
|
|
||||||
'HT' => 'Haiti',
|
|
||||||
'HM' => 'Heard Island and McDonald Islands',
|
|
||||||
'HN' => 'Honduras',
|
|
||||||
'HK' => 'Hong Kong',
|
|
||||||
'HU' => 'Hungary',
|
|
||||||
'IS' => 'Iceland',
|
|
||||||
'IN' => 'India',
|
|
||||||
'ID' => 'Indonesia',
|
|
||||||
'IR' => 'Iran',
|
|
||||||
'IQ' => 'Iraq',
|
|
||||||
'IE' => 'Ireland',
|
|
||||||
'IM' => 'Isle of Man',
|
|
||||||
'IL' => 'Israel',
|
|
||||||
'IT' => 'Italy',
|
|
||||||
'CI' => 'Ivory Coast',
|
|
||||||
'JM' => 'Jamaica',
|
|
||||||
'JP' => 'Japan',
|
|
||||||
'JE' => 'Jersey',
|
|
||||||
'JO' => 'Jordan',
|
|
||||||
'KZ' => 'Kazakhstan',
|
|
||||||
'KE' => 'Kenya',
|
|
||||||
'KI' => 'Kiribati',
|
|
||||||
'XK' => 'Kosovo',
|
|
||||||
'KW' => 'Kuwait',
|
|
||||||
'KG' => 'Kyrgyzstan',
|
|
||||||
'LA' => 'Laos',
|
|
||||||
'LV' => 'Latvia',
|
|
||||||
'LB' => 'Lebanon',
|
|
||||||
'LS' => 'Lesotho',
|
|
||||||
'LR' => 'Liberia',
|
|
||||||
'LY' => 'Libya',
|
|
||||||
'LI' => 'Liechtenstein',
|
|
||||||
'LT' => 'Lithuania',
|
|
||||||
'LU' => 'Luxembourg',
|
|
||||||
'MO' => 'Macao',
|
|
||||||
'MK' => 'Macedonia',
|
|
||||||
'MG' => 'Madagascar',
|
|
||||||
'MW' => 'Malawi',
|
|
||||||
'MY' => 'Malaysia',
|
|
||||||
'MV' => 'Maldives',
|
|
||||||
'ML' => 'Mali',
|
|
||||||
'MT' => 'Malta',
|
|
||||||
'MH' => 'Marshall Islands',
|
|
||||||
'MQ' => 'Martinique',
|
|
||||||
'MR' => 'Mauritania',
|
|
||||||
'MU' => 'Mauritius',
|
|
||||||
'YT' => 'Mayotte',
|
|
||||||
'MX' => 'Mexico',
|
|
||||||
'FM' => 'Micronesia',
|
|
||||||
'MD' => 'Moldova',
|
|
||||||
'MC' => 'Monaco',
|
|
||||||
'MN' => 'Mongolia',
|
|
||||||
'ME' => 'Montenegro',
|
|
||||||
'MS' => 'Montserrat',
|
|
||||||
'MA' => 'Morocco',
|
|
||||||
'MZ' => 'Mozambique',
|
|
||||||
'MM' => 'Myanmar',
|
|
||||||
'NA' => 'Namibia',
|
|
||||||
'NR' => 'Nauru',
|
|
||||||
'NP' => 'Nepal',
|
|
||||||
'NL' => 'Netherlands',
|
|
||||||
'NC' => 'New Caledonia',
|
|
||||||
'NZ' => 'New Zealand',
|
|
||||||
'NI' => 'Nicaragua',
|
|
||||||
'NE' => 'Niger',
|
|
||||||
'NG' => 'Nigeria',
|
|
||||||
'NU' => 'Niue',
|
|
||||||
'NF' => 'Norfolk Island',
|
|
||||||
'KP' => 'North Korea',
|
|
||||||
'MP' => 'Northern Mariana Islands',
|
|
||||||
'NO' => 'Norway',
|
|
||||||
'OM' => 'Oman',
|
|
||||||
'PK' => 'Pakistan',
|
|
||||||
'PW' => 'Palau',
|
|
||||||
'PS' => 'Palestinian Territory',
|
|
||||||
'PA' => 'Panama',
|
|
||||||
'PG' => 'Papua New Guinea',
|
|
||||||
'PY' => 'Paraguay',
|
|
||||||
'PE' => 'Peru',
|
|
||||||
'PH' => 'Philippines',
|
|
||||||
'PN' => 'Pitcairn',
|
|
||||||
'PL' => 'Poland',
|
|
||||||
'PT' => 'Portugal',
|
|
||||||
'PR' => 'Puerto Rico',
|
|
||||||
'QA' => 'Qatar',
|
|
||||||
'CG' => 'Republic of the Congo',
|
|
||||||
'RE' => 'Reunion',
|
|
||||||
'RO' => 'Romania',
|
|
||||||
'RU' => 'Russia',
|
|
||||||
'RW' => 'Rwanda',
|
|
||||||
'BL' => 'Saint Barthelemy',
|
|
||||||
'SH' => 'Saint Helena',
|
|
||||||
'KN' => 'Saint Kitts and Nevis',
|
|
||||||
'LC' => 'Saint Lucia',
|
|
||||||
'MF' => 'Saint Martin',
|
|
||||||
'PM' => 'Saint Pierre and Miquelon',
|
|
||||||
'VC' => 'Saint Vincent and the Grenadines',
|
|
||||||
'WS' => 'Samoa',
|
|
||||||
'SM' => 'San Marino',
|
|
||||||
'ST' => 'Sao Tome and Principe',
|
|
||||||
'SA' => 'Saudi Arabia',
|
|
||||||
'SN' => 'Senegal',
|
|
||||||
'RS' => 'Serbia',
|
|
||||||
'SC' => 'Seychelles',
|
|
||||||
'SL' => 'Sierra Leone',
|
|
||||||
'SG' => 'Singapore',
|
|
||||||
'SX' => 'Sint Maarten',
|
|
||||||
'SK' => 'Slovakia',
|
|
||||||
'SI' => 'Slovenia',
|
|
||||||
'SB' => 'Solomon Islands',
|
|
||||||
'SO' => 'Somalia',
|
|
||||||
'ZA' => 'South Africa',
|
|
||||||
'GS' => 'South Georgia and the South Sandwich Islands',
|
|
||||||
'KR' => 'South Korea',
|
|
||||||
'SS' => 'South Sudan',
|
|
||||||
'ES' => 'Spain',
|
|
||||||
'LK' => 'Sri Lanka',
|
|
||||||
'SD' => 'Sudan',
|
|
||||||
'SR' => 'Suriname',
|
|
||||||
'SJ' => 'Svalbard and Jan Mayen',
|
|
||||||
'SZ' => 'Swaziland',
|
|
||||||
'SE' => 'Sweden',
|
|
||||||
'CH' => 'Switzerland',
|
|
||||||
'SY' => 'Syria',
|
|
||||||
'TW' => 'Taiwan',
|
|
||||||
'TJ' => 'Tajikistan',
|
|
||||||
'TZ' => 'Tanzania',
|
|
||||||
'TH' => 'Thailand',
|
|
||||||
'TG' => 'Togo',
|
|
||||||
'TK' => 'Tokelau',
|
|
||||||
'TO' => 'Tonga',
|
|
||||||
'TT' => 'Trinidad and Tobago',
|
|
||||||
'TN' => 'Tunisia',
|
|
||||||
'TR' => 'Turkey',
|
|
||||||
'TM' => 'Turkmenistan',
|
|
||||||
'TC' => 'Turks and Caicos Islands',
|
|
||||||
'TV' => 'Tuvalu',
|
|
||||||
'VI' => 'U.S. Virgin Islands',
|
|
||||||
'UG' => 'Uganda',
|
|
||||||
'UA' => 'Ukraine',
|
|
||||||
'AE' => 'United Arab Emirates',
|
|
||||||
'GB' => 'United Kingdom',
|
|
||||||
'US' => 'United States',
|
|
||||||
'UM' => 'United States Minor Outlying Islands',
|
|
||||||
'UY' => 'Uruguay',
|
|
||||||
'UZ' => 'Uzbekistan',
|
|
||||||
'VU' => 'Vanuatu',
|
|
||||||
'VA' => 'Vatican',
|
|
||||||
'VE' => 'Venezuela',
|
|
||||||
'VN' => 'Vietnam',
|
|
||||||
'WF' => 'Wallis and Futuna',
|
|
||||||
'EH' => 'Western Sahara',
|
|
||||||
'YE' => 'Yemen',
|
|
||||||
'ZM' => 'Zambia',
|
|
||||||
'ZW' => 'Zimbabwe',
|
|
||||||
'XF' => 'Fake Country (for testing)',
|
|
||||||
'XO' => 'Other financial applications',
|
|
||||||
];
|
|
||||||
/** @var ImportJob */
|
|
||||||
private $job;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the data necessary to show the configuration screen.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function getData(): array
|
|
||||||
{
|
|
||||||
$providers = SpectreProvider::get();
|
|
||||||
$countries = [];
|
|
||||||
/** @var SpectreProvider $provider */
|
|
||||||
foreach ($providers as $provider) {
|
|
||||||
$countries[$provider->country_code] = self::$allCountries[$provider->country_code] ?? $provider->country_code;
|
|
||||||
}
|
|
||||||
asort($countries);
|
|
||||||
|
|
||||||
return compact('countries');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return possible warning to user.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getWarningMessage(): string
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ImportJob $job
|
|
||||||
*/
|
|
||||||
public function setJob(ImportJob $job)
|
|
||||||
{
|
|
||||||
$this->job = $job;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store the result.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function storeConfiguration(array $data): bool
|
|
||||||
{
|
|
||||||
$config = $this->job->configuration;
|
|
||||||
$config['country'] = $data['country_code'] ?? 'XF'; // default to fake country.
|
|
||||||
$config['selected-country'] = true;
|
|
||||||
$this->job->configuration = $config;
|
|
||||||
$this->job->save();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* SelectProvider.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Support\Import\Configuration\Spectre;
|
|
||||||
|
|
||||||
use FireflyIII\Models\ImportJob;
|
|
||||||
use FireflyIII\Models\SpectreProvider;
|
|
||||||
use FireflyIII\Support\Import\Configuration\ConfigurationInterface;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class SelectProvider
|
|
||||||
*/
|
|
||||||
class SelectProvider implements ConfigurationInterface
|
|
||||||
{
|
|
||||||
/** @var ImportJob */
|
|
||||||
private $job;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the data necessary to show the configuration screen.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function getData(): array
|
|
||||||
{
|
|
||||||
$config = $this->job->configuration;
|
|
||||||
$selection = SpectreProvider::where('country_code', $config['country'])->where('status', 'active')->get();
|
|
||||||
$providers = [];
|
|
||||||
/** @var SpectreProvider $provider */
|
|
||||||
foreach ($selection as $provider) {
|
|
||||||
$providerId = $provider->spectre_id;
|
|
||||||
$name = $provider->data['name'];
|
|
||||||
$providers[$providerId] = $name;
|
|
||||||
}
|
|
||||||
$country = SelectCountry::$allCountries[$config['country']] ?? $config['country'];
|
|
||||||
|
|
||||||
return compact('providers', 'country');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return possible warning to user.
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getWarningMessage(): string
|
|
||||||
{
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param ImportJob $job
|
|
||||||
*/
|
|
||||||
public function setJob(ImportJob $job)
|
|
||||||
{
|
|
||||||
$this->job = $job;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store the result.
|
|
||||||
*
|
|
||||||
* @param array $data
|
|
||||||
*
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function storeConfiguration(array $data): bool
|
|
||||||
{
|
|
||||||
$config = $this->job->configuration;
|
|
||||||
$config['provider'] = intval($data['provider_code']) ?? 0; // default to fake country.
|
|
||||||
$config['selected-provider'] = true;
|
|
||||||
$this->job->configuration = $config;
|
|
||||||
$this->job->save();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -63,6 +63,7 @@ class BunqInformation implements InformationInterface
|
|||||||
* @return array
|
* @return array
|
||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
|
* @throws \Exception
|
||||||
*/
|
*/
|
||||||
public function getAccounts(): array
|
public function getAccounts(): array
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,217 +0,0 @@
|
|||||||
<?php
|
|
||||||
/**
|
|
||||||
* SpectreInformation.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace FireflyIII\Support\Import\Information;
|
|
||||||
|
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
|
||||||
use FireflyIII\Services\Bunq\Object\Alias;
|
|
||||||
use FireflyIII\Services\Bunq\Object\MonetaryAccountBank;
|
|
||||||
use FireflyIII\Services\Bunq\Request\DeleteDeviceSessionRequest;
|
|
||||||
use FireflyIII\Services\Bunq\Request\DeviceSessionRequest;
|
|
||||||
use FireflyIII\Services\Bunq\Request\ListMonetaryAccountRequest;
|
|
||||||
use FireflyIII\Services\Bunq\Request\ListUserRequest;
|
|
||||||
use FireflyIII\Services\Bunq\Token\SessionToken;
|
|
||||||
use FireflyIII\Support\CacheProperties;
|
|
||||||
use FireflyIII\User;
|
|
||||||
use Illuminate\Support\Collection;
|
|
||||||
use Log;
|
|
||||||
use Preferences;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class SpectreInformation
|
|
||||||
*/
|
|
||||||
class SpectreInformation implements InformationInterface
|
|
||||||
{
|
|
||||||
/** @var User */
|
|
||||||
private $user;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns a collection of accounts. Preferrably, these follow a uniform Firefly III format so they can be managed over banks.
|
|
||||||
*
|
|
||||||
* The format for these bank accounts is basically this:
|
|
||||||
*
|
|
||||||
* id: bank specific id
|
|
||||||
* name: bank appointed name
|
|
||||||
* number: account number (usually IBAN)
|
|
||||||
* currency: ISO code of currency
|
|
||||||
* balance: current balance
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* any other fields are optional but can be useful:
|
|
||||||
* image: logo or account specific thing
|
|
||||||
* color: any associated color.
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function getAccounts(): array
|
|
||||||
{
|
|
||||||
// cache for an hour:
|
|
||||||
$cache = new CacheProperties;
|
|
||||||
$cache->addProperty('bunq.get-accounts');
|
|
||||||
$cache->addProperty(date('dmy h'));
|
|
||||||
if ($cache->has()) {
|
|
||||||
return $cache->get(); // @codeCoverageIgnore
|
|
||||||
}
|
|
||||||
Log::debug('Now in getAccounts()');
|
|
||||||
$sessionToken = $this->startSession();
|
|
||||||
$userId = $this->getUserInformation($sessionToken);
|
|
||||||
// get list of Bunq accounts:
|
|
||||||
$accounts = $this->getMonetaryAccounts($sessionToken, $userId);
|
|
||||||
$return = [];
|
|
||||||
/** @var MonetaryAccountBank $account */
|
|
||||||
foreach ($accounts as $account) {
|
|
||||||
$current = [
|
|
||||||
'id' => $account->getId(),
|
|
||||||
'name' => $account->getDescription(),
|
|
||||||
'currency' => $account->getCurrency(),
|
|
||||||
'balance' => $account->getBalance()->getValue(),
|
|
||||||
'color' => $account->getSetting()->getColor(),
|
|
||||||
];
|
|
||||||
/** @var Alias $alias */
|
|
||||||
foreach ($account->getAliases() as $alias) {
|
|
||||||
if ('IBAN' === $alias->getType()) {
|
|
||||||
$current['number'] = $alias->getValue();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$return[] = $current;
|
|
||||||
}
|
|
||||||
$cache->store($return);
|
|
||||||
|
|
||||||
$this->closeSession($sessionToken);
|
|
||||||
|
|
||||||
return $return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the user for this Prerequisites-routine. Class is expected to implement and save this.
|
|
||||||
*
|
|
||||||
* @param User $user
|
|
||||||
*/
|
|
||||||
public function setUser(User $user): void
|
|
||||||
{
|
|
||||||
$this->user = $user;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param SessionToken $sessionToken
|
|
||||||
*
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
private function closeSession(SessionToken $sessionToken): void
|
|
||||||
{
|
|
||||||
Log::debug('Going to close session');
|
|
||||||
$apiKey = Preferences::getForUser($this->user, 'bunq_api_key')->data;
|
|
||||||
$serverPublicKey = Preferences::getForUser($this->user, 'bunq_server_public_key')->data;
|
|
||||||
$privateKey = Preferences::getForUser($this->user, 'bunq_private_key')->data;
|
|
||||||
$request = new DeleteDeviceSessionRequest();
|
|
||||||
$request->setSecret($apiKey);
|
|
||||||
$request->setPrivateKey($privateKey);
|
|
||||||
$request->setServerPublicKey($serverPublicKey);
|
|
||||||
$request->setSessionToken($sessionToken);
|
|
||||||
$request->call();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param SessionToken $sessionToken
|
|
||||||
* @param int $userId
|
|
||||||
*
|
|
||||||
* @return Collection
|
|
||||||
*
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
private function getMonetaryAccounts(SessionToken $sessionToken, int $userId): Collection
|
|
||||||
{
|
|
||||||
$apiKey = Preferences::getForUser($this->user, 'bunq_api_key')->data;
|
|
||||||
$serverPublicKey = Preferences::getForUser($this->user, 'bunq_server_public_key')->data;
|
|
||||||
$privateKey = Preferences::getForUser($this->user, 'bunq_private_key')->data;
|
|
||||||
$request = new ListMonetaryAccountRequest;
|
|
||||||
|
|
||||||
$request->setSessionToken($sessionToken);
|
|
||||||
$request->setSecret($apiKey);
|
|
||||||
$request->setServerPublicKey($serverPublicKey);
|
|
||||||
$request->setPrivateKey($privateKey);
|
|
||||||
$request->setUserId($userId);
|
|
||||||
$request->call();
|
|
||||||
|
|
||||||
return $request->getMonetaryAccounts();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param SessionToken $sessionToken
|
|
||||||
*
|
|
||||||
* @return int
|
|
||||||
*
|
|
||||||
* @throws FireflyException
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
private function getUserInformation(SessionToken $sessionToken): int
|
|
||||||
{
|
|
||||||
$apiKey = Preferences::getForUser($this->user, 'bunq_api_key')->data;
|
|
||||||
$serverPublicKey = Preferences::getForUser($this->user, 'bunq_server_public_key')->data;
|
|
||||||
$privateKey = Preferences::getForUser($this->user, 'bunq_private_key')->data;
|
|
||||||
$request = new ListUserRequest;
|
|
||||||
$request->setSessionToken($sessionToken);
|
|
||||||
$request->setSecret($apiKey);
|
|
||||||
$request->setServerPublicKey($serverPublicKey);
|
|
||||||
$request->setPrivateKey($privateKey);
|
|
||||||
$request->call();
|
|
||||||
// return the first that isn't null?
|
|
||||||
$company = $request->getUserCompany();
|
|
||||||
if ($company->getId() > 0) {
|
|
||||||
return $company->getId();
|
|
||||||
}
|
|
||||||
$user = $request->getUserPerson();
|
|
||||||
if ($user->getId() > 0) {
|
|
||||||
return $user->getId();
|
|
||||||
}
|
|
||||||
throw new FireflyException('Expected user or company from Bunq, but got neither.');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return SessionToken
|
|
||||||
*
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
private function startSession(): SessionToken
|
|
||||||
{
|
|
||||||
Log::debug('Now in startSession.');
|
|
||||||
$apiKey = Preferences::getForUser($this->user, 'bunq_api_key')->data;
|
|
||||||
$serverPublicKey = Preferences::getForUser($this->user, 'bunq_server_public_key')->data;
|
|
||||||
$privateKey = Preferences::getForUser($this->user, 'bunq_private_key')->data;
|
|
||||||
$installationToken = Preferences::getForUser($this->user, 'bunq_installation_token')->data;
|
|
||||||
$request = new DeviceSessionRequest();
|
|
||||||
$request->setSecret($apiKey);
|
|
||||||
$request->setServerPublicKey($serverPublicKey);
|
|
||||||
$request->setPrivateKey($privateKey);
|
|
||||||
$request->setInstallationToken($installationToken);
|
|
||||||
$request->call();
|
|
||||||
$sessionToken = $request->getSessionToken();
|
|
||||||
Log::debug(sprintf('Now have got session token: %s', serialize($sessionToken)));
|
|
||||||
|
|
||||||
return $sessionToken;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -473,6 +473,7 @@ class Navigation
|
|||||||
$date->subMonths($subtract);
|
$date->subMonths($subtract);
|
||||||
Log::debug(sprintf('%s is in modifier map with value %d, execute subMonths with argument %d', $repeatFreq, $modifierMap[$repeatFreq], $subtract));
|
Log::debug(sprintf('%s is in modifier map with value %d, execute subMonths with argument %d', $repeatFreq, $modifierMap[$repeatFreq], $subtract));
|
||||||
Log::debug(sprintf('subtractPeriod: resulting date is %s', $date->format('Y-m-d')));
|
Log::debug(sprintf('subtractPeriod: resulting date is %s', $date->format('Y-m-d')));
|
||||||
|
|
||||||
return $date;
|
return $date;
|
||||||
}
|
}
|
||||||
// a custom range requires the session start
|
// a custom range requires the session start
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ use FireflyIII\Models\TransactionJournal;
|
|||||||
* This class will be magical!
|
* This class will be magical!
|
||||||
*
|
*
|
||||||
* Class AbstractTrigger
|
* Class AbstractTrigger
|
||||||
|
* @method triggered
|
||||||
*/
|
*/
|
||||||
class AbstractTrigger
|
class AbstractTrigger
|
||||||
{
|
{
|
||||||
@@ -43,15 +44,6 @@ class AbstractTrigger
|
|||||||
/** @var string Trigger value */
|
/** @var string Trigger value */
|
||||||
protected $triggerValue;
|
protected $triggerValue;
|
||||||
|
|
||||||
/**
|
|
||||||
* AbstractTrigger constructor.
|
|
||||||
*
|
|
||||||
* @codeCoverageIgnore
|
|
||||||
*/
|
|
||||||
private function __construct()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a new trigger from the value given in the string.
|
* Make a new trigger from the value given in the string.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -340,7 +340,7 @@ class FireflyValidator extends Validator
|
|||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateUniqueAccountNumberForUser($attribute, $value, $parameters): bool
|
public function validateUniqueAccountNumberForUser($attribute, $value): bool
|
||||||
{
|
{
|
||||||
$accountId = $this->data['id'] ?? 0;
|
$accountId = $this->data['id'] ?? 0;
|
||||||
|
|
||||||
|
|||||||
10
composer.lock
generated
10
composer.lock
generated
@@ -748,16 +748,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravel/framework",
|
"name": "laravel/framework",
|
||||||
"version": "v5.5.27",
|
"version": "v5.5.28",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/laravel/framework.git",
|
"url": "https://github.com/laravel/framework.git",
|
||||||
"reference": "b4fb6eeb227b7327b4ca7f92263b693ec9ac9875"
|
"reference": "cfafae1f2043208390a7c984e3070696f4969605"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/laravel/framework/zipball/b4fb6eeb227b7327b4ca7f92263b693ec9ac9875",
|
"url": "https://api.github.com/repos/laravel/framework/zipball/cfafae1f2043208390a7c984e3070696f4969605",
|
||||||
"reference": "b4fb6eeb227b7327b4ca7f92263b693ec9ac9875",
|
"reference": "cfafae1f2043208390a7c984e3070696f4969605",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -878,7 +878,7 @@
|
|||||||
"framework",
|
"framework",
|
||||||
"laravel"
|
"laravel"
|
||||||
],
|
],
|
||||||
"time": "2017-12-20T15:43:48+00:00"
|
"time": "2017-12-26T16:24:40+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "laravelcollective/html",
|
"name": "laravelcollective/html",
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* 2017_12_09_111046_changes_for_spectre.php
|
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
|
||||||
*
|
|
||||||
* This file is part of Firefly III.
|
|
||||||
*
|
|
||||||
* Firefly III is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* Firefly III is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
use Illuminate\Database\Migrations\Migration;
|
|
||||||
use Illuminate\Database\Schema\Blueprint;
|
|
||||||
use Illuminate\Support\Facades\Schema;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class ChangesForSpectre
|
|
||||||
*/
|
|
||||||
class ChangesForSpectre extends Migration
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Reverse the migrations.
|
|
||||||
*/
|
|
||||||
public function down()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the migrations.
|
|
||||||
*/
|
|
||||||
public function up()
|
|
||||||
{
|
|
||||||
// create provider table:
|
|
||||||
if (!Schema::hasTable('spectre_providers')) {
|
|
||||||
Schema::create(
|
|
||||||
'spectre_providers',
|
|
||||||
function (Blueprint $table) {
|
|
||||||
$table->increments('id');
|
|
||||||
$table->timestamps();
|
|
||||||
$table->softDeletes();
|
|
||||||
//'spectre_id', 'code', 'mode', 'name', 'status', 'interactive', 'automatic_fetch', 'country_code', 'data'
|
|
||||||
$table->integer('spectre_id', false, true);
|
|
||||||
$table->string('code', 100);
|
|
||||||
$table->string('mode', 20);
|
|
||||||
$table->string('status', 20);
|
|
||||||
$table->boolean('interactive')->default(0);
|
|
||||||
$table->boolean('automatic_fetch')->default(0);
|
|
||||||
$table->string('country_code', 3);
|
|
||||||
$table->text('data');
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
public/js/ff/accounts/reconcile.js
vendored
1
public/js/ff/accounts/reconcile.js
vendored
@@ -92,7 +92,6 @@ function storeReconcile() {
|
|||||||
transactions: ids,
|
transactions: ids,
|
||||||
cleared: cleared,
|
cleared: cleared,
|
||||||
};
|
};
|
||||||
console.log
|
|
||||||
var uri = overviewUri.replace('%start%', $('input[name="start_date"]').val()).replace('%end%', $('input[name="end_date"]').val());
|
var uri = overviewUri.replace('%start%', $('input[name="start_date"]').val()).replace('%end%', $('input[name="end_date"]').val());
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
2
public/js/ff/accounts/show.js
vendored
2
public/js/ff/accounts/show.js
vendored
@@ -18,7 +18,7 @@
|
|||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** global: chartUri, incomeCategoryUri, expenseCategoryUri, expenseBudgetUri */
|
/** global: chartUri, incomeCategoryUri, expenseCategoryUri, expenseBudgetUri, token */
|
||||||
|
|
||||||
var fixHelper = function (e, tr) {
|
var fixHelper = function (e, tr) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|||||||
2
public/js/ff/admin/update/index.js
vendored
2
public/js/ff/admin/update/index.js
vendored
@@ -18,6 +18,8 @@
|
|||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/** global: updateCheckUri */
|
||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
|||||||
2
public/js/ff/budgets/index.js
vendored
2
public/js/ff/budgets/index.js
vendored
@@ -18,7 +18,7 @@
|
|||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** global: infoIncomeUri, spent, budgeted, available, currencySymbol, budgetIndexUri, updateIncomeUri, periodStart, periodEnd, budgetAmountUri, accounting */
|
/** global: infoIncomeUri, token, spent, budgeted, available, currencySymbol, budgetIndexUri, updateIncomeUri, periodStart, periodEnd, budgetAmountUri, accounting */
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|||||||
9
public/js/ff/charts.defaults.js
vendored
9
public/js/ff/charts.defaults.js
vendored
@@ -35,8 +35,7 @@ function formatLabel(str, maxwidth){
|
|||||||
var temp = "";
|
var temp = "";
|
||||||
|
|
||||||
words.forEach(function (item, index) {
|
words.forEach(function (item, index) {
|
||||||
if(temp.length > 0)
|
if (temp.length > 0) {
|
||||||
{
|
|
||||||
var concat = temp + ' ' + item;
|
var concat = temp + ' ' + item;
|
||||||
|
|
||||||
if (concat.length > maxwidth) {
|
if (concat.length > maxwidth) {
|
||||||
@@ -44,8 +43,7 @@ function formatLabel(str, maxwidth){
|
|||||||
temp = "";
|
temp = "";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(index === (words.length-1))
|
if (index === (words.length - 1)) {
|
||||||
{
|
|
||||||
sections.push(concat);
|
sections.push(concat);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -56,8 +54,7 @@ function formatLabel(str, maxwidth){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(index === (words.length-1))
|
if (index === (words.length - 1)) {
|
||||||
{
|
|
||||||
sections.push(item);
|
sections.push(item);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
2
public/js/ff/help.js
vendored
2
public/js/ff/help.js
vendored
@@ -17,7 +17,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
/** global: token */
|
||||||
$(function () {
|
$(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
$('#help').click(showHelp);
|
$('#help').click(showHelp);
|
||||||
|
|||||||
17
public/js/ff/import/status.js
vendored
17
public/js/ff/import/status.js
vendored
@@ -18,7 +18,7 @@
|
|||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** global: langImportSingleError, langImportMultiError, jobStartUrl, langImportTimeOutError, langImportFinished, langImportFatalError */
|
/** global: job, langImportSingleError, langImportMultiError, jobStartUrl, langImportTimeOutError, langImportFinished, langImportFatalError */
|
||||||
|
|
||||||
var timeOutId;
|
var timeOutId;
|
||||||
var startInterval = 1000;
|
var startInterval = 1000;
|
||||||
@@ -34,10 +34,12 @@ var knownErrors = 0;
|
|||||||
|
|
||||||
$(function () {
|
$(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
console.log('in start');
|
||||||
timeOutId = setTimeout(checkJobStatus, startInterval);
|
timeOutId = setTimeout(checkJobStatus, startInterval);
|
||||||
|
|
||||||
$('.start-job').click(startJob);
|
$('.start-job').click(startJob);
|
||||||
if (job.configuration['auto-start']) {
|
if (job.configuration['auto-start']) {
|
||||||
|
console.log('Called startJob()!');
|
||||||
startJob();
|
startJob();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -46,6 +48,7 @@ $(function () {
|
|||||||
* Downloads some JSON and responds to its content to see what the status is of the current import.
|
* Downloads some JSON and responds to its content to see what the status is of the current import.
|
||||||
*/
|
*/
|
||||||
function checkJobStatus() {
|
function checkJobStatus() {
|
||||||
|
console.log('in checkJobStatus');
|
||||||
$.getJSON(jobStatusUri).done(reportOnJobStatus).fail(reportFailedJob);
|
$.getJSON(jobStatusUri).done(reportOnJobStatus).fail(reportFailedJob);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,6 +56,7 @@ function checkJobStatus() {
|
|||||||
* This method is called when the JSON query returns an error. If possible, this error is relayed to the user.
|
* This method is called when the JSON query returns an error. If possible, this error is relayed to the user.
|
||||||
*/
|
*/
|
||||||
function reportFailedJob(jqxhr, textStatus, error) {
|
function reportFailedJob(jqxhr, textStatus, error) {
|
||||||
|
console.log('in reportFailedJob');
|
||||||
// hide all possible boxes:
|
// hide all possible boxes:
|
||||||
$('.statusbox').hide();
|
$('.statusbox').hide();
|
||||||
|
|
||||||
@@ -72,6 +76,7 @@ function reportFailedJob(jqxhr, textStatus, error) {
|
|||||||
* @param data
|
* @param data
|
||||||
*/
|
*/
|
||||||
function reportOnJobStatus(data) {
|
function reportOnJobStatus(data) {
|
||||||
|
console.log('in reportOnJobStatus: ' + data.status);
|
||||||
|
|
||||||
switch (data.status) {
|
switch (data.status) {
|
||||||
case "configured":
|
case "configured":
|
||||||
@@ -80,6 +85,10 @@ function reportOnJobStatus(data) {
|
|||||||
$('.statusbox').hide();
|
$('.statusbox').hide();
|
||||||
$('.status_configured').show();
|
$('.status_configured').show();
|
||||||
}
|
}
|
||||||
|
if (job.configuration['auto-start']) {
|
||||||
|
console.log('Job is auto start. Check status again in 500ms.');
|
||||||
|
timeOutId = setTimeout(checkJobStatus, interval);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "running":
|
case "running":
|
||||||
// job is running! Show the running box:
|
// job is running! Show the running box:
|
||||||
@@ -122,7 +131,13 @@ function reportOnJobStatus(data) {
|
|||||||
// show the fatal error box:
|
// show the fatal error box:
|
||||||
$('.fatal_error').show();
|
$('.fatal_error').show();
|
||||||
break;
|
break;
|
||||||
|
case "configuring":
|
||||||
|
// redirect back to configure screen.
|
||||||
|
console.log('Will now redirect to ' + jobConfigureUri);
|
||||||
|
window.location = jobConfigureUri;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
|
console.error('Cannot handle job status ' + data.status);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
2
public/js/ff/piggy-banks/index.js
vendored
2
public/js/ff/piggy-banks/index.js
vendored
@@ -17,7 +17,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
/** global: token */
|
||||||
var fixHelper = function (e, tr) {
|
var fixHelper = function (e, tr) {
|
||||||
"use strict";
|
"use strict";
|
||||||
var $originals = tr.children();
|
var $originals = tr.children();
|
||||||
|
|||||||
11
public/js/ff/reports/account/month.js
vendored
11
public/js/ff/reports/account/month.js
vendored
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* month.js
|
* month.js
|
||||||
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
* Copyright (c) 2017 thegrumpydictator@gmail.com
|
||||||
@@ -18,10 +17,10 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
/** global: spentUri, categoryUri, budgetUri, expenseUri, incomeUri, mainUri */
|
||||||
$(function () {
|
$(function () {
|
||||||
"use strict";
|
"use strict";
|
||||||
drawChart();
|
doubleYChart(mainUri, 'in-out-chart');
|
||||||
|
|
||||||
loadAjaxPartial('inOutAccounts', spentUri);
|
loadAjaxPartial('inOutAccounts', spentUri);
|
||||||
loadAjaxPartial('inOutCategory', categoryUri);
|
loadAjaxPartial('inOutCategory', categoryUri);
|
||||||
@@ -31,9 +30,3 @@ $(function () {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function drawChart() {
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
// month view:
|
|
||||||
doubleYChart(mainUri, 'in-out-chart');
|
|
||||||
}
|
|
||||||
2
public/js/ff/reports/all.js
vendored
2
public/js/ff/reports/all.js
vendored
@@ -17,7 +17,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
/** global: startDate, endDate, accountIds */
|
||||||
function loadAjaxPartial(holder, uri) {
|
function loadAjaxPartial(holder, uri) {
|
||||||
"use strict";
|
"use strict";
|
||||||
$.get(uri).done(function (data) {
|
$.get(uri).done(function (data) {
|
||||||
|
|||||||
1
public/js/ff/reports/index.js
vendored
1
public/js/ff/reports/index.js
vendored
@@ -139,7 +139,6 @@ function setOptionalFromCookies() {
|
|||||||
$('#inputExpRevAccounts').multiselect(defaultMultiSelect);
|
$('#inputExpRevAccounts').multiselect(defaultMultiSelect);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function catchSubmit() {
|
function catchSubmit() {
|
||||||
|
|||||||
2
public/js/ff/rules/index.js
vendored
2
public/js/ff/rules/index.js
vendored
@@ -17,7 +17,7 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
/** global: token */
|
||||||
var fixHelper = function (e, tr) {
|
var fixHelper = function (e, tr) {
|
||||||
"use strict";
|
"use strict";
|
||||||
var $originals = tr.children();
|
var $originals = tr.children();
|
||||||
|
|||||||
2
public/js/ff/search/index.js
vendored
2
public/js/ff/search/index.js
vendored
@@ -18,7 +18,7 @@
|
|||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** global: searchQuery,searchUri */
|
/** global: searchQuery,searchUri,token */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
2
public/js/ff/tags/show.js
vendored
2
public/js/ff/tags/show.js
vendored
@@ -48,7 +48,7 @@ $(function () {
|
|||||||
}).addTo(mymap);
|
}).addTo(mymap);
|
||||||
|
|
||||||
if (doPlaceMarker) {
|
if (doPlaceMarker) {
|
||||||
var marker = L.marker([latitude, longitude]).addTo(mymap);
|
L.marker([latitude, longitude]).addTo(mymap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
2
public/js/ff/transactions/list.js
vendored
2
public/js/ff/transactions/list.js
vendored
@@ -18,7 +18,7 @@
|
|||||||
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
* along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** global: edit_selected_txt, edit_bulk_selected_txt, delete_selected_txt */
|
/** global: edit_selected_txt, edit_bulk_selected_txt, delete_selected_txt, token */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -142,6 +142,22 @@ return [
|
|||||||
'invalid_locale_settings' => 'Firefly III kann keine Geldbeträge formatieren, da auf Ihrem Server die erforderlichen Pakete fehlen. Es gibt <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">eine Anleitung</a>, wie dies behoben werden kann.',
|
'invalid_locale_settings' => 'Firefly III kann keine Geldbeträge formatieren, da auf Ihrem Server die erforderlichen Pakete fehlen. Es gibt <a href="https://github.com/firefly-iii/help/wiki/Missing-locale-packages">eine Anleitung</a>, wie dies behoben werden kann.',
|
||||||
'quickswitch' => 'Schnellauswahl',
|
'quickswitch' => 'Schnellauswahl',
|
||||||
|
|
||||||
|
// check for updates:
|
||||||
|
'update_check_title' => 'Check for updates',
|
||||||
|
'admin_update_check_title' => 'Automatically check for update',
|
||||||
|
'admin_update_check_explain' => 'Firefly III can check for updates automatically. When you enable this setting, it will contact Github to see if a new version of Firefly III is available. When it is, you will get a notification. You can test this notification using the button on the right. Please indicate below if you want Firefly III to check for updates.',
|
||||||
|
'check_for_updates_permission' => 'Firefly III can check for updates, but it needs your permission to do so. Please go to the <a href=":link">administration</a> to indicate if you would like this feature to be enabled.',
|
||||||
|
'updates_ask_me_later' => 'Ask me later',
|
||||||
|
'updates_do_not_check' => 'Do not check for updates',
|
||||||
|
'updates_enable_check' => 'Enable the check for updates',
|
||||||
|
'admin_update_check_now_title' => 'Check for updates now',
|
||||||
|
'admin_update_check_now_explain' => 'If you press the button, Firefly III will see if your current version is the latest.',
|
||||||
|
'check_for_updates_button' => 'Check now!',
|
||||||
|
'update_new_version_alert' => 'A new version is available. You are running v:your_version, the latest version is v:new_version which was released on :date.',
|
||||||
|
'update_current_version_alert' => 'You are running v:version, which is the latest available release.',
|
||||||
|
'update_newer_version_alert' => 'You are running v:your_version, which is newer than the latest release, v:new_version.',
|
||||||
|
'update_check_error' => 'An error occurred while checking for updates. Please view the log files.',
|
||||||
|
|
||||||
// search
|
// search
|
||||||
'search' => 'Suche',
|
'search' => 'Suche',
|
||||||
'search_query' => 'Abfrage',
|
'search_query' => 'Abfrage',
|
||||||
@@ -245,7 +261,7 @@ return [
|
|||||||
'apply_rule_selection' => 'Übernehmen Sie die Regel ":title" auf eine Auswahl Ihrer Transaktionen',
|
'apply_rule_selection' => 'Übernehmen Sie die Regel ":title" auf eine Auswahl Ihrer Transaktionen',
|
||||||
'apply_rule_selection_intro' => 'Regeln wie ":title" werden in der Regel nur auf neue oder aktualisierte Transaktionen angewandt, aber Sie können die Regel auch auf eine Auswahl Ihrer bestehenden Transaktionen anwenden. Dies kann nützlich sein, wenn Sie eine Regel aktualisiert haben und Sie die Änderungen benötigen, auf andere Transaktionen zu aktualisieren.',
|
'apply_rule_selection_intro' => 'Regeln wie ":title" werden in der Regel nur auf neue oder aktualisierte Transaktionen angewandt, aber Sie können die Regel auch auf eine Auswahl Ihrer bestehenden Transaktionen anwenden. Dies kann nützlich sein, wenn Sie eine Regel aktualisiert haben und Sie die Änderungen benötigen, auf andere Transaktionen zu aktualisieren.',
|
||||||
'include_transactions_from_accounts' => 'Überweisungen von diesem Konto einbeziehen',
|
'include_transactions_from_accounts' => 'Überweisungen von diesem Konto einbeziehen',
|
||||||
'applied_rule_selection' => 'Regel ": Titel" wurde auf Ihre Auswahl angewendet.',
|
'applied_rule_selection' => 'Regel ":title" wurde auf Ihre Auswahl angewendet.',
|
||||||
'execute' => 'Ausführen',
|
'execute' => 'Ausführen',
|
||||||
'apply_rule_group_selection' => 'Anwenden der Regelgruppe ":title" auf eine Auswahl Ihrer Transaktionen',
|
'apply_rule_group_selection' => 'Anwenden der Regelgruppe ":title" auf eine Auswahl Ihrer Transaktionen',
|
||||||
'apply_rule_group_selection_intro' => 'Regelgruppen wie ":title" werden in der Regel nur auf neue oder aktualisierte Transaktionen angewandt, aber Sie können die Gruppe auch auf eine Auswahl Ihrer bestehenden Transaktionen anwenden. Dies kann nützlich sein, wenn Sie eine Gruppe aktualisiert haben und Sie die Änderungen benötigen, auf andere Transaktionen zu aktualisieren.',
|
'apply_rule_group_selection_intro' => 'Regelgruppen wie ":title" werden in der Regel nur auf neue oder aktualisierte Transaktionen angewandt, aber Sie können die Gruppe auch auf eine Auswahl Ihrer bestehenden Transaktionen anwenden. Dies kann nützlich sein, wenn Sie eine Gruppe aktualisiert haben und Sie die Änderungen benötigen, auf andere Transaktionen zu aktualisieren.',
|
||||||
@@ -270,7 +286,7 @@ return [
|
|||||||
'rule_trigger_to_account_contains_choice' => 'Zielkonto enthält..',
|
'rule_trigger_to_account_contains_choice' => 'Zielkonto enthält..',
|
||||||
'rule_trigger_to_account_contains' => 'Zielkonto enthält ":trigger_value"',
|
'rule_trigger_to_account_contains' => 'Zielkonto enthält ":trigger_value"',
|
||||||
'rule_trigger_transaction_type_choice' => 'Überweisung ist vom Typ..',
|
'rule_trigger_transaction_type_choice' => 'Überweisung ist vom Typ..',
|
||||||
'rule_trigger_transaction_type' => 'Transaktion ist vom Typ ": Trigger_value"',
|
'rule_trigger_transaction_type' => 'Transaktion ist vom Typ ":trigger_value"',
|
||||||
'rule_trigger_category_is_choice' => 'Kategorie ist..',
|
'rule_trigger_category_is_choice' => 'Kategorie ist..',
|
||||||
'rule_trigger_category_is' => 'Kategorie ist ":trigger_value"',
|
'rule_trigger_category_is' => 'Kategorie ist ":trigger_value"',
|
||||||
'rule_trigger_amount_less_choice' => 'Betrag ist geringer als..',
|
'rule_trigger_amount_less_choice' => 'Betrag ist geringer als..',
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ return [
|
|||||||
'budget_keep_transactions' => 'Die eine Überweisung, die mit diesem Budget verknüpft ist, wird nicht gelöscht. | Keines der :count Budgets, die mit dieser Rechnung verknüpft sind, werden gelöscht.',
|
'budget_keep_transactions' => 'Die eine Überweisung, die mit diesem Budget verknüpft ist, wird nicht gelöscht. | Keines der :count Budgets, die mit dieser Rechnung verknüpft sind, werden gelöscht.',
|
||||||
'category_keep_transactions' => 'Die eine Überweisungen, die mit dieser Kategorie verknüpft ist, wird nicht gelöscht. | Keine der :count Kategorien, die mit dieser Rechnung verknüpft sind, werden gelöscht.',
|
'category_keep_transactions' => 'Die eine Überweisungen, die mit dieser Kategorie verknüpft ist, wird nicht gelöscht. | Keine der :count Kategorien, die mit dieser Rechnung verknüpft sind, werden gelöscht.',
|
||||||
'tag_keep_transactions' => 'Die einzige Überweisung, die mit diesem Tag verknüpft ist, wird nicht gelöscht. | Keiner der :count Tags, die mit dieser Rechnung verknüpft sind, werden gelöscht.',
|
'tag_keep_transactions' => 'Die einzige Überweisung, die mit diesem Tag verknüpft ist, wird nicht gelöscht. | Keiner der :count Tags, die mit dieser Rechnung verknüpft sind, werden gelöscht.',
|
||||||
|
'check_for_updates' => 'Check for updates',
|
||||||
|
|
||||||
'email' => 'E-Mail Adresse',
|
'email' => 'E-Mail Adresse',
|
||||||
'password' => 'Passwort',
|
'password' => 'Passwort',
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user