Compare commits

...

1046 Commits
4.6.6 ... 4.7.0

Author SHA1 Message Date
James Cole
735222a8ed Merge branch 'release/4.7.0' 2018-01-31 07:14:15 +01:00
James Cole
66f299cd06 Update composer file. 2018-01-31 06:42:44 +01:00
James Cole
e3c5268143 Update changelog for Sandstorm. 2018-01-31 06:35:41 +01:00
James Cole
df32493d77 Final update for some translations. 2018-01-30 21:07:14 +01:00
James Cole
86faf44153 Small fixes in change log [skip ci] 2018-01-29 20:17:43 +01:00
James Cole
e2f3e4b555 Update sandstorm file list. 2018-01-29 19:56:57 +01:00
James Cole
e57ed6015c Updated composer lock file. 2018-01-29 19:31:36 +01:00
James Cole
9c34ca7fc4 Changelog for Sandstorm. 2018-01-29 19:14:58 +01:00
James Cole
7b94f4a441 Update change log. 2018-01-29 19:13:51 +01:00
James Cole
693f8d0738 Update language files. 2018-01-29 19:13:43 +01:00
James Cole
d6ecbc06bf Add Portuguese (Brazil) 2018-01-29 19:12:58 +01:00
James Cole
c31674fffc New version in Sandstorm file. 2018-01-29 19:10:29 +01:00
James Cole
b08de8cc00 Clean up config. 2018-01-29 19:09:52 +01:00
James Cole
4c503e4c7c Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii:
  Workaround IE tab order issue w/ js initial select
2018-01-29 19:09:13 +01:00
James Cole
dd4158c6b4 Expand tests 2018-01-29 19:09:00 +01:00
James Cole
5fd7ea2b96 Add code coverage. 2018-01-29 19:08:49 +01:00
James Cole
b9ff80eb5a Update changelog. 2018-01-29 19:08:26 +01:00
James Cole
afc725bbc8 Merge pull request #1148 from devlearner/login-tab-order
Workaround IE tab order issue on js initial select
2018-01-28 21:13:56 +01:00
James Cole
0342c371cc Fix debug issue caught by @devlearner. 2018-01-28 20:59:26 +01:00
devlearner
2da4e6b048 Workaround IE tab order issue w/ js initial select 2018-01-28 14:23:06 +00:00
James Cole
f50550d79c Fix unit tests 2018-01-25 20:38:50 +01:00
James Cole
3fa39a6805 Clean up view and route. 2018-01-25 19:21:58 +01:00
James Cole
3dbe6d4870 Clean up config. 2018-01-25 19:21:46 +01:00
James Cole
59c48268ab Support more icons. 2018-01-25 19:21:40 +01:00
James Cole
1f83c5195d Add view method. Clean up repository links 2018-01-25 19:21:31 +01:00
James Cole
49a95a08fe More friendly demo user message. 2018-01-25 19:02:14 +01:00
James Cole
c86c5ccfe9 Add forgotten migration [skip ci] 2018-01-25 18:55:31 +01:00
James Cole
8a2497fc67 Expand mime type and upgrade version [skip ci] 2018-01-25 18:41:51 +01:00
James Cole
7c70732247 Some light refactoring. No changes. 2018-01-25 18:41:27 +01:00
James Cole
53fc4f2740 Better link to Spectre docs. [skip ci] 2018-01-24 15:23:27 +01:00
James Cole
f3ade5621e Merge pull request #1145 from devlearner/woff2
Include Woff fonts as well
2018-01-24 14:30:57 +01:00
devlearner
ec2e08e33a Update fonts for Source Sans Pro
(Bold Italic)
2018-01-24 21:04:03 +08:00
devlearner
b9a26faa4d Update css for Source Sans Pro
(Bold Italic)
2018-01-24 12:52:48 +00:00
James Cole
1a434d0c83 Expand readme with links to contribution pages. [skip ci] 2018-01-24 12:00:41 +01:00
James Cole
9a2c6c2967 Expand test coverage. 2018-01-24 11:09:21 +01:00
James Cole
602b35d589 Breadcrumb shows the correct title. 2018-01-24 11:09:05 +01:00
James Cole
f42cd0c7c3 Give correct info about import jobs. 2018-01-24 11:08:50 +01:00
James Cole
cb81855a17 Fix #1143 2018-01-24 11:05:00 +01:00
James Cole
89cf351ad0 add some fixes for #1111 2018-01-24 05:17:26 +01:00
devlearner
3f70a3f06c Added woff fonts 2018-01-24 01:10:04 +08:00
devlearner
9df360f010 Updated woff2 fonts
Roboto: Last modified 2017-10-16 (v18)
Lato: Last modified 2017-10-11 (v14)
2018-01-24 00:59:27 +08:00
James Cole
9a26d6d49f Fix #1140 2018-01-22 18:37:59 +01:00
James Cole
bc4d801c12 Fix #1141 2018-01-22 18:16:50 +01:00
James Cole
f2d8e13576 Fix #1142 2018-01-22 18:14:30 +01:00
James Cole
ec0b5db973 Update change log. 2018-01-21 20:04:53 +01:00
James Cole
46a0d1ce35 Update change log. 2018-01-21 20:03:29 +01:00
James Cole
cb81446ca6 Clean up debug code 2018-01-21 20:03:13 +01:00
James Cole
9350b4939c Make some file names lowercase. 2018-01-21 19:47:19 +01:00
James Cole
33e8c8c415 Make some file names lowercase. 2018-01-21 19:46:56 +01:00
James Cole
48fa86cc54 Improve some test coverage. 2018-01-21 18:06:57 +01:00
James Cole
d5e6d1c578 Remove reference to website from read me. 2018-01-21 11:10:08 +01:00
James Cole
0bc688795a Small update in update routine. 2018-01-21 11:09:55 +01:00
James Cole
eb76ed5591 New text in contributing [skip ci] 2018-01-21 09:10:36 +01:00
James Cole
839cbaf37a Updated read me file [skip ci] 2018-01-21 00:08:14 +01:00
James Cole
788fc9204d Update readme [skip ci] 2018-01-21 00:06:40 +01:00
James Cole
3e3e304ef3 Updated read me file [skip ci] 2018-01-20 23:59:10 +01:00
James Cole
447d453fdc Update composer lock file [skip ci] 2018-01-20 07:15:39 +01:00
James Cole
36fd7884f3 Update demo pages. 2018-01-20 07:15:26 +01:00
James Cole
54da08b2f2 Change settings so demo user can use Spectre. 2018-01-20 06:40:23 +01:00
James Cole
3f02072ae9 Update read me[skip ci] 2018-01-20 06:40:05 +01:00
James Cole
a9c117703b Update composer.json 2018-01-19 08:35:25 +01:00
James Cole
c137255155 Update .scrutinizer.yml 2018-01-19 08:23:31 +01:00
James Cole
e7829ecc38 Committed bad help JS. [skip ci] 2018-01-17 14:26:31 +01:00
James Cole
529bdafa31 Code climate file. 2018-01-17 13:04:43 +01:00
James Cole
e2af0caa41 Fix tests 2018-01-17 12:29:00 +01:00
James Cole
80f96abf08 Fix notes in link types. 2018-01-17 10:40:44 +01:00
James Cole
70da38193f Fix issue with budget chart. 2018-01-17 10:17:49 +01:00
James Cole
13df973873 Fix query cache. 2018-01-17 10:03:47 +01:00
James Cole
3ccb791674 Various code cleanup. [skip ci] 2018-01-17 09:32:18 +01:00
James Cole
ccf1a6c182 Fix #1134 2018-01-17 09:22:45 +01:00
James Cole
493543c1f5 Update language files [skip ci] 2018-01-17 06:43:04 +01:00
James Cole
5f5725e0e3 Explicit language tag in layout 2018-01-17 06:25:32 +01:00
James Cole
107dd42957 Update English language files [skip ci] 2018-01-17 06:24:50 +01:00
James Cole
a9f3fe4d3a Remove memcached experiment. 2018-01-16 22:01:55 +01:00
James Cole
3e62e17b9e Add some echo to Sandstorm scripts. 2018-01-16 21:34:36 +01:00
James Cole
57855b1930 Remove references to unused cache thing. 2018-01-16 21:09:27 +01:00
James Cole
aa9e8227bb Smal changes in Sandstorm configuration. [skip ci] #1130 2018-01-15 17:48:20 +01:00
James Cole
a80f083b6e Catch errors in DB seeds. 2018-01-15 17:13:23 +01:00
James Cole
474e066d4a Expand debug message [skip ci] 2018-01-14 19:59:05 +01:00
James Cole
4428ccefbf Expand debug message [skip ci] 2018-01-14 19:58:39 +01:00
James Cole
d568a6c8a9 First version of actual update check. 2018-01-14 19:56:18 +01:00
James Cole
97e9ad6cb2 Small updates in read me. 2018-01-14 19:49:29 +01:00
James Cole
00607d2a6d Code for #1040 2018-01-14 19:36:24 +01:00
James Cole
c2a425121d Code for #1040 2018-01-14 16:32:26 +01:00
James Cole
435694e9ea Code for #989 2018-01-14 10:57:27 +01:00
James Cole
f59135a9ca Code for #989 2018-01-14 10:48:17 +01:00
James Cole
102b106402 Different “drop up” menu. 2018-01-13 18:52:06 +01:00
James Cole
5c27c8e633 Multi currency net worth box. 2018-01-13 18:40:28 +01:00
James Cole
edd5215b21 Different icon for view. [skip ci] 2018-01-13 18:07:25 +01:00
James Cole
94b173ae6b New language strings. 2018-01-13 18:02:41 +01:00
James Cole
7d96b281b6 Add buttons to views 2018-01-13 18:01:53 +01:00
James Cole
a5515ac89f Update tests. 2018-01-13 10:36:49 +01:00
James Cole
fb863b0bf2 Improve step count for spectre imports. 2018-01-13 07:52:35 +01:00
James Cole
50882f309b Make sure number of steps is always correct. 2018-01-13 07:36:44 +01:00
James Cole
ce854fbb43 Catch error when trying to read (non-existent) logs. 2018-01-12 21:43:04 +01:00
James Cole
6799268ec4 Add intval just in case. 2018-01-12 21:31:39 +01:00
James Cole
6fe5ce0485 Expand budget report #1106 2018-01-12 21:08:59 +01:00
James Cole
cbeaf8e16a Expand tag report #1106 2018-01-12 21:02:27 +01:00
James Cole
04de4c9b36 Expand category report #1106 2018-01-12 20:53:18 +01:00
James Cole
517731cb59 Extra buttons 2018-01-12 20:37:56 +01:00
James Cole
e34e43173c Fix #1132 2018-01-12 20:37:39 +01:00
James Cole
79d6055a78 Fix #1131 2018-01-12 20:32:09 +01:00
James Cole
7ac4d2a2f4 Various new strings [skip ci] 2018-01-12 18:44:59 +01:00
James Cole
4984eda320 Clean up view HTML 2018-01-12 18:42:48 +01:00
James Cole
89e0791e2f Add button to create transaction. 2018-01-12 18:42:25 +01:00
James Cole
922d487821 Update icon [skip ci] 2018-01-11 21:27:24 +01:00
James Cole
4b789979ac Fix 2FA check #1125 2018-01-11 20:56:42 +01:00
James Cole
554b38ccff Code for #1126 2018-01-11 20:49:55 +01:00
James Cole
9614310208 Extra button for #1124 2018-01-11 19:08:01 +01:00
James Cole
d9ec3ac354 Code for #1124 2018-01-11 19:06:46 +01:00
James Cole
f326f08f7b Fix #1088 2018-01-11 18:58:33 +01:00
James Cole
0ae8418f32 Fix tests. 2018-01-10 20:07:47 +01:00
James Cole
309f9cd076 Add new roles 2018-01-10 19:59:40 +01:00
James Cole
61f5ed3874 Fix check for column roles. 2018-01-10 19:06:27 +01:00
James Cole
91178d2604 Various cleanup in import. 2018-01-10 18:18:49 +01:00
James Cole
87dae6ea18 Expand some code for Spectre import. 2018-01-10 16:49:32 +01:00
James Cole
2e495c38d1 Make env files more readable. 2018-01-10 14:37:40 +01:00
James Cole
c2987aaf4c Update docker config #1081 2018-01-10 13:15:12 +01:00
James Cole
f4f4eecb7b Add routes to ignore. [skip ci] 2018-01-10 12:42:32 +01:00
James Cole
84d9287251 Remove unused route [skip ci] 2018-01-10 12:42:17 +01:00
James Cole
b71f334744 Small rewrite in readme [skip ci] 2018-01-10 12:42:01 +01:00
James Cole
ad306e4d01 Strings for #1116 (help text) 2018-01-10 08:03:37 +01:00
James Cole
e40d4ef829 Add strings for #1116 to intro page. 2018-01-10 07:57:36 +01:00
James Cole
48c16c3dcc Clean up binders. 2018-01-10 07:51:47 +01:00
James Cole
c045193246 Remove unnecessary routes. 2018-01-10 07:29:55 +01:00
James Cole
a816e59a97 Small update in readme [skip ci] 2018-01-10 07:19:28 +01:00
James Cole
892074eaf2 Final touches on readme [skipci] 2018-01-09 20:24:45 +01:00
James Cole
3e501e429d Fix link to softalucous [skip ci] 2018-01-09 20:23:31 +01:00
James Cole
0f40accb4c Expand links. [skipci] 2018-01-09 20:22:46 +01:00
James Cole
3dae6c99a4 Fix badges. [skipci] 2018-01-09 20:17:58 +01:00
James Cole
b185c83597 Update read me file. [skip ci] 2018-01-09 20:16:17 +01:00
James Cole
ef6b4120f1 Lower case some file names. 2018-01-09 19:27:12 +01:00
James Cole
a43eef01fc Lower case some file names. 2018-01-09 19:26:49 +01:00
James Cole
2cb9aa537f Experimental support for CodeCov. 2018-01-09 17:52:18 +01:00
James Cole
2edd49a8b4 First version that supports Spectre. 2018-01-08 20:20:45 +01:00
James Cole
a57554d380 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii:
  Fix charts in IE
2018-01-08 20:20:14 +01:00
James Cole
c89486b6d9 Expand Spectre import code. 2018-01-08 19:21:00 +01:00
James Cole
f737cb7235 Update language files for #1109 2018-01-08 19:20:41 +01:00
James Cole
f1fe169553 Disable Spectre again. 2018-01-08 19:19:17 +01:00
James Cole
2fc760780e Add support for Russian. 2018-01-08 19:19:03 +01:00
James Cole
8c3290bf6f Merge pull request #1107 from devlearner/patch-1
Fix charts in Internet Explorer
2018-01-08 10:21:09 +01:00
devlearner
495158b9c9 Fix charts in IE
since IE apparently doesn't support arrow function expression (and throws a syntax error)
2018-01-08 07:49:32 +00:00
James Cole
f9fc9b1889 Spectre should not be enabled. [skip ci] 2018-01-07 16:49:49 +01:00
James Cole
11ff2ab9d1 Debug controller cannot be accessed by demo user. 2018-01-07 12:53:20 +01:00
James Cole
52b138e6b2 Fix error in read me [skip ci] 2018-01-07 12:43:02 +01:00
James Cole
3562ec1f79 Merge branch 'release/4.6.13' 2018-01-07 12:40:54 +01:00
James Cole
943b4de6dc Update Sandstorm file list. 2018-01-07 12:29:18 +01:00
James Cole
4097f51f69 Updated composer file. 2018-01-07 12:28:43 +01:00
James Cole
cad5b2cae9 Final translations before release. 2018-01-07 12:20:05 +01:00
James Cole
8bb4b0b9b2 Make sure log stays small. 2018-01-06 20:26:21 +01:00
James Cole
9bcd1ed807 Make sure file content is trimmed. 2018-01-06 19:17:47 +01:00
James Cole
d7b1892bda Catch when no amount info is present. 2018-01-06 19:17:35 +01:00
James Cole
ea0980ba83 Update Sandstorm file list. 2018-01-06 16:27:20 +01:00
James Cole
b479a3ef99 Update change log, composer files. 2018-01-06 16:10:02 +01:00
James Cole
600e15d42f Jump back a version. 2018-01-06 15:48:44 +01:00
James Cole
824959e71a Fix form thing [skip ci] 2018-01-06 14:19:30 +01:00
James Cole
cfd8d231fb Update logging for #1089 [skip ci] 2018-01-06 12:21:24 +01:00
James Cole
87c3dc2ecc Improve comparisons for #1089 2018-01-06 12:20:02 +01:00
James Cole
590f0a83ea Code for #1098 2018-01-06 11:56:20 +01:00
James Cole
65e518856b Add warning message to index. 2018-01-06 10:25:21 +01:00
James Cole
469313eca7 Commit merge. 2018-01-06 10:12:43 +01:00
James Cole
f13f378d7f Merge pull request #1093 from jinformatique/patch-1
create .htaccess file
2018-01-06 10:10:41 +01:00
James Cole
76d8017be5 Small extension on import account, for testing mostly. 2018-01-06 09:33:28 +01:00
James Cole
af1bdc0c2c Expand debug view. 2018-01-06 09:33:06 +01:00
James Cole
6ac1e05e60 Clear cache sooner for #1096 2018-01-06 07:42:03 +01:00
James Cole
7fa937e80b Fixed tests to account for issue fixed by #1097 2018-01-06 07:33:30 +01:00
James Cole
ed0e14aee5 Merge pull request #1097 from kelvinhammond/patch-1
Fix issue with accounts in select map not matching
2018-01-06 07:23:21 +01:00
Kelvin
e300c1aab4 Fix issue with accounts in select map not matching
When mapping Opposing Accounts the select input's values are incorrect and do not match account ids.
2018-01-06 00:40:17 -05:00
James Cole
9e1586878b Test some preprocessors. 2018-01-05 17:51:05 +01:00
James Cole
5d54939bd4 Expand read me. 2018-01-05 17:29:57 +01:00
James Cole
3e9f98b43e Expand test coverage. 2018-01-05 17:29:42 +01:00
James Cole
c329ffa545 Updated tests and views 2018-01-05 07:54:10 +01:00
James Cole
d3cad66b69 Improve tests for import. 2018-01-05 07:41:26 +01:00
James Cole
246af608d3 Update repository to fix #972 2018-01-04 22:44:47 +01:00
James Cole
e7debc5466 Rewrote importer to be more clean about the stage it is in. 2018-01-04 19:33:16 +01:00
James Cole
5866300ac1 Rename and move some files. 2018-01-04 18:34:51 +01:00
J'informatique
c1221aef4b create .htaccess file
- To force HTTPS
- To hide directory listing
- To prevent access to .env and other files
2018-01-04 12:29:33 +01:00
James Cole
bc879a3872 Updated language files [skip ci] 2018-01-04 10:31:49 +01:00
James Cole
2b4a3d463b Update composer files. 2018-01-04 10:25:24 +01:00
James Cole
6b59b6de6e Fix some things in import routine. 2018-01-04 08:59:39 +01:00
James Cole
3ce5ccb98a Another fix for #1092 2018-01-04 08:09:26 +01:00
James Cole
a1b83def4f New strings for translation. [skip ci] 2018-01-03 20:37:11 +01:00
James Cole
5177619301 Lots of new code for Spectre import. 2018-01-03 19:17:30 +01:00
James Cole
4e0319bacc Fix for #1092 2018-01-03 07:35:29 +01:00
James Cole
30f64af55f Experimental cross OS command for #1083 [skip ci] 2018-01-02 20:08:56 +01:00
James Cole
cdeabaaf9a Extra fix to cover for #1091 2018-01-02 19:53:22 +01:00
James Cole
fa676f60fb Internationalise several forms for #1090 2018-01-02 17:25:59 +01:00
James Cole
4ec123a19a Add some logging for #1089 2018-01-02 16:25:47 +01:00
James Cole
de35bde048 Some updated language strings. 2018-01-02 15:18:22 +01:00
James Cole
3f786856f3 Expand code for Spectre login. 2018-01-02 15:17:31 +01:00
James Cole
d49aecdf49 Update tests. 2018-01-02 07:14:00 +01:00
James Cole
6713597621 Fix #1087 2018-01-02 06:39:34 +01:00
James Cole
09bd55675d Fix Turkish string [skip ci] 2018-01-01 16:46:56 +01:00
James Cole
d87dda40ee Clean up some JS and views. 2018-01-01 16:46:41 +01:00
James Cole
06cfc391a1 Add cast to string to fix chart. [skip ci] 2018-01-01 16:46:15 +01:00
James Cole
bea06a06a1 Various updated sentences and strings in Polish. 2018-01-01 15:38:09 +01:00
James Cole
06fa2ab7a1 Update string in Spectre import, as suggested by @pkoziol 2018-01-01 15:37:15 +01:00
James Cole
4926011f3f Fix #1085 2018-01-01 15:33:38 +01:00
James Cole
0455f8658d Move debug to new controller, add some fields. 2018-01-01 15:33:24 +01:00
James Cole
4773021ff0 Expand debug controller. 2017-12-31 11:38:21 +01:00
James Cole
e2bd1f6544 Update breadcrumbs for PHP 7.2 #1079 2017-12-31 11:10:36 +01:00
James Cole
b73884160a Fix account controller + coverage. 2017-12-31 10:40:27 +01:00
James Cole
8bcfa729b6 Updated language files. 2017-12-31 09:36:36 +01:00
James Cole
f8dda5b4a6 Added Turkish. 2017-12-31 09:10:38 +01:00
James Cole
c0961d438d Rename a view. 2017-12-31 09:01:27 +01:00
James Cole
d9dd00eb39 Fix #1074 2017-12-30 21:04:04 +01:00
James Cole
6d9baaa499 Updated language files. [skip ci] 2017-12-30 20:43:18 +01:00
James Cole
b37ed5ab23 Code for #1077 2017-12-30 20:07:49 +01:00
James Cole
3fba741f1b Update views and routes for #1078 2017-12-30 14:25:11 +01:00
James Cole
73051d7d42 Add budget list, expand view. #1078 2017-12-30 13:05:19 +01:00
James Cole
717e101b80 Start updating view. 2017-12-30 12:54:19 +01:00
James Cole
08f28d48af Refer to new views. 2017-12-30 12:44:10 +01:00
James Cole
ec2f693575 Update breadcrumb #1078 2017-12-30 12:43:57 +01:00
James Cole
3cc1bf52cb Move view. #1078 2017-12-30 12:43:13 +01:00
James Cole
5da9f0cfb6 Fix #1080 2017-12-30 12:33:44 +01:00
James Cole
64624bea1d Rename language string #1078 2017-12-30 12:24:28 +01:00
James Cole
dc95395f42 Clean up buttons #1078 2017-12-30 12:23:26 +01:00
James Cole
273f188101 Fix error in route (my error) #1078 2017-12-30 12:23:16 +01:00
James Cole
a6b22b5156 Remove unused language string. #1078 2017-12-30 12:23:03 +01:00
James Cole
9d8a4cd934 Clean up JS code #1078 (also old code removed) 2017-12-30 12:22:49 +01:00
James Cole
c73dd5f664 Update routes to reflect change. #1078 2017-12-30 12:14:10 +01:00
James Cole
7ff8c5e966 Move bulk methods to their own controller. #1078 2017-12-30 12:13:13 +01:00
James Cole
1c11aa13b8 Merge commit for PR #1078 2017-12-30 11:56:02 +01:00
James Cole
0c2ec58366 Merge pull request #1078 from vicmosin/issues/509
Introduced bulk edit endpoint for bulk edit of categories and tags
2017-12-30 11:54:06 +01:00
Victor Mosin
2955d7148f Merge branch 'develop' into issues/509
# Conflicts:
#	public/js/ff/transactions/list.js
2017-12-30 11:49:42 +01:00
James Cole
f9d87cb9f6 Remove unused translations. 2017-12-30 09:47:37 +01:00
Victor Mosin
50fcc42e99 Fixed wrong counter value 2017-12-30 09:39:47 +01:00
Victor Mosin
805456d032 Introduced bulk edit endpoint for bulk edit of categories and tags 2017-12-30 09:21:28 +01:00
James Cole
a9df7906eb Update JS and CSS libraries. 2017-12-30 06:51:16 +01:00
James Cole
59d732cba7 Merge branch 'release/4.6.12' 2017-12-29 20:06:56 +01:00
James Cole
61099bef27 Last changes for Sandstorm. 2017-12-29 20:02:33 +01:00
James Cole
dca44f1588 Code for new release. 2017-12-29 19:55:15 +01:00
James Cole
87174ddbb3 Fix language strings. 2017-12-29 19:35:51 +01:00
James Cole
c5cc101f4b Fix language strings. 2017-12-29 19:29:58 +01:00
James Cole
071c4286a7 Add a test for the Rabobank converter. 2017-12-29 12:27:29 +01:00
James Cole
7603fc0436 Some language updates. 2017-12-29 09:35:40 +01:00
James Cole
c7850f9f1a Update some French strings. 2017-12-29 09:32:58 +01:00
James Cole
c0eebb2b08 Updated languages. 2017-12-29 09:13:46 +01:00
James Cole
87147c37ae Clean up language. 2017-12-29 09:06:07 +01:00
James Cole
3815f9836f Various code cleanup. 2017-12-29 09:05:35 +01:00
James Cole
cf66ae61e1 Add extra info line. 2017-12-29 07:25:30 +01:00
James Cole
962324c3f7 Expand test coverage. 2017-12-28 20:06:16 +01:00
James Cole
bd3e262273 Expand coverage. 2017-12-28 19:55:10 +01:00
James Cole
fa65035664 make sure mocked class accepts all arguments. 2017-12-28 19:47:58 +01:00
James Cole
ca1b6046f3 Test update checker. 2017-12-28 19:16:27 +01:00
James Cole
128085963f Small update to update checker. 2017-12-28 19:03:15 +01:00
James Cole
67cc03e4dd More code for spectre. 2017-12-28 18:39:30 +01:00
James Cole
ca4db81dbd First code to check for new version. 2017-12-28 18:39:17 +01:00
James Cole
a10672a683 Progress for Spectre import. 2017-12-28 18:38:59 +01:00
James Cole
0977d8d631 Fix #1070 2017-12-28 18:28:22 +01:00
James Cole
42676746a2 Remove Spectre table. 2017-12-28 18:26:08 +01:00
James Cole
ae7933c8c9 use config, not preferences, first tests. 2017-12-28 11:57:38 +01:00
James Cole
b65e1e022e First code for #1050 2017-12-28 11:38:40 +01:00
James Cole
9ab3848755 New binary file that doesn’t look like a zip file in PHP7.2 2017-12-28 09:53:37 +01:00
James Cole
986d7de906 Code for #1040 2017-12-28 09:53:21 +01:00
James Cole
eda1673518 Also test PHP7.2 2017-12-27 22:29:25 +01:00
James Cole
97cde38d8f Create logins. 2017-12-27 18:34:03 +01:00
James Cole
5ba03bd222 Fix #1066 2017-12-27 18:11:22 +01:00
James Cole
a14ae02c27 Expand Spectre code. 2017-12-27 17:22:44 +01:00
James Cole
deebdef04d Updated language files [skip ci] 2017-12-27 15:58:03 +01:00
James Cole
e881bb55a7 Improve code coverage. 2017-12-26 17:34:59 +01:00
James Cole
9e3f31f2f0 Improve testing of middleware. 2017-12-26 17:33:53 +01:00
James Cole
f7652e7f01 Fix data export. 2017-12-26 08:32:00 +01:00
James Cole
5289f3e4c2 Limit export controller for demo users. 2017-12-25 15:31:57 +01:00
James Cole
01818af963 Expand binder test. 2017-12-25 15:30:50 +01:00
James Cole
58eaf3bccc Update code to match route binder. 2017-12-25 10:34:32 +01:00
James Cole
a3ec741d67 Updated code coverage, improved binder code. 2017-12-25 09:44:46 +01:00
James Cole
5cb948d0f3 Currency code test. 2017-12-25 09:00:09 +01:00
James Cole
56ae279c96 Code coverage ignore instruction is case sensitive. 2017-12-25 08:48:49 +01:00
James Cole
bf390b65d9 Replace Laravel binder with own binder. This will save in queries and increase security. 2017-12-25 08:45:23 +01:00
James Cole
96ccce5db3 Expand tests. 2017-12-24 11:29:16 +01:00
James Cole
d4aee258c4 Update language to fix #1064 2017-12-23 22:07:39 +01:00
James Cole
7f8e736928 Expand read me. 2017-12-23 22:03:06 +01:00
James Cole
f85bdcebaf Expand test coverage 2017-12-23 22:02:54 +01:00
James Cole
f6096339cb Fix #1063 2017-12-23 22:02:42 +01:00
James Cole
f6bd17c70b Update languages and language config. 2017-12-23 22:02:29 +01:00
James Cole
6a05ec98f4 Update job thing. 2017-12-23 21:30:30 +01:00
James Cole
c60ee14b86 Better context for language strings. 2017-12-23 21:29:05 +01:00
James Cole
26f196a067 Finally remove incomplete test flag 2017-12-23 21:05:12 +01:00
James Cole
93c463c349 Fix all tests after large composer update. 2017-12-23 20:46:52 +01:00
James Cole
59ea4a0364 Update packages. 2017-12-23 17:51:45 +01:00
James Cole
df406dd794 Update most, if not all dependencies. 2017-12-23 17:43:13 +01:00
James Cole
08b743ddcb Expand test coverage. 2017-12-23 17:42:07 +01:00
James Cole
8bd76d1ff0 Various code cleanup. 2017-12-22 18:32:43 +01:00
James Cole
f13a93348f Updated readme [skip ci] 2017-12-22 07:47:50 +01:00
James Cole
b0ecdfe01d Fix pagination of account lists for issue #1040 2017-12-21 21:18:30 +01:00
James Cole
4b869f0d9e Middleware does not fire when user is not logged in. 2017-12-21 19:55:28 +01:00
James Cole
707af8bb4e Code for #1045 2017-12-21 19:18:53 +01:00
James Cole
840705f793 No need to unset non-existing variable #1059 2017-12-21 07:59:22 +01:00
James Cole
36c8275f5e Fix #1061 2017-12-20 20:07:57 +01:00
James Cole
62a4af8607 Expand fix for #1059 [skip ci] 2017-12-19 21:56:29 +01:00
James Cole
46f894c09b Fix #1059 2017-12-19 21:54:15 +01:00
James Cole
e8f9796fc5 Make sure language files are up to date [skip ci] 2017-12-19 19:35:54 +01:00
James Cole
a69aad878e Fix #1056 2017-12-19 19:25:50 +01:00
James Cole
e21e339cb0 Fix some spelling errors. 2017-12-19 18:53:50 +01:00
James Cole
9ede6755c5 Update language files [skip ci] 2017-12-19 05:24:14 +01:00
James Cole
34fc9bc50a Fix Spectre, first code to create customer. 2017-12-19 05:20:37 +01:00
James Cole
79f700c622 Catch query exception 2017-12-19 05:20:05 +01:00
James Cole
ac04f77d94 Expand issue template 2017-12-19 05:19:54 +01:00
James Cole
9e8d7b18fa Disable not working imports [skip ci] 2017-12-17 19:24:43 +01:00
James Cole
3f62cf512f Limit some upload functions for demo users. 2017-12-17 19:22:34 +01:00
James Cole
51728efba1 Various cleanup [skip ci] 2017-12-17 19:06:11 +01:00
James Cole
c7d4ff6f27 Expand test code. 2017-12-17 18:23:10 +01:00
James Cole
c1e1da12c2 Fix division by zero. 2017-12-17 14:58:33 +01:00
James Cole
859b6fcea8 Update copyright [skip ci] 2017-12-17 14:44:46 +01:00
James Cole
1f6e42afd9 Update copyright [skip ci] 2017-12-17 14:44:05 +01:00
James Cole
ef3bc07249 Update copyright [skip ci] 2017-12-17 14:43:34 +01:00
James Cole
6c3204a8ce Update copyright [skip ci] 2017-12-17 14:43:13 +01:00
James Cole
250da33fd7 Update copyright [skip ci] 2017-12-17 14:42:49 +01:00
James Cole
dfda29cec3 Update copyright [skip ci] 2017-12-17 14:42:33 +01:00
James Cole
085876dd83 Update copyright [skip ci] 2017-12-17 14:42:21 +01:00
James Cole
ff9ad859b3 Update copyright [skip ci] 2017-12-17 14:41:58 +01:00
James Cole
78335e5814 Expand tests, do code cleanup. 2017-12-17 14:30:53 +01:00
James Cole
b08af77c98 Fixed a lot of tests and associated code. 2017-12-17 14:06:14 +01:00
James Cole
7d348f25ac Expand import routine to work over command line. 2017-12-16 20:47:08 +01:00
James Cole
22535c0e43 Last steps for import, in user interface. 2017-12-16 20:21:05 +01:00
James Cole
1d58d519a0 Unrelated code cleanup. 2017-12-16 19:48:31 +01:00
James Cole
8176356509 New code for import routine, part 3 2017-12-16 19:47:14 +01:00
James Cole
9086259a65 Small code change for controllers. 2017-12-16 19:46:36 +01:00
James Cole
66ee382da0 Lots of new code for the import routine part 2 2017-12-16 17:19:10 +01:00
James Cole
84b6708260 Massive rewrite for import routine, part 1. 2017-12-16 08:03:35 +01:00
James Cole
985cc100e2 Code to fix #964 2017-12-15 12:59:21 +01:00
James Cole
3d0ecaa8d2 Heroku composer [skip ci] 2017-12-15 11:19:51 +01:00
James Cole
009c5a438c Heroku composer [skip ci] 2017-12-15 11:18:14 +01:00
James Cole
c3af8fefde Better check for Heroku [skip ci] 2017-12-15 11:15:22 +01:00
James Cole
1b116e3a1d Update composer for heroku [skip ci] 2017-12-15 11:14:07 +01:00
James Cole
76632f5bae Update composer file [skip ci] 2017-12-15 11:06:33 +01:00
James Cole
ee6030bc62 Update composer file [skip ci] 2017-12-15 11:02:49 +01:00
James Cole
2a000d432f Update composer file [skip ci] 2017-12-15 10:59:06 +01:00
James Cole
7557d4d3cb Clean up docker compose file. 2017-12-15 10:05:37 +01:00
James Cole
54ecfac550 New docker related files. 2017-12-15 09:16:41 +01:00
James Cole
11b5a0294e Small changes in templates [skip ci] 2017-12-13 18:46:30 +01:00
James Cole
9264f1e9b9 Fix #1051 2017-12-13 17:09:55 +01:00
James Cole
044af254f3 Update links to new site. 2017-12-13 14:15:44 +01:00
James Cole
e60bbc78e6 Forgot to include include command. 2017-12-13 11:07:05 +01:00
James Cole
06ddfe3d41 Limit routes for demo user. 2017-12-13 10:59:48 +01:00
James Cole
df458b3913 Update composer file and version info. 2017-12-12 21:13:50 +01:00
James Cole
fc4165b800 Make sure new CSV reader is compatible with specifics #1015 2017-12-12 21:05:16 +01:00
James Cole
44496707fb Remove some comments [skip ci] 2017-12-12 20:53:40 +01:00
James Cole
bad889d450 Update ING description for #1015 2017-12-12 20:53:16 +01:00
James Cole
1b4edae4d9 Final code for #384 2017-12-12 18:22:29 +01:00
James Cole
cacd889193 New translations [skip ci] 2017-12-11 19:42:57 +01:00
James Cole
5a7cf04a7c Update import index [skip ci] 2017-12-11 15:17:02 +01:00
James Cole
fd7a293f4b Merge branch 'spectre' into develop
* spectre:
  Fix encryption.
  Can handle some mandatory fields (not all).
  More code for Spectre import.
  Initial code to get providers from Spectre.
  Exceptions when class does not exist.
