diff --git a/app/Support/Binder/EitherConfigKey.php b/app/Support/Binder/EitherConfigKey.php
index fc6bd59057..b46cca11ae 100644
--- a/app/Support/Binder/EitherConfigKey.php
+++ b/app/Support/Binder/EitherConfigKey.php
@@ -41,6 +41,7 @@ class EitherConfigKey
'firefly.bill_periods',
'firefly.enable_external_map',
'firefly.expected_source_types',
+ 'firefly.credit_card_types',
'app.timezone',
];
/**
diff --git a/composer.lock b/composer.lock
index acbcfd86cb..85c19850eb 100644
--- a/composer.lock
+++ b/composer.lock
@@ -1764,16 +1764,16 @@
},
{
"name": "laravel/framework",
- "version": "v8.52.0",
+ "version": "v8.53.1",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "8fe9877d52e25f8aed36c51734e5a8510be967e6"
+ "reference": "5df423c2790f32b26baee90518bb659572aa404f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/8fe9877d52e25f8aed36c51734e5a8510be967e6",
- "reference": "8fe9877d52e25f8aed36c51734e5a8510be967e6",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/5df423c2790f32b26baee90518bb659572aa404f",
+ "reference": "5df423c2790f32b26baee90518bb659572aa404f",
"shasum": ""
},
"require": {
@@ -1846,7 +1846,7 @@
"illuminate/view": "self.version"
},
"require-dev": {
- "aws/aws-sdk-php": "^3.155",
+ "aws/aws-sdk-php": "^3.186.4",
"doctrine/dbal": "^2.6|^3.0",
"filp/whoops": "^2.8",
"guzzlehttp/guzzle": "^6.5.5|^7.0.1",
@@ -1859,7 +1859,7 @@
"symfony/cache": "^5.1.4"
},
"suggest": {
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).",
+ "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.186.4).",
"brianium/paratest": "Required to run tests in parallel (^6.0).",
"doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).",
"ext-ftp": "Required to use the Flysystem FTP driver.",
@@ -1928,7 +1928,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2021-07-27T13:03:29+00:00"
+ "time": "2021-08-05T14:04:08+00:00"
},
{
"name": "laravel/passport",
@@ -4390,20 +4390,21 @@
},
{
"name": "ramsey/collection",
- "version": "1.1.4",
+ "version": "1.2.1",
"source": {
"type": "git",
"url": "https://github.com/ramsey/collection.git",
- "reference": "ab2237657ad99667a5143e32ba2683c8029563d4"
+ "reference": "eaca1dc1054ddd10cbd83c1461907bee6fb528fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/ab2237657ad99667a5143e32ba2683c8029563d4",
- "reference": "ab2237657ad99667a5143e32ba2683c8029563d4",
+ "url": "https://api.github.com/repos/ramsey/collection/zipball/eaca1dc1054ddd10cbd83c1461907bee6fb528fa",
+ "reference": "eaca1dc1054ddd10cbd83c1461907bee6fb528fa",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8"
+ "php": "^7.3 || ^8",
+ "symfony/polyfill-php81": "^1.23"
},
"require-dev": {
"captainhook/captainhook": "^5.3",
@@ -4413,6 +4414,7 @@
"hamcrest/hamcrest-php": "^2",
"jangregor/phpstan-prophecy": "^0.8",
"mockery/mockery": "^1.3",
+ "phpspec/prophecy-phpunit": "^2.0",
"phpstan/extension-installer": "^1",
"phpstan/phpstan": "^0.12.32",
"phpstan/phpstan-mockery": "^0.12.5",
@@ -4440,7 +4442,7 @@
"homepage": "https://benramsey.com"
}
],
- "description": "A PHP 7.2+ library for representing and manipulating collections.",
+ "description": "A PHP library for representing and manipulating collections.",
"keywords": [
"array",
"collection",
@@ -4451,7 +4453,7 @@
],
"support": {
"issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.1.4"
+ "source": "https://github.com/ramsey/collection/tree/1.2.1"
},
"funding": [
{
@@ -4463,20 +4465,20 @@
"type": "tidelift"
}
],
- "time": "2021-07-30T00:58:27+00:00"
+ "time": "2021-08-06T03:41:06+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.1.1",
+ "version": "4.2.0",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "cd4032040a750077205918c86049aa0f43d22947"
+ "reference": "7231612a5221f5524d3575bebdce20eeef8547a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947",
- "reference": "cd4032040a750077205918c86049aa0f43d22947",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/7231612a5221f5524d3575bebdce20eeef8547a1",
+ "reference": "7231612a5221f5524d3575bebdce20eeef8547a1",
"shasum": ""
},
"require": {
@@ -4490,26 +4492,26 @@
"rhumsaa/uuid": "self.version"
},
"require-dev": {
- "codeception/aspect-mock": "^3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0",
+ "captainhook/captainhook": "^5.10",
+ "captainhook/plugin-composer": "^5.3",
+ "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
"doctrine/annotations": "^1.8",
- "goaop/framework": "^2",
+ "ergebnis/composer-normalize": "^2.15",
"mockery/mockery": "^1.3",
"moontoast/math": "^1.1",
"paragonie/random-lib": "^2",
+ "php-mock/php-mock": "^2.2",
"php-mock/php-mock-mockery": "^1.3",
- "php-mock/php-mock-phpunit": "^2.5",
"php-parallel-lint/php-parallel-lint": "^1.1",
- "phpbench/phpbench": "^0.17.1",
+ "phpbench/phpbench": "^1.0",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12",
"phpstan/phpstan-mockery": "^0.12",
"phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^8.5",
- "psy/psysh": "^0.10.0",
- "slevomat/coding-standard": "^6.0",
+ "phpunit/phpunit": "^8.5 || ^9",
+ "slevomat/coding-standard": "^7.0",
"squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "3.9.4"
+ "vimeo/psalm": "^4.9"
},
"suggest": {
"ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
@@ -4522,7 +4524,10 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.x-dev"
+ "dev-main": "4.x-dev"
+ },
+ "captainhook": {
+ "force-install": true
}
},
"autoload": {
@@ -4538,7 +4543,6 @@
"MIT"
],
"description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
- "homepage": "https://github.com/ramsey/uuid",
"keywords": [
"guid",
"identifier",
@@ -4546,16 +4550,19 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "rss": "https://github.com/ramsey/uuid/releases.atom",
- "source": "https://github.com/ramsey/uuid"
+ "source": "https://github.com/ramsey/uuid/tree/4.2.0"
},
"funding": [
{
"url": "https://github.com/ramsey",
"type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
+ "type": "tidelift"
}
],
- "time": "2020-08-18T17:17:46+00:00"
+ "time": "2021-08-06T22:30:43+00:00"
},
{
"name": "rcrowe/twigbridge",
@@ -6376,6 +6383,85 @@
],
"time": "2021-07-28T13:41:28+00:00"
},
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.23.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "e66119f3de95efc359483f810c4c3e6436279436"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/e66119f3de95efc359483f810c4c3e6436279436",
+ "reference": "e66119f3de95efc359483f810c4c3e6436279436",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.23.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-05-21T13:25:03+00:00"
+ },
{
"name": "symfony/process",
"version": "v5.3.4",
@@ -10984,7 +11070,6 @@
"type": "github"
}
],
- "abandoned": true,
"time": "2020-09-28T06:45:17+00:00"
},
{
diff --git a/config/firefly.php b/config/firefly.php
index 1d9494be0b..9350c03a08 100644
--- a/config/firefly.php
+++ b/config/firefly.php
@@ -238,6 +238,7 @@ return [
'ccTypes' => [
'monthlyFull' => 'Full payment every month',
],
+ 'credit_card_types' => ['monthlyFull'],
'range_to_repeat_freq' => [
'1D' => 'weekly',
'1W' => 'weekly',
diff --git a/frontend/mix-manifest.json b/frontend/mix-manifest.json
index ddafe5de00..ea8b85ae3e 100644
--- a/frontend/mix-manifest.json
+++ b/frontend/mix-manifest.json
@@ -4,6 +4,7 @@
"/public/js/accounts/delete.js": "/public/js/accounts/delete.js",
"/public/js/accounts/show.js": "/public/js/accounts/show.js",
"/public/js/accounts/create.js": "/public/js/accounts/create.js",
+ "/public/js/accounts/edit.js": "/public/js/accounts/edit.js",
"/public/js/bills/index.js": "/public/js/bills/index.js",
"/public/js/bills/create.js": "/public/js/bills/create.js",
"/public/js/budgets/index.js": "/public/js/budgets/index.js",
diff --git a/frontend/src/bootstrap-basic.js b/frontend/src/bootstrap-basic.js
index b6c4373020..9ff4a456d2 100644
--- a/frontend/src/bootstrap-basic.js
+++ b/frontend/src/bootstrap-basic.js
@@ -23,5 +23,4 @@
window.$ = window.jQuery = require('jquery');
// admin stuff
-//require('bootstrap');
-
+require('bootstrap');
diff --git a/frontend/src/components/accounts/Create.vue b/frontend/src/components/accounts/Create.vue
index e752d62bda..758da4b8bb 100644
--- a/frontend/src/components/accounts/Create.vue
+++ b/frontend/src/components/accounts/Create.vue
@@ -37,6 +37,14 @@
`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,\n // making it impossible to interact with the content\n -ms-overflow-style: scrollbar;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `