Compare commits

..

611 Commits

Author SHA1 Message Date
James Brooks
7ed480dd64 Merge pull request #4203 from fiveai/fix-api-search-with-pagination
Fix API search with pagination when specifying page
2021-03-29 11:54:58 +01:00
Seb Dangerfield
c040fc334c Ensure only allowed searchable columns are used in DB Query 2021-01-15 18:38:29 +00:00
Seb Dangerfield
48fdf79a8f Test API Pagination and searching 2021-01-15 17:10:19 +00:00
James Brooks
fe3675ff33 Apply fixes from StyleCI (#4072) 2020-08-01 09:18:12 +01:00
James Brooks
94b4fe2d39 Merge pull request #3601 from CachetHQ/l10n_2.3
New Crowdin translations
2020-08-01 09:17:48 +01:00
Cachet Bot
23cd590815 New translations pagination.php (Afrikaans) 2020-07-16 18:01:00 +01:00
Cachet Bot
748962b1c6 New translations forms.php (Swedish) 2020-04-27 09:12:19 +01:00
Cachet Bot
6f0ccb7e76 New translations forms.php (Russian) 2020-04-27 09:12:16 +01:00
Cachet Bot
0c637cc683 New translations forms.php (Vietnamese) 2020-04-27 09:11:44 +01:00
Cachet Bot
ec26e01e8d New translations validation.php (Portuguese, Brazilian) 2020-04-27 09:11:41 +01:00
Cachet Bot
9caecd3268 New translations forms.php (Danish) 2020-04-27 09:11:27 +01:00
Cachet Bot
f7ab99483c New translations forms.php (Romanian) 2020-04-27 09:11:13 +01:00
Cachet Bot
b9c9d28b59 New translations pagination.php (Afrikaans) 2020-04-27 09:11:03 +01:00
Cachet Bot
1d32adb0e6 New translations dashboard.php (Norwegian) 2020-04-27 09:10:47 +01:00
Cachet Bot
e36abd5ce4 New translations forms.php (Polish) 2020-04-27 09:10:41 +01:00
Cachet Bot
735c722918 New translations dashboard.php (Korean) 2020-04-27 09:10:15 +01:00
Cachet Bot
a588cfbd0a New translations validation.php (Czech) 2020-02-18 13:00:12 +00:00
Cachet Bot
8f0e56873e New translations setup.php (Chinese Simplified) 2020-01-13 06:50:15 +00:00
Cachet Bot
dfcf9bd392 New translations forms.php (Chinese Simplified) 2020-01-13 06:50:13 +00:00
Cachet Bot
52c93a0dfe New translations dashboard.php (Chinese Simplified) 2020-01-13 06:50:12 +00:00
Cachet Bot
28a896bf02 New translations cachet.php (Chinese Simplified) 2020-01-13 06:50:11 +00:00
Cachet Bot
06faecf3a7 New translations dashboard.php (Chinese Simplified) 2019-12-10 14:40:22 +00:00
James Brooks
5dfeaa3b6a Merge pull request #3845 from tomecho/2.3-3844-fix
add is_object check for feed result, fixes #3844
2019-11-05 21:43:26 +00:00
Tom Peck
18f5c29a16 add is_object check for feed result, fixes #3844 2019-11-05 15:43:46 -05:00
Cachet Bot
3681d277a4 New translations forms.php (Portuguese, Brazilian) 2019-11-02 10:50:13 +00:00
James Brooks
6752596ba8 Merge pull request #3712 from sigv/bugfix/2.3/gravatar-lowercase
Lowercase email for Gravatar avatars
2019-08-14 07:23:52 +01:00
Cachet Bot
d02ec7f150 New translations cachet.php (Russian) 2019-08-02 23:40:12 +01:00
Valters Jansons
300961cad4 Lowercase email for Gravatar avatars
The Gravatar docs explicitly say that e-mail addresses have
to be lowercased before hashing. In the `2.4` branch this was
already resolved in `0f4c14ac0820562a3155d6f60ea4a7770d19084b`
back in 2016 so it is safe to backport that change to the
latest stable branch for a maintenance patch release.
2019-07-16 21:58:20 +03:00
Cachet Bot
12b6888feb New translations setup.php (Japanese) 2019-07-16 10:50:30 +01:00
Cachet Bot
dde38b08d3 New translations dashboard.php (Japanese) 2019-07-16 10:50:29 +01:00
Cachet Bot
0bdf3f35aa New translations cachet.php (Japanese) 2019-07-16 10:50:27 +01:00
Cachet Bot
1a053ff5b8 New translations forms.php (Polish) 2019-07-11 13:21:54 +01:00
Cachet Bot
7f54029bad New translations forms.php (Norwegian) 2019-07-11 13:21:49 +01:00
Cachet Bot
f50a2c717e New translations forms.php (Italian) 2019-07-11 13:21:46 +01:00
Cachet Bot
a4ab01d9dc New translations forms.php (German) 2019-07-11 13:21:41 +01:00
Cachet Bot
dfa1650936 New translations forms.php (Indonesian) 2019-07-11 13:21:36 +01:00
Cachet Bot
b3f4eb261a New translations forms.php (Swedish) 2019-07-11 13:21:25 +01:00
Cachet Bot
552c029682 New translations forms.php (Zulu) 2019-07-11 13:21:21 +01:00
Cachet Bot
ce833c52bc New translations cachet.php (Zulu) 2019-07-11 13:21:19 +01:00
Cachet Bot
61acfd5dab New translations forms.php (Romanian) 2019-07-11 13:21:13 +01:00
Cachet Bot
72f6b7185d New translations forms.php (Portuguese) 2019-07-11 13:21:07 +01:00
Cachet Bot
39e670edb5 New translations validation.php (Portuguese, Brazilian) 2019-07-11 13:21:05 +01:00
Cachet Bot
0f99a14bd6 New translations forms.php (Spanish) 2019-07-11 13:21:03 +01:00
Cachet Bot
18cccd9a76 New translations forms.php (Russian) 2019-07-11 13:20:57 +01:00
Cachet Bot
f15709850d New translations forms.php (Chinese Simplified) 2019-07-11 13:20:53 +01:00
Cachet Bot
a24604b169 New translations forms.php (Chinese Traditional) 2019-07-11 13:20:49 +01:00
Cachet Bot
5cb438a30b New translations forms.php (French) 2019-07-11 13:20:30 +01:00
Cachet Bot
b43974eb48 New translations forms.php (Danish) 2019-07-11 13:20:26 +01:00
Cachet Bot
c020fd50b7 New translations validation.php (Dutch) 2019-07-11 13:20:23 +01:00
Cachet Bot
b76acbeee1 New translations forms.php (Dutch) 2019-07-11 13:20:22 +01:00
Cachet Bot
f46371bde0 New translations dashboard.php (Czech) 2019-06-25 10:20:15 +01:00
Cachet Bot
5853b43da1 New translations dashboard.php (Czech) 2019-06-25 10:10:14 +01:00
Cachet Bot
d2f3572ffc New translations forms.php (Czech) 2019-06-25 10:00:12 +01:00
Cachet Bot
8b98141c61 New translations cachet.php (Czech) 2019-06-25 10:00:10 +01:00
James Brooks
59ef9023d5 Merge pull request #3645 from anthonybocci/feature/3618-setup-assets-path
Allow Cachet setup not to be at server's root
2019-06-23 08:14:14 +01:00
Cachet Bot
1c371e9fe3 New translations setup.php (Czech) 2019-06-20 15:20:21 +01:00
Cachet Bot
cb518d0d14 New translations validation.php (Czech) 2019-06-20 15:20:20 +01:00
Cachet Bot
64dd4cbf9c New translations pagination.php (Czech) 2019-06-20 15:20:19 +01:00
Cachet Bot
c0513da918 New translations forms.php (Czech) 2019-06-20 15:20:18 +01:00
Cachet Bot
393669beae New translations dashboard.php (Czech) 2019-06-20 15:20:16 +01:00
Cachet Bot
1dfc3683ce New translations forms.php (Czech) 2019-06-20 15:10:16 +01:00
Cachet Bot
99d95a8e11 New translations dashboard.php (Czech) 2019-06-20 15:10:14 +01:00
Cachet Bot
48e8bc84f8 New translations cachet.php (Czech) 2019-06-20 15:00:16 +01:00
Cachet Bot
3e065f6c9c New translations cachet.php (Czech) 2019-06-20 14:30:26 +01:00
Cachet Bot
249de039f6 New translations cachet.php (Czech) 2019-06-20 14:00:18 +01:00
Cachet Bot
cba2eece5f New translations cachet.php (Czech) 2019-06-20 13:50:26 +01:00
Anthony Bocci
fbf141c39d Allow Cachet setup not to be at server's root
Cachet may be installed at the root of its vhost or in a subdirectory,
for example in "/" or under "/status".

The URI we found pointing to some assets were usually not prefixed with
the path, so if Cachet was installed under "/status" the asset
URI pointed to the server root like "/my-asset.js".
It is a problem because that means the behaviour is broken in this case.
The problem was present from the setup, it was not possible to fill the
setup since the path to the scripts and CSS weres wrong.

The "asset" helper is now used and resolves the URI.

See: CachetHQ#3618
2019-06-19 11:20:04 +02:00
Cachet Bot
b639d1e5ab New translations cachet.php (Czech) 2019-06-18 08:50:13 +01:00
Graham Campbell
168e36f224 Updated with the latest cloudflare ips (#3650) 2019-06-15 18:04:26 +01:00
Graham Campbell
87b5b67be4 Upgraded deps (#3616) 2019-05-22 14:24:33 +01:00
James Brooks
f79eef0e88 Merge pull request #3615 from CachetHQ/extra-spaces
Removed extra spaces
2019-05-22 13:56:30 +01:00
Graham Campbell
30978bd125 Removed extra spaces 2019-05-22 13:44:45 +01:00
James Brooks
22b6135541 Bump version for dev 2019-05-14 13:27:46 +01:00
James Brooks
cc2f4de125 Fix version 2019-05-14 13:27:19 +01:00
James Brooks
baea4e9a03 Bump version 2019-05-14 13:25:42 +01:00
James Brooks
1bc48e0c60 Fix view import 2019-05-14 13:25:32 +01:00
Cachet Bot
0d5cfb17d4 New translations setup.php (Portuguese, Brazilian) 2019-05-14 01:50:12 +01:00
Cachet Bot
429719585f New translations dashboard.php (Portuguese, Brazilian) 2019-05-14 01:50:11 +01:00
Cachet Bot
63a2d9445b New translations dashboard.php (Portuguese, Brazilian) 2019-05-14 01:40:12 +01:00
Cachet Bot
967961787c New translations cachet.php (Portuguese, Brazilian) 2019-05-14 01:40:10 +01:00
Cachet Bot
e281597260 New translations cachet.php (Portuguese, Brazilian) 2019-05-14 01:30:09 +01:00
Cachet Bot
c6b4d9ed5e New translations cachet.php (Portuguese, Brazilian) 2019-05-14 01:20:10 +01:00
Cachet Bot
31eb7086a2 New translations dashboard.php (Portuguese, Brazilian) 2019-05-14 01:10:11 +01:00
Cachet Bot
ae874c704e New translations forms.php (Portuguese, Brazilian) 2019-05-14 01:00:15 +01:00
Cachet Bot
7b2b90a78d New translations cachet.php (Portuguese, Brazilian) 2019-05-14 01:00:13 +01:00
James Brooks
1d6b117a55 Bump for dev 2019-05-13 20:33:18 +01:00
James Brooks
7a08cfd00a Release v2.3.17 2019-05-13 20:32:54 +01:00
James Brooks
52fda22acc Apply fixes from StyleCI (#3599) 2019-05-13 20:31:04 +01:00
James Brooks
9531a909d4 Prevent calling of DashboardComposer 2019-05-13 20:30:39 +01:00
James Brooks
5fcc0ce2f6 Don't need to call all() 2019-05-13 20:30:28 +01:00
James Brooks
843eabbcc3 Fixes #3598 2019-05-13 20:29:47 +01:00
Graham Campbell
16f057500b Bumped version for dev (#3588) 2019-05-13 14:31:09 +01:00
Graham Campbell
e477de77be Release v2.3.16 (#3585) 2019-05-12 23:47:56 +01:00
Graham Campbell
e7066864e2 Cachet 2.3 is known to work on PHP 7.0 and 7.1 (#3584) 2019-05-12 20:01:52 +01:00
Graham Campbell
16932219a7 Upgraded deps (#3582) 2019-05-12 19:16:31 +01:00
James Brooks
512e1a6661 Apply fixes from StyleCI (#3565) 2019-04-25 13:10:55 +01:00
James Brooks
0e5bb00f44 Merge pull request #3564 from CachetHQ/l10n_2.3
New Crowdin translations
2019-04-25 13:10:05 +01:00
Cachet Bot
6aed3531dd New translations forms.php (German) 2019-04-25 10:21:43 +01:00
James Brooks
6e79575a1c Merge pull request #3530 from CachetHQ/l10n_2.3
New Crowdin translations
2019-04-01 08:18:00 +01:00
Cachet Bot
61a371520d New translations dashboard.php (German) 2019-03-28 08:10:26 +00:00
James Brooks
1f46e06e80 Apply fixes from StyleCI (#3511) 2019-03-11 20:42:33 +00:00
James Brooks
0e82925f95 Merge pull request #3510 from CachetHQ/l10n_2.3
New Crowdin translations
2019-03-11 20:42:15 +00:00
Cachet Bot
c3cfeeb14c New translations forms.php (Swedish) 2019-03-11 09:00:13 +00:00
James Brooks
7738c73860 Apply fixes from StyleCI (#3505) 2019-03-09 08:50:34 +00:00
James Brooks
d8eb86e4d2 Merge pull request #3501 from CachetHQ/l10n_2.3
New Crowdin translations
2019-03-09 08:49:51 +00:00
Cachet Bot
48ab04c425 New translations forms.php (Romanian) 2019-03-06 20:50:11 +00:00
James Brooks
035164fae6 2.3 is not compatible with PHP7 2019-02-01 22:37:23 +00:00
James Brooks
d4bcdf0e29 Apply fixes from StyleCI (#3436) 2019-01-26 17:06:21 +00:00
James Brooks
f41aa311c5 Merge pull request #3401 from CachetHQ/l10n_2.3
New Crowdin translations
2019-01-26 17:05:46 +00:00
Cachet Bot
ef7236c16b New translations setup.php (Slovenian) 2019-01-26 11:40:20 +00:00
Cachet Bot
84915404b9 New translations forms.php (Slovenian) 2019-01-26 11:40:19 +00:00
Cachet Bot
6dfadc2f94 New translations dashboard.php (Slovenian) 2019-01-26 11:40:18 +00:00
Cachet Bot
7f6effff96 New translations validation.php (Slovenian) 2019-01-26 11:40:16 +00:00
Cachet Bot
63589167f3 New translations pagination.php (Slovenian) 2019-01-26 11:40:15 +00:00
Cachet Bot
9e96f28ddf New translations cachet.php (Slovenian) 2019-01-26 11:40:14 +00:00
Cachet Bot
6d920b2111 New translations setup.php (Mongolian) 2019-01-26 11:40:13 +00:00
Cachet Bot
760a034c0c New translations forms.php (Mongolian) 2019-01-26 11:40:12 +00:00
Cachet Bot
0a9d1b313a New translations dashboard.php (Mongolian) 2019-01-26 11:40:11 +00:00
Cachet Bot
e9020d3e08 New translations validation.php (Mongolian) 2019-01-26 11:40:10 +00:00
Cachet Bot
d61c9d190f New translations pagination.php (Mongolian) 2019-01-26 11:40:09 +00:00
Cachet Bot
520785b5ca New translations cachet.php (Mongolian) 2019-01-26 11:40:08 +00:00
Cachet Bot
dd0052a50f New translations setup.php (German) 2019-01-15 13:10:13 +00:00
Cachet Bot
cd48270cad New translations cachet.php (German) 2019-01-15 13:10:11 +00:00
Cachet Bot
79b837d65f New translations setup.php (Dutch) 2019-01-03 18:00:13 +00:00
Cachet Bot
5f639b718f New translations dashboard.php (Dutch) 2019-01-03 18:00:12 +00:00
Cachet Bot
eb18e7d982 New translations cachet.php (Dutch) 2019-01-03 18:00:11 +00:00
Cachet Bot
cd70023bbe New translations forms.php (Dutch) 2019-01-03 18:00:10 +00:00
Cachet Bot
4277ec77e4 New translations cachet.php (Dutch) 2019-01-03 17:20:11 +00:00
James Brooks
1f1cf5a242 Merge pull request #3388 from CachetHQ/l10n_2.3
New Crowdin translations
2019-01-01 10:59:41 +00:00
Cachet Bot
495f118116 New translations cachet.php (Dutch) 2018-12-31 09:30:07 +00:00
James Brooks
171588c3a5 Merge pull request #3386 from CachetHQ/l10n_2.3
New Crowdin translations
2018-12-30 17:06:44 +00:00
Cachet Bot
72def0eb60 New translations forms.php (Afrikaans) 2018-12-30 11:00:09 +00:00
Cachet Bot
79a8026191 New translations dashboard.php (Afrikaans) 2018-12-30 11:00:08 +00:00
James Brooks
11bb77b944 Merge pull request #3380 from CachetHQ/l10n_2.3
New Crowdin translations
2018-12-29 18:56:41 +00:00
Cachet Bot
3f932a2ec2 Apply fixes from StyleCI 2018-12-29 17:50:13 +00:00
Cachet Bot
9f0a11eeb4 New translations forms.php (Dutch) 2018-12-29 17:50:07 +00:00
Cachet Bot
34f5775bd8 New translations dashboard.php (German) 2018-12-29 12:40:07 +00:00
Cachet Bot
2a4a7d72a2 New translations dashboard.php (German) 2018-12-29 12:30:08 +00:00
James Brooks
2dd7fba3e1 Merge pull request #3359 from CachetHQ/l10n_2.3
New Crowdin translations
2018-12-27 22:07:36 +00:00
Cachet Bot
ac91ba5d67 New translations setup.php (Swedish) 2018-12-10 23:50:10 +00:00
Cachet Bot
2a04e8907c New translations cachet.php (Swedish) 2018-12-10 23:50:08 +00:00
Cachet Bot
c66f66a6f4 New translations cachet.php (Swedish) 2018-12-10 23:40:08 +00:00
James Brooks
589f82af84 Merge pull request #3335 from CachetHQ/l10n_2.3
New Crowdin translations
2018-11-23 11:20:01 +00:00
Cachet Bot
ef91bacc35 Apply fixes from StyleCI 2018-11-19 17:41:38 +00:00
Cachet Bot
84f1f2fe0b New translations forms.php (German) 2018-11-19 17:41:33 +00:00
Cachet Bot
525563c3c0 New translations forms.php (French) 2018-11-19 17:41:30 +00:00
Cachet Bot
4b8bc99b5e Apply fixes from StyleCI 2018-11-19 17:41:28 +00:00
Cachet Bot
66a300cade New translations forms.php (Indonesian) 2018-11-19 17:41:22 +00:00
Cachet Bot
68f80c2f95 New translations forms.php (Dutch) 2018-11-19 17:41:05 +00:00
Cachet Bot
a087b2a21a New translations forms.php (Chinese Simplified) 2018-11-19 17:41:03 +00:00
Cachet Bot
f155bfa419 New translations forms.php (Danish) 2018-11-19 17:41:01 +00:00
Cachet Bot
255922804c New translations forms.php (Chinese Traditional) 2018-11-19 17:40:56 +00:00
Cachet Bot
7191bdacf8 New translations forms.php (Swedish) 2018-11-19 17:40:49 +00:00
Cachet Bot
491b07d498 New translations forms.php (Spanish) 2018-11-19 17:40:46 +00:00
Cachet Bot
467453c29d New translations forms.php (Russian) 2018-11-19 17:40:44 +00:00
Cachet Bot
8d42f0f97b New translations forms.php (Zulu) 2018-11-19 17:40:39 +00:00
Cachet Bot
fc170bea0a New translations cachet.php (Zulu) 2018-11-19 17:40:37 +00:00
Cachet Bot
d455f56243 New translations forms.php (Italian) 2018-11-19 17:40:32 +00:00
Cachet Bot
cef1d82d8c New translations forms.php (Norwegian) 2018-11-19 17:40:29 +00:00
Cachet Bot
e7caa3ca37 Apply fixes from StyleCI 2018-11-19 17:40:26 +00:00
Cachet Bot
2a320477e3 New translations forms.php (Romanian) 2018-11-19 17:40:19 +00:00
Cachet Bot
1c593bb2f1 New translations forms.php (Portuguese, Brazilian) 2018-11-19 17:40:17 +00:00
Cachet Bot
e557e5eb9b New translations forms.php (Portuguese) 2018-11-19 17:40:14 +00:00
Cachet Bot
33ed227c97 New translations forms.php (Polish) 2018-11-19 17:40:10 +00:00
James Brooks
f4dc5d09ab Merge pull request #3278 from CachetHQ/l10n_2.3
New Crowdin translations
2018-11-13 14:24:58 +00:00
Cachet Bot
d86d2e8201 New translations cachet.php (Japanese) 2018-11-05 07:00:07 +00:00
Cachet Bot
9ac9b5898e Apply fixes from StyleCI 2018-10-18 16:50:16 +00:00
Cachet Bot
1eea552d6e New translations forms.php (Russian) 2018-10-18 17:50:07 +01:00
Cachet Bot
3fd9bfe00d New translations setup.php (Estonian) 2018-10-15 12:40:15 +01:00
Cachet Bot
282ee9802d New translations forms.php (Estonian) 2018-10-15 12:40:14 +01:00
Cachet Bot
ce7104d679 New translations dashboard.php (Estonian) 2018-10-15 12:40:13 +01:00
Cachet Bot
bcdaec1d3a New translations validation.php (Estonian) 2018-10-15 12:40:12 +01:00
Cachet Bot
53e1837368 New translations pagination.php (Estonian) 2018-10-15 12:40:11 +01:00
Cachet Bot
b8324c3e7c New translations cachet.php (Estonian) 2018-10-15 12:40:09 +01:00
James Brooks
7ea832de8e Merge pull request #3248 from CachetHQ/l10n_2.3
New Crowdin translations
2018-10-15 12:39:05 +01:00
Cachet Bot
368045b418 Apply fixes from StyleCI 2018-10-09 11:01:37 +00:00
Cachet Bot
0bfaeaa4fc New translations forms.php (French) 2018-10-09 12:01:31 +01:00
Cachet Bot
3f9ba0ee97 New translations forms.php (Dutch) 2018-10-09 12:01:24 +01:00
Cachet Bot
045bbeeba0 New translations forms.php (German) 2018-10-09 12:01:23 +01:00
Cachet Bot
5cce6d4184 New translations forms.php (Indonesian) 2018-10-09 12:01:21 +01:00
Cachet Bot
9f1dd6fedc Apply fixes from StyleCI 2018-10-09 11:01:18 +00:00
Cachet Bot
ddb2972a4a New translations forms.php (Danish) 2018-10-09 12:01:03 +01:00
Cachet Bot
ba84e3ee23 New translations forms.php (Chinese Traditional) 2018-10-09 12:00:57 +01:00
Cachet Bot
400c94d06d New translations forms.php (Chinese Simplified) 2018-10-09 12:00:54 +01:00
Cachet Bot
ebe31e2070 New translations forms.php (Swedish) 2018-10-09 12:00:50 +01:00
Cachet Bot
7b29049dd7 New translations forms.php (Russian) 2018-10-09 12:00:45 +01:00
Cachet Bot
ee73222638 New translations forms.php (Spanish) 2018-10-09 12:00:42 +01:00
Cachet Bot
6f1cba91df New translations forms.php (Zulu) 2018-10-09 12:00:40 +01:00
Cachet Bot
b313c45cd2 New translations cachet.php (Zulu) 2018-10-09 12:00:38 +01:00
Cachet Bot
3e35d29d8f New translations forms.php (Romanian) 2018-10-09 12:00:31 +01:00
Cachet Bot
8ffa6c7996 New translations forms.php (Norwegian) 2018-10-09 12:00:29 +01:00
Cachet Bot
07750e9365 New translations forms.php (Italian) 2018-10-09 12:00:21 +01:00
Cachet Bot
63a79d9d19 New translations forms.php (Portuguese, Brazilian) 2018-10-09 12:00:17 +01:00
Cachet Bot
12efe8113e New translations forms.php (Portuguese) 2018-10-09 12:00:14 +01:00
Cachet Bot
d8c6be3f9e New translations forms.php (Polish) 2018-10-09 12:00:11 +01:00
Cachet Bot
8bffaa5c9a Apply fixes from StyleCI 2018-09-28 08:40:21 +00:00
Cachet Bot
6bf9221d74 New translations forms.php (Norwegian) 2018-09-28 09:40:13 +01:00
Cachet Bot
fa5875da76 New translations cachet.php (Afrikaans) 2018-09-20 13:40:05 +01:00
Cachet Bot
34a36bc6c1 New translations cachet.php (Afrikaans) 2018-09-20 13:30:05 +01:00
James Brooks
f8a35d71b4 Merge pull request #3198 from CachetHQ/l10n_2.3
New Crowdin translations
2018-08-07 08:51:02 +01:00
James Brooks
8a8edea07a Merge pull request #3209 from CachetHQ/update-deps
Update deps
2018-08-06 18:55:38 +01:00
Cachet Bot
e3973414cd Apply fixes from StyleCI 2018-08-04 08:50:14 +00:00
Cachet Bot
9bb670cb95 New translations forms.php (Dutch) 2018-08-04 09:50:07 +01:00
James Brooks
127996f08f Update deps. Closes #3207 2018-08-03 20:58:20 +01:00
Cachet Bot
a6768da7bb Apply fixes from StyleCI
[ci skip] [skip ci]
2018-08-03 18:00:48 +00:00
Cachet Bot
123f05bd84 New translations forms.php (Spanish) 2018-08-03 19:00:08 +01:00
Cachet Bot
ecc91abcae Apply fixes from StyleCI
[ci skip] [skip ci]
2018-07-27 23:40:13 +00:00
Cachet Bot
bb9def5821 New translations setup.php (French) 2018-07-28 00:40:07 +01:00
Cachet Bot
11cbbb42fb New translations forms.php (French) 2018-07-28 00:40:06 +01:00
Cachet Bot
b361618ec0 New translations dashboard.php (French) 2018-07-28 00:30:06 +01:00
Cachet Bot
ee288e0505 New translations cachet.php (French) 2018-07-28 00:30:05 +01:00
Cachet Bot
7c5e214b1c Apply fixes from StyleCI
[ci skip] [skip ci]
2018-07-25 14:51:56 +00:00
Cachet Bot
0e1d52b3bc New translations forms.php (Chinese Simplified) 2018-07-25 15:51:07 +01:00
James Brooks
77d576fd39 Merge pull request #3189 from CachetHQ/l10n_2.3
New Crowdin translations
2018-07-21 09:12:41 +01:00
James Brooks
73fb33d03e Update VERSION 2018-07-21 09:11:04 +01:00
Cachet Bot
2746001cdb Apply fixes from StyleCI
[ci skip] [skip ci]
2018-07-17 13:00:28 +00:00
Cachet Bot
036da9248d New translations forms.php (French) 2018-07-17 14:00:19 +01:00
James Brooks
2d72914205 Merge pull request #3184 from CachetHQ/l10n_2.3
New Crowdin translations
2018-07-17 07:52:46 +01:00
Cachet Bot
237ae7dcdc Apply fixes from StyleCI
[ci skip] [skip ci]
2018-07-13 02:30:14 +00:00
Cachet Bot
8408b92d0c New translations forms.php (Russian) 2018-07-13 03:30:06 +01:00
James Brooks
2da10d1694 Apply fixes from StyleCI (#3182)
[ci skip] [skip ci]
2018-07-12 08:36:35 +01:00
James Brooks
7ac2987809 Merge pull request #3181 from CachetHQ/l10n_2.3
New Crowdin translations
2018-07-12 08:36:03 +01:00
Cachet Bot
5f1c3c92c4 New translations forms.php (French) 2018-07-11 22:52:28 +01:00
Cachet Bot
48f68994ba New translations setup.php (Finnish) 2018-07-11 22:52:27 +01:00
Cachet Bot
adfa39f336 New translations forms.php (Finnish) 2018-07-11 22:52:26 +01:00
Cachet Bot
357389908f New translations validation.php (Finnish) 2018-07-11 22:52:25 +01:00
Cachet Bot
a2252707af New translations pagination.php (Finnish) 2018-07-11 22:52:24 +01:00
Cachet Bot
5057dee219 New translations cachet.php (Finnish) 2018-07-11 22:52:23 +01:00
Cachet Bot
430a80535c New translations dashboard.php (Finnish) 2018-07-11 22:52:20 +01:00
Cachet Bot
5c815756fe New translations forms.php (Dutch) 2018-07-11 22:52:19 +01:00
Cachet Bot
b1547b9d74 New translations forms.php (German) 2018-07-11 22:52:18 +01:00
Cachet Bot
42a2825a70 New translations cachet.php (Greek) 2018-07-11 22:52:17 +01:00
Cachet Bot
3dd7d9b41d New translations forms.php (Indonesian) 2018-07-11 22:52:16 +01:00
Cachet Bot
7552177585 New translations validation.php (Indonesian) 2018-07-11 22:52:14 +01:00
Cachet Bot
6120d9627e New translations setup.php (Hungarian) 2018-07-11 22:52:13 +01:00
Cachet Bot
22a7523347 New translations forms.php (Hungarian) 2018-07-11 22:52:12 +01:00
Cachet Bot
b4c052c5ad New translations dashboard.php (Hungarian) 2018-07-11 22:52:11 +01:00
Cachet Bot
0af0e01d31 New translations validation.php (Hungarian) 2018-07-11 22:52:10 +01:00
Cachet Bot
04ca418b32 New translations pagination.php (Hungarian) 2018-07-11 22:52:09 +01:00
Cachet Bot
8ca56c0a47 New translations cachet.php (Hungarian) 2018-07-11 22:52:08 +01:00
Cachet Bot
dccca87e2e New translations forms.php (Hebrew) 2018-07-11 22:52:07 +01:00
Cachet Bot
63b15530f0 New translations dashboard.php (Hebrew) 2018-07-11 22:52:06 +01:00
Cachet Bot
008b7ce3e3 New translations validation.php (Hebrew) 2018-07-11 22:52:05 +01:00
Cachet Bot
e173c616fc New translations pagination.php (Hebrew) 2018-07-11 22:52:04 +01:00
Cachet Bot
63e629df99 New translations cachet.php (Hebrew) 2018-07-11 22:52:04 +01:00
Cachet Bot
c930ecc568 New translations setup.php (Greek) 2018-07-11 22:52:03 +01:00
Cachet Bot
c542fe762c New translations forms.php (Greek) 2018-07-11 22:52:02 +01:00
Cachet Bot
5a6dfce84e New translations dashboard.php (Greek) 2018-07-11 22:52:01 +01:00
Cachet Bot
1fc399085c New translations pagination.php (Greek) 2018-07-11 22:52:00 +01:00
Cachet Bot
dfced9e81c New translations setup.php (Hebrew) 2018-07-11 22:51:59 +01:00
Cachet Bot
e6412e9be5 New translations setup.php (Catalan) 2018-07-11 22:51:57 +01:00
Cachet Bot
6c67e01297 New translations forms.php (Catalan) 2018-07-11 22:51:57 +01:00
Cachet Bot
e4a2ef3df7 New translations dashboard.php (Catalan) 2018-07-11 22:51:56 +01:00
Cachet Bot
560be25f99 New translations pagination.php (Catalan) 2018-07-11 22:51:55 +01:00
Cachet Bot
61a71166b3 New translations cachet.php (Catalan) 2018-07-11 22:51:54 +01:00
Cachet Bot
359cd934c0 New translations setup.php (Arabic) 2018-07-11 22:51:53 +01:00
Cachet Bot
4b45eed503 New translations forms.php (Arabic) 2018-07-11 22:51:52 +01:00
Cachet Bot
73a14d5980 New translations dashboard.php (Arabic) 2018-07-11 22:51:51 +01:00
Cachet Bot
c614bd8e2a New translations validation.php (Arabic) 2018-07-11 22:51:50 +01:00
Cachet Bot
bd26724f4a New translations cachet.php (Chinese Simplified) 2018-07-11 22:51:49 +01:00
Cachet Bot
d7650d1815 New translations pagination.php (Arabic) 2018-07-11 22:51:48 +01:00
Cachet Bot
9975ecab54 New translations setup.php (Albanian) 2018-07-11 22:51:48 +01:00
Cachet Bot
a508a326ca New translations forms.php (Albanian) 2018-07-11 22:51:47 +01:00
Cachet Bot
5d836619c6 New translations dashboard.php (Albanian) 2018-07-11 22:51:46 +01:00
Cachet Bot
4ff927968b New translations pagination.php (Albanian) 2018-07-11 22:51:45 +01:00
Cachet Bot
4a9e2be6ee New translations cachet.php (Albanian) 2018-07-11 22:51:44 +01:00
Cachet Bot
3f92f85cda New translations dashboard.php (Afrikaans) 2018-07-11 22:51:42 +01:00
Cachet Bot
6138a9c4ef New translations cachet.php (Arabic) 2018-07-11 22:51:41 +01:00
Cachet Bot
210ac14e73 New translations validation.php (Dutch) 2018-07-11 22:51:40 +01:00
Cachet Bot
e5b17f1ce7 New translations dashboard.php (Chinese Simplified) 2018-07-11 22:51:39 +01:00
Cachet Bot
3a31fb01d6 New translations setup.php (Danish) 2018-07-11 22:51:38 +01:00
Cachet Bot
ff97806361 New translations forms.php (Danish) 2018-07-11 22:51:37 +01:00
Cachet Bot
b12fdb61cb New translations dashboard.php (Danish) 2018-07-11 22:51:36 +01:00
Cachet Bot
75a12767e2 New translations validation.php (Danish) 2018-07-11 22:51:35 +01:00
Cachet Bot
b4df0d7aae New translations cachet.php (Danish) 2018-07-11 22:51:34 +01:00
Cachet Bot
b4a618f362 New translations setup.php (Czech) 2018-07-11 22:51:33 +01:00
Cachet Bot
0af3fbc86c New translations forms.php (Czech) 2018-07-11 22:51:32 +01:00
Cachet Bot
8ed5ea3174 New translations dashboard.php (Czech) 2018-07-11 22:51:31 +01:00
Cachet Bot
6f98fefb85 New translations validation.php (Czech) 2018-07-11 22:51:30 +01:00
Cachet Bot
4b0a1da1b9 New translations cachet.php (Czech) 2018-07-11 22:51:29 +01:00
Cachet Bot
89779d9e3c New translations setup.php (Chinese Traditional) 2018-07-11 22:51:28 +01:00
Cachet Bot
8b4ab5f09b New translations forms.php (Chinese Traditional) 2018-07-11 22:51:27 +01:00
Cachet Bot
c077c692ed New translations dashboard.php (Chinese Traditional) 2018-07-11 22:51:26 +01:00
Cachet Bot
dea9ebbfc9 New translations validation.php (Chinese Traditional) 2018-07-11 22:51:25 +01:00
Cachet Bot
0542cda408 New translations cachet.php (Chinese Traditional) 2018-07-11 22:51:24 +01:00
Cachet Bot
6041431d12 New translations setup.php (Chinese Simplified) 2018-07-11 22:51:23 +01:00
Cachet Bot
6703854224 New translations forms.php (Chinese Simplified) 2018-07-11 22:51:22 +01:00
Cachet Bot
aa8618c163 New translations pagination.php (Czech) 2018-07-11 22:51:21 +01:00
Cachet Bot
c040a42ee7 New translations validation.php (Italian) 2018-07-11 22:51:20 +01:00
Cachet Bot
983e1a781f New translations dashboard.php (Thai) 2018-07-11 22:51:19 +01:00
Cachet Bot
b5256a9558 New translations validation.php (Thai) 2018-07-11 22:51:18 +01:00
Cachet Bot
6058cad6e0 New translations pagination.php (Thai) 2018-07-11 22:51:17 +01:00
Cachet Bot
cb42bde85c New translations cachet.php (Thai) 2018-07-11 22:51:16 +01:00
Cachet Bot
e9104d6182 New translations setup.php (Swedish) 2018-07-11 22:51:15 +01:00
Cachet Bot
1153c0da76 New translations forms.php (Swedish) 2018-07-11 22:51:14 +01:00
Cachet Bot
4e1b1fe4ef New translations dashboard.php (Swedish) 2018-07-11 22:51:13 +01:00
Cachet Bot
0078f1dd1e New translations cachet.php (Swedish) 2018-07-11 22:51:12 +01:00
Cachet Bot
6ed0d2d4c2 New translations forms.php (Thai) 2018-07-11 22:51:11 +01:00
Cachet Bot
4b9a5e8e69 New translations validation.php (Spanish) 2018-07-11 22:51:09 +01:00
Cachet Bot
375c831391 New translations forms.php (Russian) 2018-07-11 22:51:08 +01:00
Cachet Bot
126c088863 New translations validation.php (Russian) 2018-07-11 22:51:07 +01:00
Cachet Bot
9f226eea9c New translations forms.php (Spanish) 2018-07-11 22:51:05 +01:00
Cachet Bot
4ad72633ea New translations setup.php (Thai) 2018-07-11 22:51:04 +01:00
Cachet Bot
2b18410a99 New translations pagination.php (Turkish) 2018-07-11 22:51:03 +01:00
Cachet Bot
2e353fc707 New translations forms.php (Zulu) 2018-07-11 22:51:02 +01:00
Cachet Bot
cb8d4282e4 New translations cachet.php (Zulu) 2018-07-11 22:51:01 +01:00
Cachet Bot
d7fd04b183 New translations setup.php (Vietnamese) 2018-07-11 22:51:00 +01:00
Cachet Bot
3f6b825692 New translations forms.php (Vietnamese) 2018-07-11 22:50:59 +01:00
Cachet Bot
7e95648ff9 New translations dashboard.php (Vietnamese) 2018-07-11 22:50:58 +01:00
Cachet Bot
1dfd481d95 New translations validation.php (Vietnamese) 2018-07-11 22:50:57 +01:00
Cachet Bot
a8f04914fa New translations pagination.php (Vietnamese) 2018-07-11 22:50:56 +01:00
Cachet Bot
1093d2169d New translations cachet.php (Turkish) 2018-07-11 22:50:56 +01:00
Cachet Bot
4098bfe641 New translations cachet.php (Vietnamese) 2018-07-11 22:50:55 +01:00
Cachet Bot
5c51806417 New translations forms.php (Ukrainian) 2018-07-11 22:50:54 +01:00
Cachet Bot
b616842ec0 New translations dashboard.php (Ukrainian) 2018-07-11 22:50:53 +01:00
Cachet Bot
6c693ea4d5 New translations validation.php (Ukrainian) 2018-07-11 22:50:52 +01:00
Cachet Bot
c6d9b62248 New translations pagination.php (Ukrainian) 2018-07-11 22:50:51 +01:00
Cachet Bot
2770036621 New translations cachet.php (Ukrainian) 2018-07-11 22:50:50 +01:00
Cachet Bot
54943af362 New translations setup.php (Turkish) 2018-07-11 22:50:49 +01:00
Cachet Bot
00eba028e5 New translations forms.php (Turkish) 2018-07-11 22:50:48 +01:00
Cachet Bot
421d8c5d05 New translations dashboard.php (Turkish) 2018-07-11 22:50:47 +01:00
Cachet Bot
c28e86c3fa New translations validation.php (Turkish) 2018-07-11 22:50:46 +01:00
Cachet Bot
a6706b7f3f New translations setup.php (Ukrainian) 2018-07-11 22:50:46 +01:00
Cachet Bot
d2fae69bf2 New translations forms.php (Romanian) 2018-07-11 22:50:44 +01:00
Cachet Bot
9abe4962a9 New translations cachet.php (Persian) 2018-07-11 22:50:43 +01:00
Cachet Bot
e009ae4754 New translations forms.php (Norwegian) 2018-07-11 22:50:42 +01:00
Cachet Bot
4213a9a2ca New translations dashboard.php (Norwegian) 2018-07-11 22:50:41 +01:00
Cachet Bot
5da83aed92 New translations validation.php (Norwegian) 2018-07-11 22:50:40 +01:00
Cachet Bot
a159600919 New translations cachet.php (Norwegian) 2018-07-11 22:50:39 +01:00
Cachet Bot
1b0e583a8a New translations setup.php (Korean) 2018-07-11 22:50:38 +01:00
Cachet Bot
1c496338cd New translations forms.php (Korean) 2018-07-11 22:50:38 +01:00
Cachet Bot
f7353c0c64 New translations dashboard.php (Korean) 2018-07-11 22:50:37 +01:00
Cachet Bot
090f4167f2 New translations pagination.php (Persian) 2018-07-11 22:50:36 +01:00
Cachet Bot
3fbf056056 New translations validation.php (Korean) 2018-07-11 22:50:35 +01:00
Cachet Bot
3a554d25ba New translations cachet.php (Korean) 2018-07-11 22:50:34 +01:00
Cachet Bot
dbd0fd57f2 New translations setup.php (Japanese) 2018-07-11 22:50:33 +01:00
Cachet Bot
226596d47b New translations forms.php (Japanese) 2018-07-11 22:50:32 +01:00
Cachet Bot
fa8f957631 New translations dashboard.php (Japanese) 2018-07-11 22:50:31 +01:00
Cachet Bot
e465295e48 New translations validation.php (Japanese) 2018-07-11 22:50:30 +01:00
Cachet Bot
94b5ad7b09 New translations pagination.php (Japanese) 2018-07-11 22:50:29 +01:00
Cachet Bot
9512346c0c New translations cachet.php (Japanese) 2018-07-11 22:50:28 +01:00
Cachet Bot
985119e125 New translations forms.php (Italian) 2018-07-11 22:50:27 +01:00
Cachet Bot
11b5df1499 New translations pagination.php (Korean) 2018-07-11 22:50:26 +01:00
Cachet Bot
76aa95389f New translations validation.php (Persian) 2018-07-11 22:50:25 +01:00
Cachet Bot
f346449714 New translations forms.php (Persian) 2018-07-11 22:50:22 +01:00
Cachet Bot
a2da594586 New translations setup.php (Portuguese, Brazilian) 2018-07-11 22:50:21 +01:00
Cachet Bot
6b3bb85d53 New translations forms.php (Portuguese, Brazilian) 2018-07-11 22:50:20 +01:00
Cachet Bot
5d28ea4e69 New translations dashboard.php (Portuguese, Brazilian) 2018-07-11 22:50:19 +01:00
Cachet Bot
f724248b1f New translations validation.php (Portuguese, Brazilian) 2018-07-11 22:50:18 +01:00
Cachet Bot
a70ecd9e6d New translations cachet.php (Portuguese, Brazilian) 2018-07-11 22:50:17 +01:00
Cachet Bot
828ea1c2d3 New translations setup.php (Portuguese) 2018-07-11 22:50:17 +01:00
Cachet Bot
c1f65347e5 New translations forms.php (Portuguese) 2018-07-11 22:50:16 +01:00
Cachet Bot
61abbcc367 New translations dashboard.php (Persian) 2018-07-11 22:50:15 +01:00
Cachet Bot
4bf980bc1a New translations dashboard.php (Portuguese) 2018-07-11 22:50:14 +01:00
Cachet Bot
b88354d261 New translations cachet.php (Portuguese) 2018-07-11 22:50:12 +01:00
Cachet Bot
5fb88b1936 New translations forms.php (Polish) 2018-07-11 22:50:11 +01:00
Cachet Bot
e0b2368342 New translations validation.php (Polish) 2018-07-11 22:50:10 +01:00
Cachet Bot
fc87437edc New translations setup.php (Persian) 2018-07-11 22:50:08 +01:00
Cachet Bot
7786f54ad3 New translations validation.php (Portuguese) 2018-07-11 22:50:08 +01:00
Cachet Bot
ee0d56d22b New translations cachet.php (Afrikaans) 2018-07-11 22:50:06 +01:00
James Brooks
51eb5917b6 Merge pull request #3175 from CachetHQ/l10n_2.3
New Crowdin translations
2018-07-11 22:34:12 +01:00
Cachet Bot
6433c48a5f Apply fixes from StyleCI
[ci skip] [skip ci]
2018-07-11 03:10:14 +00:00
Cachet Bot
d3af0d37be New translations setup.php (Danish) 2018-07-11 04:10:06 +01:00
Cachet Bot
0430086750 New translations forms.php (Danish) 2018-07-11 04:10:05 +01:00
Cachet Bot
e43516460b New translations dashboard.php (Danish) 2018-07-11 04:00:06 +01:00
Cachet Bot
036787f3e3 New translations cachet.php (Danish) 2018-07-11 04:00:05 +01:00
Cachet Bot
b20272d14a Apply fixes from StyleCI
[ci skip] [skip ci]
2018-07-10 16:16:19 +00:00
Cachet Bot
5c11c1ff72 New translations cachet.php (Norwegian) 2018-07-10 16:50:07 +01:00
Cachet Bot
5bde0dddff New translations setup.php (Zulu) 2018-07-10 14:35:34 +01:00
Cachet Bot
beee77d2e3 New translations validation.php (German) 2018-07-10 14:35:33 +01:00
Cachet Bot
4c6106e3a6 New translations pagination.php (German) 2018-07-10 14:35:31 +01:00
Cachet Bot
c4e7010cfc New translations cachet.php (German) 2018-07-10 14:35:31 +01:00
Cachet Bot
0b505b31c6 New translations setup.php (French) 2018-07-10 14:35:30 +01:00
Cachet Bot
87b31b2b54 New translations forms.php (French) 2018-07-10 14:35:29 +01:00
Cachet Bot
c0da527878 New translations dashboard.php (French) 2018-07-10 14:35:28 +01:00
Cachet Bot
539deaaea8 New translations validation.php (French) 2018-07-10 14:35:26 +01:00
Cachet Bot
c04a845c54 New translations pagination.php (French) 2018-07-10 14:35:26 +01:00
Cachet Bot
09347fc120 New translations cachet.php (French) 2018-07-10 14:35:25 +01:00
Cachet Bot
3c2ec3dbe6 New translations setup.php (Finnish) 2018-07-10 14:35:24 +01:00
Cachet Bot
843f69b9e1 New translations dashboard.php (German) 2018-07-10 14:35:23 +01:00
Cachet Bot
5c54286fb1 New translations forms.php (Finnish) 2018-07-10 14:35:21 +01:00
Cachet Bot
32fd6535c1 New translations validation.php (Finnish) 2018-07-10 14:35:19 +01:00
Cachet Bot
622a103b7b New translations pagination.php (Finnish) 2018-07-10 14:35:18 +01:00
Cachet Bot
b8a3614649 New translations cachet.php (Finnish) 2018-07-10 14:35:17 +01:00
Cachet Bot
98ac8383c9 New translations setup.php (English) 2018-07-10 14:35:16 +01:00
Cachet Bot
747c94ebd7 New translations forms.php (English) 2018-07-10 14:35:16 +01:00
Cachet Bot
4c1a7abb7a New translations dashboard.php (English) 2018-07-10 14:35:15 +01:00
Cachet Bot
0a5691a4c2 New translations validation.php (English) 2018-07-10 14:35:14 +01:00
Cachet Bot
9aa16286a5 New translations pagination.php (English) 2018-07-10 14:35:13 +01:00
Cachet Bot
d4a693f8fb New translations cachet.php (English) 2018-07-10 14:35:12 +01:00
Cachet Bot
0ea5990af6 New translations setup.php (Dutch) 2018-07-10 14:35:11 +01:00
Cachet Bot
22cdc45074 New translations dashboard.php (Finnish) 2018-07-10 14:35:10 +01:00
Cachet Bot
61ea95a403 New translations forms.php (Dutch) 2018-07-10 14:35:09 +01:00
Cachet Bot
0dcf3f958f New translations forms.php (German) 2018-07-10 14:35:08 +01:00
Cachet Bot
b672f42635 New translations cachet.php (Greek) 2018-07-10 14:35:07 +01:00
Cachet Bot
7f6c7f7a71 New translations forms.php (Indonesian) 2018-07-10 14:35:06 +01:00
Cachet Bot
54ed6eda60 New translations dashboard.php (Indonesian) 2018-07-10 14:35:05 +01:00
Cachet Bot
877b25cfbb New translations validation.php (Indonesian) 2018-07-10 14:35:03 +01:00
Cachet Bot
8048c02286 New translations pagination.php (Indonesian) 2018-07-10 14:35:01 +01:00
Cachet Bot
082367793c New translations cachet.php (Indonesian) 2018-07-10 14:35:00 +01:00
Cachet Bot
518d28f07b New translations setup.php (Hungarian) 2018-07-10 14:34:59 +01:00
Cachet Bot
a01ccbf953 New translations forms.php (Hungarian) 2018-07-10 14:34:58 +01:00
Cachet Bot
a69c72ef40 New translations dashboard.php (Hungarian) 2018-07-10 14:34:57 +01:00
Cachet Bot
87b51835cc New translations validation.php (Hungarian) 2018-07-10 14:34:56 +01:00
Cachet Bot
edecc98cbf New translations pagination.php (Hungarian) 2018-07-10 14:34:55 +01:00
Cachet Bot
a1a78df602 New translations setup.php (German) 2018-07-10 14:34:54 +01:00
Cachet Bot
2b5127505f New translations cachet.php (Hungarian) 2018-07-10 14:34:53 +01:00
Cachet Bot
cd029e0a79 New translations forms.php (Hebrew) 2018-07-10 14:34:52 +01:00
Cachet Bot
4a0e12645c New translations dashboard.php (Hebrew) 2018-07-10 14:34:51 +01:00
Cachet Bot
18c12cf9b0 New translations validation.php (Hebrew) 2018-07-10 14:34:50 +01:00
Cachet Bot
a2b6141b55 New translations pagination.php (Hebrew) 2018-07-10 14:34:49 +01:00
Cachet Bot
3305628b16 New translations cachet.php (Hebrew) 2018-07-10 14:34:48 +01:00
Cachet Bot
81b6fd95e9 New translations setup.php (Greek) 2018-07-10 14:34:48 +01:00
Cachet Bot
cf2a9454c8 New translations forms.php (Greek) 2018-07-10 14:34:47 +01:00
Cachet Bot
d220823d8e New translations dashboard.php (Greek) 2018-07-10 14:34:45 +01:00
Cachet Bot
81d4cf89e6 New translations validation.php (Greek) 2018-07-10 14:34:44 +01:00
Cachet Bot
e0a5e4df9b New translations pagination.php (Greek) 2018-07-10 14:34:43 +01:00
Cachet Bot
090a80992a New translations setup.php (Hebrew) 2018-07-10 14:34:43 +01:00
Cachet Bot
a659db17ae New translations setup.php (Indonesian) 2018-07-10 14:34:42 +01:00
Cachet Bot
67d8a1ca35 New translations dashboard.php (Dutch) 2018-07-10 14:34:41 +01:00
Cachet Bot
220d1a1fe5 New translations pagination.php (Dutch) 2018-07-10 14:34:40 +01:00
Cachet Bot
d8bc1cd517 New translations setup.php (Catalan) 2018-07-10 14:34:39 +01:00
Cachet Bot
e7768a1cec New translations forms.php (Catalan) 2018-07-10 14:34:38 +01:00
Cachet Bot
4b1bd76ff6 New translations dashboard.php (Catalan) 2018-07-10 14:34:37 +01:00
Cachet Bot
37e778585a New translations validation.php (Catalan) 2018-07-10 14:34:36 +01:00
Cachet Bot
2646963a2e New translations pagination.php (Catalan) 2018-07-10 14:34:35 +01:00
Cachet Bot
ebe162fe71 New translations cachet.php (Catalan) 2018-07-10 14:34:34 +01:00
Cachet Bot
071159ffa1 New translations setup.php (Arabic) 2018-07-10 14:34:33 +01:00
Cachet Bot
b9549829c2 New translations forms.php (Arabic) 2018-07-10 14:34:32 +01:00
Cachet Bot
8c6be5006d New translations dashboard.php (Arabic) 2018-07-10 14:34:31 +01:00
Cachet Bot
cae3a54b50 New translations validation.php (Arabic) 2018-07-10 14:34:30 +01:00
Cachet Bot
0b3e29e8dd New translations cachet.php (Chinese Simplified) 2018-07-10 14:34:29 +01:00
Cachet Bot
a5d690abdd New translations pagination.php (Arabic) 2018-07-10 14:34:29 +01:00
Cachet Bot
31137c71d4 New translations setup.php (Albanian) 2018-07-10 14:34:28 +01:00
Cachet Bot
76963a186c New translations forms.php (Albanian) 2018-07-10 14:34:27 +01:00
Cachet Bot
3c2d85188b New translations dashboard.php (Albanian) 2018-07-10 14:34:26 +01:00
Cachet Bot
db407e81ea New translations validation.php (Albanian) 2018-07-10 14:34:25 +01:00
Cachet Bot
9dda8d5ae7 New translations pagination.php (Albanian) 2018-07-10 14:34:24 +01:00
Cachet Bot
ad637fbb81 New translations cachet.php (Albanian) 2018-07-10 14:34:23 +01:00
Cachet Bot
6805e75f63 New translations setup.php (Afrikaans) 2018-07-10 14:34:22 +01:00
Cachet Bot
bc5ae22165 New translations forms.php (Afrikaans) 2018-07-10 14:34:21 +01:00
Cachet Bot
6696465d45 New translations dashboard.php (Afrikaans) 2018-07-10 14:34:20 +01:00
Cachet Bot
58bb80efc9 New translations validation.php (Afrikaans) 2018-07-10 14:34:19 +01:00
Cachet Bot
e6b7b41f24 New translations cachet.php (Arabic) 2018-07-10 14:34:18 +01:00
Cachet Bot
682ac8ac5d New translations validation.php (Dutch) 2018-07-10 14:34:17 +01:00
Cachet Bot
9687384709 New translations pagination.php (Chinese Simplified) 2018-07-10 14:34:16 +01:00
Cachet Bot
347f443d4e New translations dashboard.php (Chinese Simplified) 2018-07-10 14:34:14 +01:00
Cachet Bot
548d9f8c3a New translations cachet.php (Dutch) 2018-07-10 14:34:13 +01:00
Cachet Bot
eeb85c1815 New translations setup.php (Danish) 2018-07-10 14:34:12 +01:00
Cachet Bot
1112c17306 New translations forms.php (Danish) 2018-07-10 14:34:10 +01:00
Cachet Bot
aa421830bb New translations dashboard.php (Danish) 2018-07-10 14:34:09 +01:00
Cachet Bot
99982566b8 New translations validation.php (Danish) 2018-07-10 14:34:08 +01:00
Cachet Bot
115b5b7013 New translations pagination.php (Danish) 2018-07-10 14:34:07 +01:00
Cachet Bot
65a263a2dd New translations cachet.php (Danish) 2018-07-10 14:34:06 +01:00
Cachet Bot
98e0a7b7b4 New translations setup.php (Czech) 2018-07-10 14:34:05 +01:00
Cachet Bot
7581d96c54 New translations forms.php (Czech) 2018-07-10 14:34:03 +01:00
Cachet Bot
8e7c0f3f0d New translations dashboard.php (Czech) 2018-07-10 14:34:02 +01:00
Cachet Bot
50c5b23f96 New translations validation.php (Chinese Simplified) 2018-07-10 14:34:01 +01:00
Cachet Bot
d77c53b5eb New translations validation.php (Czech) 2018-07-10 14:34:00 +01:00
Cachet Bot
cda30429be New translations cachet.php (Czech) 2018-07-10 14:33:59 +01:00
Cachet Bot
8cfb1282d3 New translations forms.php (Chinese Traditional) 2018-07-10 14:33:58 +01:00
Cachet Bot
9faa4b77cd New translations dashboard.php (Chinese Traditional) 2018-07-10 14:33:57 +01:00
Cachet Bot
6a5c5776a9 New translations validation.php (Chinese Traditional) 2018-07-10 14:33:56 +01:00
Cachet Bot
c63a76c86d New translations cachet.php (Chinese Traditional) 2018-07-10 14:33:54 +01:00
Cachet Bot
89718f5fbc New translations setup.php (Chinese Simplified) 2018-07-10 14:33:54 +01:00
Cachet Bot
8e84278a24 New translations forms.php (Chinese Simplified) 2018-07-10 14:33:53 +01:00
Cachet Bot
16470d548e New translations pagination.php (Czech) 2018-07-10 14:33:52 +01:00
Cachet Bot
320203262f New translations pagination.php (Afrikaans) 2018-07-10 14:33:51 +01:00
Cachet Bot
ae3b2e44b5 New translations cachet.php (Italian) 2018-07-10 14:33:50 +01:00
Cachet Bot
755b8143cb New translations validation.php (Italian) 2018-07-10 14:33:49 +01:00
Cachet Bot
4667948949 New translations dashboard.php (Thai) 2018-07-10 14:33:48 +01:00
Cachet Bot
0f7bee9c61 New translations validation.php (Thai) 2018-07-10 14:33:47 +01:00
Cachet Bot
10430ddad3 New translations pagination.php (Thai) 2018-07-10 14:33:46 +01:00
Cachet Bot
6e06e6a4dd New translations cachet.php (Thai) 2018-07-10 14:33:45 +01:00
Cachet Bot
393a1119da New translations forms.php (Swedish) 2018-07-10 14:33:44 +01:00
Cachet Bot
47fb5b2789 New translations dashboard.php (Swedish) 2018-07-10 14:33:43 +01:00
Cachet Bot
00caff7ecf New translations cachet.php (Swedish) 2018-07-10 14:33:41 +01:00
Cachet Bot
e1fccf1b26 New translations forms.php (Thai) 2018-07-10 14:33:40 +01:00
Cachet Bot
1a1e914d59 New translations setup.php (Spanish) 2018-07-10 14:33:39 +01:00
Cachet Bot
f2e995513f New translations dashboard.php (Spanish) 2018-07-10 14:33:38 +01:00
Cachet Bot
e780735987 New translations validation.php (Spanish) 2018-07-10 14:33:35 +01:00
Cachet Bot
1eaa4594af New translations pagination.php (Spanish) 2018-07-10 14:33:35 +01:00
Cachet Bot
9d51a34bd4 New translations cachet.php (Spanish) 2018-07-10 14:33:34 +01:00
Cachet Bot
d1681beae4 New translations setup.php (Russian) 2018-07-10 14:33:33 +01:00
Cachet Bot
0254d3df00 New translations forms.php (Russian) 2018-07-10 14:33:32 +01:00
Cachet Bot
2d15c27191 New translations dashboard.php (Russian) 2018-07-10 14:33:31 +01:00
Cachet Bot
17f12a0cb7 New translations validation.php (Russian) 2018-07-10 14:33:30 +01:00
Cachet Bot
e17400be21 New translations pagination.php (Russian) 2018-07-10 14:33:29 +01:00
Cachet Bot
62d7cb615d New translations cachet.php (Russian) 2018-07-10 14:33:28 +01:00
Cachet Bot
89759bb0ea New translations forms.php (Spanish) 2018-07-10 14:33:27 +01:00
Cachet Bot
7ee6cc91e7 New translations setup.php (Romanian) 2018-07-10 14:33:26 +01:00
Cachet Bot
bf2809bf50 New translations setup.php (Thai) 2018-07-10 14:33:26 +01:00
Cachet Bot
fcbd5b68b2 New translations pagination.php (Turkish) 2018-07-10 14:33:25 +01:00
Cachet Bot
1b1490f8bd New translations forms.php (Zulu) 2018-07-10 14:33:24 +01:00
Cachet Bot
019cafbbf5 New translations dashboard.php (Zulu) 2018-07-10 14:33:23 +01:00
Cachet Bot
a5a66e0de6 New translations validation.php (Zulu) 2018-07-10 14:33:22 +01:00
Cachet Bot
018aa8b0f0 New translations pagination.php (Zulu) 2018-07-10 14:33:21 +01:00
Cachet Bot
abcfdcdd0e New translations cachet.php (Zulu) 2018-07-10 14:33:20 +01:00
Cachet Bot
ceb95c30c4 New translations setup.php (Vietnamese) 2018-07-10 14:33:19 +01:00
Cachet Bot
08f9936e1d New translations forms.php (Vietnamese) 2018-07-10 14:33:19 +01:00
Cachet Bot
1647c4fc45 New translations dashboard.php (Vietnamese) 2018-07-10 14:33:18 +01:00
Cachet Bot
0eaf24febf New translations validation.php (Vietnamese) 2018-07-10 14:33:16 +01:00
Cachet Bot
544a6900bb New translations pagination.php (Vietnamese) 2018-07-10 14:33:15 +01:00
Cachet Bot
b6cbf817ab New translations cachet.php (Turkish) 2018-07-10 14:33:14 +01:00
Cachet Bot
1dab6c0f08 New translations cachet.php (Vietnamese) 2018-07-10 14:33:13 +01:00
Cachet Bot
9dfd47b1e9 New translations forms.php (Ukrainian) 2018-07-10 14:33:12 +01:00
Cachet Bot
0f26675767 New translations dashboard.php (Ukrainian) 2018-07-10 14:33:10 +01:00
Cachet Bot
24f2bb7fd4 New translations validation.php (Ukrainian) 2018-07-10 14:33:09 +01:00
Cachet Bot
4be32a6112 New translations pagination.php (Ukrainian) 2018-07-10 14:33:08 +01:00
Cachet Bot
0b23c86dd2 New translations cachet.php (Ukrainian) 2018-07-10 14:33:08 +01:00
Cachet Bot
22a6e70cfd New translations setup.php (Turkish) 2018-07-10 14:33:07 +01:00
Cachet Bot
8e6569b63d New translations forms.php (Turkish) 2018-07-10 14:33:06 +01:00
Cachet Bot
2c8c13cd82 New translations dashboard.php (Turkish) 2018-07-10 14:33:05 +01:00
Cachet Bot
3aabf285a9 New translations validation.php (Turkish) 2018-07-10 14:33:04 +01:00
Cachet Bot
d07e58d3db New translations setup.php (Ukrainian) 2018-07-10 14:33:03 +01:00
Cachet Bot
0d88d80d48 New translations pagination.php (Italian) 2018-07-10 14:33:02 +01:00
Cachet Bot
ea638ef2ae New translations forms.php (Romanian) 2018-07-10 14:33:01 +01:00
Cachet Bot
b31d30dd10 New translations validation.php (Romanian) 2018-07-10 14:33:00 +01:00
Cachet Bot
a5494b6559 New translations cachet.php (Persian) 2018-07-10 14:32:59 +01:00
Cachet Bot
909a67fe93 New translations setup.php (Norwegian) 2018-07-10 14:32:58 +01:00
Cachet Bot
2a8a4027d6 New translations forms.php (Norwegian) 2018-07-10 14:32:57 +01:00
Cachet Bot
27bc034691 New translations dashboard.php (Norwegian) 2018-07-10 14:32:56 +01:00
Cachet Bot
433093a012 New translations validation.php (Norwegian) 2018-07-10 14:32:55 +01:00
Cachet Bot
fde7ad65f6 New translations pagination.php (Norwegian) 2018-07-10 14:32:54 +01:00
Cachet Bot
172228fdb3 New translations cachet.php (Norwegian) 2018-07-10 14:32:53 +01:00
Cachet Bot
d287b10bc1 New translations setup.php (Korean) 2018-07-10 14:32:52 +01:00
Cachet Bot
db8fddf378 New translations forms.php (Korean) 2018-07-10 14:32:51 +01:00
Cachet Bot
fc45fb60ec New translations dashboard.php (Korean) 2018-07-10 14:32:50 +01:00
Cachet Bot
b11b5f2cf9 New translations pagination.php (Persian) 2018-07-10 14:32:49 +01:00
Cachet Bot
951250f1d1 New translations validation.php (Korean) 2018-07-10 14:32:48 +01:00
Cachet Bot
c9bdbf38d8 New translations cachet.php (Korean) 2018-07-10 14:32:47 +01:00
Cachet Bot
7449d44bc8 New translations setup.php (Japanese) 2018-07-10 14:32:46 +01:00
Cachet Bot
db5ce4397b New translations forms.php (Japanese) 2018-07-10 14:32:45 +01:00
Cachet Bot
3256ad8660 New translations dashboard.php (Japanese) 2018-07-10 14:32:44 +01:00
Cachet Bot
486198872a New translations validation.php (Japanese) 2018-07-10 14:32:43 +01:00
Cachet Bot
de12ccf291 New translations pagination.php (Japanese) 2018-07-10 14:32:42 +01:00
Cachet Bot
e1f5aa0639 New translations cachet.php (Japanese) 2018-07-10 14:32:40 +01:00
Cachet Bot
a70db4c031 New translations setup.php (Italian) 2018-07-10 14:32:40 +01:00
Cachet Bot
c1daf0ae0a New translations forms.php (Italian) 2018-07-10 14:32:39 +01:00
Cachet Bot
fad9e5fd92 New translations dashboard.php (Italian) 2018-07-10 14:32:38 +01:00
Cachet Bot
c224b5d05b New translations pagination.php (Korean) 2018-07-10 14:32:37 +01:00
Cachet Bot
78cc258d96 New translations dashboard.php (Romanian) 2018-07-10 14:32:36 +01:00
Cachet Bot
c87c37ad73 New translations validation.php (Persian) 2018-07-10 14:32:35 +01:00
Cachet Bot
ab02399ca6 New translations forms.php (Persian) 2018-07-10 14:32:34 +01:00
Cachet Bot
c3cf0b9e81 New translations pagination.php (Romanian) 2018-07-10 14:32:33 +01:00
Cachet Bot
2e5ead7886 New translations cachet.php (Romanian) 2018-07-10 14:32:32 +01:00
Cachet Bot
5a444d2c03 New translations forms.php (Portuguese, Brazilian) 2018-07-10 14:32:31 +01:00
Cachet Bot
34cf7428df New translations dashboard.php (Portuguese, Brazilian) 2018-07-10 14:32:30 +01:00
Cachet Bot
e3fa11d917 New translations validation.php (Portuguese, Brazilian) 2018-07-10 14:32:29 +01:00
Cachet Bot
6153d08880 New translations forms.php (Portuguese) 2018-07-10 14:32:27 +01:00
Cachet Bot
521c69b39e New translations dashboard.php (Persian) 2018-07-10 14:32:26 +01:00
Cachet Bot
9caf55d92e New translations dashboard.php (Portuguese) 2018-07-10 14:32:25 +01:00
Cachet Bot
357a1b4e86 New translations cachet.php (Portuguese) 2018-07-10 14:32:24 +01:00
Cachet Bot
c3ad824def New translations setup.php (Polish) 2018-07-10 14:32:23 +01:00
Cachet Bot
abeb6fd917 New translations forms.php (Polish) 2018-07-10 14:32:22 +01:00
Cachet Bot
be794d4ef2 New translations dashboard.php (Polish) 2018-07-10 14:32:21 +01:00
Cachet Bot
fe8ff219ef New translations validation.php (Polish) 2018-07-10 14:32:20 +01:00
Cachet Bot
e01993e5b8 New translations pagination.php (Polish) 2018-07-10 14:32:19 +01:00
Cachet Bot
6138ba99b8 New translations cachet.php (Polish) 2018-07-10 14:32:18 +01:00
Cachet Bot
6efe83c6b4 New translations setup.php (Persian) 2018-07-10 14:32:17 +01:00
Cachet Bot
1b152eb0fe New translations validation.php (Portuguese) 2018-07-10 14:32:17 +01:00
Cachet Bot
62012f4dab New translations cachet.php (Afrikaans) 2018-07-10 14:32:15 +01:00
James Brooks
5c39be5b2c Update deps 2018-07-06 08:29:21 +01:00
James Brooks
1e73861e15 Make file like 2.4 2018-07-04 21:12:30 +01:00
Cachet Bot
4099a8f4e6 Update Crowdin configuration file 2018-07-04 21:01:54 +01:00
James Brooks
163f57397d Update deps 2018-06-17 09:46:48 +01:00
James Brooks
494badb00a Merge pull request #3069 from CachetHQ/fix-component-group-status
Fix the component group status
2018-06-17 09:43:58 +01:00
James Brooks
84bea58f99 Merge branch '2.3' into fix-component-group-status 2018-06-14 21:02:26 +01:00
James Brooks
d7ffbeef0c Don't run tests on HHVM 2018-06-14 21:02:08 +01:00
James Brooks
4aff0ddec0 Fix the component group status. Closes #2731 2018-06-14 07:31:22 +01:00
James Brooks
749c83169c Merge pull request #3016 from hensur/stylesheet-fix-23
Backport stylesheet fix #3014 to 2.3
2018-04-19 08:47:32 +01:00
Henning Surmeier
58a212c2e4 Backport stylesheet fix #3014 to 2.3 2018-04-18 16:27:19 +02:00
James Brooks
0c72e5eec8 Apply fixes from StyleCI (#2962)
[ci skip] [skip ci]
2018-03-26 19:18:30 +01:00
James Brooks
83bc743d79 Merge pull request #2960 from anthonybocci/metric-points-prefix-table-2925
Use the table prefix on metric_points
2018-03-26 19:18:07 +01:00
Anthony Bocci
35dcc8c928 Use the table prefix on metric_points
In the '.env' file, a 'DB_PREFIX' sets the prefix that should be used
on every table name. When writing an SQL query the 'DB_PREFIX' value
has to be prefixed to the table name.

The repository PgSqlRepository, MySqlRepository and SqliteRepository,
located in 'app/Repositories/Metric/' did not apply this prefix on
the 'metric_points' table. The problem occured only when we set a
'DB_PREFIX' not null, the rest of the application worked correctly but
the part about 'metric_points' couldn't work, saying the table was
inexistant.

A method was added in the repository AbstractMetricRepository to get
the 'metric_points' table name with the prefix if there is one.
This method is used in the three repositories to get the right table
name.

Note: This problem was present in 2.3, but was already fixed in 2.4 so
there is no need to apply this commit on the 2.4 branch.

See: CachetHQ/Cachet/#2955
2018-03-23 20:56:41 +01:00
James Brooks
93d1f8784a Merge pull request #2864 from snowflakeOps/2.3
use a better and smaller image for open graph (e.g for slack)
2018-01-11 21:33:49 +00:00
Markus Ritzmann
0450f2f330 #2853 use a better and smaller image for og 2018-01-11 16:49:01 +01:00
James Brooks
595b152db5 Merge pull request #2671 from checkitonus/bug/invalid-template-23
Quick check to make sure the template exists
2017-09-30 11:38:19 +01:00
Graham Campbell
cc15d078bf Removed old links 2017-09-10 18:24:01 +01:00
Graham Campbell
3b568bbc07 Mail password non-required 2017-09-10 18:11:23 +01:00
Graham Campbell
ae4c414a82 Upgraded exceptions package 2017-09-10 17:54:18 +01:00
Graham Campbell
5358cf5e1e Upgraded deps 2017-09-10 17:20:07 +01:00
Andrew Judd
6dedacad57 Removing a helper method 2017-07-30 08:48:45 -04:00
Andrew Judd
29c9211935 Quick check to make sure the template exists 2017-07-29 11:13:41 -04:00
James Brooks
7d47546650 Switch to dev 2017-07-17 21:50:00 +01:00
James Brooks
f5a9941903 Update deps again 2017-07-17 21:49:42 +01:00
James Brooks
52b7bf74b9 Update version 2017-07-17 21:46:30 +01:00
James Brooks
6a59d5ac4d Update deps 2017-07-17 21:44:45 +01:00
James Brooks
19b7b0c3b2 Require predis/predis. Fixes #2611 2017-07-17 21:44:43 +01:00
Graham Campbell
d4507e0722 Back to dev 2017-06-28 23:42:10 +01:00
Graham Campbell
47bc73f9e9 Release v2.3.12 2017-06-28 23:41:31 +01:00
Graham Campbell
81fc6479d5 Revert to original travis config 2017-06-28 22:53:06 +01:00
Graham Campbell
c9ca99990c Update .travis.yml 2017-06-28 22:49:07 +01:00
Graham Campbell
e0d35d6e64 Merge branch '2.3' of https://github.com/CachetHQ/Cachet into 2.3 2017-06-28 22:39:55 +01:00
Graham Campbell
813be34f25 Upgraded dependencies 2017-06-28 22:39:41 +01:00
Graham Campbell
900723105b Update .travis.yml 2017-06-28 22:38:44 +01:00
Graham Campbell
8012a201b9 Update .travis.yml 2017-06-28 22:00:28 +01:00
Graham Campbell
706e7765e1 Update .travis.yml 2017-06-28 21:52:45 +01:00
Guido Hendriks
bcff3d0730 Improve testCreateSubscriberWithSubscriptions test case (#2487) 2017-06-28 21:45:27 +01:00
James Brooks
db5bf005bc Apply fixes from StyleCI (#2606)
[ci skip] [skip ci]
2017-06-28 20:52:41 +01:00
James Brooks
dac88efce6 Merge pull request #2601 from Daniel15/2.3-with-patches
Backport API endpoint to get system status to v2.3
2017-06-28 20:52:08 +01:00
James Brooks
38ef2630ee Add system status to /status endpoint 2017-06-20 17:18:38 +10:00
James Brooks
c215ad4111 Implement the system status api endpoint. Closes #1936 2017-06-20 17:09:03 +10:00
James Brooks
c899839a7f Back to dev 2017-04-12 23:05:32 +01:00
James Brooks
2e5e8b1545 Bump version to 2.3.11 2017-04-12 23:05:09 +01:00
James Brooks
7e556d5dba Apply fixes from StyleCI (#2486)
[ci skip] [skip ci]
2017-04-12 23:04:21 +01:00
James Brooks
331e176fbc Updated deps 2017-03-25 11:42:25 +00:00
James Brooks
bde0abe472 Fix handling of individual component subscriptions via API 2016-09-21 18:35:58 +01:00
James Brooks
f2bf2eff68 Test creating a subscriber returns subscriptions 2016-09-21 18:17:22 +01:00
James Brooks
50ab96fc4f Load subscriptions when creating a subscriber 2016-09-21 18:16:08 +01:00
James Brooks
3cbee1302e Update deps 2016-09-21 18:08:56 +01:00
910 changed files with 86365 additions and 10758 deletions

View File

@@ -1,18 +1,12 @@
# This file is for unifying the coding style for different editors and IDEs
# editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
[docker-compose.yml]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true

View File

@@ -1,68 +1,32 @@
APP_NAME=Cachet
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=http://cachet.test
APP_ENV=production
APP_DEBUG=false
APP_URL=http://localhost
APP_KEY=SomeRandomString
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
DB_DRIVER=mysql
DB_HOST=localhost
DB_DATABASE=cachet
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_PORT=null
DB_PREFIX=null
APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
CACHET_EMOJI=false
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
CACHE_STORE=database
CACHE_PREFIX=
MEMCACHED_HOST=127.0.0.1
REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
MAIL_ADDRESS=null
MAIL_NAME=null
MAIL_ENCRYPTION=tls
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
REDIS_HOST=null
REDIS_DATABASE=null
REDIS_PORT=null
VITE_APP_NAME="${APP_NAME}"
CACHET_BEACON=false
CACHET_EMOJI=false
CACHET_AUTO_TWITTER=true
GITHUB_TOKEN=null

View File

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

View File

@@ -1,94 +0,0 @@
# Contribution Guidelines
## Thank you
Firstly, thank you for taking an interest in Cachet and for reading this guide.
## Creating issues
We track feature requests and bug reports on the [issue tracker](https://github.com/cachethq/Cachet/issues). Please send support requests to our support email; [support@alt-three.com](mailto:support@alt-three.com?subject=Cachet%20Support).
**Always be respectful.** Organisation members reserve the right to lock topics if they feel necessary.
## Languages
This project accepts **English translations** only. Translations will be updated automatically through the [CrowdIn](https://translate.cachethq.io) integration.
Please submit alternative translations to the [Cachet CrowdIn](https://translate.cachethq.io) project. CrowdIn will automatically send a Pull Request with your updates in.
## Coding Standards
Please try to follow existing coding standards. [StyleCI](https://styleci.io) will analyse and fix any discrepancies in coding standards.
## Introduction into Git and GitHub
If you are new to Git, GitHub and the whole open source software community, welcome! Here are some resources for getting started and understanding what it's all about.
- [Try Git](https://try.github.io/levels/1/challenges/1) by Code School
- [GitHub Help](https://help.github.com)
If you're not fond of the command line, you can get one of GitHub's free GUI desktop apps:
- [GitHub for Mac](https://github.com/blog/1510-installing-git-from-github-for-mac)
- [GitHub for Windows](https://github.com/blog/1127-github-for-windows)
If you're feeling adventurous, you can become a Git & GitHub master with the [Git Path on Code School](https://www.codeschool.com/paths/git).
## .editorconfig
You should also make use of the [.editorconfig](/.editorconfig) file found within the root of the repository. It'll make sure that your editor is setup with the same file settings.
## Ways to help:
Start by becoming familiar with Cachet. If you're already using Cachet, that's a great head start. If not, check out the latest [demo](https://dev.cachethq.io) and have a play. You can also download and install Cachet locally to familiarise yourself that way.
You don't have to be a developer to help improve Cachet, infact there are lots of ways that you can help us.
### Spread the word
There are a lot of people who don't know about Cachet or what a status page is and how important it can be. [Tweet about Cachet](https://twitter.com/CachetHQ). Write blog posts about your success (or failures, we're not perfect) with Cachet and share what you took away from it.
### Help with Documentation
Cachet is in use around the world. Cachet speaks multiple languages. Our documentation doesn't and can be hard to understand for non-English speaking people. Documentation should be easy to understand and we need your help to make this possible. Check out [CachetHQ/Docs](https://github.com/CachetHQ/Docs) to contribute to our documentation.
### As a non-developer/non-designer
We're always looking for new [translations](#translations).
Of course bug reports, feature requests and [documentation](https://docs.cachethq.io) are always appreciated.
### As a designer
As Cachet gains new features, the design and ideas that were once a perfect fit need updating and in some cases designing from scratch. This is where you come in! Fancy giving Cachet a lick of paint? Sweet!
You'll need to install Node.js with NPM or Yarn.
To get started you can do the following:
1. Install Node.js and our dev dependencies.
2. Run `npm run dev`
3. Make your changes to the SCSS files in `./resources/assets/sass/`
If you're making a lot of changes, you'll find that running `npm run watch` will make life easier for you!
When you're happy with your changes, please run `npm run prod` to minify the assets.
### As a developer
Built using [Laravel](https://laravel.com).
We use these extra dependencies to develop Cachet:
- Node.js
- NPM or Yarn
- Composer
- Git
Once cloned to your local machine, you'll need some demo data! Run `php artisan cachet:seed` to get the demo installation ready for action.
### #YOLO JUST SUBMIT A PR
_A great idea taken from https://github.com/metabase/metabase/blob/master/docs/contributing.md#yolo-just-submit-a-pr._
> If you come up with something really cool, and want to share it with us, just submit a PR. If it hasn't gone through the above process, we probably won't merge it as is, but if it's compelling, we're more than willing to help you via code review, design review and generally OCD nitpicking so that it fits into the rest of our codebase.

5
.github/FUNDING.yml vendored
View File

@@ -1,5 +0,0 @@
# These are supported funding model platforms
github:
- jbrooksuk
- cachethq

20
.github/ISSUE_TEMPLATE vendored Normal file
View File

@@ -0,0 +1,20 @@
Before submitting your issue, please make sure that you've checked the checkboxes below.
- [ ] I am running the [latest release](https://github.com/CachetHQ/Cachet/releases/latest) version of Cachet.
- [ ] I am running at least PHP 5.5.9. *You can check this by running `php -v`.*
- [ ] I have ran `rm -rf bootstrap/cache/*`.
### Expected behaviour
*Please describe what you're expecting to see happen.*
### Actual behaviour
*Please describe what you're actually seeing happen.*
### Steps to reproduce
*If your issue requires any specific steps to reproduce, please outline them here.*
1. First step
2. Second step

24
.gitignore vendored
View File

@@ -1,22 +1,4 @@
/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/public/css/filament
/public/js/filament
/public/vendor/cachethq/cachet
/storage/*.key
/vendor
.env
.env.backup
.env.production
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode
node_modules
phpunit.xml
vendor

18
.travis.yml Normal file
View File

@@ -0,0 +1,18 @@
language: php
sudo: false
dist: trusty
php:
- 5.5.9
- 5.5
- 5.6
- 7.0
- 7.1
before_install: cp .env.example .env
install: travis_retry composer install --no-interaction --no-scripts --prefer-source
script: vendor/bin/phpunit

76
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,76 @@
# Contribution Guidelines
## Creating issues
Feature requests and bug reports should be made by using the [issue tracker](https://github.com/cachethq/Cachet/issues). Support questions should be directed to our support email; [support@alt-three.com](mailto:support@alt-three.com?subject=Cachet Support).
**Always be respectful.** Organization members reserve the right to lock topics if they feel necessary.
## Languages
Any non-English translations must be made on the [Cachet CrowdIn](https://translate.cachethq.io) project. This makes syncing translations much easier.
## Coding Standards
Please follow existing coding standards:
```php
<?php
namespace CachetHQ\Cachet\Controller;
use CachetHQ\Cachet\Bar;
class Foo extends Bar
{
public function baz()
{
if ($condition) {
}
}
}
```
- At least one newline separating `namespace`, `use`, `function` and `class` declarations.
- Spaces around operators, loops, conditions and control blocks:
```php
<?php
use \Exception;
if ($condition === (10 + 2)) {
try {
throw Exception("Something went wrong...");
} catch (Exception $e) {
// Do something here.
}
}
```
- Braces on a new line following: `namespace`, `use`, `function` and `class`.
- PHP constants should be in lowercase; `true`, `false` and `null`.
- Defined constants should always be in uppercase.
- Never leave trailing spaces at the end of a line.
- Files should end with one blank line.
- Do not use `# Bash` style comments.
- Always add or update Docblocs to functions.
- We use [StyleCI](https://styleci.io) to automatically check code standards in Pull Requests. If your PR fails the CI check, then apply the supplied patch and re-push.
If you're still unsure, then take a look at existing code.
## Introduction into Git and GitHub
If you are new to Git, GitHub and the whole open source software community, welcome! Here are some resources for getting started and understanding what it's all about.
- [Try Git](https://try.github.io/levels/1/challenges/1) by Code School
- [GitHub Help](https://help.github.com)
If you're not particularly fond of the command line, you can get one of GitHub's free GUI desktop apps:
- [GitHub for Mac](https://github.com/blog/1510-installing-git-from-github-for-mac)
- [GitHub for Windows](https://github.com/blog/1127-github-for-windows)
If you're feeling adventurous, you can become a Git & GitHub master with the [Git Path on Code School](https://www.codeschool.com/paths/git).
## .editorconfig
You should also make use of the [.editorconfig](/.editorconfig) file found within the root of the repository. It'll make sure that your editor is setup with the same file settings.

12
LICENSE Normal file
View File

@@ -0,0 +1,12 @@
Copyright (c) 2015-2016 Alt Three Services Limited.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the Cachet nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

107
README.md
View File

@@ -1,53 +1,106 @@
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://cachethq.io/assets/cachet-logo-dark.svg">
<img alt="Cachet Logo" src="https://cachethq.io/assets/cachet-logo-light.svg">
</picture>
</p>
# Cachet
Cachet, the open-source status page system.
[![StyleCI](https://styleci.io/repos/26730195/shield)](https://styleci.io/repos/26730195/)
[![Build Status](https://img.shields.io/travis/CachetHQ/Cachet/2.3.svg?style=flat-square)](https://travis-ci.org/CachetHQ/Cachet)
[![Software License](https://img.shields.io/badge/license-BSD3-brightgreen.svg?style=flat-square)](LICENSE)
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/cachet/localized.svg)](http://translate.cachethq.io/project/cachet)
[![Packagist](https://img.shields.io/packagist/v/cachethq/cachet.svg?style=flat-square)](https://packagist.org/packages/cachethq/cachet)
## Cachet 3.x Announcement
![Screenshot](https://cachethq.io/img/main-interface.jpg)
For more information on the Cachet rebuild and our plans for 3.x, you can read the announcement [here](https://github.com/CachetHQ/Cachet/discussions/4342).
Cachet is a beautiful and powerful open source status page system.
## Features
- List your service components
- Report incidents
- Customise the look of your status page
- List your services components
- Log incidents
- Apply custom CSS to the status page
- Markdown support for incident messages
- A powerful JSON API
- JSON API
- Translated into eleven languages
- Metrics
- Multi-lingual
- Subscriber notifications via email
- Two factor authentication
- Cross-database support: MySQL, PostgreSQL and SQLite
- Subscriber notifications via Email
- Two factor authentication using Google Authenticator
## Requirements
- PHP 8.1 or later
- PHP 5.5.9 - 7.1
- Apache or Nginx server
- [Composer](https://getcomposer.org)
- A supported database: MySQL, PostgreSQL or SQLite
## I'm looking to contribute to this awesome project!
Sweet, we're always looking for contributions that improve Cachet! It's easy to get started and you don't even need to know how to write a single line of code!
### Contributing as a non-developer/non-designer
We're always looking for new [translations](#translations).
Of course bug reports, feature requests and [documentation](https://docs.cachethq.io) are always appreciated.
### Contributing as a designer
As Cachet gains new features, the design and ideas that were once a perfect fit need updating and in some cases designing from scratch. This is where you come in! Fancy giving Cachet a lick of paint? Sweet!
You'll need to install Node.js, Bower and Gulp.
To get started you can do the following:
1. Install Node.js and our dev dependencies.
2. Make your changes to the SCSS files in `./resources/assets/sass/`
3. Run `gulp`
If you're making a lot of changes, you'll find that running `gulp watch` will make life easier for you!
### Contributing as a developer
Built using [Laravel](https://laravel.com).
We use these extra dependencies to develop Cachet:
- Node.js
- Gulp
- Git
Once cloned to your local machine, you'll need some demo data! Run `php artisan cachet:seed` to get the demo installation ready for action.
## Installation, Upgrades and Documentation
You can find documentation at [https://docs.cachethq.io](https://docs.cachethq.io).
Documentation is found at [https://docs.cachethq.io](https://docs.cachethq.io).
Here are some useful quick links:
- [Installing Cachet](https://docs.cachethq.io/installation/)
- [Getting started with Docker](https://docs.cachethq.io/installation/docker)
- [Installing Cachet](https://docs.cachethq.io/docs/installing-cachet)
- [Getting started with Docker](https://docs.cachethq.io/docs/get-started-with-docker)
### Demo
### Demo Account
To test out the v3 demo, you can log in to the [Cachet dashboard](https://v3.cachethq.io/dashboard) with the following credentials:
To test out the demo, you may login to the [Dashboard](https://demo.cachethq.io/dashboard) with the following:
- **Email:** `test@test.com`
- **Username:** `test` or `test@test.com`
- **Password:** `test123`
> **Note**
> The demo will automatically reset every 30 minutes.
The demo is reset every half hour.
### Release Notes
We list releases on the [Releases page](https://github.com/CachetHQ/Cachet/releases) of the [Cachet GitHub repository](https://github.com/CachetHQ/Cachet). On the Releases page, you can also find the release notes for each release.
## Translations
If you'd like to contribute translations, please check out our [CrowdIn project](https://crowdin.com/project/cachet).
> Thank you to our [translators](https://crowdin.com/project/cachet/activity_stream), who have allowed us to share Cachet with the world!
## Show your support
Cachet is a BSD-3-licensed open source project.
## Professional Installation Service
We offer a professional installation service. To find out more, email us at [support@alt-three.com](mailto:support@alt-three.com?Cachet Installation)
## Security Vulnerabilities
If you discover a security vulnerability within Cachet, please send an e-mail to [support@cachethq.io](mailto:support@cachethq.io?Cachet%20Security%20Vulnerability). All security vulnerabilities are reviewed on a case-by-case basis.
If you discover a security vulnerability within Cachet, please send an e-mail to us at support@alt-three.com. We handle all security vulnerabilities on a case-by-case basis.

View File

@@ -1,17 +0,0 @@
# Security Policy
**PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY, [SEE BELOW](#reporting-a-vulnerability).**
## Supported Versions
Use this section to tell people about which versions of your project are
currently being supported with security updates.
| Version | Supported |
| ------- | ------------------ |
| 2.4 | :white_check_mark: |
| < 2.4 | :x: |
## Reporting a Vulnerability
If you discover a security vulnerability within Cachet, please email James Brooks at james@cachethq.io. All security vulnerabilities will be promptly addressed.

1
VERSION Normal file
View File

@@ -0,0 +1 @@
2.3.19-dev

View File

@@ -0,0 +1,103 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Component;
final class AddComponentCommand
{
/**
* The component name.
*
* @var string
*/
public $name;
/**
* The component description.
*
* @var string
*/
public $description;
/**
* The component status.
*
* @var int
*/
public $status;
/**
* The component link.
*
* @var string
*/
public $link;
/**
* The component order.
*
* @var int
*/
public $order;
/**
* The component group.
*
* @var int
*/
public $group_id;
/**
* Is the component enabled?
*
* @var bool
*/
public $enabled;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'description' => 'string',
'status' => 'int|min:1|max:4',
'link' => 'url',
'order' => 'int',
'group_id' => 'int',
'enabled' => 'bool',
];
/**
* Create a new add component command instance.
*
* @param string $name
* @param string $description
* @param int $status
* @param string $link
* @param int $order
* @param int $group_id
* @param bool $enabled
*
* @return void
*/
public function __construct($name, $description, $status, $link, $order, $group_id, $enabled)
{
$this->name = $name;
$this->description = $description;
$this->status = (int) $status;
$this->link = $link;
$this->order = $order;
$this->group_id = $group_id;
$this->enabled = $enabled;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Component;
use CachetHQ\Cachet\Models\Component;
final class RemoveComponentCommand
{
/**
* The component to remove.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new remove component command instance.
*
* @param \CachetHQ\Cachet\Models\Component $component
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

View File

@@ -0,0 +1,114 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Component;
use CachetHQ\Cachet\Models\Component;
final class UpdateComponentCommand
{
/**
* The component to update.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* The component name.
*
* @var string
*/
public $name;
/**
* The component description.
*
* @var string
*/
public $description;
/**
* The component status.
*
* @var int
*/
public $status;
/**
* The component link.
*
* @var string
*/
public $link;
/**
* The component order.
*
* @var int
*/
public $order;
/**
* The component group.
*
* @var int
*/
public $group_id;
/**
* Is the component enabled?
*
* @var bool
*/
public $enabled;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'string',
'description' => 'string',
'status' => 'int|min:1|max:4',
'link' => 'url',
'order' => 'int',
'group_id' => 'int',
'enabled' => 'bool',
];
/**
* Create a new update component command instance.
*
* @param \CachetHQ\Cachet\Models\Component $component
* @param string $name
* @param string $description
* @param int $status
* @param string $link
* @param int $order
* @param int $group_id
* @param bool $enabled
*
* @return void
*/
public function __construct(Component $component, $name, $description, $status, $link, $order, $group_id, $enabled)
{
$this->component = $component;
$this->name = $name;
$this->description = $description;
$this->status = (int) $status;
$this->link = $link;
$this->order = $order;
$this->group_id = $group_id;
$this->enabled = $enabled;
}
}

View File

@@ -0,0 +1,68 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\ComponentGroup;
/**
* This is the add component group command.
*
* @author James Brooks <james@alt-three.com>
*/
final class AddComponentGroupCommand
{
/**
* The component group name.
*
* @var string
*/
public $name;
/**
* The component group description.
*
* @var int
*/
public $order;
/**
* Is the component group collapsed?
*
* @var int
*/
public $collapsed;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'order' => 'int',
'collapsed' => 'int|between:0,3',
];
/**
* Create a add component group command instance.
*
* @param string $name
* @param int $order
* @param int $collapsed
*
* @return void
*/
public function __construct($name, $order, $collapsed)
{
$this->name = $name;
$this->order = (int) $order;
$this->collapsed = $collapsed;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
final class RemoveComponentGroupCommand
{
/**
* The component group to remove.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new remove component group command instance.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup $group
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

View File

@@ -0,0 +1,79 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
/**
* This is the update component group command.
*
* @author James Brooks <james@alt-three.com>
*/
final class UpdateComponentGroupCommand
{
/**
* The component group.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* The component group name.
*
* @var string
*/
public $name;
/**
* The component group description.
*
* @var int
*/
public $order;
/**
* Is the component group collapsed?
*
* @var int
*/
public $collapsed;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'string',
'order' => 'int',
'collapsed' => 'int|between:0,3',
];
/**
* Create a add component group command instance.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup $group
* @param string $name
* @param int $order
* @param int $collapsed
*
* @return void
*/
public function __construct(ComponentGroup $group, $name, $order, $collapsed)
{
$this->group = $group;
$this->name = $name;
$this->order = (int) $order;
$this->collapsed = $collapsed;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Incident;
use CachetHQ\Cachet\Models\Incident;
final class RemoveIncidentCommand
{
/**
* The incident to remove.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new remove incident command instance.
*
* @param \CachetHQ\Cachet\Models\Incident $incident
*
* @return void
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -0,0 +1,132 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Incident;
final class ReportIncidentCommand
{
/**
* The incident name.
*
* @var string
*/
public $name;
/**
* The incident status.
*
* @var int
*/
public $status;
/**
* The incident message.
*
* @var string
*/
public $message;
/**
* The incident visibility.
*
* @var int
*/
public $visible;
/**
* The incident component.
*
* @var int
*/
public $component_id;
/**
* The component status.
*
* @var int
*/
public $component_status;
/**
* Whether to notify about the incident or not.
*
* @var bool
*/
public $notify;
/**
* The date at which the incident occurred.
*
* @var string|null
*/
public $incident_date;
/**
* A given incident template.
*
* @var string|null
*/
public $template;
/**
* Variables for the incident template.
*
* @var string[]|null
*/
public $template_vars;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'status' => 'required|int|min:0|max:4',
'message' => 'string',
'visible' => 'bool',
'component_id' => 'int|required_with:component_status',
'component_status' => 'int|min:1|max:4|required_with:component_id',
'notify' => 'bool',
'incident_date' => 'string',
'template' => 'string',
];
/**
* Create a new report incident command instance.
*
* @param string $name
* @param int $status
* @param string $message
* @param int $visible
* @param int $component_id
* @param int $component_status
* @param bool $notify
* @param string|null $incident_date
* @param string|null $template
* @param array|null $template_vars
*
* @return void
*/
public function __construct($name, $status, $message, $visible, $component_id, $component_status, $notify, $incident_date, $template, array $template_vars = null)
{
$this->name = $name;
$this->status = $status;
$this->message = $message;
$this->visible = $visible;
$this->component_id = $component_id;
$this->component_status = $component_status;
$this->notify = $notify;
$this->incident_date = $incident_date;
$this->template = $template;
$this->template_vars = $template_vars;
}
}

View File

@@ -0,0 +1,73 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Incident;
final class ReportMaintenanceCommand
{
/**
* The maintenance name.
*
* @var string
*/
public $name;
/**
* The maintenance message.
*
* @var string
*/
public $message;
/**
* Whether to notify about the maintenance or not.
*
* @var bool
*/
public $notify;
/**
* Timestamp of when the maintenance is due to start.
*
* @var string
*/
public $timestamp;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'message' => 'string',
'notify' => 'bool',
'timestamp' => 'string',
];
/**
* Create a new report maintenance command instance.
*
* @param string $name
* @param string $message
* @param bool $notify
* @param string $timestamp
*
* @return void
*/
public function __construct($name, $message, $notify, $timestamp)
{
$this->name = $name;
$this->message = $message;
$this->notify = $notify;
$this->timestamp = $timestamp;
}
}

View File

@@ -0,0 +1,142 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Incident;
use CachetHQ\Cachet\Models\Incident;
final class UpdateIncidentCommand
{
/**
* The incident to update.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* The incident name.
*
* @var string
*/
public $name;
/**
* The incident status.
*
* @var int
*/
public $status;
/**
* The incident message.
*
* @var string
*/
public $message;
/**
* The incident visibility.
*
* @var int
*/
public $visible;
/**
* The incident component.
*
* @var int
*/
public $component_id;
/**
* The component status.
*
* @var int
*/
public $component_status;
/**
* Whether to notify about the incident or not.
*
* @var bool
*/
public $notify;
/**
* The date that the incident occurred on.
*
* @var string
*/
public $incident_date;
/**
* A given incident template.
*
* @var string|null
*/
public $template;
/**
* Variables for the incident template.
*
* @var string[]|null
*/
public $template_vars;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'string',
'status' => 'int|min:0|max:4',
'message' => 'string',
'visible' => 'bool',
'component_id' => 'int',
'component_status' => 'int|min:1|max:4|required_with:component_id',
'notify' => 'bool',
'template' => 'string',
];
/**
* Create a new update incident command instance.
*
* @param \CachetHQ\Cachet\Models\Incident $incident
* @param string $name
* @param int $status
* @param string $message
* @param int $visible
* @param int $component_id
* @param int $component_status
* @param bool $notify
* @param string|null $incident_date
* @param string|null $template
* @param array|null $template_vars
*
* @return void
*/
public function __construct(Incident $incident, $name, $status, $message, $visible, $component_id, $component_status, $notify, $incident_date, $template, array $template_vars = null)
{
$this->incident = $incident;
$this->name = $name;
$this->status = $status;
$this->message = $message;
$this->visible = $visible;
$this->component_id = $component_id;
$this->component_status = $component_status;
$this->notify = $notify;
$this->incident_date = $incident_date;
$this->template = $template;
$this->template_vars = $template_vars;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Invite;
use CachetHQ\Cachet\Models\Invite;
final class ClaimInviteCommand
{
/**
* The invite to mark as claimed.
*
* @var \CachetHQ\Cachet\Models\Invite
*/
public $invite;
/**
* Create a new claim invite command instance.
*
* @param \CachetHQ\Cachet\Models\Invite $invite
*
* @return void
*/
public function __construct(Invite $invite)
{
$this->invite = $invite;
}
}

View File

@@ -0,0 +1,134 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Metric;
final class AddMetricCommand
{
/**
* The metric name.
*
* @var string
*/
public $name;
/**
* The metric suffix.
*
* @var string
*/
public $suffix;
/**
* The metric description.
*
* @var string
*/
public $description;
/**
* The metric default value.
*
* @var float
*/
public $default_value;
/**
* The metric calculation type.
*
* @var int
*/
public $calc_type;
/**
* The metric display chart.
*
* @var int
*/
public $display_chart;
/**
* The metric decimal places.
*
* @var int
*/
public $places;
/**
* The view to show the metric points in.
*
* @var int
*/
public $default_view;
/**
* The threshold to buffer the metric points in.
*
* @var int
*/
public $threshold;
/**
* The order of which to place the metric in.
*
* @var int
*/
public $order;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'suffix' => 'required|string',
'description' => 'string',
'display_chart' => 'bool',
'default_value' => 'int',
'calc_type' => 'int',
'display_chart' => 'int',
'places' => 'int|between:0,4',
'default_view' => 'int|between:0,3',
'threshold' => 'numeric|between:0,10',
'order' => 'int',
];
/**
* Create a new add metric command instance.
*
* @param string $name
* @param string $suffix
* @param string $description
* @param float $default_value
* @param int $calc_type
* @param int $display_chart
* @param int $places
* @param int $default_view
* @param int $threshold
* @param int $order
*
* @return void
*/
public function __construct($name, $suffix, $description, $default_value, $calc_type, $display_chart, $places, $default_view, $threshold, $order = 0)
{
$this->name = $name;
$this->suffix = $suffix;
$this->description = $description;
$this->default_value = $default_value;
$this->calc_type = $calc_type;
$this->display_chart = $display_chart;
$this->places = $places;
$this->default_view = $default_view;
$this->threshold = $threshold;
$this->order = $order;
}
}

View File

@@ -0,0 +1,64 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Metric;
use CachetHQ\Cachet\Models\Metric;
final class AddMetricPointCommand
{
/**
* The metric to add.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* The metric point value.
*
* @var int
*/
public $value;
/**
* The metric point created at.
*
* @var string
*/
public $created_at;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'value' => 'numeric',
'created_at' => 'string',
];
/**
* Create a new add metric point command instance.
*
* @param \CachetHQ\Cachet\Models\Metric $metric
* @param int $value
* @param string $created_at
*
* @return void
*/
public function __construct(Metric $metric, $value, $created_at)
{
$this->metric = $metric;
$this->value = $value;
$this->created_at = $created_at;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Metric;
use CachetHQ\Cachet\Models\Metric;
final class RemoveMetricCommand
{
/**
* The metric to remove.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* Create a new remove metric command instance.
*
* @param \CachetHQ\Cachet\Models\Metric $metric
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
final class RemoveMetricPointCommand
{
/**
* The metric point to remove.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metricPoint;
/**
* Create a new remove metric point command instance.
*
* @param \CachetHQ\Cachet\Models\MetricPoint $metricPoint
*
* @return void
*/
public function __construct(MetricPoint $metricPoint)
{
$this->metricPoint = $metricPoint;
}
}

View File

@@ -0,0 +1,145 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Metric;
use CachetHQ\Cachet\Models\Metric;
final class UpdateMetricCommand
{
/**
* The metric.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* The metric name.
*
* @var string
*/
public $name;
/**
* The metric suffix.
*
* @var string
*/
public $suffix;
/**
* The metric description.
*
* @var string
*/
public $description;
/**
* The metric default value.
*
* @var float
*/
public $default_value;
/**
* The metric calculation type.
*
* @var int
*/
public $calc_type;
/**
* The metric display chart.
*
* @var int
*/
public $display_chart;
/**
* The metric decimal places.
*
* @var int
*/
public $places;
/**
* The view to show the metric points in.
*
* @var int
*/
public $default_view;
/**
* The threshold to buffer the metric points in.
*
* @var int
*/
public $threshold;
/**
* The order of which to place the metric in.
*
* @var int|null
*/
public $order;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'string',
'suffix' => 'string',
'description' => 'string',
'display_chart' => 'bool',
'default_value' => 'numeric',
'calc_type' => 'int|in:0,1',
'display_chart' => 'int',
'places' => 'numeric|between:0,4',
'default_view' => 'numeric|between:0,4',
'threshold' => 'numeric|between:0,10',
'order' => 'int',
];
/**
* Create a new update metric command instance.
*
* @param \CachetHQ\Cachet\Models\Metric $metric
* @param string $name
* @param string $suffix
* @param string $description
* @param float $default_value
* @param int $calc_type
* @param int $display_chart
* @param int $places
* @param int $default_view
* @param int $threshold
* @param int|null $order
*
* @return void
*/
public function __construct(Metric $metric, $name, $suffix, $description, $default_value, $calc_type, $display_chart, $places, $default_view, $threshold, $order = null)
{
$this->metric = $metric;
$this->name = $name;
$this->suffix = $suffix;
$this->description = $description;
$this->default_value = $default_value;
$this->calc_type = $calc_type;
$this->display_chart = $display_chart;
$this->places = $places;
$this->default_view = $default_view;
$this->threshold = $threshold;
$this->order = $order;
}
}

View File

@@ -0,0 +1,79 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Metric;
use CachetHQ\Cachet\Models\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
/**
* This is the update metric point command.
*
* @author James Brooks <james@alt-three.com>
*/
final class UpdateMetricPointCommand
{
/**
* The metric point.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $point;
/**
* The metric.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* The metric point value.
*
* @var float
*/
public $value;
/**
* The metric point created at.
*
* @var string
*/
public $created_at;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'value' => 'numeric',
'created_at' => 'string',
];
/**
* Create a new update metric point command instance.
*
* @param \CachetHQ\Cachet\Models\MetricPoint $point
* @param \CachetHQ\Cachet\Models\Metric $metric
* @param float $value
* @param string $created_at
*
* @return void
*/
public function __construct(MetricPoint $point, Metric $metric, $value, $created_at)
{
$this->point = $point;
$this->metric = $metric;
$this->value = $value;
$this->created_at = $created_at;
}
}

View File

@@ -0,0 +1,66 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Subscriber;
/**
* This is the subscribe subscriber command.
*
* @author James Brooks <james@alt-three.com>
*/
final class SubscribeSubscriberCommand
{
/**
* The subscriber email.
*
* @var string
*/
public $email;
/**
* The subscriber auto verification.
*
* @var bool
*/
public $verified;
/**
* The list of subscriptions to set the subscriber up with.
*
* @var array|null
*/
public $subscriptions;
/**
* The validation rules.
*
* @var array
*/
public $rules = [
'email' => 'required|email',
];
/**
* Create a new subscribe subscriber command instance.
*
* @param string $email
* @param bool $verified
* @param array|null $subscriptions
*
* @return void
*/
public function __construct($email, $verified = false, $subscriptions = null)
{
$this->email = $email;
$this->verified = $verified;
$this->subscriptions = $subscriptions;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
final class UnsubscribeSubscriberCommand
{
/**
* The subscriber to unsubscribe.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a unsubscribe subscriber command instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Subscriber;
use CachetHQ\Cachet\Models\Subscription;
final class UnsubscribeSubscriptionCommand
{
/**
* The subscription to unsubscribe.
*
* @var \CachetHQ\Cachet\Models\Subscription
*/
public $subscription;
/**
* Create a unsubscribe subscription command instance.
*
* @param \CachetHQ\Cachet\Models\Subscription $subscription
*
* @return void
*/
public function __construct(Subscription $subscription)
{
$this->subscription = $subscription;
}
}

View File

@@ -0,0 +1,50 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
/**
* This is the subscribe subscriber command.
*
* @author Joseph Cohen <joe@alt-three.com>
*/
final class UpdateSubscriberSubscriptionCommand
{
/**
* The subscriber email.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* The subscriptions that we want to add.
*
* @var array|null
*/
public $subscriptions;
/**
* Create a new subscribe subscriber command instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
* @param null|array $subscriptions
*
* @return void
*/
public function __construct($subscriber, $subscriptions = null)
{
$this->subscriber = $subscriber;
$this->subscriptions = $subscriptions;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
final class VerifySubscriberCommand
{
/**
* The subscriber to verify.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a verify subscriber command instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -0,0 +1,72 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\User;
final class AddTeamMemberCommand
{
/**
* The user username.
*
* @var string
*/
public $username;
/**
* The user password.
*
* @var string
*/
public $password;
/**
* The user email.
*
* @var string
*/
public $email;
/**
* The user level.
*
* @var int
*/
public $level;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'name' => 'required|string',
'password' => 'string',
'level' => 'int',
];
/**
* Create a new add team member command instance.
*
* @param string $username
* @param string $password
* @param string $email
* @param int $level
*
* @return void
*/
public function __construct($username, $password, $email, $level)
{
$this->username = $username;
$this->password = $password;
$this->email = $email;
$this->level = $level;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\User;
use CachetHQ\Cachet\Models\User;
final class GenerateApiTokenCommand
{
/**
* The user to generate the token.
*
* @var \CachetHQ\Cachet\Models\User
*/
public $user;
/**
* Create a new generate api token command instance.
*
* @param \CachetHQ\Cachet\Models\User $user
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

View File

@@ -0,0 +1,43 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\User;
final class InviteTeamMemberCommand
{
/**
* The invite emails.
*
* @var string[]
*/
public $emails;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'emails' => 'required|array|email',
];
/**
* Create a new invite team member command instance.
*
* @param string[] $emails
*
* @return void
*/
public function __construct(array $emails)
{
$this->emails = $emails;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\User;
use CachetHQ\Cachet\Models\User;
final class RemoveUserCommand
{
/**
* The user to remove.
*
* @var \CachetHQ\Cachet\Models\User
*/
public $user;
/**
* Create a new remove user command instance.
*
* @param \CachetHQ\Cachet\Models\User $user
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

View File

@@ -0,0 +1,73 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Commands\User;
final class SignupUserCommand
{
/**
* The user username.
*
* @var string
*/
public $username;
/**
* The user password.
*
* @var string
*/
public $password;
/**
* The user email.
*
* @var string
*/
public $email;
/**
* The user level.
*
* @var int
*/
public $level;
/**
* The validation rules.
*
* @var string[]
*/
public $rules = [
'username' => 'required|string',
'password' => 'string',
'email' => 'required|string|email',
'level' => 'int',
];
/**
* Create a new signup user command instance.
*
* @param string $username
* @param string $password
* @param string $email
* @param int $level
*
* @return void
*/
public function __construct($username, $password, $email, $level)
{
$this->username = $username;
$this->password = $password;
$this->email = $email;
$this->level = $level;
}
}

View File

@@ -0,0 +1,19 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Component;
use CachetHQ\Cachet\Bus\Events\EventInterface;
interface ComponentEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Component;
use CachetHQ\Cachet\Models\Component;
final class ComponentWasAddedEvent implements ComponentEventInterface
{
/**
* The component that was added.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new component was added event instance.
*
* @param \CachetHQ\Cachet\Models\Component $component
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Component;
use CachetHQ\Cachet\Models\Component;
final class ComponentWasRemovedEvent implements ComponentEventInterface
{
/**
* The component that was removed.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new component was removed event instance.
*
* @param \CachetHQ\Cachet\Models\Component $component
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Component;
use CachetHQ\Cachet\Models\Component;
final class ComponentWasUpdatedEvent implements ComponentEventInterface
{
/**
* The component that was updated.
*
* @var \CachetHQ\Cachet\Models\Component
*/
public $component;
/**
* Create a new component was updated event instance.
*
* @param \CachetHQ\Cachet\Models\Component $component
*
* @return void
*/
public function __construct(Component $component)
{
$this->component = $component;
}
}

View File

@@ -0,0 +1,19 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\ComponentGroup;
use CachetHQ\Cachet\Bus\Events\EventInterface;
interface ComponentGroupEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
final class ComponentGroupWasAddedEvent implements ComponentGroupEventInterface
{
/**
* The component group that was added.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new component group was added event instance.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup $group
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
final class ComponentGroupWasRemovedEvent implements ComponentGroupEventInterface
{
/**
* The component group that was removed.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new component group was removed event instance.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup $group
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\ComponentGroup;
use CachetHQ\Cachet\Models\ComponentGroup;
final class ComponentGroupWasUpdatedEvent implements ComponentGroupEventInterface
{
/**
* The component group that was updated.
*
* @var \CachetHQ\Cachet\Models\ComponentGroup
*/
public $group;
/**
* Create a new component group was updated event instance.
*
* @param \CachetHQ\Cachet\Models\ComponentGroup $group
*
* @return void
*/
public function __construct(ComponentGroup $group)
{
$this->group = $group;
}
}

View File

@@ -9,6 +9,9 @@
* file that was distributed with this source code.
*/
test('that true is true', function () {
expect(true)->toBeTrue();
});
namespace CachetHQ\Cachet\Bus\Events;
interface EventInterface
{
//
}

View File

@@ -0,0 +1,19 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Incident;
use CachetHQ\Cachet\Bus\Events\EventInterface;
interface IncidentEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
final class IncidentWasRemovedEvent implements IncidentEventInterface
{
/**
* The incident that has been removed.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new incident was removed event instance.
*
* @param \CachetHQ\Cachet\Models\Incident $incident
*
* @return void
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
final class IncidentWasReportedEvent implements IncidentEventInterface
{
/**
* The incident that has been reported.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new incident has reported event instance.
*
* @param \CachetHQ\Cachet\Models\Incident $incident
*
* @return void
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
final class IncidentWasUpdatedEvent implements IncidentEventInterface
{
/**
* The incident that has been updated.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new incident has updated event instance.
*
* @param \CachetHQ\Cachet\Models\Incident $incident
*
* @return void
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Incident;
use CachetHQ\Cachet\Models\Incident;
final class MaintenanceWasScheduledEvent implements IncidentEventInterface
{
/**
* The incident that has been reported.
*
* @var \CachetHQ\Cachet\Models\Incident
*/
public $incident;
/**
* Create a new maintenance has scheduled event instance.
*
* @param \CachetHQ\Cachet\Models\Incident $incident
*
* @return void
*/
public function __construct(Incident $incident)
{
$this->incident = $incident;
}
}

View File

@@ -9,8 +9,11 @@
* file that was distributed with this source code.
*/
it('returns a successful response', function () {
$response = $this->get('/');
namespace CachetHQ\Cachet\Bus\Events\Invite;
$response->assertStatus(200);
});
use CachetHQ\Cachet\Bus\Events\EventInterface;
interface InviteEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,34 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Invite;
use CachetHQ\Cachet\Models\Invite;
final class InviteWasClaimedEvent implements InviteEventInterface
{
/**
* The invite that has been claimed.
*
* @var \CachetHQ\Cachet\Models\Invite
*/
public $invite;
/**
* Create a new invite was claimed event instance.
*
* @return void
*/
public function __construct(Invite $invite)
{
$this->invite = $invite;
}
}

View File

@@ -9,6 +9,11 @@
* file that was distributed with this source code.
*/
return [
App\Providers\AppServiceProvider::class,
];
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Bus\Events\EventInterface;
interface MetricEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
final class MetricPointWasAddedEvent implements MetricEventInterface
{
/**
* The metric point that was added.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metricPoint;
/**
* Create a new metric point was added event instance.
*
* @param \CachetHQ\Cachet\Models\MetricPoint $metricPoint
*
* @return void
*/
public function __construct(MetricPoint $metricPoint)
{
$this->metricPoint = $metricPoint;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
final class MetricPointWasRemovedEvent implements MetricEventInterface
{
/**
* The metric point that was removed.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metricPoint;
/**
* Create a new metric point was removed event instance.
*
* @param \CachetHQ\Cachet\Models\MetricPoint $memtricPoint
*
* @return void
*/
public function __construct(MetricPoint $metricPoint)
{
$this->metricPoint = $metricPoint;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Models\MetricPoint;
final class MetricPointWasUpdatedEvent implements MetricEventInterface
{
/**
* The metric point that was updated.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metricPoint;
/**
* Create a new metric point was updated event instance.
*
* @param \CachetHQ\Cachet\Models\MetricPoint $metricPoint
*
* @return void
*/
public function __construct(MetricPoint $metricPoint)
{
$this->metricPoint = $metricPoint;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Models\Metric;
final class MetricWasAddedEvent implements MetricEventInterface
{
/**
* The metric that was added.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* Create a new metric was added event instance.
*
* @param \CachetHQ\Cachet\Models\Metric $metric
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Models\Metric;
final class MetricWasRemovedEvent implements MetricEventInterface
{
/**
* The metric that was removed.
*
* @var \CachetHQ\Cachet\Models\Metric
*/
public $metric;
/**
* Create a new metric was removed event instance.
*
* @param \CachetHQ\Cachet\Models\Metric $metric
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Metric;
use CachetHQ\Cachet\Models\Metric;
final class MetricWasUpdatedEvent implements MetricEventInterface
{
/**
* The metric that was updated.
*
* @var \CachetHQ\Cachet\Models\MetricPoint
*/
public $metric;
/**
* Create a new metric was updated event instance.
*
* @param \CachetHQ\Cachet\Models\Metric $metric
*
* @return void
*/
public function __construct(Metric $metric)
{
$this->metric = $metric;
}
}

View File

@@ -0,0 +1,19 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Subscriber;
use CachetHQ\Cachet\Bus\Events\EventInterface;
interface SubscriberEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
final class SubscriberHasSubscribedEvent implements SubscriberEventInterface
{
/**
* The subscriber who has subscribed.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new subscriber has subscribed event instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
final class SubscriberHasUnsubscribedEvent implements SubscriberEventInterface
{
/**
* The subscriber who has unsubscribed.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new subscriber has unsubscribed event instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -0,0 +1,41 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
/**
* This is the subscriber has updated subscriptions event.
*
* @author James Brooks <james@alt-three.com>
*/
final class SubscriberHasUpdatedSubscriptionsEvent implements SubscriberEventInterface
{
/**
* The subscriber.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new subscriber has updated subscriptions event instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\Subscriber;
use CachetHQ\Cachet\Models\Subscriber;
final class SubscriberHasVerifiedEvent implements SubscriberEventInterface
{
/**
* The subscriber who has verified.
*
* @var \CachetHQ\Cachet\Models\Subscriber
*/
public $subscriber;
/**
* Create a new subscriber has subscribed event instance.
*
* @param \CachetHQ\Cachet\Models\Subscriber $subscriber
*
* @return void
*/
public function __construct(Subscriber $subscriber)
{
$this->subscriber = $subscriber;
}
}

View File

@@ -9,10 +9,11 @@
* file that was distributed with this source code.
*/
namespace Tests;
namespace CachetHQ\Cachet\Bus\Events\User;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
use CachetHQ\Cachet\Bus\Events\EventInterface;
abstract class TestCase extends BaseTestCase
interface UserEventInterface extends EventInterface
{
//
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\User;
use CachetHQ\Cachet\Models\User;
final class UserWasAddedEvent implements UserEventInterface
{
/**
* The user that has been added.
*
* @var \CachetHQ\Cachet\Models\User
*/
public $user;
/**
* Create a new user was added event instance.
*
* @param \CachetHQ\Cachet\Models\User $user
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\User;
use CachetHQ\Cachet\Models\Invite;
final class UserWasInvitedEvent implements UserEventInterface
{
/**
* The invite that has been added.
*
* @var \CachetHQ\Cachet\Models\Invite
*/
public $invite;
/**
* Create a new user was invite event instance.
*
* @param \CachetHQ\Cachet\Models\Invite $invite
*
* @return void
*/
public function __construct(Invite $invite)
{
$this->invite = $invite;
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Events\User;
use CachetHQ\Cachet\Models\User;
final class UserWasRemovedEvent implements UserEventInterface
{
/**
* The user that has been removed.
*
* @var \CachetHQ\Cachet\Models\User
*/
public $user;
/**
* Create a new user was removed event instance.
*
* @param \CachetHQ\Cachet\Models\User $user
*
* @return void
*/
public function __construct(User $user)
{
$this->user = $user;
}
}

View File

@@ -0,0 +1,23 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Exceptions;
/**
* This is the exception interface.
*
* @author Graham Campbell <graham@alt-three.com>
* @author James Brooks <james@alt-three.com>
*/
interface ExceptionInterface
{
//
}

View File

@@ -0,0 +1,59 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Component;
use CachetHQ\Cachet\Bus\Commands\Component\AddComponentCommand;
use CachetHQ\Cachet\Bus\Events\Component\ComponentWasAddedEvent;
use CachetHQ\Cachet\Models\Component;
class AddComponentCommandHandler
{
/**
* Handle the add component command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Component\AddComponentCommand $command
*
* @return \CachetHQ\Cachet\Models\Component
*/
public function handle(AddComponentCommand $command)
{
$component = Component::create($this->filter($command));
event(new ComponentWasAddedEvent($component));
return $component;
}
/**
* Filter the command data.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\AddComponentCommand $command
*
* @return array
*/
protected function filter(AddComponentCommand $command)
{
$params = [
'name' => $command->name,
'description' => $command->description,
'link' => $command->link,
'status' => $command->status,
'enabled' => $command->enabled,
'order' => $command->order,
'group_id' => $command->group_id,
];
return array_filter($params, function ($val) {
return $val !== null;
});
}
}

View File

@@ -0,0 +1,34 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Component;
use CachetHQ\Cachet\Bus\Commands\Component\RemoveComponentCommand;
use CachetHQ\Cachet\Bus\Events\Component\ComponentWasRemovedEvent;
class RemoveComponentCommandHandler
{
/**
* Handle the remove component command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Component\RemoveComponentCommand $command
*
* @return void
*/
public function handle(RemoveComponentCommand $command)
{
$component = $command->component;
event(new ComponentWasRemovedEvent($component));
$component->delete();
}
}

View File

@@ -0,0 +1,61 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Component;
use CachetHQ\Cachet\Bus\Commands\Component\UpdateComponentCommand;
use CachetHQ\Cachet\Bus\Events\Component\ComponentWasUpdatedEvent;
use CachetHQ\Cachet\Models\Component;
class UpdateComponentCommandHandler
{
/**
* Handle the update component command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Component\UpdateComponentCommand $command
*
* @return \CachetHQ\Cachet\Models\Component
*/
public function handle(UpdateComponentCommand $command)
{
$component = $command->component;
$component->update($this->filter($command));
event(new ComponentWasUpdatedEvent($component));
return $component;
}
/**
* Filter the command data.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\UpdateComponentCommand $command
*
* @return array
*/
protected function filter(UpdateComponentCommand $command)
{
$params = [
'name' => $command->name,
'description' => $command->description,
'link' => $command->link,
'status' => $command->status,
'enabled' => $command->enabled,
'order' => $command->order,
'group_id' => $command->group_id,
];
return array_filter($params, function ($val) {
return $val !== null;
});
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\ComponentGroup;
use CachetHQ\Cachet\Bus\Commands\ComponentGroup\AddComponentGroupCommand;
use CachetHQ\Cachet\Bus\Events\ComponentGroup\ComponentGroupWasAddedEvent;
use CachetHQ\Cachet\Models\ComponentGroup;
class AddComponentGroupCommandHandler
{
/**
* Handle the add component group command.
*
* @param \CachetHQ\Cachet\Bus\Commands\ComponentGroup\AddComponentGroupCommand $command
*
* @return \CachetHQ\Cachet\Models\ComponentGroup
*/
public function handle(AddComponentGroupCommand $command)
{
$group = ComponentGroup::create([
'name' => $command->name,
'order' => $command->order,
'collapsed' => $command->collapsed,
]);
event(new ComponentGroupWasAddedEvent($group));
return $group;
}
}

View File

@@ -0,0 +1,39 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\ComponentGroup;
use CachetHQ\Cachet\Bus\Commands\ComponentGroup\RemoveComponentGroupCommand;
use CachetHQ\Cachet\Bus\Events\ComponentGroup\ComponentGroupWasRemovedEvent;
class RemoveComponentGroupCommandHandler
{
/**
* Handle the remove component group command.
*
* @param \CachetHQ\Cachet\Bus\Commands\ComponentGroup\RemoveComponentGroupCommand $command
*
* @return void
*/
public function handle(RemoveComponentGroupCommand $command)
{
$group = $command->group;
event(new ComponentGroupWasRemovedEvent($group));
// Remove the group id from all component.
$group->components->map(function ($component) {
$component->update(['group_id' => 0]);
});
$group->delete();
}
}

View File

@@ -0,0 +1,55 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\ComponentGroup;
use CachetHQ\Cachet\Bus\Commands\ComponentGroup\UpdateComponentGroupCommand;
use CachetHQ\Cachet\Bus\Events\ComponentGroup\ComponentGroupWasUpdatedEvent;
class UpdateComponentGroupCommandHandler
{
/**
* Handle the update component group command.
*
* @param \CachetHQ\Cachet\Bus\Commands\ComponentGroup\UpdateComponentGroupCommand $command
*
* @return \CachetHQ\Cachet\Models\ComponentGroup
*/
public function handle(UpdateComponentGroupCommand $command)
{
$group = $command->group;
$group->update($this->filter($command));
event(new ComponentGroupWasUpdatedEvent($group));
return $group;
}
/**
* Filter the command data.
*
* @param \CachetHQ\Cachet\Bus\Commands\ComponentGroup\UpdateComponentGroupCommand $command
*
* @return array
*/
protected function filter(UpdateComponentGroupCommand $command)
{
$params = [
'name' => $command->name,
'order' => $command->order,
'collapsed' => $command->collapsed,
];
return array_filter($params, function ($val) {
return $val !== null;
});
}
}

View File

@@ -0,0 +1,34 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Incident;
use CachetHQ\Cachet\Bus\Commands\Incident\RemoveIncidentCommand;
use CachetHQ\Cachet\Bus\Events\Incident\IncidentWasRemovedEvent;
class RemoveIncidentCommandHandler
{
/**
* Handle the remove incident command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\RemoveIncidentCommand $command
*
* @return void
*/
public function handle(RemoveIncidentCommand $command)
{
$incident = $command->incident;
event(new IncidentWasRemovedEvent($incident));
$incident->delete();
}
}

View File

@@ -0,0 +1,128 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Incident;
use CachetHQ\Cachet\Bus\Commands\Incident\ReportIncidentCommand;
use CachetHQ\Cachet\Bus\Events\Incident\IncidentWasReportedEvent;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use CachetHQ\Cachet\Models\IncidentTemplate;
use Twig_Loader_String;
use TwigBridge\Bridge;
/**
* This is the report incident command handler.
*
* @author James Brooks <james@alt-three.com>
*/
class ReportIncidentCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* The twig bridge instance.
*
* @var \TwigBridge\Bridge
*/
protected $twig;
/**
* Create a new report incident command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
* @param \TwigBridge\Bridge $twig
*
* @return void
*/
public function __construct(DateFactory $dates, Bridge $twig)
{
$this->dates = $dates;
$this->twig = $twig;
}
/**
* Handle the report incident command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\ReportIncidentCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportIncidentCommand $command)
{
$data = [
'name' => $command->name,
'status' => $command->status,
'visible' => $command->visible,
];
if (IncidentTemplate::where('slug', '=', $command->template)->first()) {
$data['message'] = $this->parseIncidentTemplate($command->template, $command->template_vars);
} else {
$data['message'] = $command->message;
}
// Link with the component.
if ($command->component_id) {
$data['component_id'] = $command->component_id;
}
// The incident occurred at a different time.
if ($command->incident_date) {
$incidentDate = $this->dates->create('d/m/Y H:i', $command->incident_date);
$data['created_at'] = $incidentDate;
$data['updated_at'] = $incidentDate;
}
// Create the incident
$incident = Incident::create($data);
// Update the component.
if ($command->component_id) {
Component::find($command->component_id)->update([
'status' => $command->component_status,
]);
}
$incident->notify = (bool) $command->notify;
event(new IncidentWasReportedEvent($incident));
return $incident;
}
/**
* Compiles an incident template into an incident message.
*
* @param string $templateSlug
* @param array $vars
*
* @return string
*/
protected function parseIncidentTemplate($templateSlug, $vars)
{
if ($vars === null) {
$vars = [];
}
$this->twig->setLoader(new Twig_Loader_String());
$template = IncidentTemplate::forSlug($templateSlug)->first();
return $this->twig->render($template->template, $vars);
}
}

View File

@@ -0,0 +1,65 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Incident;
use CachetHQ\Cachet\Bus\Commands\Incident\ReportMaintenanceCommand;
use CachetHQ\Cachet\Bus\Events\Incident\MaintenanceWasScheduledEvent;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Models\Incident;
class ReportMaintenanceCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* Create a new report maintenance command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
*
* @return void
*/
public function __construct(DateFactory $dates)
{
$this->dates = $dates;
}
/**
* Handle the report maintenance command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\ReportMaintenanceCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(ReportMaintenanceCommand $command)
{
$scheduledAt = $this->dates->create('d/m/Y H:i', $command->timestamp);
$maintenanceEvent = Incident::create([
'name' => $command->name,
'message' => $command->message,
'scheduled_at' => $scheduledAt,
'status' => 0,
'visible' => 1,
]);
$maintenanceEvent->notify = (bool) $command->notify;
event(new MaintenanceWasScheduledEvent($maintenanceEvent));
return $maintenanceEvent;
}
}

View File

@@ -0,0 +1,135 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Incident;
use CachetHQ\Cachet\Bus\Commands\Incident\UpdateIncidentCommand;
use CachetHQ\Cachet\Bus\Events\Incident\IncidentWasUpdatedEvent;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Incident;
use CachetHQ\Cachet\Models\IncidentTemplate;
use Twig_Loader_String;
use TwigBridge\Bridge;
/**
* This is the update incident command handler.
*
* @author James Brooks <james@alt-three.com>
*/
class UpdateIncidentCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* The twig bridge instance.
*
* @var \TwigBridge\Bridge
*/
protected $twig;
/**
* Create a new update incident command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
* @param \TwigBridge\Bridge $twig
*
* @return void
*/
public function __construct(DateFactory $dates, Bridge $twig)
{
$this->dates = $dates;
$this->twig = $twig;
}
/**
* Handle the update incident command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\UpdateIncidentCommand $command
*
* @return \CachetHQ\Cachet\Models\Incident
*/
public function handle(UpdateIncidentCommand $command)
{
if ($command->template) {
$command->message = $this->parseIncidentTemplate($command->template, $command->template_vars);
}
$incident = $command->incident;
$incident->update($this->filter($command));
// The incident occurred at a different time.
if ($command->incident_date) {
$incidentDate = $this->dates->create('d/m/Y H:i', $command->incident_date);
$incident->update([
'created_at' => $incidentDate,
'updated_at' => $incidentDate,
]);
}
// Update the component.
if ($command->component_id) {
Component::find($command->component_id)->update([
'status' => $command->component_status,
]);
}
event(new IncidentWasUpdatedEvent($incident));
return $incident;
}
/**
* Filter the command data.
*
* @param \CachetHQ\Cachet\Bus\Commands\Incident\UpdateIncidentCommand $command
*
* @return array
*/
protected function filter(UpdateIncidentCommand $command)
{
$params = [
'name' => $command->name,
'status' => $command->status,
'message' => $command->message,
'visible' => $command->visible,
'component_id' => $command->component_id,
'component_status' => $command->component_status,
'notify' => $command->notify,
];
return array_filter($params, function ($val) {
return $val !== null;
});
}
/**
* Compiles an incident template into an incident message.
*
* @param string $templateSlug
* @param array $vars
*
* @return string
*/
protected function parseIncidentTemplate($templateSlug, $vars)
{
$this->twig->setLoader(new Twig_Loader_String());
$template = IncidentTemplate::forSlug($templateSlug)->first();
return $this->twig->render($template->template, $vars);
}
}

View File

@@ -0,0 +1,36 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Invite;
use CachetHQ\Cachet\Bus\Commands\Invite\ClaimInviteCommand;
use CachetHQ\Cachet\Bus\Events\Invite\InviteWasClaimedEvent;
use Carbon\Carbon;
class ClaimInviteCommandHandler
{
/**
* Handle the claim invite command.
*
* @param \CachetHQ\Cachet\Bus\Commands\User\ClaimInviteCommand $command
*
* @return void
*/
public function handle(ClaimInviteCommand $command)
{
$invite = $command->invite;
$invite->claimed_at = Carbon::now();
$invite->save();
event(new InviteWasClaimedEvent($invite));
}
}

View File

@@ -0,0 +1,46 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Metric;
use CachetHQ\Cachet\Bus\Commands\Metric\AddMetricCommand;
use CachetHQ\Cachet\Bus\Events\Metric\MetricWasAddedEvent;
use CachetHQ\Cachet\Models\Metric;
class AddMetricCommandHandler
{
/**
* Handle the add metric command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\AddMetricCommand $command
*
* @return \CachetHQ\Cachet\Models\Metric
*/
public function handle(AddMetricCommand $command)
{
$metric = Metric::create([
'name' => $command->name,
'suffix' => $command->suffix,
'description' => $command->description,
'default_value' => $command->default_value,
'calc_type' => $command->calc_type,
'display_chart' => $command->display_chart,
'places' => $command->places,
'default_view' => $command->default_view,
'threshold' => $command->threshold,
'order' => $command->order,
]);
event(new MetricWasAddedEvent($metric));
return $metric;
}
}

View File

@@ -0,0 +1,84 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Metric;
use CachetHQ\Cachet\Bus\Commands\Metric\AddMetricPointCommand;
use CachetHQ\Cachet\Bus\Events\Metric\MetricPointWasAddedEvent;
use CachetHQ\Cachet\Dates\DateFactory;
use CachetHQ\Cachet\Models\MetricPoint;
use Carbon\Carbon;
class AddMetricPointCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* Create a new add metric point command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
*
* @return void
*/
public function __construct(DateFactory $dates)
{
$this->dates = $dates;
}
/**
* Handle the add metric point command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\AddMetricPointCommand $command
*
* @return \CachetHQ\Cachet\Models\MetricPoint
*/
public function handle(AddMetricPointCommand $command)
{
$metric = $command->metric;
$createdAt = $command->created_at;
// Do we have an existing point with the same value?
$point = $this->findOrCreatePoint($command);
$point->increment('counter', 1);
event(new MetricPointWasAddedEvent($point));
return $point;
}
protected function findOrCreatePoint(AddMetricPointCommand $command)
{
$buffer = Carbon::now()->subMinutes($command->metric->threshold);
$point = MetricPoint::where('metric_id', $command->metric->id)->where('value', $command->value)->where('created_at', '>=', $buffer)->first();
if ($point) {
return $point;
}
$data = [
'metric_id' => $command->metric->id,
'value' => $command->value,
'counter' => 0,
];
if ($command->created_at) {
$data['created_at'] = $this->dates->create('U', $command->created_at)->format('Y-m-d H:i:s');
}
return MetricPoint::create($data);
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Metric;
use CachetHQ\Cachet\Bus\Commands\Metric\RemoveMetricCommand;
use CachetHQ\Cachet\Bus\Events\Metric\MetricWasRemovedEvent;
use CachetHQ\Cachet\Models\Metric;
class RemoveMetricCommandHandler
{
/**
* Handle the remove metric command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\RemoveMetricCommand $command
*
* @return void
*/
public function handle(RemoveMetricCommand $command)
{
$metric = $command->metric;
event(new MetricWasRemovedEvent($metric));
$metric->delete();
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Metric;
use CachetHQ\Cachet\Bus\Commands\Metric\RemoveMetricPointCommand;
use CachetHQ\Cachet\Bus\Events\Metric\MetricPointWasRemovedEvent;
use CachetHQ\Cachet\Models\Metric;
class RemoveMetricPointCommandHandler
{
/**
* Handle the remove metric point command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\RemoveMetricPointCommand $command
*
* @return void
*/
public function handle(RemoveMetricPointCommand $command)
{
$metricPoint = $command->metricPoint;
event(new MetricPointWasRemovedEvent($metricPoint));
$metricPoint->delete();
}
}

View File

@@ -0,0 +1,64 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Metric;
use CachetHQ\Cachet\Bus\Commands\Metric\UpdateMetricCommand;
use CachetHQ\Cachet\Bus\Events\Metric\MetricWasUpdatedEvent;
use CachetHQ\Cachet\Models\Metric;
class UpdateMetricCommandHandler
{
/**
* Handle the update metric command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\UpdateMetricCommand $command
*
* @return \CachetHQ\Cachet\Models\Metric
*/
public function handle(UpdateMetricCommand $command)
{
$metric = $command->metric;
$metric->update($this->filter($command));
event(new MetricWasUpdatedEvent($metric));
return $metric;
}
/**
* Filter the command data.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\UpdateMetricCommand $command
*
* @return array
*/
protected function filter(UpdateMetricCommand $command)
{
$params = [
'name' => $command->name,
'suffix' => $command->suffix,
'description' => $command->description,
'default_value' => $command->default_value,
'calc_type' => $command->calc_type,
'display_chart' => $command->display_chart,
'places' => $command->places,
'default_view' => $command->default_view,
'threshold' => $command->threshold,
'order' => $command->order,
];
return array_filter($params, function ($val) {
return $val !== null;
});
}
}

View File

@@ -0,0 +1,67 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Metric;
use CachetHQ\Cachet\Bus\Commands\Metric\UpdateMetricPointCommand;
use CachetHQ\Cachet\Bus\Events\Metric\MetricPointWasUpdatedEvent;
use CachetHQ\Cachet\Dates\DateFactory;
class UpdateMetricPointCommandHandler
{
/**
* The date factory instance.
*
* @var \CachetHQ\Cachet\Dates\DateFactory
*/
protected $dates;
/**
* Create a new update metric point command handler instance.
*
* @param \CachetHQ\Cachet\Dates\DateFactory $dates
*
* @return void
*/
public function __construct(DateFactory $dates)
{
$this->dates = $dates;
}
/**
* Handle the update metric point command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Metric\UpdateMetricPointCommand $command
*
* @return \CachetHQ\Cachet\Models\MetricPoint
*/
public function handle(UpdateMetricPointCommand $command)
{
$point = $command->point;
$metric = $command->metric;
$createdAt = $command->created_at;
$data = [
'metric_id' => $metric->id,
'value' => (float) $command->value,
];
if ($createdAt) {
$data['created_at'] = $this->dates->create('U', $createdAt)->format('Y-m-d H:i:s');
}
$point->update($data);
event(new MetricPointWasUpdatedEvent($point));
return $point;
}
}

View File

@@ -0,0 +1,69 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand;
use CachetHQ\Cachet\Bus\Commands\Subscriber\VerifySubscriberCommand;
use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasSubscribedEvent;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Subscriber;
use CachetHQ\Cachet\Models\Subscription;
/**
* This is the subscribe subscriber command handler.
*
* @author James Brooks <james@alt-three.com>
* @author Joe Cohen <joe@alt-three.com>
* @author Graham Campbell <graham@alt-three.com>
*/
class SubscribeSubscriberCommandHandler
{
/**
* Handle the subscribe subscriber command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Subscriber\SubscribeSubscriberCommand $command
*
* @return \CachetHQ\Cachet\Models\Subscriber
*/
public function handle(SubscribeSubscriberCommand $command)
{
if ($subscriber = Subscriber::where('email', $command->email)->first()) {
return $subscriber;
}
$subscriber = Subscriber::firstOrCreate(['email' => $command->email]);
// Decide what to subscribe the subscriber to.
if ($subscriptions = $command->subscriptions) {
$components = Component::whereIn('id', $subscriptions)->get();
} else {
$components = Component::all();
}
$components->map(function ($component) use ($subscriber) {
Subscription::create([
'subscriber_id' => $subscriber->id,
'component_id' => $component->id,
]);
});
if ($command->verified) {
dispatch(new VerifySubscriberCommand($subscriber));
} else {
event(new SubscriberHasSubscribedEvent($subscriber));
}
$subscriber->load('subscriptions');
return $subscriber;
}
}

View File

@@ -0,0 +1,34 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand;
use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasUnsubscribedEvent;
class UnsubscribeSubscriberCommandHandler
{
/**
* Handle the subscribe customer command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriberCommand $command
*
* @return void
*/
public function handle(UnsubscribeSubscriberCommand $command)
{
$subscriber = $command->subscriber;
event(new SubscriberHasUnsubscribedEvent($subscriber));
$subscriber->delete();
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriptionCommand;
use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasUnsubscribedEvent;
use CachetHQ\Cachet\Models\Subscription;
class UnsubscribeSubscriptionCommandHandler
{
/**
* Handle the unsubscribe subscription command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Subscriber\UnsubscribeSubscriptionCommand $command
*
* @return void
*/
public function handle(UnsubscribeSubscriptionCommand $command)
{
$subscription = $command->subscription;
event(new SubscriberHasUnsubscribedEvent($subscription->subscriber));
$subscription->delete();
}
}

View File

@@ -0,0 +1,64 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Bus\Commands\Subscriber\UpdateSubscriberSubscriptionCommand;
use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasUpdatedSubscriptionsEvent;
use CachetHQ\Cachet\Models\Component;
use CachetHQ\Cachet\Models\Subscriber;
use CachetHQ\Cachet\Models\Subscription;
/**
* This is the subscribe subscriber command handler.
*
* @author Joseph Cohen <joe@alt-three.com>
*/
class UpdateSubscriberSubscriptionCommandHandler
{
/**
* Handle the subscribe subscriber command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Subscriber\UpdateSubscriberSubscriptionCommand $command
*
* @return \CachetHQ\Cachet\Models\Subscriber
*/
public function handle(UpdateSubscriberSubscriptionCommand $command)
{
$subscriber = $command->subscriber;
$subscriptions = $command->subscriptions ?: [];
$components = Component::all();
$updateSubscriptions = $components->filter(function ($item) use ($subscriptions) {
return in_array($item->id, $subscriptions);
});
$subscriber->global = ($updateSubscriptions->count() === $components->count());
$subscriber->subscriptions()->delete();
if (!$updateSubscriptions->isEmpty()) {
foreach ($updateSubscriptions as $subscription) {
Subscription::firstOrCreate([
'subscriber_id' => $subscriber->id,
'component_id' => $subscription->id,
]);
}
}
$subscriber->save();
event(new SubscriberHasUpdatedSubscriptionsEvent($subscriber));
return $subscriber;
}
}

View File

@@ -0,0 +1,38 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\Subscriber;
use CachetHQ\Cachet\Bus\Commands\Subscriber\VerifySubscriberCommand;
use CachetHQ\Cachet\Bus\Events\Subscriber\SubscriberHasVerifiedEvent;
use CachetHQ\Cachet\Models\Subscriber;
use Carbon\Carbon;
class VerifySubscriberCommandHandler
{
/**
* Handle the subscribe customer command.
*
* @param \CachetHQ\Cachet\Bus\Commands\Subscriber\VerifySubscriberCommand $command
*
* @return void
*/
public function handle(VerifySubscriberCommand $command)
{
$subscriber = $command->subscriber;
// Mark the subscriber as verified.
$subscriber->verified_at = Carbon::now();
$subscriber->save();
event(new SubscriberHasVerifiedEvent($subscriber));
}
}

View File

@@ -0,0 +1,40 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\User;
use CachetHQ\Cachet\Bus\Commands\User\AddTeamMemberCommand;
use CachetHQ\Cachet\Bus\Events\User\UserWasAddedEvent;
use CachetHQ\Cachet\Models\User;
class AddTeamMemberCommandHandler
{
/**
* Handle the add team member command.
*
* @param \CachetHQ\Cachet\Bus\Commands\User\AddTeamMemberCommand $command
*
* @return \CachetHQ\Cachet\Models\User
*/
public function handle(AddTeamMemberCommand $command)
{
$user = User::create([
'username' => $command->username,
'password' => $command->password,
'email' => $command->email,
'level' => $command->level,
]);
event(new UserWasAddedEvent($user));
return $user;
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\User;
use CachetHQ\Cachet\Bus\Commands\User\GenerateApiTokenCommand;
use CachetHQ\Cachet\Models\User;
class GenerateApiTokenCommandHandler
{
/**
* Handle the generate api key command.
*
* @param \CachetHQ\Cachet\Bus\Commands\User\GenerateApiTokenCommand $command
*
* @return void
*/
public function handle(GenerateApiTokenCommand $command)
{
$user = $command->user;
$user->api_key = User::generateApiKey();
$user->save();
//event(new GeneratedApiTokenEvent($user));
}
}

View File

@@ -0,0 +1,37 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\User;
use CachetHQ\Cachet\Bus\Commands\User\InviteTeamMemberCommand;
use CachetHQ\Cachet\Bus\Events\User\UserWasInvitedEvent;
use CachetHQ\Cachet\Models\Invite;
class InviteTeamMemberCommandHandler
{
/**
* Handle the invite team member command.
*
* @param \CachetHQ\Cachet\Bus\Commands\User\InviteTeamMemberCommand $command
*
* @return void
*/
public function handle(InviteTeamMemberCommand $command)
{
foreach ($command->emails as $email) {
$invite = Invite::create([
'email' => $email,
]);
event(new UserWasInvitedEvent($invite));
}
}
}

View File

@@ -0,0 +1,35 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\User;
use CachetHQ\Cachet\Bus\Commands\User\RemoveUserCommand;
use CachetHQ\Cachet\Bus\Events\User\UserWasRemovedEvent;
use CachetHQ\Cachet\Models\User;
class RemoveUserCommandHandler
{
/**
* Handle the remove user command.
*
* @param \CachetHQ\Cachet\Bus\Commands\User\RemoveUserCommand $command
*
* @return void
*/
public function handle(RemoveUserCommand $command)
{
$user = $command->user;
event(new UserWasRemovedEvent($user));
$user->delete();
}
}

View File

@@ -0,0 +1,40 @@
<?php
/*
* This file is part of Cachet.
*
* (c) Alt Three Services Limited
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace CachetHQ\Cachet\Bus\Handlers\Commands\User;
use CachetHQ\Cachet\Bus\Commands\User\SignupUserCommand;
use CachetHQ\Cachet\Bus\Events\User\UserWasAddedEvent;
use CachetHQ\Cachet\Models\User;
class SignupUserCommandHandler
{
/**
* Handle the signup user command.
*
* @param \CachetHQ\Cachet\Bus\Commands\User\SignupUserCommand $command
*
* @return \CachetHQ\Cachet\Models\User
*/
public function handle(SignupUserCommand $command)
{
$user = User::create([
'username' => $command->username,
'password' => $command->password,
'email' => $command->email,
'level' => User::LEVEL_USER,
]);
event(new UserWasAddedEvent($user));
return $user;
}
}

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