2017-12-11 14:53:01 +01:00
James Cole
f35aa6a035 Remove GA event codes. 2017-12-11 14:52:30 +01:00
James Cole
d1c8e54798 Null pointer in verify routine. 2017-12-11 10:59:28 +01:00
James Cole
5d9e547d05 Allow profile index [skip ci] 2017-12-11 10:28:10 +01:00
James Cole
c91bb5a565 Update admin rights for demo user. 2017-12-11 10:26:44 +01:00
James Cole
1b5b79897a Fix demo user rights in admin. 2017-12-11 10:23:29 +01:00
James Cole
d7f2b7cd63 Remove unused overview #384 2017-12-11 05:57:07 +01:00
James Cole
12c15ea590 Fix #1049 2017-12-10 21:12:04 +01:00
James Cole
d3a6ccacf0 Fix earned by category view [skip ci] 2017-12-10 20:10:04 +01:00
James Cole
6fed773cb8 Fix view [skip ci] 2017-12-10 20:07:23 +01:00
James Cole
4a1e4bb821 Decrypt object names. [skip ci] 2017-12-10 20:05:56 +01:00
James Cole
0c529cb7e7 Updated code for #384 2017-12-10 20:03:10 +01:00
James Cole
b1b6fe553a Fix tests, expand flush routine. 2017-12-10 18:09:36 +01:00
James Cole
54c449f11b Some code to get #384 working. 2017-12-10 17:55:06 +01:00
James Cole
b93a96db23 Expand code for #384 2017-12-10 12:00:08 +01:00
James Cole
06683c57dd Update verify routine for issue #1048 2017-12-10 11:52:14 +01:00
James Cole
6ad90c7a87 Update copyright stuff [skip ci] 2017-12-10 09:02:26 +01:00
James Cole
2a87add745 New stuff for report. 2017-12-10 08:56:20 +01:00
James Cole
089214709f Remove wrong copyright blocks [skip ci] 2017-12-10 08:56:11 +01:00
James Cole
9bf891f3fb Add newline to file. [skip ci] 2017-12-09 21:50:23 +01:00
James Cole
583f376f11 Updated composer file. 2017-12-09 21:49:33 +01:00
James Cole
4998eaeaf1 Code for #384 2017-12-09 21:49:19 +01:00
James Cole
3cf6386bb6 Fix encryption. 2017-12-09 20:08:08 +01:00
James Cole
2365fb69b4 Can handle some mandatory fields (not all). 2017-12-09 20:02:26 +01:00
James Cole
1fec7d6271 Fix #1047 2017-12-09 19:19:15 +01:00
James Cole
17684a3ab3 Fix #1046 2017-12-09 19:14:31 +01:00
James Cole
e488d7d84c More code for Spectre import. 2017-12-09 19:13:00 +01:00
James Cole
aa9500f5ad Initial code to get providers from Spectre. 2017-12-09 12:23:28 +01:00
James Cole
0774258516 Exceptions when class does not exist. 2017-12-09 12:08:24 +01:00
James Cole
f231edaa6d Update composer.json for #1045 2017-12-09 09:23:25 +01:00
James Cole
e47b218fc1 Merge branch 'release/4.6.11.1' 2017-12-08 19:53:15 +01:00
James Cole
93bdecb07c Remove unused lib. 2017-12-08 19:46:44 +01:00
James Cole
5f6f59a851 Update list of languages to match available languages. 2017-12-08 19:40:30 +01:00
James Cole
6469c7f537 Fix logging in Sandstorm. 2017-12-08 19:35:22 +01:00
James Cole
80f72d9dd7 Sort currencies. 2017-12-08 19:35:09 +01:00
James Cole
84d0ec062e New files for coming release. 2017-12-08 17:47:04 +01:00
James Cole
9220c0de16 New translations [skip ci] 2017-12-07 19:00:26 +01:00
James Cole
db77a83ac5 Fix docker file. 2017-12-07 18:46:52 +01:00
James Cole
5da8c2200a Fixes #1038 2017-12-07 16:16:48 +01:00
James Cole
cbde9cdae9 This should fix tests. 2017-12-06 19:41:51 +01:00
James Cole
343eb3a768 Fix null pointer [skip ci] 2017-12-06 19:21:17 +01:00
James Cole
9a9257176a Restore log routine. 2017-12-05 20:50:19 +01:00
James Cole
e4a0a718d1 Code that add extra check for #1039 2017-12-05 20:50:04 +01:00
James Cole
1b56765da3 Touch journals so issue #1036 is fixed. 2017-12-04 20:57:33 +01:00
James Cole
462439a5ab Better chart display for #1034 2017-12-03 09:27:54 +01:00
James Cole
7158dfe29a Hide reconcile button #1032 2017-12-03 09:01:39 +01:00
James Cole
f300c66143 Fix #1033 2017-12-03 08:57:23 +01:00
James Cole
553586a159 Remove reference to incomplete translations [skip ci] 2017-12-02 07:53:23 +01:00
James Cole
afd8896896 Update language related stuff. 2017-12-02 07:42:12 +01:00
James Cole
c9f188e5a6 Remove incomplete languages from code base [skip ci] 2017-12-02 07:28:24 +01:00
James Cole
3ad833b3ae Will no longer show incomplete languages. [skip ci] 2017-12-02 07:28:03 +01:00
James Cole
8cfd19855a Various new translations [skip ci] 2017-12-02 07:24:51 +01:00
James Cole
14deade6a4 Whoops [skip ci] 2017-12-02 07:20:43 +01:00
James Cole
efaa69cba1 Updates to bill code for #1029 2017-12-02 07:10:36 +01:00
James Cole
8eded63055 Fix for #1028 2017-12-02 06:42:00 +01:00
James Cole
ab689111f9 In the spirit of #1030, fix other JS strings as well. 2017-12-02 06:37:23 +01:00
James Cole
b87ef6252c Fix #1030 2017-12-02 06:29:06 +01:00
James Cole
8a59380c6d First set of code for #956 2017-12-01 20:11:29 +01:00
James Cole
382c5e5760 Updated config files [skip ci] 2017-12-01 18:43:37 +01:00
James Cole
02b4de46db Fix #1026 2017-11-30 22:05:18 +01:00
James Cole
aca5d8b6e9 Remove upgrade method. 2017-11-30 20:26:56 +01:00
James Cole
c2a129ddb0 Remove unused reference to model. 2017-11-30 20:26:16 +01:00
James Cole
f7eb78364d Merge branch 'release/4.6.11' 2017-11-30 20:16:28 +01:00
James Cole
a43dd4b2e8 Updated file list. 2017-11-30 20:01:18 +01:00
James Cole
7ef2941b85 Updated French translation. 2017-11-30 19:51:15 +01:00
James Cole
8a2b581658 Update change log and composer lock file. 2017-11-30 19:50:50 +01:00
James Cole
51f07ce918 Fix #1024 and #1025 2017-11-30 19:43:02 +01:00
James Cole
f30442320c Remove meta field when content is empty. 2017-11-30 19:39:49 +01:00
James Cole
4a1c155874 Update file list for sandstorm. 2017-11-30 07:24:42 +01:00
James Cole
c8ae19b811 New translations. 2017-11-30 07:13:52 +01:00
James Cole
64db5b91e2 heroku is broken 2017-11-30 07:12:22 +01:00
James Cole
941392f5ae Update composer and change log for sandstorm. 2017-11-30 07:11:39 +01:00
James Cole
0d9ac8b9c7 Restore composer file 2017-11-30 06:59:45 +01:00
James Cole
3581925b18 Update changelog. 2017-11-30 06:59:36 +01:00
James Cole
79517fc6e0 Various Heroku related fixes. 2017-11-29 19:15:44 +01:00
James Cole
9ae878724a Test: remove copy env.example 2017-11-29 18:20:38 +01:00
James Cole
aacc94cb01 Remove pre-install thing. 2017-11-29 18:20:20 +01:00
James Cole
203556aa8e Do not overrule logging when it’s not set to daily. [skip ci] 2017-11-29 18:12:00 +01:00
James Cole
16b0264a79 Do not overrule logging when it’s not set to daily. 2017-11-29 18:10:43 +01:00
James Cole
86d8ba6fc5 Update config for Heroku [skip ci] 2017-11-29 16:57:14 +01:00
James Cole
4dee6a9f59 Now without PHP errors. 2017-11-29 16:26:00 +01:00
James Cole
dedf774bf2 Update config for Heroku [skip ci] 2017-11-29 16:23:17 +01:00
James Cole
18a5bb682d Heroku related changes. 2017-11-27 19:07:57 +01:00
James Cole
b0b904c32e Fix parse error in composer.json 2017-11-27 19:01:44 +01:00
James Cole
fbaf84c427 Remove package discovery. 2017-11-27 18:47:00 +01:00
James Cole
0b2934235d Experimenting with heroku settings. 2017-11-27 18:39:11 +01:00
James Cole
2db0550eee Update composer file for Heroku. 2017-11-27 16:31:52 +01:00
James Cole
99d3ff5e47 Update composer file. 2017-11-26 18:00:05 +01:00
James Cole
be3d8ed192 Update composer file. 2017-11-26 17:59:31 +01:00
James Cole
2df8368a54 Update Heroku script [skip ci] 2017-11-26 17:52:20 +01:00
James Cole
c366f741c1 Update code for heroku [skip ci] 2017-11-26 17:48:53 +01:00
James Cole
3ab7dd3fb7 Some code cleanup to generate a push for #1006 2017-11-26 17:30:26 +01:00
James Cole
7852f4df1f Expand test coverage. 2017-11-26 09:54:09 +01:00
James Cole
0cf359b75f Code for #959 2017-11-25 20:54:42 +01:00
James Cole
60abe2a3af Various code cleanup. 2017-11-25 20:27:53 +01:00
James Cole
23826557c3 Fix #1004 2017-11-25 20:27:36 +01:00
James Cole
35647a062c Add php doc blocks. 2017-11-25 15:20:53 +01:00
James Cole
f7b1168e7c Code cleanup for scrutinizer. 2017-11-25 08:54:52 +01:00
James Cole
f2cf0ed446 Some bread crumbs and stuff [skip ci] 2017-11-24 23:14:27 +01:00
James Cole
378b4abaf1 Fix tests. 2017-11-24 23:05:44 +01:00
James Cole
af8df75e49 Add link to debug thing. 2017-11-24 21:51:31 +01:00
James Cole
be0758ce8a Update reconciliation code for #1011 and #736 2017-11-24 21:51:07 +01:00
James Cole
644fa3027a Some code for #736 2017-11-24 18:05:58 +01:00
James Cole
7de512aff8 Fix #1014 2017-11-24 17:33:05 +01:00
James Cole
93c2f13807 New strings [skip ci] 2017-11-24 17:06:42 +01:00
James Cole
7a1f698d5e Fix for #1016 and #968 2017-11-24 17:05:22 +01:00
James Cole
1aa325053e Update some Dutch translations [skip ci] 2017-11-22 22:09:29 +01:00
James Cole
8198d86934 Fix #1012 2017-11-22 21:54:58 +01:00
James Cole
8f80ee25c2 Code for #1010 2017-11-22 21:41:48 +01:00
James Cole
24b63abf2f Fix Javascript [skip ci] 2017-11-22 21:18:55 +01:00
James Cole
781ca052d8 Code cleanup. 2017-11-22 21:12:27 +01:00
James Cole
4e6b782204 Fix tests. 2017-11-22 20:30:23 +01:00
James Cole
3cb3c7f60f Code for 2fa 2017-11-22 20:20:57 +01:00
James Cole
0faa599b4c Code for reconcile. 2017-11-22 20:20:44 +01:00
James Cole
1fee62566b Fix some markdown related items for #1009 2017-11-22 18:12:09 +01:00
James Cole
d9fa098ae5 Fix view things. [skip ci] 2017-11-22 18:03:32 +01:00
James Cole
aa42d0f131 Missing translation. [skip ci] 2017-11-22 18:00:16 +01:00
James Cole
ba6a147032 Create reconciliation transaction. 2017-11-22 17:49:06 +01:00
James Cole
69bb76b6fe Update code for reconciliation. 2017-11-22 16:54:49 +01:00
James Cole
4b87e5be55 Keep mysql on latest. 2017-11-22 16:54:00 +01:00
James Cole
8f6ea6a73f Fix #1003 2017-11-19 09:20:29 +01:00
James Cole
6a88064548 Fix currency code. 2017-11-19 08:53:08 +01:00
James Cole
c357d25335 Update CSS 2017-11-18 21:03:41 +01:00
James Cole
7f27e3ce67 Update currencies #994 2017-11-18 21:03:28 +01:00
James Cole
7e66794cf5 Fix #958 2017-11-18 20:26:57 +01:00
James Cole
cd42399c29 Fix #931 2017-11-18 20:26:42 +01:00
James Cole
6bda5c2d53 New version [skip ci] 2017-11-18 16:55:12 +01:00
James Cole
9db83bc6ad Session lifetime is a week. 2017-11-18 16:51:57 +01:00
James Cole
ee45cc2f73 Fix upgrade database thing. 2017-11-18 16:36:22 +01:00
James Cole
e8e0a44cca Fix for #1002 2017-11-18 16:30:45 +01:00
James Cole
5f127b7bec Expand types. 2017-11-18 15:53:27 +01:00
James Cole
03edf6c0a0 Create new account and transaction types. 2017-11-18 15:51:11 +01:00
James Cole
5cfe3cf8a9 Fix entry fields 2017-11-18 15:50:21 +01:00
James Cole
1cec7652bf Fix #1001 2017-11-18 15:34:11 +01:00
James Cole
1045ed13fa Fix #996 2017-11-18 11:32:35 +01:00
James Cole
64fc6b6523 Some charts will render correctly #1000 2017-11-18 06:02:15 +01:00
James Cole
0812901745 Various code cleanup. 2017-11-18 05:46:19 +01:00
James Cole
573e72f7fb Fix views for #1000 2017-11-18 05:45:58 +01:00
James Cole
51a1512a3f Language update [skip ci] 2017-11-18 05:23:19 +01:00
James Cole
de41f23fb1 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii:
  Blind attempt to fix #997
2017-11-17 19:32:17 +01:00
James Cole
141225c980 Code for #914 2017-11-17 19:31:48 +01:00
James Cole
7bdafb48d2 Fix tag repos #997 2017-11-17 08:23:49 +01:00
James Cole
32695ba960 Blind attempt to fix #997 2017-11-17 08:22:26 +01:00
James Cole
02c2636b7d Fix #997 2017-11-17 05:52:44 +01:00
James Cole
bf87ffb933 Simplify tag cloud. 2017-11-15 15:38:39 +01:00
James Cole
63d93968d0 Fix tests. 2017-11-15 15:30:15 +01:00
James Cole
0c1ff98c66 Remove reference to self. 2017-11-15 12:53:55 +01:00
James Cole
ffca858b8d Code clean up. 2017-11-15 12:25:49 +01:00
James Cole
57dcdfa0c4 Code clean up. 2017-11-15 11:33:07 +01:00
James Cole
ef837f20dd Code clean up. 2017-11-15 10:53:17 +01:00
James Cole
649dca77f5 Code clean up. 2017-11-15 10:52:29 +01:00
James Cole
aee17221eb Code clean up. 2017-11-15 10:50:23 +01:00
James Cole
845d7d701f Update language files. 2017-11-15 10:36:50 +01:00
James Cole
c1259843cb Update language config. 2017-11-15 07:18:02 +01:00
James Cole
f576074f67 Merge pull request #977 from firefly-iii/l10n_develop
New Crowdin translations
2017-11-15 06:38:31 +01:00
James Cole
9fbad8df07 New translations firefly.php (Polish) 2017-11-15 06:30:56 +01:00
James Cole
f6d0aea015 New translations firefly.php (Portuguese, Brazilian) 2017-11-15 06:30:53 +01:00
James Cole
683dde54b7 New translations firefly.php (Slovenian) 2017-11-15 06:30:51 +01:00
James Cole
af6f21c4fd New translations firefly.php (Spanish) 2017-11-15 06:30:48 +01:00
James Cole
56501930b9 New translations firefly.php (German) 2017-11-15 06:30:43 +01:00
James Cole
62b38f43cd New translations firefly.php (French) 2017-11-15 06:30:38 +01:00
James Cole
0cc33cc3f6 New translations firefly.php (Dutch) 2017-11-15 06:30:33 +01:00
James Cole
6b1b41d320 New translations firefly.php (Indonesian) 2017-11-15 06:30:24 +01:00
James Cole
50e32cd570 New translations firefly.php (Russian) 2017-11-15 06:30:15 +01:00
James Cole
5530347bb2 New code for #736 2017-11-15 06:29:49 +01:00
James Cole
88ebcd1086 New translations list.php (Spanish) 2017-11-14 17:20:26 +01:00
James Cole
1971fb7e29 New translations validation.php (Russian) 2017-11-14 10:30:10 +01:00
James Cole
3243288e44 New translations validation.php (Russian) 2017-11-14 10:20:11 +01:00
James Cole
080a4002c6 New translations validation.php (Russian) 2017-11-14 10:10:14 +01:00
James Cole
cf460a0584 New translations validation.php (Russian) 2017-11-14 10:00:16 +01:00
James Cole
16ebee549b New translations bank.php (Russian) 2017-11-14 09:50:11 +01:00
James Cole
e73a7a3d14 New translations demo.php (Russian) 2017-11-14 09:50:10 +01:00
James Cole
e2ecfc7073 New translations validation.php (Russian) 2017-11-14 09:50:09 +01:00
James Cole
d413615943 Update tag routine for #993 2017-11-13 16:26:44 +01:00
James Cole
6c8f631582 Fix #992 2017-11-12 08:42:25 +01:00
James Cole
c013ce5bdb New translations firefly.php (German) 2017-11-11 17:40:58 +01:00
James Cole
f3a2a467d4 New translations firefly.php (Polish) 2017-11-10 18:31:45 +01:00
James Cole
8f6a5672fa New translations firefly.php (Portuguese, Brazilian) 2017-11-10 18:31:42 +01:00
James Cole
f6ebabe41d New translations firefly.php (Slovenian) 2017-11-10 18:31:39 +01:00
James Cole
b950b82e10 New translations firefly.php (Spanish) 2017-11-10 18:31:37 +01:00
James Cole
65b9d2cb00 New translations firefly.php (German) 2017-11-10 18:31:31 +01:00
James Cole
b79cbacce9 New translations firefly.php (French) 2017-11-10 18:31:25 +01:00
James Cole
fb20293e40 New translations firefly.php (Dutch) 2017-11-10 18:31:20 +01:00
James Cole
34c74ee3a3 New translations firefly.php (Indonesian) 2017-11-10 18:31:11 +01:00
James Cole
18f2b28b11 New translations firefly.php (Russian) 2017-11-10 18:31:00 +01:00
James Cole
f0e195f33b Basic reconcile view for #736 2017-11-10 18:25:11 +01:00
James Cole
19611982fa New translations form.php (German) 2017-11-10 18:10:15 +01:00
James Cole
112168b57c New translations firefly.php (Polish) 2017-11-10 15:02:05 +01:00
James Cole
e549009964 New translations firefly.php (Portuguese, Brazilian) 2017-11-10 15:02:01 +01:00
James Cole
60c261cb31 New translations firefly.php (Slovenian) 2017-11-10 15:01:57 +01:00
James Cole
628457695c New translations firefly.php (Spanish) 2017-11-10 15:01:54 +01:00
James Cole
a3befd9b1f New translations firefly.php (German) 2017-11-10 15:01:47 +01:00
James Cole
8bcfc624da New translations firefly.php (French) 2017-11-10 15:01:38 +01:00
James Cole
f88c311de7 New translations firefly.php (Dutch) 2017-11-10 15:01:32 +01:00
James Cole
34564de5e2 New translations firefly.php (Indonesian) 2017-11-10 15:01:23 +01:00
James Cole
88fd257d2c New translations firefly.php (Russian) 2017-11-10 15:01:12 +01:00
James Cole
b899628dbe New code for #736 2017-11-10 15:00:24 +01:00
James Cole
8f57222098 fix for #988 2017-11-08 16:04:55 +01:00
James Cole
d6f2557793 New translations demo.php (French) 2017-11-08 11:30:49 +01:00
James Cole
e15e4808c2 New translations firefly.php (French) 2017-11-08 11:30:47 +01:00
James Cole
328fc1d9df New translations form.php (French) 2017-11-08 11:20:42 +01:00
James Cole
19cf814e19 New translations firefly.php (Polish) 2017-11-08 09:51:18 +01:00
James Cole
ce45076063 New translations firefly.php (Portuguese, Brazilian) 2017-11-08 09:51:13 +01:00
James Cole
52544fc20c New translations firefly.php (Slovenian) 2017-11-08 09:51:10 +01:00
James Cole
8e64b22c45 New translations firefly.php (Spanish) 2017-11-08 09:51:07 +01:00
James Cole
ed27918c98 New translations firefly.php (German) 2017-11-08 09:50:59 +01:00
James Cole
2470a38b32 New translations firefly.php (French) 2017-11-08 09:50:48 +01:00
James Cole
4c6ec557e9 New translations firefly.php (Dutch) 2017-11-08 09:50:41 +01:00
James Cole
ac62acef1a New translations firefly.php (Indonesian) 2017-11-08 09:50:30 +01:00
James Cole
35ef6e10ee New translations firefly.php (Russian) 2017-11-08 09:50:18 +01:00
James Cole
920c7a93bc Better cache for reconcile [skip ci] 2017-11-08 09:47:38 +01:00
James Cole
78009c1cc0 New strings for reconciled transactions. #736 2017-11-08 09:40:38 +01:00
James Cole
d65109885a New translations bank.php (Indonesian) 2017-11-08 09:31:20 +01:00
James Cole
e986a1fc05 New translations bank.php (Dutch) 2017-11-08 09:30:40 +01:00
James Cole
ce331ffaff New translations bank.php (French) 2017-11-08 09:30:39 +01:00
James Cole
eb5f8067c0 New translations bank.php (German) 2017-11-08 09:30:38 +01:00
James Cole
421ce0e8f7 New translations bank.php (Polish) 2017-11-08 09:30:37 +01:00
James Cole
043e72f96c New translations bank.php (Portuguese, Brazilian) 2017-11-08 09:30:36 +01:00
James Cole
57b6cab774 New translations bank.php (Russian) 2017-11-08 09:30:35 +01:00
James Cole
2448c97d4b New translations bank.php (Slovenian) 2017-11-08 09:30:34 +01:00
James Cole
3f7f63c308 New translations bank.php (Spanish) 2017-11-08 09:30:27 +01:00
James Cole
8707bc6612 Code cleanup. 2017-11-08 09:05:10 +01:00
James Cole
b6514c7e54 Fix #987 2017-11-08 08:28:04 +01:00
James Cole
428bdfbe6f Update debug information. 2017-11-08 08:23:58 +01:00
James Cole
b5e76c77d2 New translations firefly.php (Dutch) 2017-11-08 08:20:22 +01:00
James Cole
19c9fc794d Update env files. [skip ci] 2017-11-08 07:54:42 +01:00
James Cole
1dfdf48471 Fix for #987 2017-11-08 07:19:21 +01:00
James Cole
15e0010162 New translations firefly.php (German) 2017-11-07 07:50:09 +01:00
James Cole
a2889ea4c4 Reverse null. 2017-11-06 20:17:54 +01:00
James Cole
ad18e04ad6 Expand error reporting for bad databases. 2017-11-06 20:17:39 +01:00
James Cole
347be7f4fd Update sandstorm files. 2017-11-06 19:24:32 +01:00
James Cole
6c9616bbc4 Fix #985 2017-11-05 21:16:20 +01:00
James Cole
8145c23905 Fix list view. 2017-11-05 21:12:49 +01:00
James Cole
ca358fd869 New translations firefly.php (Polish) 2017-11-05 20:20:12 +01:00
James Cole
42f8ac50f5 New translations firefly.php (Polish) 2017-11-05 19:51:02 +01:00
James Cole
5ee3828acf New translations firefly.php (Portuguese, Brazilian) 2017-11-05 19:51:00 +01:00
James Cole
aad2d50091 New translations firefly.php (Slovenian) 2017-11-05 19:50:57 +01:00
James Cole
54ae2af0f1 New translations firefly.php (Spanish) 2017-11-05 19:50:55 +01:00
James Cole
e98a7b7196 New translations firefly.php (German) 2017-11-05 19:50:50 +01:00
James Cole
61b180759c New translations firefly.php (French) 2017-11-05 19:50:44 +01:00
James Cole
718356592c New translations firefly.php (Dutch) 2017-11-05 19:50:39 +01:00
James Cole
be18896f84 New translations firefly.php (Indonesian) 2017-11-05 19:50:29 +01:00
James Cole
6ffdc3a505 New translations firefly.php (Russian) 2017-11-05 19:50:20 +01:00
James Cole
d2ab03061f Various code cleanup. 2017-11-05 19:49:20 +01:00
James Cole
33d89d52c2 Code that allows transaction reconciliation. #736 2017-11-05 19:48:43 +01:00
James Cole
a3bd4ccfbf New translations firefly.php (Polish) 2017-11-04 07:20:56 +01:00
James Cole
5a8f8d2448 New translations firefly.php (Portuguese, Brazilian) 2017-11-04 07:20:53 +01:00
James Cole
3320b69cd8 New translations firefly.php (Slovenian) 2017-11-04 07:20:51 +01:00
James Cole
bc19919bed New translations firefly.php (Spanish) 2017-11-04 07:20:48 +01:00
James Cole
3d318abf1b New translations firefly.php (German) 2017-11-04 07:20:43 +01:00
James Cole
31b5899fb0 New translations firefly.php (French) 2017-11-04 07:20:38 +01:00
James Cole
e75ada49b7 New translations firefly.php (Dutch) 2017-11-04 07:20:33 +01:00
James Cole
71eeffdbf4 New translations firefly.php (Indonesian) 2017-11-04 07:20:24 +01:00
James Cole
a71e9e578d New translations firefly.php (Russian) 2017-11-04 07:20:13 +01:00
James Cole
bb46d034cd Various cleanup in transaction and journal display code. 2017-11-04 07:10:21 +01:00
James Cole
b4dc70244a Fix for #980 2017-11-04 06:23:52 +01:00
James Cole
8cb42d1114 New translations firefly.php (German) 2017-11-03 21:32:29 +01:00
James Cole
7db233d0e8 New translations demo.php (Dutch) 2017-11-03 20:20:20 +01:00
James Cole
25268fabb3 New translations firefly.php (Dutch) 2017-11-03 20:20:18 +01:00
James Cole
c6434991d3 New translations firefly.php (Polish) 2017-11-03 16:32:48 +01:00
James Cole
ac801c8b86 Update models. 2017-11-03 16:04:17 +01:00
James Cole
6a1265564b New translations firefly.php (Portuguese, Brazilian) 2017-11-03 15:52:21 +01:00
James Cole
75680aa3f7 New translations firefly.php (Slovenian) 2017-11-03 15:52:16 +01:00
James Cole
c2adfc23d3 New translations firefly.php (Spanish) 2017-11-03 15:52:11 +01:00
James Cole
00bc8cc81e New translations firefly.php (Polish) 2017-11-03 15:51:59 +01:00
James Cole
41ca02b2dd New translations firefly.php (German) 2017-11-03 15:51:49 +01:00
James Cole
29f3c40cbe New translations firefly.php (Dutch) 2017-11-03 15:51:44 +01:00
James Cole
65a3b2d74c New translations firefly.php (French) 2017-11-03 15:51:37 +01:00
James Cole
7ac041f036 New translations firefly.php (Indonesian) 2017-11-03 15:51:22 +01:00
James Cole
0bc7e244ec New translations firefly.php (Russian) 2017-11-03 15:50:57 +01:00
James Cole
a664451913 Merge pull request #979 from pkoziol/develop
Translate hard-coded strings
2017-11-03 15:35:28 +01:00
koziolek
62998f8d69 Translate hard-coded strings. 2017-11-03 14:53:00 +01:00
James Cole
b907f998d9 New translations demo.php (German) 2017-11-03 14:21:03 +01:00
James Cole
c74e65b391 New translations firefly.php (German) 2017-11-03 14:21:02 +01:00
James Cole
5dc9e16553 New translations firefly.php (Polish) 2017-11-03 14:10:35 +01:00
James Cole
80fd0fa419 New translations firefly.php (Polish) 2017-11-03 13:50:51 +01:00
James Cole
0c206c9a0f New translations firefly.php (Portuguese, Brazilian) 2017-11-03 13:50:47 +01:00
James Cole
10a2b2075e New translations firefly.php (Slovenian) 2017-11-03 13:50:42 +01:00
James Cole
69e3158144 New translations firefly.php (Spanish) 2017-11-03 13:50:38 +01:00
James Cole
5019946c65 New translations firefly.php (German) 2017-11-03 13:50:24 +01:00
James Cole
ea7bd15c3d New translations firefly.php (French) 2017-11-03 13:50:11 +01:00
James Cole
bf884175a7 New translations firefly.php (Dutch) 2017-11-03 13:49:59 +01:00
James Cole
fc9479e517 New translations firefly.php (Indonesian) 2017-11-03 13:49:45 +01:00
James Cole
b333af769e New translations firefly.php (Russian) 2017-11-03 13:49:30 +01:00
James Cole
ca5249d839 Fix #976 2017-11-03 13:48:52 +01:00
James Cole
ba57852513 New translations firefly.php (Polish) 2017-11-03 13:42:26 +01:00
James Cole
d6f93d3c13 New translations firefly.php (Portuguese, Brazilian) 2017-11-03 13:42:22 +01:00
James Cole
1fcad87de6 New translations firefly.php (Slovenian) 2017-11-03 13:42:17 +01:00
James Cole
359d366e6e New translations firefly.php (Spanish) 2017-11-03 13:42:13 +01:00
James Cole
cbc3326d4b New translations firefly.php (German) 2017-11-03 13:42:05 +01:00
James Cole
1a147ecdd5 New translations firefly.php (French) 2017-11-03 13:41:57 +01:00
James Cole
df9bb13df1 New translations firefly.php (Indonesian) 2017-11-03 13:41:37 +01:00
James Cole
c2ee12466c New translations demo.php (Indonesian) 2017-11-03 13:41:32 +01:00
James Cole
6d9a562d0f New translations demo.php (Dutch) 2017-11-03 13:41:25 +01:00
James Cole
9da16f2b78 New translations demo.php (French) 2017-11-03 13:41:24 +01:00
James Cole
8bcebee767 New translations demo.php (German) 2017-11-03 13:41:22 +01:00
James Cole
c8240ea54f New translations demo.php (Russian) 2017-11-03 13:41:21 +01:00
James Cole
5ac5206253 New translations demo.php (Polish) 2017-11-03 13:41:20 +01:00
James Cole
a73adaaba9 New translations demo.php (Slovenian) 2017-11-03 13:41:19 +01:00
James Cole
7031cbcd29 New translations demo.php (Spanish) 2017-11-03 13:41:18 +01:00
James Cole
2dad5fb066 New translations firefly.php (Russian) 2017-11-03 13:41:16 +01:00
James Cole
db0b1d1fa2 New translations demo.php (Portuguese, Brazilian) 2017-11-03 13:41:11 +01:00
James Cole
810d2a3d87 Fix language issues reported by Findus23 2017-11-03 13:40:11 +01:00
James Cole
75f38d20df New translations firefly.php (German) 2017-11-03 13:00:16 +01:00
James Cole
214f651831 New translations validation.php (German) 2017-11-03 12:50:17 +01:00
James Cole
bc1982fb7b New translations firefly.php (Polish) 2017-11-03 12:50:15 +01:00
James Cole
99c9b719e7 New translations firefly.php (German) 2017-11-03 12:50:12 +01:00
James Cole
15eeba4381 New translations demo.php (German) 2017-11-03 12:30:13 +01:00
James Cole
77a6e81f1f New translations firefly.php (German) 2017-11-03 12:30:12 +01:00
James Cole
129ba5ed30 New translations firefly.php (German) 2017-11-03 12:10:14 +01:00
James Cole
8d9aa9392e New translations intro.php (German) 2017-11-03 12:00:23 +01:00
James Cole
566aa66c8b New translations form.php (German) 2017-11-03 12:00:21 +01:00
James Cole
d3bec76ebd New translations firefly.php (German) 2017-11-03 12:00:14 +01:00
James Cole
4c6b4074f5 New translations intro.php (German) 2017-11-03 11:50:12 +01:00
James Cole
787470d629 New translations form.php (German) 2017-11-03 11:50:11 +01:00
James Cole
607f960b6b New translations firefly.php (German) 2017-11-03 11:50:10 +01:00
James Cole
a636e88f25 New translations intro.php (German) 2017-11-03 11:40:14 +01:00
James Cole
d3b5300fc9 New translations validation.php (German) 2017-11-03 11:40:12 +01:00
James Cole
7ba2f3243d New translations form.php (German) 2017-11-03 11:31:57 +01:00
James Cole
8c75f9af14 New translations firefly.php (German) 2017-11-03 11:31:55 +01:00
James Cole
1867294704 New translations form.php (German) 2017-11-03 11:20:30 +01:00
James Cole
2d7a83ca34 New translations firefly.php (German) 2017-11-03 11:20:29 +01:00
James Cole
39679f89cd New translations firefly.php (German) 2017-11-03 11:11:10 +01:00
James Cole
8c707f8918 New translations firefly.php (German) 2017-11-03 11:00:15 +01:00
James Cole
dac4f23d51 Expand debug page. 2017-11-03 10:28:45 +01:00
James Cole
9ac5657b52 Merge branch 'release/4.6.10' 2017-11-03 07:26:19 +01:00
James Cole
dc063a1587 New composer file 2017-11-03 07:21:27 +01:00
James Cole
f49f3408dd Updated composer file 2017-11-03 07:12:06 +01:00
James Cole
5c6117a37a Merge pull request #975 from firefly-iii/l10n_develop
New Crowdin translations
2017-11-03 07:11:35 +01:00
James Cole
3da76a4f10 New translations firefly.php (Dutch) 2017-11-03 07:04:35 +01:00
James Cole
4f2faf7d64 Updated file list for Sandstorm [skip ci] 2017-11-03 07:02:44 +01:00
James Cole
5e3729e4b4 Fix #948 2017-11-03 06:58:39 +01:00
James Cole
d30d6b5e19 Fix #962 2017-11-03 06:57:46 +01:00
James Cole
432e06ed11 New translations firefly.php (Polish) 2017-11-03 06:50:55 +01:00
James Cole
cfc5bbd36f New translations firefly.php (Portuguese, Brazilian) 2017-11-03 06:50:53 +01:00
James Cole
58af8ba4a8 New translations firefly.php (Slovenian) 2017-11-03 06:50:50 +01:00
James Cole
933f99f64d New translations firefly.php (Spanish) 2017-11-03 06:50:48 +01:00
James Cole
742f6b3791 New translations firefly.php (German) 2017-11-03 06:50:42 +01:00
James Cole
8a98c16229 New translations firefly.php (French) 2017-11-03 06:50:37 +01:00
James Cole
913a9ef132 New translations firefly.php (Dutch) 2017-11-03 06:50:31 +01:00
James Cole
0aa08ad58a New translations firefly.php (Indonesian) 2017-11-03 06:50:22 +01:00
James Cole
9d1ae437dd New translations firefly.php (Russian) 2017-11-03 06:50:12 +01:00
James Cole
0e34302898 Fix #974 2017-11-03 06:42:36 +01:00
James Cole
6a91ca0f9b Add a debug view. 2017-11-01 20:23:28 +01:00
James Cole
b4c2631ef7 Catch undefined index in account repository. 2017-11-01 20:04:25 +01:00
James Cole
e0a0dbb6da Update repository for #972 2017-11-01 19:30:13 +01:00
James Cole
d937a8c897 New release related files [skip ci] 2017-11-01 17:08:37 +01:00
James Cole
5cc3261ba2 Merge pull request #950 from firefly-iii/l10n_develop
New Crowdin translations
2017-11-01 17:07:42 +01:00
James Cole
59213ed605 Fix possible null pointer [skip ci] 2017-11-01 16:30:55 +01:00
James Cole
1e91be420b Fix for #967 2017-11-01 16:17:14 +01:00
James Cole
80897be6c9 A fix for #971 2017-11-01 15:34:08 +01:00
James Cole
d20b750722 Fix for #970 2017-11-01 15:21:28 +01:00
James Cole
a73a058f9b Update firefly.php
Update language set.
2017-10-31 13:05:31 +01:00
James Cole
2c9ee43961 Try decrypt routine [skip ci] 2017-10-30 17:39:25 +01:00
James Cole
7a50bf29ee Try decrypt routine [skip ci] 2017-10-30 17:37:39 +01:00
James Cole
f6ab6d285f Swapped search case. [skip ci] 2017-10-30 17:34:56 +01:00
James Cole
7696dd7148 Enable cache again. [skip ci] 2017-10-30 17:33:39 +01:00
James Cole
0f83e78513 Enable cache again. [skip ci] 2017-10-30 17:32:21 +01:00
James Cole
82dc0d4aac Add debug logging. 2017-10-30 17:31:31 +01:00
James Cole
5722622251 Modify search for #963 2017-10-30 17:28:43 +01:00
James Cole
0bb46dd184 Fix return type 2017-10-30 16:25:46 +01:00
James Cole
60b7157a97 Custom limit 2017-10-30 16:25:39 +01:00
James Cole
ce30b3c1a9 Update env files 2017-10-30 16:25:31 +01:00
James Cole
a37e3005fd Merge pull request #961 from alazare619/master
Docker-Compose Point To Dockerhub Builds
2017-10-30 08:16:56 +01:00
Justin
1dfcb1bd8a rename 2017-10-29 21:58:25 -05:00
Justin
86381a1474 Docker-Compose Point To Dockerhub Builds 2017-10-29 21:12:11 -05:00
James Cole
654b9d2022 Various code cleanup. 2017-10-29 20:02:34 +01:00
James Cole
4cb832eb00 New translations firefly.php (German) 2017-10-29 17:31:10 +01:00
James Cole
cac202616b New translations csv.php (German) 2017-10-29 17:31:08 +01:00
James Cole
6a8c30eaa5 New translations breadcrumbs.php (German) 2017-10-29 17:31:06 +01:00
James Cole
1dfcc7ab37 New translations firefly.php (German) 2017-10-29 17:21:02 +01:00
James Cole
60cde6c9b4 New translations form.php (German) 2017-10-29 17:11:11 +01:00
James Cole
c0e2e6a4b5 New translations firefly.php (German) 2017-10-29 17:11:09 +01:00
James Cole
1706b60dcb New translations firefly.php (German) 2017-10-29 17:01:03 +01:00
James Cole
bf2aec228f New translations firefly.php (German) 2017-10-29 16:50:59 +01:00
James Cole
fc835a1ea4 New translations csv.php (German) 2017-10-29 16:50:56 +01:00
James Cole
35b68460d1 New translations firefly.php (German) 2017-10-29 16:40:14 +01:00
James Cole
5df16f58ce Update data for Sandstorm. 2017-10-29 16:05:22 +01:00
James Cole
88a3c8aed9 Fix #911 again 2017-10-29 08:29:40 +01:00
James Cole
af4a188480 Updated transaction view. 2017-10-28 07:39:33 +02:00
James Cole
d3c34ca155 Update service provider. 2017-10-28 07:31:12 +02:00
James Cole
7f26b4e7a7 Overrule Laravel middleware [skip ci] 2017-10-27 18:56:38 +02:00
James Cole
f28d8b8597 Update some libraries…… 2017-10-27 18:39:41 +02:00
James Cole
c900716fe6 Merge branch 'develop' of github.com:JC5/firefly-iii into develop 2017-10-27 13:00:36 +02:00
James Cole
a5dd334b71 Log some errors for #960 2017-10-27 12:59:43 +02:00
James Cole
ef695bde60 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii:
  Update PiggyBankController.php
2017-10-26 19:58:54 +02:00
James Cole
94762847a2 Fix #849 2017-10-26 19:57:41 +02:00
James Cole
78584c7128 Add cache to search. 2017-10-26 19:56:03 +02:00
James Cole
ed909fce68 New translations form.php (Dutch) 2017-10-26 12:30:07 +02:00
James Cole
2f6b318793 New translations intro.php (Polish) 2017-10-24 10:40:26 +02:00
James Cole
295091a161 New translations intro.php (Polish) 2017-10-24 10:30:07 +02:00
James Cole
0ef35ecb9f New translations csv.php (Polish) 2017-10-24 10:20:12 +02:00
James Cole
ae57682196 New translations csv.php (Polish) 2017-10-24 10:00:08 +02:00
James Cole
b409d2bcc2 Update PiggyBankController.php 2017-10-23 13:25:12 +02:00
James Cole
1217ff7a7f Generate key [skip ci] 2017-10-22 20:25:40 +02:00
James Cole
3f681bf71b Key without lengt. [skip ci] 2017-10-22 20:22:02 +02:00
James Cole
1a325f4978 Some code cleanup. 2017-10-22 20:13:02 +02:00
James Cole
d72b652453 Add some links. 2017-10-22 18:39:09 +02:00
James Cole
c32608b0e1 Add route #937 2017-10-22 18:16:32 +02:00
James Cole
93bcc8f63d Code for #937 2017-10-22 18:15:12 +02:00
James Cole
fb0cd056b9 New file list. 2017-10-22 17:48:53 +02:00
James Cole
1d1661be94 Disable most logging for sandstorm instances. 2017-10-22 17:31:01 +02:00
James Cole
8ed1d16e16 Fix #951 2017-10-22 13:49:39 +02:00
James Cole
5befe95d36 New translations form.php (Polish) 2017-10-22 12:10:06 +02:00
James Cole
1dc0de975f New translations form.php (Dutch) 2017-10-22 10:40:51 +02:00
James Cole
87709ab5ed New translations form.php (French) 2017-10-22 10:40:50 +02:00
James Cole
a32c089dd5 New translations form.php (German) 2017-10-22 10:40:49 +02:00
James Cole
fca7eb523c New translations form.php (Polish) 2017-10-22 10:40:48 +02:00
James Cole
018589ad68 New translations form.php (Portuguese, Brazilian) 2017-10-22 10:40:47 +02:00
James Cole
43f7734258 New translations form.php (Slovenian) 2017-10-22 10:40:45 +02:00
James Cole
94e49b0dc9 New translations form.php (Spanish) 2017-10-22 10:40:44 +02:00
James Cole
4948ad6e1f New translations form.php (Indonesian) 2017-10-22 10:40:25 +02:00
James Cole
76c6f20b97 New translations form.php (Russian) 2017-10-22 10:40:16 +02:00
James Cole
97680d1713 Move fonts to local dir #947 2017-10-22 10:38:19 +02:00
James Cole
caa0ecf899 Remove unnecessary comment. 2017-10-22 09:59:04 +02:00
James Cole
0518b98409 New title for single user mode. 2017-10-22 09:58:53 +02:00
James Cole
10a9c7f987 New icon for opening balance. 2017-10-22 09:58:41 +02:00
James Cole
869845f32a Merge branch 'release/4.6.9' 2017-10-22 06:39:49 +02:00
James Cole
d79493b84c Updated file list. 2017-10-22 06:35:53 +02:00
James Cole
ebe275c37b Update composer file. 2017-10-22 06:35:04 +02:00
James Cole
8f728633ba Small layout changes. 2017-10-22 06:12:24 +02:00
James Cole
1b23bd1e98 Update issue template 2017-10-22 06:11:58 +02:00
James Cole
b2a0e22c48 Update changelog. 2017-10-22 06:11:44 +02:00
James Cole
578252a2c7 Merge pull request #930 from firefly-iii/l10n_develop
New Crowdin translations
2017-10-22 05:52:39 +02:00
James Cole
f326c5ec19 Fix #944 2017-10-22 05:47:07 +02:00
James Cole
0358d45614 Make new Sandstorm user an admin. 2017-10-21 21:51:09 +02:00
James Cole
69b26fcb5d Updated readme. 2017-10-21 20:50:15 +02:00
James Cole
2197438e3d Add sandstorm reference to read me. 2017-10-21 20:46:34 +02:00
James Cole
779c8b6753 Remove upstream author. 2017-10-21 20:45:08 +02:00
James Cole
dc784b346f Fix intro box thing. 2017-10-21 12:19:39 +02:00
James Cole
33fbf4c939 File list 2017-10-21 10:03:34 +02:00
James Cole
3d9f9770b4 More stuff for Sandstorm. 2017-10-21 09:58:44 +02:00
James Cole
a3d23aa43c Update license for Sandstorm file. 2017-10-21 08:50:47 +02:00
James Cole
ac461d64a8 New copyright notice. 2017-10-21 08:40:00 +02:00
James Cole
2e40ec5d4b Some new files. Updated composer file. 2017-10-20 21:18:27 +02:00
James Cole
72cf4c26f2 Push some stuff over get, not post. 2017-10-20 20:23:45 +02:00
James Cole
b6add99654 Expand capnp file. [skip ci] 2017-10-20 19:28:39 +02:00
James Cole
b07f732daa Update Sandstorm things 2017-10-20 18:50:54 +02:00
James Cole
a67037d586 Update sandstorm files. 2017-10-20 14:21:47 +02:00
James Cole
a352423cf8 Fix account display. 2017-10-20 13:35:54 +02:00
James Cole
b0be407c7c Updated read me file. [skip ci] 2017-10-20 10:07:53 +02:00
James Cole
4bacbae68a Updated read me file. [skip ci] 2017-10-20 10:06:13 +02:00
James Cole
87987f2a2e Less popups for #943 2017-10-20 08:00:13 +02:00
James Cole
30bfdda2b0 Fix view of #942 2017-10-20 07:55:04 +02:00
James Cole
4d6c679b0e Fix #942 2017-10-20 07:51:53 +02:00
James Cole
de15ca01e3 Fix #895 2017-10-19 20:51:15 +02:00
James Cole
c53618d0e2 Fix #942 2017-10-19 20:37:39 +02:00
James Cole
7d921d648d Remove exclamation mark. 2017-10-19 20:32:41 +02:00
James Cole
7e8e766ab4 Fix #902 2017-10-19 18:58:54 +02:00
James Cole
7f5134f758 Clean up routine for #938 2017-10-19 18:35:19 +02:00
James Cole
bcc8e84a73 tpl 2017-10-19 18:11:45 +02:00
James Cole
eec076c745 Fixed #940 2017-10-19 18:08:50 +02:00
James Cole
34bf5f7bfd Create PULL_REQUEST_TEMPLATE.md 2017-10-19 11:13:04 +02:00
James Cole
e0e2b79c1a Create ISSUE_TEMPLATE.md 2017-10-19 11:12:20 +02:00
James Cole
783f587a8a Fix #933 2017-10-16 19:01:26 +02:00
James Cole
95c3f52144 Fix #932 2017-10-16 15:53:55 +02:00
James Cole
b36fc067c9 Set environment to local. 2017-10-15 16:25:26 +02:00
James Cole
dc48335ed9 Remove double budget limits. 2017-10-15 14:38:12 +02:00
James Cole
dad1ee6edd Fix bars #916 2017-10-15 14:37:58 +02:00
James Cole
5c0bb34d77 Code for #916 2017-10-15 14:05:31 +02:00
James Cole
3e85e4180a New translations firefly.php (Spanish) 2017-10-15 11:20:28 +02:00
James Cole
99500a1ee2 New translations firefly.php (Portuguese, Brazilian) 2017-10-15 11:20:24 +02:00
James Cole
4945356665 New translations config.php (Portuguese, Brazilian) 2017-10-15 10:50:26 +02:00
James Cole
2190fb972c New translations csv.php (Portuguese, Brazilian) 2017-10-15 10:50:23 +02:00
James Cole
dfa7e94f87 New translations bank.php (Slovenian) 2017-10-15 10:50:19 +02:00
James Cole
aa6a0f6e83 New translations breadcrumbs.php (Portuguese, Brazilian) 2017-10-15 10:50:13 +02:00
James Cole
02203fb38a New translations intro.php (French) 2017-10-15 10:50:12 +02:00
James Cole
64b957fda6 New translations bank.php (Slovenian) 2017-10-15 10:40:22 +02:00
James Cole
f82880a519 New translations firefly.php (Portuguese, Brazilian) 2017-10-15 10:40:16 +02:00
James Cole
e7a782359d New translations csv.php (Portuguese, Brazilian) 2017-10-15 10:40:14 +02:00
James Cole
7f9f83bb3f New translations config.php (Portuguese, Brazilian) 2017-10-15 10:40:12 +02:00
James Cole
7dca784091 New translations breadcrumbs.php (Portuguese, Brazilian) 2017-10-15 10:40:11 +02:00
James Cole
c633c800a5 New translations intro.php (French) 2017-10-15 10:10:09 +02:00
James Cole
9277ba60aa New translations firefly.php (Spanish) 2017-10-15 10:10:07 +02:00
James Cole
b30f76ccf5 Merge branch 'release/4.6.8' 2017-10-15 08:57:11 +02:00
James Cole
7ff19a8419 Updated changelog. 2017-10-15 08:52:36 +02:00
James Cole
b28c3a64fa Updated version. 2017-10-15 08:45:12 +02:00
James Cole
6fedf1eec0 Fixed tests 2017-10-15 08:44:16 +02:00
James Cole
e47911ef43 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii: (30 commits)
  New translations firefly.php (French)
  New translations csv.php (French)
  New translations firefly.php (German)
  New translations intro.php (German)
  New translations intro.php (German)
  New translations intro.php (German)
  New translations list.php (German)
  New translations firefly.php (Slovenian)
  New translations firefly.php (Slovenian)
  New translations firefly.php (Slovenian)
  New translations csv.php (Slovenian)
  New translations csv.php (Slovenian)
  New translations list.php (Slovenian)
  New translations csv.php (Slovenian)
  New translations bank.php (Slovenian)
  New translations list.php (Slovenian)
  New translations breadcrumbs.php (Slovenian)
  New translations intro.php (French)
  New translations firefly.php (French)
  New translations firefly.php (French)
  ...
2017-10-15 08:31:17 +02:00
James Cole
7a873c6ee7 Merge pull request #918 from firefly-iii/l10n_develop
New Crowdin translations
2017-10-15 08:30:57 +02:00
James Cole
c6c76ac710 New lock file 2017-10-15 08:30:32 +02:00
James Cole
2dae7f40e1 Small updates in change log [skip ci] 2017-10-15 08:26:13 +02:00
James Cole
918ebafd7c Update changelog formatting. 2017-10-15 08:24:21 +02:00
James Cole
466ff4fe3c Solution for #926 2017-10-15 07:52:15 +02:00
James Cole
353b3fcba7 Fix invalid JSON. 2017-10-14 08:08:14 +02:00
James Cole
da980bcf9c Remove dev package from wrong section. 2017-10-14 08:06:34 +02:00
James Cole
ed237476fa Correct environment in example .env file. #925 2017-10-14 08:06:24 +02:00
James Cole
401ae92a62 Various fixes for #916 2017-10-14 07:58:29 +02:00
James Cole
70ab42bc43 Will correctly join budget tables. #916 2017-10-13 18:26:22 +02:00
James Cole
15e060ea9e Won’t set budget for anything other then withdrawals. #916 2017-10-13 18:26:05 +02:00
James Cole
4c834467ae Get all fields 2017-10-13 17:34:19 +02:00
James Cole
7bf691e2bd Verify deposits with budget. 2017-10-13 17:32:14 +02:00
James Cole
f63bf12733 New translations firefly.php (French) 2017-10-11 18:10:29 +02:00
James Cole
65f0acbd10 New translations csv.php (French) 2017-10-11 18:00:21 +02:00
James Cole
6dd0c2612b New translations firefly.php (German) 2017-10-11 14:31:30 +02:00
James Cole
21701fd5f2 New translations intro.php (German) 2017-10-11 14:20:21 +02:00
James Cole
beabed1c1b New translations intro.php (German) 2017-10-11 14:10:11 +02:00
James Cole
ece042b468 New translations intro.php (German) 2017-10-11 14:00:18 +02:00
James Cole
668e36ccf6 New translations list.php (German) 2017-10-11 14:00:17 +02:00
James Cole
27d533dd5b New docker things. 2017-10-11 10:07:09 +02:00
James Cole
011e28e8c2 Updated docker file. 2017-10-11 09:34:03 +02:00
James Cole
dadeb4616e Updated docker file. 2017-10-11 09:14:34 +02:00
James Cole
bea0c8dd55 Update docker files. #919 and #915 2017-10-11 08:16:57 +02:00
James Cole
31b92fe594 New translations firefly.php (Slovenian) 2017-10-10 17:32:09 +02:00
James Cole
1753b58ec9 New translations firefly.php (Slovenian) 2017-10-10 17:20:14 +02:00
James Cole
ade8bbb221 New translations firefly.php (Slovenian) 2017-10-10 17:10:10 +02:00
James Cole
c31160f82d New translations csv.php (Slovenian) 2017-10-10 17:10:08 +02:00
James Cole
d161c9850a New translations csv.php (Slovenian) 2017-10-10 17:00:07 +02:00
James Cole
a3b8cb25ca New translations list.php (Slovenian) 2017-10-10 16:50:12 +02:00
James Cole
6c5f915751 New translations csv.php (Slovenian) 2017-10-10 16:50:10 +02:00
James Cole
1bb3581fef New translations bank.php (Slovenian) 2017-10-10 14:00:44 +02:00
James Cole
d9e8036dda New translations list.php (Slovenian) 2017-10-10 14:00:43 +02:00
James Cole
b754c9d8a3 New translations breadcrumbs.php (Slovenian) 2017-10-10 14:00:41 +02:00
James Cole
b9679284d0 New translations intro.php (French) 2017-10-10 10:20:32 +02:00
James Cole
3fa5f1cff6 New translations firefly.php (French) 2017-10-10 10:20:31 +02:00
James Cole
dea2b055ae New translations firefly.php (French) 2017-10-10 10:11:05 +02:00
James Cole
84b20f3f32 New translations csv.php (French) 2017-10-10 10:11:02 +02:00
James Cole
dce39066ad New translations breadcrumbs.php (French) 2017-10-10 10:11:01 +02:00
James Cole
6b82679f78 New translations firefly.php (French) 2017-10-10 10:00:36 +02:00
James Cole
1f26b26a16 New translations intro.php (German) 2017-10-10 08:50:20 +02:00
James Cole
c5de4338e1 New translations firefly.php (German) 2017-10-10 08:50:18 +02:00
James Cole
41d12f4f2f New translations intro.php (German) 2017-10-10 08:40:16 +02:00
James Cole
055b80cf7a New translations intro.php (German) 2017-10-10 08:30:07 +02:00
James Cole
1187169dbd New translations bank.php (German) 2017-10-10 08:20:08 +02:00
James Cole
ca548e166f New translations intro.php (German) 2017-10-10 08:20:07 +02:00
James Cole
7b3ca053a5 New translations firefly.php (Polish) 2017-10-09 21:00:17 +02:00
James Cole
110d9278c4 Merge branch 'release/4.6.7' 2017-10-09 20:51:03 +02:00
James Cole
b6245d4b0b Updated composer lock file. 2017-10-09 20:43:36 +02:00
James Cole
74494a0df6 Added language. 2017-10-09 20:43:25 +02:00
James Cole
9cdd79ee30 Updated changelog. 2017-10-09 20:43:19 +02:00
James Cole
9b30bbcf92 Merge pull request #898 from firefly-iii/l10n_develop
New Crowdin translations
2017-10-09 20:42:55 +02:00
James Cole
c64c5495f2 New translations firefly.php (Dutch) 2017-10-09 20:42:28 +02:00
James Cole
a6855349e8 New translations firefly.php (Polish) 2017-10-09 20:40:27 +02:00
James Cole
c02bb617cd New translations firefly.php (Portuguese, Brazilian) 2017-10-09 20:40:24 +02:00
James Cole
a95ff75531 New translations firefly.php (Slovenian) 2017-10-09 20:40:22 +02:00
James Cole
e726364eb7 New translations firefly.php (Spanish) 2017-10-09 20:40:19 +02:00
James Cole
301d76c1c5 New translations firefly.php (German) 2017-10-09 20:40:15 +02:00
James Cole
4cdf2184c3 New translations firefly.php (French) 2017-10-09 20:40:09 +02:00
James Cole
4d8736b3cf New translations firefly.php (Dutch) 2017-10-09 20:40:03 +02:00
James Cole
2a5182ba54 New translations firefly.php (Indonesian) 2017-10-09 20:39:54 +02:00
James Cole
4f307cf3ca New translations firefly.php (Russian) 2017-10-09 20:39:44 +02:00
James Cole
26ab5fea7b Merge pull request #912 from pkoziol/develop
Added missing translations in link type overview.
2017-10-09 20:38:16 +02:00
James Cole
f90a27ce59 Remove twig clean from test script 2017-10-09 20:30:57 +02:00
James Cole
624b654fa6 Fix #917 2017-10-09 20:30:46 +02:00
James Cole
09118013c9 Update for #915 2017-10-08 18:35:24 +02:00
James Cole
e934d8943f Fix #915 2017-10-08 18:27:51 +02:00
James Cole
9a8ddf5c05 Some debug for #916 2017-10-08 10:14:26 +02:00
James Cole
d5eb0c5724 New translations firefly.php (French) 2017-10-08 10:10:07 +02:00
James Cole
70d5737d83 Fix #910 2017-10-08 06:08:20 +02:00
James Cole
b1b2bb4cc9 Fix #911 2017-10-08 06:07:15 +02:00
James Cole
3d6acf264c New translations form.php (Polish) 2017-10-06 23:50:19 +02:00
koziolek
730d5d72f3 Added missing translations in link type overview. 2017-10-06 23:39:15 +02:00
James Cole
81e86c9b81 New translations firefly.php (Polish) 2017-10-06 23:30:34 +02:00
James Cole
2215deb7a6 New translations list.php (Polish) 2017-10-06 23:20:27 +02:00
James Cole
950d5892c0 New translations form.php (Polish) 2017-10-06 23:20:26 +02:00
James Cole
8947226064 New translations firefly.php (Polish) 2017-10-06 23:20:25 +02:00
James Cole
42b5df48d3 New translations form.php (Polish) 2017-10-06 23:10:18 +02:00
James Cole
733d67defc New translations firefly.php (Polish) 2017-10-06 23:10:17 +02:00
James Cole
20cb3ff065 New translations list.php (Polish) 2017-10-06 23:00:18 +02:00
James Cole
ecd7aa95da New translations firefly.php (Polish) 2017-10-06 23:00:17 +02:00
James Cole
e4b2142dbf New translations firefly.php (Polish) 2017-10-06 22:50:18 +02:00
James Cole
4fd4d5b571 New translations firefly.php (Polish) 2017-10-06 22:30:21 +02:00
James Cole
511d2c8d1e Update log thing. 2017-10-06 16:16:01 +02:00
James Cole
9aaee0a951 Met coverage enabled this time. 2017-10-06 15:55:28 +02:00
James Cole
a606a3eef4 Test code coverage. 2017-10-06 15:52:06 +02:00
James Cole
67ed6e14aa New tests. 2017-10-06 15:41:21 +02:00
James Cole
f737a4914b New translations csv.php (Indonesian) 2017-10-06 10:40:06 +02:00
James Cole
d1c6e2f8b1 New translations csv.php (Indonesian) 2017-10-06 10:30:06 +02:00
James Cole
3dcf6d892b New translations csv.php (Indonesian) 2017-10-06 10:20:11 +02:00
James Cole
29e02ce31f A longer search string will no longer partly match on account name! 2017-10-06 07:07:12 +02:00
James Cole
e5514bc61a Fix #904 2017-10-06 06:36:00 +02:00
James Cole
c50e180a4e Merge pull request #903 from hduijn/develop
Added SNS specifics code for removing quotes from description
2017-10-05 16:18:03 +02:00
Hugo van Duijn
a1e2814990 Added SNS specifics code for removing quotes from description 2017-10-05 16:00:03 +02:00
James Cole
e68594a93b Various code cleanup. 2017-10-05 11:49:06 +02:00
James Cole
9859541927 New translations config.php (Indonesian) 2017-10-05 10:30:17 +02:00
James Cole
1c124aec0d New translations bank.php (Indonesian) 2017-10-05 10:20:19 +02:00
James Cole
425d6d17f4 New translations config.php (Indonesian) 2017-10-05 10:20:18 +02:00
James Cole
6203139cb9 New translations breadcrumbs.php (Indonesian) 2017-10-05 10:20:17 +02:00
James Cole
e0e3d79ee5 New translations auth.php (Indonesian) 2017-10-05 10:20:16 +02:00
James Cole
b18012a36c Fix tests 2017-10-05 08:26:08 +02:00
James Cole
ef0bee6874 New translations list.php (Dutch) 2017-10-05 07:40:07 +02:00
James Cole
61eeb84db6 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii:
  Add missing translations strings in search
2017-10-05 07:34:04 +02:00
James Cole
0520b91c71 New translations firefly.php (Dutch) 2017-10-05 07:30:06 +02:00
James Cole
e4c883018b New translations firefly.php (Polish) 2017-10-05 07:21:04 +02:00
James Cole
c2f774ea7c New translations firefly.php (Portuguese, Brazilian) 2017-10-05 07:21:01 +02:00
James Cole
8302518a4f New translations firefly.php (Slovenian) 2017-10-05 07:20:58 +02:00
James Cole
357b258332 New translations firefly.php (Spanish) 2017-10-05 07:20:55 +02:00
James Cole
3fd72d0584 New translations firefly.php (German) 2017-10-05 07:20:47 +02:00
James Cole
91075084c7 New translations firefly.php (French) 2017-10-05 07:20:41 +02:00
James Cole
687dd0e659 New translations firefly.php (Dutch) 2017-10-05 07:20:34 +02:00
James Cole
f919769bcd New translations firefly.php (Indonesian) 2017-10-05 07:20:25 +02:00
James Cole
8c109fc212 New translations firefly.php (Russian) 2017-10-05 07:20:13 +02:00
James Cole
1ba304462f make search query a string 2017-10-05 07:19:23 +02:00
James Cole
b92222b8e5 Merge pull request #900 from pkoziol/develop
Add missing translations strings in search
2017-10-05 07:15:10 +02:00
koziolek
8cb2a47a38 Add missing translations strings in search
firefly-iii/firefly-iii#899
2017-10-04 21:39:08 +02:00
James Cole
035ef6035d New translations intro.php (Polish) 2017-10-04 21:10:11 +02:00
James Cole
e74793ccbc New translations form.php (Polish) 2017-10-04 21:10:10 +02:00
James Cole
b89e7f9307 New translations firefly.php (Polish) 2017-10-04 21:10:08 +02:00
James Cole
5e6fbdad1a New translations firefly.php (Polish) 2017-10-04 21:00:08 +02:00
James Cole
f18aeee1fb New translations bank.php (Polish) 2017-10-04 20:50:09 +02:00
James Cole
cea4db785e New translations firefly.php (Polish) 2017-10-04 20:50:08 +02:00
James Cole
3ab0a44bd9 New translations form.php (Polish) 2017-10-04 20:40:09 +02:00
James Cole
9d2fdb8f07 New translations firefly.php (Polish) 2017-10-04 20:40:07 +02:00
James Cole
1e0806efa7 New translations list.php (Polish) 2017-10-04 20:30:19 +02:00
James Cole
c596506d37 New translations form.php (Polish) 2017-10-04 20:30:17 +02:00
James Cole
f1081d78ea New translations firefly.php (Polish) 2017-10-04 20:30:16 +02:00
James Cole
8202cd8e22 New translations list.php (Polish) 2017-10-04 20:20:08 +02:00
James Cole
b56d1a2a2b New translations firefly.php (Polish) 2017-10-04 20:20:07 +02:00
James Cole
3eb96ff593 New translations firefly.php (Polish) 2017-10-04 20:10:15 +02:00
James Cole
c6f521ec1b Merge pull request #879 from firefly-iii/l10n_develop
New Crowdin translations
2017-10-04 16:44:37 +02:00
James Cole
fb4df3484c New tests 2017-10-04 16:43:01 +02:00
James Cole
c17a278e57 New unit tests. 2017-10-04 15:27:20 +02:00
James Cole
6770b8396a Fix sprintf error #893 2017-10-04 14:58:03 +02:00
James Cole
81da87287e Make French a completed language. 2017-10-04 14:53:16 +02:00
James Cole
8267678593 New translations intro.php (French) 2017-10-04 12:20:15 +02:00
James Cole
675be5fb57 New translations intro.php (French) 2017-10-04 12:10:52 +02:00
James Cole
8058a8dfce New translations intro.php (French) 2017-10-04 12:01:43 +02:00
James Cole
5182a5cdc0 New translations list.php (French) 2017-10-04 12:01:41 +02:00
James Cole
ca86b81448 New translations intro.php (French) 2017-10-04 11:50:28 +02:00
James Cole
44e1262447 New translations form.php (French) 2017-10-04 11:50:27 +02:00
James Cole
d37a443854 New translations firefly.php (French) 2017-10-04 11:50:25 +02:00
James Cole
d426d7ddd1 New translations firefly.php (French) 2017-10-04 11:40:20 +02:00
James Cole
156ecf98f6 New translations firefly.php (French) 2017-10-04 11:30:49 +02:00
James Cole
f022789342 New translations firefly.php (French) 2017-10-04 11:25:33 +02:00
James Cole
593e9b5946 New translations bank.php (French) 2017-10-04 11:13:40 +02:00
James Cole
95ac1f5013 New translations firefly.php (French) 2017-10-04 11:13:39 +02:00
James Cole
35a5310485 Fix #893 2017-10-04 07:19:19 +02:00
James Cole
3b9ec379b5 New translations firefly.php (Polish) 2017-10-03 13:41:06 +02:00
James Cole
7df0230777 New translations firefly.php (Portuguese, Brazilian) 2017-10-03 13:41:03 +02:00
James Cole
66d36850a4 New translations firefly.php (Slovenian) 2017-10-03 13:41:01 +02:00
James Cole
97a655016f New translations firefly.php (Spanish) 2017-10-03 13:40:58 +02:00
James Cole
35bac16ccc New translations firefly.php (German) 2017-10-03 13:40:51 +02:00
James Cole
cb593da5b7 New translations firefly.php (French) 2017-10-03 13:40:49 +02:00
James Cole
2b09a00d3a New translations firefly.php (Dutch) 2017-10-03 13:40:42 +02:00
James Cole
f2383513e2 New translations firefly.php (Indonesian) 2017-10-03 13:40:32 +02:00
James Cole
25aaeead0e New translations firefly.php (Russian) 2017-10-03 13:40:23 +02:00
James Cole
a22a2fb4ef Fix #891 and 892 [skip ci] 2017-10-03 13:30:43 +02:00
James Cole
995fd0cfb9 New translations auth.php (Indonesian) 2017-10-03 12:30:31 +02:00
James Cole
011e0b1f29 New translations form.php (Indonesian) 2017-10-03 12:30:30 +02:00
James Cole
3c964e81de New translations firefly.php (Indonesian) 2017-10-03 12:30:29 +02:00
James Cole
b4f28504a3 New translations csv.php (Indonesian) 2017-10-03 12:30:26 +02:00
James Cole
92f22abb01 New translations breadcrumbs.php (Indonesian) 2017-10-03 12:30:25 +02:00
James Cole
7bdb8bd162 New translations config.php (Indonesian) 2017-10-03 12:30:24 +02:00
James Cole
9b687b3566 New translations list.php (Indonesian) 2017-10-03 12:30:23 +02:00
James Cole
9f622285ca New translations pagination.php (Indonesian) 2017-10-03 12:30:22 +02:00
James Cole
cbe123c25d New translations bank.php (Indonesian) 2017-10-03 12:30:21 +02:00
James Cole
3d30502dd9 New translations intro.php (Indonesian) 2017-10-03 12:30:20 +02:00
James Cole
7547e944a1 New translations demo.php (Indonesian) 2017-10-03 12:30:19 +02:00
James Cole
bed5e630af New translations passwords.php (Indonesian) 2017-10-03 12:30:18 +02:00
James Cole
418d75ad60 New translations validation.php (Indonesian) 2017-10-03 12:30:17 +02:00
James Cole
c000fe4557 Update tests 2017-10-03 10:41:48 +02:00
James Cole
dd9528f531 Migrate notes in upgrade database routine. 2017-10-03 10:41:29 +02:00
James Cole
d1a6b37eb3 Use note object instead of field #888 2017-10-03 10:30:56 +02:00
James Cole
4b3814d33a New translations list.php (Slovenian) 2017-10-03 05:41:19 +02:00
James Cole
c691957c54 New translations list.php (Spanish) 2017-10-03 05:41:18 +02:00
James Cole
2c26c42339 New translations list.php (Portuguese, Brazilian) 2017-10-03 05:41:16 +02:00
James Cole
ccd93bc442 New translations list.php (Polish) 2017-10-03 05:41:14 +02:00
James Cole
5b21cebec8 New translations list.php (Dutch) 2017-10-03 05:41:13 +02:00
James Cole
f2d1436b82 New translations list.php (German) 2017-10-03 05:41:12 +02:00
James Cole
2d1f6a22d3 New translations list.php (French) 2017-10-03 05:41:10 +02:00
James Cole
484d70ca86 New translations list.php (Russian) 2017-10-03 05:40:59 +02:00
James Cole
4af0c18020 Add missing translation [skip ci] 2017-10-03 05:31:48 +02:00
James Cole
a4b6589cbd New translations firefly.php (Spanish) 2017-10-03 05:31:05 +02:00
James Cole
b4affabb67 New translations firefly.php (Slovenian) 2017-10-03 05:31:02 +02:00
James Cole
1cb29ff395 New translations firefly.php (Portuguese, Brazilian) 2017-10-03 05:30:59 +02:00
James Cole
55739c801c New translations firefly.php (Dutch) 2017-10-03 05:30:56 +02:00
James Cole
c68777f385 New translations firefly.php (French) 2017-10-03 05:30:54 +02:00
James Cole
4f1d545468 New translations firefly.php (Polish) 2017-10-03 05:30:51 +02:00
James Cole
0f9220edc9 New translations firefly.php (German) 2017-10-03 05:30:48 +02:00
James Cole
6696513ef9 New translations firefly.php (Russian) 2017-10-03 05:30:35 +02:00
James Cole
95b5793f63 New triggers and actions for notes. #872 2017-10-03 05:28:00 +02:00
James Cole
7a57c60891 Add config value to .env value. #882 2017-10-02 18:20:03 +02:00
James Cole
ebcd8dbd7c Set trusted proxies value from config if present. #882 2017-10-02 18:19:17 +02:00
James Cole
1bfa8f0139 Expand test coverage. 2017-10-02 16:27:21 +02:00
James Cole
2dfe2ddaf3 Attempt to cover all cases in amount converter, this fixes #840 2017-10-02 16:25:48 +02:00
James Cole
03f33c5e7e Remove routes (for help) 2017-10-02 16:24:31 +02:00
James Cole
2b73747ecf Button instead of a link #884 2017-10-02 14:41:06 +02:00
James Cole
174d01292f Fix #881 2017-10-02 08:47:57 +02:00
James Cole
782d675259 New translations firefly.php (Dutch) 2017-10-01 08:30:07 +02:00
James Cole
158ebdad30 New translations form.php (Dutch) 2017-10-01 08:30:05 +02:00
James Cole
9addbb979a Merge pull request #878 from Findus23/master
fix typo in nofollow
2017-09-30 18:03:02 +02:00
James Cole
b5375a5629 New translations firefly.php (Spanish) 2017-09-30 18:01:01 +02:00
James Cole
04200203a4 New translations form.php (Dutch) 2017-09-30 18:00:59 +02:00
James Cole
05a0dfdc2e New translations form.php (French) 2017-09-30 18:00:58 +02:00
James Cole
543a1d7835 New translations form.php (German) 2017-09-30 18:00:57 +02:00
James Cole
ec87651123 New translations firefly.php (Slovenian) 2017-09-30 18:00:55 +02:00
James Cole
c4bb05caf5 New translations firefly.php (Portuguese, Brazilian) 2017-09-30 18:00:53 +02:00
James Cole
52fdd35a66 New translations firefly.php (Dutch) 2017-09-30 18:00:50 +02:00
James Cole
6ee40342dc New translations firefly.php (French) 2017-09-30 18:00:48 +02:00
James Cole
42b7ae096c New translations firefly.php (Polish) 2017-09-30 18:00:45 +02:00
James Cole
95acbf69d3 New translations firefly.php (German) 2017-09-30 18:00:42 +02:00
James Cole
19326bb8ff New translations form.php (Polish) 2017-09-30 18:00:40 +02:00
James Cole
c208ba4d8f New translations form.php (Portuguese, Brazilian) 2017-09-30 18:00:39 +02:00
James Cole
9c4d3134ef New translations form.php (Slovenian) 2017-09-30 18:00:36 +02:00
James Cole
6b61883281 New translations form.php (Spanish) 2017-09-30 18:00:35 +02:00
James Cole
6bec07bdd3 New translations firefly.php (Russian) 2017-09-30 18:00:24 +02:00
James Cole
28b68bf0fd New translations form.php (Russian) 2017-09-30 18:00:21 +02:00
Lukas Winkler
85797a5d70 fix typo in nofollow 2017-09-30 17:56:51 +02:00
James Cole
cc61281523 Add openstreetmap with a mapbox.com layer. #420 2017-09-30 17:50:22 +02:00
James Cole
c0d62dfc86 Merge branch 'develop' of https://github.com/firefly-iii/firefly-iii into develop
* 'develop' of https://github.com/firefly-iii/firefly-iii:
  Fix dates in CHANGELOG. [skip ci]
2017-09-30 13:17:45 +02:00
James Cole
134f21bada Fix for #825 2017-09-30 13:16:12 +02:00
James Cole
73f3675966 Merge pull request #877 from pkoziol/develop
Fix dates in CHANGELOG
2017-09-30 12:38:55 +02:00
koziolek
5a28b285c2 Fix dates in CHANGELOG. [skip ci] 2017-09-30 12:36:56 +02:00
1311 changed files with 87204 additions and 32021 deletions

12
.codeclimate.yml Normal file
View File

@@ -0,0 +1,12 @@
---
exclude_patterns:
- public/lib/
- public/js/lib/
- public/fonts/
- public/css/jquery-ui/
- public/css/bootstrap-multiselect.css
- public/css/bootstrap-sortable.css
- public/css/bootstrap-tagsinput.css
- public/css/daterangepicker.css
- public/css/google-fonts.css
- .sandstorm/

View File

@@ -1,11 +1,24 @@
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
# Never set it to "testing".
APP_ENV=${FF_APP_ENV}
APP_DEBUG=false
APP_NAME=FireflyIII
APP_KEY=${FF_APP_KEY}
APP_LOG=daily
APP_LOG_LEVEL=warning
APP_URL=http://localhost
# Set to true if you want to see debug information in error screens.
APP_DEBUG=false
# This should be your email address
SITE_OWNER=mail@example.com
# The encryption key for your database and sessions. Keep this very secure.
# If you generate a new one all existing data must be considered LOST.
# Change it to a string of exactly 32 chars or use command `php artisan key:generate` to generate it
APP_KEY=${FF_APP_KEY}
# APP_URL and TRUSTED_PROXIES are useful when using Docker and/or a reverse proxy.
APP_URL=${APP_URL}
TRUSTED_PROXIES=${TRUSTED_PROXIES}
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# If you use SQLite, set connection to `sqlite` and remove the database, username and password settings.
DB_CONNECTION=mysql
DB_HOST=${FF_DB_HOST}
DB_PORT=3306
@@ -13,19 +26,27 @@ DB_DATABASE=${FF_DB_NAME}
DB_USERNAME=${FF_DB_USER}
DB_PASSWORD=${FF_DB_PASSWORD}
BROADCAST_DRIVER=log
# 'daily' is the default logging mode giving you 5 daily rotated log files in /storage/logs/.
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
# Also available are 'syslog' and 'errorlog' which will log to the system itself.
APP_LOG=daily
# Log level. You can set this from least severe to most severe:
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever.
APP_LOG_LEVEL=warning
# If you're looking for performance improvements, you could install memcached.
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
# Cookie settings. Should not be necessary to change these.
COOKIE_PATH="/"
COOKIE_DOMAIN=
COOKIE_SECURE=false
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# If you want Firefly III to mail you, update these settings
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
@@ -34,23 +55,36 @@ MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
# Firefly III can send you the following messages
SEND_REGISTRATION_MAIL=true
SEND_ERROR_MESSAGE=true
SHOW_INCOMPLETE_TRANSLATIONS=false
CACHE_PREFIX=firefly
# Set a Mapbox API key here (see mapbox.com) so there might be a map available at various places.
MAPBOX_API_KEY=
EXCHANGE_RATE_SERVICE=fixerio
GOOGLE_MAPS_API_KEY=
# If you wish to track your own behavior over Firefly III, set a valid analytics tracker ID here.
ANALYTICS_ID=
SITE_OWNER=mail@example.com
# Most parts of the database are encrypted by default, but you can turn this off if you want to.
# This makes it easier to migrate your database. Not that some fields will never be decrypted.
USE_ENCRYPTION=true
# Leave the following configuration vars as is.
# Unless you like to tinker and know what you're doing.
APP_NAME=FireflyIII
BROADCAST_DRIVER=log
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
CACHE_PREFIX=firefly
SEARCH_RESULT_LIMIT=50
EXCHANGE_RATE_SERVICE=fixerio
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_ID=
DEMO_USERNAME=
DEMO_PASSWORD=
IS_DOCKER=true
IS_SANDSTORM=false
IS_HEROKU=false

View File

@@ -1,11 +1,24 @@
APP_ENV=production
APP_DEBUG=false
APP_NAME=FireflyIII
APP_KEY=SomeRandomStringOf32CharsExactly
APP_LOG=daily
APP_LOG_LEVEL=warning
APP_URL=http://localhost
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
# Never set it to "testing".
APP_ENV=local
# Set to true if you want to see debug information in error screens.
APP_DEBUG=false
# This should be your email address
SITE_OWNER=mail@example.com
# The encryption key for your database and sessions. Keep this very secure.
# If you generate a new one all existing data must be considered LOST.
# Change it to a string of exactly 32 chars or use command `php artisan key:generate` to generate it
APP_KEY=SomeRandomStringOf32CharsExactly
# APP_URL and TRUSTED_PROXIES are useful when using Docker and/or a reverse proxy.
APP_URL=http://localhost
TRUSTED_PROXIES=
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# If you use SQLite, set connection to `sqlite` and remove the database, username and password settings.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
@@ -13,19 +26,27 @@ DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
BROADCAST_DRIVER=log
# 'daily' is the default logging mode giving you 5 daily rotated log files in /storage/logs/.
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
# Also available are 'syslog' and 'errorlog' which will log to the system itself.
APP_LOG=daily
# Log level. You can set this from least severe to most severe:
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever.
APP_LOG_LEVEL=notice
# If you're looking for performance improvements, you could install memcached.
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
# Cookie settings. Should not be necessary to change these.
COOKIE_PATH="/"
COOKIE_DOMAIN=
COOKIE_SECURE=false
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# If you want Firefly III to mail you, update these settings
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
@@ -34,23 +55,36 @@ MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
# Firefly III can send you the following messages
SEND_REGISTRATION_MAIL=true
SEND_ERROR_MESSAGE=true
SHOW_INCOMPLETE_TRANSLATIONS=false
CACHE_PREFIX=firefly
# Set a Mapbox API key here (see mapbox.com) so there might be a map available at various places.
MAPBOX_API_KEY=
EXCHANGE_RATE_SERVICE=fixerio
GOOGLE_MAPS_API_KEY=
# If you wish to track your own behavior over Firefly III, set a valid analytics tracker ID here.
ANALYTICS_ID=
SITE_OWNER=mail@example.com
# Most parts of the database are encrypted by default, but you can turn this off if you want to.
# This makes it easier to migrate your database. Not that some fields will never be decrypted.
USE_ENCRYPTION=true
# Leave the following configuration vars as is.
# Unless you like to tinker and know what you're doing.
APP_NAME=FireflyIII
BROADCAST_DRIVER=log
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
CACHE_PREFIX=firefly
SEARCH_RESULT_LIMIT=50
EXCHANGE_RATE_SERVICE=fixerio
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_ID=
DEMO_USERNAME=
DEMO_PASSWORD=
IS_DOCKER=false
IS_SANDSTORM=false
IS_HEROKU=false

90
.env.heroku Normal file
View File

@@ -0,0 +1,90 @@
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
# Never set it to "testing".
APP_ENV=heroku
# Set to true if you want to see debug information in error screens.
APP_DEBUG=false
# This should be your email address
SITE_OWNER=heroku@example.com
# The encryption key for your database and sessions. Keep this very secure.
# If you generate a new one all existing data must be considered LOST.
# Change it to a string of exactly 32 chars or use command `php artisan key:generate` to generate it
APP_KEY=7ahyYVPVsmxjdhsweWCauGeJfwc92NP2
# APP_URL and TRUSTED_PROXIES are useful when using Docker and/or a reverse proxy.
APP_URL=http://localhost
TRUSTED_PROXIES=
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# If you use SQLite, set connection to `sqlite` and remove the database, username and password settings.
DB_CONNECTION=pgsql
# 'daily' is the default logging mode giving you 5 daily rotated log files in /storage/logs/.
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
# Also available are 'syslog' and 'errorlog' which will log to the system itself.
APP_LOG=errorlog
# Log level. You can set this from least severe to most severe:
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever.
APP_LOG_LEVEL=debug
# If you're looking for performance improvements, you could install memcached.
CACHE_DRIVER=file
SESSION_DRIVER=file
# Cookie settings. Should not be necessary to change these.
COOKIE_PATH="/"
COOKIE_DOMAIN=
COOKIE_SECURE=false
# If you want Firefly III to mail you, update these settings
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_FROM=changeme@example.com
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
# Firefly III can send you the following messages
SEND_REGISTRATION_MAIL=true
SEND_ERROR_MESSAGE=true
# Set a Mapbox API key here (see mapbox.com) so there might be a map available at various places.
MAPBOX_API_KEY=
# If you wish to track your own behavior over Firefly III, set a valid analytics tracker ID here.
ANALYTICS_ID=
# Most parts of the database are encrypted by default, but you can turn this off if you want to.
# This makes it easier to migrate your database. Not that some fields will never be decrypted.
USE_ENCRYPTION=true
# Leave the following configuration vars as is.
# Unless you like to tinker and know what you're doing.
APP_NAME=FireflyIII
BROADCAST_DRIVER=log
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
CACHE_PREFIX=firefly
SEARCH_RESULT_LIMIT=50
EXCHANGE_RATE_SERVICE=fixerio
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_ID=
DEMO_USERNAME=
DEMO_PASSWORD=
IS_DOCKER=false
IS_SANDSTORM=false
IS_HEROKU=true

View File

@@ -1,11 +1,24 @@
APP_ENV=production
APP_DEBUG=true
APP_NAME=FireflyIII
APP_KEY=SomeRandomStringOf32CharsExactly
APP_LOG=syslog
APP_LOG_LEVEL=debug
APP_URL=http://localhost
# You can leave this on "local". If you change it to production most console commands will ask for extra confirmation.
# Never set it to "testing".
APP_ENV=local
# Set to true if you want to see debug information in error screens.
APP_DEBUG=false
# This should be your email address
SITE_OWNER=sandstorm@example.com
# The encryption key for your database and sessions. Keep this very secure.
# If you generate a new one all existing data must be considered LOST.
# Change it to a string of exactly 32 chars or use command `php artisan key:generate` to generate it
APP_KEY=SomeRandomStringOf32CharsExactly
# APP_URL and TRUSTED_PROXIES are useful when using Docker and/or a reverse proxy.
APP_URL=http://localhost
TRUSTED_PROXIES=
# Database credentials. Make sure the database exists. I recommend a dedicated user for Firefly III
# If you use SQLite, set connection to `sqlite` and remove the database, username and password settings.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
@@ -13,19 +26,27 @@ DB_DATABASE=firefly
DB_USERNAME=firefly
DB_PASSWORD=firefly
BROADCAST_DRIVER=log
# 'daily' is the default logging mode giving you 5 daily rotated log files in /storage/logs/.
# Several other options exist. You can use 'single' for one big fat error log (not recommended).
# Also available are 'syslog' and 'errorlog' which will log to the system itself.
APP_LOG=syslog
# Log level. You can set this from least severe to most severe:
# debug, info, notice, warning, error, critical, alert, emergency
# If you set it to debug your logs will grow large, and fast. If you set it to emergency probably
# nothing will get logged, ever.
APP_LOG_LEVEL=info
# If you're looking for performance improvements, you could install memcached.
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
# Cookie settings. Should not be necessary to change these.
COOKIE_PATH="/"
COOKIE_DOMAIN=
COOKIE_SECURE=false
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# If you want Firefly III to mail you, update these settings
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
@@ -34,22 +55,36 @@ MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
# Firefly III can send you the following messages
SEND_REGISTRATION_MAIL=true
SEND_ERROR_MESSAGE=true
SHOW_INCOMPLETE_TRANSLATIONS=false
CACHE_PREFIX=firefly
# Set a Mapbox API key here (see mapbox.com) so there might be a map available at various places.
MAPBOX_API_KEY=
EXCHANGE_RATE_SERVICE=fixerio
GOOGLE_MAPS_API_KEY=
# If you wish to track your own behavior over Firefly III, set a valid analytics tracker ID here.
ANALYTICS_ID=
SITE_OWNER=mail@example.com
# Most parts of the database are encrypted by default, but you can turn this off if you want to.
# This makes it easier to migrate your database. Not that some fields will never be decrypted.
USE_ENCRYPTION=true
# Leave the following configuration vars as is.
# Unless you like to tinker and know what you're doing.
APP_NAME=FireflyIII
BROADCAST_DRIVER=log
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
CACHE_PREFIX=firefly
SEARCH_RESULT_LIMIT=50
EXCHANGE_RATE_SERVICE=fixerio
PUSHER_KEY=
PUSHER_SECRET=
PUSHER_ID=
DEMO_USERNAME=
DEMO_PASSWORD=
IS_DOCKER=false
IS_SANDSTORM=true
IS_HEROKU=false

View File

@@ -5,10 +5,12 @@ APP_KEY=TestTestTestTestTestTestTestTest
APP_LOG=daily
APP_LOG_LEVEL=debug
APP_URL=http://localhost
TRUSTED_PROXIES=
DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306
#DB_DATABASE=firefly
DB_USERNAME=homestead
DB_PASSWORD=
@@ -35,13 +37,13 @@ MAIL_ENCRYPTION=null
SEND_REGISTRATION_MAIL=true
SEND_ERROR_MESSAGE=true
SHOW_INCOMPLETE_TRANSLATIONS=false
CACHE_PREFIX=firefly
SEARCH_RESULT_LIMIT=50
EXCHANGE_RATE_SERVICE=fixerio
GOOGLE_MAPS_API_KEY=
MAPBOX_API_KEY=
ANALYTICS_ID=
SITE_OWNER=mail@example.com
USE_ENCRYPTION=true
@@ -53,3 +55,6 @@ PUSHER_ID=
DEMO_USERNAME=
DEMO_PASSWORD=
IS_DOCKER=false
IS_SANDSTORM=false
IS_HEROKU=false

11
.github/SUPPORT.md vendored
View File

@@ -1,11 +0,0 @@
# Welcome to Firefly III on Github!
:+1::tada: Thank you for taking the time to contribute something to Firefly III!
## Bugs
First of all: thank you for reporting a bug instead of ditching the tool altogether. If you find a bug, please take the time and see if the [demo site](https://firefly-iii.nder.be/) is also suffering from this bug. Include as many log files and details as you think are necessary. Bugs have a lot of priority!
## Installation problems
Please take the time to read the [installation guide FAQ](https://firefly-iii.github.io/installation-guide-faq/) and make sure you search through closed issues for the problems other people have had. Your problem may be among them! If not, open an issue and I will help where I can.

View File

@@ -4,7 +4,7 @@
## Feature requests
I am always interested in expanding Firefly III's many features. If you are requesting a new feature, please check out the list of [often requested features](https://firefly-iii.github.io/requested-features/).
I am always interested in expanding Firefly III's many features. Just open a ticket or [drop me a line](mailto:thegrumpydictator@gmail.com).
## Pull requests

11
.github/issue_template.md vendored Normal file
View File

@@ -0,0 +1,11 @@
I am running Firefly III version x.x.x
#### Description of my issue:
#### Steps to reproduce
(please include if this problem also exists on the demo site)
#### Other important details (log files, system info):
Please click the version number in the right corner of any Firefly III page to get debug information.

9
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,9 @@
Fixes # (if relevant)
Changes in this pull request:
-
-
-
@JC5

11
.github/support.md vendored Normal file
View File

@@ -0,0 +1,11 @@
# Welcome to Firefly III on Github!
:+1::tada: Thank you for taking the time to contribute something to Firefly III!
## Bugs
First of all: thank you for reporting a bug instead of ditching the tool altogether. If you find a bug, please take the time and see if the [demo site](https://demo.firefly-iii.org/) is also suffering from this bug. Include as many log files and details as you think are necessary. Bugs have a lot of priority!
## Installation problems
Please take the time to read the [installation guide FAQ](https://firefly-iii.org/installation-guide-faq/) and make sure you search through closed issues for the problems other people have had. Your problem may be among them! If not, open an issue and I will help where I can.

14
.htaccess Normal file
View File

@@ -0,0 +1,14 @@
# Optional: force HTTPS:
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteCond %{HTTPS} off
# RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
# </IfModule>
# To hide directory listing
Options All -Indexes
# To prevent access to .env and other files
<Files .*>
Deny from all
</Files>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -3,10 +3,9 @@
# This script only runs once, when the app connects to sandstorm.
set -euo pipefail
echo "In build.sh"
cd /opt/app
cp .env.sandstorm .env
if [ -f /opt/app/composer.json ] ; then

View File

@@ -1,3 +1,123 @@
# 3.4.3
# 4.7.0
- Support for Russian and Portuguese (Brazil)
- Support for the Spectre API (Salt Edge)
- Many strings now translatable thanks to [Nik-vr](https://github.com/Nik-vr) ([issue 1118](https://github.com/firefly-iii/firefly-iii/issues/1118), [issue 1116](https://github.com/firefly-iii/firefly-iii/issues/1116), [issue 1109](https://github.com/firefly-iii/firefly-iii/issues/1109), )
- Many buttons to quickly create stuff
- Sum of tables in reports, requested by [MacPaille](https://github.com/MacPaille) ([issue 1106](https://github.com/firefly-iii/firefly-iii/issues/1106))
- Future versions of Firefly III will notify you there is a new version, as suggested by [8bitgentleman](https://github.com/8bitgentleman) in [issue 1050](https://github.com/firefly-iii/firefly-iii/issues/1050)
- Improved net worth box [issue 1101](https://github.com/firefly-iii/firefly-iii/issues/1101) ([Nik-vr](https://github.com/Nik-vr))
- Nice dropdown in transaction list [issue 1082](https://github.com/firefly-iii/firefly-iii/issues/1082)
- Better support for local fonts thanks to [devlearner](https://github.com/devlearner) ([issue 1145](https://github.com/firefly-iii/firefly-iii/issues/1145))
- Improve attachment support and view capabilities (suggested by [trinhit](https://github.com/trinhit) in [issue 1146](https://github.com/firefly-iii/firefly-iii/issues/1146))
- Whole new [read me file](https://github.com/firefly-iii/firefly-iii/blob/master/readme.md), [new end user documentation](https://firefly-iii.readthedocs.io/en/latest/) and an [updated website](https://www.firefly-iii.org/)!
- Many charts and info-blocks now scale property ([issue 989](https://github.com/firefly-iii/firefly-iii/issues/989) and [issue 1040](https://github.com/firefly-iii/firefly-iii/issues/1040))
- Charts work in IE thanks to [devlearner](https://github.com/devlearner) ([issue 1107](https://github.com/firefly-iii/firefly-iii/issues/1107))
- Various fixes in import routine
- Bug that left charts empty ([issue 1088](https://github.com/firefly-iii/firefly-iii/issues/1088)), reported by various users amongst which [jinformatique](https://github.com/jinformatique)
- [Issue 1124](https://github.com/firefly-iii/firefly-iii/issues/1124), as reported by [gavu](https://github.com/gavu)
- [Issue 1125](https://github.com/firefly-iii/firefly-iii/issues/1125), as reported by [gavu](https://github.com/gavu)
- [Issue 1126](https://github.com/firefly-iii/firefly-iii/issues/1126), as reported by [gavu](https://github.com/gavu)
- [Issue 1131](https://github.com/firefly-iii/firefly-iii/issues/1131), as reported by [dp87](https://github.com/dp87)
- [Issue 1129](https://github.com/firefly-iii/firefly-iii/issues/1129), as reported by [gavu](https://github.com/gavu)
- [Issue 1132](https://github.com/firefly-iii/firefly-iii/issues/1132), as reported by [gavu](https://github.com/gavu)
- Issue with cache in Sandstorm ([issue 1130](https://github.com/firefly-iii/firefly-iii/issues/1130))
- [Issue 1134](https://github.com/firefly-iii/firefly-iii/issues/1134)
- [Issue 1140](https://github.com/firefly-iii/firefly-iii/issues/1140)
- [Issue 1141](https://github.com/firefly-iii/firefly-iii/issues/1141), reported by [ErikFontanel](https://github.com/ErikFontanel)
- [Issue 1142](https://github.com/firefly-iii/firefly-iii/issues/1142)
- Removed many access rights from the demo user
* Initial release on Sandstorm.io
# 4.6.13
- [Issue 1074](https://github.com/firefly-iii/firefly-iii/issues/1074), suggested by [MacPaille](https://github.com/MacPaille)
- [Issue 1077](https://github.com/firefly-iii/firefly-iii/issues/1077), suggested by [wtercato](https://github.com/wtercato)
- Bulk edit of transactions thanks to [vicmosin](https://github.com/vicmosin) ([issue 1078](https://github.com/firefly-iii/firefly-iii/issues/1078))
- Support for Turkish.
- [Issue 1090](https://github.com/firefly-iii/firefly-iii/issues/1090), suggested by [Findus23](https://github.com/Findus23)
- [Issue 1097](https://github.com/firefly-iii/firefly-iii/issues/1097), suggested by [kelvinhammond](https://github.com/kelvinhammond)
- [Issue 1093](https://github.com/firefly-iii/firefly-iii/issues/1093), suggested by [jinformatique](https://github.com/jinformatique)
- [Issue 1098](https://github.com/firefly-iii/firefly-iii/issues/1098), suggested by [Nik-vr](https://github.com/Nik-vr)
- [Issue 972](https://github.com/firefly-iii/firefly-iii/issues/972), reported by [pjotrvdh](https://github.com/pjotrvdh)
- [Issue 1079](https://github.com/firefly-iii/firefly-iii/issues/1079), reported by [gavu](https://github.com/gavu)
- [Issue 1080](https://github.com/firefly-iii/firefly-iii/issues/1080), reported by [zjean](https://github.com/zjean)
- [Issue 1083](https://github.com/firefly-iii/firefly-iii/issues/1083), reported by [skuzzle](https://github.com/skuzzle)
- [Issue 1085](https://github.com/firefly-iii/firefly-iii/issues/1085), reported by [nicoschreiner](https://github.com/nicoschreiner)
- [Issue 1087](https://github.com/firefly-iii/firefly-iii/issues/1087), reported by [4oo4](https://github.com/4oo4)
- [Issue 1089](https://github.com/firefly-iii/firefly-iii/issues/1089), reported by [robin5210](https://github.com/robin5210)
- [Issue 1092](https://github.com/firefly-iii/firefly-iii/issues/1092), reported by [kelvinhammond](https://github.com/kelvinhammond)
- [Issue 1096](https://github.com/firefly-iii/firefly-iii/issues/1096), reported by [wtercato](https://github.com/wtercato)
# 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 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/1034), as reported by [Aquariu](https://github.com/Aquariu)
- Extra admin check for [issue 1039](https://github.com/firefly-iii/firefly-iii/issues/1039), as reported by [ocdtrekkie](https://github.com/ocdtrekkie)
- Missing translations ([issue 1026](https://github.com/firefly-iii/firefly-iii/issues/1026)), as reported by [gavu](https://github.com/gavu) and [zjean](https://github.com/zjean)
- [Issue 1028](https://github.com/firefly-iii/firefly-iii/issues/1028), reported by [zjean](https://github.com/zjean)
- [Issue 1029](https://github.com/firefly-iii/firefly-iii/issues/1029), reported by [zjean](https://github.com/zjean)
- [Issue 1030](https://github.com/firefly-iii/firefly-iii/issues/1030), as reported by [Traxxi](https://github.com/Traxxi)
- [Issue 1036](https://github.com/firefly-iii/firefly-iii/issues/1036), as reported by [webence](https://github.com/webence)
- [Issue 1038](https://github.com/firefly-iii/firefly-iii/issues/1038), as reported by [gavu](https://github.com/gavu)
# 4.6.11
- A debug page at `/debug` for easier debug.
- Strings translatable (see [issue 976](https://github.com/firefly-iii/firefly-iii/issues/976)), thanks to [Findus23](https://github.com/Findus23)
- Even more strings are translatable (and translated), thanks to [pkoziol](https://github.com/pkoziol) (see [issue 979](https://github.com/firefly-iii/firefly-iii/issues/979))
- Reconciliation of accounts ([issue 736](https://github.com/firefly-iii/firefly-iii/issues/736)), as requested by [kristophr](https://github.com/kristophr) and several others
- Extended currency list, as suggested by @emuhendis in [issue 994](https://github.com/firefly-iii/firefly-iii/issues/994)
- [Issue 996](https://github.com/firefly-iii/firefly-iii/issues/996) as suggested by [dp87](https://github.com/dp87)
- Disabled Heroku support until I get it working again.
- [Issue 980](https://github.com/firefly-iii/firefly-iii/issues/980), reported by [Tim-Frensch](https://github.com/Tim-Frensch)
- [Issue 987](https://github.com/firefly-iii/firefly-iii/issues/987), reported by [gavu](https://github.com/gavu)
- [Issue 988](https://github.com/firefly-iii/firefly-iii/issues/988), reported by [gavu](https://github.com/gavu)
- [Issue 992](https://github.com/firefly-iii/firefly-iii/issues/992), reported by [ncicovic](https://github.com/ncicovic)
- [Issue 993](https://github.com/firefly-iii/firefly-iii/issues/993), reported by [gavu](https://github.com/gavu)
- [Issue 997](https://github.com/firefly-iii/firefly-iii/issues/997), reported by [gavu](https://github.com/gavu)
- [Issue 1000](https://github.com/firefly-iii/firefly-iii/issues/1000), reported by [xpfgsyb](https://github.com/xpfgsyb)
- [Issue 1001](https://github.com/firefly-iii/firefly-iii/issues/1001), reported by [gavu](https://github.com/gavu)
- [Issue 1002](https://github.com/firefly-iii/firefly-iii/issues/1002), reported by [ursweiss](https://github.com/ursweiss)
- [Issue 1003](https://github.com/firefly-iii/firefly-iii/issues/1003), reported by [ursweiss](https://github.com/ursweiss)
- [Issue 1004](https://github.com/firefly-iii/firefly-iii/issues/1004), reported by [Aquariu](https://github.com/Aquariu)
- [Issue 1010](https://github.com/firefly-iii/firefly-iii/issues/1010)
- [Issue 1014](https://github.com/firefly-iii/firefly-iii/issues/1014), reported by [ursweiss](https://github.com/ursweiss)
- [Issue 1016](https://github.com/firefly-iii/firefly-iii/issues/1016)
- [Issue 1024](https://github.com/firefly-iii/firefly-iii/issues/1024), reported by [gavu](https://github.com/gavu)
- [Issue 1025](https://github.com/firefly-iii/firefly-iii/issues/1025), reported by [gavu](https://github.com/gavu)
# 4.6.10
- Greatly expanded Docker support thanks to [alazare619](https://github.com/alazare619)
- [Issue 967](https://github.com/firefly-iii/firefly-iii/issues/967), thanks to [Aquariu](https://github.com/Aquariu)
- Improved Sandstorm support.
- [Issue 963](https://github.com/firefly-iii/firefly-iii/issues/963), as reported by [gavu](https://github.com/gavu)
- [Issue 970](https://github.com/firefly-iii/firefly-iii/issues/970), as reported by [gavu](https://github.com/gavu)
- [Issue 971](https://github.com/firefly-iii/firefly-iii/issues/971), as reported by [gavu](https://github.com/gavu)
- Various Sandstorm.io related issues.
# 4.6.9.1
- Updated license
- Updated file list
# 4.6.9
- First version that works!
# 3.4.3
- Initial release on Sandstorm.io

View File

@@ -1,6 +1,7 @@
#!/bin/bash
# Runs every time we create a new grain!
echo "Now in launcher.sh"
# Create a bunch of folders under the clean /var that php, nginx, and mysql expect to exist
mkdir -p /var/lib/mysql
@@ -30,22 +31,21 @@ mkdir -p /var/storage/framework/views
mkdir -p /var/storage/logs
mkdir -p /var/storage/upload
# Ensure mysql tables created
HOME=/etc/mysql /usr/bin/mysql_install_db --force
# Spawn mysqld, php
HOME=/etc/mysql /usr/sbin/mysqld &
/usr/sbin/php-fpm7.0 --nodaemonize --fpm-config /etc/php/7.0/fpm/php-fpm.conf &
/usr/sbin/php-fpm7.1 --nodaemonize --fpm-config /etc/php/7.1/fpm/php-fpm.conf &
# Wait until mysql and php have bound their sockets, indicating readiness
while [ ! -e /var/run/mysqld/mysqld.sock ] ; do
echo "waiting for mysql to be available at /var/run/mysqld/mysqld.sock"
sleep .5
done
while [ ! -e /var/run/php7.0-fpm.sock ] ; do
echo "waiting for php7.0-fpm to be available at /var/run/php7.0-fpm.sock"
while [ ! -e /var/run/php7.1-fpm.sock ] ; do
echo "waiting for php7.1-fpm to be available at /var/run/php7.1-fpm.sock"
sleep .5
done
@@ -58,5 +58,9 @@ echo "Migrating..."
php /opt/app/artisan migrate --seed --force
echo "Done!"
echo "Clear cache.."
php /opt/app/artisan cache:clear
echo "Done"
# Start nginx.
/usr/sbin/nginx -c /opt/app/.sandstorm/service-config/nginx.conf -g "daemon off;"

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
@0x9411e6c8b3c8a4b6;
@0xb0032512fca90cd9;
using Spk = import "/sandstorm/package.capnp";
# This imports:
@@ -15,8 +15,9 @@ const pkgdef :Spk.PackageDefinition = (
manifest = (
appTitle = (defaultText = "Firefly III"),
appVersion = 1,
appMarketingVersion = (defaultText = "3.4.6"),
appVersion = 8,
appMarketingVersion = (defaultText = "4.7.0"),
actions = [
# Define your "new document" handlers here.
( nounPhrase = (defaultText = "administration"),
@@ -40,10 +41,9 @@ const pkgdef :Spk.PackageDefinition = (
market = (png = (dpi1x = embed "app-graphics/firefly-iii-150.png"))
),
website = "https://firefly-iii.github.io/",
website = "https://firefly-iii.org/",
codeUrl = "https://github.com/firefly-iii/firefly-iii",
#license = (openSource = mit),
license = (proprietary = (defaultText = embed "../LICENSE")),
license = (openSource = gpl3),
# The license this package is distributed under. See
# https://docs.sandstorm.io/en/latest/developing/publishing-apps/#license
@@ -54,7 +54,6 @@ const pkgdef :Spk.PackageDefinition = (
author = (
contactEmail = "thegrumpydictator@gmail.com",
upstreamAuthor = "James Cole",
pgpSignature = embed "pgp-signature",
),
@@ -66,9 +65,9 @@ const pkgdef :Spk.PackageDefinition = (
# Sizes are given in device-independent pixels, so if you took these
# screenshots on a Retina-style high DPI screen, divide each dimension by two.
(width = 1200, height = 1000, png = embed "screenshots/screenshot-1.png"),
(width = 1200, height = 1000, png = embed "screenshots/screenshot-2.png"),
(width = 1200, height = 1518, png = embed "screenshots/screenshot-3.png"),
(width = 1291, height = 800, png = embed "screenshots/screenshot-1.png"),
(width = 1291, height = 800, png = embed "screenshots/screenshot-2.png"),
(width = 1291, height = 800, png = embed "screenshots/screenshot-3.png"),
],
changeLog = (defaultText = embed "changelog.md"),
@@ -97,7 +96,7 @@ const pkgdef :Spk.PackageDefinition = (
# `spk dev` will write a list of all the files your app uses to this file.
# You should review it later, before shipping your app.
alwaysInclude = ["app","bootstrap","config","database","public","resources","routes"],
alwaysInclude = ["opt/app/app","opt/app/bootstrap","opt/app/config","opt/app/database","opt/app/public","opt/app/resources","opt/app/routes","opt/app/vendor"],
# Fill this list with more names of files or directories that should be
# included in your package, even if not listed in sandstorm-files.list.
# Use this to force-include stuff that you know you need but which may
@@ -176,7 +175,7 @@ const pkgdef :Spk.PackageDefinition = (
const myCommand :Spk.Manifest.Command = (
# Here we define the command used to start up your server.
argv = ["/sandstorm-http-bridge", "8000", "--", "/opt/app/.sandstorm/launcher.sh"],
argv = ["/sandstorm-http-bridge", "8000", "--", "/bin/bash", "/opt/app/.sandstorm/launcher.sh"],
environ = [
# Note that this defines the *entire* environment seen by your app.
(key = "PATH", value = "/usr/local/bin:/usr/bin:/bin"),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 KiB

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 280 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View File

@@ -53,10 +53,11 @@ http {
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php7.0-fpm.sock;
fastcgi_pass unix:/var/run/php7.1-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 900;
fastcgi_param QUERY_STRING $query_string;

View File

@@ -2,6 +2,7 @@
# When you change this file, you must take manual action. Read this doc:
# - https://docs.sandstorm.io/en/latest/vagrant-spk/customizing/#setupsh
echo "Now in setup.sh"
set -euo pipefail
@@ -11,39 +12,61 @@ export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y python-software-properties software-properties-common
# install all languages
sed -i 's/# de_DE.UTF-8 UTF-8/de_DE.UTF-8 UTF-8/g' /etc/locale.gen
sed -i 's/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/g' /etc/locale.gen
sed -i 's/# id_ID.UTF-8 UTF-8/id_ID.UTF-8 UTF-8/g' /etc/locale.gen
sed -i 's/# nl_NL.UTF-8 UTF-8/nl_NL.UTF-8 UTF-8/g' /etc/locale.gen
sed -i 's/# pl_PL.UTF-8 UTF-8/pl_PL.UTF-8 UTF-8/g' /etc/locale.gen
sed -i 's/# ru_RU.UTF-8 UTF-8/ru_RU.UTF-8 UTF-8/g' /etc/locale.gen
sed -i 's/# tr_TR.UTF-8 UTF-8/tr_TR.UTF-8 UTF-8/g' /etc/locale.gen
dpkg-reconfigure --frontend=noninteractive locales
# actually add repository
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9C74FEEA2098A6E
add-apt-repository "deb http://packages.dotdeb.org jessie all"
# add another repos
apt-get install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
# install packages.
apt-get update
apt-get install -y nginx php7.0-fpm php7.0-mysql php7.0-cli php7.0-curl git php7.0-dev php7.0-intl php7.0-dom php7.0-mbstring php7.0-bcmath mysql-server
apt-get install -y nginx php7.1-fpm php7.1-mysql php7.1-gd php7.1-cli php7.1-curl git php7.1-dev php7.1-zip php7.1-intl php7.1-dom php7.1-mbstring php7.1-bcmath mysql-server
service nginx stop
service php7.0-fpm stop
service php7.1-fpm stop
service mysql stop
systemctl disable nginx
systemctl disable php7.0-fpm
systemctl disable php7.1-fpm
systemctl disable mysql
# patch /etc/php/7.0/fpm/pool.d/www.conf to not change uid/gid to www-data
# make php.ini display errors:
sed -i 's/display_errors = Off/display_errors = On/g' /etc/php/7.1/fpm/php.ini
# patch /etc/php/7.1/fpm/pool.d/www.conf to not change uid/gid to www-data
sed --in-place='' \
--expression='s/^listen.owner = www-data/;listen.owner = www-data/' \
--expression='s/^listen.group = www-data/;listen.group = www-data/' \
/etc/php/7.0/fpm/pool.d/www.conf
# patch /etc/php/7.0/fpm/php-fpm.conf to not have a pidfile
/etc/php/7.1/fpm/pool.d/www.conf
# patch /etc/php/7.1/fpm/php-fpm.conf to not have a pidfile
sed --in-place='' \
--expression='s/^pid =/;pid =/' \
/etc/php/7.0/fpm/php-fpm.conf
/etc/php/7.1/fpm/php-fpm.conf
# move sock file to better dir:
sed --in-place='' \
--expression='s/^listen = \/run\/php\/php7.0-fpm.sock/listen = \/var\/run\/php7.0-fpm.sock/' \
/etc/php/7.0/fpm/pool.d/www.conf
--expression='s/^listen = \/run\/php\/php7.1-fpm.sock/listen = \/var\/run\/php7.1-fpm.sock/' \
/etc/php/7.1/fpm/pool.d/www.conf
# patch /etc/php/7.0/fpm/pool.d/www.conf to no clear environment variables
# patch /etc/php/7.1/fpm/pool.d/www.conf to no clear environment variables
# so we can pass in SANDSTORM=1 to apps
sed --in-place='' \
--expression='s/^;clear_env = no/clear_env=no/' \
/etc/php/7.0/fpm/pool.d/www.conf
/etc/php/7.1/fpm/pool.d/www.conf
# patch mysql conf to not change uid, and to use /var/tmp over /tmp
# for secure-file-priv see https://github.com/sandstorm-io/vagrant-spk/issues/195
sed --in-place='' \
@@ -59,3 +82,5 @@ cat <<EOF > /etc/mysql/conf.d/sandstorm.cnf
# Set the main data file to grow by 1MB at a time, rather than 8MB at a time.
innodb_autoextend_increment = 1
EOF

View File

@@ -1,51 +1,58 @@
# .scrutinizer.yml
tools:
external_code_coverage: false
filter:
paths:
---
build:
nodes:
analysis:
project_setup:
override: true
tests:
override:
- php-scrutinizer-run
checks:
javascript: true
php:
align_assignments: true
avoid_fixme_comments: true
avoid_multiple_statements_on_same_line: true
avoid_perl_style_comments: true
avoid_todo_comments: true
duplication: false
encourage_single_quotes: true
newline_at_end_of_file: true
no_goto: true
no_long_variable_names:
maximum: "20"
no_short_method_names:
minimum: "3"
no_short_variable_names:
minimum: "3"
optional_parameters_at_the_end: true
parameter_doc_comments: true
remove_extra_empty_lines: true
return_doc_comment_if_not_inferrable: true
return_doc_comments: true
uppercase_constants: true
use_self_instead_of_fqcn: true
coding_style:
php:
spaces:
around_operators:
concatenation: true
other:
after_type_cast: false
filter:
excluded_paths:
- database/migrations/*
- bootstrap/*
- config/*
- docker/*
- public/js/lib/*
- public/lib/adminlte/js/*
- public/lib/bootstrap/js/*
- resources/*
- routes/*
- storage/*
paths:
- app/*
- public/js/ff/*
excluded_paths:
- "database/migrations/*"
- "bootstrap/*"
- "config/*"
- "docker/*"
- "public/js/lib/*"
- "public/lib/adminlte/js/*"
- "public/lib/bootstrap/js/*"
- "resources/*"
- "routes/*"
- "storage/*"
checks:
php:
use_self_instead_of_fqcn: true
uppercase_constants: true
return_doc_comments: true
return_doc_comment_if_not_inferrable: true
remove_extra_empty_lines: true
parameter_doc_comments: true
optional_parameters_at_the_end: true
no_short_variable_names:
minimum: '3'
no_short_method_names:
minimum: '3'
no_long_variable_names:
maximum: '20'
no_goto: true
newline_at_end_of_file: true
encourage_single_quotes: true
avoid_todo_comments: true
avoid_perl_style_comments: true
avoid_fixme_comments: true
avoid_multiple_statements_on_same_line: true
align_assignments: true
duplication: false
javascript: true
coding_style:
php:
spaces:
around_operators:
concatenation: true
other:
after_type_cast: false
tools:
external_code_coverage: false

View File

@@ -1,6 +1,7 @@
language: php
php:
- 7.1
- 7.2
cache:
directories:
@@ -19,10 +20,11 @@ install:
- mkdir -p build/logs
script:
- phpunit -c phpunit.xml
- phpunit -c phpunit.coverage.xml
#after_success:
# - travis_retry php vendor/bin/coveralls -x storage/build/clover.xml
after_success:
- travis_retry php vendor/bin/php-coveralls -x storage/build/clover-all.xml
- bash <(curl -s https://codecov.io/bash) -f storage/build/clover-all.xml
# safelist
branches:

View File

@@ -1,791 +0,0 @@
# Change Log
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [4.6.6] - 2015-05-25
### Added
- #826, reported by @pkoziol.
- #855, by @ms32035
- #786, by @SmilingWorlock
- #875, by @gavu
- #834, by @gavu (and others)
### Changed
- Upgraded to Laravel 5.5
- Add version parameter to CSS and JS files
- #823, #824 fixed Docker config by @DieBauer
### Fixed
- #830
- #822, reported by @gazben
- #827, reported by @pkoziol
- #835, reported by @gavu
- #836, reported by @pkoziol
- #838, reported by @gavu
- #839, reported by @gavu
- #843, reported by @gavu
- #837, reported by @gavu
- #845, reported by @gavu
- #846, reported by @gavu
- #848, reported by @gavu
- #854, reported by @gavu
- #866, reported by @pkoziol
- #847, reported by @gavu
- #853, reported by @gavu
- #857, reported by @pkoziol
- #865, reported by @simonsmiley
- #826, reported by @pkoziol
- #856, reported by @ms32035
- #860, reported by @gavu
- #861, reported by @gavu
- #870, reported by @gavu
## [4.6.5] - 2017-09-09
### Added
- #616, The ability to link transactions
- #763, as suggested by @tannie
- #770, as suggested by @skibbipl
- #780, as suggested by @skibbipl
- #784, as suggested by @SmilingWorlock
- Lots of code for future support of automated Bunq imports
### Changed
- Rewrote the export routine
- #782, as suggested by @NiceGuyIT
- #800, as suggested by @jleeong
### Fixed
- #724, reported by @skibbipl
- #738, reported by @skibbipl
- #760, reported by @leander091
- #764, reported by @tannie
- #792, reported by @jleeong
- #793, reported by @nicoschreiner
- #797, reported by @leander091
- #801, reported by @pkoziol
- #803, reported by @pkoziol
- #805, reported by @pkoziol
- #806, reported by @pkoziol
- #807, reported by @pkoziol
- #808, reported by @pkoziol
- #809, reported by @pkoziol
- #814, reported by @nicoschreiner
- #818, reported by @gavu
- #819, reported by @DieBauer
- #820, reported by @simonsmiley
- Various other fixes
## [4.6.4] - 2017-08-13
### Added
- PHP7.1 support
- Routine to decrypt attachments from the command line, for issue #671
- A routine that can check if your password has been stolen in the past.
- Split transaction shows amount left to be split
### Changed
- Importer can (potentially) handle new import routines such as banks.
- Importer can fall back from JSON errors
### Deprecated
- Initial release.
### Removed
- PHP7.0 support
- Support for extended tag modes
- Remove "time jumps" to non-empty periods
### Fixed
- #717, reported by @NiceGuyIT
- #718, reported by @wtercato
- #722, reported by @simonsmiley
- #648, reported by @skibbipl
- #730, reported by @ragnarkarlsson
- #733, reported by @xpfgsyb
- #735, reported by @kristophr
- #739, reported by @skibbipl
- #515, reported by @schwalberich
- #743, reported by @simonsmiley
- #746, reported by @tannie
- #747, reported by @tannie
### Security
- Initial release.
## [4.6.3.1] - 2017-07-23
### Fixed
- Hotfix to close issue #715
## [4.6.3] - 2017-07-23
This will be the last release to support PHP 7.0.
### Added
- New guidelines and new introduction tour to aid new users.
- Rules can now be applied at will to transactions, not just rule groups.
### Changed
- Improved category overview.
- Improved budget overview.
- Improved budget report.
- Improved command line import responsiveness and speed.
- All code comparisons are now strict.
- Improve search page.
- Charts are easier to read thanks to @simonsmiley
- Fixed #708.
### Fixed
- Fixed bug where import would not respect default account. #694
- Fixed various broken paths
- Fixed several import inconsistencies.
- Various bug fixes.
### Security
- Initial release.
## [4.6.2] - 2017-07-08
### Added
- Links added to boxes, idea by @simonsmiley
### Fixed
- Various bugs in import routine
## [4.6.1] - 2017-07-02
### Fixed
- Fixed several small issues all around.
## [4.6.0] - 2017-06-28
### Changed
- Revamped import routine. Will be buggy.
### Fixed
- Issue #667, postgresql reported by @skibbipl.
- Issue #680 by @Xeli
- Fixed #660
- Fixes #672, reported by @dzaikos
- Translation error fixed by
- Fix a bug where the balance routine forgot to account for accounts without a currency preference.
- Various other bugfixes.
## [4.5.0] - 2017-06-07
### Added
- Better support for multi-currency transactions and display of transactions, accounts and everything. This requires a database overhaul (moving the currency information to specific transactions) so be careful when upgrading.
- Translations for Spanish and Slovenian.
- New interface for budget page, ~~stolen from~~ inspired by YNAB.
- Expanded Docker to work with postgresql as well, thanks to @kressh
### Fixed
- PostgreSQL support in database upgrade routine (#644, reported by @skibbipl)
- Frontpage budget chart was off, fix by @nhaarman
- Was not possible to remove opening balance.
## [4.4.3] - 2017-05-03
### Added
- Added support for Slovenian
- Removed support for Spanish. No translations whatsoever by the guy who requested it.
- Removed support for Russian. Same thing.
- Removed support for Croatian. Same thing.
- Removed support for Chinese Traditional, Hong Kong. Same thing.
### Changed
- The journal collector, an internal piece of code to collect transactions, now uses a slightly different method of collecting journals. This may cause problems.
### Fixed
- Issue #638 as reported by [worldworm](https://github.com/worldworm).
- Possible fix for #624
## [4.4.2] - 2017-04-27
### Fixed
- Fixed a bug where the opening balance could not be stored.
## [4.4.1] - 2017-04-27
### Added
- Support for deployment on Heroku
### Fixed
- Bug in new-user routine.
## [4.4.0] - 2017-04-23
### Added
- Firefly III can now handle foreign currencies better, including some code to get the exchange rate live from the web.
- Can now make rules for attachments, see #608, as suggested by dzaikos.
### Fixed
- Fixed #629, reported by forcaeluz
- Fixed #630, reported by welbert
- And more various bug fixes.
## [4.3.8] - 2017-04-08
### Added
- Better overview / show pages.
- #628, as reported by [xzaz](https://github.com/xzaz).
- Greatly expanded test coverage
### Fixed
- #619, as reported by [dfiel](https://github.com/dfiel).
- #620, as reported by [forcaeluz](https://github.com/forcaeluz).
- Attempt to fix #624, as reported by [TheSerenin](https://github.com/TheSerenin).
- Favicon link is relative now, fixed by [welbert](https://github.com/welbert).
- Some search bugs
## [4.3.7] - 2017-03-06
### Added
- Nice user friendly views for empty lists.
- Extended contribution guidelines.
- First version of financial report filtered on tags.
- Suggested monthly savings for piggy banks, by [Zsub](https://github.com/Zsub)
- Better test coverage.
### Changed
- Slightly changed tag overview.
- Consistent icon for bill in list.
- Slightly changed account overview.
### Removed
- Removed IDE specific views from .gitignore, issue #598
### Fixed
- Force key generation during installation.
- The `date` function takes the fieldname where a date is stored, not the literal date by [Zsub](https://github.com/Zsub)
- Improved budget frontpage chart, as suggested by [skibbipl](https://github.com/skibbipl)
- Issue #602 and #607, as reported by [skibbipl](https://github.com/skibbipl) and [dzaikos](https://github.com/dzaikos).
- Issue #605, as reported by [Zsub](https://github.com/Zsub).
- Issue #599, as reported by [leander091](https://github.com/leander091).
- Issue #610, as reported by [skibbipl](https://github.com/skibbipl).
- Issue #611, as reported by [ragnarkarlsson](https://github.com/ragnarkarlsson).
- Issue #612, as reported by [ragnarkarlsson](https://github.com/ragnarkarlsson).
- Issue #614, as reported by [worldworm](https://github.com/worldworm).
- Various other bug fixes.
## [4.3.6] - 2017-02-20
### Fixed
- #578, reported by [xpfgsyb](https://github.com/xpfgsyb).
## [4.3.5] - 2017-02-19
### Added
- Beta support for Sandstorm.IO
- Docker support by [@schoentoon](https://github.com/schoentoon), [@elohmeier](https://github.com/elohmeier), [@patrickkostjens](https://github.com/patrickkostjens) and [@crash7](https://github.com/crash7)!
- Can now use special keywords in the search to search for specic dates, categories, etc.
### Changed
- Updated to laravel 5.4!
- User friendly error message
- Updated locales to support more operating systems, first reported in #536 by [dabenzel](https://github.com/dabenzel)
- Updated budget report
- Improved 404 page
- Smooth curves, improved by [elamperti](https://github.com/elamperti).
### Fixed
- #549
- #553
- Fixed #559 reported by [elamperti](https://github.com/elamperti).
- #565, as reported by a user over the mail
- #566, as reported by [dspeckmann](https://github.com/dspeckmann)
- #567, as reported by [winsomniak](https://github.com/winsomniak)
- #569, as reported by [winsomniak](https://github.com/winsomniak)
- #572, as reported by [zjean](https://github.com/zjean)
- Many issues with the transaction filters which will fix reports (they tended to display the wrong amount).
## [4.3.4] - 2017-02-02
### Fixed
- Fixed bug #550, reported by [worldworm](https://github.com/worldworm)!
- Fixed bug #551, reported by [t-me](https://github.com/t-me)!
## [4.3.3] - 2017-01-30
_The 100th release of Firefly!_
### Added
- Add locales to Docker (#534) by [elohmeier](https://github.com/elohmeier).
- Optional database encryption. On by default.
- Datepicker for Firefox and other browsers.
- New instruction block for updating and installing.
- Ability to clone transactions.
- Use multi-select Bootstrap thing instead of massive lists of checkboxes.
### Removed
- Lots of old Javascript
### Fixed
- Missing sort broke various charts
- Bug in reports that made amounts behave weird
- Various bug fixes
### Security
- Tested FF against the naughty string list.
## [4.3.2] - 2017-01-09
An intermediate release because something in the Twig and Twigbridge libraries is broken and I have to make sure it doesn't affect you guys. But some cool features were on their way so there's that oo.
### Added
- Some code for issue #475, consistent overviews.
- Better currency display. Make sure you have locale packages installed.
### Changed
- Uses a new version of Laravel.
### Fixed
- The password reset routine was broken.
- Issue #522, thanks to [xpfgsyb](https://github.com/xpfgsyb)
- Issue #524, thanks to [worldworm](https://github.com/worldworm)
- Issue #526, thanks to [worldworm](https://github.com/worldworm)
- Issue #528, thanks to [skibbipl](https://github.com/skibbipl)
- Various other fixes.
## [4.3.1] - 2017-01-04
### Added
- Support for Russian and Polish.
- Support for a proper demo website.
- Support for custom decimal places in currencies (#506, suggested by [xpfgsyb](https://github.com/xpfgsyb)).
- Most amounts are now right-aligned (#511, suggested by [xpfgsyb](https://github.com/xpfgsyb)).
- German is now a "complete" language, more than 75% translated!
### Changed
- **[New Github repository!](github.com/firefly-iii/firefly-iii)**
- Better category overview.
- #502, thanks to [zjean](https://github.com/zjean)
### Removed
- Removed a lot of administration functions.
- Removed ability to activate users.
### Fixed
- #501, thanks to [zjean](https://github.com/zjean)
- #513, thanks to [skibbipl](https://github.com/skibbipl)
### Security
- #519, thanks to [xpfgsyb](https://github.com/xpfgsyb)
## [4.3.0] - 2015-12-26
### Added
- New method of keeping track of available budget, see issue #489
- Support for Spanish
- Firefly III now has an extended demo mode. Will expand further in the future.
### Changed
- New favicon
- Import routine no longer gives transactions a description #483
### Removed
- All test data generation code.
### Fixed
- Removed import accounts from search results #478
- Redirect after delete will no longer go back to deleted item #477
- Cannot math #482
- Fixed bug in virtual balance field #479
## [4.2.2] - 2016-12-18
### Added
- New budget report (still a bit of a beta)
- Can now edit user
### Changed
- New config for specific events. Still need to build Notifications.
### Fixed
- Various bugs
- Issue #472 thanks to [zjean](https://github.com/zjean)
## [4.2.1] - 2016-12-09
### Added
- BIC support (see #430)
- New category report section and chart (see the general financial report)
### Changed
- Date range picker now also available on mobile devices (see #435)
- Extended range of amounts for issue #439
- Rewrote all routes. Old bookmarks may break.
## [4.2.0] - 2016-11-27
### Added
- Lots of (empty) tests
- Expanded transaction lists (#377)
- New charts at account view
- First code for #305
### Changed
- Updated all email messages.
- Made some fonts local
### Fixed
- Issue #408
- Various issues with split journals
- Issue #414, thx [zjean](https://github.com/zjean)
- Issue #419, thx [schwalberich](https://github.com/schwalberich)
- Issue #422, thx [xzaz](https://github.com/xzaz)
- Various import bugs, such as #416 ([zjean](https://github.com/zjean))
## [4.1.7] - 2016-11-19
### Added
- Check for database table presence in console commands.
- Category report
- Reinstated old test routines.
### Changed
- Confirm account setting is no longer in `.env` file.
- Titles are now in reverse (current page > parent > firefly iii)
- Easier update of language files thanks to Github implementation.
- Uniform colours for charts.
### Fixed
- Made all pages more mobile friendly.
- Fixed #395 found by [marcoveeneman](https://github.com/marcoveeneman).
- Fixed #398 found by [marcoveeneman](https://github.com/marcoveeneman).
- Fixed #401 found by [marcoveeneman](https://github.com/marcoveeneman).
- Many optimizations.
- Updated many libraries.
- Various bugs found by myself.
## [4.1.6] - 2016-11-06
### Added
- New budget table for multi year report.
### Changed
- Greatly expanded help pages and their function.
- Built a new transaction collector, which I think was the idea of [roberthorlings](https://github.com/roberthorlings) originally.
- Rebuilt seach engine.
### Fixed
- #375, thanks to [schoentoon](https://github.com/schoentoon) which made it impossible to resurrect currencies.
- #370 thanks to [ksmolder](https://github.com/ksmolder)
- #378, thanks to [HomelessAvatar](https://github.com/HomelessAvatar)
## [4.1.5] - 2016-11-01
### Changed
- Report parts are loaded using AJAX, making a lot of code more simple.
- Help content will fall back to English.
- Help content is translated through Crowdin.
### Fixed
- Issue #370
## [4.1.4] - 2016-10-30
### Added
- New Dockerfile thanks to [schoentoon](https://github.com/schoentoon)
- Added changing the destination account as rule action.
- Added changing the source account as rule action.
- Can convert transactions into different types.
### Changed
- Changed the export routine to be more future-proof.
- Improved help routine.
- Integrated CrowdIn translations.
- Simplified reports
- Change error message to refer to solution.
### Fixed
- #367 thanks to [HungryFeline](https://github.com/HungryFeline)
- #366 thanks to [3mz3t](https://github.com/3mz3t)
- #362 and #341 thanks to [bnw](https://github.com/bnw)
- #355 thanks to [roberthorlings](https://github.com/roberthorlings)
## [4.1.3] - 2016-10-22
### Fixed
- Some event handlers called the wrong method.
## [4.1.2] - 2016-10-22
### Fixed
- A bug is fixed in the journal event handler that prevented Firefly III from actually storing journals.
## [4.1.1] - 2016-10-22
### Added
- Option to show deposit accounts on the front page.
- Script to upgrade split transactions
- Can now save notes on piggy banks.
- Extend user admin options.
- Run import jobs from the command line
### Changed
- New preferences screen layout.
### Deprecated
- ``firefly:import`` is now ``firefly:start-import``
### Removed
- Lots of old code
### Fixed
- #357, where non utf-8 files would break Firefly.
- Tab delimiter is not properly loaded from import configuration ([roberthorlings](https://github.com/roberthorlings))
- System response to yearly bills
## [4.0.2] - 2016-10-14
### Added
- Added ``intl`` dependency to composer file to ease installation (thanks [telyn](https://github.com/telyn))
- Added support for Croatian.
### Changed
- Updated all copyright notices to refer to the [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/)
- Fixed #344
- Fixed #346, thanks to [SanderKleykens](https://github.com/SanderKleykens)
- #351
- Did some internal remodelling.
### Fixed
- PostgreSQL compatibility thanks to [SanderKleykens](https://github.com/SanderKleykens)
- [roberthorlings](https://github.com/roberthorlings) fixed a bug in the ABN Amro import specific.
## [4.0.1] - 2016-10-04
### Added
- New ING import specific by [tomwerf](https://github.com/tomwerf)
- New Presidents Choice specific to fix #307
- Added some trimming (#335)
### Fixed
- Fixed a bug where incoming transactions would not be properly filtered in several reports.
- #334 by [cyberkov](https://github.com/cyberkov)
- #337
- #336
- #338 found by [roberthorlings](https://github.com/roberthorlings)
## [4.0.0] - 2015-09-26
### Added
- Upgraded to Laravel 5.3, most other libraries upgraded as well.
- Added GBP as currency, thanks to [Mortalife](https://github.com/Mortalife)
### Changed
- Jump to version 4.0.0.
- Firefly III is now subject to a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/) license. Previous versions of this software are still MIT licensed.
### Fixed
- Support for specific decimal places, thanks to [Mortalife](https://github.com/Mortalife)
- Various CSS fixes
- Various bugs, thanks to [fuf](https://github.com/fuf), [sandermulders](https://github.com/sandermulders) and [vissert](https://github.com/vissert)
- Various queries optimized for MySQL 5.7
## [3.10.4] - 2015-09-14
### Fixed
- Migration fix by [sandermulders](https://github.com/sandermulders)
- Tricky import bug fix thanks to [vissert](https://github.com/vissert)
- Currency preference will be correctly pulled from user settings, thanks to [fuf](https://github.com/fuf)
- Simplified code for upgrade instructions.
## [3.10.3] - 2016-08-29
### Added
- More fields for mass-edit, thanks to [vissert](https://github.com/vissert) (#282)
- First start of German translation
### Changed
- More optional fields for transactions and the ability to filter them.
### Removed
- Preference for budget maximum.
### Fixed
- A bug in the translation routine broke the import.
- It was possible to destroy your Firefly installation by removing all currencies. Thanks [mondjef](https://github.com/mondjef)
- Translation bugs.
- Import bug.
### Security
- Firefly will not accept registrations beyond the first one, by default.
## [3.10.2] - 2016-08-29
### Added
- New Chinese translations. Set Firefly III to show incomplete translations to follow the progress. Want to translate Firefly III in Chinese, or in any other language? Then check out [the Crowdin project](https://crowdin.com/project/firefly-iii).
- Added more admin pages. They do nothing yet.
### Changed
- Import routine will now also apply user rules.
- Various code cleanup.
- Some small HTML changes.
### Fixed
- Bug in the mass edit routines.
- Firefly III over a proxy will now work (see [issue #290](https://github.com/firefly-iii/firefly-iii/issues/290)), thanks [dfiel](https://github.com/dfiel) for reporting.
- Sneaky bug in the import routine, fixed by [Bonno](https://github.com/Bonno)
## [3.10.1] - 2016-08-25
### Added
- More feedback in the import procedure.
- Extended model for import job.
- Web bases import procedure.
### Changed
- Scrutinizer configuration
- Various code clean up.
### Removed
- Code climate YAML file.
### Fixed
- Fixed a bug where a migration would check an empty table name.
- Fixed various bugs in the import routine.
- Fixed various bugs in the piggy banks pages.
- Fixed a bug in the `firefly:verify` routine
## [3.10] - 2015-05-25
### Added
- New charts in year report
- Can add / remove money from piggy bank on mobile device.
- Bill overview shows some useful things.
- Firefly will track registration / activation IP addresses.
### Changed
- Rewrote the import routine.
- The date picker now supports more ranges and periods.
- Rewrote all migrations. #272
### Fixed
- Issue #264
- Issue #265
- Fixed amount calculation problems, #266, thanks [xzaz](https://github.com/xzaz)
- Issue #271
- Issue #278, #273, thanks [StevenReitsma](https://github.com/StevenReitsma) and [rubella](https://github.com/rubella)
- Bug in attachment download routine would report the wrong size to the user's browser.
- Various NULL errors fixed.
- Various strict typing errors fixed.
- Fixed pagination problems, #276, thanks [xzaz](https://github.com/xzaz)
- Fixed a bug where an expense would be assigned to a piggy bank if you created a transfer first.
- Bulk update problems, #280, thanks [stickgrinder](https://github.com/stickgrinder)
- Fixed various problems with amount reporting of split transactions.
## [3.9.1]
### Fixed
- Fixed a bug where removing money from a piggy bank would not work. See issue #265 and #269
## [3.9.0]
### Added
- [zjean](https://github.com/zjean) has added code that allows you to force "https://"-URL's.
- [tonicospinelli](https://github.com/tonicospinelli) has added Portuguese (Brazil) translations.
- Firefly III supports the *splitting* of transactions:
- A withdrawal (expense) can be split into multiple sub-transactions (with multiple destinations)
- Likewise for deposits (incomes). You can set multiple sources.
- Likewise for transfers.
### Changed
- Update a lot of libraries.
- Big improvement to test data generation.
- Cleaned up many repositories.
### Removed
- Front page boxes will no longer respond to credit card bills.
### Fixed
- Many bugs
## [3.8.4] - 2016-04-24
### Added
- Lots of new translations.
- Can now set page size.
- Can now mass edit transactions.
- Can now mass delete transactions.
- Firefly will now attempt to verify the integrity of your database when updating.
### Changed
- New version of Charts library.
### Fixed
- Several CSV related bugs.
- Several other bugs.
- Bugs fixed by [Bonno](https://github.com/Bonno).
## [3.8.3] - 2016-04-17
### Added
- New audit report to see what happened.
### Changed
- New Chart JS release used.
- Help function is more reliable.
### Fixed
- Expected bill amount is now correct.
- Upgrade will now invalidate cache.
- Search was broken.
- Queries run better
## [3.8.2] - 2016-04-03
### Added
- Small user administration at /admin.
- Informational popups are working in reports.
### Changed
- User activation emails are better
### Fixed
- Some bugs related to accounts and rules.
## [3.8.1] - 2016-03-29
### Added
- More translations
- Extended cookie control.
- User accounts can now be activated (disabled by default).
- Bills can now take the source and destination account name into account.
### Changed
- The pages related to rules have new URL's.
### Fixed
- Spelling errors.
- Problems related to the "account repository".
- Some views showed empty (0.0) amounts.
## [3.8.0] - 2016-03-20
### Added
- Two factor authentication, thanks to the excellent work of [zjean](https://github.com/zjean).
- A new chart showing your net worth in year and multi-year reports.
- You can now see if your current or future rules actually match any transactions, thanks to the excellent work of [roberthorlings](https://github.com/roberthorlings).
- New date fields for transactions. They are not used yet in reports or anything, but they can be filled in.
- New routine to export your data.
- Firefly III will mail the site owner when blocked users try to login, or when blocked domains are used in registrations.
### Changed
- Firefly III now requires PHP 7.0 minimum.
### Fixed
- HTML fixes, thanks to [roberthorlings](https://github.com/roberthorlings) and [zjean](https://github.com/zjean)..
- A bug fix in the ABN Amro importer, thanks to [roberthorlings](https://github.com/roberthorlings)
- It was not possible to change the opening balance, once it had been set. Thanks to [xnyhps](https://github.com/xnyhps) and [marcoveeneman](https://github.com/marcoveeneman) for spotting this.
- Various other bug fixes.
## [3.4.2] - 2015-05-25
### Added
- Initial release.
### Changed
- Initial release.
### Deprecated
- Initial release.
### Removed
- Initial release.
### Fixed
- Initial release.
### Security
- Initial release.

View File

@@ -1,12 +1,18 @@
FROM php:7-apache
# use PHP 7.1 and Apache as a base.
FROM php:7.1-apache
# set working dir
ENV FIREFLY_PATH /var/www/firefly-iii
WORKDIR $FIREFLY_PATH
ADD . $FIREFLY_PATH
# install packages
RUN apt-get update -y && \
apt-get install -y --no-install-recommends libcurl4-openssl-dev \
zlib1g-dev \
libjpeg62-turbo-dev \
libpng12-dev \
libicu-dev \
libmcrypt-dev \
libedit-dev \
libtidy-dev \
libxml2-dev \
@@ -15,14 +21,16 @@ RUN apt-get update -y && \
libbz2-dev \
gettext-base \
locales && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install -j$(nproc) curl gd intl json mcrypt readline tidy zip bcmath xml mbstring pdo_sqlite pdo_mysql bz2 pdo_pgsql
# Install PHP exentions.
RUN docker-php-ext-install -j$(nproc) curl gd intl json readline tidy zip bcmath xml mbstring pdo_sqlite pdo_mysql bz2 pdo_pgsql
# Generate locales supported by firefly
RUN echo "en_US.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8\nnl_NL.UTF-8 UTF-8\npt_BR.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
# Generate locales supported by Firefly III
RUN echo "de_DE.UTF-8 UTF-8\nen_US.UTF-8 UTF-8\nfr_FR.UTF-8 UTF-8\nid_ID.UTF-8 UTF-8\nnl_NL.UTF-8 UTF-8\npl_PL.UTF-8 UTF-8" > /etc/locale.gen && locale-gen
# copy Apache config to correct spot.
COPY ./docker/apache2.conf /etc/apache2/apache2.conf
# Enable apache mod rewrite..
@@ -31,23 +39,23 @@ RUN a2enmod rewrite
# Enable apache mod ssl..
RUN a2enmod ssl
# Create volumes for several directories:
VOLUME $FIREFLY_PATH/storage/export $FIREFLY_PATH/storage/upload
# Setup the Composer installer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Copy Apache Configs
# Enable default site (Firefly III)
COPY ./docker/apache-firefly.conf /etc/apache2/sites-available/000-default.conf
ENV FIREFLY_PATH /var/www/firefly-iii
WORKDIR $FIREFLY_PATH
# The working directory
COPY . $FIREFLY_PATH
# Make sure we own Firefly III directory
RUN chown -R www-data:www-data /var/www && chmod -R 775 $FIREFLY_PATH/storage
RUN composer install --prefer-dist --no-dev --no-scripts
# Run composer
RUN composer install --prefer-dist --no-dev --no-scripts --no-suggest
# Expose port 80
EXPOSE 80
ENTRYPOINT ["docker/entrypoint.sh"]
# Run entrypoint thing
ENTRYPOINT ["docker/entrypoint.sh"]

675
LICENSE
View File

@@ -1,7 +1,674 @@
Copyright (C) 2016 thegrumpydictator@gmail.com
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
https://creativecommons.org/licenses/by-sa/4.0/
Preamble
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program 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.
This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
<program> Copyright (C) <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<https://www.gnu.org/licenses/>.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<https://www.gnu.org/licenses/why-not-lgpl.html>.

View File

@@ -1,70 +0,0 @@
# Firefly III: A personal finances manager
[![Requires PHP7.1](https://img.shields.io/badge/php-7.1-red.svg)](https://secure.php.net/downloads.php) [![Latest Stable Version](https://poser.pugx.org/grumpydictator/firefly-iii/v/stable)](https://packagist.org/packages/grumpydictator/firefly-iii) [![License](https://img.shields.io/badge/license-CC%20BY--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/) [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=44UKUT455HUFA)
[![The index of Firefly III](https://i.nder.be/hurdhgyg/400)](https://i.nder.be/h2b37243) [![The account overview of Firefly III](https://i.nder.be/hnkfkdpr/400)](https://i.nder.be/hv70pbwc)
[![The useful financial reports of Firefly III](https://i.nder.be/h7sk6nb7/400)](https://i.nder.be/ccn0u2mp) [![Even more useful reports in Firefly III](https://i.nder.be/g237hr35/400)](https://i.nder.be/gm8hbh7z)
"Firefly III" is a financial manager for your personal finances.
It can help you keep track of your expenses and income.
Firefly III supports the use of budgets. You can categorize and tag your transactions.
It also supports credit cards, shared household accounts and savings accounts.
There are many financial reports available.
## Try it out!
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/firefly-iii/firefly-iii/tree/master)
Firefly III can be run on Heroku.
Register for a free Heroku account and instantly run Firefly III on your very own cloud instance.
There is also a [demo site](https://firefly-iii.nder.be) with an example financial administration already present.
## Getting started
To install Firefly III, you'll need a web server (preferrably on Linux) and access to the command line.
Then, please read the [installation guide](https://firefly-iii.github.io/using-installing.html).
At the moment, installation is fairly complex. I hope to improve this in the future. If you need support, please open a ticket.
## More about Firefly III
Personal financial management is pretty difficult, and everybody has their own approach to it.
Some people make budgets, other people limit their cashflow by throwing away their credit cards,
others try to increase their current cashflow. There are tons of ways to save and earn money.
Firefly works on the principle that if you know where you're money is going, you can stop it from going there.
### Some advantages of using Firefly
- Firefly can import any CSV file, so migrating from other systems is easy.
- Firefly runs on your own server, so you are fully in control of your data. Remember, there is no such thing as "the cloud", its just somebody elses computer!
- Firefly has lots of features without being fancy or bloated.
- If you feel you're missing something you can just ask me and I'll add it!
Firefly III has become pretty awesome over the years! (but please excuse me for bragging, it's just that I'm proud of it).
[You can read more about Firefly III, and its features, on the Github Pages](https://firefly-iii.github.io/).
### Contributing
Please read [CONTRIBUTING.md](https://github.com/firefly-iii/firefly-iii/blob/master/.github/CONTRIBUTING.md) for details on contributing, and the process for submitting pull requests. Please check out the [code of conduct](https://github.com/firefly-iii/firefly-iii/blob/master/CODE_OF_CONDUCT.md) as well.
### Versioning
We use [SemVer](http://semver.org/) for versioning. For the versions available, see [the tags](https://github.com/firefly-iii/firefly-iii/tags) on this repository.
### Authors
* James Cole
* Over time, [many people have contributed to Firefly III](https://github.com/firefly-iii/firefly-iii/graphs/contributors).
### License
This work [is licensed](https://github.com/firefly-iii/firefly-iii/blob/master/LICENSE) under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
### Other stuff
If you like Firefly and if it helps you save lots of money, why not send me [a dime for every dollar saved](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=44UKUT455HUFA) (this is a joke, although the Paypal form works just fine, try it!)
If you want to contact me, please open an issue or [email me](mailto:thegrumpydictator@gmail.com).
[![Build Status](https://travis-ci.org/firefly-iii/firefly-iii.svg?branch=master)](https://travis-ci.org/firefly-iii/firefly-iii) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/firefly-iii/firefly-iii/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/firefly-iii/firefly-iii/?branch=master) [![Coverage Status](https://coveralls.io/repos/github/firefly-iii/firefly-iii/badge.svg?branch=master)](https://coveralls.io/github/firefly-iii/firefly-iii?branch=master)

View File

@@ -2,6 +2,7 @@
"name": "Firefly III",
"description": "A free and open source personal finances manager",
"repository": "https://github.com/firefly-iii/firefly-iii",
"website": "https://firefly-iii.org/",
"logo": "https://raw.githubusercontent.com/firefly-iii/firefly-iii/master/public/mstile-150x150.png",
"keywords": [
"finance",
@@ -36,14 +37,16 @@
"transfers",
"management"
],
"website": "https://firefly-iii.github.io/",
"addons": [
{
"plan": "heroku-postgresql"
"plan": "heroku-postgresql",
"options": {
"version": "9.5"
}
}
],
"scripts": {
"postdeploy": "export APP_KEY=$(php artisan --no-ansi key:generate --show)"
"postdeploy": "php artisan migrate:refresh --seed;php artisan firefly:instructions install"
},
"buildpacks": [
{

View File

@@ -2,15 +2,24 @@
/**
* CreateExport.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Console\Commands;
use Carbon\Carbon;
@@ -23,13 +32,10 @@ use FireflyIII\Repositories\User\UserRepositoryInterface;
use Illuminate\Console\Command;
use Storage;
/**
* Class CreateExport
* Class CreateExport.
*
* Generates export from the command line.
*
* @package FireflyIII\Console\Commands
*/
class CreateExport extends Command
{
@@ -55,7 +61,6 @@ class CreateExport extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{
@@ -63,7 +68,6 @@ class CreateExport extends Command
}
/**
*
* @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's five its fine.
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*
@@ -98,7 +102,7 @@ class CreateExport extends Command
// first date
$firstJournal = $journalRepository->first();
$first = new Carbon;
if (!is_null($firstJournal->id)) {
if (null !== $firstJournal->id) {
$first = $firstJournal->date;
}
@@ -114,7 +118,6 @@ class CreateExport extends Command
'job' => $job,
];
/** @var ProcessorInterface $processor */
$processor = app(ProcessorInterface::class);
$processor->setSettings($settings);

View File

@@ -1,32 +1,41 @@
<?php
/**
* CreateImport.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
use Artisan;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Import\Logging\CommandHandler;
use FireflyIII\Import\Routine\ImportRoutine;
use FireflyIII\Import\Routine\RoutineInterface;
use FireflyIII\Repositories\ImportJob\ImportJobRepositoryInterface;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use Illuminate\Console\Command;
use Illuminate\Support\MessageBag;
use Log;
use Monolog\Formatter\LineFormatter;
use Preferences;
/**
* Class CreateImport
*
* @package FireflyIII\Console\Commands
* Class CreateImport.
*/
class CreateImport extends Command
{
@@ -43,9 +52,10 @@ class CreateImport extends Command
*
* @var string
*/
protected $signature = 'firefly:create-import
protected $signature
= 'firefly:create-import
{file : The file to import.}
{configuration : The configuration file to use for the import/}
{configuration : The configuration file to use for the import.}
{--type=csv : The file type of the import.}
{--user= : The user ID that the import should import for.}
{--token= : The user\'s access token.}
@@ -53,7 +63,6 @@ class CreateImport extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{
@@ -65,6 +74,8 @@ class CreateImport extends Command
*
* @SuppressWarnings(PHPMD.ExcessiveMethodLength) // cannot be helped
* @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's five exactly.
*
* @throws FireflyException
*/
public function handle()
{
@@ -85,8 +96,8 @@ class CreateImport extends Command
return;
}
$configurationData = json_decode(file_get_contents($configuration));
if (is_null($configurationData)) {
$configurationData = json_decode(file_get_contents($configuration), true);
if (null === $configurationData) {
$this->error(sprintf('Firefly III cannot read the contents of configuration file "%s" (working directory: "%s").', $configuration, $cwd));
return;
@@ -97,25 +108,20 @@ class CreateImport extends Command
$this->line(sprintf('Import into user: #%d (%s)', $user->id, $user->email));
$this->line(sprintf('Type of import: %s', $type));
/** @var ImportJobRepositoryInterface $jobRepository */
$jobRepository = app(ImportJobRepositoryInterface::class);
$jobRepository->setUser($user);
$job = $jobRepository->create($type);
$this->line(sprintf('Created job "%s"', $job->key));
Artisan::call('firefly:encrypt-file', ['file' => $file, 'key' => $job->key]);
$this->line('Stored import data...');
$job->configuration = $configurationData;
$job->status = 'configured';
$job->save();
$jobRepository->setConfiguration($job, $configurationData);
$jobRepository->updateStatus($job, 'configured');
$this->line('Stored configuration...');
if ($this->option('start') === true) {
if (true === $this->option('start')) {
$this->line('The import will start in a moment. This process is not visible...');
Log::debug('Go for import!');
@@ -126,23 +132,33 @@ class CreateImport extends Command
$handler->setFormatter($formatter);
$monolog->pushHandler($handler);
// start the actual routine:
/** @var ImportRoutine $routine */
$routine = app(ImportRoutine::class);
$type = 'csv' === $job->file_type ? 'file' : $job->file_type;
$key = sprintf('import.routine.%s', $type);
$className = config($key);
if (null === $className || !class_exists($className)) {
throw new FireflyException(sprintf('Cannot find import routine class for job of type "%s".', $type)); // @codeCoverageIgnore
}
/** @var RoutineInterface $routine */
$routine = app($className);
$routine->setJob($job);
$routine->run();
// give feedback.
/** @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->line(
sprintf('The import has finished. %d transactions have been imported out of %d records.', $routine->journals->count(), $routine->lines)
sprintf(
'The import has finished. %d transactions have been imported out of %d records.', $routine->getJournals()->count(), $routine->getLines()
)
);
}
// clear cache for user:
Preferences::setForUser($user, 'lastActivity', microtime());
return;
}
@@ -160,9 +176,9 @@ class CreateImport extends Command
$configuration = $this->argument('configuration');
$user = $userRepository->find(intval($this->option('user')));
$cwd = getcwd();
$validTypes = array_keys(config('firefly.import_formats'));
$validTypes = config('import.options.file.import_formats');
$type = strtolower($this->option('type'));
if (is_null($user->id)) {
if (null === $user) {
$this->error(sprintf('There is no user with ID %d.', $this->option('user')));
return false;

View File

@@ -2,11 +2,22 @@
/**
* DecryptAttachment.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Console\Commands;
@@ -16,9 +27,7 @@ use Illuminate\Console\Command;
use Log;
/**
* Class DecryptAttachment
*
* @package FireflyIII\Console\Commands
* Class DecryptAttachment.
*/
class DecryptAttachment extends Command
{
@@ -38,15 +47,12 @@ class DecryptAttachment extends Command
= 'firefly:decrypt-attachment {id:The ID of the attachment.} {name:The file name of the attachment.}
{directory:Where the file must be stored.}';
/**
* Create a new command instance.
*
*/
public function __construct()
{
parent::__construct();
}
/**
@@ -54,7 +60,6 @@ class DecryptAttachment extends Command
*
* @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's five its fine.
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
*
*/
public function handle()
{
@@ -64,7 +69,7 @@ class DecryptAttachment extends Command
$attachment = $repository->findWithoutUser($attachmentId);
$attachmentName = trim($this->argument('name'));
$storagePath = realpath(trim($this->argument('directory')));
if (is_null($attachment->id)) {
if (null === $attachment->id) {
$this->error(sprintf('No attachment with id #%d', $attachmentId));
Log::error(sprintf('DecryptAttachment: No attachment with id #%d', $attachmentId));
@@ -96,7 +101,7 @@ class DecryptAttachment extends Command
$content = $repository->getContent($attachment);
$this->line(sprintf('Going to write content for attachment #%d into file "%s"', $attachment->id, $fullPath));
$result = file_put_contents($fullPath, $content);
if ($result === false) {
if (false === $result) {
$this->error('Could not write to file.');
return;

View File

@@ -1,14 +1,23 @@
<?php
/**
* EncryptFile.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
@@ -17,9 +26,7 @@ use Crypt;
use Illuminate\Console\Command;
/**
* Class EncryptFile
*
* @package FireflyIII\Console\Commands
* Class EncryptFile.
*/
class EncryptFile extends Command
{
@@ -39,7 +46,6 @@ class EncryptFile extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{

View File

@@ -1,29 +1,37 @@
<?php
/**
* Import.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Import\Logging\CommandHandler;
use FireflyIII\Import\Routine\ImportRoutine;
use FireflyIII\Import\Routine\RoutineInterface;
use FireflyIII\Models\ImportJob;
use Illuminate\Console\Command;
use Illuminate\Support\MessageBag;
use Log;
/**
* Class Import
*
* @package FireflyIII\Console\Commands
* Class Import.
*/
class Import extends Command
{
@@ -43,7 +51,6 @@ class Import extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{
@@ -52,13 +59,15 @@ class Import extends Command
/**
* Run the import routine.
*
* @throws FireflyException
*/
public function handle()
{
Log::debug('Start start-import command');
$jobKey = $this->argument('key');
$job = ImportJob::where('key', $jobKey)->first();
if (is_null($job)) {
if (null === $job) {
$this->error(sprintf('No job found with key "%s"', $jobKey));
return;
@@ -75,17 +84,27 @@ class Import extends Command
$handler = new CommandHandler($this);
$monolog->pushHandler($handler);
/** @var ImportRoutine $routine */
$routine = app(ImportRoutine::class);
// actually start job:
$type = 'csv' === $job->file_type ? 'file' : $job->file_type;
$key = sprintf('import.routine.%s', $type);
$className = config($key);
if (null === $className || !class_exists($className)) {
throw new FireflyException(sprintf('Cannot find import routine class for job of type "%s".', $type)); // @codeCoverageIgnore
}
/** @var RoutineInterface $routine */
$routine = app($className);
$routine->setJob($job);
$routine->run();
/** @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->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;
}
@@ -99,14 +118,14 @@ class Import extends Command
*/
private function isValid(ImportJob $job): bool
{
if (is_null($job)) {
if (null === $job) {
Log::error('This job does not seem to exist.');
$this->error('This job does not seem to exist.');
return false;
}
if ($job->status !== 'configured') {
if ('configured' !== $job->status) {
Log::error(sprintf('This job is not ready to be imported (status is %s).', $job->status));
$this->error('This job is not ready to be imported.');

View File

@@ -1,14 +1,23 @@
<?php
/**
* ScanAttachments.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
@@ -21,9 +30,7 @@ use Illuminate\Contracts\Filesystem\FileNotFoundException;
use Storage;
/**
* Class ScanAttachments
*
* @package FireflyIII\Console\Commands
* Class ScanAttachments.
*/
class ScanAttachments extends Command
{
@@ -43,7 +50,6 @@ class ScanAttachments extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{

View File

@@ -1,28 +1,36 @@
<?php
/**
* UpgradeDatabase.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
use DB;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountMeta;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Models\LimitRepetition;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionCurrency;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalMeta;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Illuminate\Console\Command;
@@ -33,17 +41,15 @@ use Preferences;
use Schema;
/**
* Class UpgradeDatabase
* Class UpgradeDatabase.
*
* Upgrade user database.
*
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects) // it just touches a lot of things.
* @package FireflyIII\Console\Commands
*/
class UpgradeDatabase extends Command
{
/**
* The console command description.
*
@@ -67,42 +73,22 @@ class UpgradeDatabase extends Command
/**
* Execute the console command.
*
* @throws \Exception
*/
public function handle()
{
$this->setTransactionIdentifier();
$this->migrateRepetitions();
$this->updateAccountCurrencies();
$this->createNewTypes();
$this->line('Updating currency information..');
$this->updateTransferCurrencies();
$this->updateOtherCurrencies();
$this->line('Done updating currency information..');
$this->migrateNotes();
$this->info('Firefly III database is up to date.');
return;
}
/**
* Migrate budget repetitions to new format where the end date is in the budget limit as well,
* making the limit_repetition table obsolete.
*/
public function migrateRepetitions(): void
{
$set = BudgetLimit::whereNull('end_date')->get();
/** @var BudgetLimit $budgetLimit */
foreach ($set as $budgetLimit) {
/** @var LimitRepetition $repetition */
$repetition = $budgetLimit->limitrepetitions()->first();
if (!is_null($repetition)) {
$budgetLimit->end_date = $repetition->enddate;
$budgetLimit->save();
$this->line(sprintf('Updated budget limit #%d', $budgetLimit->id));
$repetition->delete();
}
}
return;
}
/**
@@ -159,7 +145,8 @@ class UpgradeDatabase extends Command
$obCurrency = intval($openingBalance->transaction_currency_id);
// both 0? set to default currency:
if ($accountCurrency === 0 && $obCurrency === 0) {
if (0 === $accountCurrency && 0 === $obCurrency) {
AccountMeta::where('account_id', $account->id)->where('name', 'currency_id')->forceDelete();
AccountMeta::create(['account_id' => $account->id, 'name' => 'currency_id', 'data' => $defaultCurrency->id]);
$this->line(sprintf('Account #%d ("%s") now has a currency setting (%s).', $account->id, $account->name, $defaultCurrencyCode));
@@ -167,7 +154,7 @@ class UpgradeDatabase extends Command
}
// account is set to 0, opening balance is not?
if ($accountCurrency === 0 && $obCurrency > 0) {
if (0 === $accountCurrency && $obCurrency > 0) {
AccountMeta::create(['account_id' => $account->id, 'name' => 'currency_id', 'data' => $obCurrency]);
$this->line(sprintf('Account #%d ("%s") now has a currency setting (%s).', $account->id, $account->name, $defaultCurrencyCode));
@@ -217,7 +204,7 @@ class UpgradeDatabase extends Command
->leftJoin('accounts', 'accounts.id', '=', 'transactions.account_id')
->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id')
->whereIn('account_types.type', [AccountType::DEFAULT, AccountType::ASSET])->first(['transactions.*']);
if (is_null($transaction)) {
if (null === $transaction) {
return;
}
/** @var Account $account */
@@ -226,14 +213,14 @@ class UpgradeDatabase extends Command
$transactions = $journal->transactions()->get();
$transactions->each(
function (Transaction $transaction) use ($currency) {
if (is_null($transaction->transaction_currency_id)) {
if (null === $transaction->transaction_currency_id) {
$transaction->transaction_currency_id = $currency->id;
$transaction->save();
}
// when mismatch in transaction:
if ($transaction->transaction_currency_id !== $currency->id) {
$transaction->foreign_currency_id = $transaction->transaction_currency_id;
if (!(intval($transaction->transaction_currency_id) === intval($currency->id))) {
$transaction->foreign_currency_id = intval($transaction->transaction_currency_id);
$transaction->foreign_amount = $transaction->amount;
$transaction->transaction_currency_id = $currency->id;
$transaction->save();
@@ -281,6 +268,42 @@ class UpgradeDatabase extends Command
);
}
private function createNewTypes(): void
{
// create transaction type "Reconciliation".
$type = TransactionType::where('type', TransactionType::RECONCILIATION)->first();
if (is_null($type)) {
TransactionType::create(['type' => TransactionType::RECONCILIATION]);
}
$account = AccountType::where('type', AccountType::RECONCILIATION)->first();
if (is_null($account)) {
AccountType::create(['type' => AccountType::RECONCILIATION]);
}
}
/**
* Move all the journal_meta notes to their note object counter parts.
*
* @throws \Exception
*/
private function migrateNotes(): void
{
$set = TransactionJournalMeta::whereName('notes')->get();
/** @var TransactionJournalMeta $meta */
foreach ($set as $meta) {
$journal = $meta->transactionJournal;
$note = $journal->notes()->first();
if (null === $note) {
$note = new Note();
$note->noteable()->associate($journal);
}
$note->text = $meta->data;
$note->save();
Log::debug(sprintf('Migrated meta note #%d to Note #%d', $meta->id, $note->id));
$meta->delete();
}
}
/**
* This method makes sure that the transaction journal uses the currency given in the transaction.
@@ -297,7 +320,10 @@ class UpgradeDatabase extends Command
if (!(intval($currency->id) === intval($journal->transaction_currency_id))) {
$this->line(
sprintf(
'Transfer #%d ("%s") has been updated to use %s instead of %s.', $journal->id, $journal->description, $currency->code,
'Transfer #%d ("%s") has been updated to use %s instead of %s.',
$journal->id,
$journal->description,
$currency->code,
$journal->transactionCurrency->code
)
);
@@ -339,7 +365,7 @@ class UpgradeDatabase extends Command
return;
}
if (!is_null($opposing)) {
if (null !== $opposing) {
// give both a new identifier:
$transaction->identifier = $identifier;
$opposing->identifier = $identifier;
@@ -348,7 +374,7 @@ class UpgradeDatabase extends Command
$processed[] = $transaction->id;
$processed[] = $opposing->id;
}
$identifier++;
++$identifier;
}
return;
@@ -375,22 +401,25 @@ class UpgradeDatabase extends Command
$currency = $repository->find(intval($transaction->account->getMeta('currency_id')));
// has no currency ID? Must have, so fill in using account preference:
if (is_null($transaction->transaction_currency_id)) {
$transaction->transaction_currency_id = $currency->id;
if (null === $transaction->transaction_currency_id) {
$transaction->transaction_currency_id = intval($currency->id);
Log::debug(sprintf('Transaction #%d has no currency setting, now set to %s', $transaction->id, $currency->code));
$transaction->save();
}
// does not match the source account (see above)? Can be fixed
// when mismatch in transaction and NO foreign amount is set:
if ($transaction->transaction_currency_id !== $currency->id && is_null($transaction->foreign_amount)) {
if (!(intval($transaction->transaction_currency_id) === intval($currency->id)) && null === $transaction->foreign_amount) {
Log::debug(
sprintf(
'Transaction #%d has a currency setting (#%d) that should be #%d. Amount remains %s, currency is changed.', $transaction->id,
$transaction->transaction_currency_id, $currency->id, $transaction->amount
'Transaction #%d has a currency setting #%d that should be #%d. Amount remains %s, currency is changed.',
$transaction->id,
$transaction->transaction_currency_id,
$currency->id,
$transaction->amount
)
);
$transaction->transaction_currency_id = $currency->id;
$transaction->transaction_currency_id = intval($currency->id);
$transaction->save();
}
@@ -401,14 +430,14 @@ class UpgradeDatabase extends Command
$opposing = $journal->transactions()->where('amount', '>', 0)->where('identifier', $transaction->identifier)->first();
$opposingCurrency = $repository->find(intval($opposing->account->getMeta('currency_id')));
if (is_null($opposingCurrency->id)) {
if (null === $opposingCurrency->id) {
Log::error(sprintf('Account #%d ("%s") must have currency preference but has none.', $opposing->account->id, $opposing->account->name));
return;
}
// if the destination account currency is the same, both foreign_amount and foreign_currency_id must be NULL for both transactions:
if ($opposingCurrency->id === $currency->id) {
if (intval($opposingCurrency->id) === intval($currency->id)) {
// update both transactions to match:
$transaction->foreign_amount = null;
$transaction->foreign_currency_id = null;
@@ -422,7 +451,7 @@ class UpgradeDatabase extends Command
return;
}
// if destination account currency is different, both transactions must have this currency as foreign currency id.
if ($opposingCurrency->id !== $currency->id) {
if (!(intval($opposingCurrency->id) === intval($currency->id))) {
$transaction->foreign_currency_id = $opposingCurrency->id;
$opposing->foreign_currency_id = $opposingCurrency->id;
$transaction->save();
@@ -431,24 +460,23 @@ class UpgradeDatabase extends Command
}
// if foreign amount of one is null and the other is not, use this to restore:
if (is_null($transaction->foreign_amount) && !is_null($opposing->foreign_amount)) {
if (null === $transaction->foreign_amount && null !== $opposing->foreign_amount) {
$transaction->foreign_amount = bcmul(strval($opposing->foreign_amount), '-1');
$transaction->save();
Log::debug(sprintf('Restored foreign amount of transaction (1) #%d to %s', $transaction->id, $transaction->foreign_amount));
}
// if foreign amount of one is null and the other is not, use this to restore (other way around)
if (is_null($opposing->foreign_amount) && !is_null($transaction->foreign_amount)) {
if (null === $opposing->foreign_amount && null !== $transaction->foreign_amount) {
$opposing->foreign_amount = bcmul(strval($transaction->foreign_amount), '-1');
$opposing->save();
Log::debug(sprintf('Restored foreign amount of transaction (2) #%d to %s', $opposing->id, $opposing->foreign_amount));
}
// when both are zero, try to grab it from journal:
if (is_null($opposing->foreign_amount) && is_null($transaction->foreign_amount)) {
if (null === $opposing->foreign_amount && null === $transaction->foreign_amount) {
$foreignAmount = $journal->getMeta('foreign_amount');
if (is_null($foreignAmount)) {
if (null === $foreignAmount) {
Log::debug(sprintf('Journal #%d has missing foreign currency data, forced to do 1:1 conversion :(.', $transaction->transaction_journal_id));
$transaction->foreign_amount = bcmul(strval($transaction->amount), '-1');
$opposing->foreign_amount = bcmul(strval($opposing->amount), '-1');
@@ -460,7 +488,9 @@ class UpgradeDatabase extends Command
$foreignPositive = app('steam')->positive(strval($foreignAmount));
Log::debug(
sprintf(
'Journal #%d has missing foreign currency info, try to restore from meta-data ("%s").', $transaction->transaction_journal_id, $foreignAmount
'Journal #%d has missing foreign currency info, try to restore from meta-data ("%s").',
$transaction->transaction_journal_id,
$foreignAmount
)
);
$transaction->foreign_amount = bcmul($foreignPositive, '-1');
@@ -469,7 +499,7 @@ class UpgradeDatabase extends Command
$opposing->save();
}
return;
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* UpgradeFireflyInstructions.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
@@ -16,9 +25,7 @@ namespace FireflyIII\Console\Commands;
use Illuminate\Console\Command;
/**
* Class UpgradeFireflyInstructions
*
* @package FireflyIII\Console\Commands
* Class UpgradeFireflyInstructions.
*/
class UpgradeFireflyInstructions extends Command
{
@@ -37,7 +44,6 @@ class UpgradeFireflyInstructions extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{
@@ -49,17 +55,16 @@ class UpgradeFireflyInstructions extends Command
*/
public function handle()
{
if ($this->argument('task') === 'update') {
if ('update' === $this->argument('task')) {
$this->updateInstructions();
}
if ($this->argument('task') === 'install') {
if ('install' === $this->argument('task')) {
$this->installInstructions();
}
}
/**
* Show a nice box
* Show a nice box.
*
* @param string $text
*/
@@ -72,7 +77,7 @@ class UpgradeFireflyInstructions extends Command
}
/**
* Show a nice info box
* Show a nice info box.
*
* @param string $text
*/
@@ -99,12 +104,10 @@ class UpgradeFireflyInstructions extends Command
if (substr($version, 0, $len) === $compare) {
$text = $config[$compare];
}
}
$this->showLine();
$this->boxed('');
if (is_null($text)) {
if (null === $text) {
$this->boxed(sprintf('Thank you for installing Firefly III, v%s!', $version));
$this->boxedInfo('There are no extra installation instructions.');
$this->boxed('Firefly III should be ready for use.');
@@ -121,17 +124,16 @@ class UpgradeFireflyInstructions extends Command
}
/**
* Show a line
* Show a line.
*/
private function showLine()
{
$line = '+';
for ($i = 0; $i < 78; $i++) {
for ($i = 0; $i < 78; ++$i) {
$line .= '-';
}
$line .= '+';
$this->line($line);
}
/**
@@ -149,12 +151,10 @@ class UpgradeFireflyInstructions extends Command
if (substr($version, 0, $len) === $compare) {
$text = $config[$compare];
}
}
$this->showLine();
$this->boxed('');
if (is_null($text)) {
if (null === $text) {
$this->boxed(sprintf('Thank you for updating to Firefly III, v%s', $version));
$this->boxedInfo('There are no extra upgrade instructions.');
$this->boxed('Firefly III should be ready for use.');

View File

@@ -3,31 +3,31 @@
/**
* UseEncryption.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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);
/**
* UseEncryption.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
*/
namespace FireflyIII\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Str;
/**
* Class UseEncryption
*
* @package FireflyIII\Console\Commands
* Class UseEncryption.
*/
class UseEncryption extends Command
{
@@ -46,7 +46,6 @@ class UseEncryption extends Command
/**
* Create a new command instance.
*
*/
public function __construct()
{
@@ -58,6 +57,12 @@ class UseEncryption extends Command
*/
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('Bill', 'name', 'name_encrypted');
$this->handleObjects('Bill', 'match', 'match_encrypted');
@@ -77,7 +82,7 @@ class UseEncryption extends Command
public function handleObjects(string $class, string $field, string $indicator)
{
$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();
foreach ($set as $entry) {

View File

@@ -2,12 +2,22 @@
/**
* VerifiesAccessToken.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Console\Commands;
@@ -17,17 +27,16 @@ use Log;
use Preferences;
/**
* Trait VerifiesAccessToken
* Trait VerifiesAccessToken.
*
* Verifies user access token for sensitive commands.
*
* @package FireflyIII\Console\Commands
*/
trait VerifiesAccessToken
{
/**
* Abstract method to make sure trait knows about method "option".
* @param null $key
*
* @param string|null $key
*
* @return mixed
*/
@@ -46,24 +55,24 @@ trait VerifiesAccessToken
$repository = app(UserRepositoryInterface::class);
$user = $repository->find($userId);
if (is_null($user->id)) {
if (null === $user) {
Log::error(sprintf('verifyAccessToken(): no such user for input "%d"', $userId));
return false;
}
$accessToken = Preferences::getForUser($user, 'access_token', null);
if (is_null($accessToken)) {
if (null === $accessToken) {
Log::error(sprintf('User #%d has no access token, so cannot access command line options.', $userId));
return false;
}
if (!($accessToken->data === $token)) {
Log::error(sprintf('Invalid access token for user #%d.', $userId));
Log::error(sprintf('Token given is "%s", expected "%s".', $token, $accessToken->data));
return false;
}
return true;
}
}
}

View File

@@ -1,19 +1,29 @@
<?php
/**
* VerifyDatabase.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Console\Commands;
use Crypt;
use DB;
use FireflyIII\Models\Account;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\Budget;
@@ -32,11 +42,9 @@ use Schema;
use stdClass;
/**
* Class VerifyDatabase
* Class VerifyDatabase.
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
*
* @package FireflyIII\Console\Commands
*/
class VerifyDatabase extends Command
{
@@ -86,7 +94,7 @@ class VerifyDatabase extends Command
$this->repairPiggyBanks();
$this->createLinkTypes();
$this->createAccessTokens();
$this->fixDoubleAmounts();
}
/**
@@ -94,16 +102,21 @@ class VerifyDatabase extends Command
*/
private function createAccessTokens()
{
$count = 0;
$users = User::get();
/** @var User $user */
foreach ($users as $user) {
$pref = Preferences::getForUser($user, 'access_token', null);
if (is_null($pref)) {
if (null === $pref) {
$token = $user->generateAccessToken();
Preferences::setForUser($user, 'access_token', $token);
$this->line(sprintf('Generated access token for user %s', $user->email));
++$count;
}
}
if (0 === $count) {
$this->info('All access tokens OK!');
}
}
/**
@@ -111,7 +124,8 @@ class VerifyDatabase extends Command
*/
private function createLinkTypes()
{
$set = [
$count = 0;
$set = [
'Related' => ['relates to', 'relates to'],
'Refund' => ['(partially) refunds', 'is (partially) refunded by'],
'Paid' => ['(partially) pays for', 'is (partially) paid for by'],
@@ -119,15 +133,69 @@ class VerifyDatabase extends Command
];
foreach ($set as $name => $values) {
$link = LinkType::where('name', $name)->where('outward', $values[0])->where('inward', $values[1])->first();
if (is_null($link)) {
if (null === $link) {
$link = new LinkType;
$link->name = $name;
$link->outward = $values[0];
$link->inward = $values[1];
++$count;
}
$link->editable = false;
$link->save();
}
if (0 === $count) {
$this->info('All link types OK!');
}
}
private function fixDoubleAmounts()
{
$count = 0;
// get invalid journals
$errored = [];
$journals = DB::table('transactions')
->groupBy('transaction_journal_id')
->get(['transaction_journal_id', DB::raw('SUM(amount) AS the_sum')]);
/** @var stdClass $entry */
foreach ($journals as $entry) {
if (0 !== bccomp(strval($entry->the_sum), '0')) {
$errored[] = $entry->transaction_journal_id;
}
}
foreach ($errored as $journalId) {
// select and update:
$res = Transaction::whereNull('deleted_at')->where('transaction_journal_id', $journalId)->groupBy('amount')->get([DB::raw('MIN(id) as first_id')]);
$ids = $res->pluck('first_id')->toArray();
DB::table('transactions')->whereIn('id', $ids)->update(['amount' => DB::raw('amount * -1')]);
++$count;
// report about it
/** @var TransactionJournal $journal */
$journal = TransactionJournal::find($journalId);
if (is_null($journal)) {
continue;
}
if (TransactionType::OPENING_BALANCE === $journal->transactionType->type) {
$this->error(
sprintf(
'Transaction #%d was stored incorrectly. One of your asset accounts may show the wrong balance. Please visit /transactions/show/%d to verify the opening balance.',
$journalId, $journalId
)
);
}
if (TransactionType::OPENING_BALANCE !== $journal->transactionType->type) {
$this->error(
sprintf(
'Transaction #%d was stored incorrectly. Could be that the transaction shows the wrong amount. Please visit /transactions/show/%d to verify the opening balance.',
$journalId, $journalId
)
);
}
}
if (0 === $count) {
$this->info('Amount integrity OK!');
}
return;
}
/**
@@ -138,17 +206,17 @@ class VerifyDatabase extends Command
$set = PiggyBankEvent::with(['PiggyBank', 'TransactionJournal', 'TransactionJournal.TransactionType'])->get();
$set->each(
function (PiggyBankEvent $event) {
if (is_null($event->transaction_journal_id)) {
if (null === $event->transaction_journal_id) {
return true;
}
/** @var TransactionJournal $journal */
$journal = $event->transactionJournal()->first();
if (is_null($journal)) {
if (null === $journal) {
return true;
}
$type = $journal->transactionType->type;
if ($type !== TransactionType::TRANSFER) {
if (TransactionType::TRANSFER !== $type) {
$event->transaction_journal_id = null;
$event->save();
$this->line(sprintf('Piggy bank #%d was referenced by an invalid event. This has been fixed.', $event->piggy_bank_id));
@@ -198,7 +266,10 @@ class VerifyDatabase extends Command
foreach ($set as $entry) {
$line = sprintf(
'User #%d (%s) has budget #%d ("%s") which has no budget limits.',
$entry->user_id, $entry->email, $entry->id, $entry->name
$entry->user_id,
$entry->email,
$entry->id,
$entry->name
);
$this->line($line);
}
@@ -222,11 +293,11 @@ class VerifyDatabase extends Command
->get(
['accounts.id as account_id', 'accounts.deleted_at as account_deleted_at', 'transactions.id as transaction_id',
'transactions.deleted_at as transaction_deleted_at', 'transaction_journals.id as journal_id',
'transaction_journals.deleted_at as journal_deleted_at']
'transaction_journals.deleted_at as journal_deleted_at',]
);
/** @var stdClass $entry */
foreach ($set as $entry) {
$date = is_null($entry->transaction_deleted_at) ? $entry->journal_deleted_at : $entry->transaction_deleted_at;
$date = null === $entry->transaction_deleted_at ? $entry->journal_deleted_at : $entry->transaction_deleted_at;
$this->error(
'Error: Account #' . $entry->account_id . ' should have been deleted, but has not.' .
' Find it in the table called "accounts" and change the "deleted_at" field to: "' . $date . '"'
@@ -258,7 +329,7 @@ class VerifyDatabase extends Command
->whereNull('transaction_journals.deleted_at')
->get(
['transaction_journals.id', 'transaction_journals.user_id', 'users.email', 'account_types.type as a_type',
'transaction_types.type']
'transaction_types.type',]
);
foreach ($set as $entry) {
$this->error(
@@ -277,28 +348,33 @@ class VerifyDatabase extends Command
}
/**
* Any deleted transaction journals that have transactions that are NOT deleted:
* Any deleted transaction journals that have transactions that are NOT deleted:.
*/
private function reportJournals()
{
$set = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->whereNotNull('transaction_journals.deleted_at')// USE THIS
->whereNull('transactions.deleted_at')
->whereNotNull('transactions.id')
->get(
[
'transaction_journals.id as journal_id',
'transaction_journals.description',
'transaction_journals.deleted_at as journal_deleted',
'transactions.id as transaction_id',
'transactions.deleted_at as transaction_deleted_at']
);
$count = 0;
$set = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->whereNotNull('transaction_journals.deleted_at')// USE THIS
->whereNull('transactions.deleted_at')
->whereNotNull('transactions.id')
->get(
[
'transaction_journals.id as journal_id',
'transaction_journals.description',
'transaction_journals.deleted_at as journal_deleted',
'transactions.id as transaction_id',
'transactions.deleted_at as transaction_deleted_at',]
);
/** @var stdClass $entry */
foreach ($set as $entry) {
$this->error(
'Error: Transaction #' . $entry->transaction_id . ' should have been deleted, but has not.' .
' Find it in the table called "transactions" and change the "deleted_at" field to: "' . $entry->journal_deleted . '"'
);
++$count;
}
if (0 === $count) {
$this->info('No orphaned transactions!');
}
}
@@ -307,17 +383,21 @@ class VerifyDatabase extends Command
*/
private function reportNoTransactions()
{
$set = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->groupBy('transaction_journals.id')
->whereNull('transactions.transaction_journal_id')
->get(['transaction_journals.id']);
$count = 0;
$set = TransactionJournal::leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id')
->groupBy('transaction_journals.id')
->whereNull('transactions.transaction_journal_id')
->get(['transaction_journals.id']);
foreach ($set as $entry) {
$this->error(
'Error: Journal #' . $entry->id . ' has zero transactions. Open table "transaction_journals" and delete the entry with id #' . $entry->id
);
++$count;
}
if (0 === $count) {
$this->info('No orphaned journals!');
}
}
/**
@@ -329,7 +409,7 @@ class VerifyDatabase extends Command
{
$plural = str_plural($name);
$class = sprintf('FireflyIII\Models\%s', ucfirst($name));
$field = $name === 'tag' ? 'tag' : 'name';
$field = 'tag' === $name ? 'tag' : 'name';
$set = $class::leftJoin($name . '_transaction_journal', $plural . '.id', '=', $name . '_transaction_journal.' . $name . '_id')
->leftJoin('users', $plural . '.user_id', '=', 'users.id')
->distinct()
@@ -339,7 +419,6 @@ class VerifyDatabase extends Command
/** @var stdClass $entry */
foreach ($set as $entry) {
$objName = $entry->name;
try {
$objName = Crypt::decrypt($objName);
@@ -349,7 +428,11 @@ class VerifyDatabase extends Command
$line = sprintf(
'User #%d (%s) has %s #%d ("%s") which has no transactions.',
$entry->user_id, $entry->email, $name, $entry->id, $objName
$entry->user_id,
$entry->email,
$name,
$entry->id,
$objName
);
$this->line($line);
}
@@ -366,8 +449,10 @@ class VerifyDatabase extends Command
/** @var User $user */
foreach ($userRepository->all() as $user) {
$sum = strval($user->transactions()->sum('amount'));
if (bccomp($sum, '0') !== 0) {
if (0 !== bccomp($sum, '0')) {
$this->error('Error: Transactions for user #' . $user->id . ' (' . $user->email . ') are off by ' . $sum . '!');
} else {
$this->info(sprintf('Amount integrity OK for user #%d', $user->id));
}
}
}
@@ -382,7 +467,7 @@ class VerifyDatabase extends Command
->whereNull('transaction_journals.deleted_at')
->get(
['transactions.id as transaction_id', 'transactions.deleted_at as transaction_deleted', 'transaction_journals.id as journal_id',
'transaction_journals.deleted_at']
'transaction_journals.deleted_at',]
);
/** @var stdClass $entry */
foreach ($set as $entry) {
@@ -401,19 +486,18 @@ class VerifyDatabase extends Command
$set = TransactionJournal::distinct()
->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id')
->leftJoin('budget_transaction_journal', 'transaction_journals.id', '=', 'budget_transaction_journal.transaction_journal_id')
->where('transaction_types.type', TransactionType::TRANSFER)
->whereNotNull('budget_transaction_journal.budget_id')->get(['transaction_journals.id']);
->whereIn('transaction_types.type', [TransactionType::TRANSFER, TransactionType::DEPOSIT])
->whereNotNull('budget_transaction_journal.budget_id')->get(['transaction_journals.*']);
/** @var TransactionJournal $entry */
foreach ($set as $entry) {
$this->error(
sprintf(
'Error: Transaction journal #%d is a transfer, but has a budget. Edit it without changing anything, so the budget will be removed.',
$entry->id
'Error: Transaction journal #%d is a %s, but has a budget. Edit it without changing anything, so the budget will be removed.',
$entry->id,
$entry->transactionType->type
)
);
}
}
}

View File

@@ -1,15 +1,24 @@
<?php
declare(strict_types=1);
/**
* Kernel.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Console;
@@ -28,13 +37,10 @@ class Kernel extends ConsoleKernel
*/
protected $commands
= [
//
];
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
@@ -46,8 +52,8 @@ class Kernel extends ConsoleKernel
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
* @param \Illuminate\Console\Scheduling\Schedule $schedule
*
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
protected function schedule(Schedule $schedule)

View File

@@ -2,37 +2,50 @@
/**
* AdminRequestedTestMessage.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Events;
use FireflyIII\User;
use Illuminate\Queue\SerializesModels;
use Log;
/**
* Class AdminRequestedTestMessage
*
* @package FireflyIII\Events
* Class AdminRequestedTestMessage.
*/
class AdminRequestedTestMessage extends Event
{
use SerializesModels;
/**
* @var string
*/
public $ipAddress;
/**
* @var User
*/
public $user;
/**
* Create a new event instance.
*
* @param User $user
* @param User $user
* @param string $ipAddress
*/
public function __construct(User $user, string $ipAddress)

View File

@@ -1,24 +1,30 @@
<?php
/**
* Event.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Events;
/**
* Class Event
*
* @package FireflyIII\Events
* Class Event.
*/
abstract class Event
{
//
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* RegisteredUser.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Events;
@@ -17,21 +26,25 @@ use FireflyIII\User;
use Illuminate\Queue\SerializesModels;
/**
* Class RegisteredUser
*
* @package FireflyIII\Events
* Class RegisteredUser.
*/
class RegisteredUser extends Event
{
use SerializesModels;
/**
* @var string
*/
public $ipAddress;
/**
* @var User
*/
public $user;
/**
* Create a new event instance. This event is triggered when a new user registers.
*
* @param User $user
* @param User $user
* @param string $ipAddress
*/
public function __construct(User $user, string $ipAddress)

View File

@@ -1,14 +1,23 @@
<?php
/**
* RequestedNewPassword.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Events;
@@ -17,22 +26,29 @@ use FireflyIII\User;
use Illuminate\Queue\SerializesModels;
/**
* Class RequestedNewPassword
*
* @package FireflyIII\Events
* Class RequestedNewPassword.
*/
class RequestedNewPassword extends Event
{
use SerializesModels;
/**
* @var string
*/
public $ipAddress;
/**
* @var string
*/
public $token;
/**
* @var User
*/
public $user;
/**
* Create a new event instance. This event is triggered when a users tries to reset his or her password.
*
* @param User $user
* @param User $user
* @param string $token
* @param string $ipAddress
*/
@@ -42,5 +58,4 @@ class RequestedNewPassword extends Event
$this->token = $token;
$this->ipAddress = $ipAddress;
}
}

View File

@@ -0,0 +1,52 @@
<?php
/**
* RequestedVersionCheckStatus.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\Events;
use FireflyIII\User;
use Illuminate\Queue\SerializesModels;
/**
* Class RequestedVersionCheckStatus
*/
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;
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* StoredTransactionJournal.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Events;
@@ -17,13 +26,10 @@ use FireflyIII\Models\TransactionJournal;
use Illuminate\Queue\SerializesModels;
/**
* Class StoredTransactionJournal
*
* @package FireflyIII\Events
* Class StoredTransactionJournal.
*/
class StoredTransactionJournal extends Event
{
use SerializesModels;
/** @var TransactionJournal */
@@ -39,10 +45,7 @@ class StoredTransactionJournal extends Event
*/
public function __construct(TransactionJournal $journal, int $piggyBankId)
{
//
$this->journal = $journal;
$this->piggyBankId = $piggyBankId;
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* UpdatedTransactionJournal.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Events;
@@ -17,13 +26,10 @@ use FireflyIII\Models\TransactionJournal;
use Illuminate\Queue\SerializesModels;
/**
* Class UpdatedTransactionJournal
*
* @package FireflyIII\Events
* Class UpdatedTransactionJournal.
*/
class UpdatedTransactionJournal extends Event
{
use SerializesModels;
/** @var TransactionJournal */
@@ -36,8 +42,6 @@ class UpdatedTransactionJournal extends Event
*/
public function __construct(TransactionJournal $journal)
{
//
$this->journal = $journal;
}
}

View File

@@ -2,12 +2,22 @@
/**
* UserChangedEmail.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Events;
@@ -16,19 +26,17 @@ use FireflyIII\User;
use Illuminate\Queue\SerializesModels;
/**
* Class UserChangedEmail
*
* @package FireflyIII\Events
* Class UserChangedEmail.
*/
class UserChangedEmail extends Event
{
use SerializesModels;
/** @var string */
/** @var string */
public $ipAddress;
/** @var string */
/** @var string */
public $newEmail;
/** @var string */
/** @var string */
public $oldEmail;
/** @var User */
public $user;
@@ -48,4 +56,4 @@ class UserChangedEmail extends Event
$this->oldEmail = $oldEmail;
$this->newEmail = $newEmail;
}
}
}

View File

@@ -1,25 +1,30 @@
<?php
/**
* FireflyException.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Exceptions;
/**
* Class FireflyException
*
* @package FireflyIII\Exceptions
* Class FireflyException.
*/
class FireflyException extends \Exception
{
}
}

View File

@@ -1,15 +1,24 @@
<?php
declare(strict_types=1);
/**
* Handler.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Exceptions;
@@ -19,7 +28,9 @@ use FireflyIII\Jobs\MailError;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Request;
/**
* Class Handler
*/
class Handler extends ExceptionHandler
{
/**
@@ -39,21 +50,19 @@ class Handler extends ExceptionHandler
*/
protected $dontReport
= [
//
];
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
*
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
if ($exception instanceof FireflyException || $exception instanceof ErrorException) {
$isDebug = env('APP_DEBUG', false);
return response()->view('errors.FireflyException', ['exception' => $exception, 'debug' => $isDebug], 500);
@@ -68,9 +77,12 @@ class Handler extends ExceptionHandler
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's five its fine.
* @param \Exception $exception
*
* @return void
* @param \Exception $exception
*
* @return mixed|void
*
* @throws Exception
*/
public function report(Exception $exception)
{
@@ -101,7 +113,6 @@ class Handler extends ExceptionHandler
dispatch($job);
}
parent::report($exception);
}
}

View File

@@ -1,25 +1,30 @@
<?php
/**
* NotImplementedException.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Exceptions;
/**
* Class NotImplementedException
*
* @package FireflyIII\Exceptions
* Class NotImplementedException.
*/
class NotImplementedException extends \Exception
{
}
}

View File

@@ -1,24 +1,30 @@
<?php
/**
* ValidationException.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Exceptions;
/**
* Class ValidationExceptions
*
* @package FireflyIII\Exception
* Class ValidationExceptions.
*/
class ValidationException extends \Exception
{
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* AttachmentCollector.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Collector;
@@ -23,19 +32,17 @@ use Log;
use Storage;
/**
* Class AttachmentCollector
*
* @package FireflyIII\Export\Collector
* Class AttachmentCollector.
*/
class AttachmentCollector extends BasicCollector implements CollectorInterface
{
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var \Illuminate\Contracts\Filesystem\Filesystem */
private $exportDisk;
/** @var AttachmentRepositoryInterface */
/** @var AttachmentRepositoryInterface */
private $repository;
/** @var Carbon */
/** @var Carbon */
private $start;
/** @var \Illuminate\Contracts\Filesystem\Filesystem */
private $uploadDisk;
@@ -94,11 +101,9 @@ class AttachmentCollector extends BasicCollector implements CollectorInterface
$exportFile = $this->exportFileName($attachment);
$this->exportDisk->put($exportFile, $decrypted);
$this->getEntries()->push($exportFile);
} catch (DecryptException $e) {
Log::error('Catchable error: could not decrypt attachment #' . $attachment->id . ' because: ' . $e->getMessage());
}
}
return true;
@@ -113,7 +118,6 @@ class AttachmentCollector extends BasicCollector implements CollectorInterface
*/
private function exportFileName($attachment): string
{
return sprintf('%s-Attachment nr. %s - %s', $this->job->key, strval($attachment->id), $attachment->filename);
}

View File

@@ -1,33 +1,39 @@
<?php
/**
* BasicCollector.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Collector;
use FireflyIII\Models\ExportJob;
use FireflyIII\User;
use Illuminate\Support\Collection;
/**
* Class BasicCollector
*
* @package FireflyIII\Export\Collector
* Class BasicCollector.
*/
class BasicCollector
{
/** @var ExportJob */
protected $job;
/** @var User */
/** @var User */
protected $user;
/** @var Collection */
private $entries;
@@ -72,6 +78,4 @@ class BasicCollector
{
$this->user = $user;
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* CollectorInterface.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Collector;
@@ -17,9 +26,7 @@ use FireflyIII\Models\ExportJob;
use Illuminate\Support\Collection;
/**
* Interface CollectorInterface
*
* @package FireflyIII\Export\Collector
* Interface CollectorInterface.
*/
interface CollectorInterface
{
@@ -35,9 +42,6 @@ interface CollectorInterface
/**
* @param Collection $entries
*
* @return void
*
*/
public function setEntries(Collection $entries);
@@ -47,5 +51,4 @@ interface CollectorInterface
* @return mixed
*/
public function setJob(ExportJob $job);
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* UploadCollector.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Collector;
@@ -20,9 +29,7 @@ use Log;
use Storage;
/**
* Class UploadCollector
*
* @package FireflyIII\Export\Collector
* Class UploadCollector.
*/
class UploadCollector extends BasicCollector implements CollectorInterface
{
@@ -84,7 +91,7 @@ class UploadCollector extends BasicCollector implements CollectorInterface
{
// find job associated with import file:
$job = $this->job->user->importJobs()->where('key', $key)->first();
if (is_null($job)) {
if (null === $job) {
return false;
}
@@ -106,5 +113,4 @@ class UploadCollector extends BasicCollector implements CollectorInterface
return true;
}
}

View File

@@ -1,24 +1,32 @@
<?php
/**
* Entry.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Entry;
use FireflyIII\Models\Transaction;
use Steam;
/**
* To extend the exported object, in case of new features in Firefly III for example,
* do the following:
* do the following:.
*
* - Add the field(s) to this class. If you add more than one related field, add a new object.
* - Make sure the "fromJournal"-routine fills these fields.
@@ -30,52 +38,141 @@ use Steam;
*
*
* Class Entry
*
* @SuppressWarnings(PHPMD.LongVariable)
* @SuppressWarnings(PHPMD.TooManyFields)
*
* @package FireflyIII\Export\Entry
*/
final class Entry
{
// @formatter:off
/**
* @var int
*/
public $journal_id;
/**
* @var int
*/
public $transaction_id = 0;
/**
* @var string
*/
public $date;
/**
* @var string
*/
public $description;
/**
* @var string
*/
public $currency_code;
/**
* @var string
*/
public $amount;
/**
* @var string
*/
public $foreign_currency_code = '';
public $foreign_amount = '0';
/**
* @var string
*/
public $foreign_amount = '0';
/**
* @var string
*/
public $transaction_type;
/**
* @var string
*/
public $asset_account_id;
/**
* @var string
*/
public $asset_account_name;
/**
* @var string
*/
public $asset_account_iban;
/**
* @var string
*/
public $asset_account_bic;
/**
* @var string
*/
public $asset_account_number;
/**
* @var string
*/
public $asset_currency_code;
/**
* @var string
*/
public $opposing_account_id;
/**
* @var string
*/
public $opposing_account_name;
/**
* @var string
*/
public $opposing_account_iban;
/**
* @var string
*/
public $opposing_account_bic;
/**
* @var string
*/
public $opposing_account_number;
/**
* @var string
*/
public $opposing_currency_code;
/**
* @var string
*/
public $budget_id;
/**
* @var string
*/
public $budget_name;
/**
* @var string
*/
public $category_id;
/**
* @var string
*/
public $category_name;
/**
* @var string
*/
public $bill_id;
/**
* @var string
*/
public $bill_name;
/**
* @var string
*/
public $notes;
/**
* @var string
*/
public $tags;
// @formatter:on
/**
@@ -97,7 +194,7 @@ final class Entry
*/
public static function fromTransaction(Transaction $transaction): Entry
{
$entry = new self;
$entry = new self();
$entry->journal_id = $transaction->journal_id;
$entry->transaction_id = $transaction->id;
$entry->date = $transaction->date->format('Ymd');
@@ -106,50 +203,51 @@ final class Entry
$entry->description = $transaction->transaction_description . '(' . $transaction->description . ')';
}
$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 = is_null($transaction->foreign_currency_id) ? null : $transaction->foreignCurrency->code;
$entry->foreign_amount = is_null($transaction->foreign_currency_id)
$entry->foreign_currency_code = null === $transaction->foreign_currency_id ? null : $transaction->foreignCurrency->code;
$entry->foreign_amount = null === $transaction->foreign_currency_id
? null
: strval(
round(
$transaction->transaction_foreign_amount, $transaction->foreignCurrency->decimal_places
$transaction->transaction_foreign_amount,
$transaction->foreignCurrency->decimal_places
)
);
$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_iban = $transaction->account_iban;
$entry->asset_account_number = $transaction->account_number;
$entry->asset_account_bic = $transaction->account_bic;
$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_iban = $transaction->opposing_account_iban;
$entry->opposing_account_number = $transaction->opposing_account_number;
$entry->opposing_account_bic = $transaction->opposing_account_bic;
$entry->opposing_currency_code = $transaction->opposing_currency_code;
/** budget */
$entry->budget_id = $transaction->transaction_budget_id;
// budget
$entry->budget_id = strval($transaction->transaction_budget_id);
$entry->budget_name = app('steam')->tryDecrypt($transaction->transaction_budget_name);
if (is_null($transaction->transaction_budget_id)) {
if (null === $transaction->transaction_budget_id) {
$entry->budget_id = $transaction->transaction_journal_budget_id;
$entry->budget_name = app('steam')->tryDecrypt($transaction->transaction_journal_budget_name);
}
/** category */
$entry->category_id = $transaction->transaction_category_id;
// category
$entry->category_id = strval($transaction->transaction_category_id);
$entry->category_name = app('steam')->tryDecrypt($transaction->transaction_category_name);
if (is_null($transaction->transaction_category_id)) {
if (null === $transaction->transaction_category_id) {
$entry->category_id = $transaction->transaction_journal_category_id;
$entry->category_name = app('steam')->tryDecrypt($transaction->transaction_journal_category_name);
}
/** budget */
$entry->bill_id = $transaction->bill_id;
// budget
$entry->bill_id = strval($transaction->bill_id);
$entry->bill_name = app('steam')->tryDecrypt($transaction->bill_name);
$entry->tags = $transaction->tags;
@@ -157,6 +255,4 @@ final class Entry
return $entry;
}
}

View File

@@ -2,17 +2,26 @@
/**
* ExpandedProcessor.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Export;
use Crypt;
use DB;
use FireflyIII\Exceptions\FireflyException;
@@ -23,8 +32,8 @@ use FireflyIII\Helpers\Collector\JournalCollectorInterface;
use FireflyIII\Helpers\Filter\InternalTransferFilter;
use FireflyIII\Models\AccountMeta;
use FireflyIII\Models\ExportJob;
use FireflyIII\Models\Note;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournalMeta;
use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
@@ -32,32 +41,29 @@ use Storage;
use ZipArchive;
/**
* Class ExpandedProcessor
* Class ExpandedProcessor.
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects) // its doing a lot.
*
* @package FireflyIII\Export
*/
class ExpandedProcessor implements ProcessorInterface
{
/** @var Collection */
public $accounts;
/** @var string */
/** @var string */
public $exportFormat;
/** @var bool */
/** @var bool */
public $includeAttachments;
/** @var bool */
/** @var bool */
public $includeOldUploads;
/** @var ExportJob */
/** @var ExportJob */
public $job;
/** @var array */
public $settings;
/** @var Collection */
/** @var Collection */
private $exportEntries;
/** @var Collection */
/** @var Collection */
private $files;
/** @var Collection */
/** @var Collection */
private $journals;
/**
@@ -108,8 +114,8 @@ class ExpandedProcessor implements ProcessorInterface
$notes = $this->getNotes($ids);
$tags = $this->getTags($ids);
/** @var array $ibans */
$ibans = $this->getIbans($assetIds) + $this->getIbans($opposingIds);
$currencies = $this->getAccountCurrencies($ibans);
$ibans = array_merge($this->getIbans($assetIds), $this->getIbans($opposingIds));
$currencies = $this->getAccountCurrencies($ibans);
$transactions->each(
function (Transaction $transaction) use ($notes, $tags, $ibans, $currencies) {
$journalId = intval($transaction->journal_id);
@@ -125,7 +131,6 @@ class ExpandedProcessor implements ProcessorInterface
$transaction->opposing_account_number = $ibans[$opposingId]['accountNumber'] ?? '';
$transaction->opposing_account_bic = $ibans[$opposingId]['BIC'] ?? '';
$transaction->opposing_currency_code = $currencies[$opposingCurrencyId] ?? '';
}
);
@@ -166,7 +171,9 @@ class ExpandedProcessor implements ProcessorInterface
/**
* @return bool
*
* @throws FireflyException
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
*/
public function createZipFile(): bool
{
@@ -174,7 +181,7 @@ class ExpandedProcessor implements ProcessorInterface
$file = $this->job->key . '.zip';
$fullPath = storage_path('export') . '/' . $file;
if ($zip->open($fullPath, ZipArchive::CREATE) !== true) {
if (true !== $zip->open($fullPath, ZipArchive::CREATE)) {
throw new FireflyException('Cannot store zip file.');
}
// for each file in the collection, add it to the zip file.
@@ -269,7 +276,7 @@ class ExpandedProcessor implements ProcessorInterface
}
/**
* Get all IBAN / SWIFT / account numbers
* Get all IBAN / SWIFT / account numbers.
*
* @param array $array
*
@@ -303,17 +310,16 @@ class ExpandedProcessor implements ProcessorInterface
private function getNotes(array $array): array
{
$array = array_unique($array);
$set = TransactionJournalMeta::whereIn('journal_meta.transaction_journal_id', $array)
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'journal_meta.transaction_journal_id')
->where('transaction_journals.user_id', $this->job->user_id)
->where('journal_meta.name', 'notes')->get(
['journal_meta.transaction_journal_id', 'journal_meta.data', 'journal_meta.id']
);
$notes = Note::where('notes.noteable_type', 'FireflyIII\\Models\\TransactionJournal')
->whereIn('notes.noteable_id', $array)
->get(['notes.*']);
$return = [];
/** @var TransactionJournalMeta $meta */
foreach ($set as $meta) {
$id = intval($meta->transaction_journal_id);
$return[$id] = $meta->data;
/** @var Note $note */
foreach ($notes as $note) {
if (strlen(trim(strval($note->text))) > 0) {
$id = intval($note->noteable_id);
$return[$id] = $note->text;
}
}
return $return;

View File

@@ -1,30 +1,36 @@
<?php
/**
* BasicExporter.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Exporter;
use FireflyIII\Models\ExportJob;
use Illuminate\Support\Collection;
/**
* Class BasicExporter
*
* @package FireflyIII\Export\Exporter
* Class BasicExporter.
*/
class BasicExporter
{
/** @var ExportJob */
/** @var ExportJob */
protected $job;
/** @var Collection */
private $entries;
@@ -60,6 +66,4 @@ class BasicExporter
{
$this->job = $job;
}
}

View File

@@ -1,30 +1,37 @@
<?php
/**
* CsvExporter.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Exporter;
use FireflyIII\Export\Entry\Entry;
use League\Csv\Writer;
use SplFileObject;
use Storage;
/**
* Class CsvExporter
*
* @package FireflyIII\Export\Exporter
* Class CsvExporter.
*/
class CsvExporter extends BasicExporter implements ExporterInterface
{
/** @var string */
/** @var string */
private $fileName;
/**
@@ -45,6 +52,8 @@ class CsvExporter extends BasicExporter implements ExporterInterface
/**
* @return bool
*
* @throws \TypeError
*/
public function run(): bool
{
@@ -53,13 +62,16 @@ class CsvExporter extends BasicExporter implements ExporterInterface
// necessary for CSV writer:
$fullPath = storage_path('export') . DIRECTORY_SEPARATOR . $this->fileName;
$writer = Writer::createFromPath(new SplFileObject($fullPath, 'a+'), 'w');
$rows = [];
//we create the CSV into memory
$writer = Writer::createFromPath($fullPath);
$rows = [];
// get field names for header row:
$first = $this->getEntries()->first();
$headers = [];
if (!is_null($first)) {
if (null !== $first) {
$headers = array_keys(get_object_vars($first));
}
@@ -78,9 +90,11 @@ class CsvExporter extends BasicExporter implements ExporterInterface
return true;
}
private function tempFile()
{
$this->fileName = $this->job->key . '-records.csv';
// touch file in export directory:
$disk = Storage::disk('export');
$disk->put($this->fileName, '');
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* ExporterInterface.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export\Exporter;
@@ -17,9 +26,7 @@ use FireflyIII\Models\ExportJob;
use Illuminate\Support\Collection;
/**
* Interface ExporterInterface
*
* @package FireflyIII\Export\Exporter
* Interface ExporterInterface.
*/
interface ExporterInterface
{
@@ -40,9 +47,6 @@ interface ExporterInterface
/**
* @param Collection $entries
*
* @return void
*
*/
public function setEntries(Collection $entries);
@@ -50,5 +54,4 @@ interface ExporterInterface
* @param ExportJob $job
*/
public function setJob(ExportJob $job);
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* ProcessorInterface.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Export;
@@ -16,13 +25,10 @@ namespace FireflyIII\Export;
use Illuminate\Support\Collection;
/**
* Interface ProcessorInterface
*
* @package FireflyIII\Export
* Interface ProcessorInterface.
*/
interface ProcessorInterface
{
/**
* Processor constructor.
*/

View File

@@ -1,14 +1,23 @@
<?php
/**
* ChartJsGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Chart\Basic;
@@ -17,15 +26,12 @@ use FireflyIII\Support\ChartColour;
use Steam;
/**
* Class ChartJsGenerator
*
* @package FireflyIII\Generator\Chart\Basic
* Class ChartJsGenerator.
*/
class ChartJsGenerator implements GeneratorInterface
{
/**
* Will generate a Chart JS compatible array from the given input. Expects this format
* Will generate a Chart JS compatible array from the given input. Expects this format.
*
* Will take labels for all from first set.
*
@@ -92,7 +98,7 @@ class ChartJsGenerator implements GeneratorInterface
}
/**
* Expects data as:
* Expects data as:.
*
* key => value
*
@@ -113,7 +119,7 @@ class ChartJsGenerator implements GeneratorInterface
// different sort when values are positive and when they're negative.
asort($data);
$next = next($data);
if (!is_bool($next) && bccomp($next, '0') === 1) {
if (!is_bool($next) && 1 === bccomp($next, '0')) {
// next is positive, sort other way around.
arsort($data);
}
@@ -121,19 +127,18 @@ class ChartJsGenerator implements GeneratorInterface
$index = 0;
foreach ($data as $key => $value) {
// make larger than 0
$chartData['datasets'][0]['data'][] = floatval(Steam::positive($value));
$chartData['datasets'][0]['backgroundColor'][] = ChartColour::getColour($index);
$chartData['labels'][] = $key;
$index++;
++$index;
}
return $chartData;
}
/**
* Will generate a (ChartJS) compatible array from the given input. Expects this format:
* Will generate a (ChartJS) compatible array from the given input. Expects this format:.
*
* 'label-of-entry' => value
* 'label-of-entry' => value

View File

@@ -1,28 +1,34 @@
<?php
/**
* GeneratorInterface.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Chart\Basic;
/**
* Interface GeneratorInterface
*
* @package FireflyIII\Generator\Chart\Basic
* Interface GeneratorInterface.
*/
interface GeneratorInterface
{
/**
* Will generate a Chart JS compatible array from the given input. Expects this format
* Will generate a Chart JS compatible array from the given input. Expects this format.
*
* Will take labels for all from first set.
*
@@ -56,7 +62,7 @@ interface GeneratorInterface
public function multiSet(array $data): array;
/**
* Expects data as:
* Expects data as:.
*
* key => value
*
@@ -67,7 +73,7 @@ interface GeneratorInterface
public function pieChart(array $data): array;
/**
* Will generate a (ChartJS) compatible array from the given input. Expects this format:
* Will generate a (ChartJS) compatible array from the given input. Expects this format:.
*
* 'label-of-entry' => value
* 'label-of-entry' => value
@@ -78,5 +84,4 @@ interface GeneratorInterface
* @return array
*/
public function singleSet(string $setLabel, array $data): array;
}

View File

@@ -0,0 +1,146 @@
<?php
/**
* MonthReportGenerator.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\Generator\Report\Account;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use Illuminate\Support\Collection;
/**
* Class MonthReportGenerator.
*/
class MonthReportGenerator implements ReportGeneratorInterface
{
/** @var Collection */
private $accounts;
/** @var Carbon */
private $end;
/** @var Collection */
private $expense;
/** @var Carbon */
private $start;
/**
* @return string
*
* @throws \Throwable
*/
public function generate(): string
{
$accountIds = join(',', $this->accounts->pluck('id')->toArray());
$expenseIds = join(',', $this->expense->pluck('id')->toArray());
$reportType = 'account';
$preferredPeriod = $this->preferredPeriod();
return view(
'reports.account.report',
compact('accountIds', 'reportType', 'expenseIds', 'preferredPeriod')
)->with('start', $this->start)->with('end', $this->end)->render();
}
/**
* @param Collection $accounts
*
* @return ReportGeneratorInterface
*/
public function setAccounts(Collection $accounts): ReportGeneratorInterface
{
$this->accounts = $accounts;
return $this;
}
/**
* @param Collection $budgets
*
* @return ReportGeneratorInterface
*/
public function setBudgets(Collection $budgets): ReportGeneratorInterface
{
return $this;
}
/**
* @param Collection $categories
*
* @return ReportGeneratorInterface
*/
public function setCategories(Collection $categories): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*
* @return ReportGeneratorInterface
*/
public function setEndDate(Carbon $date): ReportGeneratorInterface
{
$this->end = $date;
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
$this->expense = $expense;
return $this;
}
/**
* @param Carbon $date
*
* @return ReportGeneratorInterface
*/
public function setStartDate(Carbon $date): ReportGeneratorInterface
{
$this->start = $date;
return $this;
}
/**
* @param Collection $tags
*
* @return ReportGeneratorInterface
*/
public function setTags(Collection $tags): ReportGeneratorInterface
{
return $this;
}
/**
* @return string
*/
protected function preferredPeriod(): string
{
return 'day';
}
}

View File

@@ -0,0 +1,39 @@
<?php
/**
* MultiYearReportGenerator.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\Generator\Report\Account;
/**
* Class MultiYearReportGenerator.
*/
class MultiYearReportGenerator extends MonthReportGenerator
{
// Doesn't do anything different.
/**
* @return string
*/
protected function preferredPeriod(): string
{
return 'year';
}
}

View File

@@ -0,0 +1,39 @@
<?php
/**
* YearReportGenerator.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\Generator\Report\Account;
/**
* Class YearReportGenerator.
*/
class YearReportGenerator extends MonthReportGenerator
{
// Doesn't do anything different.
/**
* @return string
*/
protected function preferredPeriod(): string
{
return 'month';
}
}

View File

@@ -1,19 +1,27 @@
<?php
/**
* MonthReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Audit;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use FireflyIII\Helpers\Collector\JournalCollectorInterface;
@@ -24,17 +32,15 @@ use Illuminate\Support\Collection;
use Steam;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Audit
* Class MonthReportGenerator.
*/
class MonthReportGenerator implements ReportGeneratorInterface
{
/** @var Collection */
/** @var Collection */
private $accounts;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Carbon */
/** @var Carbon */
private $start;
/**
@@ -42,8 +48,6 @@ class MonthReportGenerator implements ReportGeneratorInterface
*/
public function generate(): string
{
$auditData = [];
$dayBefore = clone $this->start;
$dayBefore->subDay();
@@ -67,11 +71,9 @@ class MonthReportGenerator implements ReportGeneratorInterface
'create_date', 'update_date',
];
return view('reports.audit.report', compact('reportType', 'accountIds', 'auditData', 'hideable', 'defaultShow'))
->with('start', $this->start)->with('end', $this->end)->with('accounts', $this->accounts)
->render();
}
/**
@@ -118,6 +120,16 @@ class MonthReportGenerator implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*
@@ -147,7 +159,6 @@ class MonthReportGenerator implements ReportGeneratorInterface
* @return array
*
* @SuppressWarnings(PHPMD.ExcessiveMethodLength) // not that long
*
*/
private function getAuditReport(Account $account, Carbon $date): array
{
@@ -163,7 +174,7 @@ class MonthReportGenerator implements ReportGeneratorInterface
$startBalance = $dayBeforeBalance;
$currency = $currencyRepos->find(intval($account->getMeta('currency_id')));
/** @var Transaction $journal */
/** @var Transaction $transaction */
foreach ($journals as $transaction) {
$transaction->before = $startBalance;
$transactionAmount = $transaction->transaction_amount;

View File

@@ -1,27 +1,31 @@
<?php
/**
* MultiYearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Audit;
/**
* Class MultiYearReportGenerator
*
* @package FireflyIII\Generator\Report\Audit
* Class MultiYearReportGenerator.
*/
class MultiYearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -1,28 +1,31 @@
<?php
/**
* YearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Audit;
/**
* Class YearReportGenerator
*
* @package FireflyIII\Generator\Report\Audit
* Class YearReportGenerator.
*/
class YearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -1,19 +1,27 @@
<?php
/**
* MonthReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Budget;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use FireflyIII\Generator\Report\Support;
@@ -27,23 +35,21 @@ use Illuminate\Support\Collection;
use Log;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Budget
* Class MonthReportGenerator.
*/
class MonthReportGenerator extends Support implements ReportGeneratorInterface
{
/** @var Collection */
/** @var Collection */
private $accounts;
/** @var Collection */
/** @var Collection */
private $budgets;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Collection */
private $expenses;
/** @var Collection */
private $income;
/** @var Carbon */
/** @var Carbon */
private $start;
/**
@@ -122,6 +128,16 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*
@@ -178,7 +194,9 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
*/
private function summarizeByBudget(Collection $collection): array
{
$result = [];
$result = [
'sum' => '0',
];
/** @var Transaction $transaction */
foreach ($collection as $transaction) {
$jrnlBudId = intval($transaction->transaction_journal_budget_id);
@@ -186,6 +204,7 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
$budgetId = max($jrnlBudId, $transBudId);
$result[$budgetId] = $result[$budgetId] ?? '0';
$result[$budgetId] = bcadd($transaction->transaction_amount, $result[$budgetId]);
$result['sum'] = bcadd($result['sum'], $transaction->transaction_amount);
}
return $result;

View File

@@ -1,27 +1,31 @@
<?php
/**
* MultiYearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Budget;
/**
* Class MultiYearReportGenerator
*
* @package FireflyIII\Generator\Report\Budget
* Class MultiYearReportGenerator.
*/
class MultiYearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -1,28 +1,31 @@
<?php
/**
* YearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Budget;
/**
* Class YearReportGenerator
*
* @package FireflyIII\Generator\Report\Budget
* Class YearReportGenerator.
*/
class YearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -1,19 +1,27 @@
<?php
/**
* MonthReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Category;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use FireflyIII\Generator\Report\Support;
@@ -28,23 +36,21 @@ use Illuminate\Support\Collection;
use Log;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Category
* Class MonthReportGenerator.
*/
class MonthReportGenerator extends Support implements ReportGeneratorInterface
{
/** @var Collection */
/** @var Collection */
private $accounts;
/** @var Collection */
/** @var Collection */
private $categories;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Collection */
private $expenses;
/** @var Collection */
private $income;
/** @var Carbon */
/** @var Carbon */
private $start;
/**
@@ -73,12 +79,19 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
$topExpenses = $this->getTopExpenses();
$topIncome = $this->getTopIncome();
// render!
return view(
'reports.category.month',
compact(
'accountIds', 'categoryIds', 'topIncome', 'reportType', 'accountSummary', 'categorySummary', 'averageExpenses', 'averageIncome', 'topExpenses'
'accountIds',
'categoryIds',
'topIncome',
'reportType',
'accountSummary',
'categorySummary',
'averageExpenses',
'averageIncome',
'topExpenses'
)
)
->with('start', $this->start)->with('end', $this->end)
@@ -133,6 +146,16 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*

View File

@@ -1,27 +1,31 @@
<?php
/**
* MultiYearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Category;
/**
* Class MultiYearReportGenerator
*
* @package FireflyIII\Generator\Report\Category
* Class MultiYearReportGenerator.
*/
class MultiYearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -1,28 +1,31 @@
<?php
/**
* YearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Category;
/**
* Class YearReportGenerator
*
* @package FireflyIII\Generator\Report\Category
* Class YearReportGenerator.
*/
class YearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* ReportGeneratorFactory.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report;
@@ -17,19 +26,17 @@ use Carbon\Carbon;
use FireflyIII\Exceptions\FireflyException;
/**
* Class ReportGeneratorFactory
*
* @package FireflyIII\Generator\Report
* Class ReportGeneratorFactory.
*/
class ReportGeneratorFactory
{
/**
* @param string $type
* @param Carbon $start
* @param Carbon $end
*
* @return ReportGeneratorInterface
*
* @throws FireflyException
*/
public static function reportGenerator(string $type, Carbon $start, Carbon $end): ReportGeneratorInterface
@@ -45,7 +52,6 @@ class ReportGeneratorFactory
$period = 'MultiYear';
}
$class = sprintf('FireflyIII\Generator\Report\%s\%sReportGenerator', $type, $period);
if (class_exists($class)) {
/** @var ReportGeneratorInterface $obj */

View File

@@ -1,26 +1,32 @@
<?php
/**
* ReportGeneratorInterface.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report;
use Carbon\Carbon;
use Illuminate\Support\Collection;
/**
* Interface ReportGeneratorInterface
*
* @package FireflyIII\Generator\Report
* Interface ReportGeneratorInterface.
*/
interface ReportGeneratorInterface
{
@@ -57,6 +63,13 @@ interface ReportGeneratorInterface
*/
public function setEndDate(Carbon $date): ReportGeneratorInterface;
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface;
/**
* @param Carbon $date
*
@@ -70,5 +83,4 @@ interface ReportGeneratorInterface
* @return ReportGeneratorInterface
*/
public function setTags(Collection $tags): ReportGeneratorInterface;
}

View File

@@ -1,40 +1,48 @@
<?php
/**
* MonthReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Standard;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use FireflyIII\Helpers\Report\ReportHelperInterface;
use Illuminate\Support\Collection;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Standard
* Class MonthReportGenerator.
*/
class MonthReportGenerator implements ReportGeneratorInterface
{
/** @var Collection */
/** @var Collection */
private $accounts;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Carbon */
/** @var Carbon */
private $start;
/**
* @return string
*
* @throws \Throwable
*/
public function generate(): string
{
@@ -95,6 +103,16 @@ class MonthReportGenerator implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*

View File

@@ -1,39 +1,47 @@
<?php
/**
* MultiYearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Standard;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use Illuminate\Support\Collection;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Standard
* Class MonthReportGenerator.
*/
class MultiYearReportGenerator implements ReportGeneratorInterface
{
/** @var Collection */
/** @var Collection */
private $accounts;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Carbon */
/** @var Carbon */
private $start;
/**
* @return string
*
* @throws \Throwable
*/
public function generate(): string
{
@@ -92,6 +100,16 @@ class MultiYearReportGenerator implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*

View File

@@ -1,39 +1,47 @@
<?php
/**
* YearReportGenerator.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report\Standard;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use Illuminate\Support\Collection;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Standard
* Class MonthReportGenerator.
*/
class YearReportGenerator implements ReportGeneratorInterface
{
/** @var Collection */
/** @var Collection */
private $accounts;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Carbon */
/** @var Carbon */
private $start;
/**
* @return string
*
* @throws \Throwable
*/
public function generate(): string
{
@@ -92,6 +100,16 @@ class YearReportGenerator implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*

View File

@@ -1,14 +1,23 @@
<?php
/**
* Support.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Generator\Report;
@@ -16,11 +25,8 @@ namespace FireflyIII\Generator\Report;
use FireflyIII\Models\Transaction;
use Illuminate\Support\Collection;
/**
* Class Support
*
* @package FireflyIII\Generator\Report\Category
* Class Support.
*/
class Support
{
@@ -70,7 +76,7 @@ class Support
];
continue;
}
$result[$opposingId]['count']++;
++$result[$opposingId]['count'];
$result[$opposingId]['sum'] = bcadd($result[$opposingId]['sum'], $transaction->transaction_amount);
$result[$opposingId]['average'] = bcdiv($result[$opposingId]['sum'], strval($result[$opposingId]['count']));
}
@@ -88,6 +94,7 @@ class Support
/**
* @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's exactly five.
*
* @param array $spent
* @param array $earned
*
@@ -95,34 +102,40 @@ class Support
*/
protected function getObjectSummary(array $spent, array $earned): array
{
$return = [];
$return = [
'sum' => [
'spent' => '0',
'earned' => '0',
],
];
/**
* @var int $accountId
* @var int
* @var string $entry
*/
foreach ($spent as $objectId => $entry) {
if (!isset($return[$objectId])) {
$return[$objectId] = ['spent' => 0, 'earned' => 0];
$return[$objectId] = ['spent' => '0', 'earned' => '0'];
}
$return[$objectId]['spent'] = $entry;
$return['sum']['spent'] = bcadd($return['sum']['spent'], $entry);
}
unset($entry);
/**
* @var int $accountId
* @var int
* @var string $entry
*/
foreach ($earned as $objectId => $entry) {
if (!isset($return[$objectId])) {
$return[$objectId] = ['spent' => 0, 'earned' => 0];
$return[$objectId] = ['spent' => '0', 'earned' => '0'];
}
$return[$objectId]['earned'] = $entry;
$return['sum']['earned'] = bcadd($return['sum']['earned'], $entry);
}
return $return;
}
@@ -133,15 +146,17 @@ class Support
*/
protected function summarizeByAccount(Collection $collection): array
{
$result = [];
$result = [
'sum' => '0',
];
/** @var Transaction $transaction */
foreach ($collection as $transaction) {
$accountId = $transaction->account_id;
$result[$accountId] = $result[$accountId] ?? '0';
$result[$accountId] = bcadd($transaction->transaction_amount, $result[$accountId]);
$result['sum'] = bcadd($result['sum'], $transaction->transaction_amount);
}
return $result;
}
}

View File

@@ -2,16 +2,26 @@
/**
* MonthReportGenerator.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Generator\Report\Tag;
use Carbon\Carbon;
use FireflyIII\Generator\Report\ReportGeneratorInterface;
use FireflyIII\Generator\Report\Support;
@@ -27,22 +37,19 @@ use Illuminate\Support\Collection;
use Log;
/**
* Class MonthReportGenerator
*
* @package FireflyIII\Generator\Report\Tag
* Class MonthReportGenerator.
*/
class MonthReportGenerator extends Support implements ReportGeneratorInterface
{
/** @var Collection */
private $accounts;
/** @var Carbon */
/** @var Carbon */
private $end;
/** @var Collection */
private $expenses;
/** @var Collection */
private $income;
/** @var Carbon */
/** @var Carbon */
private $start;
/** @var Collection */
private $tags;
@@ -58,6 +65,7 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
/**
* @return string
* @throws \Throwable
*/
public function generate(): string
{
@@ -73,13 +81,20 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
$topExpenses = $this->getTopExpenses();
$topIncome = $this->getTopIncome();
// render!
return view(
'reports.tag.month', compact(
'accountIds', 'tagTags', 'reportType', 'accountSummary', 'tagSummary', 'averageExpenses', 'averageIncome', 'topIncome',
'topExpenses'
)
'reports.tag.month',
compact(
'accountIds',
'tagTags',
'reportType',
'accountSummary',
'tagSummary',
'averageExpenses',
'averageIncome',
'topIncome',
'topExpenses'
)
)->with('start', $this->start)->with('end', $this->end)->with('tags', $this->tags)->with('accounts', $this->accounts)->render();
}
@@ -127,6 +142,16 @@ class MonthReportGenerator extends Support implements ReportGeneratorInterface
return $this;
}
/**
* @param Collection $expense
*
* @return ReportGeneratorInterface
*/
public function setExpense(Collection $expense): ReportGeneratorInterface
{
return $this;
}
/**
* @param Carbon $date
*

View File

@@ -2,24 +2,30 @@
/**
* MultiYearReportGenerator.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Generator\Report\Tag;
/**
* Class MultiYearReportGenerator
*
* @package FireflyIII\Generator\Report\Tag
* Class MultiYearReportGenerator.
*/
class MultiYearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -2,25 +2,30 @@
/**
* YearReportGenerator.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Generator\Report\Tag;
/**
* Class YearReportGenerator
*
* @package FireflyIII\Generator\Report\Tag
* Class YearReportGenerator.
*/
class YearReportGenerator extends MonthReportGenerator
{
/**
* Doesn't do anything different.
*/
// Doesn't do anything different.
}

View File

@@ -2,12 +2,22 @@
/**
* AdminEventHandler.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Handlers\Events;
@@ -20,20 +30,19 @@ use Session;
use Swift_TransportException;
/**
* Class AdminEventHandler
*
* @package FireflyIII\Handlers\Events
* Class AdminEventHandler.
*/
class AdminEventHandler
{
/**
* Sends a test message to an administrator.
*
* @param AdminRequestedTestMessage $event
*
* @return bool
*/
public function sendTestMessage(AdminRequestedTestMessage $event): bool
{
$email = $event->user->email;
$ipAddress = $event->ipAddress;
@@ -49,7 +58,8 @@ class AdminEventHandler
Session::flash('error', 'Possible email error: ' . $e->getMessage());
}
Log::debug('If no error above this line, message was sent.');
// @codeCoverageIgnoreEnd
return true;
}
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* StoredJournalEventHandler.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Handlers\Events;
@@ -27,17 +36,15 @@ use Log;
* @codeCoverageIgnore
*
* Class StoredJournalEventHandler
*
* @package FireflyIII\Handlers\Events
*/
class StoredJournalEventHandler
{
/** @var JRI */
/** @var JRI */
public $journalRepository;
/** @var PRI */
/** @var PRI */
public $repository;
/** @var RGRI */
/** @var RGRI */
public $ruleGroupRepository;
/**
@@ -78,7 +85,7 @@ class StoredJournalEventHandler
}
// piggy exists?
if (is_null($piggyBank->id)) {
if (null === $piggyBank->id) {
Log::error(sprintf('There is no piggy bank with ID #%d', $piggyBankId));
return true;
@@ -86,7 +93,7 @@ class StoredJournalEventHandler
// repetition exists?
$repetition = $this->repository->getRepetition($piggyBank, $journal->date);
if (is_null($repetition->id)) {
if (null === $repetition->id) {
Log::error(sprintf('No piggy bank repetition on %s!', $journal->date->format('Y-m-d')));
return true;
@@ -94,7 +101,7 @@ class StoredJournalEventHandler
// get the amount
$amount = $this->repository->getExactAmount($piggyBank, $repetition, $journal);
if (bccomp($amount, '0') === 0) {
if (0 === bccomp($amount, '0')) {
Log::debug('Amount is zero, will not create event.');
return true;
@@ -127,7 +134,6 @@ class StoredJournalEventHandler
$rules = $this->ruleGroupRepository->getActiveStoreRules($group);
/** @var Rule $rule */
foreach ($rules as $rule) {
$processor = Processor::make($rule);
$processor->handleTransactionJournal($journal);

View File

@@ -1,19 +1,27 @@
<?php
/**
* UpdatedJournalEventHandler.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Handlers\Events;
use FireflyIII\Events\UpdatedTransactionJournal;
use FireflyIII\Models\Rule;
use FireflyIII\Models\RuleGroup;
@@ -25,12 +33,10 @@ use FireflyIII\TransactionRules\Processor;
* @codeCoverageIgnore
*
* Class UpdatedJournalEventHandler
*
* @package FireflyIII\Handlers\Events
*/
class UpdatedJournalEventHandler
{
/** @var RuleGroupRepositoryInterface */
/** @var RuleGroupRepositoryInterface */
public $repository;
/**
@@ -67,7 +73,6 @@ class UpdatedJournalEventHandler
if ($rule->stop_processing) {
break;
}
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* UserEventHandler.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Handlers\Events;
@@ -16,28 +25,28 @@ namespace FireflyIII\Handlers\Events;
use FireflyIII\Events\RegisteredUser;
use FireflyIII\Events\RequestedNewPassword;
use FireflyIII\Events\UserChangedEmail;
use FireflyIII\Factories\RoleFactory;
use FireflyIII\Mail\ConfirmEmailChangeMail;
use FireflyIII\Mail\RegisteredUser as RegisteredUserMail;
use FireflyIII\Mail\RequestedNewPassword as RequestedNewPasswordMail;
use FireflyIII\Mail\UndoEmailChangeMail;
use FireflyIII\Repositories\User\UserRepositoryInterface;
use FireflyIII\User;
use Illuminate\Auth\Events\Login;
use Log;
use Mail;
use Preferences;
use Swift_TransportException;
/**
* Class UserEventHandler
* Class UserEventHandler.
*
* This class responds to any events that have anything to do with the User object.
*
* The method name reflects what is being done. This is in the present tense.
*
* @package FireflyIII\Handlers\Events
*/
class UserEventHandler
{
/**
* This method will bestow upon a user the "owner" role if he is the first user in the system.
*
@@ -51,13 +60,54 @@ class UserEventHandler
$repository = app(UserRepositoryInterface::class);
// first user ever?
if ($repository->count() === 1) {
if (1 === $repository->count()) {
$repository->attachRole($event->user, 'owner');
}
return true;
}
/**
* @param Login $event
*
* @return bool
*/
public function checkSingleUserIsAdmin(Login $event): bool
{
/** @var UserRepositoryInterface $repository */
$repository = app(UserRepositoryInterface::class);
/** @var User $user */
$user = $event->user;
$count = $repository->count();
if ($count > 1) {
// if more than one user, do nothing.
Log::debug(sprintf('System has %d users, will not change users roles.', $count));
return true;
}
// user is only user but has admin role
if (1 === $count && $user->hasRole('owner')) {
Log::debug(sprintf('User #%d is only user but has role owner so all is well.', $user->id));
return true;
}
// user is the only user but does not have role "owner".
$role = $repository->getRole('owner');
if (is_null($role)) {
// create role, does not exist. Very strange situation so let's raise a big fuss about it.
$role = $repository->createRole('owner', 'Site Owner', 'User runs this instance of FF3');
Log::error('Could not find role "owner". This is weird.');
}
Log::info(sprintf('Gave user #%d role #%d ("%s")', $user->id, $role->id, $role->name));
// give user the role
$repository->attachRole($user, 'owner');
return true;
}
/**
* @param UserChangedEmail $event
*
@@ -142,7 +192,6 @@ class UserEventHandler
*/
public function sendRegistrationMail(RegisteredUser $event)
{
$sendMail = env('SEND_REGISTRATION_MAIL', true);
if (!$sendMail) {
return true; // @codeCoverageIgnore

View File

@@ -0,0 +1,116 @@
<?php
/**
* VersionCheckEventHandler.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\Handlers\Events;
use FireflyConfig;
use FireflyIII\Events\RequestedVersionCheckStatus;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Services\Github\Object\Release;
use FireflyIII\Services\Github\Request\UpdateRequest;
use FireflyIII\User;
use Log;
/**
* Class VersionCheckEventHandler
*/
class VersionCheckEventHandler
{
/**
* @param RequestedVersionCheckStatus $event
*/
public function checkForUpdates(RequestedVersionCheckStatus $event)
{
// in Sandstorm, cannot check for updates:
$sandstorm = 1 === intval(getenv('SANDSTORM'));
if ($sandstorm === true) {
return;
}
/** @var User $user */
$user = $event->user;
if (!$user->hasRole('owner')) {
return;
}
$permission = FireflyConfig::get('permission_update_check', -1);
$lastCheckTime = FireflyConfig::get('last_update_check', time());
$now = time();
if ($now - $lastCheckTime->data < 604800) {
Log::debug(sprintf('Checked for updates less than a week ago (on %s).', date('Y-m-d H:i:s', $lastCheckTime->data)));
return;
}
// last check time was more than a week ago.
Log::debug('Have not checked for a new version in a week!');
// have actual permission?
if ($permission->data === -1) {
// never asked before.
session()->flash('info', strval(trans('firefly.check_for_updates_permission', ['link' => route('admin.update-check')])));
return;
}
$current = config('firefly.version');
/** @var UpdateRequest $request */
$request = app(UpdateRequest::class);
$check = -2;
$first = new Release(['id' => '0', 'title' => '0', 'updated' => '2017-01-01', 'content' => '']);
try {
$request->call();
$releases = $request->getReleases();
// first entry should be the latest entry:
/** @var Release $first */
$first = reset($releases);
$check = version_compare($current, $first->getTitle());
FireflyConfig::set('last_update_check', time());
} catch (FireflyException $e) {
Log::error(sprintf('Could not check for updates: %s', $e->getMessage()));
}
$string = 'no result: ' . $check;
if ($check === -2) {
$string = strval(trans('firefly.update_check_error'));
}
if ($check === -1) {
// there is a new FF version!
$monthAndDayFormat = (string)trans('config.month_and_day');
$string = strval(
trans(
'firefly.update_new_version_alert',
['your_version' => $current, 'new_version' => $first->getTitle(), 'date' => $first->getUpdated()->formatLocalized($monthAndDayFormat)]
)
);
}
if ($check !== 0) {
// flash info
session()->flash('info', $string);
}
return;
}
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* AttachmentHelper.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Helpers\Attachments;
@@ -23,14 +32,11 @@ use Storage;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* Class AttachmentHelper
*
* @package FireflyIII\Helpers\Attachments
* Class AttachmentHelper.
*/
class AttachmentHelper implements AttachmentHelperInterface
{
/** @var Collection */
/** @var Collection */
public $attachments;
/** @var MessageBag */
public $errors;
@@ -101,13 +107,20 @@ class AttachmentHelper implements AttachmentHelperInterface
*/
public function saveAttachmentsForModel(Model $model, ?array $files): bool
{
Log::debug(sprintf('Now in saveAttachmentsForModel for model %s', get_class($model)));
if (is_array($files)) {
Log::debug('$files is an array.');
/** @var UploadedFile $entry */
foreach ($files as $entry) {
if (!is_null($entry)) {
if (null !== $entry) {
$this->processFile($entry, $model);
}
}
Log::debug('Done processing uploads.');
return true;
}
Log::debug('Array of files is not an array. Probably nothing uploaded. Will not store attachments.');
return true;
}
@@ -128,6 +141,7 @@ class AttachmentHelper implements AttachmentHelperInterface
if ($count > 0) {
$msg = (string)trans('validation.file_already_attached', ['name' => $name]);
$this->errors->add('attachments', $msg);
Log::error($msg);
return true;
}
@@ -136,7 +150,6 @@ class AttachmentHelper implements AttachmentHelperInterface
}
/**
*
* @param UploadedFile $file
* @param Model $model
*
@@ -144,8 +157,9 @@ class AttachmentHelper implements AttachmentHelperInterface
*/
protected function processFile(UploadedFile $file, Model $model): Attachment
{
Log::debug('Now in processFile()');
$validation = $this->validateUpload($file, $model);
if ($validation === false) {
if (false === $validation) {
return new Attachment;
}
@@ -188,12 +202,16 @@ class AttachmentHelper implements AttachmentHelperInterface
*/
protected function validMime(UploadedFile $file): bool
{
Log::debug('Now in validMime()');
$mime = e($file->getMimeType());
$name = e($file->getClientOriginalName());
Log::debug(sprintf('Name is %, and mime is %s', $name, $mime));
Log::debug('Valid mimes are', $this->allowedMimes);
if (!in_array($mime, $this->allowedMimes)) {
$msg = (string)trans('validation.file_invalid_mime', ['name' => $name, 'mime' => $mime]);
$this->errors->add('attachments', $msg);
Log::error($msg);
return false;
}
@@ -215,6 +233,7 @@ class AttachmentHelper implements AttachmentHelperInterface
if ($size > $this->maxUploadSize) {
$msg = (string)trans('validation.file_too_large', ['name' => $name]);
$this->errors->add('attachments', $msg);
Log::error($msg);
return false;
}
@@ -230,6 +249,7 @@ class AttachmentHelper implements AttachmentHelperInterface
*/
protected function validateUpload(UploadedFile $file, Model $model): bool
{
Log::debug('Now in validateUpload()');
if (!$this->validMime($file)) {
return false;
}

View File

@@ -1,14 +1,23 @@
<?php
/**
* AttachmentHelperInterface.php
* Copyright (C) 2016 thegrumpydictator@gmail.com
* Copyright (c) 2017 thegrumpydictator@gmail.com
*
* This software may be modified and distributed under the terms of the
* Creative Commons Attribution-ShareAlike 4.0 International License.
* This file is part of Firefly III.
*
* See the LICENSE file for details.
* 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\Helpers\Attachments;
@@ -19,13 +28,10 @@ use Illuminate\Support\Collection;
use Illuminate\Support\MessageBag;
/**
* Interface AttachmentHelperInterface
*
* @package FireflyIII\Helpers\Attachments
* Interface AttachmentHelperInterface.
*/
interface AttachmentHelperInterface
{
/**
* @param Attachment $attachment
*
@@ -50,11 +56,9 @@ interface AttachmentHelperInterface
/**
* @param Model $model
*
* @param null|array $files
*
* @return bool
*/
public function saveAttachmentsForModel(Model $model, ?array $files): bool;
}

View File

@@ -2,11 +2,22 @@
/**
* MetaPieChart.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Helpers\Chart;
@@ -29,23 +40,19 @@ use Illuminate\Support\Collection;
use Steam;
/**
* Class MetaPieChart
*
* @package FireflyIII\Helpers\Chart
*
*
* Class MetaPieChart.
*/
class MetaPieChart implements MetaPieChartInterface
{
/** @var Collection */
/** @var Collection */
protected $accounts;
/** @var Collection */
/** @var Collection */
protected $budgets;
/** @var Collection */
/** @var Collection */
protected $categories;
/** @var bool */
protected $collectOtherObjects = false;
/** @var Carbon */
/** @var Carbon */
protected $end;
/** @var array */
protected $grouping
@@ -63,13 +70,13 @@ class MetaPieChart implements MetaPieChartInterface
'category' => CategoryRepositoryInterface::class,
'tag' => TagRepositoryInterface::class,
];
/** @var Carbon */
/** @var Carbon */
protected $start;
/** @var Collection */
/** @var Collection */
protected $tags;
/** @var string */
/** @var string */
protected $total = '0';
/** @var User */
/** @var User */
protected $user;
public function __construct()
@@ -96,7 +103,7 @@ class MetaPieChart implements MetaPieChartInterface
$key = strval(trans('firefly.everything_else'));
// also collect all other transactions
if ($this->collectOtherObjects && $direction === 'expense') {
if ($this->collectOtherObjects && 'expense' === $direction) {
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector->setUser($this->user);
@@ -109,7 +116,7 @@ class MetaPieChart implements MetaPieChartInterface
$chartData[$key] = $sum;
}
if ($this->collectOtherObjects && $direction === 'income') {
if ($this->collectOtherObjects && 'income' === $direction) {
/** @var JournalCollectorInterface $collector */
$collector = app(JournalCollectorInterface::class);
$collector->setUser($this->user);
@@ -121,7 +128,6 @@ class MetaPieChart implements MetaPieChartInterface
}
return $chartData;
}
/**
@@ -247,7 +253,7 @@ class MetaPieChart implements MetaPieChartInterface
$collector = app(JournalCollectorInterface::class);
$types = [TransactionType::DEPOSIT, TransactionType::TRANSFER];
$collector->addFilter(NegativeAmountFilter::class);
if ($direction === 'expense') {
if ('expense' === $direction) {
$types = [TransactionType::WITHDRAWAL, TransactionType::TRANSFER];
$collector->addFilter(PositiveAmountFilter::class);
$collector->removeFilter(NegativeAmountFilter::class);
@@ -260,7 +266,7 @@ class MetaPieChart implements MetaPieChartInterface
$collector->withOpposingAccount();
$collector->addFilter(OpposingAccountFilter::class);
if ($direction === 'income') {
if ('income' === $direction) {
$collector->removeFilter(TransferFilter::class);
}
@@ -283,11 +289,10 @@ class MetaPieChart implements MetaPieChartInterface
* @return array
*
* @SuppressWarnings(PHPMD.CyclomaticComplexity)
*
*/
protected function groupByFields(Collection $set, array $fields): array
{
if (count($fields) === 0 && $this->tags->count() > 0) {
if (0 === count($fields) && $this->tags->count() > 0) {
// do a special group on tags:
return $this->groupByTag($set);
}
@@ -330,7 +335,6 @@ class MetaPieChart implements MetaPieChartInterface
}
return $chartData;
}
/**

View File

@@ -2,11 +2,22 @@
/**
* MetaPieChartInterface.php
* Copyright (c) 2017 thegrumpydictator@gmail.com
* This software may be modified and distributed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International License.
*
* See the LICENSE file for details.
* 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\Helpers\Chart;
@@ -16,9 +27,7 @@ use FireflyIII\User;
use Illuminate\Support\Collection;
/**
* Interface MetaPieChartInterface
*
* @package FireflyIII\Helpers\Chart
* Interface MetaPieChartInterface.
*/
interface MetaPieChartInterface
{
@@ -85,5 +94,4 @@ interface MetaPieChartInterface
* @return MetaPieChartInterface
*/
public function setUser(User $user): MetaPieChartInterface;
}

Some files were not shown because too many files have changed in this diff Show More